@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.
- package/build/bundle-pezkuwi-keyring.js +1 -1
- package/build/cjs/packageInfo.js +1 -1
- package/build/cjs/pair/defaults.d.ts +2 -2
- package/build/package.json +8 -8
- package/build/packageInfo.js +1 -1
- package/build/pair/defaults.d.ts +2 -2
- package/build-deno/packageInfo.ts +1 -1
- package/build-tsc/pair/defaults.d.ts +2 -2
- package/build-tsc-cjs/packageInfo.js +1 -1
- package/build-tsc-esm/packageInfo.js +1 -1
- package/bundle-pezkuwi-keyring.js +553 -0
- package/bundle.d.ts +7 -0
- package/bundle.js +7 -0
- package/cjs/bundle.d.ts +7 -0
- package/cjs/bundle.js +19 -0
- package/cjs/defaults.d.ts +2 -0
- package/cjs/defaults.js +5 -0
- package/cjs/index.d.ts +4 -0
- package/cjs/index.js +7 -0
- package/cjs/keyring.d.ts +145 -0
- package/cjs/keyring.js +261 -0
- package/cjs/package.json +3 -0
- package/cjs/packageDetect.d.ts +1 -0
- package/cjs/packageDetect.js +7 -0
- package/cjs/packageInfo.d.ts +6 -0
- package/cjs/packageInfo.js +4 -0
- package/cjs/pair/decode.d.ts +12 -0
- package/cjs/pair/decode.js +45 -0
- package/cjs/pair/defaults.d.ts +12 -0
- package/cjs/pair/defaults.js +15 -0
- package/cjs/pair/encode.d.ts +5 -0
- package/cjs/pair/encode.js +22 -0
- package/cjs/pair/index.d.ts +40 -0
- package/cjs/pair/index.js +183 -0
- package/cjs/pair/nobody.d.ts +2 -0
- package/cjs/pair/nobody.js +43 -0
- package/cjs/pair/toJson.d.ts +8 -0
- package/cjs/pair/toJson.js +11 -0
- package/cjs/pair/types.d.ts +5 -0
- package/cjs/pair/types.js +2 -0
- package/cjs/pairs.d.ts +8 -0
- package/cjs/pairs.js +28 -0
- package/cjs/testing.d.ts +20 -0
- package/cjs/testing.js +126 -0
- package/cjs/testingPairs.d.ts +25 -0
- package/cjs/testingPairs.js +16 -0
- package/cjs/types.d.ts +111 -0
- package/cjs/types.js +2 -0
- package/defaults.d.ts +2 -0
- package/defaults.js +2 -0
- package/index.d.ts +4 -0
- package/index.js +4 -0
- package/keyring.d.ts +145 -0
- package/keyring.js +257 -0
- package/package.json +271 -9
- package/packageDetect.d.ts +1 -0
- package/packageDetect.js +5 -0
- package/packageInfo.d.ts +6 -0
- package/packageInfo.js +1 -0
- package/pair/decode.d.ts +12 -0
- package/pair/decode.js +42 -0
- package/pair/defaults.d.ts +12 -0
- package/pair/defaults.js +12 -0
- package/pair/encode.d.ts +5 -0
- package/pair/encode.js +19 -0
- package/pair/index.d.ts +40 -0
- package/pair/index.js +180 -0
- package/pair/nobody.d.ts +2 -0
- package/pair/nobody.js +40 -0
- package/pair/toJson.d.ts +8 -0
- package/pair/toJson.js +8 -0
- package/pair/types.d.ts +5 -0
- package/pair/types.js +1 -0
- package/pairs.d.ts +8 -0
- package/pairs.js +24 -0
- package/src/packageInfo.ts +1 -1
- package/testing.d.ts +20 -0
- package/testing.js +122 -0
- package/testingPairs.d.ts +25 -0
- package/testingPairs.js +13 -0
- package/tsconfig.build.tsbuildinfo +1 -1
- package/tsconfig.spec.tsbuildinfo +1 -1
- package/types.d.ts +111 -0
- 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
|
+
}
|
package/pair/toJson.d.ts
ADDED
|
@@ -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
|
+
}
|
package/pair/types.d.ts
ADDED
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
|
+
}
|
package/src/packageInfo.ts
CHANGED
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;
|
package/testingPairs.js
ADDED
|
@@ -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
|
+
}
|