@pezkuwi/keyring 14.0.10 → 14.0.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/build/bundle-pezkuwi-keyring.js +1 -1
  2. package/build/cjs/packageInfo.js +1 -1
  3. package/build/cjs/pair/defaults.d.ts +2 -2
  4. package/build/package.json +8 -8
  5. package/build/packageInfo.js +1 -1
  6. package/build/pair/defaults.d.ts +2 -2
  7. package/build-deno/packageInfo.ts +1 -1
  8. package/build-tsc/pair/defaults.d.ts +2 -2
  9. package/build-tsc-cjs/packageInfo.js +1 -1
  10. package/build-tsc-esm/packageInfo.js +1 -1
  11. package/bundle-pezkuwi-keyring.js +553 -0
  12. package/bundle.d.ts +7 -0
  13. package/bundle.js +7 -0
  14. package/cjs/bundle.d.ts +7 -0
  15. package/cjs/bundle.js +19 -0
  16. package/cjs/defaults.d.ts +2 -0
  17. package/cjs/defaults.js +5 -0
  18. package/cjs/index.d.ts +4 -0
  19. package/cjs/index.js +7 -0
  20. package/cjs/keyring.d.ts +145 -0
  21. package/cjs/keyring.js +261 -0
  22. package/cjs/package.json +3 -0
  23. package/cjs/packageDetect.d.ts +1 -0
  24. package/cjs/packageDetect.js +7 -0
  25. package/cjs/packageInfo.d.ts +6 -0
  26. package/cjs/packageInfo.js +4 -0
  27. package/cjs/pair/decode.d.ts +12 -0
  28. package/cjs/pair/decode.js +45 -0
  29. package/cjs/pair/defaults.d.ts +12 -0
  30. package/cjs/pair/defaults.js +15 -0
  31. package/cjs/pair/encode.d.ts +5 -0
  32. package/cjs/pair/encode.js +22 -0
  33. package/cjs/pair/index.d.ts +40 -0
  34. package/cjs/pair/index.js +183 -0
  35. package/cjs/pair/nobody.d.ts +2 -0
  36. package/cjs/pair/nobody.js +43 -0
  37. package/cjs/pair/toJson.d.ts +8 -0
  38. package/cjs/pair/toJson.js +11 -0
  39. package/cjs/pair/types.d.ts +5 -0
  40. package/cjs/pair/types.js +2 -0
  41. package/cjs/pairs.d.ts +8 -0
  42. package/cjs/pairs.js +28 -0
  43. package/cjs/testing.d.ts +20 -0
  44. package/cjs/testing.js +126 -0
  45. package/cjs/testingPairs.d.ts +25 -0
  46. package/cjs/testingPairs.js +16 -0
  47. package/cjs/types.d.ts +111 -0
  48. package/cjs/types.js +2 -0
  49. package/defaults.d.ts +2 -0
  50. package/defaults.js +2 -0
  51. package/index.d.ts +4 -0
  52. package/index.js +4 -0
  53. package/keyring.d.ts +145 -0
  54. package/keyring.js +257 -0
  55. package/package.json +271 -9
  56. package/packageDetect.d.ts +1 -0
  57. package/packageDetect.js +5 -0
  58. package/packageInfo.d.ts +6 -0
  59. package/packageInfo.js +1 -0
  60. package/pair/decode.d.ts +12 -0
  61. package/pair/decode.js +42 -0
  62. package/pair/defaults.d.ts +12 -0
  63. package/pair/defaults.js +12 -0
  64. package/pair/encode.d.ts +5 -0
  65. package/pair/encode.js +19 -0
  66. package/pair/index.d.ts +40 -0
  67. package/pair/index.js +180 -0
  68. package/pair/nobody.d.ts +2 -0
  69. package/pair/nobody.js +40 -0
  70. package/pair/toJson.d.ts +8 -0
  71. package/pair/toJson.js +8 -0
  72. package/pair/types.d.ts +5 -0
  73. package/pair/types.js +1 -0
  74. package/pairs.d.ts +8 -0
  75. package/pairs.js +24 -0
  76. package/src/packageInfo.ts +1 -1
  77. package/testing.d.ts +20 -0
  78. package/testing.js +122 -0
  79. package/testingPairs.d.ts +25 -0
  80. package/testingPairs.js +13 -0
  81. package/tsconfig.build.tsbuildinfo +1 -1
  82. package/tsconfig.spec.tsbuildinfo +1 -1
  83. package/types.d.ts +111 -0
  84. package/types.js +1 -0
package/pair/nobody.js ADDED
@@ -0,0 +1,40 @@
1
+ const publicKey = new Uint8Array(32);
2
+ const address = '5C4hrfjw9DjXZTzV3MwzrrAr9P1MJhSrvWGWqi1eSuyUpnhM';
3
+ const meta = {
4
+ isTesting: true,
5
+ name: 'nobody'
6
+ };
7
+ const json = {
8
+ address,
9
+ encoded: '',
10
+ encoding: {
11
+ content: ['pkcs8', 'ed25519'],
12
+ type: 'none',
13
+ version: '0'
14
+ },
15
+ meta
16
+ };
17
+ const pair = {
18
+ address,
19
+ addressRaw: publicKey,
20
+ decodePkcs8: (_passphrase, _encoded) => undefined,
21
+ derive: (_suri, _meta) => pair,
22
+ encodePkcs8: (_passphrase) => new Uint8Array(0),
23
+ isLocked: true,
24
+ lock: () => {
25
+ // no locking, it is always locked
26
+ },
27
+ meta,
28
+ publicKey,
29
+ setMeta: (_meta) => undefined,
30
+ sign: (_message) => new Uint8Array(64),
31
+ toJson: (_passphrase) => json,
32
+ type: 'ed25519',
33
+ unlock: (_passphrase) => undefined,
34
+ verify: (_message, _signature) => false,
35
+ vrfSign: (_message, _context, _extra) => new Uint8Array(96),
36
+ vrfVerify: (_message, _vrfResult, _context, _extra) => false
37
+ };
38
+ export function nobody() {
39
+ return pair;
40
+ }
@@ -0,0 +1,8 @@
1
+ import type { KeypairType } from '@pezkuwi/util-crypto/types';
2
+ import type { KeyringPair$Json, KeyringPair$Meta } from '../types.js';
3
+ interface PairStateJson {
4
+ address: string;
5
+ meta: KeyringPair$Meta;
6
+ }
7
+ export declare function pairToJson(type: KeypairType, { address, meta }: PairStateJson, encoded: Uint8Array, isEncrypted: boolean): KeyringPair$Json;
8
+ export {};
package/pair/toJson.js ADDED
@@ -0,0 +1,8 @@
1
+ import { objectSpread } from '@pezkuwi/util';
2
+ import { jsonEncryptFormat } from '@pezkuwi/util-crypto';
3
+ export function pairToJson(type, { address, meta }, encoded, isEncrypted) {
4
+ return objectSpread(jsonEncryptFormat(encoded, ['pkcs8', type], isEncrypted), {
5
+ address,
6
+ meta
7
+ });
8
+ }
@@ -0,0 +1,5 @@
1
+ export interface PairInfo {
2
+ publicKey: Uint8Array;
3
+ secretKey?: Uint8Array | undefined;
4
+ seed?: Uint8Array | null;
5
+ }
package/pair/types.js ADDED
@@ -0,0 +1 @@
1
+ export {};
package/pairs.d.ts ADDED
@@ -0,0 +1,8 @@
1
+ import type { KeyringPair, KeyringPairs } from './types.js';
2
+ export declare class Pairs implements KeyringPairs {
3
+ #private;
4
+ add(pair: KeyringPair): KeyringPair;
5
+ all(): KeyringPair[];
6
+ get(address: string | Uint8Array): KeyringPair;
7
+ remove(address: string | Uint8Array): void;
8
+ }
package/pairs.js ADDED
@@ -0,0 +1,24 @@
1
+ import { isHex, isU8a, u8aToHex, u8aToU8a } from '@pezkuwi/util';
2
+ import { decodeAddress } from '@pezkuwi/util-crypto';
3
+ export class Pairs {
4
+ #map = {};
5
+ add(pair) {
6
+ this.#map[decodeAddress(pair.address).toString()] = pair;
7
+ return pair;
8
+ }
9
+ all() {
10
+ return Object.values(this.#map);
11
+ }
12
+ get(address) {
13
+ const pair = this.#map[decodeAddress(address).toString()];
14
+ if (!pair) {
15
+ throw new Error(`Unable to retrieve keypair '${isU8a(address) || isHex(address)
16
+ ? u8aToHex(u8aToU8a(address))
17
+ : address}'`);
18
+ }
19
+ return pair;
20
+ }
21
+ remove(address) {
22
+ delete this.#map[decodeAddress(address).toString()];
23
+ }
24
+ }
@@ -3,4 +3,4 @@
3
3
 
4
4
  // Do not edit, auto-generated by @pezkuwi/dev
5
5
 
6
- export const packageInfo = { name: '@pezkuwi/keyring', path: 'auto', type: 'auto', version: '14.0.10' };
6
+ export const packageInfo = { name: '@pezkuwi/keyring', path: 'auto', type: 'auto', version: '14.0.12' };
package/testing.d.ts ADDED
@@ -0,0 +1,20 @@
1
+ import type { HexString } from '@pezkuwi/util/types';
2
+ import type { KeypairType } from '@pezkuwi/util-crypto/types';
3
+ import type { KeyringInstance, KeyringOptions } from './types.js';
4
+ interface PairDef {
5
+ name?: string;
6
+ p: HexString;
7
+ s: HexString;
8
+ seed?: string;
9
+ type: KeypairType;
10
+ }
11
+ export declare const PAIRSSR25519: PairDef[];
12
+ export declare const PAIRSETHEREUM: PairDef[];
13
+ /**
14
+ * @name testKeyring
15
+ * @summary Create an instance of Keyring pre-populated with locked test accounts
16
+ * @description The test accounts (i.e. alice, bob, dave, eve, ferdie)
17
+ * are available on the dev chain and each test account is initialized with DOT funds.
18
+ */
19
+ export declare function createTestKeyring(options?: KeyringOptions, isDerived?: boolean): KeyringInstance;
20
+ export {};
package/testing.js ADDED
@@ -0,0 +1,122 @@
1
+ import { hexToU8a } from '@pezkuwi/util';
2
+ import { createPair } from './pair/index.js';
3
+ import { Keyring } from './keyring.js';
4
+ export const PAIRSSR25519 = [
5
+ {
6
+ p: '0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d',
7
+ s: '0x98319d4ff8a9508c4bb0cf0b5a78d760a0b2082c02775e6e82370816fedfff48925a225d97aa00682d6a59b95b18780c10d7032336e88f3442b42361f4a66011', // nosemgrep
8
+ seed: 'Alice',
9
+ type: 'sr25519'
10
+ },
11
+ {
12
+ p: '0xbe5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25f',
13
+ s: '0xe8da6c9d810e020f5e3c7f5af2dea314cbeaa0d72bc6421e92c0808a0c584a6046ab28e97c3ffc77fe12b5a4d37e8cd4afbfebbf2391ffc7cb07c0f38c023efd', // nosemgrep
14
+ seed: 'Alice//stash',
15
+ type: 'sr25519'
16
+ },
17
+ {
18
+ p: '0x8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48',
19
+ s: '0x081ff694633e255136bdb456c20a5fc8fed21f8b964c11bb17ff534ce80ebd5941ae88f85d0c1bfc37be41c904e1dfc01de8c8067b0d6d5df25dd1ac0894a325', // nosemgrep
20
+ seed: 'Bob',
21
+ type: 'sr25519'
22
+ },
23
+ {
24
+ p: '0xfe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860e',
25
+ s: '0xc006507cdfc267a21532394c49ca9b754ca71de21e15a1cdf807c7ceab6d0b6c3ed408d9d35311540dcd54931933e67cf1ea10d46f75408f82b789d9bd212fde', // nosemgrep
26
+ seed: 'Bob//stash',
27
+ type: 'sr25519'
28
+ },
29
+ {
30
+ p: '0x90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22',
31
+ s: '0xa8f2d83016052e5d6d77b2f6fd5d59418922a09024cda701b3c34369ec43a7668faf12ff39cd4e5d92bb773972f41a7a5279ebc2ed92264bed8f47d344f8f18c', // nosemgrep
32
+ seed: 'Charlie',
33
+ type: 'sr25519'
34
+ },
35
+ {
36
+ p: '0x306721211d5404bd9da88e0204360a1a9ab8b87c66c1bc2fcdd37f3c2222cc20',
37
+ s: '0x20e05482ca4677e0edbc58ae9a3a59f6ed3b1a9484ba17e64d6fe8688b2b7b5d108c4487b9323b98b11fe36cb301b084e920f7b7895536809a6d62a451b25568', // nosemgrep
38
+ seed: 'Dave',
39
+ type: 'sr25519'
40
+ },
41
+ {
42
+ p: '0xe659a7a1628cdd93febc04a4e0646ea20e9f5f0ce097d9a05290d4a9e054df4e',
43
+ s: '0x683576abfd5dc35273e4264c23095a1bf21c14517bece57c7f0cc5c0ed4ce06a3dbf386b7828f348abe15d76973a72009e6ef86a5c91db2990cb36bb657c6587', // nosemgrep
44
+ seed: 'Eve',
45
+ type: 'sr25519'
46
+ },
47
+ {
48
+ p: '0x1cbd2d43530a44705ad088af313e18f80b53ef16b36177cd4b77b846f2a5f07c',
49
+ s: '0xb835c20f450079cf4f513900ae9faf8df06ad86c681884122c752a4b2bf74d4303e4f21bc6cc62bb4eeed5a9cce642c25e2d2ac1464093b50f6196d78e3a7426', // nosemgrep
50
+ seed: 'Ferdie',
51
+ type: 'sr25519'
52
+ }
53
+ ];
54
+ export const PAIRSETHEREUM = [
55
+ {
56
+ name: 'Alith',
57
+ p: '0x02509540919faacf9ab52146c9aa40db68172d83777250b28e4679176e49ccdd9f',
58
+ s: '0x5fb92d6e98884f76de468fa3f6278f8807c48bebc13595d45af5bdc4da702133', // nosemgrep
59
+ type: 'ethereum'
60
+ },
61
+ {
62
+ name: 'Baltathar',
63
+ p: '0x033bc19e36ff1673910575b6727a974a9abd80c9a875d41ab3e2648dbfb9e4b518',
64
+ s: '0x8075991ce870b93a8870eca0c0f91913d12f47948ca0fd25b49c6fa7cdbeee8b', // nosemgrep
65
+ type: 'ethereum'
66
+ },
67
+ {
68
+ name: 'Charleth',
69
+ p: '0x0234637bdc0e89b5d46543bcbf8edff329d2702bc995e27e9af4b1ba009a3c2a5e',
70
+ s: '0x0b6e18cafb6ed99687ec547bd28139cafdd2bffe70e6b688025de6b445aa5c5b', // nosemgrep
71
+ type: 'ethereum'
72
+ },
73
+ {
74
+ name: 'Dorothy',
75
+ p: '0x02a00d60b2b408c2a14c5d70cdd2c205db8985ef737a7e55ad20ea32cc9e7c417c',
76
+ s: '0x39539ab1876910bbf3a223d84a29e28f1cb4e2e456503e7e91ed39b2e7223d68', // nosemgrep
77
+ type: 'ethereum'
78
+ },
79
+ {
80
+ name: 'Ethan',
81
+ p: '0x025cdc005b752651cd3f728fb9192182acb3a9c89e19072cbd5b03f3ee1f1b3ffa',
82
+ s: '0x7dce9bc8babb68fec1409be38c8e1a52650206a7ed90ff956ae8a6d15eeaaef4', // nosemgrep
83
+ type: 'ethereum'
84
+ },
85
+ {
86
+ name: 'Faith',
87
+ p: '0x037964b6c9d546da4646ada28a99e34acaa1d14e7aba861a9055f9bd200c8abf74',
88
+ s: '0xb9d2ea9a615f3165812e8d44de0d24da9bbd164b65c4f0573e1ce2c8dbd9c8df', // nosemgrep
89
+ type: 'ethereum'
90
+ }
91
+ ];
92
+ function createMeta(name, seed) {
93
+ if (!name && !seed) {
94
+ throw new Error('Testing pair should have either a name or a seed');
95
+ }
96
+ return {
97
+ isTesting: true,
98
+ name: name || seed?.replace('//', '_').toLowerCase()
99
+ };
100
+ }
101
+ /**
102
+ * @name testKeyring
103
+ * @summary Create an instance of Keyring pre-populated with locked test accounts
104
+ * @description The test accounts (i.e. alice, bob, dave, eve, ferdie)
105
+ * are available on the dev chain and each test account is initialized with DOT funds.
106
+ */
107
+ export function createTestKeyring(options = {}, isDerived = true) {
108
+ const keyring = new Keyring(options);
109
+ const pairs = options.type === 'ethereum'
110
+ ? PAIRSETHEREUM
111
+ : PAIRSSR25519;
112
+ for (const { name, p, s, seed, type } of pairs) {
113
+ const meta = createMeta(name, seed);
114
+ const pair = !isDerived && !name && seed
115
+ ? keyring.addFromUri(seed, meta, options.type)
116
+ : keyring.addPair(createPair({ toSS58: keyring.encodeAddress, type }, { publicKey: hexToU8a(p), secretKey: hexToU8a(s) }, meta));
117
+ pair.lock = () => {
118
+ // we don't have lock/unlock functionality here
119
+ };
120
+ }
121
+ return keyring;
122
+ }
@@ -0,0 +1,25 @@
1
+ import type { KeypairType } from '@pezkuwi/util-crypto/types';
2
+ import type { KeyringOptions, KeyringPair } from './types.js';
3
+ export interface TestKeyringMap {
4
+ nobody: KeyringPair;
5
+ [index: string]: KeyringPair;
6
+ }
7
+ export interface TestKeyringMapBizinikiwi extends TestKeyringMap {
8
+ alice: KeyringPair;
9
+ bob: KeyringPair;
10
+ charlie: KeyringPair;
11
+ dave: KeyringPair;
12
+ eve: KeyringPair;
13
+ ferdie: KeyringPair;
14
+ }
15
+ export interface TestKeyringMapEthereum extends TestKeyringMap {
16
+ Alith: KeyringPair;
17
+ Baltathar: KeyringPair;
18
+ Charleth: KeyringPair;
19
+ Dorothy: KeyringPair;
20
+ Ethan: KeyringPair;
21
+ Faith: KeyringPair;
22
+ }
23
+ export type DetectMap<O extends KeyringOptions | undefined> = DetectPairType<O> extends 'ethereum' ? TestKeyringMapEthereum : TestKeyringMapBizinikiwi;
24
+ export type DetectPairType<O extends KeyringOptions | undefined> = O extends KeyringOptions ? O['type'] extends KeypairType ? O['type'] : 'sr25519' : 'sr25519';
25
+ export declare function createTestPairs<O extends KeyringOptions, M = DetectMap<O>>(options?: O, isDerived?: boolean): M;
@@ -0,0 +1,13 @@
1
+ import { nobody } from './pair/nobody.js';
2
+ import { createTestKeyring } from './testing.js';
3
+ export function createTestPairs(options, isDerived = true) {
4
+ const keyring = createTestKeyring(options, isDerived);
5
+ const pairs = keyring.getPairs();
6
+ const map = { nobody: nobody() };
7
+ for (const p of pairs) {
8
+ if (p.meta.name) {
9
+ map[p.meta.name] = p;
10
+ }
11
+ }
12
+ return map;
13
+ }