Compare commits

..
149 Commits
Author SHA1 Message Date
Github Actions 7278364873 [CI Skip] release/stable 0.73.1
skip-checks: true
2021-04-12 07:16:36 +00:00
Jaco Greeff 291a478290 0.73 (#458) 2021-04-12 09:13:37 +02:00
Github Actions 4768817661 [CI Skip] release/beta 0.72.2-0
skip-checks: true
2021-04-08 09:09:32 +00:00
Jaco Greeff ebf561f48c Bump deps (#457) 2021-04-08 11:06:28 +02:00
Github Actions 8bdfd18e1f [CI Skip] release/stable 0.72.1
skip-checks: true
2021-03-15 12:52:03 +00:00
Jaco Greeff 5e48c1036f 0.72 (#456) 2021-03-15 13:48:52 +01:00
Github Actions 4370e87fea [CI Skip] release/beta 0.71.4-2
skip-checks: true
2021-03-11 18:28:10 +00:00
雪霁 0864aef698 Batch export patch up (#455)
* .

* .

* fix lint

* .

* change on request

* .
2021-03-11 19:25:04 +01:00
Github Actions b898dff53f [CI Skip] release/beta 0.71.4-1
skip-checks: true
2021-03-10 13:15:39 +00:00
Jaco Greeff 15056a5a6c Bump deps (#454) 2021-03-10 14:12:32 +01:00
Github Actions 2f5df3e46f [CI Skip] release/beta 0.71.4-0
skip-checks: true
2021-03-09 18:58:41 +00:00
雪霁 fd3176c36e Batch export (#449)
* .

* .

* fix lint

* .

* change on request
2021-03-09 19:55:31 +01:00
Github Actions 942bd2baf5 [CI Skip] release/stable 0.71.3
skip-checks: true
2021-03-08 15:34:16 +00:00
Jaco Greeff db67b97b7a 0.71.3 (common deps) (#453)
* 0.71.3 (common deps)

* Update CHANGELOG.md
2021-03-08 16:31:52 +01:00
Github Actions c45d42f606 [CI Skip] release/stable 0.71.2
skip-checks: true
2021-03-07 15:48:27 +00:00
Jaco Greeff 401e55a7bd 0.71.2 (#452)
* 0.71.2

* Bumps
2021-03-07 16:46:07 +01:00
Github Actions 5a0158c372 [CI Skip] release/stable 0.71.1
skip-checks: true
2021-03-06 06:52:05 +00:00
Jaco Greeff 2509347330 0.71 (#451) 2021-03-06 07:48:44 +01:00
Github Actions a5bc4bc902 [CI Skip] release/beta 0.70.2-3
skip-checks: true
2021-03-05 16:08:03 +00:00
Jaco Greeff 7588f21b8f Bump util/util-crypto (#450) 2021-03-05 17:04:56 +01:00
Github Actions 78ca8b86a8 [CI Skip] release/beta 0.70.2-2
skip-checks: true
2021-03-03 09:25:24 +00:00
Jaco Greeff fc9cb7da9e Bump deps (& berry) (#448) 2021-03-03 10:22:44 +01:00
Github Actions 70dacc878c [CI Skip] release/beta 0.70.2-1
skip-checks: true
2021-03-02 20:46:35 +00:00
Jaco Greeff 0eebd52577 Default to type: module (#447) 2021-03-02 21:43:36 +01:00
Github Actions 100f22bcfe [CI Skip] release/beta 0.70.2-0
skip-checks: true
2021-03-01 20:50:00 +00:00
Jaco Greeff 36d479380f Bump deps (#446) 2021-03-01 21:47:02 +01:00
Github Actions aff728dd5e [CI Skip] release/stable 0.70.1
skip-checks: true
2021-02-28 13:19:40 +00:00
Jaco Greeff a0c8fa1a84 0.70 (#445)
* 0.70

* Correct util versions
2021-02-28 14:17:02 +01:00
Github Actions a88990cc73 [CI Skip] release/beta 0.69.2-3
skip-checks: true
2021-02-28 10:26:09 +00:00
Jaco Greeff 15c03c0aff Detection for mismatched monorepo deps (#444)
* Detection for mismatched monorepo deps

* Bump common
2021-02-28 11:23:11 +01:00
Github Actions aa3d6803f7 [CI Skip] release/beta 0.69.2-2
skip-checks: true
2021-02-26 08:11:45 +00:00
Jaco Greeff 0bf8b0a35b Bump common (#443) 2021-02-26 09:09:02 +01:00
Github Actions 3fd29ee299 [CI Skip] release/beta 0.69.2-1
skip-checks: true
2021-02-16 12:30:22 +00:00
Jaco Greeff 1fb62d2964 Bump deps (& use packageInfo detection) (#441) 2021-02-16 13:27:29 +01:00
Github Actions 756af81132 [CI Skip] release/beta 0.69.2-0
skip-checks: true
2021-02-08 16:53:33 +00:00
Jaco Greeff 0ebce80650 Bump util (#439) 2021-02-08 17:50:38 +01:00
Github Actions 743311ec19 [CI Skip] release/stable 0.69.1
skip-checks: true
2021-02-07 13:58:22 +00:00
Jaco Greeff d8237f0687 0.69 (#438)
* 0.69

* Adjust

* Adjust

* Update CHANGELOG.md
2021-02-07 14:55:32 +01:00
Github Actions 68f3d13d09 [CI Skip] release/stable 0.68.1
skip-checks: true
2021-02-01 08:32:18 +00:00
Jaco Greeff b9194310a9 0.68 (#437) 2021-02-01 09:29:46 +01:00
Github Actions 670078158c [CI Skip] release/beta 0.67.2-0
skip-checks: true
2021-01-28 14:13:00 +00:00
Jaco Greeff 0f0bea2624 ed25519 w/ bip44 option (#436)
* ed25519 w/ bip44 option

* naming

* Rename Ledger option (no bip32-ed25519 compatible)
2021-01-28 15:10:03 +01:00
Github Actions 82bd15b09c [CI Skip] release/stable 0.67.1
skip-checks: true
2021-01-24 16:27:39 +00:00
Jaco Greeff 9e3b69931f 0.67 (#434) 2021-01-24 17:25:13 +01:00
Github Actions b8ed514ca8 [CI Skip] release/beta 0.66.4-3
skip-checks: true
2021-01-24 16:18:29 +00:00
Jaco Greeff 079ebdb39b Bump common ref 2021-01-24 16:52:22 +01:00
Github Actions 230a35faf0 [CI Skip] release/beta 0.66.4-2
skip-checks: true
2021-01-24 11:27:13 +00:00
Jaco Greeff 943e60b47b Bump common (#433) 2021-01-24 12:24:56 +01:00
Github Actions cc67d386b8 [CI Skip] release/beta 0.66.4-1
skip-checks: true
2021-01-19 22:11:12 +00:00
Jaco Greeff 54384279b2 Bump deps (#432) 2021-01-19 23:08:13 +01:00
Github Actions 83fcb1fa7b [CI Skip] release/beta 0.66.4-0
skip-checks: true
2021-01-18 14:15:34 +00:00
Thibaut Sardan a83e2802ed store hardware wallets (#431) 2021-01-18 15:12:36 +01:00
Github Actions 27d524c758 [CI Skip] release/stable 0.66.3
skip-checks: true
2021-01-18 12:19:55 +00:00
Jaco Greeff 262e010a08 Path for stable x-rxjs 2021-01-18 13:17:27 +01:00
Github Actions c3a8f0c3d7 [CI Skip] release/stable 0.66.2
skip-checks: true
2021-01-17 16:31:29 +00:00
Jaco Greeff b045104c3e 0.66.2 Stable common 2021-01-17 17:29:05 +01:00
Github Actions 12bc342cc6 [CI Skip] release/stable 0.66.1
skip-checks: true
2021-01-17 15:06:52 +00:00
Jaco Greeff 1a1f351207 0.6 (#430) 2021-01-17 16:03:59 +01:00
Github Actions 510d33fd89 [CI Skip] release/beta 0.65.2-5
skip-checks: true
2021-01-14 21:57:26 +00:00
Jaco Greeff 19c68dada7 Use @polkadot/hw-ledger from common (#429) 2021-01-14 22:54:38 +01:00
Github Actions 089b24f505 [CI Skip] release/beta 0.65.2-4
skip-checks: true
2021-01-14 09:48:12 +00:00
Jaco Greeff 3f6a37a535 Bump deps (#428)
* Bump deps

* Bump deps
2021-01-14 10:45:10 +01:00
Github Actions 596331daf3 [CI Skip] release/beta 0.65.2-3
skip-checks: true
2021-01-13 18:49:54 +00:00
Adam DossaandAdam Dossa f665d0a590 Add Polymesh Ledger Integration (#427)
* Add Polymesh Ledger Integration

* Fix ordering

Co-authored-by: Adam Dossa <adamdossa@Adams-MacBook-Pro.local>
2021-01-13 19:46:53 +01:00
Github Actions 0c6c6c9a91 [CI Skip] release/beta 0.65.2-2
skip-checks: true
2021-01-07 21:03:35 +00:00
Jaco Greeff 9abdd88a3d Bump deps (#426) 2021-01-07 22:00:48 +01:00
Github Actions cdb927da2a [CI Skip] release/beta 0.65.2-1
skip-checks: true
2021-01-07 20:15:41 +00:00
Lovesh Harchandani 214fa1538a Allow Ledger support for Dock (#425)
Signed-off-by: lovesh <lovesh.bond@gmail.com>
2021-01-07 21:12:25 +01:00
Github Actions 97d74944cb [CI Skip] release/beta 0.65.2-0
skip-checks: true
2021-01-03 10:48:56 +00:00
Jaco Greeff f003063b94 2021 (#424) 2021-01-03 11:46:19 +01:00
Github Actions 08132ef566 [CI Skip] release/stable 0.65.1
skip-checks: true
2020-12-28 10:59:29 +00:00
Jaco Greeff 1fbbc0500d 0.65 (#423) 2020-12-28 11:56:21 +01:00
Github Actions 708ee3b7bd [CI Skip] release/beta 0.64.2-1
skip-checks: true
2020-12-21 19:16:15 +00:00
Jaco Greeff 3d0afd017a jdenticon imports 2020-12-21 20:13:08 +01:00
Github Actions bf67852b59 [CI Skip] release/beta 0.64.2-0
skip-checks: true
2020-12-21 12:21:22 +00:00
Jaco Greeff 105fb61f71 Cleanup deps (#422) 2020-12-21 13:18:20 +01:00
Github Actions d4f81a92e0 [CI Skip] release/stable 0.64.1
skip-checks: true
2020-12-21 10:53:42 +00:00
Jaco Greeff 353a15827b No types export from index (#421)
* No types export from index

* Fix use

* bump

* Bumps

* CHANGELOG

* OCD
2020-12-21 11:50:34 +01:00
Github Actions 6a3bf8c0b3 [CI Skip] release/beta 0.63.2-4
skip-checks: true
2020-12-21 08:48:34 +00:00
Jaco Greeff 9a20feb417 Bumps 2020-12-21 09:45:38 +01:00
Github Actions a25ae21074 [CI Skip] release/beta 0.63.2-3
skip-checks: true
2020-12-18 10:53:31 +00:00
Jaco Greeff f9428ee6d2 Bump dev 2020-12-18 11:50:32 +01:00
Github Actions 3746b608b2 [CI Skip] release/beta 0.63.2-2
skip-checks: true
2020-12-17 13:00:57 +00:00
Jaco Greeff 769995549d Mark detectPackage as sideEffect 2020-12-17 13:57:54 +01:00
Github Actions 98c497b0aa [CI Skip] release/beta 0.63.2-1
skip-checks: true
2020-12-17 12:30:46 +00:00
Jaco Greeff 96a1c981bc Update detectPackage with callback 2020-12-17 13:28:05 +01:00
Github Actions 82fc187983 [CI Skip] release/beta 0.63.2-0
skip-checks: true
2020-12-16 15:30:36 +00:00
Jaco Greeff fc22cc0456 Allow import.meta.url for detectPackage (#420)
* Allow import.meta.url for detectPackage

* Bump deps
2020-12-16 16:27:33 +01:00
Github Actions b40167c1e2 [CI Skip] release/stable 0.63.1
skip-checks: true
2020-12-14 12:24:30 +00:00
Jaco Greeff 8dd942d070 0.63 (#419) 2020-12-14 13:21:52 +01:00
Github Actions 0e810ba308 [CI Skip] release/beta 0.62.2-28
skip-checks: true
2020-12-12 09:26:15 +00:00
Jaco Greeff 4288680bce Bump deps (#418) 2020-12-12 10:23:14 +01:00
Github Actions 5d82af6912 [CI Skip] release/beta 0.62.2-27
skip-checks: true
2020-12-11 18:11:45 +00:00
Jaco Greeff 7607dc9e9d Bump deps (#417) 2020-12-11 19:08:39 +01:00
Github Actions 0795451801 [CI Skip] release/beta 0.62.2-26
skip-checks: true
2020-12-11 09:49:48 +00:00
Jaco Greeff e061c22ab1 Bump dev 2020-12-11 10:47:03 +01:00
Github Actions 9562762403 [CI Skip] release/beta 0.62.2-25
skip-checks: true
2020-12-10 18:13:33 +00:00
Jaco Greeff c1e961a938 Build esm (don't yet use) (#416)
* Build esm (don't yet use)

* fix ui-assets
2020-12-10 19:10:58 +01:00
Github Actions c48f44830e [CI Skip] release/beta 0.62.2-24
skip-checks: true
2020-12-09 19:49:23 +00:00
Jaco Greeff 558f5b0286 Bump dev (esm alongside cjs) (#415) 2020-12-09 20:46:23 +01:00
Github Actions b1a9cbdabb [CI Skip] release/beta 0.62.2-23
skip-checks: true
2020-12-09 00:44:17 +00:00
Jaco Greeff 7e494673e0 Convert all to named imports (#414) 2020-12-09 01:41:44 +01:00
Github Actions a5434d4428 [CI Skip] release/beta 0.62.2-22
skip-checks: true
2020-12-08 10:26:42 +00:00
Jaco Greeff 582f1ca294 Remove --fix on CI (#412) 2020-12-08 11:23:44 +01:00
Github Actions fcebfeae60 [CI Skip] release/beta 0.62.2-21
skip-checks: true
2020-12-07 15:44:02 +00:00
Jaco Greeff bb308f87e7 Bup dev (import sorting) (#411) 2020-12-07 16:41:26 +01:00
Github Actions 5445177055 [CI Skip] release/beta 0.62.2-20
skip-checks: true
2020-12-05 09:59:25 +00:00
Jaco Greeff b705f2bed1 Bump deps (minor) (#410) 2020-12-05 10:56:37 +01:00
Github Actions 4a79ef073c [CI Skip] release/beta 0.62.2-19
skip-checks: true
2020-12-02 17:39:26 +00:00
Jaco Greeff ce79a80a18 Optional pair type (account-only) (#409) 2020-12-02 18:36:28 +01:00
Github Actions 9c72628a39 [CI Skip] release/beta 0.62.2-18
skip-checks: true
2020-12-01 21:08:07 +00:00
Jaco Greeff 61416c3f23 Bump berry (#407)
* Bump berry

* rewrite
2020-12-01 22:04:57 +01:00
Github Actions 27d7dfda02 [CI Skip] release/beta 0.62.2-17
skip-checks: true
2020-12-01 12:36:39 +00:00
Jaco Greeff 487c638185 Use import type (#406) 2020-12-01 13:33:48 +01:00
Github Actions 57eece03d8 [CI Skip] release/beta 0.62.2-16
skip-checks: true
2020-11-30 12:21:45 +00:00
Jaco Greeff f62f214e88 Bump deps (#405)
* Bump deps

* Dedupe
2020-11-30 13:18:45 +01:00
Github Actions d33504ff72 [CI Skip] release/beta 0.62.2-15
skip-checks: true
2020-11-25 16:17:10 +00:00
Thibaut Sardan fc68b5ae0e export type for icon theme (#404) 2020-11-25 17:14:26 +01:00
Github Actions 55c52ed5ad [CI Skip] release/beta 0.62.2-14
skip-checks: true
2020-11-24 12:43:19 +00:00
Jaco Greeff 923a08f7fc Bumps (#403)
* Bumps

* Remove unneeded dev dep
2020-11-24 13:40:27 +01:00
Github Actions 284d36dd6d [CI Skip] release/beta 0.62.2-13
skip-checks: true
2020-11-20 08:39:25 +00:00
Jaco Greeff f648e6db08 Ledger libs bump (#402) 2020-11-20 09:36:42 +01:00
Github Actions c771560a7c [CI Skip] release/beta 0.62.2-12
skip-checks: true
2020-11-11 16:48:35 +00:00
Jaco Greeff 9b89ac19ba catch, ignore 2020-11-11 17:45:46 +01:00
Jaco Greeff 1d369c13d8 Allow injection failure 2020-11-11 17:44:22 +01:00
Github Actions ad2c3bb12a [CI Skip] release/beta 0.62.2-11
skip-checks: true
2020-11-11 13:06:36 +00:00
Jaco Greeff b951a67b3f Fix Ledger HID imports 2020-11-11 14:03:30 +01:00
Github Actions 17f37f0c05 [CI Skip] release/beta 0.62.2-10
skip-checks: true
2020-11-11 12:39:30 +00:00
Jaco Greeff c71da72328 Dev bump (#401)
* Swap with USB libs

* Update dev

* Bump deps
2020-11-11 13:36:38 +01:00
Github Actions 3c743bd668 [CI Skip] release/beta 0.62.2-9
skip-checks: true
2020-11-10 21:34:34 +00:00
Jaco Greeff 1e2fdfba58 Swap with USB libs (#400) 2020-11-10 22:31:26 +01:00
Github Actions 03db260ed6 [CI Skip] release/beta 0.62.2-8
skip-checks: true
2020-11-10 18:20:11 +00:00
Jaco Greeff d47cdf8a7b keyringOption 2020-11-10 19:17:08 +01:00
Github Actions 8d41ea5eba [CI Skip] release/beta 0.62.2-7
skip-checks: true
2020-11-10 17:44:36 +00:00
Jaco Greeff 573fd7ba6a keyringOption expose 2020-11-10 18:41:27 +01:00
Github Actions 6425131822 [CI Skip] release/beta 0.62.2-6
skip-checks: true
2020-11-10 17:22:38 +00:00
Jaco Greeff d81e91af7b Bumps 2020-11-10 18:19:24 +01:00
Github Actions f1576f280d [CI Skip] release/beta 0.62.2-5
skip-checks: true
2020-11-10 15:14:55 +00:00
Jaco Greeff 2692c90106 Split Ledger (& transports) into package (#399)
* Split Ledger (& transports) into package

* Fix browser/node resolution

* Bump
2020-11-10 16:11:50 +01:00
Github Actions 0da5471b3e [CI Skip] release/beta 0.62.2-4
skip-checks: true
2020-11-10 13:22:40 +00:00
Jaco Greeff e5a8d695bb Re-enable esnext builds (#398) 2020-11-10 14:19:29 +01:00
Github Actions 24b91a73c7 [CI Skip] release/beta 0.62.2-3
skip-checks: true
2020-11-09 22:32:51 +00:00
Jaco Greeff 1ad3b6ab98 Bumps 2020-11-09 23:30:03 +01:00
Github Actions 7fa869d33c [CI Skip] release/beta 0.62.2-2
skip-checks: true
2020-11-09 21:31:15 +00:00
Jaco Greeff 4b95eeae06 unused esnext 2020-11-09 22:28:10 +01:00
Github Actions c7e79d9816 [CI Skip] release/beta 0.62.2-1
skip-checks: true
2020-11-09 20:00:22 +00:00
Jaco Greeff 4d6d9abbc0 Bump common/api (#397) 2020-11-09 20:57:18 +01:00
Github Actions bc5973bdaf [CI Skip] release/beta 0.62.2-0
skip-checks: true
2020-11-09 16:43:35 +00:00
Jaco Greeff f6c7f638a1 Build esnext modules (#396) 2020-11-09 17:40:47 +01:00
154 changed files with 3826 additions and 4213 deletions
+5 -1
View File
@@ -1,2 +1,6 @@
1
0.57.20.57.3
0.57.20.57.3
0.66.2
0.66.3
0.71.2
0.71.3
+2 -2
View File
@@ -1,7 +1,7 @@
// Copyright 2017-2020 @polkadot/ui authors & contributors
// Copyright 2017-2021 @polkadot/ui authors & contributors
// SPDX-License-Identifier: Apache-2.0
const base = require('@polkadot/dev/config/eslint');
const base = require('@polkadot/dev/config/eslint.cjs');
module.exports = {
...base,
-1
View File
@@ -1 +0,0 @@
12
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
-55
View File
File diff suppressed because one or more lines are too long
+55
View File
File diff suppressed because one or more lines are too long
+1 -3
View File
@@ -9,7 +9,5 @@ plugins:
spec: "@yarnpkg/plugin-interactive-tools"
- path: .yarn/plugins/@yarnpkg/plugin-version.cjs
spec: "@yarnpkg/plugin-version"
- path: .yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs
spec: "@yarnpkg/plugin-workspace-tools"
yarnPath: .yarn/releases/yarn-2.3.3.cjs
yarnPath: .yarn/releases/yarn-2.4.1.cjs
+126
View File
@@ -1,5 +1,131 @@
# CHANGELOG
## 0.73.1 Apr 12, 2021
Changes:
- Updated to `@polkadot/{hw-ledger, keyring, util, util-crypto}` 6.1.1
## 0.72.1 Mar 15, 2021
Contributed:
- Added support for batch import/export functionality (Thanks to https://github.com/BubbleBear)
## 0.71.3 Mar 8, 2021
Changes:
- Updated to `@polkadot/{hw-ledger, keyring, util, util-crypto}` 6.0.5
## 0.71.2 Mar 6, 2021
Changes:
- Updated to `@polkadot/{hw-ledger, keyring, util, util-crypto}` 6.0.4
## 0.71.1 Mar 6, 2021
Changes:
- Build to ESM by default (with cjs versions via export map)
- Updated to `@polkadot/{hw-ledger, keyring, util, util-crypto}` 6.0.3
## 0.70.1 Feb 28, 2021
Changes:
- Use `detectPackage` with `packageInfo` & check for monorepo dependencies
- Remove `mkdirp` resolution to ensure local views work with Webpack
- Updated to `@polkadot/{hw-ledger, keyring, util, util-crypto}` 5.9.2
## 0.69.1 Feb 7, 2021
Changes:
- Updated to `@polkadot/{hw-ledger, keyring, util, util-crypto}` 5.6.1
## 0.68.1 Feb 1, 2021
Changes:
- Updated to `@polkadot/{hw-ledger, keyring, util, util-crypto}` 5.5.1
- Added `ed25519-ledger` option for `hdLedger` from `@polkadot/util-crypto`
## 0.67.1 Jan 24, 2021
Contributed:
- Store hardware accounts (Thanks to https://github.com/Tbaut)
Changes:
- Updated to `@polkadot/{hw-ledger, keyring, util, util-crypto}` 5.4.4
- Cleanup dependencies to only have common (no api repo)
## 0.66.1 Jan 17, 2021
- **Important** Users of the `@polkadot/ledger` package should now import `@polkadot/hw-wallet`
Contributed:
- Dock Ledger integration (Thanks to https://github.com/lovesh, moved to common)
- Polymesh Ledger integration (https://github.com/adamdossa, moved to common)
Changes:
- Remove `@polkadot/ledger` package (Moved to common as `@polkadot/hw-ledger`)
- Keyring options genesis allows a `string` | `Hash` (e.g. `api.genesisHash`) input
- Updated to `@polkadot/{hw-ledger, keyring, util, util-crypto}` 5.3.1
- Removed `@polkadot/types` dependencies (only interface needed, supplied)
## 0.65.1 Dec 28, 2020
Changes:
- Updated to `@polkadot/{keyring, util, util-crypto}` 5.2.2
- Updated to `@polkadot/api` 3.2.2
## 0.64.1 Dec 21, 2020
Changes:
- Don't re-export types from index (esm build compat)
- Correctly mark `detectPackage` as a side-effect
- Updated to `@polkadot/{keyring, util, util-crypto}` 5.1.1
- Updated to `@polkadot/api` 3.1.1
## 0.63.1 Dec 14, 2020
Contributed:
- Export types for icons (Thanks to https://github.com/Tbaut)
Changes:
- Bump to latest WebUSB from Ledger
- Swap Ledger functionality to dedicated packages
- Build esm packages alongside cjs
- Convert all imports/exports to named
- Pass pair type through to all creation actions
- Allow for transparent failures on account injection
- Swap to using `import type { ... }`
- Updated to `@polkadot/{keyring, util, util-crypto}` 5.0.1
- Updated to `@polkadot/api` 3.0.1
## 0.62.1 Nov 9, 2020
Changes:
+2 -2
View File
@@ -1,7 +1,7 @@
// Copyright 2017-2020 @polkadot/ui authors & contributors
// Copyright 2017-2021 @polkadot/ui authors & contributors
// SPDX-License-Identifier: Apache-2.0
const base = require('@polkadot/dev/config/babel');
const base = require('@polkadot/dev/config/babel-config-cjs.cjs');
module.exports = Object.keys(base).reduce((config, key) => {
config[key] = base[key];
+6 -5
View File
@@ -1,9 +1,10 @@
// Copyright 2017-2020 @polkadot/ui authors & contributors
// Copyright 2017-2021 @polkadot/ui authors & contributors
// SPDX-License-Identifier: Apache-2.0
const config = require('@polkadot/dev/config/jest');
const config = require('@polkadot/dev/config/jest.cjs');
module.exports = Object.assign({}, config, {
module.exports = {
...config,
moduleNameMapper: {
'@polkadot/react-(identicon|qr)(.*)$': '<rootDir>/packages/react-$1/src/$2',
'@polkadot/reactnative-(identicon)(.*)$': '<rootDir>/packages/reactnative-$1/src/$2',
@@ -11,5 +12,5 @@ module.exports = Object.assign({}, config, {
'\\.(css|less)$': 'empty/object',
'\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$': 'empty/object'
},
resolver: '@polkadot/dev/config/jest-resolver'
});
transformIgnorePatterns: ['/node_modules/(?!@polkadot|@babel/runtime/helpers/esm/)']
};
+12 -12
View File
@@ -8,7 +8,7 @@
"packages/*"
],
"resolutions": {
"typescript": "^4.0.5"
"typescript": "^4.2.4"
},
"scripts": {
"build": "polkadot-dev-build-ts",
@@ -27,21 +27,21 @@
"test:one": "polkadot-dev-run-test"
},
"devDependencies": {
"@babel/core": "^7.12.3",
"@babel/runtime": "^7.12.5",
"@polkadot/dev": "^0.59.20",
"@polkadot/ts": "^0.3.53",
"@types/jest": "^26.0.15",
"@babel/core": "^7.13.15",
"@babel/runtime": "^7.13.10",
"@polkadot/dev": "^0.62.7",
"@polkadot/ts": "^0.3.62",
"@types/jest": "^26.0.22",
"babel-plugin-transform-vue-template": "^0.4.2",
"empty": "^0.10.1",
"react": "^17.0.1",
"react-dom": "^17.0.1",
"react-is": "^17.0.1",
"react-native": "^0.63.3",
"react": "^17.0.2",
"react-dom": "^17.0.2",
"react-is": "^17.0.2",
"react-native": "^0.64.0",
"vue-template-compiler": "^2.6.12",
"webpack": "^4.44.2",
"webpack": "^4.46.0",
"webpack-cli": "^3.3.12",
"webpack-serve": "^3.2.0"
},
"version": "0.62.1"
"version": "0.73.1"
}
+3 -5
View File
@@ -1,14 +1,12 @@
{
"name": "@polkadot/example-react",
"version": "0.62.1",
"version": "0.73.1",
"description": "A very basic example with ui-* & react-* packages",
"main": "index.js",
"author": "Jaco Greeff <jacogr@gmail.com>",
"maintainers": [
"Jaco Greeff <jacogr@gmail.com>"
],
"maintainers": [],
"license": "Apache-2.0",
"dependencies": {
"@babel/runtime": "^7.12.5"
"@babel/runtime": "^7.13.10"
}
}
+6 -5
View File
@@ -1,12 +1,13 @@
// Copyright 2017-2020 @polkadot/example-react authors & contributors
// Copyright 2017-2021 @polkadot/example-react authors & contributors
// SPDX-License-Identifier: Apache-2.0
import React, { useCallback, useEffect, useState } from 'react';
import ReactDOM from 'react-dom';
import Identicon from '@polkadot/react-identicon';
import keyring from '@polkadot/ui-keyring';
import settings from '@polkadot/ui-settings';
import { mnemonicGenerate, cryptoWaitReady } from '@polkadot/util-crypto';
import { Identicon } from '@polkadot/react-identicon';
import { keyring } from '@polkadot/ui-keyring';
import { settings } from '@polkadot/ui-settings';
import { cryptoWaitReady, mnemonicGenerate } from '@polkadot/util-crypto';
interface Props {
className?: string;
@@ -0,0 +1,6 @@
// Copyright 2017-2021 @polkadot/example-react authors & contributors
// SPDX-License-Identifier: Apache-2.0
// Auto-generated by @polkadot/dev, do not edit
export const packageInfo = { name: '@polkadot/example-react', version: '0.73.1' };
+1 -1
View File
@@ -1,4 +1,4 @@
// Copyright 2017-2020 @polkadot/example-react authors & contributors
// Copyright 2017-2021 @polkadot/example-react authors & contributors
// SPDX-License-Identifier: Apache-2.0
const path = require('path');
+3 -5
View File
@@ -1,14 +1,12 @@
{
"name": "@polkadot/example-vue",
"version": "0.62.1",
"version": "0.73.1",
"description": "A very basic example with ui-* & vue-* packages",
"main": "index.js",
"author": "Jaco Greeff <jacogr@gmail.com>",
"maintainers": [
"Jaco Greeff <jacogr@gmail.com>"
],
"maintainers": [],
"license": "Apache-2.0",
"dependencies": {
"@babel/runtime": "^7.12.5"
"@babel/runtime": "^7.13.10"
}
}
+6 -5
View File
@@ -1,12 +1,13 @@
// Copyright 2017-2020 @polkadot/example-vue authors & contributors
// Copyright 2017-2021 @polkadot/example-vue authors & contributors
// SPDX-License-Identifier: Apache-2.0
import { Prefix } from '@polkadot/util-crypto/address/types';
import type { Prefix } from '@polkadot/util-crypto/address/types';
import Vue, { VNode } from 'vue';
import keyring from '@polkadot/ui-keyring';
import settings from '@polkadot/ui-settings';
import { mnemonicGenerate, cryptoWaitReady } from '@polkadot/util-crypto';
import { keyring } from '@polkadot/ui-keyring';
import { settings } from '@polkadot/ui-settings';
import { cryptoWaitReady, mnemonicGenerate } from '@polkadot/util-crypto';
import Identicon from '@polkadot/vue-identicon';
interface Account {
+6
View File
@@ -0,0 +1,6 @@
// Copyright 2017-2021 @polkadot/example-vue authors & contributors
// SPDX-License-Identifier: Apache-2.0
// Auto-generated by @polkadot/dev, do not edit
export const packageInfo = { name: '@polkadot/example-vue', version: '0.73.1' };
+1 -1
View File
@@ -1,4 +1,4 @@
// Copyright 2017-2020 @polkadot/example-vue authors & contributors
// Copyright 2017-2021 @polkadot/example-vue authors & contributors
// SPDX-License-Identifier: Apache-2.0
const path = require('path');
+5 -4
View File
@@ -1,13 +1,14 @@
// Copyright 2017-2020 @polkadot/example-react authors & contributors
// Copyright 2017-2021 @polkadot/example-react authors & contributors
// SPDX-License-Identifier: Apache-2.0
import React, { useEffect, useState } from 'react';
import { Button, SafeAreaView, ScrollView, StatusBar, StyleSheet, Text, View } from 'react-native';
import { Colors } from 'react-native/Libraries/NewAppScreen';
import Identicon from '@polkadot/reactnative-identicon';
import keyring from '@polkadot/ui-keyring';
import settings from '@polkadot/ui-settings';
import { mnemonicGenerate, cryptoWaitReady } from '@polkadot/util-crypto';
import { keyring } from '@polkadot/ui-keyring';
import { settings } from '@polkadot/ui-settings';
import { cryptoWaitReady, mnemonicGenerate } from '@polkadot/util-crypto';
const styles = StyleSheet.create({
body: {
+1 -1
View File
@@ -1,4 +1,4 @@
// Copyright 2017-2020 @polkadot/example-reactnative authors & contributors
// Copyright 2017-2021 @polkadot/example-reactnative authors & contributors
// SPDX-License-Identifier: Apache-2.0
module.exports = {
+2 -1
View File
@@ -1,9 +1,10 @@
// Copyright 2017-2020 @polkadot/example-react authors & contributors
// Copyright 2017-2021 @polkadot/example-react authors & contributors
// SPDX-License-Identifier: Apache-2.0
import './nodeGlobalsShim.js';
import { AppRegistry } from 'react-native';
import App from './App';
import { name as appName } from './app.json';
+29 -29
View File
@@ -1,38 +1,38 @@
platform :ios, '9.0'
require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'
require_relative '../../../node_modules/@react-native-community/cli-platform-ios/native_modules'
target 'exampleReactNative' do
# Pods for exampleReactNative
pod 'FBLazyVector', :path => "../node_modules/react-native/Libraries/FBLazyVector"
pod 'FBReactNativeSpec', :path => "../node_modules/react-native/Libraries/FBReactNativeSpec"
pod 'RCTRequired', :path => "../node_modules/react-native/Libraries/RCTRequired"
pod 'RCTTypeSafety', :path => "../node_modules/react-native/Libraries/TypeSafety"
pod 'React', :path => '../node_modules/react-native/'
pod 'React-Core', :path => '../node_modules/react-native/'
pod 'React-CoreModules', :path => '../node_modules/react-native/React/CoreModules'
pod 'React-Core/DevSupport', :path => '../node_modules/react-native/'
pod 'React-RCTActionSheet', :path => '../node_modules/react-native/Libraries/ActionSheetIOS'
pod 'React-RCTAnimation', :path => '../node_modules/react-native/Libraries/NativeAnimation'
pod 'React-RCTBlob', :path => '../node_modules/react-native/Libraries/Blob'
pod 'React-RCTImage', :path => '../node_modules/react-native/Libraries/Image'
pod 'React-RCTLinking', :path => '../node_modules/react-native/Libraries/LinkingIOS'
pod 'React-RCTNetwork', :path => '../node_modules/react-native/Libraries/Network'
pod 'React-RCTSettings', :path => '../node_modules/react-native/Libraries/Settings'
pod 'React-RCTText', :path => '../node_modules/react-native/Libraries/Text'
pod 'React-RCTVibration', :path => '../node_modules/react-native/Libraries/Vibration'
pod 'React-Core/RCTWebSocket', :path => '../node_modules/react-native/'
pod 'FBLazyVector', :path => "../../../node_modules/react-native/Libraries/FBLazyVector"
pod 'FBReactNativeSpec', :path => "../../../node_modules/react-native/Libraries/FBReactNativeSpec"
pod 'RCTRequired', :path => "../../../node_modules/react-native/Libraries/RCTRequired"
pod 'RCTTypeSafety', :path => "../../../node_modules/react-native/Libraries/TypeSafety"
pod 'React', :path => '../../../node_modules/react-native/'
pod 'React-Core', :path => '../../../node_modules/react-native/'
pod 'React-CoreModules', :path => '../../../node_modules/react-native/React/CoreModules'
pod 'React-Core/DevSupport', :path => '../../../node_modules/react-native/'
pod 'React-RCTActionSheet', :path => '../../../node_modules/react-native/Libraries/ActionSheetIOS'
pod 'React-RCTAnimation', :path => '../../../node_modules/react-native/Libraries/NativeAnimation'
pod 'React-RCTBlob', :path => '../../../node_modules/react-native/Libraries/Blob'
pod 'React-RCTImage', :path => '../../../node_modules/react-native/Libraries/Image'
pod 'React-RCTLinking', :path => '../../../node_modules/react-native/Libraries/LinkingIOS'
pod 'React-RCTNetwork', :path => '../../../node_modules/react-native/Libraries/Network'
pod 'React-RCTSettings', :path => '../../../node_modules/react-native/Libraries/Settings'
pod 'React-RCTText', :path => '../../../node_modules/react-native/Libraries/Text'
pod 'React-RCTVibration', :path => '../../../node_modules/react-native/Libraries/Vibration'
pod 'React-Core/RCTWebSocket', :path => '../../../node_modules/react-native/'
pod 'React-cxxreact', :path => '../node_modules/react-native/ReactCommon/cxxreact'
pod 'React-jsi', :path => '../node_modules/react-native/ReactCommon/jsi'
pod 'React-jsiexecutor', :path => '../node_modules/react-native/ReactCommon/jsiexecutor'
pod 'React-jsinspector', :path => '../node_modules/react-native/ReactCommon/jsinspector'
pod 'ReactCommon/jscallinvoker', :path => "../node_modules/react-native/ReactCommon"
pod 'ReactCommon/turbomodule/core', :path => "../node_modules/react-native/ReactCommon"
pod 'Yoga', :path => '../node_modules/react-native/ReactCommon/yoga'
pod 'React-cxxreact', :path => '../../../node_modules/react-native/ReactCommon/cxxreact'
pod 'React-jsi', :path => '../../../node_modules/react-native/ReactCommon/jsi'
pod 'React-jsiexecutor', :path => '../../../node_modules/react-native/ReactCommon/jsiexecutor'
pod 'React-jsinspector', :path => '../../../node_modules/react-native/ReactCommon/jsinspector'
pod 'ReactCommon/jscallinvoker', :path => "../../../node_modules/react-native/ReactCommon"
pod 'ReactCommon/turbomodule/core', :path => "../../../node_modules/react-native/ReactCommon"
pod 'Yoga', :path => '../../../node_modules/react-native/ReactCommon/yoga'
pod 'DoubleConversion', :podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec'
pod 'glog', :podspec => '../node_modules/react-native/third-party-podspecs/glog.podspec'
pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec'
pod 'DoubleConversion', :podspec => '../../../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec'
pod 'glog', :podspec => '../../../node_modules/react-native/third-party-podspecs/glog.podspec'
pod 'Folly', :podspec => '../../../node_modules/react-native/third-party-podspecs/Folly.podspec'
target 'exampleReactNativeTests' do
+1 -1
View File
@@ -1,4 +1,4 @@
// Copyright 2017-2020 @polkadot/example-reactnative authors & contributors
// Copyright 2017-2021 @polkadot/example-reactnative authors & contributors
// SPDX-License-Identifier: Apache-2.0
const path = require('path');
@@ -1,9 +1,10 @@
// Copyright 2017-2020 @polkadot/example-reactnative authors & contributors
// Copyright 2017-2021 @polkadot/example-reactnative authors & contributors
// SPDX-License-Identifier: Apache-2.0
/* eslint-disable no-global-assign */
import 'fast-text-encoding';
import AsyncStorage from '@react-native-community/async-storage';
class Storage {
+15 -15
View File
@@ -1,6 +1,6 @@
{
"name": "exampleReactNative",
"version": "0.62.1",
"version": "0.73.1",
"private": true,
"scripts": {
"copy-workspace-packages": "yarn copy-identicon && yarn copy-ui-shared",
@@ -12,31 +12,31 @@
"test": "jest"
},
"dependencies": {
"@polkadot/keyring": "^4.0.1",
"@polkadot/reactnative-identicon": "0.62.1",
"@polkadot/ui-keyring": "0.62.1",
"@polkadot/ui-settings": "0.62.1",
"@polkadot/util": "^4.0.1",
"@polkadot/util-crypto": "^4.0.1",
"@polkadot/keyring": "^6.1.1",
"@polkadot/reactnative-identicon": "0.73.1",
"@polkadot/ui-keyring": "0.73.1",
"@polkadot/ui-settings": "0.73.1",
"@polkadot/util": "^6.1.1",
"@polkadot/util-crypto": "^6.1.1",
"@react-native-community/async-storage": "^1.12.1",
"fast-text-encoding": "^1.0.3",
"get-yarn-workspaces": "^1.0.2",
"os-browserify": "^0.3.0",
"process": "^0.11.10",
"react": "^17.0.1",
"react-native": "^0.63.3",
"react": "^17.0.2",
"react-native": "^0.64.0",
"react-native-crypto": "^2.2.0",
"react-native-randombytes": "^3.6.0",
"stream-http": "^3.1.1"
},
"devDependencies": {
"@babel/core": "^7.12.3",
"@babel/runtime": "^7.12.5",
"@react-native-community/cli-platform-ios": "^4.13.0",
"@types/react-test-renderer": "16.9.3",
"@babel/core": "^7.13.15",
"@babel/runtime": "^7.13.10",
"@react-native-community/cli-platform-ios": "^5.0.1-alpha.2",
"@types/react-test-renderer": "17.0.1",
"babel-jest": "^26.6.3",
"metro-react-native-babel-preset": "^0.64.0",
"react-test-renderer": "17.0.1"
"metro-react-native-babel-preset": "^0.65.2",
"react-test-renderer": "17.0.2"
},
"jest": {
"preset": "react-native",
+20 -17
View File
@@ -1,25 +1,28 @@
{
"name": "@polkadot/react-identicon",
"version": "0.62.1",
"version": "0.73.1",
"type": "module",
"description": "Renders an SVG picture representing an address",
"main": "index.js",
"author": "Jaco Greeff <jacogr@gmail.com>",
"maintainers": [
"Jaco Greeff <jacogr@gmail.com>"
"sideEffects": [
"./detectPackage.js",
"./detectPackage.cjs"
],
"author": "Jaco Greeff <jacogr@gmail.com>",
"maintainers": [],
"license": "Apache-2.0",
"dependencies": {
"@babel/runtime": "^7.12.5",
"@polkadot/keyring": "^4.0.1",
"@polkadot/ui-settings": "0.62.1",
"@polkadot/ui-shared": "0.62.1",
"@polkadot/util": "^4.0.1",
"@polkadot/util-crypto": "^4.0.1",
"@babel/runtime": "^7.13.10",
"@polkadot/keyring": "^6.1.1",
"@polkadot/ui-settings": "0.73.1",
"@polkadot/ui-shared": "0.73.1",
"@polkadot/util": "^6.1.1",
"@polkadot/util-crypto": "^6.1.1",
"color": "^3.1.3",
"ethereum-blockies-base64": "^1.0.2",
"jdenticon": "2.2.0",
"react-copy-to-clipboard": "^5.0.2",
"styled-components": "^5.2.1"
"jdenticon": "3.1.0",
"react-copy-to-clipboard": "^5.0.3",
"styled-components": "^5.2.3"
},
"peerDependencies": {
"@polkadot/keyring": "*",
@@ -31,10 +34,10 @@
"styled-components": "*"
},
"devDependencies": {
"@types/react-copy-to-clipboard": "^4.3.0",
"@types/react-dom": "^16.9.9",
"@types/styled-components": "^5.1.4",
"styled-components": "^5.2.1",
"@types/react-copy-to-clipboard": "^5.0.0",
"@types/react-dom": "^17.0.3",
"@types/styled-components": "^5.1.9",
"styled-components": "^5.2.3",
"xmlserializer": "^0.6.1"
}
}
+5 -4
View File
@@ -1,11 +1,12 @@
// Copyright 2017-2020 @polkadot/react-identicon authors & contributors
// Copyright 2017-2021 @polkadot/react-identicon authors & contributors
// SPDX-License-Identifier: Apache-2.0
import React from 'react';
import ReactDOM from 'react-dom';
import { encodeAddress, randomAsU8a } from '@polkadot/util-crypto';
import IdentityIcon from '.';
import { Identicon } from '.';
const THEMES = ['beachball', 'polkadot', 'substrate'];
@@ -23,7 +24,7 @@ export default class Demo extends React.PureComponent {
<div>
<div>
{identities.map((value, index): React.ReactNode => (
<IdentityIcon
<Identicon
key={value.toString()}
theme={THEMES[index % THEMES.length] as 'empty'}
value={value}
@@ -32,7 +33,7 @@ export default class Demo extends React.PureComponent {
</div>
<div>
{THEMES.map((theme): React.ReactNode => (
<IdentityIcon
<Identicon
key={theme}
theme={theme as 'empty'}
value='5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY'
+7 -6
View File
@@ -1,13 +1,14 @@
// Copyright 2017-2020 @polkadot/react-identicon authors & contributors
// Copyright 2017-2021 @polkadot/react-identicon authors & contributors
// SPDX-License-Identifier: Apache-2.0
import { Prefix } from '@polkadot/util-crypto/address/types';
import { IdentityProps as Props, Props as ComponentProps } from './types';
import type { Prefix } from '@polkadot/util-crypto/address/types';
import type { IdentityProps as Props, Props as ComponentProps } from './types';
import React from 'react';
import CopyToClipboard from 'react-copy-to-clipboard';
import styled from 'styled-components';
import settings, { ICON_DEFAULT_HOST } from '@polkadot/ui-settings';
import { ICON_DEFAULT_HOST, settings } from '@polkadot/ui-settings';
import { isHex, isU8a, u8aToHex } from '@polkadot/util';
import { decodeAddress, encodeAddress, ethereumEncode } from '@polkadot/util-crypto';
@@ -146,8 +147,8 @@ class BaseIcon extends React.PureComponent<Props, State> {
}
}
function Identicon (props: Props): React.ReactElement<Props> {
function Icon (props: Props): React.ReactElement<Props> {
return <BaseIcon {...props} />;
}
export default React.memo(Identicon);
export const Identicon = React.memo(Icon);
@@ -0,0 +1,10 @@
// Copyright 2017-2021 @polkadot/react-identicon authors & contributors
// SPDX-License-Identifier: Apache-2.0
import { packageInfo as settingsInfo } from '@polkadot/ui-settings/packageInfo';
import { packageInfo as sharedInfo } from '@polkadot/ui-shared/packageInfo';
import { detectPackage } from '@polkadot/util';
import { packageInfo } from './packageInfo';
detectPackage(packageInfo, typeof __dirname !== 'undefined' && __dirname, [settingsInfo, sharedInfo]);
@@ -1,12 +1,13 @@
// Copyright 2017-2020 @polkadot/react-identicon authors & contributors
// Copyright 2017-2021 @polkadot/react-identicon authors & contributors
// SPDX-License-Identifier: Apache-2.0
import { Props } from '../types';
import type { Props } from '../types';
import React, { useCallback } from 'react';
import { beachballIcon } from '@polkadot/ui-shared';
function Beachball ({ address, className = '', size, style }: Props): React.ReactElement<Props> {
function Identicon ({ address, className = '', size, style }: Props): React.ReactElement<Props> {
const updateElem = useCallback(
(node: HTMLDivElement): void => {
node && node.appendChild(
@@ -25,4 +26,4 @@ function Beachball ({ address, className = '', size, style }: Props): React.Reac
);
}
export default React.memo(Beachball);
export const Beachball = React.memo(Identicon);
+4 -4
View File
@@ -1,11 +1,11 @@
// Copyright 2017-2020 @polkadot/react-identicon authors & contributors
// Copyright 2017-2021 @polkadot/react-identicon authors & contributors
// SPDX-License-Identifier: Apache-2.0
import { Props } from '../types';
import type { Props } from '../types';
import React from 'react';
function Empty ({ className = '', size, style }: Props): React.ReactElement<Props> {
function Identicon ({ className = '', size, style }: Props): React.ReactElement<Props> {
return (
<svg
className={className}
@@ -17,4 +17,4 @@ function Empty ({ className = '', size, style }: Props): React.ReactElement<Prop
);
}
export default React.memo(Empty);
export const Empty = React.memo(Identicon);
@@ -1,13 +1,13 @@
// Copyright 2017-2020 @polkadot/react-identicon authors & contributors
// Copyright 2017-2021 @polkadot/react-identicon authors & contributors
// SPDX-License-Identifier: Apache-2.0
import { Props } from '../types';
import type { Props } from '../types';
import makeBlockie from 'ethereum-blockies-base64';
import React, { useMemo } from 'react';
import styled from 'styled-components';
function Ethereum ({ address, className = '', style }: Props): React.ReactElement<Props> {
function Identicon ({ address, className = '', style }: Props): React.ReactElement<Props> {
const imgSrc = useMemo(
() => makeBlockie(address),
[address]
@@ -22,7 +22,7 @@ function Ethereum ({ address, className = '', style }: Props): React.ReactElemen
);
}
export default React.memo(styled(Ethereum)(({ size }: Props) => `
export const Ethereum = React.memo(styled(Identicon)(({ size }: Props) => `
display: block;
height: ${size}px;
width: ${size}px;
@@ -1,12 +1,12 @@
// Copyright 2017-2020 @polkadot/react-identicon authors & contributors
// Copyright 2017-2021 @polkadot/react-identicon authors & contributors
// SPDX-License-Identifier: Apache-2.0
import { Props } from '../types';
import type { Props } from '../types';
import * as jdenticon from 'jdenticon';
import React from 'react';
import jdenticon from 'jdenticon';
function Jdenticon ({ className = '', publicKey, size, style }: Props): React.ReactElement<Props> {
function Identicon ({ className = '', publicKey, size, style }: Props): React.ReactElement<Props> {
return (
<div
className={className}
@@ -18,4 +18,4 @@ function Jdenticon ({ className = '', publicKey, size, style }: Props): React.Re
);
}
export default React.memo(Jdenticon);
export const Jdenticon = React.memo(Identicon);
@@ -1,5 +1,6 @@
// Copyright 2018-2020 @polkadot/react-identicon authors & contributors
// Copyright 2018-2021 @polkadot/react-identicon authors & contributors
// SPDX-License-Identifier: Apache-2.0
// Copyright 2018 Paritytech via paritytech/oo7/polkadot-identicon
// This has been converted from the original version that can be found at
@@ -15,10 +16,11 @@
// - Move constants to file-level
// - Overall it is now just a static component, expecting an address as an input value
import { Circle } from '@polkadot/ui-shared/icons/types';
import { Props } from '../types';
import type { Circle } from '@polkadot/ui-shared/icons/types';
import type { Props } from '../types';
import React from 'react';
import { polkadotIcon } from '@polkadot/ui-shared';
function renderCircle ({ cx, cy, fill, r }: Circle, key: number): React.ReactNode {
@@ -49,4 +51,4 @@ function Identicon ({ address, className = '', isAlternative = false, size, styl
);
}
export default React.memo(Identicon);
export const Polkadot = React.memo(Identicon);
+6 -6
View File
@@ -1,8 +1,8 @@
// Copyright 2017-2020 @polkadot/react-identicon authors & contributors
// Copyright 2017-2021 @polkadot/react-identicon authors & contributors
// SPDX-License-Identifier: Apache-2.0
export { default as Beachball } from './Beachball';
export { default as Empty } from './Empty';
export { default as Ethereum } from './Ethereum';
export { default as Jdenticon } from './Jdenticon';
export { default as Polkadot } from './Polkadot';
export { Beachball } from './Beachball';
export { Empty } from './Empty';
export { Ethereum } from './Ethereum';
export { Jdenticon } from './Jdenticon';
export { Polkadot } from './Polkadot';
+8 -2
View File
@@ -1,7 +1,13 @@
// Copyright 2017-2020 @polkadot/react-identicon authors & contributors
// Copyright 2017-2021 @polkadot/react-identicon authors & contributors
// SPDX-License-Identifier: Apache-2.0
import Identicon from './Identicon';
import './detectPackage';
import { Identicon } from './Identicon';
export * from './icons';
export { packageInfo } from './packageInfo';
export { Identicon };
export default Identicon;
@@ -0,0 +1,6 @@
// Copyright 2017-2021 @polkadot/react-identicon authors & contributors
// SPDX-License-Identifier: Apache-2.0
// Auto-generated by @polkadot/dev, do not edit
export const packageInfo = { name: '@polkadot/react-identicon', version: '0.73.1' };
+6 -3
View File
@@ -1,7 +1,8 @@
// Copyright 2018-2020 @polkadot/react-identicon authors & contributors
// Copyright 2018-2021 @polkadot/react-identicon authors & contributors
// SPDX-License-Identifier: Apache-2.0
import { Prefix } from '@polkadot/util-crypto/address/types';
import type { Prefix } from '@polkadot/util-crypto/address/types';
import React from 'react';
export interface BaseProps {
@@ -25,6 +26,8 @@ export interface IdentityProps extends BaseProps {
onCopy?: (value: string) => void;
prefix?: Prefix;
size?: number;
theme?: 'beachball' | 'empty' | 'ethereum' | 'jdenticon' | 'polkadot' | 'substrate';
theme?: IconTheme;
value?: string | Uint8Array | null;
}
export type IconTheme = 'beachball' | 'empty' | 'ethereum' | 'jdenticon' | 'polkadot' | 'substrate';
+1 -1
View File
@@ -1,4 +1,4 @@
// Copyright 2017-2020 @polkadot/react-identicon authors & contributors
// Copyright 2017-2021 @polkadot/react-identicon authors & contributors
// SPDX-License-Identifier: Apache-2.0
const path = require('path');
+9 -9
View File
@@ -1,24 +1,24 @@
{
"name": "@polkadot/react-qr",
"version": "0.62.1",
"version": "0.73.1",
"type": "module",
"description": "Generates and reads QR codes",
"main": "index.js",
"sideEffects": false,
"author": "Jaco Greeff <jacogr@gmail.com>",
"maintainers": [
"Jaco Greeff <jacogr@gmail.com>"
],
"maintainers": [],
"license": "Apache-2.0",
"dependencies": {
"@babel/runtime": "^7.12.5",
"@polkadot/util": "^4.0.1",
"@polkadot/util-crypto": "^4.0.1",
"@babel/runtime": "^7.13.10",
"@polkadot/util": "^6.1.1",
"@polkadot/util-crypto": "^6.1.1",
"qrcode-generator": "^1.4.4",
"react-qr-reader": "^2.2.1",
"styled-components": "^5.2.1"
"styled-components": "^5.2.3"
},
"devDependencies": {
"@types/react-qr-reader": "^2.1.3",
"@types/styled-components": "^5.1.4"
"@types/styled-components": "^5.1.9"
},
"peerDependencies": {
"@polkadot/util": "*",
+6 -5
View File
@@ -1,11 +1,12 @@
// Copyright 2017-2020 @polkadot/react-qr authors & contributors
// Copyright 2017-2021 @polkadot/react-qr authors & contributors
// SPDX-License-Identifier: Apache-2.0
import React, { useEffect, useMemo, useRef, useState } from 'react';
import styled from 'styled-components';
import { xxhashAsHex } from '@polkadot/util-crypto';
import qrcode from './qrcode';
import { qrcode } from './qrcode';
import { createFrames, createImgSize } from './util';
interface Props {
@@ -34,8 +35,8 @@ const TIMER_INC = 500;
function getDataUrl (value: Uint8Array): string {
const qr = qrcode(0, 'M');
// HACK See out qrcode stringToBytes override as used internally. This
// will only work for the case where we actuall pass `Bytes` in here
// HACK See our qrcode stringToBytes override as used internally. This
// will only work for the case where we actually pass `Bytes` in here
// eslint-disable-next-line @typescript-eslint/no-explicit-any
qr.addData(value as any, 'Byte');
qr.make();
@@ -130,7 +131,7 @@ function Display ({ className, size, skipEncoding, style, value }: Props): React
);
}
export default React.memo(styled(Display)`
export const QrDisplay = React.memo(styled(Display)`
.ui--qr-Display {
height: 100%;
width: 100%;
+4 -4
View File
@@ -1,10 +1,10 @@
// Copyright 2017-2020 @polkadot/react-qr authors & contributors
// Copyright 2017-2021 @polkadot/react-qr authors & contributors
// SPDX-License-Identifier: Apache-2.0
import React, { useMemo } from 'react';
import { QrDisplay } from './Display';
import { createAddressPayload } from './util';
import QrDisplay from './Display';
interface Props {
address: string;
@@ -14,7 +14,7 @@ interface Props {
style?: React.CSSProperties;
}
function DisplayExtrinsic ({ address, className, genesisHash, size, style }: Props): React.ReactElement<Props> | null {
function DisplayAddress ({ address, className, genesisHash, size, style }: Props): React.ReactElement<Props> | null {
const data = useMemo(
() => createAddressPayload(address, genesisHash),
[address, genesisHash]
@@ -35,4 +35,4 @@ function DisplayExtrinsic ({ address, className, genesisHash, size, style }: Pro
);
}
export default React.memo(DisplayExtrinsic);
export const QrDisplayAddress = React.memo(DisplayAddress);
+3 -3
View File
@@ -1,10 +1,10 @@
// Copyright 2017-2020 @polkadot/react-qr authors & contributors
// Copyright 2017-2021 @polkadot/react-qr authors & contributors
// SPDX-License-Identifier: Apache-2.0
import React, { useMemo } from 'react';
import { QrDisplay } from './Display';
import { createSignPayload } from './util';
import QrDisplay from './Display';
interface Props {
address: string;
@@ -36,4 +36,4 @@ function DisplayPayload ({ address, className, cmd, genesisHash, payload, size,
);
}
export default React.memo(DisplayPayload);
export const QrDisplayPayload = React.memo(DisplayPayload);
+4 -4
View File
@@ -1,11 +1,11 @@
// Copyright 2017-2020 @polkadot/react-qr authors & contributors
// Copyright 2017-2021 @polkadot/react-qr authors & contributors
// SPDX-License-Identifier: Apache-2.0
import { NetworkSpecsStruct } from '@polkadot/ui-settings';
import type { NetworkSpecsStruct } from '@polkadot/ui-settings/types';
import React, { useMemo } from 'react';
import QrDisplay from './Display';
import { QrDisplay } from './Display';
import { encodeString } from './util';
interface Props {
@@ -36,4 +36,4 @@ function DisplayNetworkSpecs ({ className, networkSpecs, size, style }: Props):
);
}
export default React.memo(DisplayNetworkSpecs);
export const QrNetworkSpecs = React.memo(DisplayNetworkSpecs);
+2 -2
View File
@@ -1,4 +1,4 @@
// Copyright 2017-2020 @polkadot/react-qr authors & contributors
// Copyright 2017-2021 @polkadot/react-qr authors & contributors
// SPDX-License-Identifier: Apache-2.0
import React, { useCallback, useMemo } from 'react';
@@ -54,7 +54,7 @@ function Scan ({ className, delay = DEFAULT_DELAY, onError = DEFAULT_ERROR, onSc
);
}
export default React.memo(styled(Scan)`
export const QrScan = React.memo(styled(Scan)`
.ui--qr-Scan {
display: inline-block;
height: 100%;
+4 -3
View File
@@ -1,12 +1,13 @@
// Copyright 2017-2020 @polkadot/react-qr authors & contributors
// Copyright 2017-2021 @polkadot/react-qr authors & contributors
// SPDX-License-Identifier: Apache-2.0
import React, { useCallback } from 'react';
import { assert } from '@polkadot/util';
import { decodeAddress } from '@polkadot/util-crypto';
import { ADDRESS_PREFIX, SEED_PREFIX } from './constants';
import QrScan from './Scan';
import { QrScan } from './Scan';
interface ScanType {
isAddress: boolean;
@@ -59,4 +60,4 @@ function ScanAddress ({ className, onError, onScan, size, style }: Props): React
);
}
export default React.memo(ScanAddress);
export const QrScanAddress = React.memo(ScanAddress);
+3 -3
View File
@@ -1,9 +1,9 @@
// Copyright 2017-2020 @polkadot/react-qr authors & contributors
// Copyright 2017-2021 @polkadot/react-qr authors & contributors
// SPDX-License-Identifier: Apache-2.0
import React, { useCallback } from 'react';
import QrScan from './Scan';
import { QrScan } from './Scan';
interface ScanType {
signature: string;
@@ -34,4 +34,4 @@ function ScanSignature ({ className, onError, onScan, size, style }: Props): Rea
);
}
export default React.memo(ScanSignature);
export const QrScanSignature = React.memo(ScanSignature);
+1 -1
View File
@@ -1,4 +1,4 @@
// Copyright 2017-2020 @polkadot/react-qr authors & contributors
// Copyright 2017-2021 @polkadot/react-qr authors & contributors
// SPDX-License-Identifier: Apache-2.0
const ADDRESS_PREFIX = 'substrate';
+7 -6
View File
@@ -1,8 +1,9 @@
// Copyright 2017-2020 @polkadot/react-qr authors & contributors
// Copyright 2017-2021 @polkadot/react-qr authors & contributors
// SPDX-License-Identifier: Apache-2.0
export { default as QrDisplayAddress } from './DisplayAddress';
export { default as QrDisplayPayload } from './DisplayPayload';
export { default as QrScanAddress } from './ScanAddress';
export { default as QrScanSignature } from './ScanSignature';
export { default as QrNetworkSpecs } from './NetworkSpecs';
export { QrDisplayAddress } from './DisplayAddress';
export { QrDisplayPayload } from './DisplayPayload';
export { QrScanAddress } from './ScanAddress';
export { QrScanSignature } from './ScanSignature';
export { QrNetworkSpecs } from './NetworkSpecs';
export { packageInfo } from './packageInfo';
+6
View File
@@ -0,0 +1,6 @@
// Copyright 2017-2021 @polkadot/react-qr authors & contributors
// SPDX-License-Identifier: Apache-2.0
// Auto-generated by @polkadot/dev, do not edit
export const packageInfo = { name: '@polkadot/react-qr', version: '0.73.1' };
+2 -2
View File
@@ -1,4 +1,4 @@
// Copyright 2017-2020 @polkadot/react-qr authors & contributors
// Copyright 2017-2021 @polkadot/react-qr authors & contributors
// SPDX-License-Identifier: Apache-2.0
import _qrcode from 'qrcode-generator';
@@ -12,4 +12,4 @@ const qrcode: typeof _qrcode = _qrcode;
(qrcode as any).stringToBytes = (data: Uint8Array): Uint8Array =>
data;
export default qrcode;
export { qrcode };
+3 -3
View File
@@ -1,11 +1,11 @@
// Copyright 2017-2020 @polkadot/react-qr authors & contributors
// Copyright 2017-2021 @polkadot/react-qr authors & contributors
// SPDX-License-Identifier: Apache-2.0
import { u8aConcat, u8aToHex, u8aToString } from '@polkadot/util';
import { createAddressPayload, createSignPayload, createFrames, decodeString, encodeNumber, encodeString } from './util';
import { randomAsU8a } from '@polkadot/util-crypto';
import { createAddressPayload, createFrames, createSignPayload, decodeString, encodeNumber, encodeString } from './util';
describe('util', (): void => {
describe('Uint8Array <-> string', (): void => {
let u8a: Uint8Array;
+1 -1
View File
@@ -1,4 +1,4 @@
// Copyright 2017-2020 @polkadot/react-qr authors & contributors
// Copyright 2017-2021 @polkadot/react-qr authors & contributors
// SPDX-License-Identifier: Apache-2.0
import { isString, u8aConcat, u8aToU8a } from '@polkadot/util';
+13 -10
View File
@@ -1,19 +1,22 @@
{
"name": "@polkadot/reactnative-identicon",
"version": "0.62.1",
"version": "0.73.1",
"type": "module",
"description": "Renders an SVG picture representing an address",
"main": "index.js",
"author": "Jaco Greeff <jacogr@gmail.com>",
"maintainers": [
"Jaco Greeff <jacogr@gmail.com>"
"sideEffects": [
"./detectPackage.js",
"./detectPackage.cjs"
],
"author": "Jaco Greeff <jacogr@gmail.com>",
"maintainers": [],
"license": "Apache-2.0",
"dependencies": {
"@babel/runtime": "^7.12.5",
"@polkadot/ui-shared": "0.62.1",
"@polkadot/util": "^4.0.1",
"@polkadot/util-crypto": "^4.0.1",
"react-native-svg": "^12.1.0"
"@babel/runtime": "^7.13.10",
"@polkadot/ui-shared": "0.73.1",
"@polkadot/util": "^6.1.1",
"@polkadot/util-crypto": "^6.1.1",
"react-native-svg": "^12.1.1-0"
},
"peerDependencies": {
"@polkadot/util": "*",
@@ -22,6 +25,6 @@
"react-native": "*"
},
"devDependencies": {
"@types/react-native": "^0.63.32"
"@types/react-native": "^0.64.2"
}
}
@@ -1,10 +1,11 @@
// Copyright 2017-2020 @polkadot/reactnative-identicon authors & contributors
// Copyright 2017-2021 @polkadot/reactnative-identicon authors & contributors
// SPDX-License-Identifier: Apache-2.0
import { Prefix } from '@polkadot/util-crypto/address/types';
import { Props as ComponentProps } from './types';
import type { Prefix } from '@polkadot/util-crypto/address/types';
import type { Props as ComponentProps } from './types';
import React from 'react';
import { isHex, isU8a, u8aToHex } from '@polkadot/util';
import { decodeAddress, encodeAddress } from '@polkadot/util-crypto';
@@ -0,0 +1,9 @@
// Copyright 2017-2021 @polkadot/reactnative-identicon authors & contributors
// SPDX-License-Identifier: Apache-2.0
import { packageInfo as sharedInfo } from '@polkadot/ui-shared/packageInfo';
import { detectPackage } from '@polkadot/util';
import { packageInfo } from './packageInfo';
detectPackage(packageInfo, typeof __dirname !== 'undefined' && __dirname, [sharedInfo]);
@@ -1,7 +1,7 @@
// Copyright 2017-2020 @polkadot/reactnative-identicon authors & contributors
// Copyright 2017-2021 @polkadot/reactnative-identicon authors & contributors
// SPDX-License-Identifier: Apache-2.0
import { Props } from '../types';
import type { Props } from '../types';
import React from 'react';
import { View } from 'react-native';
@@ -1,12 +1,13 @@
// Copyright 2018-2020 @polkadot/reactnative-identicon authors & contributors
// Copyright 2018-2021 @polkadot/reactnative-identicon authors & contributors
// SPDX-License-Identifier: Apache-2.0
import { Circle as CircleType } from '@polkadot/ui-shared/icons/types';
import { Props } from '../types';
import type { Circle as CircleType } from '@polkadot/ui-shared/icons/types';
import type { Props } from '../types';
import React from 'react';
import { View } from 'react-native';
import Svg, { Circle as SvgCircle } from 'react-native-svg';
import { polkadotIcon } from '@polkadot/ui-shared';
function renderCircle ({ cx, cy, fill, r }: CircleType, key: number): React.ReactNode {
@@ -1,4 +1,4 @@
// Copyright 2017-2020 @polkadot/reactnative-identicon authors & contributors
// Copyright 2017-2021 @polkadot/reactnative-identicon authors & contributors
// SPDX-License-Identifier: Apache-2.0
export { default as Empty } from './Empty';
+5 -1
View File
@@ -1,7 +1,11 @@
// Copyright 2017-2020 @polkadot/reactnative-identicon authors & contributors
// Copyright 2017-2021 @polkadot/reactnative-identicon authors & contributors
// SPDX-License-Identifier: Apache-2.0
import './detectPackage';
import Identicon from './Identicon';
export * from './icons';
export { packageInfo } from './packageInfo';
export default Identicon;
@@ -0,0 +1,6 @@
// Copyright 2017-2021 @polkadot/reactnative-identicon authors & contributors
// SPDX-License-Identifier: Apache-2.0
// Auto-generated by @polkadot/dev, do not edit
export const packageInfo = { name: '@polkadot/reactnative-identicon', version: '0.73.1' };
+1 -1
View File
@@ -1,4 +1,4 @@
// Copyright 2018-2020 @polkadot/reactnative-identicon authors & contributors
// Copyright 2018-2021 @polkadot/reactnative-identicon authors & contributors
// SPDX-License-Identifier: Apache-2.0
export interface Props {
+3 -5
View File
@@ -1,14 +1,12 @@
{
"name": "@polkadot/ui-assets",
"version": "0.62.1",
"version": "0.73.1",
"description": "Static assets shared accross projects",
"main": "index.js",
"author": "Jaco Greeff <jacogr@gmail.com>",
"maintainers": [
"Jaco Greeff <jacogr@gmail.com>"
],
"maintainers": [],
"license": "Apache-2.0",
"dependencies": {
"@babel/runtime": "^7.12.5"
"@babel/runtime": "^7.13.10"
}
}
+4
View File
@@ -0,0 +1,4 @@
// Copyright 2017-2021 @polkadot/ui-assets authors & contributors
// SPDX-License-Identifier: Apache-2.0
// empty
+6
View File
@@ -0,0 +1,6 @@
// Copyright 2017-2021 @polkadot/ui-assets authors & contributors
// SPDX-License-Identifier: Apache-2.0
// Auto-generated by @polkadot/dev, do not edit
export const packageInfo = { name: '@polkadot/ui-assets', version: '0.73.1' };
+1 -1
View File
@@ -1,4 +1,4 @@
// Copyright 2017-2020 @polkadot/ui-assets authors & contributors
// Copyright 2017-2021 @polkadot/ui-assets authors & contributors
// SPDX-License-Identifier: Apache-2.0
declare module '*.svg' {
+14 -25
View File
@@ -1,42 +1,31 @@
{
"name": "@polkadot/ui-keyring",
"version": "0.62.1",
"version": "0.73.1",
"type": "module",
"main": "index.js",
"repository": "https://github.com/polkadot-js/apps.git",
"author": "Jaco Greeff <jacogr@gmail.com>",
"maintainers": [
"Jaco Greeff <jacogr@gmail.com>"
"sideEffects": [
"./detectPackage.js",
"./detectPackage.cjs"
],
"repository": "github:polkadot-js/apps",
"author": "Jaco Greeff <jacogr@gmail.com>",
"maintainers": [],
"contributors": [],
"license": "Apache-2.0",
"browser": {
"./ledger/transportsNode": "./ledger/transportsEmpty"
},
"react-native": {
"./ledger/transportsNode": "./ledger/transportsEmpty",
"./ledger/transportsWeb": "./ledger/transportsEmpty"
},
"dependencies": {
"@babel/runtime": "^7.12.5",
"@ledgerhq/hw-transport-webusb": "^5.28.0",
"@polkadot/keyring": "^4.0.1",
"@polkadot/ui-settings": "0.62.1",
"@polkadot/util": "^4.0.1",
"@zondax/ledger-polkadot": "^0.11.0",
"@babel/runtime": "^7.13.10",
"@polkadot/hw-ledger": "^6.1.1",
"@polkadot/keyring": "^6.1.1",
"@polkadot/ui-settings": "0.73.1",
"@polkadot/util": "^6.1.1",
"@polkadot/x-rxjs": "^6.1.1",
"mkdirp": "^1.0.4",
"rxjs": "^6.6.3",
"store": "^2.0.12"
},
"devDependencies": {
"@polkadot/types": "^2.6.1",
"@types/ledgerhq__hw-transport-node-hid": "^4.22.2",
"@types/ledgerhq__hw-transport-webusb": "^4.70.1",
"@types/mkdirp": "^1.0.1",
"@types/store": "^2.0.2"
},
"optionalDependencies": {
"@ledgerhq/hw-transport-node-hid": "^5.28.0"
},
"peerDependencies": {
"@polkadot/keyring": "*",
"@polkadot/ui-settings": "*",
+18 -14
View File
@@ -1,21 +1,21 @@
// Copyright 2017-2020 @polkadot/ui-keyring authors & contributors
// Copyright 2017-2021 @polkadot/ui-keyring authors & contributors
// SPDX-License-Identifier: Apache-2.0
import { KeyringInstance, KeyringPair } from '@polkadot/keyring/types';
import { Prefix } from '@polkadot/util-crypto/address/types';
import { AddressSubject } from './observable/types';
import { KeyringOptions, KeyringStore } from './types';
import type { KeyringInstance, KeyringPair } from '@polkadot/keyring/types';
import type { Prefix } from '@polkadot/util-crypto/address/types';
import type { AddressSubject } from './observable/types';
import type { KeyringOptions, KeyringStore } from './types';
import testKeyring from '@polkadot/keyring/testing';
import { createTestKeyring } from '@polkadot/keyring/testing';
import { isBoolean, isString } from '@polkadot/util';
import accounts from './observable/accounts';
import addresses from './observable/addresses';
import contracts from './observable/contracts';
import env from './observable/development';
import BrowserStore from './stores/Browser'; // direct import (skip index with all)
import { accounts } from './observable/accounts';
import { addresses } from './observable/addresses';
import { contracts } from './observable/contracts';
import { env } from './observable/env';
import { BrowserStore } from './stores/Browser'; // direct import (skip index with all)
export default class Base {
export class Base {
#accounts: AddressSubject;
#addresses: AddressSubject;
@@ -103,14 +103,18 @@ export default class Base {
}
protected initKeyring (options: KeyringOptions): void {
const keyring = testKeyring(options, true);
const keyring = createTestKeyring(options, true);
if (isBoolean(options.isDevelopment)) {
this.setDevMode(options.isDevelopment);
}
this.#keyring = keyring;
this._genesisHash = options.genesisHash && options.genesisHash.toHex();
this._genesisHash = options.genesisHash && (
isString(options.genesisHash)
? options.genesisHash.toString()
: options.genesisHash.toHex()
);
this._store = options.store || this._store;
this.addAccountPairs();
+67 -33
View File
@@ -1,21 +1,23 @@
// Copyright 2017-2020 @polkadot/ui-keyring authors & contributors
// Copyright 2017-2021 @polkadot/ui-keyring authors & contributors
// SPDX-License-Identifier: Apache-2.0
import { KeyringPair, KeyringPair$Meta, KeyringPair$Json } from '@polkadot/keyring/types';
import { KeypairType } from '@polkadot/util-crypto/types';
import { AddressSubject, SingleAddress } from './observable/types';
import { CreateResult, KeyringAddress, KeyringAddressType, KeyringItemType, KeyringJson, KeyringJson$Meta, KeyringOptions, KeyringStruct } from './types';
import type { KeyringPair, KeyringPair$Json, KeyringPair$Meta } from '@polkadot/keyring/types';
import type { EncryptedJson } from '@polkadot/util-crypto/json/types';
import type { KeypairType } from '@polkadot/util-crypto/types';
import type { AddressSubject, SingleAddress } from './observable/types';
import type { CreateResult, KeyringAddress, KeyringAddressType, KeyringItemType, KeyringJson, KeyringJson$Meta, KeyringOptions, KeyringPairs$Json, KeyringStruct } from './types';
import BN from 'bn.js';
import createPair from '@polkadot/keyring/pair';
import chains from '@polkadot/ui-settings/defaults/chains';
import { bnToBn, hexToU8a, isHex, isString, u8aSorted } from '@polkadot/util';
import { base64Decode, createKeyMulti } from '@polkadot/util-crypto';
import env from './observable/development';
import Base from './Base';
import { accountKey, addressKey, accountRegex, addressRegex, contractKey, contractRegex } from './defaults';
import keyringOption from './options';
import { createPair } from '@polkadot/keyring/pair';
import { chains } from '@polkadot/ui-settings/defaults/chains';
import { bnToBn, hexToU8a, isHex, isString, stringToU8a, u8aSorted, u8aToString } from '@polkadot/util';
import { base64Decode, createKeyMulti, jsonDecrypt, jsonEncrypt } from '@polkadot/util-crypto';
import { env } from './observable/env';
import { Base } from './Base';
import { accountKey, accountRegex, addressKey, addressRegex, contractKey, contractRegex } from './defaults';
import { KeyringOption } from './options';
const RECENT_EXPIRY = 24 * 60 * 60;
@@ -23,6 +25,8 @@ const RECENT_EXPIRY = 24 * 60 * 60;
// Chain determination occurs outside of Keyring. Loading `keyring.loadAll({ type: 'ed25519' | 'sr25519' })` is triggered
// from the API after the chain is received
export class Keyring extends Base implements KeyringStruct {
public readonly keyringOption = new KeyringOption();
#stores = {
account: (): AddressSubject => this.accounts,
address: (): AddressSubject => this.addresses,
@@ -79,6 +83,24 @@ export class Keyring extends Base implements KeyringStruct {
return pair.toJson(password);
}
public async backupAccounts (addresses: string[], password: string): Promise<KeyringPairs$Json> {
const accountPromises = addresses.map((address) => {
return new Promise<KeyringJson>((resolve) => {
this._store.get(accountKey(address), resolve);
});
});
const accounts = await Promise.all(accountPromises);
return {
...jsonEncrypt(stringToU8a(JSON.stringify(accounts)), ['batch-pkcs8'], password),
accounts: accounts.map((account) => ({
address: account.address,
meta: account.meta
}))
};
}
public createFromJson (json: KeyringPair$Json, meta: KeyringPair$Meta = {}): KeyringPair {
return this.keyring.createFromJson({ ...json, meta: { ...(json.meta || {}), meta } });
}
@@ -93,7 +115,7 @@ export class Keyring extends Base implements KeyringStruct {
json.meta.whenEdited = Date.now();
this.keyring.addFromJson(json);
this.accounts.add(this._store, pair.address, json);
this.accounts.add(this._store, pair.address, json, pair.type);
}
public forgetAccount (address: string): void {
@@ -119,7 +141,7 @@ export class Keyring extends Base implements KeyringStruct {
return Object
.keys(available)
.map((address): KeyringAddress => this.getAddress(address, 'account') as KeyringAddress)
.filter((account): boolean => env.isDevelopment() || account.meta.isTesting !== true);
.filter((account) => env.isDevelopment() || account.meta.isTesting !== true);
}
public getAddress (_address: string | Uint8Array, type: KeyringItemType | null = null): KeyringAddress | undefined {
@@ -178,7 +200,7 @@ export class Keyring extends Base implements KeyringStruct {
// FIXME Just for the transition period (ignoreChecksum)
const pair = this.keyring.addFromJson(json as KeyringPair$Json, true);
this.accounts.add(this._store, pair.address, json);
this.accounts.add(this._store, pair.address, json, pair.type);
}
const [, hexAddr] = key.split(':');
@@ -235,7 +257,7 @@ export class Keyring extends Base implements KeyringStruct {
};
const pair = this.keyring.addFromAddress(address, json.meta);
this.accounts.add(this._store, pair.address, json);
this.accounts.add(this._store, pair.address, json, pair.type);
}
private allowGenesis (json?: KeyringJson | { meta: KeyringJson$Meta } | null): boolean {
@@ -259,32 +281,40 @@ export class Keyring extends Base implements KeyringStruct {
this._store.all((key: string, json: KeyringJson): void => {
if (options.filter ? options.filter(json) : true) {
if (this.allowGenesis(json)) {
if (accountRegex.test(key)) {
this.loadAccount(json, key);
} else if (addressRegex.test(key)) {
this.loadAddress(json, key);
} else if (contractRegex.test(key)) {
this.loadContract(json, key);
try {
if (this.allowGenesis(json)) {
if (accountRegex.test(key)) {
this.loadAccount(json, key);
} else if (addressRegex.test(key)) {
this.loadAddress(json, key);
} else if (contractRegex.test(key)) {
this.loadContract(json, key);
}
}
} catch (error) {
// ignore
}
}
});
injected.forEach((account): void => {
if (this.allowGenesis(account)) {
this.loadInjected(account.address, account.meta);
try {
this.loadInjected(account.address, account.meta);
} catch (error) {
// ignore
}
}
});
keyringOption.init(this);
this.keyringOption.init(this);
}
public restoreAccount (json: KeyringPair$Json, password: string): KeyringPair {
const cryptoType = Array.isArray(json.encoding.content) ? json.encoding.content[1] : 'ed25519';
const encType = Array.isArray(json.encoding.type) ? json.encoding.type : [json.encoding.type];
const pair = createPair(
{ toSS58: this.encodeAddress, type: cryptoType },
{ toSS58: this.encodeAddress, type: cryptoType as KeypairType },
{ publicKey: this.decodeAddress(json.address, true) },
json.meta,
isHex(json.encoded) ? hexToU8a(json.encoded) : base64Decode(json.encoded),
@@ -299,13 +329,21 @@ export class Keyring extends Base implements KeyringStruct {
return pair;
}
public restoreAccounts (json: EncryptedJson, password: string): void {
const accounts: KeyringJson[] = JSON.parse(u8aToString(jsonDecrypt(json, password))) as KeyringJson[];
accounts.forEach((account) => {
this.loadAccount(account, accountKey(account.address));
});
}
public saveAccount (pair: KeyringPair, password?: string): KeyringPair$Json {
this.addTimestamp(pair);
const json = pair.toJson(password);
this.keyring.addFromJson(json);
this.accounts.add(this._store, pair.address, json);
this.accounts.add(this._store, pair.address, json, pair.type);
return json;
}
@@ -317,7 +355,7 @@ export class Keyring extends Base implements KeyringStruct {
pair.setMeta(meta);
json.meta = pair.meta;
this.accounts.add(this._store, address, json);
this.accounts.add(this._store, address, json, pair.type);
});
}
@@ -364,7 +402,3 @@ export class Keyring extends Base implements KeyringStruct {
return this.addresses.subject.getValue()[address];
}
}
const keyringInstance = new Keyring();
export default keyringInstance;
+2 -2
View File
@@ -1,8 +1,8 @@
// Copyright 2017-2020 @polkadot/ui-keyring authors & contributors
// Copyright 2017-2021 @polkadot/ui-keyring authors & contributors
// SPDX-License-Identifier: Apache-2.0
import { u8aToHex } from '@polkadot/util';
import { decodeAddress } from '@polkadot/keyring';
import { u8aToHex } from '@polkadot/util';
const ACCOUNT_PREFIX = 'account:';
const ADDRESS_PREFIX = 'address:';
+9
View File
@@ -0,0 +1,9 @@
// Copyright 2017-2021 @polkadot/ui-keyring authors & contributors
// SPDX-License-Identifier: Apache-2.0
import { packageInfo as settingsInfo } from '@polkadot/ui-settings/packageInfo';
import { detectPackage } from '@polkadot/util';
import { packageInfo } from './packageInfo';
detectPackage(packageInfo, typeof __dirname !== 'undefined' && __dirname, [settingsInfo]);
+9 -11
View File
@@ -1,17 +1,15 @@
// Copyright 2017-2020 @polkadot/ui-keyring authors & contributors
// Copyright 2017-2021 @polkadot/ui-keyring authors & contributors
// SPDX-License-Identifier: Apache-2.0
import { detectPackage } from '@polkadot/util';
import './detectPackage';
import keyring, { Keyring } from './Keyring';
import Ledger from './ledger';
import { Keyring } from './Keyring';
// eslint-disable-next-line @typescript-eslint/no-var-requires
detectPackage(require('./package.json'), typeof __dirname !== 'undefined' && __dirname);
export { Ledger } from '@polkadot/hw-ledger';
export { packageInfo } from './packageInfo';
const keyring = new Keyring();
export { Keyring, keyring };
export default keyring;
export {
Keyring,
Ledger
};
+11
View File
@@ -0,0 +1,11 @@
// Copyright 2017-2021 @polkadot/util authors & contributors
// SPDX-License-Identifier: Apache-2.0
// Be able to import json in TS
// https://stackoverflow.com/questions/49996456/importing-json-file-in-typescript
declare module '*.json' {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const value: any;
export default value;
}
-116
View File
@@ -1,116 +0,0 @@
// Copyright 2017-2020 @polkadot/ui-keyring authors & contributors
// SPDX-License-Identifier: Apache-2.0
import Transport from '@ledgerhq/hw-transport';
import { AccountOptions, LedgerAddress, LedgerSignature, LedgerTypes, LedgerVersion } from './types';
import { ResponseBase, SubstrateApp, newKusamaApp, newPolkadotApp } from '@zondax/ledger-polkadot';
import { assert, bufferToU8a, u8aToBuffer, u8aToHex } from '@polkadot/util';
import allNode from './transportsNode';
import allWeb from './transportsWeb';
export const LEDGER_DEFAULT_ACCOUNT = 0x80000000;
export const LEDGER_DEFAULT_CHANGE = 0x80000000;
export const LEDGER_DEFAULT_INDEX = 0x80000000;
const SUCCESS_CODE = 0x9000;
const transports = allNode.concat(allWeb);
const APPS: Record<string, (transport: Transport) => SubstrateApp> = {
kusama: newKusamaApp,
polkadot: newPolkadotApp
};
type Chain = keyof typeof APPS;
// A very basic wrapper for a ledger app -
// - it connects automatically, creating an app as required
// - Promises return errors (instead of wrapper errors)
export default class Ledger {
#app: SubstrateApp | null = null;
#chain: Chain;
#transport: LedgerTypes;
constructor (transport: LedgerTypes, chain: Chain) {
// u2f is deprecated
assert(['hid', 'webusb'].includes(transport), `Unsupported transport ${transport}`);
assert(Object.keys(APPS).includes(chain), `Unsupported chain ${chain}`);
this.#chain = chain;
this.#transport = transport;
}
public async getAddress (confirm = false, accountOffset = 0, addressOffset = 0, { account = LEDGER_DEFAULT_ACCOUNT, addressIndex = LEDGER_DEFAULT_INDEX, change = LEDGER_DEFAULT_CHANGE }: Partial<AccountOptions> = {}): Promise<LedgerAddress> {
return this.#withApp(async (app: SubstrateApp): Promise<LedgerAddress> => {
const { address, pubKey } = await this.#wrapError(app.getAddress(account + accountOffset, change, addressIndex + addressOffset, confirm));
return {
address,
publicKey: `0x${pubKey}`
};
});
}
public async getVersion (): Promise<LedgerVersion> {
return this.#withApp(async (app: SubstrateApp): Promise<LedgerVersion> => {
const { device_locked: isLocked, major, minor, patch, test_mode: isTestMode } = await this.#wrapError(app.getVersion());
return {
isLocked,
isTestMode,
version: [major, minor, patch]
};
});
}
public async sign (message: Uint8Array, accountOffset = 0, addressOffset = 0, { account = LEDGER_DEFAULT_ACCOUNT, addressIndex = LEDGER_DEFAULT_INDEX, change = LEDGER_DEFAULT_CHANGE }: Partial<AccountOptions> = {}): Promise<LedgerSignature> {
return this.#withApp(async (app: SubstrateApp): Promise<LedgerSignature> => {
const buffer = u8aToBuffer(message);
const { signature } = await this.#wrapError(app.sign(account + accountOffset, change, addressIndex + addressOffset, buffer));
return {
signature: u8aToHex(bufferToU8a(signature))
};
});
}
#getApp = async (): Promise<SubstrateApp> => {
if (!this.#app) {
const def = transports.find(({ type }) => type === this.#transport);
assert(def, `Unable to find a transport for ${this.#transport}`);
const transport = await def.create();
this.#app = APPS[this.#chain](transport);
}
return this.#app;
};
#withApp = async <T> (fn: (app: SubstrateApp) => Promise<T>): Promise<T> => {
try {
const app = await this.#getApp();
return await fn(app);
} catch (error) {
this.#app = null;
throw error;
}
};
#wrapError = async <T extends ResponseBase> (promise: Promise<T>): Promise<T> => {
const result = await promise;
assert(result.return_code === SUCCESS_CODE, result.error_message);
return result;
};
}
@@ -1,8 +0,0 @@
// Copyright 2017-2020 @polkadot/ui-keyring authors & contributors
// SPDX-License-Identifier: Apache-2.0
import { TransportDef } from './types';
const transports: TransportDef[] = [];
export default transports;
@@ -1,17 +0,0 @@
// Copyright 2017-2020 @polkadot/ui-keyring authors & contributors
// SPDX-License-Identifier: Apache-2.0
import { TransportDef } from './types';
import Transport from '@ledgerhq/hw-transport';
import LedgerHid from '@ledgerhq/hw-transport-node-hid';
const transports: TransportDef[] = [
{
create: (): Promise<Transport> =>
LedgerHid.create(),
type: 'hid'
}
];
export default transports;
@@ -1,24 +0,0 @@
// Copyright 2017-2020 @polkadot/ui-keyring authors & contributors
// SPDX-License-Identifier: Apache-2.0
import { TransportDef } from './types';
import Transport from '@ledgerhq/hw-transport';
import LedgerWebUSB from '@ledgerhq/hw-transport-webusb';
const transports: TransportDef[] = [
// deprecated
// import LedgerU2F from '@ledgerhq/hw-transport-u2f';
// {
// create: (): Promise<Transport> =>
// LedgerU2F.create(),
// type: 'u2f'
// },
{
create: (): Promise<Transport> =>
LedgerWebUSB.create(),
type: 'webusb'
}
];
export default transports;
-32
View File
@@ -1,32 +0,0 @@
// Copyright 2017-2020 @polkadot/ui-keyring authors & contributors
// SPDX-License-Identifier: Apache-2.0
import Transport from '@ledgerhq/hw-transport';
export type LedgerTypes = 'hid' | 'u2f' | 'webusb';
export interface AccountOptions {
account: number;
addressIndex: number;
change: number;
}
export interface LedgerAddress {
address: string;
publicKey: string;
}
export interface LedgerSignature {
signature: string;
}
export interface LedgerVersion {
isLocked: boolean;
isTestMode: boolean;
version: [number, number, number];
}
export interface TransportDef {
create (): Promise<Transport>;
type: LedgerTypes;
}
@@ -1,8 +1,7 @@
// Copyright 2017-2020 @polkadot/ui-keyring authors & contributors
// Copyright 2017-2021 @polkadot/ui-keyring authors & contributors
// SPDX-License-Identifier: Apache-2.0
import { accountKey } from '../defaults';
import { genericSubject } from './genericSubject';
import genericSubject from './genericSubject';
export default genericSubject(accountKey, true);
export const accounts = genericSubject(accountKey, true);
@@ -1,8 +1,7 @@
// Copyright 2017-2020 @polkadot/ui-keyring authors & contributors
// Copyright 2017-2021 @polkadot/ui-keyring authors & contributors
// SPDX-License-Identifier: Apache-2.0
import { addressKey } from '../defaults';
import { genericSubject } from './genericSubject';
import genericSubject from './genericSubject';
export default genericSubject(addressKey);
export const addresses = genericSubject(addressKey);
@@ -1,8 +1,7 @@
// Copyright 2017-2020 @polkadot/ui-keyring authors & contributors
// Copyright 2017-2021 @polkadot/ui-keyring authors & contributors
// SPDX-License-Identifier: Apache-2.0
import { contractKey } from '../defaults';
import { genericSubject } from './genericSubject';
import genericSubject from './genericSubject';
export default genericSubject(contractKey);
export const contracts = genericSubject(contractKey);
@@ -1,11 +1,11 @@
// Copyright 2017-2020 @polkadot/ui-keyring authors & contributors
// Copyright 2017-2021 @polkadot/ui-keyring authors & contributors
// SPDX-License-Identifier: Apache-2.0
import { BehaviorSubject } from 'rxjs';
import { BehaviorSubject } from '@polkadot/x-rxjs';
const subject = new BehaviorSubject(false);
export default {
export const env = {
isDevelopment: (): boolean =>
subject.getValue(),
set: (isDevelopment: boolean): void => {
@@ -1,16 +1,17 @@
// Copyright 2017-2020 @polkadot/ui-keyring authors & contributors
// Copyright 2017-2021 @polkadot/ui-keyring authors & contributors
// SPDX-License-Identifier: Apache-2.0
import { SubjectInfo, AddressSubject, SingleAddress } from './types';
import { KeyringJson, KeyringStore } from '../types';
import type { KeypairType } from '@polkadot/util-crypto/types';
import type { KeyringJson, KeyringStore } from '../types';
import type { AddressSubject, SingleAddress, SubjectInfo } from './types';
import { BehaviorSubject } from 'rxjs';
import { BehaviorSubject } from '@polkadot/x-rxjs';
import createOptionItem from '../options/item';
import development from './development';
import { createOptionItem } from '../options/item';
import { env } from './env';
function callNext (current: SubjectInfo, subject: BehaviorSubject<SubjectInfo>, withTest: boolean): void {
const isDevMode = development.isDevelopment();
const isDevMode = env.isDevelopment();
const filtered: SubjectInfo = {};
Object.keys(current).forEach((key): void => {
@@ -24,24 +25,25 @@ function callNext (current: SubjectInfo, subject: BehaviorSubject<SubjectInfo>,
subject.next(filtered);
}
export default function genericSubject (keyCreator: (address: string) => string, withTest = false): AddressSubject {
export function genericSubject (keyCreator: (address: string) => string, withTest = false): AddressSubject {
let current: SubjectInfo = {};
const subject = new BehaviorSubject({});
const next = (): void => callNext(current, subject, withTest);
development.subject.subscribe(next);
env.subject.subscribe(next);
return {
add: (store: KeyringStore, address: string, json: KeyringJson): SingleAddress => {
add: (store: KeyringStore, address: string, json: KeyringJson, type?: KeypairType): SingleAddress => {
current = { ...current };
current[address] = {
json: { ...json, address },
option: createOptionItem(address, json.meta.name)
option: createOptionItem(address, json.meta.name),
type
};
// we do not store dev accounts, injected or hardware (the latter two are external/transient)
if (!json.meta.isInjected && !json.meta.isHardware && (!json.meta.isTesting || development.isDevelopment())) {
// we do not store dev or injected accounts (external/transient)
if (!json.meta.isInjected && (!json.meta.isTesting || env.isDevelopment())) {
store.set(keyCreator(address), json);
}
+8 -8
View File
@@ -1,14 +1,14 @@
// Copyright 2017-2020 @polkadot/ui-keyring authors & contributors
// Copyright 2017-2021 @polkadot/ui-keyring authors & contributors
// SPDX-License-Identifier: Apache-2.0
import { SubjectInfo } from './types';
import type { SubjectInfo } from './types';
import { combineLatest } from 'rxjs';
import { map } from 'rxjs/operators';
import { combineLatest } from '@polkadot/x-rxjs';
import { map } from '@polkadot/x-rxjs/operators';
import accounts from './accounts';
import addresses from './addresses';
import contracts from './contracts';
import { accounts } from './accounts';
import { addresses } from './addresses';
import { contracts } from './contracts';
interface Result {
accounts: SubjectInfo;
@@ -16,7 +16,7 @@ interface Result {
contracts: SubjectInfo;
}
export default combineLatest(
export const obervableAll = combineLatest(
accounts.subject,
addresses.subject,
contracts.subject
+7 -5
View File
@@ -1,13 +1,15 @@
// Copyright 2017-2020 @polkadot/ui-keyring authors & contributors
// Copyright 2017-2021 @polkadot/ui-keyring authors & contributors
// SPDX-License-Identifier: Apache-2.0
import { BehaviorSubject } from 'rxjs';
import { KeyringSectionOption } from '../options/types';
import { KeyringJson, KeyringStore } from '../types';
import type { KeypairType } from '@polkadot/util-crypto/types';
import type { BehaviorSubject } from '@polkadot/x-rxjs';
import type { KeyringSectionOption } from '../options/types';
import type { KeyringJson, KeyringStore } from '../types';
export interface SingleAddress {
json: KeyringJson;
option: KeyringSectionOption;
type?: KeypairType;
}
export interface SubjectInfo {
@@ -15,7 +17,7 @@ export interface SubjectInfo {
}
export interface AddressSubject {
add: (store: KeyringStore, address: string, json: KeyringJson) => SingleAddress;
add: (store: KeyringStore, address: string, json: KeyringJson, type?: KeypairType) => SingleAddress;
remove: (store: KeyringStore, address: string) => void;
subject: BehaviorSubject<SubjectInfo>;
}
@@ -1,19 +1,22 @@
// Copyright 2017-2020 @polkadot/ui-keyring authors & contributors
// Copyright 2017-2021 @polkadot/ui-keyring authors & contributors
// SPDX-License-Identifier: Apache-2.0
import { KeyringStruct } from '../types';
import keyringOptionInstance from '.';
import type { KeyringStruct } from '../types';
import { KeyringOption } from '.';
const keyringOption = new KeyringOption();
describe('KeyringOption', (): void => {
it('should not allow initOptions to be called more than once', (): void => {
const state: Partial<KeyringStruct> = {};
// first call
keyringOptionInstance.init(state as KeyringStruct);
keyringOption.init(state as KeyringStruct);
// second call
expect((): void => {
keyringOptionInstance.init(state as KeyringStruct);
keyringOption.init(state as KeyringStruct);
}).toThrowError('Unable to initialise options more than once');
});
});
+8 -12
View File
@@ -1,14 +1,14 @@
// Copyright 2017-2020 @polkadot/ui-keyring authors & contributors
// Copyright 2017-2021 @polkadot/ui-keyring authors & contributors
// SPDX-License-Identifier: Apache-2.0
import { KeyringStruct } from '../types';
import { SingleAddress } from '../observable/types';
import { KeyringOptions, KeyringOptionInstance, KeyringSectionOption, KeyringSectionOptions } from './types';
import type { SingleAddress } from '../observable/types';
import type { KeyringStruct } from '../types';
import type { KeyringOptionInstance, KeyringOptions, KeyringSectionOption, KeyringSectionOptions } from './types';
import { BehaviorSubject } from 'rxjs';
import { assert } from '@polkadot/util';
import { BehaviorSubject } from '@polkadot/x-rxjs';
import observableAll from '../observable';
import { obervableAll } from '../observable';
let hasCalledInitOptions = false;
@@ -34,7 +34,7 @@ const sortByCreated = (a: SingleAddress, b: SingleAddress): number => {
return 0;
};
class KeyringOption implements KeyringOptionInstance {
export class KeyringOption implements KeyringOptionInstance {
public readonly optionsSubject: BehaviorSubject<KeyringOptions> = new BehaviorSubject(this.emptyOptions());
public createOptionHeader (name: string): KeyringSectionOption {
@@ -48,7 +48,7 @@ class KeyringOption implements KeyringOptionInstance {
public init (keyring: KeyringStruct): void {
assert(!hasCalledInitOptions, 'Unable to initialise options more than once');
observableAll.subscribe((): void => {
obervableAll.subscribe((): void => {
const opts = this.emptyOptions();
this.addAccounts(keyring, opts);
@@ -138,7 +138,3 @@ class KeyringOption implements KeyringOptionInstance {
};
}
}
const keyringOptionInstance = new KeyringOption();
export default keyringOptionInstance;
+3 -3
View File
@@ -1,11 +1,11 @@
// Copyright 2017-2020 @polkadot/ui-keyring authors & contributors
// Copyright 2017-2021 @polkadot/ui-keyring authors & contributors
// SPDX-License-Identifier: Apache-2.0
import { KeyringSectionOption } from './types';
import type { KeyringSectionOption } from './types';
import { isUndefined } from '@polkadot/util';
export default function createItem (address: string, _name?: string): KeyringSectionOption {
export function createOptionItem (address: string, _name?: string): KeyringSectionOption {
const name = isUndefined(_name)
? (
(address.length > 15)
+2 -2
View File
@@ -1,7 +1,7 @@
// Copyright 2017-2020 @polkadot/ui-keyring authors & contributors
// Copyright 2017-2021 @polkadot/ui-keyring authors & contributors
// SPDX-License-Identifier: Apache-2.0
import { KeyringItemType, KeyringStruct } from '../types';
import type { KeyringItemType, KeyringStruct } from '../types';
export interface KeyringSectionOption {
key: string | null;
+6
View File
@@ -0,0 +1,6 @@
// Copyright 2017-2021 @polkadot/ui-keyring authors & contributors
// SPDX-License-Identifier: Apache-2.0
// Auto-generated by @polkadot/dev, do not edit
export const packageInfo = { name: '@polkadot/ui-keyring', version: '0.73.1' };
+3 -3
View File
@@ -1,11 +1,11 @@
// Copyright 2017-2020 @polkadot/ui-keyring authors & contributors
// Copyright 2017-2021 @polkadot/ui-keyring authors & contributors
// SPDX-License-Identifier: Apache-2.0
import { KeyringStore, KeyringJson } from '../types';
import type { KeyringJson, KeyringStore } from '../types';
import store from 'store';
export default class BrowserStore implements KeyringStore {
export class BrowserStore implements KeyringStore {
public all (cb: (key: string, value: KeyringJson) => void): void {
store.each((value: KeyringJson, key: string): void => {
cb(key, value);
+4 -3
View File
@@ -1,15 +1,16 @@
// Copyright 2017-2020 @polkadot/ui-keyring authors & contributors
// Copyright 2017-2021 @polkadot/ui-keyring authors & contributors
// SPDX-License-Identifier: Apache-2.0
import { KeyringStore, KeyringJson } from '../types';
import type { KeyringJson, KeyringStore } from '../types';
import fs from 'fs';
import mkdirp from 'mkdirp';
import path from 'path';
import { assert } from '@polkadot/util';
// NOTE untested and unused by any known apps, probably broken in various mysterious ways
export default class FileStore implements KeyringStore {
export class FileStore implements KeyringStore {
#path: string;
constructor (path: string) {
+3 -3
View File
@@ -1,5 +1,5 @@
// Copyright 2017-2020 @polkadot/ui-keyring authors & contributors
// Copyright 2017-2021 @polkadot/ui-keyring authors & contributors
// SPDX-License-Identifier: Apache-2.0
export { default as BrowserStore } from './Browser';
export { default as FileStore } from './File';
export { BrowserStore } from './Browser';
export { FileStore } from './File';
+12 -6
View File
@@ -1,10 +1,10 @@
// Copyright 2017-2020 @polkadot/ui-keyring authors & contributors
// Copyright 2017-2021 @polkadot/ui-keyring authors & contributors
// SPDX-License-Identifier: Apache-2.0
import { Hash } from '@polkadot/types/interfaces';
import { KeyringInstance as BaseKeyringInstance, KeyringPair, KeyringPair$Meta, KeyringPair$Json, KeyringOptions as KeyringOptionsBase } from '@polkadot/keyring/types';
import { KeypairType } from '@polkadot/util-crypto/types';
import { AddressSubject, SingleAddress } from './observable/types';
import type { KeyringInstance as BaseKeyringInstance, KeyringOptions as KeyringOptionsBase, KeyringPair, KeyringPair$Json, KeyringPair$Meta } from '@polkadot/keyring/types';
import type { EncryptedJson } from '@polkadot/util-crypto/json/types';
import type { KeypairType } from '@polkadot/util-crypto/types';
import type { AddressSubject, SingleAddress } from './observable/types';
export interface ContractMeta {
abi: string;
@@ -31,6 +31,10 @@ export interface KeyringJson {
meta: KeyringJson$Meta;
}
export interface KeyringPairs$Json extends EncryptedJson {
accounts: KeyringJson[];
}
export interface KeyringStore {
all: (cb: (key: string, value: KeyringJson) => void) => void;
get: (key: string, cb: (value: KeyringJson) => void) => void;
@@ -40,7 +44,7 @@ export interface KeyringStore {
export interface KeyringOptions extends KeyringOptionsBase {
filter?: (json: KeyringJson) => boolean;
genesisHash?: Hash;
genesisHash?: string | { toHex: () => string };
isDevelopment?: boolean;
store?: KeyringStore;
}
@@ -71,6 +75,7 @@ export interface KeyringStruct {
addPair: (pair: KeyringPair, password: string) => CreateResult;
addUri: (suri: string, password?: string, meta?: KeyringPair$Meta, type?: KeypairType) => CreateResult;
backupAccount: (pair: KeyringPair, password: string) => KeyringPair$Json;
backupAccounts: (addresses: string[], password: string) => Promise<KeyringPairs$Json>
createFromUri (suri: string, meta?: KeyringPair$Meta, type?: KeypairType): KeyringPair;
decodeAddress: (key: string | Uint8Array) => Uint8Array;
encodeAddress: (key: string | Uint8Array) => string;
@@ -90,6 +95,7 @@ export interface KeyringStruct {
isPassValid: (password: string) => boolean;
loadAll: (options: KeyringOptions) => void;
restoreAccount: (json: KeyringPair$Json, password: string) => KeyringPair;
restoreAccounts: (json: EncryptedJson, password: string) => void;
saveAccount: (pair: KeyringPair, password?: string) => KeyringPair$Json;
saveAccountMeta: (pair: KeyringPair, meta: KeyringPair$Meta) => void;
saveAddress: (address: string, meta: KeyringPair$Meta) => KeyringPair$Json;
+7 -7
View File
@@ -1,17 +1,17 @@
{
"name": "@polkadot/ui-settings",
"version": "0.62.1",
"version": "0.73.1",
"type": "module",
"description": "Manages app settings",
"main": "index.js",
"sideEffects": false,
"author": "Jaco Greeff <jacogr@gmail.com>",
"maintainers": [
"Jaco Greeff <jacogr@gmail.com>"
],
"maintainers": [],
"license": "Apache-2.0",
"dependencies": {
"@babel/runtime": "^7.12.5",
"@polkadot/networks": "^4.0.1",
"@polkadot/util": "^4.0.1",
"@babel/runtime": "^7.13.10",
"@polkadot/networks": "^6.1.1",
"@polkadot/util": "^6.1.1",
"eventemitter3": "^4.0.7",
"store": "^2.0.12"
},
+10 -6
View File
@@ -1,12 +1,14 @@
// Copyright 2017-2020 @polkadot/ui-settings authors & contributors
// Copyright 2017-2021 @polkadot/ui-settings authors & contributors
// SPDX-License-Identifier: Apache-2.0
import type { Option, SettingsStruct } from './types';
import EventEmitter from 'eventemitter3';
import store from 'store';
import { isUndefined } from '@polkadot/util';
import { CAMERA_DEFAULT, CAMERA, CRYPTOS, CRYPTOS_ETH, ENDPOINT_DEFAULT, ENDPOINTS, ICON_DEFAULT, ICONS, LANGUAGE_DEFAULT, LEDGER_CONN, LEDGER_CONN_DEFAULT, LOCKING_DEFAULT, LOCKING, PREFIX_DEFAULT, PREFIXES, UIMODE_DEFAULT, UIMODES, UITHEME_DEFAULT, UITHEMES } from './defaults';
import { Option, SettingsStruct } from './types';
import { CAMERA, CAMERA_DEFAULT, CRYPTOS, CRYPTOS_ETH, CRYPTOS_LEDGER, ENDPOINT_DEFAULT, ENDPOINTS, ICON_DEFAULT, ICONS, LANGUAGE_DEFAULT, LEDGER_CONN, LEDGER_CONN_DEFAULT, LOCKING, LOCKING_DEFAULT, PREFIX_DEFAULT, PREFIXES, UIMODE_DEFAULT, UIMODES, UITHEME_DEFAULT, UITHEMES } from './defaults';
type ChangeCallback = (settings: SettingsStruct) => void;
type OnTypes = 'change';
@@ -104,6 +106,10 @@ export class Settings implements SettingsStruct {
return CRYPTOS_ETH;
}
public get availableCryptosLedger (): Option[] {
return CRYPTOS_LEDGER;
}
public get availableIcons (): Option[] {
return ICONS;
}
@@ -168,6 +174,4 @@ export class Settings implements SettingsStruct {
}
}
const settings = new Settings();
export default settings;
export const settings = new Settings();
+3 -3
View File
@@ -1,4 +1,4 @@
// Copyright 2017-2020 @polkadot/ui-settings authors & contributors
// Copyright 2017-2021 @polkadot/ui-settings authors & contributors
// SPDX-License-Identifier: Apache-2.0
import known from '@polkadot/networks';
@@ -6,7 +6,7 @@ import known from '@polkadot/networks';
type ChainDef = string[];
const chains: Record <string, ChainDef> = known
.filter(({ genesisHash }) => genesisHash.length > 1)
.filter((n) => n.genesisHash.length)
.reduce((chains, { genesisHash, network }) => ({ ...chains, [network]: genesisHash }), {});
export default chains;
export { chains };

Some files were not shown because too many files have changed in this diff Show More