@bitgo-beta/utxo-bin 2.8.3-beta.43 → 2.8.3-beta.430
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/README.md +63 -4
- package/dist/bin/index.js +10 -2
- package/dist/src/AddressParser.d.ts +1 -0
- package/dist/src/AddressParser.d.ts.map +1 -1
- package/dist/src/AddressParser.js +7 -1
- package/dist/src/InputParser.d.ts.map +1 -1
- package/dist/src/InputParser.js +10 -18
- package/dist/src/OutputParser.d.ts +2 -1
- package/dist/src/OutputParser.d.ts.map +1 -1
- package/dist/src/OutputParser.js +17 -4
- package/dist/src/Parser.d.ts +1 -1
- package/dist/src/Parser.d.ts.map +1 -1
- package/dist/src/Parser.js +5 -2
- package/dist/src/ScriptParser.d.ts +21 -0
- package/dist/src/ScriptParser.d.ts.map +1 -0
- package/dist/src/ScriptParser.js +77 -0
- package/dist/src/TxParser.d.ts +1 -0
- package/dist/src/TxParser.d.ts.map +1 -1
- package/dist/src/TxParser.js +9 -7
- package/dist/src/bip32.d.ts +5 -0
- package/dist/src/bip32.d.ts.map +1 -0
- package/dist/src/bip32.js +23 -0
- package/dist/src/commands.d.ts +49 -1
- package/dist/src/commands.d.ts.map +1 -1
- package/dist/src/commands.js +122 -25
- package/dist/src/fetch.d.ts +5 -1
- package/dist/src/fetch.d.ts.map +1 -1
- package/dist/src/fetch.js +24 -3
- package/dist/src/format.d.ts.map +1 -1
- package/dist/src/format.js +14 -5
- package/dist/src/generateAddress.d.ts +35 -0
- package/dist/src/generateAddress.d.ts.map +1 -0
- package/dist/src/generateAddress.js +108 -0
- package/dist/src/parseString.d.ts +5 -0
- package/dist/src/parseString.d.ts.map +1 -0
- package/dist/src/parseString.js +29 -0
- package/dist/src/parseUnknown.d.ts +3 -1
- package/dist/src/parseUnknown.d.ts.map +1 -1
- package/dist/src/parseUnknown.js +4 -4
- package/dist/test/bip32.d.ts +2 -0
- package/dist/test/bip32.d.ts.map +1 -0
- package/dist/test/bip32.js +21 -0
- package/dist/test/bip32.util.d.ts +6 -0
- package/dist/test/bip32.util.d.ts.map +1 -0
- package/dist/test/bip32.util.js +14 -0
- package/dist/test/fixtures.d.ts.map +1 -1
- package/dist/test/fixtures.js +11 -4
- package/dist/test/generateAddress.d.ts +2 -0
- package/dist/test/generateAddress.d.ts.map +1 -0
- package/dist/test/generateAddress.js +29 -0
- package/dist/test/parseAddress.d.ts +0 -4
- package/dist/test/parseAddress.d.ts.map +1 -1
- package/dist/test/parseAddress.js +13 -18
- package/dist/test/parseScript.d.ts +2 -0
- package/dist/test/parseScript.d.ts.map +1 -0
- package/dist/test/parseScript.js +38 -0
- package/dist/test/parseTransaction.js +8 -5
- package/dist/test/stringToBuffer.d.ts +2 -0
- package/dist/test/stringToBuffer.d.ts.map +1 -0
- package/dist/test/stringToBuffer.js +16 -0
- package/dist/tsconfig.tsbuildinfo +1 -4790
- package/package.json +7 -6
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.generateAddress = exports.parseIndexRange = exports.getRange = exports.formatAddressWithFormatString = exports.formatAddressTree = exports.getAddressPlaceholderDescription = void 0;
|
|
4
|
+
const assert = require("assert");
|
|
5
|
+
const utxolib = require("@bitgo-beta/utxo-lib");
|
|
6
|
+
const Parser_1 = require("./Parser");
|
|
7
|
+
const parseUnknown_1 = require("./parseUnknown");
|
|
8
|
+
const format_1 = require("./format");
|
|
9
|
+
function getDefaultChainCodes() {
|
|
10
|
+
return utxolib.bitgo.chainCodes.filter(
|
|
11
|
+
// these are rare and show an annoying warning in stderr
|
|
12
|
+
(c) => utxolib.bitgo.scriptTypeForChain(c) !== 'p2tr' && utxolib.bitgo.scriptTypeForChain(c) !== 'p2trMusig2');
|
|
13
|
+
}
|
|
14
|
+
const placeholders = {
|
|
15
|
+
'%c': 'chain',
|
|
16
|
+
'%i': 'index',
|
|
17
|
+
'%p': 'userPath',
|
|
18
|
+
'%t': 'type',
|
|
19
|
+
'%p0': 'userPath',
|
|
20
|
+
'%p1': 'backupPath',
|
|
21
|
+
'%p2': 'bitgoPath',
|
|
22
|
+
'%k0': 'userKey',
|
|
23
|
+
'%k1': 'backupKey',
|
|
24
|
+
'%k2': 'bitgoKey',
|
|
25
|
+
'%s': 'scriptPubKey',
|
|
26
|
+
'%r': 'redeemScript',
|
|
27
|
+
'%w': 'witnessScript',
|
|
28
|
+
'%a': 'address',
|
|
29
|
+
};
|
|
30
|
+
function getAddressPlaceholderDescription() {
|
|
31
|
+
return Object.entries(placeholders)
|
|
32
|
+
.map(([placeholder, prop]) => `${placeholder} -> ${prop}`)
|
|
33
|
+
.join('\n');
|
|
34
|
+
}
|
|
35
|
+
exports.getAddressPlaceholderDescription = getAddressPlaceholderDescription;
|
|
36
|
+
function getAddressProperties(keys, chain, index, network) {
|
|
37
|
+
var _a, _b;
|
|
38
|
+
const [userPath, backupPath, bitgoPath] = keys.triple.map((k) => keys.getDerivationPath(k, chain, index));
|
|
39
|
+
const scripts = utxolib.bitgo.getWalletOutputScripts(keys, chain, index);
|
|
40
|
+
const [userKey, backupKey, bitgoKey] = keys.triple.map((k) => k.derivePath(userPath).publicKey.toString('hex'));
|
|
41
|
+
const address = utxolib.address.fromOutputScript(scripts.scriptPubKey, network);
|
|
42
|
+
return {
|
|
43
|
+
chain,
|
|
44
|
+
index,
|
|
45
|
+
type: utxolib.bitgo.scriptTypeForChain(chain),
|
|
46
|
+
userPath,
|
|
47
|
+
backupPath,
|
|
48
|
+
bitgoPath,
|
|
49
|
+
userKey,
|
|
50
|
+
backupKey,
|
|
51
|
+
bitgoKey,
|
|
52
|
+
scriptPubKey: scripts.scriptPubKey.toString('hex'),
|
|
53
|
+
redeemScript: (_a = scripts.redeemScript) === null || _a === void 0 ? void 0 : _a.toString('hex'),
|
|
54
|
+
witnessScript: (_b = scripts.witnessScript) === null || _b === void 0 ? void 0 : _b.toString('hex'),
|
|
55
|
+
address,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
function formatAddressTree(props) {
|
|
59
|
+
const parser = new Parser_1.Parser();
|
|
60
|
+
return (0, format_1.formatTree)((0, parseUnknown_1.parseUnknown)(parser, 'address', props));
|
|
61
|
+
}
|
|
62
|
+
exports.formatAddressTree = formatAddressTree;
|
|
63
|
+
function formatAddressWithFormatString(props, format) {
|
|
64
|
+
// replace all patterns with a % prefix from format string with the corresponding property
|
|
65
|
+
// e.g. %p0 -> userPath, %k1 -> backupKey, etc.
|
|
66
|
+
return format.replace(/%[a-z0-9]+/gi, (match) => {
|
|
67
|
+
if (match in placeholders) {
|
|
68
|
+
const prop = placeholders[match];
|
|
69
|
+
return String(props[prop]);
|
|
70
|
+
}
|
|
71
|
+
return match;
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
exports.formatAddressWithFormatString = formatAddressWithFormatString;
|
|
75
|
+
function getRange(start, end) {
|
|
76
|
+
return Array.from({ length: end - start + 1 }, (_, i) => start + i);
|
|
77
|
+
}
|
|
78
|
+
exports.getRange = getRange;
|
|
79
|
+
function parseIndexRange(ranges) {
|
|
80
|
+
return ranges.flatMap((range) => {
|
|
81
|
+
const [start, end] = range.split('-');
|
|
82
|
+
if (end) {
|
|
83
|
+
return getRange(Number(start), Number(end));
|
|
84
|
+
}
|
|
85
|
+
return [Number(start)];
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
exports.parseIndexRange = parseIndexRange;
|
|
89
|
+
function* generateAddress(argv) {
|
|
90
|
+
var _a, _b, _c, _d, _e;
|
|
91
|
+
const xpubs = [argv.userKey, argv.backupKey, argv.bitgoKey].map((k) => utxolib.bip32.fromBase58(k));
|
|
92
|
+
assert(utxolib.bitgo.isTriple(xpubs));
|
|
93
|
+
const rootXpubs = new utxolib.bitgo.RootWalletKeys(xpubs, [
|
|
94
|
+
(_a = argv.userKeyPrefix) !== null && _a !== void 0 ? _a : utxolib.bitgo.RootWalletKeys.defaultPrefix,
|
|
95
|
+
(_b = argv.backupKeyPrefix) !== null && _b !== void 0 ? _b : utxolib.bitgo.RootWalletKeys.defaultPrefix,
|
|
96
|
+
(_c = argv.bitgoKeyPrefix) !== null && _c !== void 0 ? _c : utxolib.bitgo.RootWalletKeys.defaultPrefix,
|
|
97
|
+
]);
|
|
98
|
+
const chains = (_d = argv.chain) !== null && _d !== void 0 ? _d : getDefaultChainCodes();
|
|
99
|
+
for (const i of argv.index) {
|
|
100
|
+
for (const chain of chains) {
|
|
101
|
+
assert(utxolib.bitgo.isChainCode(chain));
|
|
102
|
+
// yield formatAddress(rootXpubs, chain, i, argv.network ?? utxolib.networks.bitcoin, argv.format);
|
|
103
|
+
yield getAddressProperties(rootXpubs, chain, i, (_e = argv.network) !== null && _e !== void 0 ? _e : utxolib.networks.bitcoin);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
exports.generateAddress = generateAddress;
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGVBZGRyZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2dlbmVyYXRlQWRkcmVzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxpQ0FBaUM7QUFDakMsZ0RBQWdEO0FBQ2hELHFDQUFrQztBQUNsQyxpREFBOEM7QUFDOUMscUNBQXNDO0FBRXRDLFNBQVMsb0JBQW9CO0lBQzNCLE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTTtJQUNwQyx3REFBd0Q7SUFDeEQsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLEtBQUssTUFBTSxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLEtBQUssWUFBWSxDQUM5RyxDQUFDO0FBQ0osQ0FBQztBQWtCRCxNQUFNLFlBQVksR0FBRztJQUNuQixJQUFJLEVBQUUsT0FBTztJQUNiLElBQUksRUFBRSxPQUFPO0lBQ2IsSUFBSSxFQUFFLFVBQVU7SUFDaEIsSUFBSSxFQUFFLE1BQU07SUFDWixLQUFLLEVBQUUsVUFBVTtJQUNqQixLQUFLLEVBQUUsWUFBWTtJQUNuQixLQUFLLEVBQUUsV0FBVztJQUNsQixLQUFLLEVBQUUsU0FBUztJQUNoQixLQUFLLEVBQUUsV0FBVztJQUNsQixLQUFLLEVBQUUsVUFBVTtJQUNqQixJQUFJLEVBQUUsY0FBYztJQUNwQixJQUFJLEVBQUUsY0FBYztJQUNwQixJQUFJLEVBQUUsZUFBZTtJQUNyQixJQUFJLEVBQUUsU0FBUztDQUNQLENBQUM7QUFFWCxTQUFnQixnQ0FBZ0M7SUFDOUMsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQztTQUNoQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxXQUFXLE9BQU8sSUFBSSxFQUFFLENBQUM7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S0FBSyxFQUFFO1FBQzFCLEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxFQUFFO1lBQzFCLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ3pDLG1HQUFtRztZQUNuRyxNQUFNLG9CQUFvQixDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLE1BQUEsSUFBSSxDQUFDLE9BQU8sbUNBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUMzRjtLQUNGO0FBQ0gsQ0FBQztBQTNCRCwwQ0EyQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuaW1wb3J0IHsgUGFyc2VyIH0gZnJvbSAnLi9QYXJzZXInO1xuaW1wb3J0IHsgcGFyc2VVbmtub3duIH0gZnJvbSAnLi9wYXJzZVVua25vd24nO1xuaW1wb3J0IHsgZm9ybWF0VHJlZSB9IGZyb20gJy4vZm9ybWF0JztcblxuZnVuY3Rpb24gZ2V0RGVmYXVsdENoYWluQ29kZXMoKTogbnVtYmVyW10ge1xuICByZXR1cm4gdXR4b2xpYi5iaXRnby5jaGFpbkNvZGVzLmZpbHRlcihcbiAgICAvLyB0aGVzZSBhcmUgcmFyZSBhbmQgc2hvdyBhbiBhbm5veWluZyB3YXJuaW5nIGluIHN0ZGVyclxuICAgIChjKSA9PiB1dHhvbGliLmJpdGdvLnNjcmlwdFR5cGVGb3JDaGFpbihjKSAhPT0gJ3AydHInICYmIHV0eG9saWIuYml0Z28uc2NyaXB0VHlwZUZvckNoYWluKGMpICE9PSAncDJ0ck11c2lnMidcbiAgKTtcbn1cblxudHlwZSBBZGRyZXNzUHJvcGVydGllcyA9IHtcbiAgY2hhaW46IHV0eG9saWIuYml0Z28uQ2hhaW5Db2RlO1xuICBpbmRleDogbnVtYmVyO1xuICB0eXBlOiB1dHhvbGliLmJpdGdvLm91dHB1dFNjcmlwdHMuU2NyaXB0VHlwZTtcbiAgdXNlclBhdGg6IHN0cmluZztcbiAgYmFja3VwUGF0aDogc3RyaW5nO1xuICBiaXRnb1BhdGg6IHN0cmluZztcbiAgdXNlcktleTogc3RyaW5nO1xuICBiYWNrdXBLZXk6IHN0cmluZztcbiAgYml0Z29LZXk6IHN0cmluZztcbiAgcmVkZWVtU2NyaXB0Pzogc3RyaW5nO1xuICB3aXRuZXNzU2NyaXB0Pzogc3RyaW5nO1xuICBzY3JpcHRQdWJLZXk6IHN0cmluZztcbiAgYWRkcmVzczogc3RyaW5nO1xufTtcblxuY29uc3QgcGxhY2Vob2xkZXJzID0ge1xuICAnJWMnOiAnY2hhaW4nLFxuICAnJWknOiAnaW5kZXgnLFxuICAnJXAnOiAndXNlclBhdGgnLFxuICAnJXQnOiAndHlwZScsXG4gICclcDAnOiAndXNlclBhdGgnLFxuICAnJXAxJzogJ2JhY2t1cFBhdGgnLFxuICAnJXAyJzogJ2JpdGdvUGF0aCcsXG4gICclazAnOiAndXNlcktleScsXG4gICclazEnOiAnYmFja3VwS2V5JyxcbiAgJyVrMic6ICdiaXRnb0tleScsXG4gICclcyc6ICdzY3JpcHRQdWJLZXknLFxuICAnJXInOiAncmVkZWVtU2NyaXB0JyxcbiAgJyV3JzogJ3dpdG5lc3NTY3JpcHQnLFxuICAnJWEnOiAnYWRkcmVzcycsXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWRkcmVzc1BsYWNlaG9sZGVyRGVzY3JpcHRpb24oKTogc3RyaW5nIHtcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHBsYWNlaG9sZGVycylcbiAgICAubWFwKChbcGxhY2Vob2xkZXIsIHByb3BdKSA9PiBgJHtwbGFjZWhvbGRlcn0gLT4gJHtwcm9wfWApXG4gICAgLmpvaW4oJ1xcbicpO1xufVxuXG5mdW5jdGlvbiBnZXRBZGRyZXNzUHJvcGVydGllcyhcbiAga2V5czogdXR4b2xpYi5iaXRnby5Sb290V2FsbGV0S2V5cyxcbiAgY2hhaW46IHV0eG9saWIuYml0Z28uQ2hhaW5Db2RlLFxuICBpbmRleDogbnVtYmVyLFxuICBuZXR3b3JrOiB1dHhvbGliLk5ldHdvcmtcbik6IEFkZHJlc3NQcm9wZXJ0aWVzIHtcbiAgY29uc3QgW3VzZXJQYXRoLCBiYWNrdXBQYXRoLCBiaXRnb1BhdGhdID0ga2V5cy50cmlwbGUubWFwKChrKSA9PiBrZXlzLmdldERlcml2YXRpb25QYXRoKGssIGNoYWluLCBpbmRleCkpO1xuICBjb25zdCBzY3JpcHRzID0gdXR4b2xpYi5iaXRnby5nZXRXYWxsZXRPdXRwdXRTY3JpcHRzKGtleXMsIGNoYWluLCBpbmRleCk7XG4gIGNvbnN0IFt1c2VyS2V5LCBiYWNrdXBLZXksIGJpdGdvS2V5XSA9IGtleXMudHJpcGxlLm1hcCgoaykgPT4gay5kZXJpdmVQYXRoKHVzZXJQYXRoKS5wdWJsaWNLZXkudG9TdHJpbmcoJ2hleCcpKTtcbiAgY29uc3QgYWRkcmVzcyA9IHV0eG9saWIuYWRkcmVzcy5mcm9tT3V0cHV0U2NyaXB0KHNjcmlwdHMuc2NyaXB0UHViS2V5LCBuZXR3b3JrKTtcbiAgcmV0dXJuIHtcbiAgICBjaGFpbixcbiAgICBpbmRleCxcbiAgICB0eXBlOiB1dHhvbGliLmJpdGdvLnNjcmlwdFR5cGVGb3JDaGFpbihjaGFpbiksXG4gICAgdXNlclBhdGgsXG4gICAgYmFja3VwUGF0aCxcbiAgICBiaXRnb1BhdGgsXG4gICAgdXNlcktleSxcbiAgICBiYWNrdXBLZXksXG4gICAgYml0Z29LZXksXG4gICAgc2NyaXB0UHViS2V5OiBzY3JpcHRzLnNjcmlwdFB1YktleS50b1N0cmluZygnaGV4JyksXG4gICAgcmVkZWVtU2NyaXB0OiBzY3JpcHRzLnJlZGVlbVNjcmlwdD8udG9TdHJpbmcoJ2hleCcpLFxuICAgIHdpdG5lc3NTY3JpcHQ6IHNjcmlwdHMud2l0bmVzc1NjcmlwdD8udG9TdHJpbmcoJ2hleCcpLFxuICAgIGFkZHJlc3MsXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRBZGRyZXNzVHJlZShwcm9wczogQWRkcmVzc1Byb3BlcnRpZXMpOiBzdHJpbmcge1xuICBjb25zdCBwYXJzZXIgPSBuZXcgUGFyc2VyKCk7XG4gIHJldHVybiBmb3JtYXRUcmVlKHBhcnNlVW5rbm93bihwYXJzZXIsICdhZGRyZXNzJywgcHJvcHMpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdEFkZHJlc3NXaXRoRm9ybWF0U3RyaW5nKHByb3BzOiBBZGRyZXNzUHJvcGVydGllcywgZm9ybWF0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAvLyByZXBsYWNlIGFsbCBwYXR0ZXJucyB3aXRoIGEgJSBwcmVmaXggZnJvbSBmb3JtYXQgc3RyaW5nIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgcHJvcGVydHlcbiAgLy8gZS5nLiAlcDAgLT4gdXNlclBhdGgsICVrMSAtPiBiYWNrdXBLZXksIGV0Yy5cbiAgcmV0dXJuIGZvcm1hdC5yZXBsYWNlKC8lW2EtejAtOV0rL2dpLCAobWF0Y2gpID0+IHtcbiAgICBpZiAobWF0Y2ggaW4gcGxhY2Vob2xkZXJzKSB7XG4gICAgICBjb25zdCBwcm9wID0gcGxhY2Vob2xkZXJzW21hdGNoIGFzIGtleW9mIHR5cGVvZiBwbGFjZWhvbGRlcnNdO1xuICAgICAgcmV0dXJuIFN0cmluZyhwcm9wc1twcm9wXSk7XG4gICAgfVxuICAgIHJldHVybiBtYXRjaDtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSYW5nZShzdGFydDogbnVtYmVyLCBlbmQ6IG51bWJlcik6IG51bWJlcltdIHtcbiAgcmV0dXJuIEFycmF5LmZyb20oeyBsZW5ndGg6IGVuZCAtIHN0YXJ0ICsgMSB9LCAoXywgaSkgPT4gc3RhcnQgKyBpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlSW5kZXhSYW5nZShyYW5nZXM6IHN0cmluZ1tdKTogbnVtYmVyW10ge1xuICByZXR1cm4gcmFuZ2VzLmZsYXRNYXAoKHJhbmdlKSA9PiB7XG4gICAgY29uc3QgW3N0YXJ0LCBlbmRdID0gcmFuZ2Uuc3BsaXQoJy0nKTtcbiAgICBpZiAoZW5kKSB7XG4gICAgICByZXR1cm4gZ2V0UmFuZ2UoTnVtYmVyKHN0YXJ0KSwgTnVtYmVyKGVuZCkpO1xuICAgIH1cbiAgICByZXR1cm4gW051bWJlcihzdGFydCldO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uKiBnZW5lcmF0ZUFkZHJlc3MoYXJndjoge1xuICBuZXR3b3JrPzogdXR4b2xpYi5OZXR3b3JrO1xuICB1c2VyS2V5OiBzdHJpbmc7XG4gIHVzZXJLZXlQcmVmaXg/OiBzdHJpbmc7XG4gIGJhY2t1cEtleTogc3RyaW5nO1xuICBiYWNrdXBLZXlQcmVmaXg/OiBzdHJpbmc7XG4gIGJpdGdvS2V5OiBzdHJpbmc7XG4gIGJpdGdvS2V5UHJlZml4Pzogc3RyaW5nO1xuICBjaGFpbj86IG51bWJlcltdO1xuICBmb3JtYXQ6IHN0cmluZztcbiAgaW5kZXg6IG51bWJlcltdO1xufSk6IEdlbmVyYXRvcjxBZGRyZXNzUHJvcGVydGllcz4ge1xuICBjb25zdCB4cHVicyA9IFthcmd2LnVzZXJLZXksIGFyZ3YuYmFja3VwS2V5LCBhcmd2LmJpdGdvS2V5XS5tYXAoKGspID0+IHV0eG9saWIuYmlwMzIuZnJvbUJhc2U1OChrKSk7XG4gIGFzc2VydCh1dHhvbGliLmJpdGdvLmlzVHJpcGxlKHhwdWJzKSk7XG4gIGNvbnN0IHJvb3RYcHVicyA9IG5ldyB1dHhvbGliLmJpdGdvLlJvb3RXYWxsZXRLZXlzKHhwdWJzLCBbXG4gICAgYXJndi51c2VyS2V5UHJlZml4ID8/IHV0eG9saWIuYml0Z28uUm9vdFdhbGxldEtleXMuZGVmYXVsdFByZWZpeCxcbiAgICBhcmd2LmJhY2t1cEtleVByZWZpeCA/PyB1dHhvbGliLmJpdGdvLlJvb3RXYWxsZXRLZXlzLmRlZmF1bHRQcmVmaXgsXG4gICAgYXJndi5iaXRnb0tleVByZWZpeCA/PyB1dHhvbGliLmJpdGdvLlJvb3RXYWxsZXRLZXlzLmRlZmF1bHRQcmVmaXgsXG4gIF0pO1xuICBjb25zdCBjaGFpbnMgPSBhcmd2LmNoYWluID8/IGdldERlZmF1bHRDaGFpbkNvZGVzKCk7XG4gIGZvciAoY29uc3QgaSBvZiBhcmd2LmluZGV4KSB7XG4gICAgZm9yIChjb25zdCBjaGFpbiBvZiBjaGFpbnMpIHtcbiAgICAgIGFzc2VydCh1dHhvbGliLmJpdGdvLmlzQ2hhaW5Db2RlKGNoYWluKSk7XG4gICAgICAvLyB5aWVsZCBmb3JtYXRBZGRyZXNzKHJvb3RYcHVicywgY2hhaW4sIGksIGFyZ3YubmV0d29yayA/PyB1dHhvbGliLm5ldHdvcmtzLmJpdGNvaW4sIGFyZ3YuZm9ybWF0KTtcbiAgICAgIHlpZWxkIGdldEFkZHJlc3NQcm9wZXJ0aWVzKHJvb3RYcHVicywgY2hhaW4sIGksIGFyZ3YubmV0d29yayA/PyB1dHhvbGliLm5ldHdvcmtzLmJpdGNvaW4pO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseString.d.ts","sourceRoot":"","sources":["../../src/parseString.ts"],"names":[],"mappings":";AAAA,aAAK,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;AAC/B,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,CAyB9E"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.stringToBuffer = void 0;
|
|
4
|
+
function stringToBuffer(data, format) {
|
|
5
|
+
if (typeof format !== 'string') {
|
|
6
|
+
for (const f of format) {
|
|
7
|
+
try {
|
|
8
|
+
return stringToBuffer(data, f);
|
|
9
|
+
}
|
|
10
|
+
catch (err) {
|
|
11
|
+
// ignore, try next
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
throw new Error(`could not parse data, formats: ${format}`);
|
|
15
|
+
}
|
|
16
|
+
// strip all whitespace
|
|
17
|
+
data = data.replace(/\s*/g, '');
|
|
18
|
+
if (format === 'hex') {
|
|
19
|
+
data = data.toLowerCase();
|
|
20
|
+
}
|
|
21
|
+
const buf = Buffer.from(data, format);
|
|
22
|
+
// make sure there were no decoding errors
|
|
23
|
+
if (buf.toString(format) !== data) {
|
|
24
|
+
throw new Error(`invalid ${format}`);
|
|
25
|
+
}
|
|
26
|
+
return buf;
|
|
27
|
+
}
|
|
28
|
+
exports.stringToBuffer = stringToBuffer;
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VTdHJpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcGFyc2VTdHJpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsU0FBZ0IsY0FBYyxDQUFDLElBQVksRUFBRSxNQUF5QjtJQUNwRSxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFBRTtRQUM5QixLQUFLLE1BQU0sQ0FBQyxJQUFJLE1BQU0sRUFBRTtZQUN0QixJQUFJO2dCQUNGLE9BQU8sY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQzthQUNoQztZQUFDLE9BQU8sR0FBRyxFQUFFO2dCQUNaLG1CQUFtQjthQUNwQjtTQUNGO1FBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQ0FBa0MsTUFBTSxFQUFFLENBQUMsQ0FBQztLQUM3RDtJQUVELHVCQUF1QjtJQUN2QixJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFaEMsSUFBSSxNQUFNLEtBQUssS0FBSyxFQUFFO1FBQ3BCLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7S0FDM0I7SUFFRCxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN0QywwQ0FBMEM7SUFDMUMsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksRUFBRTtRQUNqQyxNQUFNLElBQUksS0FBSyxDQUFDLFdBQVcsTUFBTSxFQUFFLENBQUMsQ0FBQztLQUN0QztJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQXpCRCx3Q0F5QkMiLCJzb3VyY2VzQ29udGVudCI6WyJ0eXBlIEZvcm1hdCA9ICdoZXgnIHwgJ2Jhc2U2NCc7XG5leHBvcnQgZnVuY3Rpb24gc3RyaW5nVG9CdWZmZXIoZGF0YTogc3RyaW5nLCBmb3JtYXQ6IEZvcm1hdCB8IEZvcm1hdFtdKTogQnVmZmVyIHtcbiAgaWYgKHR5cGVvZiBmb3JtYXQgIT09ICdzdHJpbmcnKSB7XG4gICAgZm9yIChjb25zdCBmIG9mIGZvcm1hdCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIHN0cmluZ1RvQnVmZmVyKGRhdGEsIGYpO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIC8vIGlnbm9yZSwgdHJ5IG5leHRcbiAgICAgIH1cbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKGBjb3VsZCBub3QgcGFyc2UgZGF0YSwgZm9ybWF0czogJHtmb3JtYXR9YCk7XG4gIH1cblxuICAvLyBzdHJpcCBhbGwgd2hpdGVzcGFjZVxuICBkYXRhID0gZGF0YS5yZXBsYWNlKC9cXHMqL2csICcnKTtcblxuICBpZiAoZm9ybWF0ID09PSAnaGV4Jykge1xuICAgIGRhdGEgPSBkYXRhLnRvTG93ZXJDYXNlKCk7XG4gIH1cblxuICBjb25zdCBidWYgPSBCdWZmZXIuZnJvbShkYXRhLCBmb3JtYXQpO1xuICAvLyBtYWtlIHN1cmUgdGhlcmUgd2VyZSBubyBkZWNvZGluZyBlcnJvcnNcbiAgaWYgKGJ1Zi50b1N0cmluZyhmb3JtYXQpICE9PSBkYXRhKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkICR7Zm9ybWF0fWApO1xuICB9XG4gIHJldHVybiBidWY7XG59XG4iXX0=
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import { Parser, ParserNode } from './Parser';
|
|
2
|
-
export declare function parseUnknown(p: Parser, label: string | number, obj: unknown
|
|
2
|
+
export declare function parseUnknown(p: Parser, label: string | number, obj: unknown, { omit }?: {
|
|
3
|
+
omit?: string[];
|
|
4
|
+
}): ParserNode;
|
|
3
5
|
//# sourceMappingURL=parseUnknown.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseUnknown.d.ts","sourceRoot":"","sources":["../../src/parseUnknown.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,MAAM,EAAE,UAAU,EAAmB,MAAM,UAAU,CAAC;AAgBlF,wBAAgB,YAAY,
|
|
1
|
+
{"version":3,"file":"parseUnknown.d.ts","sourceRoot":"","sources":["../../src/parseUnknown.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,MAAM,EAAE,UAAU,EAAmB,MAAM,UAAU,CAAC;AAgBlF,wBAAgB,YAAY,CAC1B,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,GAAG,EAAE,OAAO,EACZ,EAAE,IAAS,EAAE,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;CAAO,GACtC,UAAU,CAwCZ"}
|
package/dist/src/parseUnknown.js
CHANGED
|
@@ -14,8 +14,8 @@ function getPrototypeKeys(obj) {
|
|
|
14
14
|
}
|
|
15
15
|
return keys;
|
|
16
16
|
}
|
|
17
|
-
function parseUnknown(p, label, obj) {
|
|
18
|
-
if (Parser_1.isParserNodeValue(obj)) {
|
|
17
|
+
function parseUnknown(p, label, obj, { omit = [] } = {}) {
|
|
18
|
+
if ((0, Parser_1.isParserNodeValue)(obj)) {
|
|
19
19
|
if (typeof obj === 'string') {
|
|
20
20
|
obj = JSON.stringify(obj);
|
|
21
21
|
}
|
|
@@ -31,7 +31,7 @@ function parseUnknown(p, label, obj) {
|
|
|
31
31
|
if (allKeys.length > 0) {
|
|
32
32
|
return p.node(label, undefined, allKeys.flatMap((k) => {
|
|
33
33
|
const objAsRecord = obj;
|
|
34
|
-
if (omitObject(objAsRecord[k])) {
|
|
34
|
+
if (omitObject(objAsRecord[k]) || (omit === null || omit === void 0 ? void 0 : omit.includes(k))) {
|
|
35
35
|
return [];
|
|
36
36
|
}
|
|
37
37
|
try {
|
|
@@ -47,4 +47,4 @@ function parseUnknown(p, label, obj) {
|
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
49
|
exports.parseUnknown = parseUnknown;
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VVbmtub3duLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3BhcnNlVW5rbm93bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxQ0FBa0Y7QUFFbEYsU0FBUyxVQUFVLENBQUMsQ0FBVTtJQUM1QixPQUFPLE9BQU8sQ0FBQyxLQUFLLFVBQVUsQ0FBQztBQUNqQyxDQUFDO0FBRUQsU0FBUyxnQkFBZ0IsQ0FBQyxHQUFZO0lBQ3BDLE1BQU0sSUFBSSxHQUFhLEVBQUUsQ0FBQztJQUMxQixJQUFJLEtBQUssR0FBRyxHQUFHLENBQUM7SUFDaEIsT0FBTyxLQUFLLElBQUksS0FBSyxLQUFLLE1BQU0sQ0FBQyxTQUFTLEVBQUU7UUFDMUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ2hELEtBQUssR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ3RDO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQsU0FBZ0IsWUFBWSxDQUMxQixDQUFTLEVBQ1QsS0FBc0IsRUFDdEIsR0FBWSxFQUNaLEVBQUUsSUFBSSxHQUFHLEVBQUUsS0FBMEIsRUFBRTtJQUV2QyxJQUFJLElBQUEsMEJBQWlCLEVBQUMsR0FBRyxDQUFDLEVBQUU7UUFDMUIsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUU7WUFDM0IsR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDM0I7UUFDRCxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQXNCLENBQUMsQ0FBQztLQUM5QztJQUVELElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLEdBQUcsS0FBSyxJQUFJLEVBQUU7UUFDM0MsTUFBTSxJQUFJLEtBQUssQ0FBQyx3QkFBd0IsT0FBTyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0tBQ3ZEO0lBRUQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQ3RCLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDWCxLQUFLLEVBQ0wsV0FBVyxHQUFHLENBQUMsTUFBTSxFQUFFLEVBQ3ZCLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FDdkUsQ0FBQztLQUNIO0lBRUQsTUFBTSxPQUFPLEdBQUcsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEMsSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtRQUN0QixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQ1gsS0FBSyxFQUNMLFNBQVMsRUFDVCxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDcEIsTUFBTSxXQUFXLEdBQUcsR0FBOEIsQ0FBQztZQUNuRCxJQUFJLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSSxJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFBLEVBQUU7Z0JBQ25ELE9BQU8sRUFBRSxDQUFDO2FBQ1g7WUFDRCxJQUFJO2dCQUNGLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzdDO1lBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ1YsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQzthQUM1QztRQUNILENBQUMsQ0FBQyxDQUNILENBQUM7S0FDSDtTQUFNO1FBQ0wsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztLQUM1QjtBQUNILENBQUM7QUE3Q0Qsb0NBNkNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNQYXJzZXJOb2RlVmFsdWUsIFBhcnNlciwgUGFyc2VyTm9kZSwgUGFyc2VyTm9kZVZhbHVlIH0gZnJvbSAnLi9QYXJzZXInO1xuXG5mdW5jdGlvbiBvbWl0T2JqZWN0KHY6IHVua25vd24pOiBib29sZWFuIHtcbiAgcmV0dXJuIHR5cGVvZiB2ID09PSAnZnVuY3Rpb24nO1xufVxuXG5mdW5jdGlvbiBnZXRQcm90b3R5cGVLZXlzKG9iajogdW5rbm93bik6IHN0cmluZ1tdIHtcbiAgY29uc3Qga2V5czogc3RyaW5nW10gPSBbXTtcbiAgbGV0IHByb3RvID0gb2JqO1xuICB3aGlsZSAocHJvdG8gJiYgcHJvdG8gIT09IE9iamVjdC5wcm90b3R5cGUpIHtcbiAgICBrZXlzLnB1c2goLi4uT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMocHJvdG8pKTtcbiAgICBwcm90byA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihwcm90byk7XG4gIH1cbiAgcmV0dXJuIGtleXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVVua25vd24oXG4gIHA6IFBhcnNlcixcbiAgbGFiZWw6IHN0cmluZyB8IG51bWJlcixcbiAgb2JqOiB1bmtub3duLFxuICB7IG9taXQgPSBbXSB9OiB7IG9taXQ/OiBzdHJpbmdbXSB9ID0ge31cbik6IFBhcnNlck5vZGUge1xuICBpZiAoaXNQYXJzZXJOb2RlVmFsdWUob2JqKSkge1xuICAgIGlmICh0eXBlb2Ygb2JqID09PSAnc3RyaW5nJykge1xuICAgICAgb2JqID0gSlNPTi5zdHJpbmdpZnkob2JqKTtcbiAgICB9XG4gICAgcmV0dXJuIHAubm9kZShsYWJlbCwgb2JqIGFzIFBhcnNlck5vZGVWYWx1ZSk7XG4gIH1cblxuICBpZiAodHlwZW9mIG9iaiAhPT0gJ29iamVjdCcgfHwgb2JqID09PSBudWxsKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBleHBlY3RlZCBvYmplY3QsIGdvdCAke3R5cGVvZiBvYmp9YCk7XG4gIH1cblxuICBpZiAoQXJyYXkuaXNBcnJheShvYmopKSB7XG4gICAgcmV0dXJuIHAubm9kZShcbiAgICAgIGxhYmVsLFxuICAgICAgYGxlbmd0aDogJHtvYmoubGVuZ3RofWAsXG4gICAgICBvYmouZmlsdGVyKCh2KSA9PiAhb21pdE9iamVjdCh2KSkubWFwKCh2LCBpKSA9PiBwYXJzZVVua25vd24ocCwgaSwgdikpXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IGFsbEtleXMgPSBnZXRQcm90b3R5cGVLZXlzKG9iaik7XG4gIGlmIChhbGxLZXlzLmxlbmd0aCA+IDApIHtcbiAgICByZXR1cm4gcC5ub2RlKFxuICAgICAgbGFiZWwsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICBhbGxLZXlzLmZsYXRNYXAoKGspID0+IHtcbiAgICAgICAgY29uc3Qgb2JqQXNSZWNvcmQgPSBvYmogYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAgICAgIGlmIChvbWl0T2JqZWN0KG9iakFzUmVjb3JkW2tdKSB8fCBvbWl0Py5pbmNsdWRlcyhrKSkge1xuICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiBbcGFyc2VVbmtub3duKHAsIGssIG9iakFzUmVjb3JkW2tdKV07XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICByZXR1cm4gW3Aubm9kZShrLCBgRXJyb3I6ICR7ZS5tZXNzYWdlfX1gKV07XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gcC5ub2RlKGxhYmVsLCAne30nKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bip32.d.ts","sourceRoot":"","sources":["../../test/bip32.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const fixtures_1 = require("./fixtures");
|
|
4
|
+
const bip32_1 = require("../src/bip32");
|
|
5
|
+
const assert = require("assert");
|
|
6
|
+
const bip32_util_1 = require("./bip32.util");
|
|
7
|
+
function runTest(xpub, args) {
|
|
8
|
+
describe('parse xpub', function () {
|
|
9
|
+
it('parses xpub', async function () {
|
|
10
|
+
const formatted = (0, fixtures_1.formatTreeNoColor)((0, bip32_1.parseXpub)(xpub, args), { showAll: true });
|
|
11
|
+
const filename = [xpub];
|
|
12
|
+
if (args.derive) {
|
|
13
|
+
filename.push(args.derive.replace(/\//g, '_'));
|
|
14
|
+
}
|
|
15
|
+
assert.strictEqual(await (0, fixtures_1.getFixtureString)(`test/fixtures/xpub/${filename.join('_')}.txt`, formatted), formatted);
|
|
16
|
+
});
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
runTest((0, bip32_util_1.getKey)('parseXpub').neutered().toBase58(), {});
|
|
20
|
+
runTest((0, bip32_util_1.getKey)('parseXpub').neutered().toBase58(), { derive: 'm/0/0' });
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmlwMzIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90ZXN0L2JpcDMyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEseUNBQWlFO0FBQ2pFLHdDQUF5QztBQUN6QyxpQ0FBaUM7QUFDakMsNkNBQXNDO0FBRXRDLFNBQVMsT0FBTyxDQUFDLElBQVksRUFBRSxJQUF5QjtJQUN0RCxRQUFRLENBQUMsWUFBWSxFQUFFO1FBQ3JCLEVBQUUsQ0FBQyxhQUFhLEVBQUUsS0FBSztZQUNyQixNQUFNLFNBQVMsR0FBRyxJQUFBLDRCQUFpQixFQUFDLElBQUEsaUJBQVMsRUFBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUM5RSxNQUFNLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3hCLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDZixRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO2FBQ2hEO1lBQ0QsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLElBQUEsMkJBQWdCLEVBQUMsc0JBQXNCLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNuSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELE9BQU8sQ0FBQyxJQUFBLG1CQUFNLEVBQUMsV0FBVyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDdkQsT0FBTyxDQUFDLElBQUEsbUJBQU0sRUFBQyxXQUFXLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZm9ybWF0VHJlZU5vQ29sb3IsIGdldEZpeHR1cmVTdHJpbmcgfSBmcm9tICcuL2ZpeHR1cmVzJztcbmltcG9ydCB7IHBhcnNlWHB1YiB9IGZyb20gJy4uL3NyYy9iaXAzMic7XG5pbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCB7IGdldEtleSB9IGZyb20gJy4vYmlwMzIudXRpbCc7XG5cbmZ1bmN0aW9uIHJ1blRlc3QoeHB1Yjogc3RyaW5nLCBhcmdzOiB7IGRlcml2ZT86IHN0cmluZyB9KSB7XG4gIGRlc2NyaWJlKCdwYXJzZSB4cHViJywgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdwYXJzZXMgeHB1YicsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGZvcm1hdHRlZCA9IGZvcm1hdFRyZWVOb0NvbG9yKHBhcnNlWHB1Yih4cHViLCBhcmdzKSwgeyBzaG93QWxsOiB0cnVlIH0pO1xuICAgICAgY29uc3QgZmlsZW5hbWUgPSBbeHB1Yl07XG4gICAgICBpZiAoYXJncy5kZXJpdmUpIHtcbiAgICAgICAgZmlsZW5hbWUucHVzaChhcmdzLmRlcml2ZS5yZXBsYWNlKC9cXC8vZywgJ18nKSk7XG4gICAgICB9XG4gICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYXdhaXQgZ2V0Rml4dHVyZVN0cmluZyhgdGVzdC9maXh0dXJlcy94cHViLyR7ZmlsZW5hbWUuam9pbignXycpfS50eHRgLCBmb3JtYXR0ZWQpLCBmb3JtYXR0ZWQpO1xuICAgIH0pO1xuICB9KTtcbn1cblxucnVuVGVzdChnZXRLZXkoJ3BhcnNlWHB1YicpLm5ldXRlcmVkKCkudG9CYXNlNTgoKSwge30pO1xucnVuVGVzdChnZXRLZXkoJ3BhcnNlWHB1YicpLm5ldXRlcmVkKCkudG9CYXNlNTgoKSwgeyBkZXJpdmU6ICdtLzAvMCcgfSk7XG4iXX0=
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { BIP32Interface } from 'bip32';
|
|
2
|
+
export declare type Triple<T> = [T, T, T];
|
|
3
|
+
export declare type KeyTriple = Triple<BIP32Interface>;
|
|
4
|
+
export declare function getKey(seed: string): BIP32Interface;
|
|
5
|
+
export declare function getKeyTriple(seed: string): KeyTriple;
|
|
6
|
+
//# sourceMappingURL=bip32.util.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bip32.util.d.ts","sourceRoot":"","sources":["../../test/bip32.util.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAEvC,oBAAY,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAElC,oBAAY,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AAC/C,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAEnD;AACD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAEpD"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getKeyTriple = exports.getKey = void 0;
|
|
4
|
+
const utxolib = require("@bitgo-beta/utxo-lib");
|
|
5
|
+
const crypto = require("crypto");
|
|
6
|
+
function getKey(seed) {
|
|
7
|
+
return utxolib.bip32.fromSeed(crypto.createHash('sha256').update(seed).digest());
|
|
8
|
+
}
|
|
9
|
+
exports.getKey = getKey;
|
|
10
|
+
function getKeyTriple(seed) {
|
|
11
|
+
return [getKey(seed + '.0'), getKey(seed + '.1'), getKey(seed + '.2')];
|
|
12
|
+
}
|
|
13
|
+
exports.getKeyTriple = getKeyTriple;
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmlwMzIudXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3Rlc3QvYmlwMzIudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxnREFBZ0Q7QUFDaEQsaUNBQWlDO0FBTWpDLFNBQWdCLE1BQU0sQ0FBQyxJQUFZO0lBQ2pDLE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztBQUNuRixDQUFDO0FBRkQsd0JBRUM7QUFDRCxTQUFnQixZQUFZLENBQUMsSUFBWTtJQUN2QyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsRUFBRSxNQUFNLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxFQUFFLE1BQU0sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUN6RSxDQUFDO0FBRkQsb0NBRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCAqIGFzIGNyeXB0byBmcm9tICdjcnlwdG8nO1xuaW1wb3J0IHsgQklQMzJJbnRlcmZhY2UgfSBmcm9tICdiaXAzMic7XG5cbmV4cG9ydCB0eXBlIFRyaXBsZTxUPiA9IFtULCBULCBUXTtcblxuZXhwb3J0IHR5cGUgS2V5VHJpcGxlID0gVHJpcGxlPEJJUDMySW50ZXJmYWNlPjtcbmV4cG9ydCBmdW5jdGlvbiBnZXRLZXkoc2VlZDogc3RyaW5nKTogQklQMzJJbnRlcmZhY2Uge1xuICByZXR1cm4gdXR4b2xpYi5iaXAzMi5mcm9tU2VlZChjcnlwdG8uY3JlYXRlSGFzaCgnc2hhMjU2JykudXBkYXRlKHNlZWQpLmRpZ2VzdCgpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRLZXlUcmlwbGUoc2VlZDogc3RyaW5nKTogS2V5VHJpcGxlIHtcbiAgcmV0dXJuIFtnZXRLZXkoc2VlZCArICcuMCcpLCBnZXRLZXkoc2VlZCArICcuMScpLCBnZXRLZXkoc2VlZCArICcuMicpXTtcbn1cbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../test/fixtures.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAGhD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,CAE1F;AAED,oBAAY,aAAa,GACrB;IACE,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IACnD,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;CACzC,GACD;IACE,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;IACpC,WAAW,EAAE,SAAS,CAAC;CACxB,CAAC;AAEN,aAAK,aAAa,GAAG;IACnB,WAAW,EAAE,cAAc,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,mBAAmB,CAAC;IACxF,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,cAAc,CAAC;IACvD,SAAS,CAAC,EAAE,SAAS,GAAG,YAAY,CAAC;CACtC,CAAC;AAIF,wBAAsB,OAAO,CAC3B,OAAO,EAAE,OAAO,CAAC,OAAO,EACxB,MAAM,EAAE,aAAa,EACrB,EAAE,YAAY,EAAE,GAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAA;CAAO,GAC/C,OAAO,CAAC,aAAa,CAAC,CAmCxB;AAED,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,OAAO,CAAC,OAAO,EACxB,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../test/fixtures.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAGhD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,CAE1F;AAED,oBAAY,aAAa,GACrB;IACE,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IACnD,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;CACzC,GACD;IACE,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;IACpC,WAAW,EAAE,SAAS,CAAC;CACxB,CAAC;AAEN,aAAK,aAAa,GAAG;IACnB,WAAW,EAAE,cAAc,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,mBAAmB,CAAC;IACxF,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,cAAc,CAAC;IACvD,SAAS,CAAC,EAAE,SAAS,GAAG,YAAY,CAAC;CACtC,CAAC;AAIF,wBAAsB,OAAO,CAC3B,OAAO,EAAE,OAAO,CAAC,OAAO,EACxB,MAAM,EAAE,aAAa,EACrB,EAAE,YAAY,EAAE,GAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAA;CAAO,GAC/C,OAAO,CAAC,aAAa,CAAC,CAmCxB;AAED,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,OAAO,CAAC,OAAO,EACxB,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,aAAa,CAAC,CA4CxB;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAU1F"}
|
package/dist/test/fixtures.js
CHANGED
|
@@ -6,7 +6,7 @@ const chalk_1 = require("chalk");
|
|
|
6
6
|
const utxolib = require("@bitgo-beta/utxo-lib");
|
|
7
7
|
const format_1 = require("../src/format");
|
|
8
8
|
function formatTreeNoColor(n, { showAll }) {
|
|
9
|
-
return format_1.formatTree(n, { hide: showAll ? [] : undefined, chalk: new chalk_1.Instance({ level: 0 }) });
|
|
9
|
+
return (0, format_1.formatTree)(n, { hide: showAll ? [] : undefined, chalk: new chalk_1.Instance({ level: 0 }) });
|
|
10
10
|
}
|
|
11
11
|
exports.formatTreeNoColor = formatTreeNoColor;
|
|
12
12
|
const walletKeys = utxolib.testutil.getDefaultWalletKeys();
|
|
@@ -52,8 +52,15 @@ async function getTransactionWithSpendType(network, params) {
|
|
|
52
52
|
if (params.fixtureType !== 'networkFullSigned') {
|
|
53
53
|
return await getPsbt(network, params);
|
|
54
54
|
}
|
|
55
|
-
if (params.scriptType === 'p2trMusig2'
|
|
56
|
-
|
|
55
|
+
if (params.scriptType === 'p2trMusig2') {
|
|
56
|
+
if (!params.spendType) {
|
|
57
|
+
throw new Error('p2trMusig2 requires params');
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
if (params.spendType) {
|
|
62
|
+
throw new Error('only p2trMusig2 requires spendType');
|
|
63
|
+
}
|
|
57
64
|
}
|
|
58
65
|
const filename = `spend_${params.scriptType}${params.spendType ? `${params.spendType}` : ''}.json`;
|
|
59
66
|
const f = await JSON.parse(await fs_1.promises.readFile(`../utxo-lib/test/integration_local_rpc/fixtures/${utxolib.getNetworkName(network)}/v1/${filename}`, 'utf8'));
|
|
@@ -85,4 +92,4 @@ async function getFixtureString(path, defaultValue) {
|
|
|
85
92
|
}
|
|
86
93
|
}
|
|
87
94
|
exports.getFixtureString = getFixtureString;
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90ZXN0L2ZpeHR1cmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJCQUFvQztBQUVwQyxpQ0FBaUM7QUFDakMsZ0RBQWdEO0FBRWhELDBDQUEyQztBQUczQyxTQUFnQixpQkFBaUIsQ0FBQyxDQUFhLEVBQUUsRUFBRSxPQUFPLEVBQXdCO0lBQ2hGLE9BQU8sbUJBQVUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsSUFBSSxnQkFBUSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQzlGLENBQUM7QUFGRCw4Q0FFQztBQWtCRCxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLG9CQUFvQixFQUFFLENBQUM7QUFFcEQsS0FBSyxVQUFVLE9BQU8sQ0FDM0IsT0FBd0IsRUFDeEIsTUFBcUIsRUFDckIsRUFBRSxZQUFZLEtBQWdDLEVBQUU7SUFFaEQsTUFBTSxNQUFNLEdBQTZCO1FBQ3ZDLEVBQUUsVUFBVSxFQUFFLE1BQU0sQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQU0sQ0FBQyxFQUFFO0tBQ2xILENBQUM7SUFDRixNQUFNLE9BQU8sR0FBRyxDQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sQ0FBQyxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxJQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDMUUsSUFBSSxLQUFLLEdBQVcsTUFBTSxDQUFDLFdBQVcsQ0FBQztJQUN2QyxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDNUIsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0tBQ2xEO0lBQ0QsSUFBSSxLQUFLLEtBQUssVUFBVSxJQUFJLEtBQUssS0FBSyxZQUFZLElBQUksS0FBSyxLQUFLLFlBQVksRUFBRTtRQUM1RSxNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixLQUFLLEVBQUUsQ0FBQyxDQUFDO0tBQzNDO0lBQ0QsSUFBSSxNQUFNLENBQUMsU0FBUyxLQUFLLFNBQVMsSUFBSSxZQUFZLEtBQUssU0FBUyxFQUFFO1FBQ2hFLDBGQUEwRjtRQUMxRiwyRUFBMkU7UUFDM0UsTUFBTSxRQUFRLEdBQUcsc0JBQXNCLE1BQU0sQ0FBQyxVQUFVLElBQUksTUFBTSxDQUFDLFNBQVMsSUFBSSxLQUFLLE9BQU8sQ0FBQztRQUM3RixJQUFJO1lBQ0YsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLGFBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDaEUsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDdEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLENBQUM7U0FDaEQ7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUU7Z0JBQ3ZCLE9BQU8sTUFBTSxPQUFPLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO2FBQ25FO1lBQ0QsTUFBTSxDQUFDLENBQUM7U0FDVDtLQUNGO0lBQ0QsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2hHLElBQUksWUFBWSxFQUFFO1FBQ2hCLE1BQU0sYUFBRSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztLQUMvRTtJQUNELE9BQU87UUFDTCxXQUFXO1FBQ1gsV0FBVyxFQUFFLFNBQVM7S0FDdkIsQ0FBQztBQUNKLENBQUM7QUF2Q0QsMEJBdUNDO0FBRU0sS0FBSyxVQUFVLDJCQUEyQixDQUMvQyxPQUF3QixFQUN4QixNQUFxQjtJQUVyQixJQUFJLE1BQU0sQ0FBQyxXQUFXLEtBQUssbUJBQW1CLEVBQUU7UUFDOUMsT0FBTyxNQUFNLE9BQU8sQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7S0FDdkM7SUFFRCxJQUFJLE1BQU0sQ0FBQyxVQUFVLEtBQUssWUFBWSxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRTtRQUMzRCxNQUFNLElBQUksS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUM7S0FDL0M7SUFFRCxNQUFNLFFBQVEsR0FBRyxTQUFTLE1BQU0sQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDO0lBTW5HLE1BQU0sQ0FBQyxHQUFZLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FDakMsTUFBTSxhQUFFLENBQUMsUUFBUSxDQUNmLG1EQUFtRCxPQUFPLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxPQUFPLFFBQVEsRUFBRSxFQUNuRyxNQUFNLENBQ1AsQ0FDRixDQUFDO0lBRUYsU0FBUyxVQUFVLENBQUMsQ0FBa0I7UUFDcEMsS0FBSyxNQUFNLENBQUMsSUFBSSxRQUFRLEVBQUU7WUFDeEIsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUU7Z0JBQ25ELE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDeEI7U0FDRjtRQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLE9BQU8sQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDekcsQ0FBQztJQUVELE1BQU0sUUFBUSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDbEMsT0FBTyxDQUFDLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQ3hHLENBQUM7SUFDRixNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLDJCQUEyQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFO1FBQ25HLFVBQVUsRUFBRSxRQUFRO0tBQ3JCLENBQUMsQ0FBQztJQUNILE9BQU8sRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztBQUM1RSxDQUFDO0FBekNELGtFQXlDQztBQUVNLEtBQUssVUFBVSxnQkFBZ0IsQ0FBQyxJQUFZLEVBQUUsWUFBb0I7SUFDdkUsSUFBSTtRQUNGLE9BQU8sTUFBTSxhQUFFLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztLQUN4QztJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsSUFBSyxDQUFTLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRTtZQUNoQyxNQUFNLGFBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRSxNQUFNLENBQUMsQ0FBQztZQUMvQyxNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixJQUFJLEVBQUUsQ0FBQyxDQUFDO1NBQ3BEO1FBQ0QsTUFBTSxDQUFDLENBQUM7S0FDVDtBQUNILENBQUM7QUFWRCw0Q0FVQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHByb21pc2VzIGFzIGZzIH0gZnJvbSAnZnMnO1xuXG5pbXBvcnQgeyBJbnN0YW5jZSB9IGZyb20gJ2NoYWxrJztcbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuXG5pbXBvcnQgeyBmb3JtYXRUcmVlIH0gZnJvbSAnLi4vc3JjL2Zvcm1hdCc7XG5pbXBvcnQgeyBQYXJzZXJOb2RlIH0gZnJvbSAnLi4vc3JjL1BhcnNlcic7XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRUcmVlTm9Db2xvcihuOiBQYXJzZXJOb2RlLCB7IHNob3dBbGwgfTogeyBzaG93QWxsOiBib29sZWFuIH0pOiBzdHJpbmcge1xuICByZXR1cm4gZm9ybWF0VHJlZShuLCB7IGhpZGU6IHNob3dBbGwgPyBbXSA6IHVuZGVmaW5lZCwgY2hhbGs6IG5ldyBJbnN0YW5jZSh7IGxldmVsOiAwIH0pIH0pO1xufVxuXG5leHBvcnQgdHlwZSBQYXJzZWRGaXh0dXJlID1cbiAgfCB7XG4gICAgICB0cmFuc2FjdGlvbjogdXR4b2xpYi5iaXRnby5VdHhvVHJhbnNhY3Rpb248YmlnaW50PjtcbiAgICAgIHByZXZPdXRwdXRzOiB1dHhvbGliLlR4T3V0cHV0PGJpZ2ludD5bXTtcbiAgICB9XG4gIHwge1xuICAgICAgdHJhbnNhY3Rpb246IHV0eG9saWIuYml0Z28uVXR4b1BzYnQ7XG4gICAgICBwcmV2T3V0cHV0czogdW5kZWZpbmVkO1xuICAgIH07XG5cbnR5cGUgRml4dHVyZVBhcmFtcyA9IHtcbiAgZml4dHVyZVR5cGU6ICdwc2J0VW5zaWduZWQnIHwgJ3BzYnRIYWxmU2lnbmVkJyB8ICdwc2J0RnVsbFNpZ25lZCcgfCAnbmV0d29ya0Z1bGxTaWduZWQnO1xuICBzY3JpcHRUeXBlOiB1dHhvbGliLmJpdGdvLm91dHB1dFNjcmlwdHMuU2NyaXB0VHlwZTJPZjM7XG4gIHNwZW5kVHlwZT86ICdrZXlQYXRoJyB8ICdzY3JpcHRQYXRoJztcbn07XG5cbmNvbnN0IHdhbGxldEtleXMgPSB1dHhvbGliLnRlc3R1dGlsLmdldERlZmF1bHRXYWxsZXRLZXlzKCk7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRQc2J0KFxuICBuZXR3b3JrOiB1dHhvbGliLk5ldHdvcmssXG4gIHBhcmFtczogRml4dHVyZVBhcmFtcyxcbiAgeyB3cml0ZUZpeHR1cmUgfTogeyB3cml0ZUZpeHR1cmU/OiBzdHJpbmcgfSA9IHt9XG4pOiBQcm9taXNlPFBhcnNlZEZpeHR1cmU+IHtcbiAgY29uc3QgaW5wdXRzOiB1dHhvbGliLnRlc3R1dGlsLklucHV0W10gPSBbXG4gICAgeyBzY3JpcHRUeXBlOiBwYXJhbXMuc3BlbmRUeXBlID09PSAna2V5UGF0aCcgPyAndGFwcm9vdEtleVBhdGhTcGVuZCcgOiBwYXJhbXMuc2NyaXB0VHlwZSwgdmFsdWU6IEJpZ0ludCgxMF8wMDApIH0sXG4gIF07XG4gIGNvbnN0IG91dHB1dHMgPSBbeyBzY3JpcHRUeXBlOiBwYXJhbXMuc2NyaXB0VHlwZSwgdmFsdWU6IEJpZ0ludCg5XzAwMCkgfV07XG4gIGxldCBzdGFnZTogc3RyaW5nID0gcGFyYW1zLmZpeHR1cmVUeXBlO1xuICBpZiAoc3RhZ2Uuc3RhcnRzV2l0aCgncHNidCcpKSB7XG4gICAgc3RhZ2UgPSBzdGFnZS5zbGljZSgncHNidCcubGVuZ3RoKS50b0xvd2VyQ2FzZSgpO1xuICB9XG4gIGlmIChzdGFnZSAhPT0gJ3Vuc2lnbmVkJyAmJiBzdGFnZSAhPT0gJ2hhbGZzaWduZWQnICYmIHN0YWdlICE9PSAnZnVsbHNpZ25lZCcpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgc3RhZ2UgJHtzdGFnZX1gKTtcbiAgfVxuICBpZiAocGFyYW1zLnNwZW5kVHlwZSA9PT0gJ2tleVBhdGgnICYmIHdyaXRlRml4dHVyZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgLy8gYmVjYXVzZSB3ZSBjdXJyZW50bHkgY2Fubm90IGNyZWF0ZSBkZXRlcm1pbmlzdGljIHNpZ25hdHVyZXMgZm9yIHRhcHJvb3RLZXlQYXRoU3BlbmQsIHdlXG4gICAgLy8gc3RvcmUgYSBjb3B5IGluIGZpeHR1cmVzL3BzYnQgYW5kIHVzZSB0aGF0IGluc3RlYWQgb2YgY3JlYXRpbmcgYSBuZXcgb25lXG4gICAgY29uc3QgZmlsZW5hbWUgPSBgdGVzdC9maXh0dXJlcy9wc2J0LyR7cGFyYW1zLnNjcmlwdFR5cGV9LiR7cGFyYW1zLnNwZW5kVHlwZX0uJHtzdGFnZX0uanNvbmA7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHBzYnRIZXggPSBKU09OLnBhcnNlKGF3YWl0IGZzLnJlYWRGaWxlKGZpbGVuYW1lLCAndXRmOCcpKTtcbiAgICAgIGNvbnN0IHRyYW5zYWN0aW9uID0gdXR4b2xpYi5iaXRnby5jcmVhdGVQc2J0RnJvbUhleChwc2J0SGV4LCBuZXR3b3JrKTtcbiAgICAgIHJldHVybiB7IHRyYW5zYWN0aW9uLCBwcmV2T3V0cHV0czogdW5kZWZpbmVkIH07XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaWYgKGUuY29kZSA9PT0gJ0VOT0VOVCcpIHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IGdldFBzYnQobmV0d29yaywgcGFyYW1zLCB7IHdyaXRlRml4dHVyZTogZmlsZW5hbWUgfSk7XG4gICAgICB9XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgfVxuICBjb25zdCB0cmFuc2FjdGlvbiA9IHV0eG9saWIudGVzdHV0aWwuY29uc3RydWN0UHNidChpbnB1dHMsIG91dHB1dHMsIG5ldHdvcmssIHdhbGxldEtleXMsIHN0YWdlKTtcbiAgaWYgKHdyaXRlRml4dHVyZSkge1xuICAgIGF3YWl0IGZzLndyaXRlRmlsZSh3cml0ZUZpeHR1cmUsIEpTT04uc3RyaW5naWZ5KHRyYW5zYWN0aW9uLnRvSGV4KCkpLCAndXRmOCcpO1xuICB9XG4gIHJldHVybiB7XG4gICAgdHJhbnNhY3Rpb24sXG4gICAgcHJldk91dHB1dHM6IHVuZGVmaW5lZCxcbiAgfTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFRyYW5zYWN0aW9uV2l0aFNwZW5kVHlwZShcbiAgbmV0d29yazogdXR4b2xpYi5OZXR3b3JrLFxuICBwYXJhbXM6IEZpeHR1cmVQYXJhbXNcbik6IFByb21pc2U8UGFyc2VkRml4dHVyZT4ge1xuICBpZiAocGFyYW1zLmZpeHR1cmVUeXBlICE9PSAnbmV0d29ya0Z1bGxTaWduZWQnKSB7XG4gICAgcmV0dXJuIGF3YWl0IGdldFBzYnQobmV0d29yaywgcGFyYW1zKTtcbiAgfVxuXG4gIGlmIChwYXJhbXMuc2NyaXB0VHlwZSA9PT0gJ3AydHJNdXNpZzInICYmICFwYXJhbXMuc3BlbmRUeXBlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdwMnRyTXVzaWcyIHJlcXVpcmVzIHBhcmFtcycpO1xuICB9XG5cbiAgY29uc3QgZmlsZW5hbWUgPSBgc3BlbmRfJHtwYXJhbXMuc2NyaXB0VHlwZX0ke3BhcmFtcy5zcGVuZFR5cGUgPyBgJHtwYXJhbXMuc3BlbmRUeXBlfWAgOiAnJ30uanNvbmA7XG4gIHR5cGUgRml4dHVyZSA9IHtcbiAgICB0cmFuc2FjdGlvbjogeyBoZXg6IHN0cmluZyB9O1xuICAgIGlucHV0czogeyBoZXg6IHN0cmluZyB9W107XG4gIH07XG5cbiAgY29uc3QgZjogRml4dHVyZSA9IGF3YWl0IEpTT04ucGFyc2UoXG4gICAgYXdhaXQgZnMucmVhZEZpbGUoXG4gICAgICBgLi4vdXR4by1saWIvdGVzdC9pbnRlZ3JhdGlvbl9sb2NhbF9ycGMvZml4dHVyZXMvJHt1dHhvbGliLmdldE5ldHdvcmtOYW1lKG5ldHdvcmspfS92MS8ke2ZpbGVuYW1lfWAsXG4gICAgICAndXRmOCdcbiAgICApXG4gICk7XG5cbiAgZnVuY3Rpb24gZ2V0UHJldk91dChpOiB1dHhvbGliLlR4SW5wdXQpOiB1dHhvbGliLlR4T3V0cHV0PGJpZ2ludD4ge1xuICAgIGZvciAoY29uc3QgdCBvZiBpbnB1dFR4cykge1xuICAgICAgaWYgKHQuZ2V0SGFzaCgpLmVxdWFscyhpLmhhc2gpICYmIGkuaW5kZXggaW4gdC5vdXRzKSB7XG4gICAgICAgIHJldHVybiB0Lm91dHNbaS5pbmRleF07XG4gICAgICB9XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcihgbWlzc2luZyBpbnB1dCAke3V0eG9saWIuYml0Z28uZm9ybWF0T3V0cHV0SWQodXR4b2xpYi5iaXRnby5nZXRPdXRwdXRJZEZvcklucHV0KGkpKX1gKTtcbiAgfVxuXG4gIGNvbnN0IGlucHV0VHhzID0gZi5pbnB1dHMubWFwKChpKSA9PlxuICAgIHV0eG9saWIuYml0Z28uY3JlYXRlVHJhbnNhY3Rpb25Gcm9tQnVmZmVyKEJ1ZmZlci5mcm9tKGkuaGV4LCAnaGV4JyksIG5ldHdvcmssIHsgYW1vdW50VHlwZTogJ2JpZ2ludCcgfSlcbiAgKTtcbiAgY29uc3QgdHggPSB1dHhvbGliLmJpdGdvLmNyZWF0ZVRyYW5zYWN0aW9uRnJvbUJ1ZmZlcihCdWZmZXIuZnJvbShmLnRyYW5zYWN0aW9uLmhleCwgJ2hleCcpLCBuZXR3b3JrLCB7XG4gICAgYW1vdW50VHlwZTogJ2JpZ2ludCcsXG4gIH0pO1xuICByZXR1cm4geyB0cmFuc2FjdGlvbjogdHgsIHByZXZPdXRwdXRzOiB0eC5pbnMubWFwKChpKSA9PiBnZXRQcmV2T3V0KGkpKSB9O1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0Rml4dHVyZVN0cmluZyhwYXRoOiBzdHJpbmcsIGRlZmF1bHRWYWx1ZTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gYXdhaXQgZnMucmVhZEZpbGUocGF0aCwgJ3V0ZjgnKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGlmICgoZSBhcyBhbnkpLmNvZGUgPT09ICdFTk9FTlQnKSB7XG4gICAgICBhd2FpdCBmcy53cml0ZUZpbGUocGF0aCwgZGVmYXVsdFZhbHVlLCAndXRmOCcpO1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGB3cm90ZSBkZWZhdWx0IHZhbHVlIGZvciAke3BhdGh9YCk7XG4gICAgfVxuICAgIHRocm93IGU7XG4gIH1cbn1cbiJdfQ==
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90ZXN0L2ZpeHR1cmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJCQUFvQztBQUVwQyxpQ0FBaUM7QUFDakMsZ0RBQWdEO0FBRWhELDBDQUEyQztBQUczQyxTQUFnQixpQkFBaUIsQ0FBQyxDQUFhLEVBQUUsRUFBRSxPQUFPLEVBQXdCO0lBQ2hGLE9BQU8sSUFBQSxtQkFBVSxFQUFDLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxJQUFJLGdCQUFRLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDOUYsQ0FBQztBQUZELDhDQUVDO0FBa0JELE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztBQUVwRCxLQUFLLFVBQVUsT0FBTyxDQUMzQixPQUF3QixFQUN4QixNQUFxQixFQUNyQixFQUFFLFlBQVksS0FBZ0MsRUFBRTtJQUVoRCxNQUFNLE1BQU0sR0FBNkI7UUFDdkMsRUFBRSxVQUFVLEVBQUUsTUFBTSxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBTSxDQUFDLEVBQUU7S0FDbEgsQ0FBQztJQUNGLE1BQU0sT0FBTyxHQUFHLENBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxDQUFDLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLElBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMxRSxJQUFJLEtBQUssR0FBVyxNQUFNLENBQUMsV0FBVyxDQUFDO0lBQ3ZDLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFB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QVksRUFBRSxZQUFvQjtJQUN2RSxJQUFJO1FBQ0YsT0FBTyxNQUFNLGFBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0tBQ3hDO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDVixJQUFLLENBQVMsQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFO1lBQ2hDLE1BQU0sYUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQy9DLE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLElBQUksRUFBRSxDQUFDLENBQUM7U0FDcEQ7UUFDRCxNQUFNLENBQUMsQ0FBQztLQUNUO0FBQ0gsQ0FBQztBQVZELDRDQVVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcHJvbWlzZXMgYXMgZnMgfSBmcm9tICdmcyc7XG5cbmltcG9ydCB7IEluc3RhbmNlIH0gZnJvbSAnY2hhbGsnO1xuaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5cbmltcG9ydCB7IGZvcm1hdFRyZWUgfSBmcm9tICcuLi9zcmMvZm9ybWF0JztcbmltcG9ydCB7IFBhcnNlck5vZGUgfSBmcm9tICcuLi9zcmMvUGFyc2VyJztcblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFRyZWVOb0NvbG9yKG46IFBhcnNlck5vZGUsIHsgc2hvd0FsbCB9OiB7IHNob3dBbGw6IGJvb2xlYW4gfSk6IHN0cmluZyB7XG4gIHJldHVybiBmb3JtYXRUcmVlKG4sIHsgaGlkZTogc2hvd0FsbCA/IFtdIDogdW5kZWZpbmVkLCBjaGFsazogbmV3IEluc3RhbmNlKHsgbGV2ZWw6IDAgfSkgfSk7XG59XG5cbmV4cG9ydCB0eXBlIFBhcnNlZEZpeHR1cmUgPVxuICB8IHtcbiAgICAgIHRyYW5zYWN0aW9uOiB1dHhvbGliLmJpdGdvLlV0eG9UcmFuc2FjdGlvbjxiaWdpbnQ+O1xuICAgICAgcHJldk91dHB1dHM6IHV0eG9saWIuVHhPdXRwdXQ8YmlnaW50PltdO1xuICAgIH1cbiAgfCB7XG4gICAgICB0cmFuc2FjdGlvbjogdXR4b2xpYi5iaXRnby5VdHhvUHNidDtcbiAgICAgIHByZXZPdXRwdXRzOiB1bmRlZmluZWQ7XG4gICAgfTtcblxudHlwZSBGaXh0dXJlUGFyYW1zID0ge1xuICBmaXh0dXJlVHlwZTogJ3BzYnRVbnNpZ25lZCcgfCAncHNidEhhbGZTaWduZWQnIHwgJ3BzYnRGdWxsU2lnbmVkJyB8ICduZXR3b3JrRnVsbFNpZ25lZCc7XG4gIHNjcmlwdFR5cGU6IHV0eG9saWIuYml0Z28ub3V0cHV0U2NyaXB0cy5TY3JpcHRUeXBlMk9mMztcbiAgc3BlbmRUeXBlPzogJ2tleVBhdGgnIHwgJ3NjcmlwdFBhdGgnO1xufTtcblxuY29uc3Qgd2FsbGV0S2V5cyA9IHV0eG9saWIudGVzdHV0aWwuZ2V0RGVmYXVsdFdhbGxldEtleXMoKTtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFBzYnQoXG4gIG5ldHdvcms6IHV0eG9saWIuTmV0d29yayxcbiAgcGFyYW1zOiBGaXh0dXJlUGFyYW1zLFxuICB7IHdyaXRlRml4dHVyZSB9OiB7IHdyaXRlRml4dHVyZT86IHN0cmluZyB9ID0ge31cbik6IFByb21pc2U8UGFyc2VkRml4dHVyZT4ge1xuICBjb25zdCBpbnB1dHM6IHV0eG9saWIudGVzdHV0aWwuSW5wdXRbXSA9IFtcbiAgICB7IHNjcmlwdFR5cGU6IHBhcmFtcy5zcGVuZFR5cGUgPT09ICdrZXlQYXRoJyA/ICd0YXByb290S2V5UGF0aFNwZW5kJyA6IHBhcmFtcy5zY3JpcHRUeXBlLCB2YWx1ZTogQmlnSW50KDEwXzAwMCkgfSxcbiAgXTtcbiAgY29uc3Qgb3V0cHV0cyA9IFt7IHNjcmlwdFR5cGU6IHBhcmFtcy5zY3JpcHRUeXBlLCB2YWx1ZTogQmlnSW50KDlfMDAwKSB9XTtcbiAgbGV0IHN0YWdlOiBzdHJpbmcgPSBwYXJhbXMuZml4dHVyZVR5cGU7XG4gIGlmIChzdGFnZS5zdGFydHNXaXRoKCdwc2J0JykpIHtcbiAgICBzdGFnZSA9IHN0YWdlLnNsaWNlKCdwc2J0Jy5sZW5ndGgpLnRvTG93ZXJDYXNlKCk7XG4gIH1cbiAgaWYgKHN0YWdlICE9PSAndW5zaWduZWQnICYmIHN0YWdlICE9PSAnaGFsZnNpZ25lZCcgJiYgc3RhZ2UgIT09ICdmdWxsc2lnbmVkJykge1xuICAgIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBzdGFnZSAke3N0YWdlfWApO1xuICB9XG4gIGlmIChwYXJhbXMuc3BlbmRUeXBlID09PSAna2V5UGF0aCcgJiYgd3JpdGVGaXh0dXJlID09PSB1bmRlZmluZWQpIHtcbiAgICAvLyBiZWNhdXNlIHdlIGN1cnJlbnRseSBjYW5ub3QgY3JlYXRlIGRldGVybWluaXN0aWMgc2lnbmF0dXJlcyBmb3IgdGFwcm9vdEtleVBhdGhTcGVuZCwgd2VcbiAgICAvLyBzdG9yZSBhIGNvcHkgaW4gZml4dHVyZXMvcHNidCBhbmQgdXNlIHRoYXQgaW5zdGVhZCBvZiBjcmVhdGluZyBhIG5ldyBvbmVcbiAgICBjb25zdCBmaWxlbmFtZSA9IGB0ZXN0L2ZpeHR1cmVzL3BzYnQvJHtwYXJhbXMuc2NyaXB0VHlwZX0uJHtwYXJhbXMuc3BlbmRUeXBlfS4ke3N0YWdlfS5qc29uYDtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcHNidEhleCA9IEpTT04ucGFyc2UoYXdhaXQgZnMucmVhZEZpbGUoZmlsZW5hbWUsICd1dGY4JykpO1xuICAgICAgY29uc3QgdHJhbnNhY3Rpb24gPSB1dHhvbGliLmJpdGdvLmNyZWF0ZVBzYnRGcm9tSGV4KHBzYnRIZXgsIG5ldHdvcmspO1xuICAgICAgcmV0dXJuIHsgdHJhbnNhY3Rpb24sIHByZXZPdXRwdXRzOiB1bmRlZmluZWQgfTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBpZiAoZS5jb2RlID09PSAnRU5PRU5UJykge1xuICAgICAgICByZXR1cm4gYXdhaXQgZ2V0UHNidChuZXR3b3JrLCBwYXJhbXMsIHsgd3JpdGVGaXh0dXJlOiBmaWxlbmFtZSB9KTtcbiAgICAgIH1cbiAgICAgIHRocm93IGU7XG4gICAgfVxuICB9XG4gIGNvbnN0IHRyYW5zYWN0aW9uID0gdXR4b2xpYi50ZXN0dXRpbC5jb25zdHJ1Y3RQc2J0KGlucHV0cywgb3V0cHV0cywgbmV0d29yaywgd2FsbGV0S2V5cywgc3RhZ2UpO1xuICBpZiAod3JpdGVGaXh0dXJlKSB7XG4gICAgYXdhaXQgZnMud3JpdGVGaWxlKHdyaXRlRml4dHVyZSwgSlNPTi5zdHJpbmdpZnkodHJhbnNhY3Rpb24udG9IZXgoKSksICd1dGY4Jyk7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICB0cmFuc2FjdGlvbixcbiAgICBwcmV2T3V0cHV0czogdW5kZWZpbmVkLFxuICB9O1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0VHJhbnNhY3Rpb25XaXRoU3BlbmRUeXBlKFxuICBuZXR3b3JrOiB1dHhvbGliLk5ldHdvcmssXG4gIHBhcmFtczogRml4dHVyZVBhcmFtc1xuKTogUHJvbWlzZTxQYXJzZWRGaXh0dXJlPiB7XG4gIGlmIChwYXJhbXMuZml4dHVyZVR5cGUgIT09ICduZXR3b3JrRnVsbFNpZ25lZCcpIHtcbiAgICByZXR1cm4gYXdhaXQgZ2V0UHNidChuZXR3b3JrLCBwYXJhbXMpO1xuICB9XG5cbiAgaWYgKHBhcmFtcy5zY3JpcHRUeXBlID09PSAncDJ0ck11c2lnMicpIHtcbiAgICBpZiAoIXBhcmFtcy5zcGVuZFR5cGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigncDJ0ck11c2lnMiByZXF1aXJlcyBwYXJhbXMnKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgaWYgKHBhcmFtcy5zcGVuZFR5cGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignb25seSBwMnRyTXVzaWcyIHJlcXVpcmVzIHNwZW5kVHlwZScpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGZpbGVuYW1lID0gYHNwZW5kXyR7cGFyYW1zLnNjcmlwdFR5cGV9JHtwYXJhbXMuc3BlbmRUeXBlID8gYCR7cGFyYW1zLnNwZW5kVHlwZX1gIDogJyd9Lmpzb25gO1xuICB0eXBlIEZpeHR1cmUgPSB7XG4gICAgdHJhbnNhY3Rpb246IHsgaGV4OiBzdHJpbmcgfTtcbiAgICBpbnB1dHM6IHsgaGV4OiBzdHJpbmcgfVtdO1xuICB9O1xuXG4gIGNvbnN0IGY6IEZpeHR1cmUgPSBhd2FpdCBKU09OLnBhcnNlKFxuICAgIGF3YWl0IGZzLnJlYWRGaWxlKFxuICAgICAgYC4uL3V0eG8tbGliL3Rlc3QvaW50ZWdyYXRpb25fbG9jYWxfcnBjL2ZpeHR1cmVzLyR7dXR4b2xpYi5nZXROZXR3b3JrTmFtZShuZXR3b3JrKX0vdjEvJHtmaWxlbmFtZX1gLFxuICAgICAgJ3V0ZjgnXG4gICAgKVxuICApO1xuXG4gIGZ1bmN0aW9uIGdldFByZXZPdXQoaTogdXR4b2xpYi5UeElucHV0KTogdXR4b2xpYi5UeE91dHB1dDxiaWdpbnQ+IHtcbiAgICBmb3IgKGNvbnN0IHQgb2YgaW5wdXRUeHMpIHtcbiAgICAgIGlmICh0LmdldEhhc2goKS5lcXVhbHMoaS5oYXNoKSAmJiBpLmluZGV4IGluIHQub3V0cykge1xuICAgICAgICByZXR1cm4gdC5vdXRzW2kuaW5kZXhdO1xuICAgICAgfVxuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoYG1pc3NpbmcgaW5wdXQgJHt1dHhvbGliLmJpdGdvLmZvcm1hdE91dHB1dElkKHV0eG9saWIuYml0Z28uZ2V0T3V0cHV0SWRGb3JJbnB1dChpKSl9YCk7XG4gIH1cblxuICBjb25zdCBpbnB1dFR4cyA9IGYuaW5wdXRzLm1hcCgoaSkgPT5cbiAgICB1dHhvbGliLmJpdGdvLmNyZWF0ZVRyYW5zYWN0aW9uRnJvbUJ1ZmZlcihCdWZmZXIuZnJvbShpLmhleCwgJ2hleCcpLCBuZXR3b3JrLCB7IGFtb3VudFR5cGU6ICdiaWdpbnQnIH0pXG4gICk7XG4gIGNvbnN0IHR4ID0gdXR4b2xpYi5iaXRnby5jcmVhdGVUcmFuc2FjdGlvbkZyb21CdWZmZXIoQnVmZmVyLmZyb20oZi50cmFuc2FjdGlvbi5oZXgsICdoZXgnKSwgbmV0d29yaywge1xuICAgIGFtb3VudFR5cGU6ICdiaWdpbnQnLFxuICB9KTtcbiAgcmV0dXJuIHsgdHJhbnNhY3Rpb246IHR4LCBwcmV2T3V0cHV0czogdHguaW5zLm1hcCgoaSkgPT4gZ2V0UHJldk91dChpKSkgfTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEZpeHR1cmVTdHJpbmcocGF0aDogc3RyaW5nLCBkZWZhdWx0VmFsdWU6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGF3YWl0IGZzLnJlYWRGaWxlKHBhdGgsICd1dGY4Jyk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBpZiAoKGUgYXMgYW55KS5jb2RlID09PSAnRU5PRU5UJykge1xuICAgICAgYXdhaXQgZnMud3JpdGVGaWxlKHBhdGgsIGRlZmF1bHRWYWx1ZSwgJ3V0ZjgnKTtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgd3JvdGUgZGVmYXVsdCB2YWx1ZSBmb3IgJHtwYXRofWApO1xuICAgIH1cbiAgICB0aHJvdyBlO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generateAddress.d.ts","sourceRoot":"","sources":["../../test/generateAddress.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const assert = require("assert");
|
|
4
|
+
const generateAddress_1 = require("../src/generateAddress");
|
|
5
|
+
const bip32_util_1 = require("./bip32.util");
|
|
6
|
+
describe('generateAddresses', function () {
|
|
7
|
+
it('should generate addresses', function () {
|
|
8
|
+
const [userKey, backupKey, bitgoKey] = (0, bip32_util_1.getKeyTriple)('generateAddress').map((k) => k.neutered().toBase58());
|
|
9
|
+
const lines = [];
|
|
10
|
+
for (const l of (0, generateAddress_1.generateAddress)({
|
|
11
|
+
userKey,
|
|
12
|
+
backupKey,
|
|
13
|
+
bitgoKey,
|
|
14
|
+
index: (0, generateAddress_1.parseIndexRange)(['0-1']),
|
|
15
|
+
format: '%a',
|
|
16
|
+
chain: [0, 1],
|
|
17
|
+
})) {
|
|
18
|
+
lines.push((0, generateAddress_1.formatAddressWithFormatString)(l, '%a'));
|
|
19
|
+
}
|
|
20
|
+
assert.strictEqual(lines.length, 4);
|
|
21
|
+
assert.deepStrictEqual(lines, [
|
|
22
|
+
'38FHxcU7KY4E2nDEezEVcKWGvHy9717ehF',
|
|
23
|
+
'35Qg1UqVWSJdtF1ysfz9h3KRGdk9uH8iYx',
|
|
24
|
+
'3ARnshsLXE9QfJemQdoKL2kp6TRqGohLDz',
|
|
25
|
+
'3QxKW93NN8CQrKaNqkDsAXPyxPsrxfTYME',
|
|
26
|
+
]);
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGVBZGRyZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdGVzdC9nZW5lcmF0ZUFkZHJlc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxpQ0FBaUM7QUFDakMsNERBQXlHO0FBQ3pHLDZDQUE0QztBQUU1QyxRQUFRLENBQUMsbUJBQW1CLEVBQUU7SUFDNUIsRUFBRSxDQUFDLDJCQUEyQixFQUFFO1FBQzlCLE1BQU0sQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsQ0FBQyxHQUFHLElBQUEseUJBQVksRUFBQyxpQkFBaUIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDM0csTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLEtBQUssTUFBTSxDQUFDLElBQUksSUFBQSxpQ0FBZSxFQUFDO1lBQzlCLE9BQU87WUFDUCxTQUFTO1lBQ1QsUUFBUTtZQUNSLEtBQUssRUFBRSxJQUFBLGlDQUFlLEVBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMvQixNQUFNLEVBQUUsSUFBSTtZQUNaLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDZCxDQUFDLEVBQUU7WUFDRixLQUFLLENBQUMsSUFBSSxDQUFDLElBQUEsK0NBQTZCLEVBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDcEQ7UUFFRCxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDcEMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUU7WUFDNUIsb0NBQW9DO1lBQ3BDLG9DQUFvQztZQUNwQyxvQ0FBb0M7WUFDcEMsb0NBQW9DO1NBQ3JDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCB7IGZvcm1hdEFkZHJlc3NXaXRoRm9ybWF0U3RyaW5nLCBnZW5lcmF0ZUFkZHJlc3MsIHBhcnNlSW5kZXhSYW5nZSB9IGZyb20gJy4uL3NyYy9nZW5lcmF0ZUFkZHJlc3MnO1xuaW1wb3J0IHsgZ2V0S2V5VHJpcGxlIH0gZnJvbSAnLi9iaXAzMi51dGlsJztcblxuZGVzY3JpYmUoJ2dlbmVyYXRlQWRkcmVzc2VzJywgZnVuY3Rpb24gKCkge1xuICBpdCgnc2hvdWxkIGdlbmVyYXRlIGFkZHJlc3NlcycsIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCBbdXNlcktleSwgYmFja3VwS2V5LCBiaXRnb0tleV0gPSBnZXRLZXlUcmlwbGUoJ2dlbmVyYXRlQWRkcmVzcycpLm1hcCgoaykgPT4gay5uZXV0ZXJlZCgpLnRvQmFzZTU4KCkpO1xuICAgIGNvbnN0IGxpbmVzID0gW107XG4gICAgZm9yIChjb25zdCBsIG9mIGdlbmVyYXRlQWRkcmVzcyh7XG4gICAgICB1c2VyS2V5LFxuICAgICAgYmFja3VwS2V5LFxuICAgICAgYml0Z29LZXksXG4gICAgICBpbmRleDogcGFyc2VJbmRleFJhbmdlKFsnMC0xJ10pLFxuICAgICAgZm9ybWF0OiAnJWEnLFxuICAgICAgY2hhaW46IFswLCAxXSxcbiAgICB9KSkge1xuICAgICAgbGluZXMucHVzaChmb3JtYXRBZGRyZXNzV2l0aEZvcm1hdFN0cmluZyhsLCAnJWEnKSk7XG4gICAgfVxuXG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKGxpbmVzLmxlbmd0aCwgNCk7XG4gICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChsaW5lcywgW1xuICAgICAgJzM4Rkh4Y1U3S1k0RTJuREVlekVWY0tXR3ZIeTk3MTdlaEYnLFxuICAgICAgJzM1UWcxVXFWV1NKZHRGMXlzZno5aDNLUkdkazl1SDhpWXgnLFxuICAgICAgJzNBUm5zaHNMWEU5UWZKZW1RZG9LTDJrcDZUUnFHb2hMRHonLFxuICAgICAgJzNReEtXOTNOTjhDUXJLYU5xa0RzQVhQeXhQc3J4ZlRZTUUnLFxuICAgIF0pO1xuICB9KTtcbn0pO1xuIl19
|
|
@@ -1,10 +1,6 @@
|
|
|
1
|
-
import { BIP32Interface } from 'bip32';
|
|
2
1
|
import * as utxolib from '@bitgo-beta/utxo-lib';
|
|
3
|
-
declare type Triple<T> = [T, T, T];
|
|
4
|
-
declare type KeyTriple = Triple<BIP32Interface>;
|
|
5
2
|
declare const scriptTypes: readonly ["p2sh", "p2shP2wsh", "p2wsh", "p2tr", "p2trMusig2", "p2pkh", "p2wkh"];
|
|
6
3
|
declare type ScriptType = (typeof scriptTypes)[number];
|
|
7
|
-
export declare function getKeyTriple(seed: string): KeyTriple;
|
|
8
4
|
export declare function isSupportedDepositType(network: utxolib.Network, scriptType: ScriptType): boolean;
|
|
9
5
|
export {};
|
|
10
6
|
//# sourceMappingURL=parseAddress.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseAddress.d.ts","sourceRoot":"","sources":["../../test/parseAddress.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"parseAddress.d.ts","sourceRoot":"","sources":["../../test/parseAddress.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAOhD,QAAA,MAAM,WAAW,iFAAqF,CAAC;AACvG,aAAK,UAAU,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/C,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAUhG"}
|
|
@@ -1,21 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isSupportedDepositType =
|
|
3
|
+
exports.isSupportedDepositType = void 0;
|
|
4
4
|
const assert = require("assert");
|
|
5
|
-
const crypto = require("crypto");
|
|
6
5
|
const yargs = require("yargs");
|
|
7
6
|
const utxolib = require("@bitgo-beta/utxo-lib");
|
|
8
7
|
const commands_1 = require("../src/commands");
|
|
9
8
|
const fixtures_1 = require("./fixtures");
|
|
9
|
+
const bip32_util_1 = require("./bip32.util");
|
|
10
10
|
const scriptTypesSingleSig = ['p2pkh', 'p2wkh'];
|
|
11
11
|
const scriptTypes = [...utxolib.bitgo.outputScripts.scriptTypes2Of3, ...scriptTypesSingleSig];
|
|
12
|
-
function getKey(seed) {
|
|
13
|
-
return utxolib.bip32.fromSeed(crypto.createHash('sha256').update(seed).digest());
|
|
14
|
-
}
|
|
15
|
-
function getKeyTriple(seed) {
|
|
16
|
-
return [getKey(seed + '.0'), getKey(seed + '.1'), getKey(seed + '.2')];
|
|
17
|
-
}
|
|
18
|
-
exports.getKeyTriple = getKeyTriple;
|
|
19
12
|
function isSupportedDepositType(network, scriptType) {
|
|
20
13
|
if (scriptType === 'p2pkh') {
|
|
21
14
|
return true;
|
|
@@ -52,34 +45,36 @@ function createScriptPubKey(keys, scriptType, network) {
|
|
|
52
45
|
}
|
|
53
46
|
}
|
|
54
47
|
function getAddresses(n) {
|
|
55
|
-
const keys = getKeyTriple('parseAddress');
|
|
48
|
+
const keys = (0, bip32_util_1.getKeyTriple)('parseAddress');
|
|
56
49
|
return scriptTypes
|
|
57
50
|
.filter((t) => isSupportedDepositType(n, t))
|
|
58
51
|
.flatMap((t) => utxolib.addressFormat.addressFormats
|
|
59
52
|
.filter((format) => utxolib.addressFormat.isSupportedAddressFormat(format, n))
|
|
60
53
|
.map((format) => [
|
|
54
|
+
t,
|
|
61
55
|
format,
|
|
62
56
|
utxolib.addressFormat.fromOutputScriptWithFormat(createScriptPubKey(keys, t, n), format, n),
|
|
63
57
|
]));
|
|
64
58
|
}
|
|
65
59
|
function parse(address, args) {
|
|
66
|
-
return commands_1.getAddressParser(yargs.command(commands_1.cmdParseAddress).parseSync(args)).parse(address);
|
|
60
|
+
return (0, commands_1.getAddressParser)(yargs.command(commands_1.cmdParseAddress).parseSync(args)).parse(address);
|
|
67
61
|
}
|
|
68
|
-
function testParseAddress(network, addressFormat, address, args, suffix) {
|
|
62
|
+
function testParseAddress(network, type, addressFormat, address, args, suffix) {
|
|
69
63
|
describe(`parse address ${address} with arguments ${args.join(' ')}`, function () {
|
|
70
64
|
it(`formats address`, async function () {
|
|
71
|
-
const formatted = fixtures_1.formatTreeNoColor(parse(address, args), { showAll: true });
|
|
65
|
+
const formatted = (0, fixtures_1.formatTreeNoColor)(parse(address, args), { showAll: true });
|
|
72
66
|
const addrNoColon = address.replace(':', '_');
|
|
73
|
-
|
|
67
|
+
const filename = [utxolib.getNetworkName(network), type, addressFormat, addrNoColon + suffix].join('_');
|
|
68
|
+
assert.strictEqual(await (0, fixtures_1.getFixtureString)(`test/fixtures/formatAddress/${filename}.txt`, formatted), formatted);
|
|
74
69
|
});
|
|
75
70
|
});
|
|
76
71
|
}
|
|
77
72
|
utxolib.getNetworkList().forEach((n) => {
|
|
78
|
-
getAddresses(n).forEach(([addressFormat, address], i) => {
|
|
79
|
-
testParseAddress(n, addressFormat, address, [], '
|
|
73
|
+
getAddresses(n).forEach(([type, addressFormat, address], i) => {
|
|
74
|
+
testParseAddress(n, type, addressFormat, address, [], '');
|
|
80
75
|
if ([utxolib.networks.bitcoin, utxolib.networks.bitcoincash, utxolib.networks.ecash].includes(n) && i === 0) {
|
|
81
|
-
testParseAddress(n, addressFormat, address, ['--all'], '.all
|
|
76
|
+
testParseAddress(n, type, addressFormat, address, ['--all'], '.all');
|
|
82
77
|
}
|
|
83
78
|
});
|
|
84
79
|
});
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VBZGRyZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdGVzdC9wYXJzZUFkZHJlc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaUNBQWlDO0FBQ2pDLCtCQUErQjtBQUMvQixnREFBZ0Q7QUFFaEQsOENBQW9FO0FBQ3BFLHlDQUFpRTtBQUNqRSw2Q0FBdUQ7QUFFdkQsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQVUsQ0FBQztBQUN6RCxNQUFNLFdBQVcsR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsZUFBZSxFQUFFLEdBQUcsb0JBQW9CLENBQVUsQ0FBQztBQUd2RyxTQUFnQixzQkFBc0IsQ0FBQyxPQUF3QixFQUFFLFVBQXNCO0lBQ3JGLElBQUksVUFBVSxLQUFLLE9BQU8sRUFBRTtRQUMxQixPQUFPLElBQUksQ0FBQztLQUNiO0lBRUQsSUFBSSxVQUFVLEtBQUssT0FBTyxFQUFFO1FBQzFCLE9BQU8sT0FBTyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztLQUN4QztJQUVELE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMscUJBQXFCLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQ2hGLENBQUM7QUFWRCx3REFVQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxTQUFTLGtCQUFrQixDQUFDLElBQWUsRUFBRSxVQUFzQixFQUFFLE9BQXdCO0lBQzNGLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUU3QyxRQUFRLFVBQVUsRUFBRTtRQUNsQixLQUFLLE1BQU0sQ0FBQztRQUNaLEtBQUssV0FBVyxDQUFDO1FBQ2pCLEtBQUssT0FBTyxDQUFDO1FBQ2IsS0FBSyxNQUFNLENBQUM7UUFDWixLQUFLLFlBQVk7WUFD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Q0FBQyxFQUFFLEVBQUU7SUFDckMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUM1RCxnQkFBZ0IsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzNHLGdCQUFnQixDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1NBQ3RFO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0ICogYXMgeWFyZ3MgZnJvbSAneWFyZ3MnO1xuaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5cbmltcG9ydCB7IGNtZFBhcnNlQWRkcmVzcywgZ2V0QWRkcmVzc1BhcnNlciB9IGZyb20gJy4uL3NyYy9jb21tYW5kcyc7XG5pbXBvcnQgeyBmb3JtYXRUcmVlTm9Db2xvciwgZ2V0Rml4dHVyZVN0cmluZyB9IGZyb20gJy4vZml4dHVyZXMnO1xuaW1wb3J0IHsgZ2V0S2V5VHJpcGxlLCBLZXlUcmlwbGUgfSBmcm9tICcuL2JpcDMyLnV0aWwnO1xuXG5jb25zdCBzY3JpcHRUeXBlc1NpbmdsZVNpZyA9IFsncDJwa2gnLCAncDJ3a2gnXSBhcyBjb25zdDtcbmNvbnN0IHNjcmlwdFR5cGVzID0gWy4uLnV0eG9saWIuYml0Z28ub3V0cHV0U2NyaXB0cy5zY3JpcHRUeXBlczJPZjMsIC4uLnNjcmlwdFR5cGVzU2luZ2xlU2lnXSBhcyBjb25zdDtcbnR5cGUgU2NyaXB0VHlwZSA9ICh0eXBlb2Ygc2NyaXB0VHlwZXMpW251bWJlcl07XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1N1cHBvcnRlZERlcG9zaXRUeXBlKG5ldHdvcms6IHV0eG9saWIuTmV0d29yaywgc2NyaXB0VHlwZTogU2NyaXB0VHlwZSk6IGJvb2xlYW4ge1xuICBpZiAoc2NyaXB0VHlwZSA9PT0gJ3AycGtoJykge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgaWYgKHNjcmlwdFR5cGUgPT09ICdwMndraCcpIHtcbiAgICByZXR1cm4gdXR4b2xpYi5zdXBwb3J0c1NlZ3dpdChuZXR3b3JrKTtcbiAgfVxuXG4gIHJldHVybiB1dHhvbGliLmJpdGdvLm91dHB1dFNjcmlwdHMuaXNTdXBwb3J0ZWRTY3JpcHRUeXBlKG5ldHdvcmssIHNjcmlwdFR5cGUpO1xufVxuXG4vKipcbiAqXG4gKiBAcGFyYW0ga2V5cyAtIFB1YmtleXMgdG8gdXNlIGZvciBnZW5lcmF0aW5nIHRoZSBhZGRyZXNzLlxuICogICAgICAgICAgICAgICBJZiBzY3JpcHRUeXBlIGlzIHNpbmdsZS1zaWcsIHRoZSBmaXJzdCBrZXkgd2lsbCBiZSB1c2VkLlxuICogQHBhcmFtIHNjcmlwdFR5cGVcbiAqIEBwYXJhbSBuZXR3b3JrXG4gKiBAcmV0dXJuIHtCdWZmZXJ9IHNjcmlwdFB1YktleVxuICovXG5mdW5jdGlvbiBjcmVhdGVTY3JpcHRQdWJLZXkoa2V5czogS2V5VHJpcGxlLCBzY3JpcHRUeXBlOiBTY3JpcHRUeXBlLCBuZXR3b3JrOiB1dHhvbGliLk5ldHdvcmspOiBCdWZmZXIge1xuICBjb25zdCBwdWJrZXlzID0ga2V5cy5tYXAoKGspID0+IGsucHVibGljS2V5KTtcblxuICBzd2l0Y2ggKHNjcmlwdFR5cGUpIHtcbiAgICBjYXNlICdwMnNoJzpcbiAgICBjYXNlICdwMnNoUDJ3c2gnOlxuICAgIGNhc2UgJ3Ayd3NoJzpcbiAgICBjYXNlICdwMnRyJzpcbiAgICBjYXNlICdwMnRyTXVzaWcyJzpcbiAgICAgIHJldHVybiB1dHhvbGliLmJpdGdvLm91dHB1dFNjcmlwdHMuY3JlYXRlT3V0cHV0U2NyaXB0Mm9mMyhwdWJrZXlzLCBzY3JpcHRUeXBlKS5zY3JpcHRQdWJLZXk7XG4gICAgY2FzZSAncDJwa2gnOlxuICAgICAgcmV0dXJuIHV0eG9saWIucGF5bWVudHMucDJwa2goeyBwdWJrZXk6IGtleXNbMF0ucHVibGljS2V5IH0pLm91dHB1dCBhcyBCdWZmZXI7XG4gICAgY2FzZSAncDJ3a2gnOlxuICAgICAgcmV0dXJuIHV0eG9saWIucGF5bWVudHMucDJ3cGtoKHsgcHVia2V5OiBrZXlzWzBdLnB1YmxpY0tleSB9KS5vdXRwdXQgYXMgQnVmZmVyO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHVuc3VwcG9ydGVkIG91dHB1dCB0eXBlICR7c2NyaXB0VHlwZX1gKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRBZGRyZXNzZXMobjogdXR4b2xpYi5OZXR3b3JrKTogW3R5cGU6IHN0cmluZywgZm9ybWF0OiBzdHJpbmcsIGFkZHJlc3M6IHN0cmluZ11bXSB7XG4gIGNvbnN0IGtleXMgPSBnZXRLZXlUcmlwbGUoJ3BhcnNlQWRkcmVzcycpO1xuICByZXR1cm4gc2NyaXB0VHlwZXNcbiAgICAuZmlsdGVyKCh0KSA9PiBpc1N1cHBvcnRlZERlcG9zaXRUeXBlKG4sIHQpKVxuICAgIC5mbGF0TWFwKCh0KSA9PlxuICAgICAgdXR4b2xpYi5hZGRyZXNzRm9ybWF0LmFkZHJlc3NGb3JtYXRzXG4gICAgICAgIC5maWx0ZXIoKGZvcm1hdCkgPT4gdXR4b2xpYi5hZGRyZXNzRm9ybWF0LmlzU3VwcG9ydGVkQWRkcmVzc0Zvcm1hdChmb3JtYXQsIG4pKVxuICAgICAgICAubWFwKChmb3JtYXQpOiBbc3RyaW5nLCBzdHJpbmcsIHN0cmluZ10gPT4gW1xuICAgICAgICAgIHQsXG4gICAgICAgICAgZm9ybWF0LFxuICAgICAgICAgIHV0eG9saWIuYWRkcmVzc0Zvcm1hdC5mcm9tT3V0cHV0U2NyaXB0V2l0aEZvcm1hdChjcmVhdGVTY3JpcHRQdWJLZXkoa2V5cywgdCwgbiksIGZvcm1hdCwgbiksXG4gICAgICAgIF0pXG4gICAgKTtcbn1cblxuZnVuY3Rpb24gcGFyc2UoYWRkcmVzczogc3RyaW5nLCBhcmdzOiBzdHJpbmdbXSkge1xuICByZXR1cm4gZ2V0QWRkcmVzc1BhcnNlcih5YXJncy5jb21tYW5kKGNtZFBhcnNlQWRkcmVzcykucGFyc2VTeW5jKGFyZ3MpKS5wYXJzZShhZGRyZXNzKTtcbn1cblxuZnVuY3Rpb24gdGVzdFBhcnNlQWRkcmVzcyhcbiAgbmV0d29yazogdXR4b2xpYi5OZXR3b3JrLFxuICB0eXBlOiBzdHJpbmcsXG4gIGFkZHJlc3NGb3JtYXQ6IHN0cmluZyxcbiAgYWRkcmVzczogc3RyaW5nLFxuICBhcmdzOiBzdHJpbmdbXSxcbiAgc3VmZml4OiBzdHJpbmdcbikge1xuICBkZXNjcmliZShgcGFyc2UgYWRkcmVzcyAke2FkZHJlc3N9IHdpdGggYXJndW1lbnRzICR7YXJncy5qb2luKCcgJyl9YCwgZnVuY3Rpb24gKCkge1xuICAgIGl0KGBmb3JtYXRzIGFkZHJlc3NgLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBmb3JtYXR0ZWQgPSBmb3JtYXRUcmVlTm9Db2xvcihwYXJzZShhZGRyZXNzLCBhcmdzKSwgeyBzaG93QWxsOiB0cnVlIH0pO1xuICAgICAgY29uc3QgYWRkck5vQ29sb24gPSBhZGRyZXNzLnJlcGxhY2UoJzonLCAnXycpO1xuICAgICAgY29uc3QgZmlsZW5hbWUgPSBbdXR4b2xpYi5nZXROZXR3b3JrTmFtZShuZXR3b3JrKSwgdHlwZSwgYWRkcmVzc0Zvcm1hdCwgYWRkck5vQ29sb24gKyBzdWZmaXhdLmpvaW4oJ18nKTtcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChhd2FpdCBnZXRGaXh0dXJlU3RyaW5nKGB0ZXN0L2ZpeHR1cmVzL2Zvcm1hdEFkZHJlc3MvJHtmaWxlbmFtZX0udHh0YCwgZm9ybWF0dGVkKSwgZm9ybWF0dGVkKTtcbiAgICB9KTtcbiAgfSk7XG59XG5cbnV0eG9saWIuZ2V0TmV0d29ya0xpc3QoKS5mb3JFYWNoKChuKSA9PiB7XG4gIGdldEFkZHJlc3NlcyhuKS5mb3JFYWNoKChbdHlwZSwgYWRkcmVzc0Zvcm1hdCwgYWRkcmVzc10sIGkpID0+IHtcbiAgICB0ZXN0UGFyc2VBZGRyZXNzKG4sIHR5cGUsIGFkZHJlc3NGb3JtYXQsIGFkZHJlc3MsIFtdLCAnJyk7XG4gICAgaWYgKFt1dHhvbGliLm5ldHdvcmtzLmJpdGNvaW4sIHV0eG9saWIubmV0d29ya3MuYml0Y29pbmNhc2gsIHV0eG9saWIubmV0d29ya3MuZWNhc2hdLmluY2x1ZGVzKG4pICYmIGkgPT09IDApIHtcbiAgICAgIHRlc3RQYXJzZUFkZHJlc3MobiwgdHlwZSwgYWRkcmVzc0Zvcm1hdCwgYWRkcmVzcywgWyctLWFsbCddLCAnLmFsbCcpO1xuICAgIH1cbiAgfSk7XG59KTtcbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseScript.d.ts","sourceRoot":"","sources":["../../test/parseScript.ts"],"names":[],"mappings":""}
|