diff --git a/.github/workflows/push-master.yml b/.github/workflows/push-master.yml index c43b2a3ec..89d6803ac 100644 --- a/.github/workflows/push-master.yml +++ b/.github/workflows/push-master.yml @@ -10,7 +10,7 @@ jobs: matrix: step: ['build:release', 'docs:release'] name: ${{ matrix.step }} - if: "! contains(github.event.head_commit.message, '[CI Skip]')" + if: "! contains(github.event.head_commit.message, '[CI Skip]') && github.repository == 'polkadot-js/common'" runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 diff --git a/docs/examples/keyring/03_validate_address/index.js b/docs/examples/keyring/03_validate_address/index.js index a4434ecf2..7fc91beef 100644 --- a/docs/examples/keyring/03_validate_address/index.js +++ b/docs/examples/keyring/03_validate_address/index.js @@ -1,12 +1,16 @@ -/* eslint-disable @typescript-eslint/no-var-requires */ -const { encodeAddress, decodeAddress } = require('@polkadot/keyring'); -const { isHex, hexToU8a } = require('@polkadot/util'); +const { decodeAddress, encodeAddress } = require('@polkadot/keyring'); +const { hexToU8a, isHex } = require('@polkadot/util'); const address = '5GrpknVvGGrGH3EFuURXeMrWHvbpj3VfER1oX5jFtuGbfzCE'; const isValidAddressPolkadotAddress = () => { try { - encodeAddress(isHex(address) ? hexToU8a(address) : decodeAddress(address)); + encodeAddress( + isHex(address) + ? hexToU8a(address) + : decodeAddress(address) + ); + return true; } catch (error) { return false; diff --git a/docs/examples/util-crypto/01_encrypt_decrypt_message_nacl/index.js b/docs/examples/util-crypto/01_encrypt_decrypt_message_nacl/index.js index 5e9326009..1513dfeb6 100755 --- a/docs/examples/util-crypto/01_encrypt_decrypt_message_nacl/index.js +++ b/docs/examples/util-crypto/01_encrypt_decrypt_message_nacl/index.js @@ -1,7 +1,7 @@ /* eslint-disable @typescript-eslint/require-await */ /* eslint-disable @typescript-eslint/unbound-method */ -/* eslint-disable @typescript-eslint/no-var-requires */ -const { naclEncrypt, naclDecrypt } = require('@polkadot/util-crypto'); + +const { naclDecrypt, naclEncrypt } = require('@polkadot/util-crypto'); async function main () { const secret = new Uint8Array(32); diff --git a/docs/examples/util-crypto/02_sign_verify_message_nacl/index.js b/docs/examples/util-crypto/02_sign_verify_message_nacl/index.js index d575d9614..3ab7b7dc5 100755 --- a/docs/examples/util-crypto/02_sign_verify_message_nacl/index.js +++ b/docs/examples/util-crypto/02_sign_verify_message_nacl/index.js @@ -1,6 +1,6 @@ /* eslint-disable @typescript-eslint/require-await */ /* eslint-disable @typescript-eslint/unbound-method */ -/* eslint-disable @typescript-eslint/no-var-requires */ + const { stringToU8a, u8aToHex } = require('@polkadot/util'); const { naclEncrypt, naclKeypairFromSeed, naclSign, naclVerify, randomAsU8a } = require('@polkadot/util-crypto'); @@ -9,7 +9,7 @@ async function main () { const seedAlice = 'Alice'.padEnd(32, ' '); // Generate new public/secret keypair for Alice from the supplied seed - const { secretKey, publicKey } = naclKeypairFromSeed(stringToU8a(seedAlice)); + const { publicKey, secretKey } = naclKeypairFromSeed(stringToU8a(seedAlice)); // Encrypt message. Create Uint8Array's filled with random bytes of specified length const secret = randomAsU8a(32); diff --git a/docs/examples/util-crypto/03_mnemonic_generate_validate_bip39/index.js b/docs/examples/util-crypto/03_mnemonic_generate_validate_bip39/index.js index 4f236cd01..546dc52ca 100755 --- a/docs/examples/util-crypto/03_mnemonic_generate_validate_bip39/index.js +++ b/docs/examples/util-crypto/03_mnemonic_generate_validate_bip39/index.js @@ -1,6 +1,7 @@ /* eslint-disable @typescript-eslint/unbound-method */ /* eslint-disable @typescript-eslint/require-await */ -/* eslint-disable @typescript-eslint/no-var-requires,@typescript-eslint/no-unused-vars */ +/* eslint-disable @typescript-eslint/no-unused-vars */ + const { mnemonicGenerate, mnemonicToSeed, mnemonicValidate, naclKeypairFromSeed } = require('@polkadot/util-crypto'); async function main () { @@ -19,7 +20,7 @@ async function main () { const seedAlice = mnemonicToSeed(mnemonicAlice); // Generate new public/secret keypair for Alice from the supplied seed - const { secretKey, publicKey } = naclKeypairFromSeed(seedAlice); + const { publicKey, secretKey } = naclKeypairFromSeed(seedAlice); // Encrypt, Sign and Validate the message. See Example 'Sign & Verify Message' } diff --git a/jest.config.js b/jest.config.js index 9bea5bffd..a11f7cc67 100644 --- a/jest.config.js +++ b/jest.config.js @@ -5,6 +5,7 @@ module.exports = Object.assign({}, config, { moduleNameMapper: { '@polkadot/keyring(.*)$': '/packages/keyring/src/$1', '@polkadot/util-(crypto)(.*)$': '/packages/util-$1/src/$2', + // eslint-disable-next-line sort-keys '@polkadot/util(.*)$': '/packages/util/src/$1' }, modulePathIgnorePatterns: [ diff --git a/package.json b/package.json index a9b11b543..a98410766 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ }, "devDependencies": { "@babel/core": "^7.9.0", - "@polkadot/dev": "^0.51.9", + "@polkadot/dev": "^0.52.3", "@polkadot/ts": "^0.3.14", "@types/jest": "^25.1.4" } diff --git a/packages/keyring/src/keyring.ts b/packages/keyring/src/keyring.ts index d853645eb..378c83b50 100644 --- a/packages/keyring/src/keyring.ts +++ b/packages/keyring/src/keyring.ts @@ -153,7 +153,7 @@ export default class Keyring implements KeyringInstance { const suri = _suri.startsWith('//') ? `${DEV_PHRASE}${_suri}` : _suri; - const { password, phrase, path } = keyExtractSuri(suri); + const { password, path, phrase } = keyExtractSuri(suri); let seed; if (isHex(phrase, 256)) { diff --git a/packages/keyring/src/pair/index.ts b/packages/keyring/src/pair/index.ts index a0b660627..e6f6ba1d8 100644 --- a/packages/keyring/src/pair/index.ts +++ b/packages/keyring/src/pair/index.ts @@ -62,7 +62,8 @@ function verify (type: KeypairType, message: Uint8Array, signature: Uint8Array, : naclVerify(message, signature, publicKey); } -function isLocked (secretKey?: Uint8Array): secretKey is Uint8Array { +// Not 100% correct, since it can be a Uint8Array, but an invalid one - just say "undefined" is anything non-valid +function isLocked (secretKey?: Uint8Array): secretKey is undefined { return !secretKey || secretKey.length === 0 || isEmpty(secretKey); } @@ -102,18 +103,19 @@ export default function createPair ({ toSS58, type }: Setup, { publicKey, secret get address (): string { return toSS58(publicKey); }, - get meta (): KeyringPair$Meta { - return meta; - }, get isLocked (): boolean { return isLocked(secretKey); }, + get meta (): KeyringPair$Meta { + return meta; + }, get publicKey (): Uint8Array { return publicKey; }, get type (): KeypairType { return type; }, + // eslint-disable-next-line sort-keys decodePkcs8: (passphrase?: string, _encoded?: Uint8Array | null): void => { const decoded = decode(passphrase, _encoded || encoded); @@ -131,7 +133,7 @@ export default function createPair ({ toSS58, type }: Setup, { publicKey, secret assert(!isLocked(secretKey), 'Cannot derive on a locked keypair'); const { path } = keyExtractPath(suri); - const derived = keyFromPath({ publicKey, secretKey: secretKey! }, path, type); + const derived = keyFromPath({ publicKey, secretKey }, path, type); return createPair({ toSS58, type }, derived, meta, null); }, diff --git a/packages/keyring/src/pair/nobody.ts b/packages/keyring/src/pair/nobody.ts index 7431afdc4..44e743900 100644 --- a/packages/keyring/src/pair/nobody.ts +++ b/packages/keyring/src/pair/nobody.ts @@ -25,7 +25,6 @@ const json: KeyringPair$Json = { export default function everybody (): KeyringPair { const pair: KeyringPair = { - type: 'ed25519', address, // eslint-disable-next-line @typescript-eslint/no-unused-vars decodePkcs8: (passphrase?: string, encoded?: Uint8Array): void => @@ -36,11 +35,11 @@ export default function everybody (): KeyringPair { // eslint-disable-next-line @typescript-eslint/no-unused-vars encodePkcs8: (passphrase?: string): Uint8Array => new Uint8Array(0), - meta, isLocked: true, lock: (): void => { // no locking, it is always locked }, + meta, publicKey, // eslint-disable-next-line @typescript-eslint/no-unused-vars setMeta: (meta: KeyringPair$Meta): void => @@ -51,6 +50,7 @@ export default function everybody (): KeyringPair { // eslint-disable-next-line @typescript-eslint/no-unused-vars toJson: (passphrase?: string): KeyringPair$Json => json, + type: 'ed25519', // eslint-disable-next-line @typescript-eslint/no-unused-vars verify: (message: Uint8Array, signature: Uint8Array): boolean => false diff --git a/packages/keyring/src/pair/toJson.spec.ts b/packages/keyring/src/pair/toJson.spec.ts index 187ec1776..764441b8f 100644 --- a/packages/keyring/src/pair/toJson.spec.ts +++ b/packages/keyring/src/pair/toJson.spec.ts @@ -19,8 +19,8 @@ describe('toJson', (): void => { version: '2' }, meta: { - name: 'alice', - isTesting: true + isTesting: true, + name: 'alice' } }); }); diff --git a/packages/keyring/src/pair/toJson.ts b/packages/keyring/src/pair/toJson.ts index 8942f279e..37ea38cf1 100644 --- a/packages/keyring/src/pair/toJson.ts +++ b/packages/keyring/src/pair/toJson.ts @@ -12,7 +12,7 @@ type PairStateJson = KeyringPair$Meta & { publicKey: Uint8Array; }; -export default function toJson (type: KeypairType, { publicKey, meta }: PairStateJson, encoded: Uint8Array, isEncrypted: boolean): KeyringPair$Json { +export default function toJson (type: KeypairType, { meta, publicKey }: PairStateJson, encoded: Uint8Array, isEncrypted: boolean): KeyringPair$Json { return { address: encodeAddress(publicKey), encoded: u8aToHex(encoded), diff --git a/packages/keyring/src/testing.ts b/packages/keyring/src/testing.ts index d323f54f6..e6f1f5f24 100644 --- a/packages/keyring/src/testing.ts +++ b/packages/keyring/src/testing.ts @@ -23,44 +23,44 @@ interface PairDef { // adding the keys when only the keyring is used. export const PAIRS: PairDef[] = [ { - seed: 'Alice', + publicKey: hexToU8a('0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d'), secretKey: hexToU8a('0x98319d4ff8a9508c4bb0cf0b5a78d760a0b2082c02775e6e82370816fedfff48925a225d97aa00682d6a59b95b18780c10d7032336e88f3442b42361f4a66011'), - publicKey: hexToU8a('0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d') + seed: 'Alice' }, { - seed: 'Alice//stash', + publicKey: hexToU8a('0xbe5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25f'), secretKey: hexToU8a('0xe8da6c9d810e020f5e3c7f5af2dea314cbeaa0d72bc6421e92c0808a0c584a6046ab28e97c3ffc77fe12b5a4d37e8cd4afbfebbf2391ffc7cb07c0f38c023efd'), - publicKey: hexToU8a('0xbe5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25f') + seed: 'Alice//stash' }, { - seed: 'Bob', + publicKey: hexToU8a('0x8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48'), secretKey: hexToU8a('0x081ff694633e255136bdb456c20a5fc8fed21f8b964c11bb17ff534ce80ebd5941ae88f85d0c1bfc37be41c904e1dfc01de8c8067b0d6d5df25dd1ac0894a325'), - publicKey: hexToU8a('0x8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48') + seed: 'Bob' }, { - seed: 'Bob//stash', + publicKey: hexToU8a('0xfe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860e'), secretKey: hexToU8a('0xc006507cdfc267a21532394c49ca9b754ca71de21e15a1cdf807c7ceab6d0b6c3ed408d9d35311540dcd54931933e67cf1ea10d46f75408f82b789d9bd212fde'), - publicKey: hexToU8a('0xfe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860e') + seed: 'Bob//stash' }, { - seed: 'Charlie', + publicKey: hexToU8a('0x90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22'), secretKey: hexToU8a('0xa8f2d83016052e5d6d77b2f6fd5d59418922a09024cda701b3c34369ec43a7668faf12ff39cd4e5d92bb773972f41a7a5279ebc2ed92264bed8f47d344f8f18c'), - publicKey: hexToU8a('0x90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22') + seed: 'Charlie' }, { - seed: 'Dave', + publicKey: hexToU8a('0x306721211d5404bd9da88e0204360a1a9ab8b87c66c1bc2fcdd37f3c2222cc20'), secretKey: hexToU8a('0x20e05482ca4677e0edbc58ae9a3a59f6ed3b1a9484ba17e64d6fe8688b2b7b5d108c4487b9323b98b11fe36cb301b084e920f7b7895536809a6d62a451b25568'), - publicKey: hexToU8a('0x306721211d5404bd9da88e0204360a1a9ab8b87c66c1bc2fcdd37f3c2222cc20') + seed: 'Dave' }, { - seed: 'Eve', + publicKey: hexToU8a('0xe659a7a1628cdd93febc04a4e0646ea20e9f5f0ce097d9a05290d4a9e054df4e'), secretKey: hexToU8a('0x683576abfd5dc35273e4264c23095a1bf21c14517bece57c7f0cc5c0ed4ce06a3dbf386b7828f348abe15d76973a72009e6ef86a5c91db2990cb36bb657c6587'), - publicKey: hexToU8a('0xe659a7a1628cdd93febc04a4e0646ea20e9f5f0ce097d9a05290d4a9e054df4e') + seed: 'Eve' }, { - seed: 'Ferdie', + publicKey: hexToU8a('0x1cbd2d43530a44705ad088af313e18f80b53ef16b36177cd4b77b846f2a5f07c'), secretKey: hexToU8a('0xb835c20f450079cf4f513900ae9faf8df06ad86c681884122c752a4b2bf74d4303e4f21bc6cc62bb4eeed5a9cce642c25e2d2ac1464093b50f6196d78e3a7426'), - publicKey: hexToU8a('0x1cbd2d43530a44705ad088af313e18f80b53ef16b36177cd4b77b846f2a5f07c') + seed: 'Ferdie' } ]; diff --git a/packages/util-crypto/src/nacl/open.spec.ts b/packages/util-crypto/src/nacl/open.spec.ts index 82f99a144..4cdc31ac4 100644 --- a/packages/util-crypto/src/nacl/open.spec.ts +++ b/packages/util-crypto/src/nacl/open.spec.ts @@ -14,7 +14,7 @@ describe('naclOpen', (): void => { const senderBox = naclBoxKeypairFromSecret(sender.secretKey); const receiverBox = naclBoxKeypairFromSecret(receiver.secretKey); - const { sealed, nonce } = naclSeal(message, senderBox.secretKey, receiverBox.publicKey); + const { nonce, sealed } = naclSeal(message, senderBox.secretKey, receiverBox.publicKey); expect( naclOpen(sealed, nonce, senderBox.publicKey, receiverBox.secretKey) ).toEqual( @@ -37,7 +37,7 @@ describe('naclOpen', (): void => { // Sender encrypts message to send with the public key the receiver sent and send it to receiver const senderIdBoxKey = naclBoxKeypairFromSecret(senderIdKey.secretKey); const message = new Uint8Array([1, 2, 3, 4, 5, 4, 3, 2, 1]); - const { sealed, nonce } = naclSeal(message, senderIdBoxKey.secretKey, receiverIdBoxKey.publicKey); + const { nonce, sealed } = naclSeal(message, senderIdBoxKey.secretKey, receiverIdBoxKey.publicKey); console.log(`Sender sends encrypted message to receiver ${sealed}, ${nonce}`); // Receiver opens encrypted message from the sender diff --git a/packages/util-crypto/src/nacl/seal.spec.ts b/packages/util-crypto/src/nacl/seal.spec.ts index 6bc611446..8c291c43e 100644 --- a/packages/util-crypto/src/nacl/seal.spec.ts +++ b/packages/util-crypto/src/nacl/seal.spec.ts @@ -16,8 +16,8 @@ describe('naclSeal', (): void => { expect( naclSeal(message, senderBoxSecret, receiverBoxPublic, new Uint8Array(24)) ).toEqual({ - sealed: new Uint8Array([137, 195, 104, 255, 67, 199, 40, 235, 148, 177, 180, 73, 239, 131, 215, 80, 61, 191, 167, 213, 152, 138, 5, 47, 135]), - nonce: new Uint8Array(24) + nonce: new Uint8Array(24), + sealed: new Uint8Array([137, 195, 104, 255, 67, 199, 40, 235, 148, 177, 180, 73, 239, 131, 215, 80, 61, 191, 167, 213, 152, 138, 5, 47, 135]) }); }); }); diff --git a/packages/util-crypto/src/nacl/seal.ts b/packages/util-crypto/src/nacl/seal.ts index 8c541147e..52b1d3379 100644 --- a/packages/util-crypto/src/nacl/seal.ts +++ b/packages/util-crypto/src/nacl/seal.ts @@ -27,7 +27,7 @@ interface Sealed { */ export default function naclSeal (message: Uint8Array, senderBoxSecret: Uint8Array, receiverBoxPublic: Uint8Array, nonce: Uint8Array = randomAsU8a(24)): Sealed { return { - sealed: nacl.box(message, nonce, receiverBoxPublic, senderBoxSecret), - nonce + nonce, + sealed: nacl.box(message, nonce, receiverBoxPublic, senderBoxSecret) }; } diff --git a/packages/util/src/bn/toBn.spec.ts b/packages/util/src/bn/toBn.spec.ts index b1a5d0d37..e181e63af 100644 --- a/packages/util/src/bn/toBn.spec.ts +++ b/packages/util/src/bn/toBn.spec.ts @@ -46,8 +46,8 @@ describe('bnToBn', (): void => { it('converts Compact to BN', (): void => { expect( bnToBn({ - toBn: (): BN => new BN(1234), - something: 'test' + something: 'test', + toBn: (): BN => new BN(1234) }).toNumber() ).toEqual(1234); }); diff --git a/packages/util/src/bn/toU8a.spec.ts b/packages/util/src/bn/toU8a.spec.ts index 31d0a0136..e1ce45696 100644 --- a/packages/util/src/bn/toU8a.spec.ts +++ b/packages/util/src/bn/toU8a.spec.ts @@ -45,13 +45,13 @@ describe('bnToU8a', (): void => { it('converts negative numbers (BE)', (): void => { expect( - bnToU8a(new BN(-1234), { isNegative: true, isLe: false }) + bnToU8a(new BN(-1234), { isLe: false, isNegative: true }) ).toEqual(new Uint8Array([251, 46])); }); it('converts negative numbers (bitLength)', (): void => { expect( - bnToU8a(new BN(-1234), { isNegative: true, bitLength: 32 }) + bnToU8a(new BN(-1234), { bitLength: 32, isNegative: true }) ).toEqual(new Uint8Array([46, 251, 255, 255])); }); diff --git a/packages/util/src/bn/toU8a.ts b/packages/util/src/bn/toU8a.ts index a44bfe5d4..f0bc9cd24 100644 --- a/packages/util/src/bn/toU8a.ts +++ b/packages/util/src/bn/toU8a.ts @@ -30,9 +30,9 @@ function bnToU8a (value: BN | BigInt | number | null, options?: Options): Uint8A function bnToU8a (value: BN | BigInt | number | null, bitLength?: number, isLe?: boolean): Uint8Array; function bnToU8a (value: BN | BigInt | number | null, arg1: number | Options = { bitLength: -1, isLe: true, isNegative: false }, arg2?: boolean): Uint8Array { const _options: Options = { + bitLength: -1, isLe: true, isNegative: false, - bitLength: -1, ...isNumber(arg1) ? { bitLength: arg1, isLe: arg2 } : arg1 }; diff --git a/packages/util/src/compact/toU8a.spec.ts b/packages/util/src/compact/toU8a.spec.ts index e7458ce0a..addcbe497 100644 --- a/packages/util/src/compact/toU8a.spec.ts +++ b/packages/util/src/compact/toU8a.spec.ts @@ -76,20 +76,20 @@ describe('encode', (): void => { describe('from Rust', (): void => { // Copied from https://github.com/paritytech/parity-codec/blob/master/src/codec.rs const testCases = [ - { value: new BN('0'), expected: '00' }, - { value: new BN('63'), expected: 'fc' }, - { value: new BN('64'), expected: '01 01' }, - { value: new BN('16383'), expected: 'fd ff' }, - { value: new BN('16384'), expected: '02 00 01 00' }, - { value: new BN('1073741823'), expected: 'fe ff ff ff' }, - { value: new BN('1073741824'), expected: '03 00 00 00 40' }, - { value: new BN(`${1}${'0'.repeat(32)}`, 2).subn(1), expected: '03 ff ff ff ff' }, - { value: new BN(`${1}${'0'.repeat(32)}`, 2), expected: '07 00 00 00 00 01' }, - { value: new BN(`${1}${'0'.repeat(40)}`, 2), expected: '0b 00 00 00 00 00 01' }, - { value: new BN(`${1}${'0'.repeat(48)}`, 2), expected: '0f 00 00 00 00 00 00 01' }, - { value: new BN(`${1}${'0'.repeat(56)}`, 2).subn(1), expected: '0f ff ff ff ff ff ff ff' }, - { value: new BN(`${1}${'0'.repeat(56)}`, 2), expected: '13 00 00 00 00 00 00 00 01' }, - { value: new BN(`${1}${'0'.repeat(64)}`, 2).subn(1), expected: '13 ff ff ff ff ff ff ff ff' } + { expected: '00', value: new BN('0') }, + { expected: 'fc', value: new BN('63') }, + { expected: '01 01', value: new BN('64') }, + { expected: 'fd ff', value: new BN('16383') }, + { expected: '02 00 01 00', value: new BN('16384') }, + { expected: 'fe ff ff ff', value: new BN('1073741823') }, + { expected: '03 00 00 00 40', value: new BN('1073741824') }, + { expected: '03 ff ff ff ff', value: new BN(`${1}${'0'.repeat(32)}`, 2).subn(1) }, + { expected: '07 00 00 00 00 01', value: new BN(`${1}${'0'.repeat(32)}`, 2) }, + { expected: '0b 00 00 00 00 00 01', value: new BN(`${1}${'0'.repeat(40)}`, 2) }, + { expected: '0f 00 00 00 00 00 00 01', value: new BN(`${1}${'0'.repeat(48)}`, 2) }, + { expected: '0f ff ff ff ff ff ff ff', value: new BN(`${1}${'0'.repeat(56)}`, 2).subn(1) }, + { expected: '13 00 00 00 00 00 00 00 01', value: new BN(`${1}${'0'.repeat(56)}`, 2) }, + { expected: '13 ff ff ff ff ff ff ff ff', value: new BN(`${1}${'0'.repeat(64)}`, 2).subn(1) } ]; function testEncode (value: BN, expected: string): void { @@ -104,6 +104,6 @@ describe('encode', (): void => { }); } - testCases.forEach(({ value, expected }): void => testEncode(value, expected)); + testCases.forEach(({ expected, value }): void => testEncode(value, expected)); }); }); diff --git a/packages/util/src/format/formatBalance.spec.ts b/packages/util/src/format/formatBalance.spec.ts index bc57f3ad8..4ab6ee661 100644 --- a/packages/util/src/format/formatBalance.spec.ts +++ b/packages/util/src/format/formatBalance.spec.ts @@ -17,13 +17,13 @@ describe('formatBalance', (): void => { it('formats 123,456,789,000 (decimals=15)', (): void => { expect( - formatBalance(TESTVAL, { withSi: true, decimals: 15 }) + formatBalance(TESTVAL, { decimals: 15, withSi: true }) ).toEqual('123.456µ Unit'); }); it('formats BigInt numbers', (): void => { expect( - formatBalance(123_456_789_000n, { withSi: true, decimals: 15 }) + formatBalance(123_456_789_000n, { decimals: 15, withSi: true }) ).toEqual('123.456µ Unit'); }); @@ -35,24 +35,24 @@ describe('formatBalance', (): void => { it('formats 123,456,789,000 (decimals=36, option)', (): void => { expect( - formatBalance(TESTVAL, { withSi: true, decimals: 36 }) + formatBalance(TESTVAL, { decimals: 36, withSi: true }) ).toEqual('0.123y Unit'); }); it('formats 123,456,789,000 (decimals=15, Compact)', (): void => { const compact = { + something: 'else', toBn: (): BN => TESTVAL, - unwrap: (): BN => TESTVAL, - something: 'else' + unwrap: (): BN => TESTVAL }; expect( - formatBalance(compact, { withSi: true, decimals: 15 }) + formatBalance(compact, { decimals: 15, withSi: true }) ).toEqual('123.456µ Unit'); }); it('formats 123,456,789,000 (decimals=12)', (): void => { expect( - formatBalance(TESTVAL, { withSi: true, decimals: 12 }) + formatBalance(TESTVAL, { decimals: 12, withSi: true }) ).toEqual('123.456m Unit'); }); @@ -173,13 +173,13 @@ describe('formatBalance', (): void => { it('finds the SI value', (): void => { expect( formatBalance.findSi('k') - ).toEqual({ power: 3, value: 'k', text: 'Kilo' }); + ).toEqual({ power: 3, text: 'Kilo', value: 'k' }); }); it('returns default on not found', (): void => { expect( formatBalance.findSi('blah') - ).toEqual({ power: 0, value: '-', text: 'Unit' }); + ).toEqual({ power: 0, text: 'Unit', value: '-' }); }); }); @@ -214,15 +214,15 @@ describe('formatBalance', (): void => { expect( formatBalance.getOptions() ).toEqual([ - { power: 0, value: '-', text: 'TEST' }, - { power: 3, value: 'k', text: 'Kilo' }, - { power: 6, value: 'M', text: 'Mega' }, - { power: 9, value: 'G', text: 'Giga' }, - { power: 12, value: 'T', text: 'Tera' }, - { power: 15, value: 'P', text: 'Peta' }, - { power: 18, value: 'E', text: 'Exa' }, - { power: 21, value: 'Z', text: 'Zeta' }, - { power: 24, value: 'Y', text: 'Yotta' } + { power: 0, text: 'TEST', value: '-' }, + { power: 3, text: 'Kilo', value: 'k' }, + { power: 6, text: 'Mega', value: 'M' }, + { power: 9, text: 'Giga', value: 'G' }, + { power: 12, text: 'Tera', value: 'T' }, + { power: 15, text: 'Peta', value: 'P' }, + { power: 18, text: 'Exa', value: 'E' }, + { power: 21, text: 'Zeta', value: 'Z' }, + { power: 24, text: 'Yotta', value: 'Y' } ]); }); }); diff --git a/packages/util/src/format/si.ts b/packages/util/src/format/si.ts index 41f5bf153..2681f662d 100644 --- a/packages/util/src/format/si.ts +++ b/packages/util/src/format/si.ts @@ -7,23 +7,23 @@ import { SiDef } from '../types'; export const SI_MID = 8; export const SI: SiDef[] = [ - { power: -24, value: 'y', text: 'yocto' }, - { power: -21, value: 'z', text: 'zepto' }, - { power: -18, value: 'a', text: 'atto' }, - { power: -15, value: 'f', text: 'femto' }, - { power: -12, value: 'p', text: 'pico' }, - { power: -9, value: 'n', text: 'nano' }, - { power: -6, value: 'µ', text: 'micro' }, - { power: -3, value: 'm', text: 'milli' }, - { power: 0, value: '-', text: 'Unit' }, // position 8 - { power: 3, value: 'k', text: 'Kilo' }, - { power: 6, value: 'M', text: 'Mega' }, - { power: 9, value: 'G', text: 'Giga' }, - { power: 12, value: 'T', text: 'Tera' }, - { power: 15, value: 'P', text: 'Peta' }, - { power: 18, value: 'E', text: 'Exa' }, - { power: 21, value: 'Z', text: 'Zeta' }, - { power: 24, value: 'Y', text: 'Yotta' } + { power: -24, text: 'yocto', value: 'y' }, + { power: -21, text: 'zepto', value: 'z' }, + { power: -18, text: 'atto', value: 'a' }, + { power: -15, text: 'femto', value: 'f' }, + { power: -12, text: 'pico', value: 'p' }, + { power: -9, text: 'nano', value: 'n' }, + { power: -6, text: 'micro', value: 'µ' }, + { power: -3, text: 'milli', value: 'm' }, + { power: 0, text: 'Unit', value: '-' }, // position 8 + { power: 3, text: 'Kilo', value: 'k' }, + { power: 6, text: 'Mega', value: 'M' }, + { power: 9, text: 'Giga', value: 'G' }, + { power: 12, text: 'Tera', value: 'T' }, + { power: 15, text: 'Peta', value: 'P' }, + { power: 18, text: 'Exa', value: 'E' }, + { power: 21, text: 'Zeta', value: 'Z' }, + { power: 24, text: 'Yotta', value: 'Y' } ]; // Given a SI type (e.g. k, m, Y) find the SI definition diff --git a/typedoc.js b/typedoc.js index f3a792ed9..d7d999bff 100644 --- a/typedoc.js +++ b/typedoc.js @@ -1,15 +1,15 @@ module.exports = { - name: 'Polkadot JS Common', exclude: '**/*+(index|e2e|spec).ts', excludeExternals: true, excludeNotExported: true, - excludeProtected: true, excludePrivate: true, + excludeProtected: true, hideGenerator: true, includeDeclarations: false, - out: 'docs', module: 'commonjs', moduleResolution: 'node', + name: 'Polkadot JS Common', + out: 'docs', stripInternal: 'true', theme: 'markdown' }; diff --git a/yarn.lock b/yarn.lock index ae5827904..26c510d53 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1469,74 +1469,74 @@ __metadata: languageName: node linkType: hard -"@jest/core@npm:^25.2.3": - version: 25.2.3 - resolution: "@jest/core@npm:25.2.3" +"@jest/core@npm:^25.2.4": + version: 25.2.4 + resolution: "@jest/core@npm:25.2.4" dependencies: "@jest/console": ^25.2.3 - "@jest/reporters": ^25.2.3 - "@jest/test-result": ^25.2.3 - "@jest/transform": ^25.2.3 + "@jest/reporters": ^25.2.4 + "@jest/test-result": ^25.2.4 + "@jest/transform": ^25.2.4 "@jest/types": ^25.2.3 ansi-escapes: ^4.2.1 chalk: ^3.0.0 exit: ^0.1.2 graceful-fs: ^4.2.3 jest-changed-files: ^25.2.3 - jest-config: ^25.2.3 + jest-config: ^25.2.4 jest-haste-map: ^25.2.3 - jest-message-util: ^25.2.3 + jest-message-util: ^25.2.4 jest-regex-util: ^25.2.1 jest-resolve: ^25.2.3 - jest-resolve-dependencies: ^25.2.3 - jest-runner: ^25.2.3 - jest-runtime: ^25.2.3 - jest-snapshot: ^25.2.3 + jest-resolve-dependencies: ^25.2.4 + jest-runner: ^25.2.4 + jest-runtime: ^25.2.4 + jest-snapshot: ^25.2.4 jest-util: ^25.2.3 jest-validate: ^25.2.3 - jest-watcher: ^25.2.3 + jest-watcher: ^25.2.4 micromatch: ^4.0.2 p-each-series: ^2.1.0 realpath-native: ^2.0.0 rimraf: ^3.0.0 slash: ^3.0.0 strip-ansi: ^6.0.0 - checksum: 2/402fea735abdd435b062276dfbe5d1fdfe8c2b9077eaf4119fa6c681573268f79bb9312329a747c5586ca70c731a55b6434a16e7737f2db3102f24bd904dbcd5 + checksum: 2/0ce388d27e01bf8c70855bbb0b01c326feb0e7ff1dc4d52ad36a4b07f62c27db4a8e487f5986690dc04004d5278dfa793ddf2428fafc1e4d058c3fc77c81eae8 languageName: node linkType: hard -"@jest/environment@npm:^25.2.3": - version: 25.2.3 - resolution: "@jest/environment@npm:25.2.3" +"@jest/environment@npm:^25.2.4": + version: 25.2.4 + resolution: "@jest/environment@npm:25.2.4" dependencies: - "@jest/fake-timers": ^25.2.3 + "@jest/fake-timers": ^25.2.4 "@jest/types": ^25.2.3 jest-mock: ^25.2.3 - checksum: 2/aeeba5d16ec8d6542f94070811accc539e5e3b4ac7689f6cc45f1159c808a49d2b2917d16be2ae56aa1d8cdfc150d99413e593913ac523c675791fdc5ab63f8c + checksum: 2/a88585008da4da2319ed3a4c1ef2e5e57cbee8a233b05e20bf1e1e95584fe01af9555e7d830133e99320e3c31b2b620a7e289338d4b1e27574b92d16d02b6c6b languageName: node linkType: hard -"@jest/fake-timers@npm:^25.2.3": - version: 25.2.3 - resolution: "@jest/fake-timers@npm:25.2.3" +"@jest/fake-timers@npm:^25.2.4": + version: 25.2.4 + resolution: "@jest/fake-timers@npm:25.2.4" dependencies: "@jest/types": ^25.2.3 - jest-message-util: ^25.2.3 + jest-message-util: ^25.2.4 jest-mock: ^25.2.3 jest-util: ^25.2.3 lolex: ^5.0.0 - checksum: 2/6449b3af369130afb80c6484fb594eaf5cc6ab4eadcc8bb5f9d166ee4528a0144abc4baf6c0bf8992a4699e4083d00412750a5cc481159c92e5115171e583bdb + checksum: 2/b2dd323de13955c6917debc4279c316015813414da81d14764dc3d5e899bf84d8d6fe0abfa077e78d873c220ede0c6a8efa15841b667696c626b1d341bfd8f3d languageName: node linkType: hard -"@jest/reporters@npm:^25.2.3": - version: 25.2.3 - resolution: "@jest/reporters@npm:25.2.3" +"@jest/reporters@npm:^25.2.4": + version: 25.2.4 + resolution: "@jest/reporters@npm:25.2.4" dependencies: "@bcoe/v8-coverage": ^0.2.3 "@jest/console": ^25.2.3 - "@jest/test-result": ^25.2.3 - "@jest/transform": ^25.2.3 + "@jest/test-result": ^25.2.4 + "@jest/transform": ^25.2.4 "@jest/types": ^25.2.3 chalk: ^3.0.0 collect-v8-coverage: ^1.0.0 @@ -1560,7 +1560,7 @@ __metadata: dependenciesMeta: node-notifier: optional: true - checksum: 2/7c67ffc87a382246063eae79eace10b0e940d48e486933dc5d2fdf0e9eb533780668277c651dfd6af46a50de729014ca1b5a1b99cb9685f1cd1d2356d37ede12 + checksum: 2/accce1da8f2ee228a682435ec9c379ef59b8ad8d7c73f7d8b0ae54e8d4f64126b4f691817468b2409a144330b7a3544b95d0e6966cc319f76a9037e6082c8d8f languageName: node linkType: hard @@ -1575,34 +1575,34 @@ __metadata: languageName: node linkType: hard -"@jest/test-result@npm:^25.2.3": - version: 25.2.3 - resolution: "@jest/test-result@npm:25.2.3" +"@jest/test-result@npm:^25.2.4": + version: 25.2.4 + resolution: "@jest/test-result@npm:25.2.4" dependencies: "@jest/console": ^25.2.3 - "@jest/transform": ^25.2.3 + "@jest/transform": ^25.2.4 "@jest/types": ^25.2.3 "@types/istanbul-lib-coverage": ^2.0.0 collect-v8-coverage: ^1.0.0 - checksum: 2/56b6f6994a8a70e08825258be23f2c9c86e6ebb748c6b9eff1871d993d0bd79757850e4c5fe5d5e7ff1b95e3c4de352fa315227632ac370361a3aef92936888f + checksum: 2/fce5ba7c1214ea81f3e88fc3f116af89ef31408fbf1f59365781f5283475a2f90a791181ff084851bbb46e2fc06e0c27c23f9d4dca90c1b99b18ef55f650772f languageName: node linkType: hard -"@jest/test-sequencer@npm:^25.2.3": - version: 25.2.3 - resolution: "@jest/test-sequencer@npm:25.2.3" +"@jest/test-sequencer@npm:^25.2.4": + version: 25.2.4 + resolution: "@jest/test-sequencer@npm:25.2.4" dependencies: - "@jest/test-result": ^25.2.3 + "@jest/test-result": ^25.2.4 jest-haste-map: ^25.2.3 - jest-runner: ^25.2.3 - jest-runtime: ^25.2.3 - checksum: 2/4fb81161f67a8d57c0e96e9c6855bc3b2eeeabe1e34fcb955c192cb38bd26dea83b3ca4c42a5b4914eb92e1ed7cd526cba0a51b214202b91321fb738a4006ab3 + jest-runner: ^25.2.4 + jest-runtime: ^25.2.4 + checksum: 2/1b49fc6ba64972b28e77c9cee19d40e36be6838b6f2c6168e26823005e6c5ba1779ee8228572547d396b9995ead979f7e0e80820bffdaf290ea2c755958376bb languageName: node linkType: hard -"@jest/transform@npm:^25.2.3": - version: 25.2.3 - resolution: "@jest/transform@npm:25.2.3" +"@jest/transform@npm:^25.2.4": + version: 25.2.4 + resolution: "@jest/transform@npm:25.2.4" dependencies: "@babel/core": ^7.1.0 "@jest/types": ^25.2.3 @@ -1620,7 +1620,7 @@ __metadata: slash: ^3.0.0 source-map: ^0.6.1 write-file-atomic: ^3.0.0 - checksum: 2/51e10af2f8d64024a87bc8e83ea478ba2f3acb4c60f4695ff2ab1eef7f4286d8b9316c9dc440c380b27117dbbf66b4daa562e2d231202265393f917f2f0584c2 + checksum: 2/b7541b128602b7cf6b22fe4a6dc16c70473e33bcee5f8011a67b33fa58894f54c3ba0ddfb18991fef5943541f763fbdc724b2dd17d4ecb3d663a4c5a08ead7a2 languageName: node linkType: hard @@ -2581,9 +2581,9 @@ __metadata: languageName: node linkType: hard -"@polkadot/dev@npm:^0.51.9": - version: 0.51.9 - resolution: "@polkadot/dev@npm:0.51.9" +"@polkadot/dev@npm:^0.52.3": + version: 0.52.3 + resolution: "@polkadot/dev@npm:0.52.3" dependencies: "@babel/cli": ^7.8.4 "@babel/core": ^7.9.0 @@ -2605,31 +2605,32 @@ __metadata: "@babel/preset-typescript": ^7.9.0 "@babel/register": ^7.9.0 "@babel/runtime": ^7.9.2 - "@typescript-eslint/eslint-plugin": 2.25.0 - "@typescript-eslint/parser": 2.25.0 + "@typescript-eslint/eslint-plugin": 2.26.0 + "@typescript-eslint/parser": 2.26.0 "@vue/component-compiler-utils": ^3.1.1 babel-core: ^7.0.0-bridge.0 - babel-jest: ^25.2.3 + babel-jest: ^25.2.4 babel-plugin-module-resolver: ^4.0.0 babel-plugin-styled-components: ^1.10.7 - browserslist: ^4.11.0 + browserslist: ^4.11.1 chalk: ^3.0.0 coveralls: ^3.0.11 cpx: ^1.5.0 eslint: ^6.8.0 eslint-config-standard: ^14.1.1 eslint-import-resolver-node: ^0.3.3 - eslint-plugin-import: ^2.20.1 - eslint-plugin-node: ^11.0.0 + eslint-plugin-import: ^2.20.2 + eslint-plugin-node: ^11.1.0 eslint-plugin-promise: ^4.2.1 eslint-plugin-react: ^7.19.0 eslint-plugin-react-hooks: ^3.0.0 + eslint-plugin-sort-destructure-keys: ^1.3.3 eslint-plugin-standard: ^4.0.1 fs-extra: ^9.0.0 gh-pages: ^2.2.0 - jest: ^25.2.3 - jest-cli: ^25.2.3 - jest-config: ^25.2.3 + jest: ^25.2.4 + jest-cli: ^25.2.4 + jest-config: ^25.2.4 jest-haste-map: ^25.2.3 jest-resolve: ^25.2.3 lerna: ^3.20.2 @@ -2663,7 +2664,7 @@ __metadata: polkadot-exec-typedoc: scripts/polkadot-exec-typedoc.js polkadot-exec-vuepress: scripts/polkadot-exec-vuepress.js polkadot-exec-webpack: scripts/polkadot-exec-webpack.js - checksum: 2/34e23d8b643d6f8368917c2e9aa3314ad39c9fd6e8ef18792b6a0aea45bd615da1a9a7d399d64951492f55ca0980a7c6e92112e90b34267cc2652db41363ee7b + checksum: 2/aeb6078c70026ea90323925491fe3f6d09ec69d7336655779e56480950013bff880ee64f2a917d0f9850aeb2fc837c7dfa7e717c67b5c237ddfce4ae76aee5a0 languageName: node linkType: hard @@ -3002,11 +3003,11 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:2.25.0": - version: 2.25.0 - resolution: "@typescript-eslint/eslint-plugin@npm:2.25.0" +"@typescript-eslint/eslint-plugin@npm:2.26.0": + version: 2.26.0 + resolution: "@typescript-eslint/eslint-plugin@npm:2.26.0" dependencies: - "@typescript-eslint/experimental-utils": 2.25.0 + "@typescript-eslint/experimental-utils": 2.26.0 functional-red-black-tree: ^1.0.1 regexpp: ^3.0.0 tsutils: ^3.17.1 @@ -3017,31 +3018,31 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 2/7ca02b7aa06326488583e4b1078fbf39b0d5a909c689e87e4a8f9def05720b8ef91faee12fe09b344c149f068fb00ca9692d7f918ffc3b9bfc1c0b79632959af + checksum: 2/0cb2632af0f6983e6b00d45ce6dca034a30172add8da0b99d30c8525b38a8cffb2cceeaa13d723fc4269c717d7533b27b262c70b0cfbc9a89ada6e9c2f7c1f53 languageName: node linkType: hard -"@typescript-eslint/experimental-utils@npm:2.25.0": - version: 2.25.0 - resolution: "@typescript-eslint/experimental-utils@npm:2.25.0" +"@typescript-eslint/experimental-utils@npm:2.26.0": + version: 2.26.0 + resolution: "@typescript-eslint/experimental-utils@npm:2.26.0" dependencies: "@types/json-schema": ^7.0.3 - "@typescript-eslint/typescript-estree": 2.25.0 + "@typescript-eslint/typescript-estree": 2.26.0 eslint-scope: ^5.0.0 eslint-utils: ^2.0.0 peerDependencies: eslint: "*" - checksum: 2/1b221a91d887a2217dd4f9c6f15664b1d6bb37ce024e71cdfd90a4a356af974d92a17805af255f18e98ac314cbd32cc4387f45234c908e04ac632e03dfc51a1f + checksum: 2/b2df423dcc28946c9977f174e36c079ac4dc2250e5878b149be1627cbf1e3a9cabd91288d61c56b9d4d7cd88d036869f48d58efb8054e3db543d8936b84d8776 languageName: node linkType: hard -"@typescript-eslint/parser@npm:2.25.0": - version: 2.25.0 - resolution: "@typescript-eslint/parser@npm:2.25.0" +"@typescript-eslint/parser@npm:2.26.0": + version: 2.26.0 + resolution: "@typescript-eslint/parser@npm:2.26.0" dependencies: "@types/eslint-visitor-keys": ^1.0.0 - "@typescript-eslint/experimental-utils": 2.25.0 - "@typescript-eslint/typescript-estree": 2.25.0 + "@typescript-eslint/experimental-utils": 2.26.0 + "@typescript-eslint/typescript-estree": 2.26.0 eslint-visitor-keys: ^1.1.0 peerDependencies: eslint: ^5.0.0 || ^6.0.0 @@ -3049,11 +3050,31 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 2/e0202f663b146db3ac245613ab782e47e2db6ce4daa84e618286d7f9acb8b9343684ee4dcd675abd0fa839c721fbb200eef90ae4617b3e162c6ac355ca42ec98 + checksum: 2/2b751d3d3f0e2fdd741249fe8d926e6c9d62fee8f98dfad73d6cc116bb28825c8fc4d4d2b4bb8483baf6ad1e492ef0ef69c0fe8b0115423ca289a0f76aeca522 languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:2.25.0, @typescript-eslint/typescript-estree@npm:^2.4.0": +"@typescript-eslint/typescript-estree@npm:2.26.0": + version: 2.26.0 + resolution: "@typescript-eslint/typescript-estree@npm:2.26.0" + dependencies: + debug: ^4.1.1 + eslint-visitor-keys: ^1.1.0 + glob: ^7.1.6 + is-glob: ^4.0.1 + lodash: ^4.17.15 + semver: ^6.3.0 + tsutils: ^3.17.1 + peerDependencies: + typescript: "*" + peerDependenciesMeta: + typescript: + optional: true + checksum: 2/89285c28301337187c6a093a72757de633acd74771421c0a4ed02a0f942737314549122b424893e0f60720c44b07d6768617ad3e898464e49424e3cd855a3092 + languageName: node + linkType: hard + +"@typescript-eslint/typescript-estree@npm:^2.4.0": version: 2.25.0 resolution: "@typescript-eslint/typescript-estree@npm:2.25.0" dependencies: @@ -4384,11 +4405,11 @@ __metadata: languageName: node linkType: hard -"babel-jest@npm:^25.2.3": - version: 25.2.3 - resolution: "babel-jest@npm:25.2.3" +"babel-jest@npm:^25.2.4": + version: 25.2.4 + resolution: "babel-jest@npm:25.2.4" dependencies: - "@jest/transform": ^25.2.3 + "@jest/transform": ^25.2.4 "@jest/types": ^25.2.3 "@types/babel__core": ^7.1.0 babel-plugin-istanbul: ^6.0.0 @@ -4397,7 +4418,7 @@ __metadata: slash: ^3.0.0 peerDependencies: "@babel/core": ^7.0.0 - checksum: 2/10d76005713011f13ea61614141657d1c1675251c0ccd190d83ec7879a52f72665a15f205b9706a22650d07e9e21cce2a102962bb92190413c50a2e2da189dff + checksum: 2/8f77bb04cfa871cea8ae576dcaa5e5630f2663f6e38c6f2fea92903cb15a476bbe09ab4f926ad7692a573abeae4d14199c43adbd4c7e6c299631db766fb1c07e languageName: node linkType: hard @@ -4847,6 +4868,20 @@ __metadata: languageName: node linkType: hard +"browserslist@npm:^4.11.1": + version: 4.11.1 + resolution: "browserslist@npm:4.11.1" + dependencies: + caniuse-lite: ^1.0.30001038 + electron-to-chromium: ^1.3.390 + node-releases: ^1.1.53 + pkg-up: ^2.0.0 + bin: + browserslist: cli.js + checksum: 2/fdf7a5ab90fac4dd9ffbcc5c219afbe30a8deb16b2d6fe4277cf4271e12b59f1b464ace29fb4ff24896a11e14a02f4cc27a6a560575d2767b77a629d073deea4 + languageName: node + linkType: hard + "bs58@npm:^4.0.1": version: 4.0.1 resolution: "bs58@npm:4.0.1" @@ -5141,6 +5176,13 @@ __metadata: languageName: node linkType: hard +"caniuse-lite@npm:^1.0.30001038": + version: 1.0.30001038 + resolution: "caniuse-lite@npm:1.0.30001038" + checksum: 2/ea241b85fe7f0c4bb98e0b505def4141d21b330203097e3ec7adaad33fb2839b0e7bcfa98269cd2a4050de892a10c3282d8f4ba21acabb2b068a16da8360cdc9 + languageName: node + linkType: hard + "capture-exit@npm:^2.0.0": version: 2.0.0 resolution: "capture-exit@npm:2.0.0" @@ -7061,6 +7103,13 @@ __metadata: languageName: node linkType: hard +"electron-to-chromium@npm:^1.3.390": + version: 1.3.392 + resolution: "electron-to-chromium@npm:1.3.392" + checksum: 2/bc1296d31caf80eef819ab0cba4c015db5a7d422a4ec67d97abf72fa76be07f50b86106ab07d7bb465f738fa62065da9f2152abdab92fd7f5c85559b4c09a665 + languageName: node + linkType: hard + "elliptic@npm:^6.0.0, elliptic@npm:^6.5.2": version: 6.5.2 resolution: "elliptic@npm:6.5.2" @@ -7358,9 +7407,9 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-import@npm:^2.20.1": - version: 2.20.1 - resolution: "eslint-plugin-import@npm:2.20.1" +"eslint-plugin-import@npm:^2.20.2": + version: 2.20.2 + resolution: "eslint-plugin-import@npm:2.20.2" dependencies: array-includes: ^3.0.3 array.prototype.flat: ^1.2.1 @@ -7376,13 +7425,13 @@ __metadata: resolve: ^1.12.0 peerDependencies: eslint: 2.x - 6.x - checksum: 2/d35b8171ff4611f19749f12f7fcb680a6cd583c6df90a5702116d5502152bd6f8d3c41431e5dc7260d29905c79fa0cf417386d80aa4074a511e371ef9b915348 + checksum: 2/be55da3d409d24a5b21b9d999271c7c9080bc9c3547743d5897663a1d59a14ceac6be70f3d89ef5a997009d3c661189c63d7c9e8889c140b3cef0dbe03b37eea languageName: node linkType: hard -"eslint-plugin-node@npm:^11.0.0": - version: 11.0.0 - resolution: "eslint-plugin-node@npm:11.0.0" +"eslint-plugin-node@npm:^11.1.0": + version: 11.1.0 + resolution: "eslint-plugin-node@npm:11.1.0" dependencies: eslint-plugin-es: ^3.0.0 eslint-utils: ^2.0.0 @@ -7392,7 +7441,7 @@ __metadata: semver: ^6.1.0 peerDependencies: eslint: ">=5.16.0" - checksum: 2/fabfc5896b84d047ac3133bbe595a1b6506e47a951a565c9d75d0ea72a1ec20950f2f9d01a503bb567731c3b32e7b3f4c68ee951449bf8cfdb74fffca89d8496 + checksum: 2/634e03613a4aa0ffd5ccf0807a375840a915797781a4e5d44fb1c4d331cd2a5e6b3da41924a0d6a2123c1a51626db032a038210153fbba6a0012e0b7c7f26499 languageName: node linkType: hard @@ -7434,6 +7483,17 @@ __metadata: languageName: node linkType: hard +"eslint-plugin-sort-destructure-keys@npm:^1.3.3": + version: 1.3.3 + resolution: "eslint-plugin-sort-destructure-keys@npm:1.3.3" + dependencies: + natural-compare-lite: ^1.4.0 + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 + checksum: 2/bcf1e4c8d9ebd692269cfbec29fbd321eec86f13273b313c46d5cff6c9434873941db4dfa117f7b71a60e247c3be5df2cdc324d4216b824ac19e3fad259370fd + languageName: node + linkType: hard + "eslint-plugin-standard@npm:^4.0.1": version: 4.0.1 resolution: "eslint-plugin-standard@npm:4.0.1" @@ -7739,17 +7799,17 @@ __metadata: languageName: node linkType: hard -"expect@npm:^25.2.3": - version: 25.2.3 - resolution: "expect@npm:25.2.3" +"expect@npm:^25.2.4": + version: 25.2.4 + resolution: "expect@npm:25.2.4" dependencies: "@jest/types": ^25.2.3 ansi-styles: ^4.0.0 jest-get-type: ^25.2.1 jest-matcher-utils: ^25.2.3 - jest-message-util: ^25.2.3 + jest-message-util: ^25.2.4 jest-regex-util: ^25.2.1 - checksum: 2/108ae91b74279ad5569372ea51ea0c3083dda3cd22947c215aa4bac381bdf4048cdd7cf8b7d2b1439adf36d52a07c83dfb3cc1e740be17a1130f2797f3945750 + checksum: 2/ea758b5414b22728ad7b73fb384a6b6d878d70a8dcce04c2a83999a9ae66cb0650bc3e17efe44d8db6b5e51067db8d105f2cc1fcd96c73fbbd78fed6e14e6a5b languageName: node linkType: hard @@ -10366,18 +10426,18 @@ __metadata: languageName: node linkType: hard -"jest-cli@npm:^25.2.3": - version: 25.2.3 - resolution: "jest-cli@npm:25.2.3" +"jest-cli@npm:^25.2.4": + version: 25.2.4 + resolution: "jest-cli@npm:25.2.4" dependencies: - "@jest/core": ^25.2.3 - "@jest/test-result": ^25.2.3 + "@jest/core": ^25.2.4 + "@jest/test-result": ^25.2.4 "@jest/types": ^25.2.3 chalk: ^3.0.0 exit: ^0.1.2 import-local: ^3.0.2 is-ci: ^2.0.0 - jest-config: ^25.2.3 + jest-config: ^25.2.4 jest-util: ^25.2.3 jest-validate: ^25.2.3 prompts: ^2.0.1 @@ -10385,25 +10445,25 @@ __metadata: yargs: ^15.3.1 bin: jest: bin/jest.js - checksum: 2/a7a82ece67c5b0b8bb07ac4e44e36efddedfdc4fbfc0fc251627cc015fb49da30246a80a07e4c232260f7205634d26466879849d38234344ec12db8cdbcb5237 + checksum: 2/12b872723071c6014d1907dbd5c3e792acf9c631e2af364bc5d5eeb5cb85d01e633cbb77092699a52d35e44e064aae2a42249b20bb6160a87c278581b2df272c languageName: node linkType: hard -"jest-config@npm:^25.2.3": - version: 25.2.3 - resolution: "jest-config@npm:25.2.3" +"jest-config@npm:^25.2.4": + version: 25.2.4 + resolution: "jest-config@npm:25.2.4" dependencies: "@babel/core": ^7.1.0 - "@jest/test-sequencer": ^25.2.3 + "@jest/test-sequencer": ^25.2.4 "@jest/types": ^25.2.3 - babel-jest: ^25.2.3 + babel-jest: ^25.2.4 chalk: ^3.0.0 deepmerge: ^4.2.2 glob: ^7.1.1 - jest-environment-jsdom: ^25.2.3 - jest-environment-node: ^25.2.3 + jest-environment-jsdom: ^25.2.4 + jest-environment-node: ^25.2.4 jest-get-type: ^25.2.1 - jest-jasmine2: ^25.2.3 + jest-jasmine2: ^25.2.4 jest-regex-util: ^25.2.1 jest-resolve: ^25.2.3 jest-util: ^25.2.3 @@ -10411,7 +10471,7 @@ __metadata: micromatch: ^4.0.2 pretty-format: ^25.2.3 realpath-native: ^2.0.0 - checksum: 2/6b480d183842f5744de9ccbd2c2f9c24cffef00acad1e02ca539cb42ffc29d6f5e41e94d0bf05298ec5ad0bbabfd85f7929dcf9460ec74a07512e7024feb89d0 + checksum: 2/2a2cdbad8d96c60b64c3a6104546432b739afc221a654174df91df3c75d80381a9088ea4f7d93fb23710bfbae307343001f2373b059671e5e409754c4266ba60 languageName: node linkType: hard @@ -10461,31 +10521,31 @@ __metadata: languageName: node linkType: hard -"jest-environment-jsdom@npm:^25.2.3": - version: 25.2.3 - resolution: "jest-environment-jsdom@npm:25.2.3" +"jest-environment-jsdom@npm:^25.2.4": + version: 25.2.4 + resolution: "jest-environment-jsdom@npm:25.2.4" dependencies: - "@jest/environment": ^25.2.3 - "@jest/fake-timers": ^25.2.3 + "@jest/environment": ^25.2.4 + "@jest/fake-timers": ^25.2.4 "@jest/types": ^25.2.3 jest-mock: ^25.2.3 jest-util: ^25.2.3 jsdom: ^15.2.1 - checksum: 2/f29cabba108c496d966315330be4affe23133cfd1ada410e88f66acf81e7e5b111e2c600bc39007036b16250cce7803dacaeaa8df962217e7ed53123bab1449b + checksum: 2/b68ffc4a00343951ba29725c0d851ad61b7221a6d9e70d6144d4168cac0c27f7a38d08bd809e6c60429acc5e144afd5661afadad4d2ad60f4cd67b66e0d86996 languageName: node linkType: hard -"jest-environment-node@npm:^25.2.3": - version: 25.2.3 - resolution: "jest-environment-node@npm:25.2.3" +"jest-environment-node@npm:^25.2.4": + version: 25.2.4 + resolution: "jest-environment-node@npm:25.2.4" dependencies: - "@jest/environment": ^25.2.3 - "@jest/fake-timers": ^25.2.3 + "@jest/environment": ^25.2.4 + "@jest/fake-timers": ^25.2.4 "@jest/types": ^25.2.3 jest-mock: ^25.2.3 jest-util: ^25.2.3 semver: ^6.3.0 - checksum: 2/7e3bdbb6b660fceae1ba947b2574dfcd6efdde3df359283f3c324471f0ef59e6acbcdccd54750ca301eb9a2556b68455bf2c1cc19a4bace88edd5ec49d7e3e21 + checksum: 2/df323050406be8801e81db9da86c2ed3d508a077c98778b73fe827c48ad7c22291ae64248ce7806135e2ffcb957423de886a42020383b10873005da66111e0ca languageName: node linkType: hard @@ -10526,28 +10586,28 @@ __metadata: languageName: node linkType: hard -"jest-jasmine2@npm:^25.2.3": - version: 25.2.3 - resolution: "jest-jasmine2@npm:25.2.3" +"jest-jasmine2@npm:^25.2.4": + version: 25.2.4 + resolution: "jest-jasmine2@npm:25.2.4" dependencies: "@babel/traverse": ^7.1.0 - "@jest/environment": ^25.2.3 + "@jest/environment": ^25.2.4 "@jest/source-map": ^25.2.1 - "@jest/test-result": ^25.2.3 + "@jest/test-result": ^25.2.4 "@jest/types": ^25.2.3 chalk: ^3.0.0 co: ^4.6.0 - expect: ^25.2.3 + expect: ^25.2.4 is-generator-fn: ^2.0.0 jest-each: ^25.2.3 jest-matcher-utils: ^25.2.3 - jest-message-util: ^25.2.3 - jest-runtime: ^25.2.3 - jest-snapshot: ^25.2.3 + jest-message-util: ^25.2.4 + jest-runtime: ^25.2.4 + jest-snapshot: ^25.2.4 jest-util: ^25.2.3 pretty-format: ^25.2.3 throat: ^5.0.0 - checksum: 2/41bf7f81ee3dce93c79b0c012bdf2bde4bfa5f7fa2e11bfee6b560b9fa2f32800c1c22db85b8db8624809bb330986feacb11c9e7544ee11254fd4af85b4f3e89 + checksum: 2/c8e82c2c12e3e498f5f4dea078d8ae8226f0b8526fedd65a10258ff1f3c0399ddd0951668497d44432e50d8054e228b06845bcbfb0b689a13ecb0f4927481797 languageName: node linkType: hard @@ -10573,19 +10633,19 @@ __metadata: languageName: node linkType: hard -"jest-message-util@npm:^25.2.3": - version: 25.2.3 - resolution: "jest-message-util@npm:25.2.3" +"jest-message-util@npm:^25.2.4": + version: 25.2.4 + resolution: "jest-message-util@npm:25.2.4" dependencies: "@babel/code-frame": ^7.0.0 - "@jest/test-result": ^25.2.3 + "@jest/test-result": ^25.2.4 "@jest/types": ^25.2.3 "@types/stack-utils": ^1.0.1 chalk: ^3.0.0 micromatch: ^4.0.2 slash: ^3.0.0 stack-utils: ^1.0.1 - checksum: 2/83fd8597017373d2982083959580028823333590d55925522c6c6beaa5290aaa18b8232a1551e706045e0115d91841464ec3dab5db268fa9b1a12b30c6f8a099 + checksum: 2/d64ae966e8e63b0ca9b9ddf90794389a0d8273a4a8bd16a7036d0e2b35d244dbc067e2d78c54399e112ce74889703638b8674699c58c9c87f7ec98d1c31beb17 languageName: node linkType: hard @@ -10617,14 +10677,14 @@ __metadata: languageName: node linkType: hard -"jest-resolve-dependencies@npm:^25.2.3": - version: 25.2.3 - resolution: "jest-resolve-dependencies@npm:25.2.3" +"jest-resolve-dependencies@npm:^25.2.4": + version: 25.2.4 + resolution: "jest-resolve-dependencies@npm:25.2.4" dependencies: "@jest/types": ^25.2.3 jest-regex-util: ^25.2.1 - jest-snapshot: ^25.2.3 - checksum: 2/b8942c074e46984870433116a3f5db7a8bc09b0ffc380ba0175e058200a14283326fd127cd4c295eebe11559b6f7570ce45f37b5aeddc598bb0484ccb9c1813b + jest-snapshot: ^25.2.4 + checksum: 2/1e7d8648cbe8e76bd2fa879e8c09d5db883700791a1b294f046ad30d93ba319f4a04fec86b962df8429338055e13c3e8550626e607da261ffd124221b344603b languageName: node linkType: hard @@ -10642,42 +10702,42 @@ __metadata: languageName: node linkType: hard -"jest-runner@npm:^25.2.3": - version: 25.2.3 - resolution: "jest-runner@npm:25.2.3" +"jest-runner@npm:^25.2.4": + version: 25.2.4 + resolution: "jest-runner@npm:25.2.4" dependencies: "@jest/console": ^25.2.3 - "@jest/environment": ^25.2.3 - "@jest/test-result": ^25.2.3 + "@jest/environment": ^25.2.4 + "@jest/test-result": ^25.2.4 "@jest/types": ^25.2.3 chalk: ^3.0.0 exit: ^0.1.2 graceful-fs: ^4.2.3 - jest-config: ^25.2.3 + jest-config: ^25.2.4 jest-docblock: ^25.2.3 jest-haste-map: ^25.2.3 - jest-jasmine2: ^25.2.3 + jest-jasmine2: ^25.2.4 jest-leak-detector: ^25.2.3 - jest-message-util: ^25.2.3 + jest-message-util: ^25.2.4 jest-resolve: ^25.2.3 - jest-runtime: ^25.2.3 + jest-runtime: ^25.2.4 jest-util: ^25.2.3 jest-worker: ^25.2.1 source-map-support: ^0.5.6 throat: ^5.0.0 - checksum: 2/d5bae8af753d672b6997039a9bf84ec37f539fb600cce18a2f994c949d0a40b98c3f363899c0c0a3997436106576350f56ccfce6a7e49fc27c8ca8c3329defd2 + checksum: 2/735aff025cfd0386725af0ad049df33ef7eea3ac0e780053981b500204a35942af063f20921cc71eadc16f5a23c9cdeb96f2931ab2600addb993ec74b39bd36b languageName: node linkType: hard -"jest-runtime@npm:^25.2.3": - version: 25.2.3 - resolution: "jest-runtime@npm:25.2.3" +"jest-runtime@npm:^25.2.4": + version: 25.2.4 + resolution: "jest-runtime@npm:25.2.4" dependencies: "@jest/console": ^25.2.3 - "@jest/environment": ^25.2.3 + "@jest/environment": ^25.2.4 "@jest/source-map": ^25.2.1 - "@jest/test-result": ^25.2.3 - "@jest/transform": ^25.2.3 + "@jest/test-result": ^25.2.4 + "@jest/transform": ^25.2.4 "@jest/types": ^25.2.3 "@types/yargs": ^15.0.0 chalk: ^3.0.0 @@ -10685,13 +10745,13 @@ __metadata: exit: ^0.1.2 glob: ^7.1.3 graceful-fs: ^4.2.3 - jest-config: ^25.2.3 + jest-config: ^25.2.4 jest-haste-map: ^25.2.3 - jest-message-util: ^25.2.3 + jest-message-util: ^25.2.4 jest-mock: ^25.2.3 jest-regex-util: ^25.2.1 jest-resolve: ^25.2.3 - jest-snapshot: ^25.2.3 + jest-snapshot: ^25.2.4 jest-util: ^25.2.3 jest-validate: ^25.2.3 realpath-native: ^2.0.0 @@ -10700,7 +10760,7 @@ __metadata: yargs: ^15.3.1 bin: jest-runtime: bin/jest-runtime.js - checksum: 2/4cd74d5a3e80582d9d7b5d445f06b56dc6f1ab2d637d41ae06aaf4c992cbe9b525ee6b94b3a4cd558d57d60f765f27abb96f6fc43034b6ba2c7e392e2e0bb112 + checksum: 2/0ed90b776e096971a0015eba481d28558a5c0fb5dcdf06cbd2051422880bbf3db69e7c8c9b63d426ccb93142472405f472b3fe49287d85ac2f33b8fe57f28f28 languageName: node linkType: hard @@ -10711,25 +10771,25 @@ __metadata: languageName: node linkType: hard -"jest-snapshot@npm:^25.2.3": - version: 25.2.3 - resolution: "jest-snapshot@npm:25.2.3" +"jest-snapshot@npm:^25.2.4": + version: 25.2.4 + resolution: "jest-snapshot@npm:25.2.4" dependencies: "@babel/types": ^7.0.0 "@jest/types": ^25.2.3 "@types/prettier": ^1.19.0 chalk: ^3.0.0 - expect: ^25.2.3 + expect: ^25.2.4 jest-diff: ^25.2.3 jest-get-type: ^25.2.1 jest-matcher-utils: ^25.2.3 - jest-message-util: ^25.2.3 + jest-message-util: ^25.2.4 jest-resolve: ^25.2.3 make-dir: ^3.0.0 natural-compare: ^1.4.0 pretty-format: ^25.2.3 semver: ^6.3.0 - checksum: 2/45e21ea1bc4e4f07e599f869bd95d8ddf7202e3e42036aa78518f9c814d79c66699a4d3eaac53b9cec3e0455ca62cc3a42108264c14b13c8592de82be2220f64 + checksum: 2/1ca44804af97bfe9703e34dca0e6d9b2b3bfb39a532eed2b60b9bc2cab57232690a0eb30e84e164776291fab51f02f9e9a3829c2af4d40f74ba3df9459cde47f languageName: node linkType: hard @@ -10759,17 +10819,17 @@ __metadata: languageName: node linkType: hard -"jest-watcher@npm:^25.2.3": - version: 25.2.3 - resolution: "jest-watcher@npm:25.2.3" +"jest-watcher@npm:^25.2.4": + version: 25.2.4 + resolution: "jest-watcher@npm:25.2.4" dependencies: - "@jest/test-result": ^25.2.3 + "@jest/test-result": ^25.2.4 "@jest/types": ^25.2.3 ansi-escapes: ^4.2.1 chalk: ^3.0.0 jest-util: ^25.2.3 string-length: ^3.1.0 - checksum: 2/8ca07dadc3d51d161e20af766e0322e48b2610bd6764b07269190175e6bd7ded16822c78770da62705c63b012a0af6eb741473844c1030d4b2421a37349015dc + checksum: 2/1575dd30e1f7c0976a314bdc942aff8d9040cd52e6eb82bf7c52a20a9111f8c9df0d4df73a2678e0f9476a53825bc2f852b0bfcbed12145ee46f19b86dd85953 languageName: node linkType: hard @@ -10783,16 +10843,16 @@ __metadata: languageName: node linkType: hard -"jest@npm:^25.2.3": - version: 25.2.3 - resolution: "jest@npm:25.2.3" +"jest@npm:^25.2.4": + version: 25.2.4 + resolution: "jest@npm:25.2.4" dependencies: - "@jest/core": ^25.2.3 + "@jest/core": ^25.2.4 import-local: ^3.0.2 - jest-cli: ^25.2.3 + jest-cli: ^25.2.4 bin: jest: bin/jest.js - checksum: 2/d519913f1505e79a14d63b1c8b62fbe5311625ad631f345a181193a29f2f029b4a71ffab24475ed0ccfa5d5ca96977c6d8966d6148f298fe2567fe3b32912cfd + checksum: 2/a41dd598dc7e06c2e25d6091f98f1b2b052d66759aa35822c52825ad3fc5e50bf9ccbe27bb5ca76fe7413dfeda18c1047d5f9cbd539aeab8837ea2b2f7f7ca6f languageName: node linkType: hard @@ -12295,6 +12355,13 @@ __metadata: languageName: node linkType: hard +"natural-compare-lite@npm:^1.4.0": + version: 1.4.0 + resolution: "natural-compare-lite@npm:1.4.0" + checksum: 2/18c1c37b8523b08e9ea51043f3f6a7a50c9354fcc0b3ff4ec3437f017f766325e935cf427fd3b39657491f6174a8701c498235acb642c752537ddca5d378ff1f + languageName: node + linkType: hard + "natural-compare@npm:^1.4.0": version: 1.4.0 resolution: "natural-compare@npm:1.4.0" @@ -12499,6 +12566,13 @@ __metadata: languageName: node linkType: hard +"node-releases@npm:^1.1.53": + version: 1.1.53 + resolution: "node-releases@npm:1.1.53" + checksum: 2/744ff9662695845bb0c14abad46d4b77b63b70bec75ef2af59539c5e7b80faf7a87552092bc8917292c34dcf5153d53988939409065686d5a220cc340be17260 + languageName: node + linkType: hard + "node-source-walk@npm:^4.0.0, node-source-walk@npm:^4.2.0": version: 4.2.0 resolution: "node-source-walk@npm:4.2.0" @@ -13579,6 +13653,15 @@ __metadata: languageName: node linkType: hard +"pkg-up@npm:^2.0.0": + version: 2.0.0 + resolution: "pkg-up@npm:2.0.0" + dependencies: + find-up: ^2.1.0 + checksum: 2/0a8fcbebf0f1aadc7a52c576352a698abef6c389cb00a0847db2d370d05d4c005f855e196d29618b088062f1394711ca6dadd232692ed225511d7e75a198d246 + languageName: node + linkType: hard + "pkg-up@npm:^3.1.0": version: 3.1.0 resolution: "pkg-up@npm:3.1.0" @@ -15200,7 +15283,7 @@ __metadata: resolution: "root-workspace-0b6124@workspace:." dependencies: "@babel/core": ^7.9.0 - "@polkadot/dev": ^0.51.9 + "@polkadot/dev": ^0.52.3 "@polkadot/ts": ^0.3.14 "@types/jest": ^25.1.4 languageName: unknown