jcc_wallet 3.0.1 → 4.0.0
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/dist/jcc-wallet.min.js +57 -0
- package/lib/constant.d.ts +8 -0
- package/lib/constant.js +18 -0
- package/lib/constant.js.map +1 -0
- package/lib/hd/constant.d.ts +26 -0
- package/lib/hd/constant.js +56 -0
- package/lib/hd/constant.js.map +1 -0
- package/lib/hd/eos.plugin.d.ts +5 -0
- package/lib/hd/eos.plugin.js +70 -0
- package/lib/hd/eos.plugin.js.map +1 -0
- package/lib/hd/ethereum.plugin.d.ts +6 -0
- package/lib/hd/ethereum.plugin.js +120 -0
- package/lib/hd/ethereum.plugin.js.map +1 -0
- package/lib/hd/index.d.ts +228 -0
- package/lib/hd/index.js +382 -0
- package/lib/hd/index.js.map +1 -0
- package/lib/hd/plugins.d.ts +11 -0
- package/lib/hd/plugins.js +39 -0
- package/lib/hd/plugins.js.map +1 -0
- package/lib/hd/swtc.plugin.d.ts +2 -0
- package/lib/hd/swtc.plugin.js +86 -0
- package/lib/hd/swtc.plugin.js.map +1 -0
- package/lib/hd/tron.plugin.d.ts +5 -0
- package/lib/hd/tron.plugin.js +62 -0
- package/lib/hd/tron.plugin.js.map +1 -0
- package/lib/index.d.ts +25 -0
- package/lib/index.js +60 -0
- package/lib/index.js.map +1 -0
- package/lib/jingchangWallet.d.ts +273 -0
- package/lib/jingchangWallet.js +531 -0
- package/lib/jingchangWallet.js.map +1 -0
- package/lib/minify-ethereumjs-util/account.d.ts +1 -0
- package/lib/minify-ethereumjs-util/account.js +22 -0
- package/lib/minify-ethereumjs-util/account.js.map +1 -0
- package/lib/minify-ethereumjs-util/bytes.d.ts +7 -0
- package/lib/minify-ethereumjs-util/bytes.js +100 -0
- package/lib/minify-ethereumjs-util/bytes.js.map +1 -0
- package/lib/minify-ethereumjs-util/constants.d.ts +4 -0
- package/lib/minify-ethereumjs-util/constants.js +9 -0
- package/lib/minify-ethereumjs-util/constants.js.map +1 -0
- package/lib/minify-ethereumjs-util/helper.d.ts +5 -0
- package/lib/minify-ethereumjs-util/helper.js +16 -0
- package/lib/minify-ethereumjs-util/helper.js.map +1 -0
- package/lib/minify-ethereumjs-util/internal.d.ts +8 -0
- package/lib/minify-ethereumjs-util/internal.js +33 -0
- package/lib/minify-ethereumjs-util/internal.js.map +1 -0
- package/lib/minify-ethereumjs-util/signature.d.ts +13 -0
- package/lib/minify-ethereumjs-util/signature.js +45 -0
- package/lib/minify-ethereumjs-util/signature.js.map +1 -0
- package/lib/minify-swtc-keypair/address-codec.d.ts +16 -0
- package/lib/minify-swtc-keypair/address-codec.js +166 -0
- package/lib/minify-swtc-keypair/address-codec.js.map +1 -0
- package/lib/minify-swtc-keypair/index.d.ts +25 -0
- package/lib/minify-swtc-keypair/index.js +178 -0
- package/lib/minify-swtc-keypair/index.js.map +1 -0
- package/lib/minify-swtc-keypair/sha512.d.ts +9 -0
- package/lib/minify-swtc-keypair/sha512.js +33 -0
- package/lib/minify-swtc-keypair/sha512.js.map +1 -0
- package/lib/minify-swtc-keypair/utils.d.ts +13 -0
- package/lib/minify-swtc-keypair/utils.js +63 -0
- package/lib/minify-swtc-keypair/utils.js.map +1 -0
- package/lib/minify-tron/address.d.ts +6 -0
- package/lib/minify-tron/address.js +11 -0
- package/lib/minify-tron/address.js.map +1 -0
- package/lib/minify-tron/base58.d.ts +2 -0
- package/lib/minify-tron/base58.js +67 -0
- package/lib/minify-tron/base58.js.map +1 -0
- package/lib/minify-tron/bytes.d.ts +2 -0
- package/lib/minify-tron/bytes.js +23 -0
- package/lib/minify-tron/bytes.js.map +1 -0
- package/lib/minify-tron/code.d.ts +3 -0
- package/lib/minify-tron/code.js +56 -0
- package/lib/minify-tron/code.js.map +1 -0
- package/lib/minify-tron/crypto.d.ts +7 -0
- package/lib/minify-tron/crypto.js +83 -0
- package/lib/minify-tron/crypto.js.map +1 -0
- package/lib/minify-tron/message.d.ts +4 -0
- package/lib/minify-tron/message.js +42 -0
- package/lib/minify-tron/message.js.map +1 -0
- package/lib/types.d.ts +103 -0
- package/lib/types.js +16 -0
- package/lib/types.js.map +1 -0
- package/lib/util/index.d.ts +22 -0
- package/lib/util/index.js +100 -0
- package/lib/util/index.js.map +1 -0
- package/package.json +22 -17
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// forked from https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/util/src/bytes.ts
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.bytesToBigInt = exports.hexToBytes = exports.bytesToHex = exports.setLengthRight = exports.setLengthLeft = exports.concatBytes = exports.zeros = void 0;
|
|
5
|
+
const constants_1 = require("./constants");
|
|
6
|
+
const helper_1 = require("./helper");
|
|
7
|
+
const internal_1 = require("./internal");
|
|
8
|
+
const hexByByte = Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, "0"));
|
|
9
|
+
// BigInt cache for the numbers 0 - 256*256-1 (two-byte bytes)
|
|
10
|
+
const BIGINT_CACHE = [];
|
|
11
|
+
for (let i = 0; i <= 256 * 256 - 1; i++) {
|
|
12
|
+
BIGINT_CACHE[i] = BigInt(i);
|
|
13
|
+
}
|
|
14
|
+
const zeros = (bytes) => {
|
|
15
|
+
return new Uint8Array(bytes);
|
|
16
|
+
};
|
|
17
|
+
exports.zeros = zeros;
|
|
18
|
+
const setLength = (msg, length, right) => {
|
|
19
|
+
if (right) {
|
|
20
|
+
if (msg.length < length) {
|
|
21
|
+
return new Uint8Array([...msg, ...(0, exports.zeros)(length - msg.length)]);
|
|
22
|
+
}
|
|
23
|
+
return msg.subarray(0, length);
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
if (msg.length < length) {
|
|
27
|
+
return new Uint8Array([...(0, exports.zeros)(length - msg.length), ...msg]);
|
|
28
|
+
}
|
|
29
|
+
return msg.subarray(-length);
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
const concatBytes = (...arrays) => {
|
|
33
|
+
if (arrays.length === 1)
|
|
34
|
+
return arrays[0];
|
|
35
|
+
const length = arrays.reduce((a, arr) => a + arr.length, 0);
|
|
36
|
+
const result = new Uint8Array(length);
|
|
37
|
+
for (let i = 0, pad = 0; i < arrays.length; i++) {
|
|
38
|
+
const arr = arrays[i];
|
|
39
|
+
result.set(arr, pad);
|
|
40
|
+
pad += arr.length;
|
|
41
|
+
}
|
|
42
|
+
return result;
|
|
43
|
+
};
|
|
44
|
+
exports.concatBytes = concatBytes;
|
|
45
|
+
const setLengthLeft = (msg, length) => {
|
|
46
|
+
(0, helper_1.assertIsBytes)(msg);
|
|
47
|
+
return setLength(msg, length, false);
|
|
48
|
+
};
|
|
49
|
+
exports.setLengthLeft = setLengthLeft;
|
|
50
|
+
const setLengthRight = (msg, length) => {
|
|
51
|
+
(0, helper_1.assertIsBytes)(msg);
|
|
52
|
+
return setLength(msg, length, true);
|
|
53
|
+
};
|
|
54
|
+
exports.setLengthRight = setLengthRight;
|
|
55
|
+
const bytesToHex = (bytes) => {
|
|
56
|
+
let hex = "0x";
|
|
57
|
+
if (bytes === undefined || bytes.length === 0)
|
|
58
|
+
return hex;
|
|
59
|
+
for (const byte of bytes) {
|
|
60
|
+
hex += hexByByte[byte];
|
|
61
|
+
}
|
|
62
|
+
return hex;
|
|
63
|
+
};
|
|
64
|
+
exports.bytesToHex = bytesToHex;
|
|
65
|
+
const hexToBytes = (hex) => {
|
|
66
|
+
if (typeof hex !== "string") {
|
|
67
|
+
throw new Error(`hex argument type ${typeof hex} must be of type string`);
|
|
68
|
+
}
|
|
69
|
+
if (!hex.startsWith("0x")) {
|
|
70
|
+
throw new Error(`prefixed hex input should start with 0x, got ${hex.substring(0, 2)}`);
|
|
71
|
+
}
|
|
72
|
+
hex = hex.slice(2);
|
|
73
|
+
if (hex.length % 2 !== 0) {
|
|
74
|
+
hex = (0, internal_1.padToEven)(hex);
|
|
75
|
+
}
|
|
76
|
+
const byteLen = hex.length / 2;
|
|
77
|
+
const bytes = new Uint8Array(byteLen);
|
|
78
|
+
for (let i = 0; i < byteLen; i++) {
|
|
79
|
+
const byte = parseInt(hex.slice(i * 2, (i + 1) * 2), 16);
|
|
80
|
+
bytes[i] = byte;
|
|
81
|
+
}
|
|
82
|
+
return bytes;
|
|
83
|
+
};
|
|
84
|
+
exports.hexToBytes = hexToBytes;
|
|
85
|
+
const bytesToBigInt = (bytes) => {
|
|
86
|
+
const hex = (0, exports.bytesToHex)(bytes);
|
|
87
|
+
if (hex === "0x") {
|
|
88
|
+
return constants_1.BIGINT_0;
|
|
89
|
+
}
|
|
90
|
+
if (hex.length === 4) {
|
|
91
|
+
// If the byte length is 1 (this is faster than checking `bytes.length === 1`)
|
|
92
|
+
return BIGINT_CACHE[bytes[0]];
|
|
93
|
+
}
|
|
94
|
+
if (hex.length === 6) {
|
|
95
|
+
return BIGINT_CACHE[bytes[0] * 256 + bytes[1]];
|
|
96
|
+
}
|
|
97
|
+
return BigInt(hex);
|
|
98
|
+
};
|
|
99
|
+
exports.bytesToBigInt = bytesToBigInt;
|
|
100
|
+
//# sourceMappingURL=bytes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bytes.js","sourceRoot":"","sources":["../../src/minify-ethereumjs-util/bytes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// forked from https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/util/src/constants.ts
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.BIGINT_27 = exports.BIGINT_2 = exports.BIGINT_1 = exports.BIGINT_0 = void 0;
|
|
5
|
+
exports.BIGINT_0 = BigInt(0);
|
|
6
|
+
exports.BIGINT_1 = BigInt(1);
|
|
7
|
+
exports.BIGINT_2 = BigInt(2);
|
|
8
|
+
exports.BIGINT_27 = BigInt(27);
|
|
9
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/minify-ethereumjs-util/constants.ts"],"names":[],"mappings":";AAAA,2GAA2G;;;AAE9F,QAAA,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACrB,QAAA,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACrB,QAAA,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACrB,QAAA,SAAS,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// forked from https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/util/src/helper.ts
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.assertIsBytes = void 0;
|
|
5
|
+
/**
|
|
6
|
+
* Throws if input is not a buffer
|
|
7
|
+
* @param {Buffer} input value to check
|
|
8
|
+
*/
|
|
9
|
+
const assertIsBytes = function (input) {
|
|
10
|
+
if (!(input instanceof Uint8Array)) {
|
|
11
|
+
const msg = `This method only supports Uint8Array but input was: ${input}`;
|
|
12
|
+
throw new Error(msg);
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
exports.assertIsBytes = assertIsBytes;
|
|
16
|
+
//# sourceMappingURL=helper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helper.js","sourceRoot":"","sources":["../../src/minify-ethereumjs-util/helper.ts"],"names":[],"mappings":";AAAA,wGAAwG;;;AAExG;;;GAGG;AACI,MAAM,aAAa,GAAG,UAAS,KAAiB;IACrD,IAAI,CAAC,CAAC,KAAK,YAAY,UAAU,CAAC,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,uDAAuD,KAAK,EAAE,CAAC;QAC3E,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC,CAAC;AALW,QAAA,aAAa,iBAKxB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare function padToEven(value: string): string;
|
|
2
|
+
export declare function isHexPrefixed(str: string): boolean;
|
|
3
|
+
/**
|
|
4
|
+
* Removes '0x' from a given `String` if present
|
|
5
|
+
* @param str the string value
|
|
6
|
+
* @returns the string without 0x prefix
|
|
7
|
+
*/
|
|
8
|
+
export declare const stripHexPrefix: (str: string) => string;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// forked from https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/util/src/internal.ts
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.stripHexPrefix = void 0;
|
|
5
|
+
exports.padToEven = padToEven;
|
|
6
|
+
exports.isHexPrefixed = isHexPrefixed;
|
|
7
|
+
function padToEven(value) {
|
|
8
|
+
let a = value;
|
|
9
|
+
if (typeof a !== "string") {
|
|
10
|
+
throw new Error(`[padToEven] value must be type 'string', received ${typeof a}`);
|
|
11
|
+
}
|
|
12
|
+
if (a.length % 2)
|
|
13
|
+
a = `0${a}`;
|
|
14
|
+
return a;
|
|
15
|
+
}
|
|
16
|
+
function isHexPrefixed(str) {
|
|
17
|
+
if (typeof str !== "string") {
|
|
18
|
+
throw new Error(`[isHexPrefixed] input must be type 'string', received type ${typeof str}`);
|
|
19
|
+
}
|
|
20
|
+
return str[0] === "0" && str[1] === "x";
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Removes '0x' from a given `String` if present
|
|
24
|
+
* @param str the string value
|
|
25
|
+
* @returns the string without 0x prefix
|
|
26
|
+
*/
|
|
27
|
+
const stripHexPrefix = (str) => {
|
|
28
|
+
if (typeof str !== "string")
|
|
29
|
+
throw new Error(`[stripHexPrefix] input must be type 'string', received ${typeof str}`);
|
|
30
|
+
return isHexPrefixed(str) ? str.slice(2) : str;
|
|
31
|
+
};
|
|
32
|
+
exports.stripHexPrefix = stripHexPrefix;
|
|
33
|
+
//# sourceMappingURL=internal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internal.js","sourceRoot":"","sources":["../../src/minify-ethereumjs-util/internal.ts"],"names":[],"mappings":";AAAA,0GAA0G;;;AAE1G,8BAUC;AAED,sCAMC;AAlBD,SAAgB,SAAS,CAAC,KAAa;IACrC,IAAI,CAAC,GAAG,KAAK,CAAC;IAEd,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,qDAAqD,OAAO,CAAC,EAAE,CAAC,CAAC;IACnF,CAAC;IAED,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC;QAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;IAE9B,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAgB,aAAa,CAAC,GAAW;IACvC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,8DAA8D,OAAO,GAAG,EAAE,CAAC,CAAC;IAC9F,CAAC;IAED,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;AAC1C,CAAC;AAED;;;;GAIG;AACI,MAAM,cAAc,GAAG,CAAC,GAAW,EAAU,EAAE;IACpD,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,0DAA0D,OAAO,GAAG,EAAE,CAAC,CAAC;IAErH,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACjD,CAAC,CAAC;AAJW,QAAA,cAAc,kBAIzB"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface ECDSASignature {
|
|
2
|
+
v: bigint;
|
|
3
|
+
r: Uint8Array;
|
|
4
|
+
s: Uint8Array;
|
|
5
|
+
}
|
|
6
|
+
export declare const calculateSigRecovery: (v: bigint, chainId?: bigint) => bigint;
|
|
7
|
+
export declare function ecsign(msgHash: Uint8Array, privateKey: Uint8Array, chainId?: bigint): ECDSASignature;
|
|
8
|
+
/**
|
|
9
|
+
* ECDSA public key recovery from signature.
|
|
10
|
+
* NOTE: Accepts `v === 0 | v === 1` for EIP1559 transactions
|
|
11
|
+
* @returns Recovered public key
|
|
12
|
+
*/
|
|
13
|
+
export declare const ecrecover: (msgHash: Uint8Array, v: bigint, r: Uint8Array, s: Uint8Array, chainId?: bigint) => Uint8Array;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// forked from https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/util/src/signature.ts
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.ecrecover = exports.calculateSigRecovery = void 0;
|
|
5
|
+
exports.ecsign = ecsign;
|
|
6
|
+
const secp256k1_1 = require("@noble/curves/secp256k1");
|
|
7
|
+
const constants_1 = require("./constants");
|
|
8
|
+
const bytes_1 = require("./bytes");
|
|
9
|
+
const calculateSigRecovery = (v, chainId) => {
|
|
10
|
+
if (v === constants_1.BIGINT_0 || v === constants_1.BIGINT_1)
|
|
11
|
+
return v;
|
|
12
|
+
if (chainId === undefined) {
|
|
13
|
+
return v - constants_1.BIGINT_27;
|
|
14
|
+
}
|
|
15
|
+
return v - (chainId * constants_1.BIGINT_2 + BigInt(35));
|
|
16
|
+
};
|
|
17
|
+
exports.calculateSigRecovery = calculateSigRecovery;
|
|
18
|
+
function isValidSigRecovery(recovery) {
|
|
19
|
+
return recovery === constants_1.BIGINT_0 || recovery === constants_1.BIGINT_1;
|
|
20
|
+
}
|
|
21
|
+
function ecsign(msgHash, privateKey, chainId) {
|
|
22
|
+
const sig = secp256k1_1.secp256k1.sign(msgHash, privateKey);
|
|
23
|
+
const buf = sig.toCompactRawBytes();
|
|
24
|
+
const r = buf.slice(0, 32);
|
|
25
|
+
const s = buf.slice(32, 64);
|
|
26
|
+
const v = chainId === undefined ? BigInt(sig.recovery + 27) : BigInt(sig.recovery + 35) + BigInt(chainId) * constants_1.BIGINT_2;
|
|
27
|
+
return { r, s, v };
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* ECDSA public key recovery from signature.
|
|
31
|
+
* NOTE: Accepts `v === 0 | v === 1` for EIP1559 transactions
|
|
32
|
+
* @returns Recovered public key
|
|
33
|
+
*/
|
|
34
|
+
const ecrecover = function (msgHash, v, r, s, chainId) {
|
|
35
|
+
const signature = (0, bytes_1.concatBytes)((0, bytes_1.setLengthLeft)(r, 32), (0, bytes_1.setLengthLeft)(s, 32));
|
|
36
|
+
const recovery = (0, exports.calculateSigRecovery)(v, chainId);
|
|
37
|
+
if (!isValidSigRecovery(recovery)) {
|
|
38
|
+
throw new Error("Invalid signature v value");
|
|
39
|
+
}
|
|
40
|
+
const sig = secp256k1_1.secp256k1.Signature.fromCompact(signature).addRecoveryBit(Number(recovery));
|
|
41
|
+
const senderPubKey = sig.recoverPublicKey(msgHash);
|
|
42
|
+
return senderPubKey.toRawBytes(false).slice(1);
|
|
43
|
+
};
|
|
44
|
+
exports.ecrecover = ecrecover;
|
|
45
|
+
//# sourceMappingURL=signature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signature.js","sourceRoot":"","sources":["../../src/minify-ethereumjs-util/signature.ts"],"names":[],"mappings":";AAAA,2GAA2G;;;AA0B3G,wBAUC;AAlCD,uDAAoD;AAEpD,2CAAsE;AACtE,mCAAqD;AAQ9C,MAAM,oBAAoB,GAAG,CAAC,CAAS,EAAE,OAAgB,EAAU,EAAE;IAC1E,IAAI,CAAC,KAAK,oBAAQ,IAAI,CAAC,KAAK,oBAAQ;QAAE,OAAO,CAAC,CAAC;IAE/C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,qBAAS,CAAC;IACvB,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,oBAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/C,CAAC,CAAC;AAPW,QAAA,oBAAoB,wBAO/B;AAEF,SAAS,kBAAkB,CAAC,QAAgB;IAC1C,OAAO,QAAQ,KAAK,oBAAQ,IAAI,QAAQ,KAAK,oBAAQ,CAAC;AACxD,CAAC;AAED,SAAgB,MAAM,CAAC,OAAmB,EAAE,UAAsB,EAAE,OAAgB;IAClF,MAAM,GAAG,GAAG,qBAAS,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAChD,MAAM,GAAG,GAAG,GAAG,CAAC,iBAAiB,EAAE,CAAC;IACpC,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC3B,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAE5B,MAAM,CAAC,GACL,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,QAAS,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,QAAS,GAAG,EAAE,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,oBAAQ,CAAC;IAE/G,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACrB,CAAC;AAED;;;;GAIG;AACI,MAAM,SAAS,GAAG,UACvB,OAAmB,EACnB,CAAS,EACT,CAAa,EACb,CAAa,EACb,OAAgB;IAEhB,MAAM,SAAS,GAAG,IAAA,mBAAW,EAAC,IAAA,qBAAa,EAAC,CAAC,EAAE,EAAE,CAAC,EAAE,IAAA,qBAAa,EAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAC1E,MAAM,QAAQ,GAAG,IAAA,4BAAoB,EAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAClD,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,GAAG,GAAG,qBAAS,CAAC,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IACxF,MAAM,YAAY,GAAG,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACnD,OAAO,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACjD,CAAC,CAAC;AAhBW,QAAA,SAAS,aAgBpB"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export type Sequence = Array<number> | Buffer | Uint8Array;
|
|
2
|
+
export interface IAddressCodec {
|
|
3
|
+
decodeSeed: (seed: string, opts?: {
|
|
4
|
+
versionTypes: string[];
|
|
5
|
+
versions: (number | number[])[];
|
|
6
|
+
expectedLength: number;
|
|
7
|
+
}) => {
|
|
8
|
+
version: Array<number>;
|
|
9
|
+
bytes: Buffer;
|
|
10
|
+
type: string | null;
|
|
11
|
+
};
|
|
12
|
+
isValidAddress: (address: string) => boolean;
|
|
13
|
+
encodeAccountID: (bytes: Buffer) => string;
|
|
14
|
+
encodeSeed: (entropy: Buffer, type?: string) => string;
|
|
15
|
+
}
|
|
16
|
+
export declare const Factory: (alphabet: any) => IAddressCodec;
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.Factory = void 0;
|
|
7
|
+
const sha256_1 = require("@noble/hashes/sha256");
|
|
8
|
+
const base_x_1 = __importDefault(require("base-x"));
|
|
9
|
+
const FAMILY_SEED = 0x21; // 33
|
|
10
|
+
const ED25519_SEED = [0x01, 0xe1, 0x4b]; // [1, 225, 75]
|
|
11
|
+
const ACCOUNT_ID = 0;
|
|
12
|
+
const seqEqual = (arr1, arr2) => {
|
|
13
|
+
if (arr1.length !== arr2.length) {
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
for (let j = 0; j < arr1.length; j++) {
|
|
17
|
+
if (arr1[j] !== arr2[j]) {
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return true;
|
|
22
|
+
};
|
|
23
|
+
function isSequence(val) {
|
|
24
|
+
return val.length !== undefined;
|
|
25
|
+
}
|
|
26
|
+
const concatArgs = (...args) => {
|
|
27
|
+
const ret = [];
|
|
28
|
+
args.forEach((arg) => {
|
|
29
|
+
if (isSequence(arg)) {
|
|
30
|
+
for (const e of arg) {
|
|
31
|
+
ret.push(e);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
ret.push(arg);
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
return ret;
|
|
39
|
+
};
|
|
40
|
+
class Codec {
|
|
41
|
+
constructor(options) {
|
|
42
|
+
this.sha256 = options.sha256;
|
|
43
|
+
this.alphabet = options.alphabet;
|
|
44
|
+
this.codec = (0, base_x_1.default)(this.alphabet);
|
|
45
|
+
this.base = this.alphabet.length;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Decoder.
|
|
49
|
+
*
|
|
50
|
+
* @param base58string Base58Check-encoded string to decode.
|
|
51
|
+
* @param opts Options object including the version byte(s) and the expected length of the data after decoding.
|
|
52
|
+
*/
|
|
53
|
+
decode(base58string, opts) {
|
|
54
|
+
const versions = opts.versions;
|
|
55
|
+
const types = opts.versionTypes;
|
|
56
|
+
const withoutSum = this.decodeChecked(base58string);
|
|
57
|
+
if (versions.length > 1 && !opts.expectedLength) {
|
|
58
|
+
throw new Error("expectedLength is required because there are >= 2 possible versions");
|
|
59
|
+
}
|
|
60
|
+
const versionLengthGuess = typeof versions[0] === "number" ? 1 : versions[0].length;
|
|
61
|
+
const payloadLength = opts.expectedLength || withoutSum.length - versionLengthGuess;
|
|
62
|
+
const versionBytes = withoutSum.subarray(0, -payloadLength);
|
|
63
|
+
const payload = withoutSum.subarray(-payloadLength);
|
|
64
|
+
for (let i = 0; i < versions.length; i++) {
|
|
65
|
+
const version = Array.isArray(versions[i])
|
|
66
|
+
? versions[i]
|
|
67
|
+
: [versions[i]];
|
|
68
|
+
if (seqEqual(versionBytes, version)) {
|
|
69
|
+
return {
|
|
70
|
+
version,
|
|
71
|
+
bytes: payload,
|
|
72
|
+
type: types ? types[i] : null
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
throw new Error("version_invalid: version bytes do not match any of the provided version(s)");
|
|
77
|
+
}
|
|
78
|
+
encode(bytes, opts) {
|
|
79
|
+
const versions = opts.versions;
|
|
80
|
+
return this.encodeVersioned(bytes, versions, opts.expectedLength);
|
|
81
|
+
}
|
|
82
|
+
encodeVersioned(bytes, versions, expectedLength) {
|
|
83
|
+
if (expectedLength && bytes.length !== expectedLength) {
|
|
84
|
+
throw new Error("unexpected_payload_length: bytes.length does not match expectedLength");
|
|
85
|
+
}
|
|
86
|
+
return this.encodeChecked(Buffer.from(concatArgs(versions, bytes)));
|
|
87
|
+
}
|
|
88
|
+
encodeChecked(buffer) {
|
|
89
|
+
const check = this.sha256(this.sha256(buffer)).slice(0, 4);
|
|
90
|
+
return this.encodeRaw(Buffer.from(concatArgs(buffer, check)));
|
|
91
|
+
}
|
|
92
|
+
encodeRaw(bytes) {
|
|
93
|
+
return this.codec.encode(bytes);
|
|
94
|
+
}
|
|
95
|
+
decodeChecked(base58string) {
|
|
96
|
+
const buffer = this.decodeRaw(base58string);
|
|
97
|
+
if (buffer.length < 5) {
|
|
98
|
+
throw new Error("invalid_input_size: decoded data must have length >= 5");
|
|
99
|
+
}
|
|
100
|
+
if (!this.verifyCheckSum(buffer)) {
|
|
101
|
+
throw new Error("checksum_invalid");
|
|
102
|
+
}
|
|
103
|
+
return buffer.subarray(0, -4);
|
|
104
|
+
}
|
|
105
|
+
decodeRaw(base58string) {
|
|
106
|
+
return this.codec.decode(base58string);
|
|
107
|
+
}
|
|
108
|
+
verifyCheckSum(bytes) {
|
|
109
|
+
const computed = this.sha256(this.sha256(bytes.subarray(0, -4))).subarray(0, 4);
|
|
110
|
+
const checksum = bytes.subarray(-4);
|
|
111
|
+
return seqEqual(computed, checksum);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
const Factory = (alphabet) => {
|
|
115
|
+
const codecWithAlphabet = new Codec({
|
|
116
|
+
sha256: (bytes) => sha256_1.sha256
|
|
117
|
+
.create()
|
|
118
|
+
.update(bytes)
|
|
119
|
+
.digest(),
|
|
120
|
+
alphabet
|
|
121
|
+
});
|
|
122
|
+
const decodeSeed = (seed, opts = {
|
|
123
|
+
versionTypes: ["ed25519", "secp256k1"],
|
|
124
|
+
versions: [ED25519_SEED, FAMILY_SEED],
|
|
125
|
+
expectedLength: 16
|
|
126
|
+
}) => {
|
|
127
|
+
return codecWithAlphabet.decode(seed, opts);
|
|
128
|
+
};
|
|
129
|
+
const encodeSeed = (entropy, type) => {
|
|
130
|
+
if (entropy.length !== 16) {
|
|
131
|
+
throw new Error("entropy must have length 16");
|
|
132
|
+
}
|
|
133
|
+
const opts = {
|
|
134
|
+
expectedLength: 16,
|
|
135
|
+
// for secp256k1, use `FAMILY_SEED`
|
|
136
|
+
versions: type === "ed25519" ? ED25519_SEED : [FAMILY_SEED]
|
|
137
|
+
};
|
|
138
|
+
// prefixes entropy with version bytes
|
|
139
|
+
return codecWithAlphabet.encode(entropy, opts);
|
|
140
|
+
};
|
|
141
|
+
const decodeAccountID = (accountId) => {
|
|
142
|
+
const opts = { versions: [ACCOUNT_ID], expectedLength: 20 };
|
|
143
|
+
return codecWithAlphabet.decode(accountId, opts).bytes;
|
|
144
|
+
};
|
|
145
|
+
const encodeAccountID = (bytes) => {
|
|
146
|
+
const opts = { versions: [ACCOUNT_ID], expectedLength: 20 };
|
|
147
|
+
return codecWithAlphabet.encode(bytes, opts);
|
|
148
|
+
};
|
|
149
|
+
const isValidAddress = (address) => {
|
|
150
|
+
try {
|
|
151
|
+
decodeAccountID(address);
|
|
152
|
+
}
|
|
153
|
+
catch (_) {
|
|
154
|
+
return false;
|
|
155
|
+
}
|
|
156
|
+
return true;
|
|
157
|
+
};
|
|
158
|
+
return {
|
|
159
|
+
decodeSeed,
|
|
160
|
+
isValidAddress,
|
|
161
|
+
encodeAccountID,
|
|
162
|
+
encodeSeed
|
|
163
|
+
};
|
|
164
|
+
};
|
|
165
|
+
exports.Factory = Factory;
|
|
166
|
+
//# sourceMappingURL=address-codec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"address-codec.js","sourceRoot":"","sources":["../../src/minify-swtc-keypair/address-codec.ts"],"names":[],"mappings":";;;;;;AAAA,iDAA8C;AAC9C,oDAA+B;AAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,CAAC,KAAK;AAC/B,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,eAAe;AACxD,MAAM,UAAU,GAAG,CAAC,CAAC;AAErB,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,IAAI,EAAW,EAAE;IACvC,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;QAChC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAIF,SAAS,UAAU,CAAC,GAAsB;IACxC,OAAQ,GAAgB,CAAC,MAAM,KAAK,SAAS,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,GAAG,IAA8B,EAAiB,EAAE;IACtE,MAAM,GAAG,GAAkB,EAAE,CAAC;IAE9B,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QACnB,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACpB,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;gBACpB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACd,CAAC;QACH,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChB,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF,MAAM,KAAK;IAMT,YAAY,OAAqC;QAC/C,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,KAAK,GAAG,IAAA,gBAAS,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IACnC,CAAC;IAED;;;;;OAKG;IACI,MAAM,CACX,YAAoB,EACpB,IAIC;QAMD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;QAEhC,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;QAEpD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;QACzF,CAAC;QACD,MAAM,kBAAkB,GAAG,OAAO,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACpF,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,IAAI,UAAU,CAAC,MAAM,GAAG,kBAAkB,CAAC;QACpF,MAAM,YAAY,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;QAC5D,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,CAAC;QAEpD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,OAAO,GAAkB,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACvD,CAAC,CAAE,QAAQ,CAAC,CAAC,CAAmB;gBAChC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAW,CAAC,CAAC;YAC5B,IAAI,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,EAAE,CAAC;gBACpC,OAAO;oBACL,OAAO;oBACP,KAAK,EAAE,OAAO;oBACd,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;iBAC9B,CAAC;YACJ,CAAC;QACH,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC,CAAC;IAChG,CAAC;IAEM,MAAM,CACX,KAAa,EACb,IAGC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IACpE,CAAC;IAEM,eAAe,CAAC,KAAa,EAAE,QAAuB,EAAE,cAAsB;QACnF,IAAI,cAAc,IAAI,KAAK,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;YACtD,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;QAC3F,CAAC;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IACtE,CAAC;IAEM,aAAa,CAAC,MAAc;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3D,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAChE,CAAC;IAEM,SAAS,CAAC,KAAa;QAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAW,CAAC;IAC5C,CAAC;IAEM,aAAa,CAAC,YAAoB;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAC5C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;QAC5E,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC;IAEM,SAAS,CAAC,YAAoB;QACnC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAW,CAAC;IACnD,CAAC;IAEM,cAAc,CAAC,KAAa;QACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAChF,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,OAAO,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACtC,CAAC;CACF;AAgBM,MAAM,OAAO,GAAG,CAAC,QAAQ,EAAiB,EAAE;IACjD,MAAM,iBAAiB,GAAG,IAAI,KAAK,CAAC;QAClC,MAAM,EAAE,CAAC,KAAiB,EAAE,EAAE,CAC5B,eAAM;aACH,MAAM,EAAE;aACR,MAAM,CAAC,KAAK,CAAC;aACb,MAAM,EAAE;QACb,QAAQ;KACT,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,CACjB,IAAY,EACZ,OAII;QACF,YAAY,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC;QACtC,QAAQ,EAAE,CAAC,YAAY,EAAE,WAAW,CAAC;QACrC,cAAc,EAAE,EAAE;KACnB,EACD,EAAE;QACF,OAAO,iBAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,CAAC,OAAe,EAAE,IAAa,EAAU,EAAE;QAC5D,IAAI,OAAO,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;QACD,MAAM,IAAI,GAAG;YACX,cAAc,EAAE,EAAE;YAClB,mCAAmC;YACnC,QAAQ,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;SAC5D,CAAC;QACF,sCAAsC;QACtC,OAAO,iBAAiB,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACjD,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,CAAC,SAAiB,EAAU,EAAE;QACpD,MAAM,IAAI,GAAG,EAAE,QAAQ,EAAE,CAAC,UAAU,CAAC,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC;QAC5D,OAAO,iBAAiB,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC;IACzD,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,CAAC,KAAa,EAAU,EAAE;QAChD,MAAM,IAAI,GAAG,EAAE,QAAQ,EAAE,CAAC,UAAU,CAAC,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC;QAC5D,OAAO,iBAAiB,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC/C,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,CAAC,OAAe,EAAW,EAAE;QAClD,IAAI,CAAC;YACH,eAAe,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,OAAO;QACL,UAAU;QACV,cAAc;QACd,eAAe;QACf,UAAU;KACX,CAAC;AACJ,CAAC,CAAC;AA/DW,QAAA,OAAO,WA+DlB"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { IAddressCodec } from "./address-codec";
|
|
2
|
+
interface IKeyPair {
|
|
3
|
+
privateKey: string;
|
|
4
|
+
publicKey: string;
|
|
5
|
+
}
|
|
6
|
+
export interface IKeyPairFactory {
|
|
7
|
+
deriveKeyPair: (seed: string, algorithm?: string) => IKeyPair;
|
|
8
|
+
isValidSecret: (secret: string) => boolean;
|
|
9
|
+
isValidAddress: (address: string) => boolean;
|
|
10
|
+
deriveAddress: (pk: string) => string;
|
|
11
|
+
generate: (options: any) => {
|
|
12
|
+
secret: string;
|
|
13
|
+
address: string;
|
|
14
|
+
};
|
|
15
|
+
fromSecret: (secret: string, algorithm?: string) => {
|
|
16
|
+
secret: string;
|
|
17
|
+
address: string;
|
|
18
|
+
};
|
|
19
|
+
addressCodec: IAddressCodec;
|
|
20
|
+
hash: (message: string) => Uint8Array;
|
|
21
|
+
sign: (message: string, privateKey: string) => string;
|
|
22
|
+
verify: (message: string, signature: string, publicKey: string) => boolean;
|
|
23
|
+
}
|
|
24
|
+
declare const Factory: (alphabet: any) => IKeyPairFactory;
|
|
25
|
+
export { Factory };
|