@airgap/crypto 0.13.45-beta.3 → 0.13.45-beta.5
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/derive.d.ts +1 -0
- package/derive.js +75 -24
- package/derive.js.map +1 -1
- package/ed25519/derive.d.ts +1 -0
- package/ed25519/derive.js +29 -27
- package/ed25519/derive.js.map +1 -1
- package/encoding.d.ts +1 -1
- package/encoding.js +11 -10
- package/encoding.js.map +1 -1
- package/index.js +5 -5
- package/index.js.map +1 -1
- package/package.json +3 -3
- package/sapling/derive.d.ts +1 -0
- package/sapling/derive.js +58 -10
- package/sapling/derive.js.map +1 -1
- package/secp256k1/derive.d.ts +1 -0
- package/secp256k1/derive.js +29 -27
- package/secp256k1/derive.js.map +1 -1
- package/secret.d.ts +1 -0
- package/secret.js +90 -23
- package/secret.js.map +1 -1
- package/sr25519/derive.d.ts +1 -0
- package/sr25519/derive.js +119 -47
- package/sr25519/derive.js.map +1 -1
- package/types/derivation.d.ts +2 -1
- package/types/key.d.ts +1 -0
- package/utils/bip32.js +40 -45
- package/utils/bip32.js.map +1 -1
- package/utils/bytes.d.ts +1 -0
- package/utils/bytes.js +21 -20
- package/utils/bytes.js.map +1 -1
- package/utils/derivation.js +12 -11
- package/utils/derivation.js.map +1 -1
- package/utils/factory.js +6 -5
- package/utils/factory.js.map +1 -1
- package/utils/hash.d.ts +1 -0
- package/utils/hash.js +5 -4
- package/utils/hash.js.map +1 -1
- package/utils/hex.js +5 -4
- package/utils/hex.js.map +1 -1
- package/utils/zip32.d.ts +1 -0
- package/utils/zip32.js +18 -9
- package/utils/zip32.js.map +1 -1
package/secret.js
CHANGED
|
@@ -1,39 +1,106 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (_) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
2
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.mnemonicToSeed =
|
|
4
|
-
|
|
39
|
+
exports.mnemonicToSeed = void 0;
|
|
40
|
+
var coinlib_core_1 = require("@airgap/coinlib-core");
|
|
5
41
|
// @ts-ignore
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
42
|
+
var bip39_2_5_0_1 = require("@airgap/coinlib-core/dependencies/src/bip39-2.5.0");
|
|
43
|
+
var wasm_crypto_1 = require("@polkadot/wasm-crypto");
|
|
44
|
+
function mnemonicToSeed(crypto, mnemonic, password) {
|
|
45
|
+
var _a;
|
|
46
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
47
|
+
var seed, _b, _c;
|
|
48
|
+
return __generator(this, function (_d) {
|
|
49
|
+
switch (_d.label) {
|
|
50
|
+
case 0:
|
|
51
|
+
if (!(crypto.algorithm !== 'sr25519')) return [3 /*break*/, 1];
|
|
52
|
+
_b = mnemonicToBip39Seed((_a = crypto.secretType) !== null && _a !== void 0 ? _a : 'secret', mnemonic, password);
|
|
53
|
+
return [3 /*break*/, 5];
|
|
54
|
+
case 1:
|
|
55
|
+
if (!(crypto.compatibility === 'substrate')) return [3 /*break*/, 3];
|
|
56
|
+
return [4 /*yield*/, mnemonicToSubstrateSeed(mnemonic, password)];
|
|
57
|
+
case 2:
|
|
58
|
+
_c = _d.sent();
|
|
59
|
+
return [3 /*break*/, 4];
|
|
60
|
+
case 3:
|
|
61
|
+
_c = undefined;
|
|
62
|
+
_d.label = 4;
|
|
63
|
+
case 4:
|
|
64
|
+
_b = _c;
|
|
65
|
+
_d.label = 5;
|
|
66
|
+
case 5:
|
|
67
|
+
seed = _b;
|
|
68
|
+
if (seed === undefined) {
|
|
69
|
+
throw new Error('Invalid crypto configuration');
|
|
70
|
+
}
|
|
71
|
+
return [2 /*return*/, seed];
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
});
|
|
18
75
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
76
|
+
exports.mnemonicToSeed = mnemonicToSeed;
|
|
77
|
+
function mnemonicToSubstrateSeed(mnemonic, password) {
|
|
78
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
79
|
+
var secret;
|
|
80
|
+
return __generator(this, function (_a) {
|
|
81
|
+
switch (_a.label) {
|
|
82
|
+
case 0: return [4 /*yield*/, (0, wasm_crypto_1.waitReady)()];
|
|
83
|
+
case 1:
|
|
84
|
+
_a.sent();
|
|
85
|
+
secret = (0, wasm_crypto_1.bip39ToMiniSecret)(mnemonic, password || '');
|
|
86
|
+
return [2 /*return*/, Buffer.from(secret)];
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
});
|
|
23
90
|
}
|
|
24
91
|
function mnemonicToBip39Seed(secretType, mnemonic, password) {
|
|
25
|
-
|
|
92
|
+
var seed = (0, bip39_2_5_0_1.mnemonicToSeed)(mnemonic, password);
|
|
26
93
|
switch (secretType) {
|
|
27
94
|
case 'secret':
|
|
28
95
|
return seed;
|
|
29
96
|
case 'miniSecretXor':
|
|
30
|
-
|
|
31
|
-
|
|
97
|
+
var first32 = seed.slice(0, 32);
|
|
98
|
+
var second32_1 = seed.slice(32);
|
|
32
99
|
// tslint:disable-next-line: no-bitwise
|
|
33
|
-
return Buffer.from(first32.map((byte, index)
|
|
100
|
+
return Buffer.from(first32.map(function (byte, index) { return byte ^ second32_1[index]; }));
|
|
34
101
|
default:
|
|
35
102
|
(0, coinlib_core_1.assertNever)(secretType);
|
|
36
|
-
throw new Error(
|
|
103
|
+
throw new Error("Secret type ".concat(secretType, " is not supported"));
|
|
37
104
|
}
|
|
38
105
|
}
|
|
39
106
|
//# sourceMappingURL=secret.js.map
|
package/secret.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secret.js","sourceRoot":"","sources":["../src/secret.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"secret.js","sourceRoot":"","sources":["../src/secret.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qDAAkD;AAClD,aAAa;AACb,iFAAyG;AAEzG,qDAAoE;AAEpE,SAAsB,cAAc,CAAC,MAA2B,EAAE,QAAgB,EAAE,QAAiB;;;;;;;yBAEjG,CAAA,MAAM,CAAC,SAAS,KAAK,SAAS,CAAA,EAA9B,wBAA8B;oBAC1B,KAAA,mBAAmB,CAAC,MAAA,MAAM,CAAC,UAAU,mCAAI,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;;;yBACtE,CAAA,MAAM,CAAC,aAAa,KAAK,WAAW,CAAA,EAApC,wBAAoC;oBACpC,qBAAM,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAA;;oBAAjD,KAAA,SAAiD,CAAA;;;oBACjD,KAAA,SAAS,CAAA;;;oBAFT,QAES;;;oBALT,IAAI,KAKK;oBAEf,IAAI,IAAI,KAAK,SAAS,EAAE;wBACtB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;qBAChD;oBAED,sBAAO,IAAI,EAAA;;;;CACZ;AAbD,wCAaC;AAED,SAAe,uBAAuB,CAAC,QAAgB,EAAE,QAAiB;;;;;wBACxE,qBAAM,IAAA,uBAAS,GAAE,EAAA;;oBAAjB,SAAiB,CAAA;oBACX,MAAM,GAAe,IAAA,+BAAiB,EAAC,QAAQ,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAA;oBAEtE,sBAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAA;;;;CAC3B;AAED,SAAS,mBAAmB,CAAC,UAA4B,EAAE,QAAgB,EAAE,QAAiB;IAC5F,IAAM,IAAI,GAAW,IAAA,4BAAmB,EAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;IAE5D,QAAQ,UAAU,EAAE;QAClB,KAAK,QAAQ;YACX,OAAO,IAAI,CAAA;QACb,KAAK,eAAe;YAClB,IAAM,OAAO,GAAW,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;YACzC,IAAM,UAAQ,GAAW,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;YAEvC,uCAAuC;YACvC,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAC,IAAY,EAAE,KAAa,IAAK,OAAA,IAAI,GAAG,UAAQ,CAAC,KAAK,CAAC,EAAtB,CAAsB,CAAC,CAAC,CAAA;QAC1F;YACE,IAAA,0BAAW,EAAC,UAAU,CAAC,CAAA;YACvB,MAAM,IAAI,KAAK,CAAC,sBAAe,UAAU,sBAAmB,CAAC,CAAA;KAChE;AACH,CAAC"}
|
package/sr25519/derive.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
1
2
|
import { Sr25519CryptoConfiguration } from '@airgap/module-kit';
|
|
2
3
|
import { DerivationNode } from '../types/derivation';
|
|
3
4
|
export declare function deriveSr25519(compatibility: Sr25519CryptoConfiguration['compatibility'], seed: Buffer, derivationPath?: string): Promise<DerivationNode>;
|
package/sr25519/derive.js
CHANGED
|
@@ -1,57 +1,129 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (_) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
2
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.deriveSr25519 =
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
return
|
|
39
|
+
exports.deriveSr25519 = void 0;
|
|
40
|
+
var wasm_crypto_1 = require("@polkadot/wasm-crypto");
|
|
41
|
+
var derivation_1 = require("../utils/derivation");
|
|
42
|
+
var hash_1 = require("../utils/hash");
|
|
43
|
+
function deriveSr25519(compatibility, seed, derivationPath) {
|
|
44
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
45
|
+
return __generator(this, function (_a) {
|
|
46
|
+
return [2 /*return*/, compatibility === 'substrate' ? deriveSr25519Substrate(seed, derivationPath) : deriveSr25519Standard(seed, derivationPath)];
|
|
47
|
+
});
|
|
48
|
+
});
|
|
9
49
|
}
|
|
10
|
-
|
|
11
|
-
|
|
50
|
+
exports.deriveSr25519 = deriveSr25519;
|
|
51
|
+
function deriveSr25519Standard(seed, derivationPath) {
|
|
52
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
53
|
+
return __generator(this, function (_a) {
|
|
54
|
+
throw new Error('Not implemented');
|
|
55
|
+
});
|
|
56
|
+
});
|
|
12
57
|
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
58
|
+
function deriveSr25519Substrate(seed, derivationPath) {
|
|
59
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
60
|
+
var masterNode;
|
|
61
|
+
return __generator(this, function (_a) {
|
|
62
|
+
switch (_a.label) {
|
|
63
|
+
case 0: return [4 /*yield*/, substrateMasterKeyFromSeed(seed)];
|
|
64
|
+
case 1:
|
|
65
|
+
masterNode = _a.sent();
|
|
66
|
+
return [2 /*return*/, derivationPath !== undefined ? deriveSubstrate(masterNode, derivationPath) : masterNode];
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
});
|
|
16
70
|
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
71
|
+
function substrateMasterKeyFromSeed(seed) {
|
|
72
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
73
|
+
var keyPair, _a, secretKey, publicKey;
|
|
74
|
+
return __generator(this, function (_b) {
|
|
75
|
+
switch (_b.label) {
|
|
76
|
+
case 0: return [4 /*yield*/, (0, wasm_crypto_1.waitReady)()];
|
|
77
|
+
case 1:
|
|
78
|
+
_b.sent();
|
|
79
|
+
keyPair = (0, wasm_crypto_1.sr25519KeypairFromSeed)(seed.slice(0, 32));
|
|
80
|
+
_a = splitKeyPair(keyPair), secretKey = _a.secretKey, publicKey = _a.publicKey;
|
|
81
|
+
return [2 /*return*/, {
|
|
82
|
+
depth: 0,
|
|
83
|
+
parentFingerprint: 0x00000000,
|
|
84
|
+
index: 0,
|
|
85
|
+
chainCode: Buffer.alloc(32, 0),
|
|
86
|
+
secretKey: secretKey,
|
|
87
|
+
publicKey: publicKey
|
|
88
|
+
}];
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
});
|
|
29
92
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
93
|
+
function deriveSubstrate(masterNode, derivationPath) {
|
|
94
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
95
|
+
var derivationIndices;
|
|
96
|
+
return __generator(this, function (_a) {
|
|
97
|
+
switch (_a.label) {
|
|
98
|
+
case 0: return [4 /*yield*/, (0, wasm_crypto_1.waitReady)()];
|
|
99
|
+
case 1:
|
|
100
|
+
_a.sent();
|
|
101
|
+
derivationIndices = (0, derivation_1.splitDerivationPath)(derivationPath);
|
|
102
|
+
return [2 /*return*/, derivationIndices.reduce(function (derivedKey, next) {
|
|
103
|
+
var parentFingerprint = (0, hash_1.hash160)(derivedKey.publicKey).readUInt32BE(0);
|
|
104
|
+
var deriveKeyPair = next.isHardened ? wasm_crypto_1.sr25519DeriveKeypairHard : wasm_crypto_1.sr25519DeriveKeypairSoft;
|
|
105
|
+
var keyPair = Buffer.concat([derivedKey.secretKey, derivedKey.publicKey]);
|
|
106
|
+
var index = Buffer.alloc(32, 0);
|
|
107
|
+
index.writeUInt32LE(next.value);
|
|
108
|
+
var derivedKeyPair = deriveKeyPair(keyPair, index);
|
|
109
|
+
var _a = splitKeyPair(derivedKeyPair), secretKey = _a.secretKey, publicKey = _a.publicKey;
|
|
110
|
+
return {
|
|
111
|
+
depth: derivedKey.depth + 1,
|
|
112
|
+
parentFingerprint: parentFingerprint,
|
|
113
|
+
index: next.masked,
|
|
114
|
+
chainCode: index,
|
|
115
|
+
secretKey: secretKey,
|
|
116
|
+
publicKey: publicKey
|
|
117
|
+
};
|
|
118
|
+
}, masterNode)];
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
});
|
|
50
122
|
}
|
|
51
123
|
function splitKeyPair(keyPair) {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
return { secretKey, publicKey };
|
|
124
|
+
var keyPairBuffer = Buffer.from(keyPair);
|
|
125
|
+
var secretKey = keyPairBuffer.slice(0, 64);
|
|
126
|
+
var publicKey = keyPairBuffer.slice(64);
|
|
127
|
+
return { secretKey: secretKey, publicKey: publicKey };
|
|
56
128
|
}
|
|
57
129
|
//# sourceMappingURL=derive.js.map
|
package/sr25519/derive.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"derive.js","sourceRoot":"","sources":["../../src/sr25519/derive.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"derive.js","sourceRoot":"","sources":["../../src/sr25519/derive.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,qDAA6H;AAG7H,kDAAyD;AACzD,sCAAuC;AAEvC,SAAsB,aAAa,CACjC,aAA0D,EAC1D,IAAY,EACZ,cAAuB;;;YAEvB,sBAAO,aAAa,KAAK,WAAW,CAAC,CAAC,CAAC,sBAAsB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,IAAI,EAAE,cAAc,CAAC,EAAA;;;CAClI;AAND,sCAMC;AAED,SAAe,qBAAqB,CAAC,IAAY,EAAE,cAAuB;;;YACxE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;;;CACnC;AAED,SAAe,sBAAsB,CAAC,IAAY,EAAE,cAAuB;;;;;wBACtC,qBAAM,0BAA0B,CAAC,IAAI,CAAC,EAAA;;oBAAnE,UAAU,GAAmB,SAAsC;oBAEzE,sBAAO,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,EAAA;;;;CAC/F;AAED,SAAe,0BAA0B,CAAC,IAAY;;;;;wBACpD,qBAAM,IAAA,uBAAS,GAAE,EAAA;;oBAAjB,SAAiB,CAAA;oBAEX,OAAO,GAAe,IAAA,oCAAsB,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;oBAC/D,KAA2B,YAAY,CAAC,OAAO,CAAC,EAA9C,SAAS,eAAA,EAAE,SAAS,eAAA,CAA0B;oBAEtD,sBAAO;4BACL,KAAK,EAAE,CAAC;4BACR,iBAAiB,EAAE,UAAU;4BAC7B,KAAK,EAAE,CAAC;4BACR,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;4BAC9B,SAAS,WAAA;4BACT,SAAS,WAAA;yBACV,EAAA;;;;CACF;AAED,SAAe,eAAe,CAAC,UAA0B,EAAE,cAAsB;;;;;wBAC/E,qBAAM,IAAA,uBAAS,GAAE,EAAA;;oBAAjB,SAAiB,CAAA;oBAEX,iBAAiB,GAAsB,IAAA,gCAAmB,EAAC,cAAc,CAAC,CAAA;oBAEhF,sBAAO,iBAAiB,CAAC,MAAM,CAAC,UAAC,UAA0B,EAAE,IAAqB;4BAChF,IAAM,iBAAiB,GAAW,IAAA,cAAO,EAAC,UAAU,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;4BAE/E,IAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,sCAAwB,CAAC,CAAC,CAAC,sCAAwB,CAAA;4BAC3F,IAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,SAAS,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,CAAA;4BAC3E,IAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;4BACjC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;4BAE/B,IAAM,cAAc,GAAG,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;4BAE9C,IAAA,KAA2B,YAAY,CAAC,cAAc,CAAC,EAArD,SAAS,eAAA,EAAE,SAAS,eAAiC,CAAA;4BAE7D,OAAO;gCACL,KAAK,EAAE,UAAU,CAAC,KAAK,GAAG,CAAC;gCAC3B,iBAAiB,mBAAA;gCACjB,KAAK,EAAE,IAAI,CAAC,MAAM;gCAClB,SAAS,EAAE,KAAK;gCAChB,SAAS,WAAA;gCACT,SAAS,WAAA;6BACV,CAAA;wBACH,CAAC,EAAE,UAAU,CAAC,EAAA;;;;CACf;AAED,SAAS,YAAY,CAAC,OAAmB;IACvC,IAAM,aAAa,GAAW,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAElD,IAAM,SAAS,GAAW,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IACpD,IAAM,SAAS,GAAW,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IAEjD,OAAO,EAAE,SAAS,WAAA,EAAE,SAAS,WAAA,EAAE,CAAA;AACjC,CAAC"}
|
package/types/derivation.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
1
2
|
export interface DerivationIndex {
|
|
2
3
|
value: number;
|
|
3
4
|
masked: number;
|
|
@@ -18,4 +19,4 @@ export interface DerivationNode {
|
|
|
18
19
|
secretKey: Buffer;
|
|
19
20
|
publicKey: Buffer;
|
|
20
21
|
}
|
|
21
|
-
export type DerivationKeyType = Extract<keyof DerivationNode, 'secretKey' | 'publicKey'>;
|
|
22
|
+
export declare type DerivationKeyType = Extract<keyof DerivationNode, 'secretKey' | 'publicKey'>;
|
package/types/key.d.ts
CHANGED
package/utils/bip32.js
CHANGED
|
@@ -15,70 +15,65 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) ||
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
35
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.bip32EncodeNode =
|
|
37
|
-
exports.bip32DecodeNode = bip32DecodeNode;
|
|
26
|
+
exports.bip32DecodeNode = exports.bip32EncodeNode = void 0;
|
|
38
27
|
// @ts-ignore
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
function bip32EncodeNode(node, version
|
|
28
|
+
var bs58check = __importStar(require("@airgap/coinlib-core/dependencies/src/bs58check-2.1.2/index"));
|
|
29
|
+
var factory_1 = require("./factory");
|
|
30
|
+
var XPRV_VERSION = '0488ade4';
|
|
31
|
+
var XPUB_VERSION = '0488b21e';
|
|
32
|
+
function bip32EncodeNode(node, version) {
|
|
33
|
+
var _a, _b;
|
|
34
|
+
if (version === void 0) { version = {}; }
|
|
44
35
|
return {
|
|
45
36
|
type: 'bip32',
|
|
46
|
-
secretKey: encodeKey(node, version.secretKey
|
|
47
|
-
publicKey: encodeKey(node, version.publicKey
|
|
37
|
+
secretKey: encodeKey(node, (_a = version.secretKey) !== null && _a !== void 0 ? _a : XPRV_VERSION, 'secretKey'),
|
|
38
|
+
publicKey: encodeKey(node, (_b = version.publicKey) !== null && _b !== void 0 ? _b : XPUB_VERSION, 'publicKey')
|
|
48
39
|
};
|
|
49
40
|
}
|
|
41
|
+
exports.bip32EncodeNode = bip32EncodeNode;
|
|
50
42
|
function encodeKey(node, version, keyType) {
|
|
51
|
-
|
|
52
|
-
|
|
43
|
+
var versionBuffer = Buffer.from(version, 'hex');
|
|
44
|
+
var depth = Buffer.alloc(1);
|
|
53
45
|
depth.writeUInt8(node.depth);
|
|
54
|
-
|
|
46
|
+
var parentFingerprint = Buffer.alloc(4);
|
|
55
47
|
parentFingerprint.writeUInt32BE(node.parentFingerprint);
|
|
56
|
-
|
|
48
|
+
var index = Buffer.alloc(4);
|
|
57
49
|
index.writeUInt32BE(node.index);
|
|
58
|
-
|
|
59
|
-
|
|
50
|
+
var chainCode = node.chainCode;
|
|
51
|
+
var key = keyType === 'secretKey' ? Buffer.concat([Buffer.alloc(1, 0), node[keyType]]) : node[keyType];
|
|
60
52
|
return bs58check.encode(Buffer.concat([versionBuffer, depth, parentFingerprint, index, chainCode, key]));
|
|
61
53
|
}
|
|
62
|
-
function bip32DecodeNode(node, version
|
|
63
|
-
|
|
64
|
-
|
|
54
|
+
function bip32DecodeNode(node, version) {
|
|
55
|
+
var _a, _b;
|
|
56
|
+
if (version === void 0) { version = {}; }
|
|
57
|
+
var xprvDecoded = decodeKey(node.secretKey, (_a = version.secretKey) !== null && _a !== void 0 ? _a : XPRV_VERSION, 'secretKey');
|
|
58
|
+
var xpubDecoded = decodeKey(node.publicKey, (_b = version.publicKey) !== null && _b !== void 0 ? _b : XPUB_VERSION, 'publicKey');
|
|
65
59
|
return (0, factory_1.newDerivationNodeFromKeys)(xprvDecoded, xpubDecoded);
|
|
66
60
|
}
|
|
61
|
+
exports.bip32DecodeNode = bip32DecodeNode;
|
|
67
62
|
function decodeKey(key, version, keyType) {
|
|
68
|
-
|
|
69
|
-
|
|
63
|
+
var buffer = bs58check.decode(key);
|
|
64
|
+
var versionBuffer = buffer.slice(0, 4);
|
|
70
65
|
if (versionBuffer.toString('hex') !== version) {
|
|
71
66
|
throw new Error('Invalid Bip32 version');
|
|
72
67
|
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
68
|
+
var depth = buffer.readUInt8(4);
|
|
69
|
+
var parentFingerprint = buffer.readUInt32BE(5);
|
|
70
|
+
var index = buffer.readUInt32BE(9);
|
|
71
|
+
var chainCode = buffer.slice(13, 45);
|
|
77
72
|
return {
|
|
78
|
-
depth,
|
|
79
|
-
parentFingerprint,
|
|
80
|
-
index,
|
|
81
|
-
chainCode,
|
|
73
|
+
depth: depth,
|
|
74
|
+
parentFingerprint: parentFingerprint,
|
|
75
|
+
index: index,
|
|
76
|
+
chainCode: chainCode,
|
|
82
77
|
key: keyType === 'secretKey' ? buffer.slice(46) : buffer.slice(45)
|
|
83
78
|
};
|
|
84
79
|
}
|
package/utils/bip32.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bip32.js","sourceRoot":"","sources":["../../src/utils/bip32.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bip32.js","sourceRoot":"","sources":["../../src/utils/bip32.ts"],"names":[],"mappings":"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"}
|
package/utils/bytes.d.ts
CHANGED
package/utils/bytes.js
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.bytesEncodeNode =
|
|
4
|
-
|
|
5
|
-
const factory_1 = require("./factory");
|
|
3
|
+
exports.bytesDecodeNode = exports.bytesEncodeNode = void 0;
|
|
4
|
+
var factory_1 = require("./factory");
|
|
6
5
|
function bytesEncodeNode(node) {
|
|
7
6
|
return {
|
|
8
7
|
type: 'bytes',
|
|
@@ -10,34 +9,36 @@ function bytesEncodeNode(node) {
|
|
|
10
9
|
publicKey: encodeKey(node, 'publicKey')
|
|
11
10
|
};
|
|
12
11
|
}
|
|
12
|
+
exports.bytesEncodeNode = bytesEncodeNode;
|
|
13
13
|
function encodeKey(node, keyType) {
|
|
14
|
-
|
|
14
|
+
var depth = Buffer.alloc(1);
|
|
15
15
|
depth.writeUInt8(node.depth);
|
|
16
|
-
|
|
16
|
+
var parentFingerprint = Buffer.alloc(4);
|
|
17
17
|
parentFingerprint.writeUInt32BE(node.parentFingerprint);
|
|
18
|
-
|
|
18
|
+
var index = Buffer.alloc(4);
|
|
19
19
|
index.writeUInt32BE(node.index);
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
var chainCode = node.chainCode;
|
|
21
|
+
var key = node[keyType];
|
|
22
22
|
return Buffer.concat([depth, parentFingerprint, index, chainCode, key]);
|
|
23
23
|
}
|
|
24
24
|
function bytesDecodeNode(node) {
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
var xprvDecoded = decodeKey(node.secretKey);
|
|
26
|
+
var xpubDecoded = decodeKey(node.publicKey);
|
|
27
27
|
return (0, factory_1.newDerivationNodeFromKeys)(xprvDecoded, xpubDecoded);
|
|
28
28
|
}
|
|
29
|
+
exports.bytesDecodeNode = bytesDecodeNode;
|
|
29
30
|
function decodeKey(buffer) {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
31
|
+
var depth = buffer.readUInt8(0);
|
|
32
|
+
var parentFingerprint = buffer.readUInt32BE(1);
|
|
33
|
+
var index = buffer.readUInt32BE(5);
|
|
34
|
+
var chainCode = buffer.slice(9, 41);
|
|
35
|
+
var key = buffer.slice(41);
|
|
35
36
|
return {
|
|
36
|
-
depth,
|
|
37
|
-
parentFingerprint,
|
|
38
|
-
index,
|
|
39
|
-
chainCode,
|
|
40
|
-
key
|
|
37
|
+
depth: depth,
|
|
38
|
+
parentFingerprint: parentFingerprint,
|
|
39
|
+
index: index,
|
|
40
|
+
chainCode: chainCode,
|
|
41
|
+
key: key
|
|
41
42
|
};
|
|
42
43
|
}
|
|
43
44
|
//# sourceMappingURL=bytes.js.map
|
package/utils/bytes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bytes.js","sourceRoot":"","sources":["../../src/utils/bytes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bytes.js","sourceRoot":"","sources":["../../src/utils/bytes.ts"],"names":[],"mappings":";;;AAEA,qCAAqD;AAQrD,SAAgB,eAAe,CAAC,IAAoB;IAClD,OAAO;QACL,IAAI,EAAE,OAAO;QACb,SAAS,EAAE,SAAS,CAAC,IAAI,EAAE,WAAW,CAAC;QACvC,SAAS,EAAE,SAAS,CAAC,IAAI,EAAE,WAAW,CAAC;KACxC,CAAA;AACH,CAAC;AAND,0CAMC;AAED,SAAS,SAAS,CAAC,IAAoB,EAAE,OAA0B;IACjE,IAAM,KAAK,GAAW,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACrC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAE5B,IAAM,iBAAiB,GAAW,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACjD,iBAAiB,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;IAEvD,IAAM,KAAK,GAAW,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACrC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAE/B,IAAM,SAAS,GAAW,IAAI,CAAC,SAAS,CAAA;IACxC,IAAM,GAAG,GAAW,IAAI,CAAC,OAAO,CAAC,CAAA;IAEjC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC,CAAA;AACzE,CAAC;AAED,SAAgB,eAAe,CAAC,IAAe;IAC7C,IAAM,WAAW,GAAkB,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAC5D,IAAM,WAAW,GAAkB,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAE5D,OAAO,IAAA,mCAAyB,EAAC,WAAW,EAAE,WAAW,CAAC,CAAA;AAC5D,CAAC;AALD,0CAKC;AAED,SAAS,SAAS,CAAC,MAAc;IAC/B,IAAM,KAAK,GAAW,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;IACzC,IAAM,iBAAiB,GAAW,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;IACxD,IAAM,KAAK,GAAW,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;IAC5C,IAAM,SAAS,GAAW,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IAC7C,IAAM,GAAG,GAAW,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IAEpC,OAAO;QACL,KAAK,OAAA;QACL,iBAAiB,mBAAA;QACjB,KAAK,OAAA;QACL,SAAS,WAAA;QACT,GAAG,KAAA;KACJ,CAAA;AACH,CAAC"}
|
package/utils/derivation.js
CHANGED
|
@@ -1,32 +1,33 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createDerivationIndexFromNumber =
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
exports.incIndex = incIndex;
|
|
7
|
-
const MASK_HARD_DERIVATION = 0x80000000;
|
|
8
|
-
const MASK_SOFT_DERIVATION = 0x00000000;
|
|
3
|
+
exports.incIndex = exports.splitDerivationPath = exports.createDerivationIndexFromString = exports.createDerivationIndexFromNumber = void 0;
|
|
4
|
+
var MASK_HARD_DERIVATION = 0x80000000;
|
|
5
|
+
var MASK_SOFT_DERIVATION = 0x00000000;
|
|
9
6
|
function createDerivationIndexFromNumber(value, isHardened) {
|
|
10
|
-
|
|
7
|
+
var mask = isHardened ? MASK_HARD_DERIVATION : MASK_SOFT_DERIVATION;
|
|
11
8
|
return {
|
|
12
|
-
value,
|
|
9
|
+
value: value,
|
|
13
10
|
// tslint:disable-next-line: no-bitwise
|
|
14
11
|
masked: parseInt((BigInt(mask) | BigInt(value)).toString(), 10),
|
|
15
|
-
isHardened
|
|
12
|
+
isHardened: isHardened
|
|
16
13
|
};
|
|
17
14
|
}
|
|
15
|
+
exports.createDerivationIndexFromNumber = createDerivationIndexFromNumber;
|
|
18
16
|
function createDerivationIndexFromString(value) {
|
|
19
|
-
|
|
20
|
-
|
|
17
|
+
var isHardened = ['h', "'"].includes(value.slice(-1));
|
|
18
|
+
var index = parseInt(isHardened ? value.slice(0, -1) : value, 10);
|
|
21
19
|
return createDerivationIndexFromNumber(index, isHardened);
|
|
22
20
|
}
|
|
21
|
+
exports.createDerivationIndexFromString = createDerivationIndexFromString;
|
|
23
22
|
function splitDerivationPath(path) {
|
|
24
23
|
if (path.length === 0 || !path.startsWith('m/') || path === 'm/') {
|
|
25
24
|
return [];
|
|
26
25
|
}
|
|
27
26
|
return path.slice(2).split('/').map(createDerivationIndexFromString);
|
|
28
27
|
}
|
|
28
|
+
exports.splitDerivationPath = splitDerivationPath;
|
|
29
29
|
function incIndex(current) {
|
|
30
30
|
return createDerivationIndexFromNumber(current.value + 1, current.isHardened);
|
|
31
31
|
}
|
|
32
|
+
exports.incIndex = incIndex;
|
|
32
33
|
//# sourceMappingURL=derivation.js.map
|
package/utils/derivation.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"derivation.js","sourceRoot":"","sources":["../../src/utils/derivation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"derivation.js","sourceRoot":"","sources":["../../src/utils/derivation.ts"],"names":[],"mappings":";;;AAEA,IAAM,oBAAoB,GAAW,UAAU,CAAA;AAC/C,IAAM,oBAAoB,GAAW,UAAU,CAAA;AAE/C,SAAgB,+BAA+B,CAAC,KAAa,EAAE,UAAmB;IAChF,IAAM,IAAI,GAAW,UAAU,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,oBAAoB,CAAA;IAE7E,OAAO;QACL,KAAK,OAAA;QACL,uCAAuC;QACvC,MAAM,EAAE,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC;QAC/D,UAAU,YAAA;KACX,CAAA;AACH,CAAC;AATD,0EASC;AAED,SAAgB,+BAA+B,CAAC,KAAa;IAC3D,IAAM,UAAU,GAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAChE,IAAM,KAAK,GAAW,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IAE3E,OAAO,+BAA+B,CAAC,KAAK,EAAE,UAAU,CAAC,CAAA;AAC3D,CAAC;AALD,0EAKC;AAED,SAAgB,mBAAmB,CAAC,IAAY;IAC9C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,IAAI,EAAE;QAChE,OAAO,EAAE,CAAA;KACV;IAED,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAA;AACtE,CAAC;AAND,kDAMC;AAED,SAAgB,QAAQ,CAAC,OAAwB;IAC/C,OAAO,+BAA+B,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;AAC/E,CAAC;AAFD,4BAEC"}
|