Compare commits

...
93 Commits
Author SHA1 Message Date
Github Actions 04a28967c7 [CI Skip] release/stable 6.9.1
skip-checks: true
2021-06-19 04:27:32 +00:00
Jaco 47c831d672 6.9 (#1017) 2021-06-19 06:18:48 +02:00
Github Actions 3c4c2cf540 [CI Skip] release/beta 6.8.2-1
skip-checks: true
2021-06-18 14:30:59 +00:00
Jaco f383487764 Mnemonic compare test (w/ arrayRange) (#1016)
* Mnemonic compare test (w/ arrayRange)

* Update packages/util-crypto/src/mnemonic/toMiniSecretCmp.spec.ts

* Update packages/util-crypto/src/mnemonic/toMiniSecretCmp.spec.ts

* --testPathIgnorePattern toMiniSecretCmp

* patterns

* Prettify tests with .each

* with and without password
2021-06-18 16:23:50 +02:00
Github Actions d900dec667 [CI Skip] release/beta 6.8.2-0
skip-checks: true
2021-06-17 09:12:38 +00:00
Jaco 49d200fb85 Add u8aCmp (sorting determination) (#1015)
* Add u8aCmp (sorting determination)

* Update packages/util/src/u8a/cmp.ts

* Update packages/util/src/u8a/cmp.ts

* Update packages/util/src/u8a/cmp.ts

* Use u8aCmp in u8aEq
2021-06-17 11:03:02 +02:00
Github Actions 2f9d117cc6 [CI Skip] release/stable 6.8.1
skip-checks: true
2021-06-14 05:18:19 +00:00
Jaco ef44de3ebe 6.8 (#1014) 2021-06-14 07:09:38 +02:00
Github Actions 76d03bb504 [CI Skip] release/beta 6.7.2-8
skip-checks: true
2021-06-13 07:56:44 +00:00
Jaco b58543237f Sync ss58 (#1013) 2021-06-13 09:48:35 +02:00
Github Actions 4859157264 [CI Skip] release/beta 6.7.2-7
skip-checks: true
2021-06-11 10:10:49 +00:00
Jaco a5f3ce20ae Fix internal bn/* imports (#1010) 2021-06-11 12:02:24 +02:00
Github Actions 14fe54d2af [CI Skip] release/beta 6.7.2-6
skip-checks: true
2021-06-11 09:50:49 +00:00
Jaco f2d611e26d BN util export (& imports adjust) (#1009)
* BN util export (& imports adjust)

* Fix hexToBn

* Adjusts test

* Move bn export
2021-06-11 11:42:29 +02:00
Github Actions 700774b207 [CI Skip] release/beta 6.7.2-5
skip-checks: true
2021-06-08 15:12:16 +00:00
Jaco 770446c052 Prettier ignore all (#1007) 2021-06-08 17:04:13 +02:00
Github Actions f576b99c5c [CI Skip] release/beta 6.7.2-4
skip-checks: true
2021-06-08 09:26:36 +00:00
Raymond Zhong 678e888a4a Add Edgeware ledger app (#1006)
* Add Edgeware ledger app

* Add edgeware slip44
2021-06-08 11:17:39 +02:00
Github Actions 3335215866 [CI Skip] release/beta 6.7.2-3
skip-checks: true
2021-06-07 14:08:51 +00:00
Jaco Greeff d4a64e7a5a Adjust cron locks 2021-06-07 17:00:17 +03:00
Github Actions d778157d5a [CI Skip] release/beta 6.7.2-2
skip-checks: true
2021-06-07 13:56:48 +00:00
Jaco Greeff 3d0f6dafa5 lock cron 2021-06-07 16:48:16 +03:00
Github Actions 374a6ba5d6 [CI Skip] release/beta 6.7.2-1
skip-checks: true
2021-06-06 19:33:34 +00:00
Jaco Greeff eee6160060 Adjust semgrep check 2021-06-06 22:25:12 +03:00
Github Actions 5202b3febb [CI Skip] release/beta 6.7.2-0
skip-checks: true
2021-06-06 19:06:59 +00:00
Agustinus TheodorusandAgustinus Theodorus a0d48fdb48 docs: fix typo in naclSeal docs. (#1005)
Co-authored-by: Agustinus Theodorus <agustinus.theodorus@binus.edu>
2021-06-06 20:58:43 +02:00
Github Actions 831fddafd7 [CI Skip] release/stable 6.7.1
skip-checks: true
2021-06-06 16:36:58 +00:00
Jaco 278a30cd7d 6.7 (#1004) 2021-06-06 18:29:53 +02:00
Github Actions 55b65b202e [CI Skip] release/beta 6.6.2-18
skip-checks: true
2021-06-05 11:16:55 +00:00
Jaco Greeff e1b6456a14 No semgrep.yml on forks 2021-06-05 14:07:36 +03:00
Github Actions 4f285c989d [CI Skip] release/beta 6.6.2-17
skip-checks: true
2021-06-05 07:31:52 +00:00
Jaco Greeff 7cc946e19f Don't include ci in stale 2021-06-05 10:23:21 +03:00
Github Actions bc783be346 [CI Skip] release/beta 6.6.2-16
skip-checks: true
2021-06-05 06:46:34 +00:00
Jaco Greeff a156a2da82 push-master.yml adjust skip 2021-06-05 09:38:08 +03:00
Github Actions 0131915253 [CI Skip] release/beta 6.6.2-15
skip-checks: true
2021-06-05 06:28:11 +00:00
Jaco Greeff 97cb8a76f1 semgrep.yml on PR 2021-06-05 09:19:57 +03:00
Github Actions 80129ae1b7 [CI Skip] release/beta 6.6.2-14
skip-checks: true
2021-06-04 15:06:57 +00:00
Jaco Greeff 3f4ac9e8aa semgrep.yml update 2021-06-04 17:58:12 +03:00
Github Actions 8707810690 [CI Skip] release/beta 6.6.2-13
skip-checks: true
2021-06-04 10:14:02 +00:00
Jaco 88edb9103f Bump deps (#1002) 2021-06-04 12:06:53 +02:00
Github Actions 849546e97c [CI Skip] release/beta 6.6.2-12
skip-checks: true
2021-06-04 08:46:31 +00:00
Jaco Greeff d6959738db semgrep on master only 2021-06-04 11:38:37 +03:00
Github Actions f70a125b18 [CI Skip] release/beta 6.6.2-11
skip-checks: true
2021-06-04 05:44:30 +00:00
Jaco Greeff fe7f6baee4 semgrep only for non-forked 2021-06-04 08:35:59 +03:00
Github Actions 2d264b5fba [CI Skip] release/beta 6.6.2-10
skip-checks: true
2021-06-03 16:08:03 +00:00
Jaco 74bbbe02d9 Bump Ledger WebUsb (#1001) 2021-06-03 18:01:01 +02:00
Github Actions a6cd04a441 [CI Skip] release/beta 6.6.2-9
skip-checks: true
2021-06-03 15:23:37 +00:00
Jaco Greeff f7884093ca lock.yml cron 2021-06-03 18:14:49 +03:00
Github Actions e327fd3e51 [CI Skip] release/beta 6.6.2-8
skip-checks: true
2021-06-02 16:14:29 +00:00
Jaco Greeff ade6cf7ac0 fix stale.yml 2021-06-02 19:06:29 +03:00
Jaco 3404015fc3 Add WebHID transport for Ledger (#1000)
* Add WebHID transport for Ledger

* Update packages/hw-ledger-transports/package.json

* Bump yarn

* yarn.lock interval

* types for transport
2021-06-02 18:00:53 +02:00
Github Actions f91911e9f7 [CI Skip] release/beta 6.6.2-7
skip-checks: true
2021-06-02 07:13:38 +00:00
Jaco Greeff a3631278df cron workflows 2021-06-02 10:05:54 +03:00
Github Actions a0eab88134 [CI Skip] release/beta 6.6.2-6
skip-checks: true
2021-06-01 11:00:02 +00:00
Jaco 45795a5d11 Testing keyring adjustments (#997)
* Testing keyring adjustments

* Revert, add  // nosemgrep

* explicit rule ignore

* revert

* Remove Gerald test
2021-06-01 12:51:51 +02:00
Github Actions 4bb3efa25c [CI Skip] release/beta 6.6.2-5
skip-checks: true
2021-06-01 10:06:03 +00:00
Jaco Greeff 783a76932c semgrep.yml 2021-06-01 12:58:30 +03:00
Github Actions 006eb3c76e [CI Skip] release/beta 6.6.2-4
skip-checks: true
2021-06-01 06:11:05 +00:00
Jaco Greeff 2326d26de9 cron daily only 2021-06-01 09:03:55 +03:00
Github Actions 7c9f69ea20 [CI Skip] release/beta 6.6.2-3
skip-checks: true
2021-05-31 20:22:12 +00:00
Jaco Greeff 0107f7af42 cron locks 2021-05-31 23:15:43 +03:00
Github Actions 4e2e133790 [CI Skip] release/beta 6.6.2-2
skip-checks: true
2021-05-31 07:58:51 +00:00
Jaco 0d42250171 Update .123trigger 2021-05-31 09:50:41 +02:00
Github Actions 599c81cf94 [CI Skip] release/beta 6.6.2-1
skip-checks: true
2021-05-31 07:49:56 +00:00
Jaco Greeff d11e393007 Bump dev 2021-05-31 10:42:42 +03:00
Jaco c6879f779b Bump dev (#996) 2021-05-31 09:17:11 +02:00
Jaco Greeff d17b8f0bd6 lock.yml 2021-05-30 22:22:58 +03:00
Github Actions 238ba6a462 [CI Skip] release/beta 6.6.2-1
skip-checks: true
2021-05-30 09:41:12 +00:00
Jaco 566b6730bc Bump berry (#995)
* Bump berry

* Update tests
2021-05-30 11:33:46 +02:00
Github Actions 09aa042606 [CI Skip] release/beta 6.6.2-0
skip-checks: true
2021-05-29 08:27:17 +00:00
Jaco Greeff acd09c3024 Update stale.yml 2021-05-29 11:18:47 +03:00
Github Actions 0cbb06a6da [CI Skip] release/stable 6.6.1
skip-checks: true
2021-05-29 07:25:59 +00:00
Jaco Greeff 9992feaa7b Actual 6.6 bump 2021-05-29 10:18:50 +03:00
Github Actions bb968d51b0 [CI Skip] release/beta 6.5.2-6
skip-checks: true
2021-05-29 07:17:23 +00:00
Jaco b6001796d7 6.6 (#994) 2021-05-29 09:10:19 +02:00
Github Actions 8ab9387076 [CI Skip] release/beta 6.5.2-5
skip-checks: true
2021-05-28 08:48:07 +00:00
Jaco Greeff f9fd0eeda3 Update stale.yml 2021-05-28 11:39:39 +03:00
Github Actions f2cee9c33d [CI Skip] release/beta 6.5.2-4
skip-checks: true
2021-05-28 08:24:13 +00:00
Jaco a860b09638 Add stale.yml (#993) 2021-05-28 10:16:03 +02:00
Github Actions be3e83f4e3 [CI Skip] release/beta 6.5.2-3
skip-checks: true
2021-05-28 07:52:13 +00:00
Jaco 5788df3f57 Adjust HD path validation & replacement (#992) 2021-05-28 09:43:28 +02:00
Github Actions ec286a57d1 [CI Skip] release/beta 6.5.2-2
skip-checks: true
2021-05-27 05:26:39 +00:00
Jaco 655eb9f128 Align ss58 with upstream (+3 entries) (#990) 2021-05-27 07:18:23 +02:00
Github Actions 37d95fe314 [CI Skip] release/beta 6.5.2-1
skip-checks: true
2021-05-26 08:42:07 +00:00
Jaco 830a2c69d8 Bump dev (#988) 2021-05-26 10:33:36 +02:00
Github Actions ead94a4493 [CI Skip] release/beta 6.5.2-0
skip-checks: true
2021-05-25 11:33:16 +00:00
alexdniepandAlex D cff15f9027 added equilibrium slip44; added equilibrium genesis hash (#984)
* added equilibrium slip44; added equilibrium genesis hash

* added equilibrium app in ledger-polkadot package

Co-authored-by: Alex D <pr0fedt@gmail.com>
2021-05-25 13:27:02 +02:00
Github Actions 13d7dcfef5 [CI Skip] release/stable 6.5.1
skip-checks: true
2021-05-22 17:57:26 +00:00
Jaco 259bb1a0ca 6.5 (#987) 2021-05-22 19:50:55 +02:00
Github Actions d0fb629217 [CI Skip] release/beta 6.4.2-1
skip-checks: true
2021-05-22 15:30:50 +00:00
Jaco ab55c37a33 Allow hdLedger derivation with optional 25th word password (#986) 2021-05-22 17:24:37 +02:00
Github Actions 93a0a194bc [CI Skip] release/beta 6.4.2-0
skip-checks: true
2021-05-20 13:13:50 +00:00
Jaco 3df71c9943 Sync with Substrate ss58 registry (#983)
* Sync with Substrate ss58 registry

* Bump deps
2021-05-20 15:07:29 +02:00
113 changed files with 3926 additions and 3159 deletions
+1 -2
View File
@@ -1,5 +1,4 @@
7
8
2.6.2
2.12.2
5.2.2
+23
View File
@@ -0,0 +1,23 @@
name: 'Lock Threads'
on:
schedule:
- cron: '30 1/2 * * *'
jobs:
lock:
runs-on: ubuntu-latest
steps:
- uses: dessant/lock-threads@v2
with:
github-token: ${{ secrets.GH_PAT_BOT }}
issue-lock-inactive-days: '7'
issue-lock-comment: >
This thread has been automatically locked since there has not been
any recent activity after it was closed. Please open a new issue
if you think you have a related problem or query.
pr-lock-inactive-days: '2'
pr-lock-comment: >
This pull request has been automatically locked since there
has not been any recent activity after it was closed.
Please open a new issue for related bugs.
+1 -8
View File
@@ -6,11 +6,11 @@ on:
jobs:
master:
if: "! startsWith(github.event.head_commit.message, '[CI Skip]')"
strategy:
matrix:
step: ['build:release']
name: ${{ matrix.step }}
if: "! startsWith(github.event.head_commit.message, '[CI Skip]') && github.repository == 'polkadot-js/common'"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
@@ -25,10 +25,3 @@ jobs:
run: |
yarn install --immutable | grep -v 'YN0013'
yarn ${{ matrix.step }}
dummy:
runs-on: ubuntu-latest
steps:
- name: dummy
run: |
echo "Dummy skip step"
+18
View File
@@ -0,0 +1,18 @@
name: Semgrep
on:
pull_request: {}
push:
branches:
- master
jobs:
check:
if: "! startsWith(github.event.head_commit.message, '[CI Skip]') && (!github.event.pull_request || github.event.pull_request.head.repo.full_name == github.repository)"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: returntocorp/semgrep-action@v1
with:
auditOn: push
publishToken: ${{ secrets.SEMGREP_APP_TOKEN }}
publishDeployment: 1395
+17
View File
@@ -0,0 +1,17 @@
name: 'Close stale issues and PRs'
on:
schedule:
- cron: '30 2/2 * * *'
jobs:
stale:
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v3
with:
repo-token: ${{ secrets.GH_PAT_BOT }}
stale-issue-message: 'This issue has been open for 21 days with no activity and is not labelled as an enhancement. It will be closed in 7 days.'
stale-issue-label: 'stale'
exempt-issue-labels: '-size-l,-size-m,-size-s,-size-xl,-size-xs,[bug],ci'
days-before-stale: 21
days-before-close: 7
+3
View File
@@ -0,0 +1,3 @@
build
coverage
packages
+4
View File
@@ -0,0 +1,4 @@
// Copyright 2017-2021 @polkadot/dev authors & contributors
// SPDX-License-Identifier: Apache-2.0
module.exports = require('@polkadot/dev/config/prettier.cjs');
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
+591
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -10,4 +10,4 @@ plugins:
- path: .yarn/plugins/@yarnpkg/plugin-version.cjs
spec: "@yarnpkg/plugin-version"
yarnPath: .yarn/releases/yarn-2.4.1.cjs
yarnPath: .yarn/releases/yarn-3.0.0-rc.2.cjs
+48
View File
@@ -1,5 +1,53 @@
# CHANGELOG
## 6.9.1 Jun 19, 2021
Changes:
- Added `u8aCmp(a, b)` to do sorting compares
- Added `arrayRange(size, startAt = 0)` to create a range of numbers
- Added extensive mnemonic compare test (optional, skipped)
## 6.8.1 Jun 14, 2021
Contributed:
- Add Ledger support for Edgeware (Thanks to https://github.com/raykyri)
- Fix `naclSeal` doc types (Thanks to https://github.com/agustinustheo)
Changes:
- Export `BN` in `@polkadot/util`
- Sync with upstream Substrate ss58 registry
## 6.7.1 Jun 6, 2021
Changes:
- Add WebHID transport for Ledger
- Update to latest Ledger transport packages
- Remove old `Gerald` key for Moonbeam
- Cleanup testing keyring semgrep recommendations
## 6.6.1 May 29, 2021
Changes:
- Adjust HD path validation & replacement
- Sync with Substrate ss58 registry
## 6.5.1 May 22, 2021
Changes:
- Allow hdLedger derivation with optional 25th word password
- Sync with Substrate ss58 registry
## 6.4.1 May 15, 2021
Contributed:
+7 -6
View File
@@ -7,7 +7,7 @@
"packages/*"
],
"resolutions": {
"typescript": "^4.2.4"
"typescript": "^4.3.2"
},
"scripts": {
"build": "polkadot-dev-build-ts",
@@ -17,14 +17,15 @@
"networks:crosscheck": "polkadot-dev-run-test packages/networks/src/crosscheck",
"networks:sync": "node packages/networks/scripts/fromSubstrate.mjs",
"postinstall": "polkadot-dev-yarn-only",
"test": "polkadot-dev-run-test --coverage --runInBand --testPathIgnorePatterns crosscheck",
"test": "polkadot-dev-run-test --coverage --runInBand --testPathIgnorePatterns crosscheck --testPathIgnorePatterns toMiniSecretCmp",
"test:mnemonicCmp": "polkadot-dev-run-test packages/util-crypto/src/mnemonic/toMiniSecretCmp.spec.ts",
"test:one": "polkadot-dev-run-test"
},
"devDependencies": {
"@babel/core": "^7.14.2",
"@polkadot/dev": "^0.62.14",
"@polkadot/ts": "^0.3.66",
"@babel/core": "^7.14.5",
"@polkadot/dev": "^0.62.42",
"@polkadot/ts": "^0.3.90",
"@types/jest": "^26.0.23"
},
"version": "6.4.1"
"version": "6.9.1"
}
+4 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@polkadot/hw-ledger-transports",
"version": "6.4.1",
"version": "6.9.1",
"type": "module",
"repository": "github:polkadot-js/common",
"author": "Jaco Greeff <jacogr@gmail.com>",
@@ -15,8 +15,9 @@
"node": ">=14.0.0"
},
"dependencies": {
"@babel/runtime": "^7.14.0",
"@ledgerhq/hw-transport-webusb": "^5.51.1"
"@babel/runtime": "^7.14.5",
"@ledgerhq/hw-transport-webhid": "^5.51.1",
"@ledgerhq/hw-transport-webusb": "^5.53.1"
},
"devDependencies": {
"@types/ledgerhq__hw-transport-node-hid": "^4.22.2",
+8 -2
View File
@@ -4,7 +4,8 @@
import type Transport from '@ledgerhq/hw-transport';
import type { TransportDef } from './types';
import LedgerWebUSB from '@ledgerhq/hw-transport-webusb';
import LedgerWebHid from '@ledgerhq/hw-transport-webhid';
import LedgerWebUsb from '@ledgerhq/hw-transport-webusb';
export { packageInfo } from './packageInfo';
@@ -18,7 +19,12 @@ export const transports: TransportDef[] = [
// },
{
create: (): Promise<Transport> =>
LedgerWebUSB.create(),
LedgerWebUsb.create(),
type: 'webusb'
},
{
create: (): Promise<Transport> =>
LedgerWebHid.create(),
type: 'hid'
}
];
@@ -4,7 +4,7 @@
declare module '@ledgerhq/hw-transport-node-hid-noevents' {
import Transport from '@ledgerhq/hw-transport';
export default class TransportNodeHidNoEvents extends Transport<string> {}
export default class TransportNodeHidNoEvents extends Transport {}
export function getDevices(): Array<unknown>
}
+8
View File
@@ -0,0 +1,8 @@
// Copyright 2017-2021 @polkadot/hw-ledger authors & contributors
// SPDX-License-Identifier: Apache-2.0
declare module '@ledgerhq/hw-transport-webhid' {
import Transport from '@ledgerhq/hw-transport';
export default class TransportWebHid extends Transport {}
}
@@ -3,4 +3,4 @@
// Auto-generated by @polkadot/dev, do not edit
export const packageInfo = { name: '@polkadot/hw-ledger-transports', version: '6.4.1' };
export const packageInfo = { name: '@polkadot/hw-ledger-transports', version: '6.9.1' };
+5 -5
View File
@@ -1,6 +1,6 @@
{
"name": "@polkadot/hw-ledger",
"version": "6.4.1",
"version": "6.9.1",
"type": "module",
"repository": "github:polkadot-js/common",
"author": "Jaco Greeff <jacogr@gmail.com>",
@@ -16,9 +16,9 @@
"node": ">=14.0.0"
},
"dependencies": {
"@babel/runtime": "^7.14.0",
"@polkadot/hw-ledger-transports": "6.4.1",
"@polkadot/util": "^6.4.1",
"@zondax/ledger-polkadot": "^0.13.6"
"@babel/runtime": "^7.14.5",
"@polkadot/hw-ledger-transports": "6.9.1",
"@polkadot/util": "^6.9.1",
"@zondax/ledger-polkadot": "^0.14.0"
}
}
+3 -1
View File
@@ -4,13 +4,15 @@
import type Transport from '@ledgerhq/hw-transport';
import type { SubstrateApp } from '@zondax/ledger-polkadot';
import { newDockApp, newKusamaApp, newPolkadotApp, newPolymeshApp } from '@zondax/ledger-polkadot';
import { newDockApp, newEdgewareApp, newEquilibriumApp, newKusamaApp, newPolkadotApp, newPolymeshApp } from '@zondax/ledger-polkadot';
// These match up with the network keys in the @polkadot/networks package
// (which is turn aligns with the substrate/ss58-registry.json as the single
// source of truth)
export const ledgerApps: Record<string, (transport: Transport) => SubstrateApp> = {
'dock-mainnet': newDockApp,
edgeware: newEdgewareApp,
equilibrium: newEquilibriumApp,
kusama: newKusamaApp,
polkadot: newPolkadotApp,
polymesh: newPolymeshApp
+1 -1
View File
@@ -3,4 +3,4 @@
// Auto-generated by @polkadot/dev, do not edit
export const packageInfo = { name: '@polkadot/hw-ledger', version: '6.4.1' };
export const packageInfo = { name: '@polkadot/hw-ledger', version: '6.9.1' };
+6 -6
View File
@@ -1,6 +1,6 @@
{
"name": "@polkadot/keyring",
"version": "6.4.1",
"version": "6.9.1",
"type": "module",
"description": "Keyring management",
"author": "Jaco Greeff <jacogr@gmail.com>",
@@ -19,12 +19,12 @@
"bugs": "https://github.com/polkadot-js/common/issues",
"homepage": "https://github.com/polkadot-js/common/tree/master/packages/keyring#readme",
"dependencies": {
"@babel/runtime": "^7.14.0",
"@polkadot/util": "6.4.1",
"@polkadot/util-crypto": "6.4.1"
"@babel/runtime": "^7.14.5",
"@polkadot/util": "6.9.1",
"@polkadot/util-crypto": "6.9.1"
},
"peerDependencies": {
"@polkadot/util": "6.4.1",
"@polkadot/util-crypto": "6.4.1"
"@polkadot/util": "6.9.1",
"@polkadot/util-crypto": "6.9.1"
}
}
+1 -1
View File
@@ -3,4 +3,4 @@
// Auto-generated by @polkadot/dev, do not edit
export const packageInfo = { name: '@polkadot/keyring', version: '6.4.1' };
export const packageInfo = { name: '@polkadot/keyring', version: '6.9.1' };
-6
View File
@@ -183,11 +183,5 @@ describe('pair', (): void => {
});
expect(json.address).toEqual(u8aToHex(PUBLICDERIVED));
});
it('has Gerald as test address for Ethereum type parachains', (): void => {
const keyringEthereum = createTestPairs({ type: 'ethereum' }, false);
expect(keyringEthereum.Gerald.address).toEqual('0x6Be02d1d3665660d22FF9624b7BE0551ee1Ac91b');
});
});
});
+14 -26
View File
@@ -24,49 +24,49 @@ interface PairDef {
export const PAIRSSR25519: PairDef[] = [
{
publicKey: hexToU8a('0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d'),
secretKey: hexToU8a('0x98319d4ff8a9508c4bb0cf0b5a78d760a0b2082c02775e6e82370816fedfff48925a225d97aa00682d6a59b95b18780c10d7032336e88f3442b42361f4a66011'),
secretKey: hexToU8a('0x98319d4ff8a9508c4bb0cf0b5a78d760a0b2082c02775e6e82370816fedfff48925a225d97aa00682d6a59b95b18780c10d7032336e88f3442b42361f4a66011'), // nosemgrep
seed: 'Alice',
type: 'sr25519'
},
{
publicKey: hexToU8a('0xbe5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25f'),
secretKey: hexToU8a('0xe8da6c9d810e020f5e3c7f5af2dea314cbeaa0d72bc6421e92c0808a0c584a6046ab28e97c3ffc77fe12b5a4d37e8cd4afbfebbf2391ffc7cb07c0f38c023efd'),
secretKey: hexToU8a('0xe8da6c9d810e020f5e3c7f5af2dea314cbeaa0d72bc6421e92c0808a0c584a6046ab28e97c3ffc77fe12b5a4d37e8cd4afbfebbf2391ffc7cb07c0f38c023efd'), // nosemgrep
seed: 'Alice//stash',
type: 'sr25519'
},
{
publicKey: hexToU8a('0x8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48'),
secretKey: hexToU8a('0x081ff694633e255136bdb456c20a5fc8fed21f8b964c11bb17ff534ce80ebd5941ae88f85d0c1bfc37be41c904e1dfc01de8c8067b0d6d5df25dd1ac0894a325'),
secretKey: hexToU8a('0x081ff694633e255136bdb456c20a5fc8fed21f8b964c11bb17ff534ce80ebd5941ae88f85d0c1bfc37be41c904e1dfc01de8c8067b0d6d5df25dd1ac0894a325'), // nosemgrep
seed: 'Bob',
type: 'sr25519'
},
{
publicKey: hexToU8a('0xfe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860e'),
secretKey: hexToU8a('0xc006507cdfc267a21532394c49ca9b754ca71de21e15a1cdf807c7ceab6d0b6c3ed408d9d35311540dcd54931933e67cf1ea10d46f75408f82b789d9bd212fde'),
secretKey: hexToU8a('0xc006507cdfc267a21532394c49ca9b754ca71de21e15a1cdf807c7ceab6d0b6c3ed408d9d35311540dcd54931933e67cf1ea10d46f75408f82b789d9bd212fde'), // nosemgrep
seed: 'Bob//stash',
type: 'sr25519'
},
{
publicKey: hexToU8a('0x90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22'),
secretKey: hexToU8a('0xa8f2d83016052e5d6d77b2f6fd5d59418922a09024cda701b3c34369ec43a7668faf12ff39cd4e5d92bb773972f41a7a5279ebc2ed92264bed8f47d344f8f18c'),
secretKey: hexToU8a('0xa8f2d83016052e5d6d77b2f6fd5d59418922a09024cda701b3c34369ec43a7668faf12ff39cd4e5d92bb773972f41a7a5279ebc2ed92264bed8f47d344f8f18c'), // nosemgrep
seed: 'Charlie',
type: 'sr25519'
},
{
publicKey: hexToU8a('0x306721211d5404bd9da88e0204360a1a9ab8b87c66c1bc2fcdd37f3c2222cc20'),
secretKey: hexToU8a('0x20e05482ca4677e0edbc58ae9a3a59f6ed3b1a9484ba17e64d6fe8688b2b7b5d108c4487b9323b98b11fe36cb301b084e920f7b7895536809a6d62a451b25568'),
secretKey: hexToU8a('0x20e05482ca4677e0edbc58ae9a3a59f6ed3b1a9484ba17e64d6fe8688b2b7b5d108c4487b9323b98b11fe36cb301b084e920f7b7895536809a6d62a451b25568'), // nosemgrep
seed: 'Dave',
type: 'sr25519'
},
{
publicKey: hexToU8a('0xe659a7a1628cdd93febc04a4e0646ea20e9f5f0ce097d9a05290d4a9e054df4e'),
secretKey: hexToU8a('0x683576abfd5dc35273e4264c23095a1bf21c14517bece57c7f0cc5c0ed4ce06a3dbf386b7828f348abe15d76973a72009e6ef86a5c91db2990cb36bb657c6587'),
secretKey: hexToU8a('0x683576abfd5dc35273e4264c23095a1bf21c14517bece57c7f0cc5c0ed4ce06a3dbf386b7828f348abe15d76973a72009e6ef86a5c91db2990cb36bb657c6587'), // nosemgrep
seed: 'Eve',
type: 'sr25519'
},
{
publicKey: hexToU8a('0x1cbd2d43530a44705ad088af313e18f80b53ef16b36177cd4b77b846f2a5f07c'),
secretKey: hexToU8a('0xb835c20f450079cf4f513900ae9faf8df06ad86c681884122c752a4b2bf74d4303e4f21bc6cc62bb4eeed5a9cce642c25e2d2ac1464093b50f6196d78e3a7426'),
secretKey: hexToU8a('0xb835c20f450079cf4f513900ae9faf8df06ad86c681884122c752a4b2bf74d4303e4f21bc6cc62bb4eeed5a9cce642c25e2d2ac1464093b50f6196d78e3a7426'), // nosemgrep
seed: 'Ferdie',
type: 'sr25519'
}
@@ -76,54 +76,42 @@ export const PAIRSETHEREUM: PairDef[] = [
{
name: 'Alith',
publicKey: hexToU8a('0x02509540919faacf9ab52146c9aa40db68172d83777250b28e4679176e49ccdd9f'),
secretKey: hexToU8a('0x5fb92d6e98884f76de468fa3f6278f8807c48bebc13595d45af5bdc4da702133'),
secretKey: hexToU8a('0x5fb92d6e98884f76de468fa3f6278f8807c48bebc13595d45af5bdc4da702133'), // nosemgrep
seed: "m/44'/40'/0'/0",
type: 'ethereum'
},
{
name: 'Baltathar',
publicKey: hexToU8a('0x033bc19e36ff1673910575b6727a974a9abd80c9a875d41ab3e2648dbfb9e4b518'),
secretKey: hexToU8a('0x8075991ce870b93a8870eca0c0f91913d12f47948ca0fd25b49c6fa7cdbeee8b'),
secretKey: hexToU8a('0x8075991ce870b93a8870eca0c0f91913d12f47948ca0fd25b49c6fa7cdbeee8b'), // nosemgrep
seed: "m/44'/40'/0'/0",
type: 'ethereum'
},
{
name: 'Charleth',
publicKey: hexToU8a('0x0234637bdc0e89b5d46543bcbf8edff329d2702bc995e27e9af4b1ba009a3c2a5e'),
secretKey: hexToU8a('0x0b6e18cafb6ed99687ec547bd28139cafdd2bffe70e6b688025de6b445aa5c5b'),
secretKey: hexToU8a('0x0b6e18cafb6ed99687ec547bd28139cafdd2bffe70e6b688025de6b445aa5c5b'), // nosemgrep
seed: "m/44'/40'/0'/0",
type: 'ethereum'
},
{
name: 'Dorothy',
publicKey: hexToU8a('0x02a00d60b2b408c2a14c5d70cdd2c205db8985ef737a7e55ad20ea32cc9e7c417c'),
secretKey: hexToU8a('0x39539ab1876910bbf3a223d84a29e28f1cb4e2e456503e7e91ed39b2e7223d68'),
secretKey: hexToU8a('0x39539ab1876910bbf3a223d84a29e28f1cb4e2e456503e7e91ed39b2e7223d68'), // nosemgrep
seed: "m/44'/40'/0'/0",
type: 'ethereum'
},
{
name: 'Ethan',
publicKey: hexToU8a('0x025cdc005b752651cd3f728fb9192182acb3a9c89e19072cbd5b03f3ee1f1b3ffa'),
secretKey: hexToU8a('0x7dce9bc8babb68fec1409be38c8e1a52650206a7ed90ff956ae8a6d15eeaaef4'),
secretKey: hexToU8a('0x7dce9bc8babb68fec1409be38c8e1a52650206a7ed90ff956ae8a6d15eeaaef4'), // nosemgrep
seed: "m/44'/40'/0'/0",
type: 'ethereum'
},
{
name: 'Faith',
publicKey: hexToU8a('0x037964b6c9d546da4646ada28a99e34acaa1d14e7aba861a9055f9bd200c8abf74'),
secretKey: hexToU8a('0xb9d2ea9a615f3165812e8d44de0d24da9bbd164b65c4f0573e1ce2c8dbd9c8df'),
seed: "m/44'/40'/0'/0",
type: 'ethereum'
},
// Gerald will be removed when moonbeam is done changing dev addresses (should def be done by end of march 21)
{
name: 'Gerald',
publicKey: new Uint8Array([3, 98, 79, 114, 14, 174, 103, 106,
4, 17, 22, 49, 201, 202, 51, 140,
17, 208, 245, 168, 14, 228, 34, 16,
198, 190, 114, 152, 60, 235, 98, 15,
191]),
secretKey: hexToU8a('0x99b3c12287537e38c90a9219d4cb074a89a16e9cdb20bf85728ebd97c343e342'),
secretKey: hexToU8a('0xb9d2ea9a615f3165812e8d44de0d24da9bbd164b65c4f0573e1ce2c8dbd9c8df'), // nosemgrep
seed: "m/44'/40'/0'/0",
type: 'ethereum'
}
+4 -4
View File
@@ -1,6 +1,6 @@
{
"name": "@polkadot/networks",
"version": "6.4.1",
"version": "6.9.1",
"type": "module",
"description": "A list of all available Substrate networks and their applicable prefixes",
"main": "index.js",
@@ -16,10 +16,10 @@
"bugs": "https://github.com/polkadot-js/common/issues",
"homepage": "https://github.com/polkadot-js/common/tree/master/packages/networks#readme",
"dependencies": {
"@babel/runtime": "^7.14.0"
"@babel/runtime": "^7.14.5"
},
"devDependencies": {
"@polkadot/util": "6.4.1",
"@polkadot/x-fetch": "6.4.1"
"@polkadot/util": "6.9.1",
"@polkadot/x-fetch": "6.9.1"
}
}
+7 -8
View File
@@ -1,10 +1,11 @@
// Copyright 2017-2021 @polkadot/networks authors & contributors
// SPDX-License-Identifier: Apache-2.0
import type { Ss58Registry } from './types';
import type { KnownSubstrate, Ss58Registry } from './types';
import fs from 'fs';
import { stringify } from '@polkadot/util';
import { fetch } from '@polkadot/x-fetch';
import { all } from './';
@@ -39,7 +40,7 @@ describe('check latest Substrate ss58 registry', (): void => {
.filter(({ prefix }) => !all.some((n) => n.prefix === prefix))
.map(({ displayName, prefix }) => `${displayName} (${prefix})`);
assertAndLog(!missing.length, `Missing entries found: ${JSON.stringify(missing, null, 2)}`);
assertAndLog(!missing.length, `Missing entries found: ${stringify(missing, 2)}`);
});
it('has no extra entries', (): void => {
@@ -47,11 +48,11 @@ describe('check latest Substrate ss58 registry', (): void => {
.filter(({ prefix }) => !original.registry.some((n) => n.prefix === prefix))
.map(({ displayName, prefix }) => `${displayName} (${prefix})`);
assertAndLog(!missing.length, `Extra entries found: ${JSON.stringify(missing, null, 2)}`);
assertAndLog(!missing.length, `Extra entries found: ${stringify(missing, 2)}`);
});
it('has the same values as the original', (): void => {
const fields = Object.keys(original.schema);
const fields = Object.keys(original.schema) as (keyof KnownSubstrate)[];
const errors = original.registry
.map((n): [string, string[]] => {
const other = all.find(({ prefix }) => prefix === n.prefix);
@@ -59,14 +60,12 @@ describe('check latest Substrate ss58 registry', (): void => {
return [
`${n.displayName} (${n.prefix})`,
other
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
? fields.filter((f) => JSON.stringify(n[f]) !== JSON.stringify(other[f]))
? fields.filter((f) => stringify(n[f]) !== stringify(other[f]))
: []
];
})
.filter(([, fields]) => fields.length);
assertAndLog(!errors.length, `Mismatches found: ${JSON.stringify(errors.map(([name, m]) => `${name}:: ${m.join(', ')}`), null, 2)}`);
assertAndLog(!errors.length, `Mismatches found: ${stringify(errors.map(([n, m]) => `${n}:: ${m.join(', ')}`), 2)}`);
});
});
+11
View File
@@ -1,9 +1,20 @@
// Copyright 2017-2021 @polkadot/networks authors & contributors
// SPDX-License-Identifier: Apache-2.0
import { isHex } from '@polkadot/util';
import { knownGenesis, knownLedger } from './defaults';
describe('defaults', (): void => {
it('has hex values for all genesis chains', (): void => {
expect(
Object.keys(knownGenesis).filter((network) =>
!knownGenesis[network].length ||
knownGenesis[network].some((g) => !isHex(g, 256))
)
).toEqual([]);
});
it('has genesis for all Ledger chains', (): void => {
expect(
Object.keys(knownLedger).filter((network) =>
+5
View File
@@ -14,6 +14,9 @@ export const knownGenesis: KnownGenesis = {
edgeware: [
'0x742a2ca70c2fda6cee4f8df98d64c4c670a052d9568058982dad9d5a7a135c5b'
],
equilibrium: [
'0x6f1a800de3daff7f5e037ddf66ab22ce03ab91874debeddb1086f5f7dbd48925'
],
hydradx: [
'0xd2a620c27ec5cbc5621ff9a522689895074f7cca0d08e7134a7804e1a3ba86fc', // Snakenet Gen3-1
'0x10af6e84234477d84dc572bac0789813b254aa490767ed06fb9591191d1073f9', // Snakenet Gen3
@@ -51,6 +54,8 @@ export const knownIcon: KnownIcon = {
// support for ledger
export const knownLedger: KnownLedger = {
'dock-mainnet': 0x00000252,
edgeware: 0x0000020b,
equilibrium: 0x05f5e0fd,
kusama: 0x000001b2,
polkadot: 0x00000162,
polymesh: 0x00000253
+1 -1
View File
@@ -3,4 +3,4 @@
// Auto-generated by @polkadot/dev, do not edit
export const packageInfo = { name: '@polkadot/networks', version: '6.4.1' };
export const packageInfo = { name: '@polkadot/networks', version: '6.9.1' };
+49 -4
View File
@@ -84,13 +84,13 @@ export const knownSubstrate: KnownSubstrate[] = [
website: 'https://edgewa.re'
},
{
decimals: [18],
displayName: 'Acala Karura Canary',
decimals: [12],
displayName: 'Karura',
network: 'karura',
prefix: 8,
standardAccount: '*25519',
symbols: ['KAR'],
website: 'https://acala.network/'
website: 'https://karura.network/'
},
{
decimals: [18],
@@ -102,7 +102,7 @@ export const knownSubstrate: KnownSubstrate[] = [
website: 'http://laminar.network/'
},
{
decimals: [18],
decimals: [12],
displayName: 'Acala',
network: 'acala',
prefix: 10,
@@ -488,6 +488,24 @@ export const knownSubstrate: KnownSubstrate[] = [
symbols: ['XOR'],
website: 'https://sora.org'
},
{
decimals: [12],
displayName: 'Manta network',
network: 'manta',
prefix: 77,
standardAccount: '*25519',
symbols: ['MA'],
website: 'https://manta.network'
},
{
decimals: [12],
displayName: 'Calamari: Manta Canary Network',
network: 'calamari',
prefix: 78,
standardAccount: '*25519',
symbols: ['KMA'],
website: 'https://manta.network'
},
{
decimals: [18],
displayName: 'Social Network',
@@ -496,5 +514,32 @@ export const knownSubstrate: KnownSubstrate[] = [
standardAccount: '*25519',
symbols: ['NET'],
website: 'https://social.network'
},
{
decimals: [18],
displayName: 'Moonbeam',
network: 'moonbeam',
prefix: 1284,
standardAccount: '*25519',
symbols: ['GLMR'],
website: 'https://moonbeam.network'
},
{
decimals: [18],
displayName: 'Moonriver',
network: 'moonriver',
prefix: 1285,
standardAccount: '*25519',
symbols: ['MOVR'],
website: 'https://moonbeam.network'
},
{
decimals: [12],
displayName: 'Basilisk',
network: 'basilisk',
prefix: 10041,
standardAccount: '*25519',
symbols: ['BSX'],
website: 'https://bsx.fi'
}
];
+6 -6
View File
@@ -1,6 +1,6 @@
{
"name": "@polkadot/util-crypto",
"version": "6.4.1",
"version": "6.9.1",
"type": "module",
"description": "A collection of useful crypto utilities for @polkadot",
"main": "index.js",
@@ -19,11 +19,11 @@
"bugs": "https://github.com/polkadot-js/common/issues",
"homepage": "https://github.com/polkadot-js/common/tree/master/packages/util-crypto#readme",
"dependencies": {
"@babel/runtime": "^7.14.0",
"@polkadot/networks": "6.4.1",
"@polkadot/util": "6.4.1",
"@babel/runtime": "^7.14.5",
"@polkadot/networks": "6.9.1",
"@polkadot/util": "6.9.1",
"@polkadot/wasm-crypto": "^4.0.2",
"@polkadot/x-randomvalues": "6.4.1",
"@polkadot/x-randomvalues": "6.9.1",
"base-x": "^3.0.8",
"base64-js": "^1.5.1",
"blakejs": "^1.1.0",
@@ -44,6 +44,6 @@
"@types/xxhashjs": "^0.2.2"
},
"peerDependencies": {
"@polkadot/util": "6.4.1"
"@polkadot/util": "6.9.1"
}
}
@@ -1,7 +1,7 @@
// Copyright 2017-2021 @polkadot/util-crypto authors & contributors
// SPDX-License-Identifier: Apache-2.0
import type BN from 'bn.js';
import type { BN } from '@polkadot/util';
import type { Prefix } from './types';
import { decodeAddress } from './decode';
@@ -1,7 +1,7 @@
// Copyright 2017-2021 @polkadot/util-crypto authors & contributors
// SPDX-License-Identifier: Apache-2.0
import type BN from 'bn.js';
import type { BN } from '@polkadot/util';
import type { Prefix } from './types';
import { encodeAddress } from './encode';
@@ -1,7 +1,7 @@
// Copyright 2017-2021 @polkadot/util-crypto authors & contributors
// SPDX-License-Identifier: Apache-2.0
import type BN from 'bn.js';
import type { BN } from '@polkadot/util';
import { bnToU8a, stringToU8a, u8aConcat } from '@polkadot/util';
+1 -1
View File
@@ -1,7 +1,7 @@
// Copyright 2017-2021 @polkadot/util-crypto authors & contributors
// SPDX-License-Identifier: Apache-2.0
import type BN from 'bn.js';
import type { BN } from '@polkadot/util';
import { bnToU8a, compactToU8a, stringToU8a, u8aConcat, u8aSorted } from '@polkadot/util';
@@ -7,6 +7,7 @@ import { hdLedger } from '..';
const MNE_0 = 'abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about';
const MNE_1 = 'open jelly jeans corn ketchup supreme brief element armed lens vault weather original scissors rug priority vicious lesson raven spot gossip powder person volcano';
const MNE_P = `${MNE_1} testing`;
const TESTS = {
Kusama: {
@@ -36,6 +37,11 @@ const TESTS = {
ed25519: '0xe8c68348586d53e4e8d1a864b0e4e17c75e4eb06e0c63c1432bef2ba29e69d41',
index: [0, 0],
mnemonic: MNE_0
},
{
ed25519: '0x3890e8db837eba3f8f25215c753e1091062298ce671a51441e7ef89a7adc4f48',
index: [0, 0],
mnemonic: MNE_P
}
]
}
+14 -3
View File
@@ -11,7 +11,18 @@ import { HARDENED, hdValidatePath } from '../validatePath';
import { ledgerDerivePrivate } from './derivePrivate';
import { ledgerMaster } from './master';
export function hdLedger (mnemonic: string, path: string): Keypair {
export function hdLedger (_mnemonic: string, path: string): Keypair {
const parts = _mnemonic
.split(' ')
.map((s) => s.trim())
.filter((s) => s);
assert([12, 24, 25].includes(parts.length), 'Expected a mnemonic with 24 words (or 25 including a password)');
const [mnemonic, password] = parts.length === 25
? [parts.slice(0, 24).join(' '), parts[24]]
: [parts.join(' '), ''];
assert(mnemonicValidate(mnemonic), 'Invalid mnemonic passed to ledger derivation');
assert(hdValidatePath(path), 'Invalid derivation path');
@@ -19,9 +30,9 @@ export function hdLedger (mnemonic: string, path: string): Keypair {
path
.split('/')
.slice(1)
.map((n) => parseInt(n.replace("'", ''), 10))
.map((n) => parseInt(n.replace(/'$/, ''), 10))
.map((n) => (n < HARDENED) ? (n + HARDENED) : n)
.reduce((x, n) => ledgerDerivePrivate(x, n), ledgerMaster(mnemonic))
.reduce((x, n) => ledgerDerivePrivate(x, n), ledgerMaster(mnemonic, password))
.slice(0, 32)
);
}
+2 -2
View File
@@ -9,8 +9,8 @@ import { mnemonicToSeedSync } from '../../mnemonic/bip39';
const ED25519_CRYPTO = 'ed25519 seed';
// gets an xprv from a mnemonic
export function ledgerMaster (mnemonic: string): Uint8Array {
const seed = mnemonicToSeedSync(mnemonic);
export function ledgerMaster (mnemonic: string, password?: string): Uint8Array {
const seed = mnemonicToSeedSync(mnemonic, password);
const chainCode = hmacSha256(ED25519_CRYPTO, new Uint8Array([1, ...seed]));
let priv;
+1 -1
View File
@@ -12,7 +12,7 @@ export function hdValidatePath (path: string): boolean {
return parts.every((n) => /^\d+'?$/.test(n)) && (
!parts
.map((n) => parseInt(n.replace("'", ''), 10))
.map((n) => parseInt(n.replace(/'$/, ''), 10))
.some((n) => isNaN(n) || (n >= HARDENED) || (n < 0))
);
}
@@ -1,9 +1,7 @@
// Copyright 2017-2021 @polkadot/util-crypto authors & contributors
// SPDX-License-Identifier: Apache-2.0
import type BN from 'bn.js';
import { bnToHex, compactAddLength, hexToU8a, isBigInt, isBn, isHex, isNumber, isString, stringToU8a } from '@polkadot/util';
import { BN, bnToHex, compactAddLength, hexToU8a, isBigInt, isBn, isHex, isNumber, isString, stringToU8a } from '@polkadot/util';
import { blake2AsU8a } from '../blake2/asU8a';
@@ -0,0 +1,57 @@
// Copyright 2017-2021 @polkadot/util-crypto authors & contributors
// SPDX-License-Identifier: Apache-2.0
import { arrayRange, u8aEq } from '@polkadot/util';
import { cryptoWaitReady, mnemonicGenerate, mnemonicToMiniSecret, naclKeypairFromSeed, schnorrkelKeypairFromSeed } from '..';
// NOTE: This basically controls how long stuff runs for, YMMV
//
// - 100 runs with 5 checks, takes 2mins on _my_ machine
// - 10_000 runs with 5 checks should be ~3hrs
const NUM_RUNS = 100;
const NUM_CHECKS = 5;
// generate either a JS or WASM mnemonic
describe.each([true, false])('mnemonicToMiniSecret (compare), onlyJsMnemonic=%p', (onlyJsMnemonic): void => {
beforeAll(async (): Promise<void> => {
await cryptoWaitReady();
});
// loop through lots of mnemonics
describe.each(arrayRange(NUM_RUNS))('run=%p', (): void => {
// compare both JS and WASM outputs against original
describe.each([true, false])('onlyJsMini=%p', (onlyJsMini): void => {
// NOTE we cannot actually use the onlyJsMnemonic flag here
const mnemonic = mnemonicGenerate(12);
describe(mnemonic, (): void => {
// do iterations to check and re-check that all matches
it.concurrent.each(arrayRange(NUM_CHECKS))('check=%p', (count): void => {
const minisecret = mnemonicToMiniSecret(mnemonic, count ? `${count}` : '', onlyJsMnemonic);
const edpub = naclKeypairFromSeed(minisecret).publicKey;
const srpub = schnorrkelKeypairFromSeed(minisecret).publicKey;
const testmini = mnemonicToMiniSecret(mnemonic, count ? `${count}` : '', onlyJsMini);
// explicit minisecret compare
expect(
u8aEq(minisecret, testmini)
).toEqual(true);
// compare the sr25519 keypair generated
expect(
u8aEq(srpub, schnorrkelKeypairFromSeed(testmini).publicKey)
).toEqual(true);
// compare ed both in WASM and JS
[true, false].forEach((onlyJsEd): void => {
expect(
u8aEq(edpub, naclKeypairFromSeed(testmini, onlyJsEd).publicKey)
).toEqual(true);
});
});
});
});
});
});
@@ -31,8 +31,10 @@ describe('naclKeypairFromSeed', (): void => {
});
it('generates a valid publicKey/secretKey pair (u8a)', (): void => {
expect(
naclKeypairFromSeed(TEST)
).toEqual(RESULT);
[true, false].forEach((onlyJs): void => {
expect(
naclKeypairFromSeed(TEST, onlyJs)
).toEqual(RESULT);
});
});
});
@@ -21,8 +21,8 @@ import { ed25519KeypairFromSeed, isReady } from '@polkadot/wasm-crypto';
* naclKeypairFromSeed(...); // => { secretKey: [...], publicKey: [...] }
* ```
*/
export function naclKeypairFromSeed (seed: Uint8Array): Keypair {
if (isReady()) {
export function naclKeypairFromSeed (seed: Uint8Array, onlyJs = false): Keypair {
if (!onlyJs && isReady()) {
const full = ed25519KeypairFromSeed(seed);
return {
+1 -1
View File
@@ -19,7 +19,7 @@ interface Sealed {
* <BR>
*
* ```javascript
* import { naclEncrypt } from '@polkadot/util-crypto';
* import { naclSeal } from '@polkadot/util-crypto';
*
* naclSeal([...], [...], [...], [...]); // => [...]
* ```
+1 -1
View File
@@ -3,4 +3,4 @@
// Auto-generated by @polkadot/dev, do not edit
export const packageInfo = { name: '@polkadot/util-crypto', version: '6.4.1' };
export const packageInfo = { name: '@polkadot/util-crypto', version: '6.9.1' };
+1 -3
View File
@@ -1,9 +1,7 @@
// Copyright 2017-2021 @polkadot/util-crypto authors & contributors
// SPDX-License-Identifier: Apache-2.0
import BN from 'bn.js';
import { hexToBn } from '@polkadot/util';
import { BN, hexToBn } from '@polkadot/util';
import { randomAsHex } from './asHex';
@@ -1,9 +1,7 @@
// Copyright 2017-2021 @polkadot/util-crypto authors & contributors
// SPDX-License-Identifier: Apache-2.0
import BN from 'bn.js';
import { assert, bnToU8a, isU8a } from '@polkadot/util';
import { assert, BN, bnToU8a, isU8a } from '@polkadot/util';
import { secp256k1 } from './secp256k1';
@@ -1,7 +1,7 @@
// Copyright 2017-2021 @polkadot/util-crypto authors & contributors
// SPDX-License-Identifier: Apache-2.0
import BN from 'bn.js';
import { BN } from '@polkadot/util';
import xxhash64AsRaw from './asRaw';
+4 -4
View File
@@ -1,6 +1,6 @@
{
"name": "@polkadot/util",
"version": "6.4.1",
"version": "6.9.1",
"type": "module",
"description": "A collection of useful utilities for @polkadot",
"main": "index.js",
@@ -19,9 +19,9 @@
"bugs": "https://github.com/polkadot-js/common/issues",
"homepage": "https://github.com/polkadot-js/common/tree/master/packages/util#readme",
"dependencies": {
"@babel/runtime": "^7.14.0",
"@polkadot/x-textdecoder": "6.4.1",
"@polkadot/x-textencoder": "6.4.1",
"@babel/runtime": "^7.14.5",
"@polkadot/x-textdecoder": "6.9.1",
"@polkadot/x-textencoder": "6.9.1",
"@types/bn.js": "^4.11.6",
"bn.js": "^4.11.9",
"camelcase": "^5.3.1",
+1
View File
@@ -8,3 +8,4 @@
export { arrayChunk } from './chunk';
export { arrayFilter } from './filter';
export { arrayFlatten } from './flatten';
export { arrayRange } from './range';
+24
View File
@@ -0,0 +1,24 @@
// Copyright 2017-2021 @polkadot/util authors & contributors
// SPDX-License-Identifier: Apache-2.0
import { arrayRange } from '.';
describe('arrayRange', (): void => {
it('does not allow 0 values', (): void => {
expect(
() => arrayRange(0)
).toThrow(/Expected non-zero, positive number as a range size/);
});
it('it creates a range of the specified length', (): void => {
expect(
arrayRange(10)
).toEqual([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]);
});
it('it creates a range of the specified length, with offset', (): void => {
expect(
arrayRange(7, 3)
).toEqual([3, 4, 5, 6, 7, 8, 9]);
});
});
+25
View File
@@ -0,0 +1,25 @@
// Copyright 2017-2021 @polkadot/util authors & contributors
// SPDX-License-Identifier: Apache-2.0
import { assert } from '../assert';
/**
* @name arrayRange
* @summary Returns a range of numbers ith the size and the specified offset
* @description
* Returns a new array of numbers with the specific size. Optionally, when `startAt`, is provided, it generates the range to start at a specific value.
* @example
* <BR>
*
* ```javascript
* import { arrayRange } from '@polkadot/util';
*
* arrayRange(5); // [0, 1, 2, 3, 4]
* arrayRange(3, 5); // [5, 6, 7]
* ```
*/
export function arrayRange (size: number, startAt = 0): number[] {
assert(size > 0, 'Expected non-zero, positive number as a range size');
return new Array(size).fill(0).map((_, i) => i + startAt);
}
+6
View File
@@ -0,0 +1,6 @@
// Copyright 2017-2021 @polkadot/util authors & contributors
// SPDX-License-Identifier: Apache-2.0
import BN from 'bn.js';
export { BN };
+1 -3
View File
@@ -1,9 +1,7 @@
// Copyright 2017-2021 @polkadot/util authors & contributors
// SPDX-License-Identifier: Apache-2.0
import BN from 'bn.js';
import { BN_HUNDRED, BN_ONE, BN_TEN, BN_THOUSAND, BN_ZERO } from '.';
import { BN, BN_HUNDRED, BN_ONE, BN_TEN, BN_THOUSAND, BN_ZERO } from '.';
describe('consts', (): void => {
it('BN_ZERO equals 0', (): void => {
+1 -1
View File
@@ -1,7 +1,7 @@
// Copyright 2017-2021 @polkadot/util authors & contributors
// SPDX-License-Identifier: Apache-2.0
import BN from 'bn.js';
import { BN } from './bn';
/**
* @name BN_ZERO
+1
View File
@@ -7,6 +7,7 @@
export * from './consts';
export { BN } from './bn';
export { bnFromHex } from './fromHex';
export { bnMax } from './max';
export { bnMin } from './min';
+1 -3
View File
@@ -1,9 +1,7 @@
// Copyright 2017-2021 @polkadot/util authors & contributors
// SPDX-License-Identifier: Apache-2.0
import BN from 'bn.js';
import { bnMax } from '.';
import { BN, bnMax } from '.';
describe('bnMax', (): void => {
it('finds BN maximum', (): void => {
+1 -1
View File
@@ -1,7 +1,7 @@
// Copyright 2017-2021 @polkadot/util authors & contributors
// SPDX-License-Identifier: Apache-2.0
import type BN from 'bn.js';
import type { BN } from './bn';
import { checkMaxMin } from './util';
+1 -3
View File
@@ -1,9 +1,7 @@
// Copyright 2017-2021 @polkadot/util authors & contributors
// SPDX-License-Identifier: Apache-2.0
import BN from 'bn.js';
import { bnMin } from '.';
import { BN, bnMin } from '.';
describe('bnMin', (): void => {
it('finds BN minimum', (): void => {
+1 -1
View File
@@ -1,7 +1,7 @@
// Copyright 2017-2021 @polkadot/util authors & contributors
// SPDX-License-Identifier: Apache-2.0
import type BN from 'bn.js';
import type { BN } from './bn';
import { checkMaxMin } from './util';
+1 -3
View File
@@ -1,9 +1,7 @@
// Copyright 2017-2021 @polkadot/util authors & contributors
// SPDX-License-Identifier: Apache-2.0
import BN from 'bn.js';
import { bnSqrt } from '.';
import { BN, bnSqrt } from '.';
const TESTS: [string | number | BN | BigInt, string | number][] = [
[0, 0],
+2 -3
View File
@@ -3,10 +3,9 @@
import type { ToBn } from '../types';
import BN from 'bn.js';
import { assert } from '../assert';
import { BN_MAX_INTEGER, BN_ONE, BN_ZERO } from '../bn';
import { BN } from './bn';
import { BN_MAX_INTEGER, BN_ONE, BN_ZERO } from './consts';
import { bnToBn } from './toBn';
const SQRT_MAX_SAFE_INTEGER = new BN(94906265);
+1 -3
View File
@@ -1,9 +1,7 @@
// Copyright 2017-2021 @polkadot/util authors & contributors
// SPDX-License-Identifier: Apache-2.0
import BN from 'bn.js';
import { bnToBn } from '.';
import { BN, bnToBn } from '.';
describe('bnToBn', (): void => {
it('converts null values to 0x00', (): void => {
+1 -2
View File
@@ -3,12 +3,11 @@
import type { ToBn } from '../types';
import BN from 'bn.js';
import { hexToBn } from '../hex/toBn';
import { isBigInt } from '../is/bigInt';
import { isHex } from '../is/hex';
import { isToBn } from '../is/toBn';
import { BN } from './bn';
/**
* @name bnToBn
+1 -3
View File
@@ -1,9 +1,7 @@
// Copyright 2017-2021 @polkadot/util authors & contributors
// SPDX-License-Identifier: Apache-2.0
import BN from 'bn.js';
import { bnToHex } from '.';
import { BN, bnToHex } from '.';
describe('bnToHex', (): void => {
it('converts null values to 0x00', (): void => {
+1 -1
View File
@@ -1,8 +1,8 @@
// Copyright 2017-2021 @polkadot/util authors & contributors
// SPDX-License-Identifier: Apache-2.0
import type BN from 'bn.js';
import type { ToBn, ToBnOptions } from '../types';
import type { BN } from './bn';
import { isNumber } from '../is/number';
import { u8aToHex } from '../u8a';
+1 -3
View File
@@ -1,9 +1,7 @@
// Copyright 2017-2021 @polkadot/util authors & contributors
// SPDX-License-Identifier: Apache-2.0
import BN from 'bn.js';
import { bnToU8a } from '.';
import { BN, bnToU8a } from '.';
describe('bnToU8a', (): void => {
it('converts null values to 0x00', (): void => {
+1 -1
View File
@@ -1,8 +1,8 @@
// Copyright 2017-2021 @polkadot/util authors & contributors
// SPDX-License-Identifier: Apache-2.0
import type BN from 'bn.js';
import type { ToBn, ToBnOptions } from '../types';
import type { BN } from './bn';
import { isNumber } from '../is/number';
import { bnToBn } from './toBn';
+1 -2
View File
@@ -1,9 +1,8 @@
// Copyright 2017-2021 @polkadot/util authors & contributors
// SPDX-License-Identifier: Apache-2.0
import BN from 'bn.js';
import { assert } from '../assert';
import { BN } from './bn';
export function checkMaxMin (type: 'max' | 'min', items: BN[]): BN {
assert(items.length >= 1, 'Must provide one or more BN arguments');
+1 -2
View File
@@ -1,8 +1,7 @@
// Copyright 2017-2021 @polkadot/util authors & contributors
// SPDX-License-Identifier: Apache-2.0
import BN from 'bn.js';
import { BN } from '../bn/bn';
import { hexToU8a } from '../hex/toU8a';
import { compactFromU8a } from '.';
+1 -3
View File
@@ -1,9 +1,7 @@
// Copyright 2017-2021 @polkadot/util authors & contributors
// SPDX-License-Identifier: Apache-2.0
import BN from 'bn.js';
import { BN_FOUR } from '../bn';
import { BN, BN_FOUR } from '../bn';
import { u8aToBn, u8aToU8a } from '../u8a';
/**
+1 -2
View File
@@ -1,8 +1,7 @@
// Copyright 2017-2021 @polkadot/util authors & contributors
// SPDX-License-Identifier: Apache-2.0
import BN from 'bn.js';
import { BN } from '../bn';
import { compactToU8a } from '.';
describe('encode', (): void => {
+1 -3
View File
@@ -1,10 +1,8 @@
// Copyright 2017-2021 @polkadot/util authors & contributors
// SPDX-License-Identifier: Apache-2.0
import BN from 'bn.js';
import { assert } from '../assert';
import { BN_ONE, BN_TWO, bnToBn, bnToU8a } from '../bn';
import { BN, BN_ONE, BN_TWO, bnToBn, bnToU8a } from '../bn';
import { u8aConcat } from '../u8a';
const MAX_U8 = new BN(2).pow(new BN(8 - 2)).subn(1);
@@ -1,8 +1,7 @@
// Copyright 2017-2021 @polkadot/util authors & contributors
// SPDX-License-Identifier: Apache-2.0
import BN from 'bn.js';
import { BN } from '../bn';
import { formatBalance } from '.';
describe('formatBalance', (): void => {
+1 -1
View File
@@ -1,7 +1,7 @@
// Copyright 2017-2021 @polkadot/util authors & contributors
// SPDX-License-Identifier: Apache-2.0
import type BN from 'bn.js';
import type { BN } from '../bn/bn';
import type { SiDef, ToBn } from '../types';
import { bnToBn } from '../bn/toBn';
@@ -1,8 +1,7 @@
// Copyright 2017-2021 @polkadot/util authors & contributors
// SPDX-License-Identifier: Apache-2.0
import BN from 'bn.js';
import { BN } from '../bn';
import { formatElapsed } from '.';
describe('formatElapsed', (): void => {
+2 -2
View File
@@ -1,7 +1,7 @@
// Copyright 2017-2021 @polkadot/ui-util authors & contributors
// Copyright 2017-2021 @polkadot/util authors & contributors
// SPDX-License-Identifier: Apache-2.0
import type BN from 'bn.js';
import type { BN } from '../bn/bn';
import type { ToBn } from '../types';
import { bnToBn } from '../bn/toBn';
@@ -1,8 +1,7 @@
// Copyright 2017-2021 @polkadot/util authors & contributors
// SPDX-License-Identifier: Apache-2.0
import BN from 'bn.js';
import { BN } from '../bn';
import { formatNumber } from '.';
describe('formatNumber', (): void => {
+1 -1
View File
@@ -1,7 +1,7 @@
// Copyright 2017-2021 @polkadot/util authors & contributors
// SPDX-License-Identifier: Apache-2.0
import type BN from 'bn.js';
import type { BN } from '../bn/bn';
import type { ToBn } from '../types';
import { bnToBn } from '../bn/toBn';
+1 -1
View File
@@ -6,7 +6,7 @@ import { hexToBn } from '.';
describe('hexToBn', (): void => {
it('converts prefixed hex values to BN', (): void => {
expect(
hexToBn(0x81).toString(16)
hexToBn('0x81').toString(16)
).toBe('81');
});
+11 -6
View File
@@ -3,8 +3,7 @@
import type { ToBnOptions } from '../types';
import BN from 'bn.js';
import { BN } from '../bn/bn';
import { isBoolean } from '../is/boolean';
import { hexStripPrefix } from './stripPrefix';
@@ -32,7 +31,7 @@ function reverse (value: string): string {
* hexToBn('0x123480001f'); // => BN(0x123480001f)
* ```
*/
export function hexToBn (value?: string | number | null, options: ToBnOptions | boolean = { isLe: false, isNegative: false }): BN {
export function hexToBn (value?: string | null, options: ToBnOptions | boolean = { isLe: false, isNegative: false }): BN {
if (!value) {
return new BN(0);
}
@@ -41,9 +40,13 @@ export function hexToBn (value?: string | number | null, options: ToBnOptions |
isLe: false,
isNegative: false,
// Backwards-compatibility
...(isBoolean(options) ? { isLe: options } : options)
...(
isBoolean(options)
? { isLe: options }
: options
)
};
const _value = hexStripPrefix(value as string);
const _value = hexStripPrefix(value);
// FIXME: Use BN's 3rd argument `isLe` once this issue is fixed
// https://github.com/indutny/bn.js/issues/208
@@ -51,5 +54,7 @@ export function hexToBn (value?: string | number | null, options: ToBnOptions |
// fromTwos takes as parameter the number of bits, which is the hex length
// multiplied by 4.
return _options.isNegative ? bn.fromTwos(_value.length * 4) : bn;
return _options.isNegative
? bn.fromTwos(_value.length * 4)
: bn;
}
+1 -2
View File
@@ -1,8 +1,7 @@
// Copyright 2017-2021 @polkadot/util authors & contributors
// SPDX-License-Identifier: Apache-2.0
import BN from 'bn.js';
import { BN } from '../bn';
import { isBn } from '.';
describe('isBN', (): void => {
+1 -1
View File
@@ -1,7 +1,7 @@
// Copyright 2017-2021 @polkadot/util authors & contributors
// SPDX-License-Identifier: Apache-2.0
import BN from 'bn.js';
import { BN } from '../bn/bn';
/**
* @name isBn
+1 -2
View File
@@ -1,8 +1,7 @@
// Copyright 2017-2021 @polkadot/util authors & contributors
// SPDX-License-Identifier: Apache-2.0
import BN from 'bn.js';
import { BN } from '../bn';
import { isChildClass } from '.';
describe('isChildClass', (): void => {
+1 -2
View File
@@ -3,8 +3,7 @@
import type { Logger } from './types';
import BN from 'bn.js';
import { BN } from './bn';
import { logger, loggerFormat } from '.';
describe('logger', (): void => {
+1 -1
View File
@@ -70,7 +70,7 @@ describe('memoize', (): void => {
});
it('normalizes BigInt values as well', (): void => {
const fn = memoize((a: BigInt, b: BigInt) => BigInt(a) + BigInt(b));
const fn = memoize((a: bigint, b: bigint) => a + b);
expect(fn(1n, 2n).toString()).toEqual('3');
});
+1 -1
View File
@@ -3,4 +3,4 @@
// Auto-generated by @polkadot/dev, do not edit
export const packageInfo = { name: '@polkadot/util', version: '6.4.1' };
export const packageInfo = { name: '@polkadot/util', version: '6.9.1' };
+1 -2
View File
@@ -1,8 +1,7 @@
// Copyright 2017-2021 @polkadot/util authors & contributors
// SPDX-License-Identifier: Apache-2.0
import BN from 'bn.js';
import { BN } from './bn';
import { stringify } from './stringify';
describe('stringify', (): void => {
+1 -1
View File
@@ -1,7 +1,7 @@
// Copyright 2017-2021 @polkadot/util authors & contributors
// SPDX-License-Identifier: Apache-2.0
import type BN from 'bn.js';
import type { BN } from './bn/bn';
// eslint-disable-next-line @typescript-eslint/no-explicit-any
export interface Constructor<T = any> {
+39
View File
@@ -0,0 +1,39 @@
// Copyright 2017-2021 @polkadot/util authors & contributors
// SPDX-License-Identifier: Apache-2.0
import { u8aCmp } from '.';
describe('u8aCmp', (): void => {
it('has the same result as localCompare (equal length)', (): void => {
const a = 'test abc';
const b = 'test def';
expect(
u8aCmp(a, b)
).toEqual(a.localeCompare(b));
expect(
u8aCmp(b, a)
).toEqual(b.localeCompare(a));
});
it('has the same result as localCompare (diff length)', (): void => {
const a = 'test';
const b = 'test abc';
expect(
u8aCmp(a, b)
).toEqual(a.localeCompare(b));
expect(
u8aCmp(b, a)
).toEqual(b.localeCompare(a));
});
it('compares between string and Uint8Array', (): void => {
expect(
u8aCmp(
'0x12345678',
new Uint8Array([0x12, 0x34, 0x56, 0x78])
)
).toEqual(0);
});
});
+51
View File
@@ -0,0 +1,51 @@
// Copyright 2017-2021 @polkadot/util authors & contributors
// SPDX-License-Identifier: Apache-2.0
import { u8aToU8a } from './toU8a';
function compare (a: Uint8Array, b: Uint8Array): number {
let i = 0;
while (true) {
const overA = i >= a.length;
const overB = i >= b.length;
if (overA && overB) {
// both ends reached
return 0;
} else if (overA) {
// a has no more data, b has data
return -1;
} else if (overB) {
// b has no more data, a has data
return 1;
} else if (a[i] !== b[i]) {
// the number in this index doesn't match
return a[i] > b[i]
? 1
: -1;
}
i++;
}
}
/**
* @name u8aCmp
* @summary Compares two Uint8Arrays for sorting.
* @description
* For `UInt8Array` (or hex string) input values returning -1, 0 or +1
* @example
* <BR>
*
* ```javascript
* import { u8aCmp } from '@polkadot/util';
*
* u8aCmp(new Uint8Array([0x67, 0x65]), new Uint8Array([0x68, 0x65])); // -1
* u8aCmp(new Uint8Array([0x68, 0x65]), new Uint8Array([0x68, 0x65])); // 0
* u8aCmp(new Uint8Array([0x69, 0x65]), new Uint8Array([0x68, 0x65])); // +1
* ```
*/
export function u8aCmp (a: Uint8Array | string, b: Uint8Array | string): number {
return compare(u8aToU8a(a), u8aToU8a(b));
}
+4 -13
View File
@@ -1,32 +1,23 @@
// Copyright 2017-2021 @polkadot/util authors & contributors
// SPDX-License-Identifier: Apache-2.0
import { u8aCmp } from './cmp';
import { u8aToU8a } from './toU8a';
function equals (a: Uint8Array, b: Uint8Array): boolean {
if (a.length !== b.length) {
return false;
}
for (let i = 0; i < a.length; i++) {
if (a[i] !== b[i]) {
return false;
}
}
return true;
return (a.length === b.length) && (u8aCmp(a, b) === 0);
}
/**
* @name u8aEq
* @summary Compares two Uint8Arrays.
* @summary Compares two Uint8Arrays for equality.
* @description
* For `UInt8Array` (or hex string) input values true if there is a match.
* @example
* <BR>
*
* ```javascript
* import { { u8aEq } from '@polkadot/util';
* import { u8aEq } from '@polkadot/util';
*
* u8aEq(new Uint8Array([0x68, 0x65]), new Uint8Array([0x68, 0x65])); // true
* ```
+1
View File
@@ -5,6 +5,7 @@
* @summary Utility methods to convert to and from `Uint8Array` objects
*/
export { u8aCmp } from './cmp';
export { u8aConcat } from './concat';
export { u8aEq } from './eq';
export { u8aFixLength } from './fixLength';
+16 -22
View File
@@ -1,28 +1,22 @@
// Copyright 2017-2021 @polkadot/util authors & contributors
// SPDX-License-Identifier: Apache-2.0
import { isUndefined } from '../is/undefined';
import { u8aCmp } from './cmp';
/**
* @name u8aSorted
* @summary Sorts an array of Uint8Arrays
* @description
* For input `UInt8Array[]` return the sorted result
* @example
* <BR>
*
* ```javascript
* import { u8aSorted} from '@polkadot/util';
*
* u8aSorted([new Uint8Array([0x69]), new Uint8Array([0x68])]); // [0x68, 0x69]
* ```
*/
export function u8aSorted (u8as: Uint8Array[]): Uint8Array[] {
return u8as.sort((a, b): number => {
let i = 0;
while (true) {
if (isUndefined(a[i]) && isUndefined(b[i])) {
return 0;
} else if (isUndefined(a[i])) {
return -1;
} else if (isUndefined(b[i])) {
return 1;
}
const cmp = a[i] - b[i];
if (cmp !== 0) {
return cmp;
}
i++;
}
});
return u8as.sort(u8aCmp);
}
+1 -1
View File
@@ -1,7 +1,7 @@
// Copyright 2017-2021 @polkadot/util authors & contributors
// SPDX-License-Identifier: Apache-2.0
import type BN from 'bn.js';
import type { BN } from '../bn/bn';
import type { ToBnOptions } from '../types';
import { hexToBn } from '../hex/toBn';
+3 -1
View File
@@ -1,7 +1,9 @@
// Copyright 2017-2021 @polkadot/util authors & contributors
// SPDX-License-Identifier: Apache-2.0
const ALPHABET = new Array(256).fill(0).map((_, n) => n.toString(16).padStart(2, '0'));
import { arrayRange } from '../array';
const ALPHABET = arrayRange(256).map((n) => n.toString(16).padStart(2, '0'));
/** @internal */
function extract (value: Uint8Array): string {
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@polkadot/x-fetch",
"version": "6.4.1",
"version": "6.9.1",
"type": "module",
"description": "A cross-environment fetch replacement",
"browser": "browser.js",
@@ -18,8 +18,8 @@
"bugs": "https://github.com/polkadot-js/common/issues",
"homepage": "https://github.com/polkadot-js/common/tree/master/packages/x-fetch#readme",
"dependencies": {
"@babel/runtime": "^7.14.0",
"@polkadot/x-global": "6.4.1",
"@babel/runtime": "^7.14.5",
"@polkadot/x-global": "6.9.1",
"@types/node-fetch": "^2.5.10",
"node-fetch": "^2.6.1"
}
+1 -1
View File
@@ -3,4 +3,4 @@
// Auto-generated by @polkadot/dev, do not edit
export const packageInfo = { name: '@polkadot/x-fetch', version: '6.4.1' };
export const packageInfo = { name: '@polkadot/x-fetch', version: '6.9.1' };

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