@bitgo/utxo-bin 2.50.0 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin/index.js +2 -3
- package/dist/src/Parser.d.ts +1 -0
- package/dist/src/Parser.d.ts.map +1 -1
- package/dist/src/Parser.js +9 -1
- package/dist/src/ScriptParser.d.ts.map +1 -1
- package/dist/src/ScriptParser.js +15 -1
- package/dist/src/commands/cmdAddress/cmdGenerate.d.ts +21 -0
- package/dist/src/commands/cmdAddress/cmdGenerate.d.ts.map +1 -0
- package/dist/src/commands/cmdAddress/cmdGenerate.js +89 -0
- package/dist/src/commands/{cmdParseAddress.d.ts → cmdAddress/cmdParse.d.ts} +6 -6
- package/dist/src/commands/cmdAddress/cmdParse.d.ts.map +1 -0
- package/dist/src/commands/cmdAddress/cmdParse.js +28 -0
- package/dist/src/commands/cmdAddress/index.d.ts +3 -0
- package/dist/src/commands/cmdAddress/index.d.ts.map +1 -0
- package/dist/src/commands/cmdAddress/index.js +16 -0
- package/dist/src/commands/formatString.d.ts +1 -2
- package/dist/src/commands/formatString.d.ts.map +1 -1
- package/dist/src/commands/formatString.js +1 -1
- package/dist/src/commands/index.d.ts +1 -2
- package/dist/src/commands/index.d.ts.map +1 -1
- package/dist/src/commands/index.js +2 -3
- package/dist/src/generateAddress.d.ts +23 -6
- package/dist/src/generateAddress.d.ts.map +1 -1
- package/dist/src/generateAddress.js +50 -9
- package/dist/test/generateAddress.js +27 -10
- package/dist/test/parseAddress.d.ts.map +1 -1
- package/dist/test/parseAddress.js +3 -3
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -3
- package/dist/src/commands/cmdGenerateAddress.d.ts +0 -17
- package/dist/src/commands/cmdGenerateAddress.d.ts.map +0 -1
- package/dist/src/commands/cmdGenerateAddress.js +0 -55
- package/dist/src/commands/cmdParseAddress.d.ts.map +0 -1
- package/dist/src/commands/cmdParseAddress.js +0 -28
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.generateDescriptorAddress = exports.formatDescriptorAddress = exports.getDescriptorAddressPlaceholderDescription = exports.generateFixedScriptAddress = exports.parseIndexRange = exports.getRange = exports.formatFixedScriptAddress = exports.formatAddressWithFormatString = exports.formatAddressTree = exports.getFixedScriptAddressPlaceholderDescription = exports.getAsPlaceholderDescription = void 0;
|
|
4
4
|
const assert = require("assert");
|
|
5
5
|
const utxolib = require("@bitgo/utxo-lib");
|
|
6
|
+
const wasm_miniscript_1 = require("@bitgo/wasm-miniscript");
|
|
6
7
|
const Parser_1 = require("./Parser");
|
|
7
8
|
const parseUnknown_1 = require("./parseUnknown");
|
|
8
9
|
const format_1 = require("./format");
|
|
@@ -12,7 +13,7 @@ function getDefaultChainCodes() {
|
|
|
12
13
|
// these are rare and show an annoying warning in stderr
|
|
13
14
|
(c) => utxolib.bitgo.scriptTypeForChain(c) !== 'p2tr' && utxolib.bitgo.scriptTypeForChain(c) !== 'p2trMusig2');
|
|
14
15
|
}
|
|
15
|
-
const
|
|
16
|
+
const fixedScriptPlaceholders = {
|
|
16
17
|
'%c': 'chain',
|
|
17
18
|
'%i': 'index',
|
|
18
19
|
'%p': 'userPath',
|
|
@@ -28,12 +29,16 @@ const placeholders = {
|
|
|
28
29
|
'%w': 'witnessScript',
|
|
29
30
|
'%a': 'address',
|
|
30
31
|
};
|
|
31
|
-
function
|
|
32
|
-
return Object.entries(
|
|
32
|
+
function getAsPlaceholderDescription(v) {
|
|
33
|
+
return Object.entries(v)
|
|
33
34
|
.map(([placeholder, prop]) => `${placeholder} -> ${prop}`)
|
|
34
35
|
.join('\n');
|
|
35
36
|
}
|
|
36
|
-
exports.
|
|
37
|
+
exports.getAsPlaceholderDescription = getAsPlaceholderDescription;
|
|
38
|
+
function getFixedScriptAddressPlaceholderDescription() {
|
|
39
|
+
return getAsPlaceholderDescription(fixedScriptPlaceholders);
|
|
40
|
+
}
|
|
41
|
+
exports.getFixedScriptAddressPlaceholderDescription = getFixedScriptAddressPlaceholderDescription;
|
|
37
42
|
function getAddressProperties(keys, chain, index, network) {
|
|
38
43
|
var _a, _b;
|
|
39
44
|
const [userPath, backupPath, bitgoPath] = keys.triple.map((k) => keys.getDerivationPath(k, chain, index));
|
|
@@ -61,7 +66,7 @@ function formatAddressTree(props) {
|
|
|
61
66
|
return (0, format_1.formatTree)((0, parseUnknown_1.parseUnknown)(parser, 'address', props));
|
|
62
67
|
}
|
|
63
68
|
exports.formatAddressTree = formatAddressTree;
|
|
64
|
-
function formatAddressWithFormatString(props, format) {
|
|
69
|
+
function formatAddressWithFormatString(props, placeholders, format) {
|
|
65
70
|
// replace all patterns with a % prefix from format string with the corresponding property
|
|
66
71
|
// e.g. %p0 -> userPath, %k1 -> backupKey, etc.
|
|
67
72
|
return format.replace(/%[a-z0-9]+/gi, (match) => {
|
|
@@ -73,6 +78,10 @@ function formatAddressWithFormatString(props, format) {
|
|
|
73
78
|
});
|
|
74
79
|
}
|
|
75
80
|
exports.formatAddressWithFormatString = formatAddressWithFormatString;
|
|
81
|
+
function formatFixedScriptAddress(props, format) {
|
|
82
|
+
return formatAddressWithFormatString(props, fixedScriptPlaceholders, format);
|
|
83
|
+
}
|
|
84
|
+
exports.formatFixedScriptAddress = formatFixedScriptAddress;
|
|
76
85
|
function getRange(start, end) {
|
|
77
86
|
return Array.from({ length: end - start + 1 }, (_, i) => start + i);
|
|
78
87
|
}
|
|
@@ -87,7 +96,7 @@ function parseIndexRange(ranges) {
|
|
|
87
96
|
});
|
|
88
97
|
}
|
|
89
98
|
exports.parseIndexRange = parseIndexRange;
|
|
90
|
-
function*
|
|
99
|
+
function* generateFixedScriptAddress(argv) {
|
|
91
100
|
var _a, _b;
|
|
92
101
|
const rootXpubs = (0, args_1.getRootWalletKeys)(argv);
|
|
93
102
|
const chains = (_a = argv.chain) !== null && _a !== void 0 ? _a : getDefaultChainCodes();
|
|
@@ -99,5 +108,37 @@ function* generateAddress(argv) {
|
|
|
99
108
|
}
|
|
100
109
|
}
|
|
101
110
|
}
|
|
102
|
-
exports.
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGVBZGRyZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2dlbmVyYXRlQWRkcmVzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxpQ0FBaUM7QUFFakMsMkNBQTJDO0FBRTNDLHFDQUFrQztBQUNsQyxpREFBOEM7QUFDOUMscUNBQXNDO0FBQ3RDLGlDQUF1RDtBQUV2RCxTQUFTLG9CQUFvQjtJQUMzQixPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU07SUFDcEMsd0RBQXdEO0lBQ3hELENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxLQUFLLE1BQU0sSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxLQUFLLFlBQVksQ0FDOUcsQ0FBQztBQUNKLENBQUM7QUFrQkQsTUFBTSxZQUFZLEdBQUc7SUFDbkIsSUFBSSxFQUFFLE9BQU87SUFDYixJQUFJLEVBQUUsT0FBTztJQUNiLElBQUksRUFBRSxVQUFVO0lBQ2hCLElBQUksRUFBRSxNQUFNO0lBQ1osS0FBSyxFQUFFLFVBQVU7SUFDakIsS0FBSyxFQUFFLFlBQVk7SUFDbkIsS0FBSyxFQUFFLFdBQVc7SUFDbEIsS0FBSyxFQUFFLFNBQVM7SUFDaEIsS0FBSyxFQUFFLFdBQVc7SUFDbEIsS0FBSyxFQUFFLFVBQVU7SUFDakIsSUFBSSxFQUFFLGNBQWM7SUFDcEIsSUFBSSxFQUFFLGNBQWM7SUFDcEIsSUFBSSxFQUFFLGVBQWU7SUFDckIsSUFBSSxFQUFFLFNBQVM7Q0FDUCxDQUFDO0FBRVgsU0FBZ0IsZ0NBQWdDO0lBQzlDLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUM7U0FDaEMsR0FBRyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsV0FBVyxPQUFPLElB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QUFDLEtBQUssRUFBRSxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3RDLElBQUksR0FBRyxFQUFFO1lBQ1AsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQzdDO1FBQ0QsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3pCLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQVJELDBDQVFDO0FBRUQsUUFBZSxDQUFDLENBQUMsZUFBZSxDQUM5QixJQUtDOztJQUVELE1BQU0sU0FBUyxHQUFHLElBQUEsd0JBQWlCLEVBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUMsTUFBTSxNQUFNLEdBQUcsTUFBQSxJQUFJLENBQUMsS0FBSyxtQ0FBSSxvQkFBb0IsRUFBRSxDQUFDO0lBQ3BELEtBQUssTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtRQUMxQixLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQU0sRUFBRTtZQUMxQixNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUN6QyxtR0FBbUc7WUFDbkcsTUFBTSxvQkFBb0IsQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxNQUFBLElBQUksQ0FBQyxPQUFPLG1DQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDM0Y7S0FDRjtBQUNILENBQUM7QUFqQkQsMENBaUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvL3V0eG8tbGliJztcblxuaW1wb3J0IHsgUGFyc2VyIH0gZnJvbSAnLi9QYXJzZXInO1xuaW1wb3J0IHsgcGFyc2VVbmtub3duIH0gZnJvbSAnLi9wYXJzZVVua25vd24nO1xuaW1wb3J0IHsgZm9ybWF0VHJlZSB9IGZyb20gJy4vZm9ybWF0JztcbmltcG9ydCB7IEtleU9wdGlvbnMsIGdldFJvb3RXYWxsZXRLZXlzIH0gZnJvbSAnLi9hcmdzJztcblxuZnVuY3Rpb24gZ2V0RGVmYXVsdENoYWluQ29kZXMoKTogbnVtYmVyW10ge1xuICByZXR1cm4gdXR4b2xpYi5iaXRnby5jaGFpbkNvZGVzLmZpbHRlcihcbiAgICAvLyB0aGVzZSBhcmUgcmFyZSBhbmQgc2hvdyBhbiBhbm5veWluZyB3YXJuaW5nIGluIHN0ZGVyclxuICAgIChjKSA9PiB1dHhvbGliLmJpdGdvLnNjcmlwdFR5cGVGb3JDaGFpbihjKSAhPT0gJ3AydHInICYmIHV0eG9saWIuYml0Z28uc2NyaXB0VHlwZUZvckNoYWluKGMpICE9PSAncDJ0ck11c2lnMidcbiAgKTtcbn1cblxudHlwZSBBZGRyZXNzUHJvcGVydGllcyA9IHtcbiAgY2hhaW46IHV0eG9saWIuYml0Z28uQ2hhaW5Db2RlO1xuICBpbmRleDogbnVtYmVyO1xuICB0eXBlOiB1dHhvbGliLmJpdGdvLm91dHB1dFNjcmlwdHMuU2NyaXB0VHlwZTtcbiAgdXNlclBhdGg6IHN0cmluZztcbiAgYmFja3VwUGF0aDogc3RyaW5nO1xuICBiaXRnb1BhdGg6IHN0cmluZztcbiAgdXNlcktleTogc3RyaW5nO1xuICBiYWNrdXBLZXk6IHN0cmluZztcbiAgYml0Z29LZXk6IHN0cmluZztcbiAgcmVkZWVtU2NyaXB0Pzogc3RyaW5nO1xuICB3aXRuZXNzU2NyaXB0Pzogc3RyaW5nO1xuICBzY3JpcHRQdWJLZXk6IHN0cmluZztcbiAgYWRkcmVzczogc3RyaW5nO1xufTtcblxuY29uc3QgcGxhY2Vob2xkZXJzID0ge1xuICAnJWMnOiAnY2hhaW4nLFxuICAnJWknOiAnaW5kZXgnLFxuICAnJXAnOiAndXNlclBhdGgnLFxuICAnJXQnOiAndHlwZScsXG4gICclcDAnOiAndXNlclBhdGgnLFxuICAnJXAxJzogJ2JhY2t1cFBhdGgnLFxuICAnJXAyJzogJ2JpdGdvUGF0aCcsXG4gICclazAnOiAndXNlcktleScsXG4gICclazEnOiAnYmFja3VwS2V5JyxcbiAgJyVrMic6ICdiaXRnb0tleScsXG4gICclcyc6ICdzY3JpcHRQdWJLZXknLFxuICAnJXInOiAncmVkZWVtU2NyaXB0JyxcbiAgJyV3JzogJ3dpdG5lc3NTY3JpcHQnLFxuICAnJWEnOiAnYWRkcmVzcycsXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWRkcmVzc1BsYWNlaG9sZGVyRGVzY3JpcHRpb24oKTogc3RyaW5nIHtcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHBsYWNlaG9sZGVycylcbiAgICAubWFwKChbcGxhY2Vob2xkZXIsIHByb3BdKSA9PiBgJHtwbGFjZWhvbGRlcn0gLT4gJHtwcm9wfWApXG4gICAgLmpvaW4oJ1xcbicpO1xufVxuXG5mdW5jdGlvbiBnZXRBZGRyZXNzUHJvcGVydGllcyhcbiAga2V5czogdXR4b2xpYi5iaXRnby5Sb290V2FsbGV0S2V5cyxcbiAgY2hhaW46IHV0eG9saWIuYml0Z28uQ2hhaW5Db2RlLFxuICBpbmRleDogbnVtYmVyLFxuICBuZXR3b3JrOiB1dHhvbGliLk5ldHdvcmtcbik6IEFkZHJlc3NQcm9wZXJ0aWVzIHtcbiAgY29uc3QgW3VzZXJQYXRoLCBiYWNrdXBQYXRoLCBiaXRnb1BhdGhdID0ga2V5cy50cmlwbGUubWFwKChrKSA9PiBrZXlzLmdldERlcml2YXRpb25QYXRoKGssIGNoYWluLCBpbmRleCkpO1xuICBjb25zdCBzY3JpcHRzID0gdXR4b2xpYi5iaXRnby5nZXRXYWxsZXRPdXRwdXRTY3JpcHRzKGtleXMsIGNoYWluLCBpbmRleCk7XG4gIGNvbnN0IFt1c2VyS2V5LCBiYWNrdXBLZXksIGJpdGdvS2V5XSA9IGtleXMudHJpcGxlLm1hcCgoaykgPT4gay5kZXJpdmVQYXRoKHVzZXJQYXRoKS5wdWJsaWNLZXkudG9TdHJpbmcoJ2hleCcpKTtcbiAgY29uc3QgYWRkcmVzcyA9IHV0eG9saWIuYWRkcmVzcy5mcm9tT3V0cHV0U2NyaXB0KHNjcmlwdHMuc2NyaXB0UHViS2V5LCBuZXR3b3JrKTtcbiAgcmV0dXJuIHtcbiAgICBjaGFpbixcbiAgICBpbmRleCxcbiAgICB0eXBlOiB1dHhvbGliLmJpdGdvLnNjcmlwdFR5cGVGb3JDaGFpbihjaGFpbiksXG4gICAgdXNlclBhdGgsXG4gICAgYmFja3VwUGF0aCxcbiAgICBiaXRnb1BhdGgsXG4gICAgdXNlcktleSxcbiAgICBiYWNrdXBLZXksXG4gICAgYml0Z29LZXksXG4gICAgc2NyaXB0UHViS2V5OiBzY3JpcHRzLnNjcmlwdFB1YktleS50b1N0cmluZygnaGV4JyksXG4gICAgcmVkZWVtU2NyaXB0OiBzY3JpcHRzLnJlZGVlbVNjcmlwdD8udG9TdHJpbmcoJ2hleCcpLFxuICAgIHdpdG5lc3NTY3JpcHQ6IHNjcmlwdHMud2l0bmVzc1NjcmlwdD8udG9TdHJpbmcoJ2hleCcpLFxuICAgIGFkZHJlc3MsXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRBZGRyZXNzVHJlZShwcm9wczogQWRkcmVzc1Byb3BlcnRpZXMpOiBzdHJpbmcge1xuICBjb25zdCBwYXJzZXIgPSBuZXcgUGFyc2VyKCk7XG4gIHJldHVybiBmb3JtYXRUcmVlKHBhcnNlVW5rbm93bihwYXJzZXIsICdhZGRyZXNzJywgcHJvcHMpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdEFkZHJlc3NXaXRoRm9ybWF0U3RyaW5nKHByb3BzOiBBZGRyZXNzUHJvcGVydGllcywgZm9ybWF0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAvLyByZXBsYWNlIGFsbCBwYXR0ZXJucyB3aXRoIGEgJSBwcmVmaXggZnJvbSBmb3JtYXQgc3RyaW5nIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgcHJvcGVydHlcbiAgLy8gZS5nLiAlcDAgLT4gdXNlclBhdGgsICVrMSAtPiBiYWNrdXBLZXksIGV0Yy5cbiAgcmV0dXJuIGZvcm1hdC5yZXBsYWNlKC8lW2EtejAtOV0rL2dpLCAobWF0Y2gpID0+IHtcbiAgICBpZiAobWF0Y2ggaW4gcGxhY2Vob2xkZXJzKSB7XG4gICAgICBjb25zdCBwcm9wID0gcGxhY2Vob2xkZXJzW21hdGNoIGFzIGtleW9mIHR5cGVvZiBwbGFjZWhvbGRlcnNdO1xuICAgICAgcmV0dXJuIFN0cmluZyhwcm9wc1twcm9wXSk7XG4gICAgfVxuICAgIHJldHVybiBtYXRjaDtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSYW5nZShzdGFydDogbnVtYmVyLCBlbmQ6IG51bWJlcik6IG51bWJlcltdIHtcbiAgcmV0dXJuIEFycmF5LmZyb20oeyBsZW5ndGg6IGVuZCAtIHN0YXJ0ICsgMSB9LCAoXywgaSkgPT4gc3RhcnQgKyBpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlSW5kZXhSYW5nZShyYW5nZXM6IHN0cmluZ1tdKTogbnVtYmVyW10ge1xuICByZXR1cm4gcmFuZ2VzLmZsYXRNYXAoKHJhbmdlKSA9PiB7XG4gICAgY29uc3QgW3N0YXJ0LCBlbmRdID0gcmFuZ2Uuc3BsaXQoJy0nKTtcbiAgICBpZiAoZW5kKSB7XG4gICAgICByZXR1cm4gZ2V0UmFuZ2UoTnVtYmVyKHN0YXJ0KSwgTnVtYmVyKGVuZCkpO1xuICAgIH1cbiAgICByZXR1cm4gW051bWJlcihzdGFydCldO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uKiBnZW5lcmF0ZUFkZHJlc3MoXG4gIGFyZ3Y6IEtleU9wdGlvbnMgJiB7XG4gICAgbmV0d29yaz86IHV0eG9saWIuTmV0d29yaztcbiAgICBjaGFpbj86IG51bWJlcltdO1xuICAgIGZvcm1hdDogc3RyaW5nO1xuICAgIGluZGV4OiBudW1iZXJbXTtcbiAgfVxuKTogR2VuZXJhdG9yPEFkZHJlc3NQcm9wZXJ0aWVzPiB7XG4gIGNvbnN0IHJvb3RYcHVicyA9IGdldFJvb3RXYWxsZXRLZXlzKGFyZ3YpO1xuICBjb25zdCBjaGFpbnMgPSBhcmd2LmNoYWluID8/IGdldERlZmF1bHRDaGFpbkNvZGVzKCk7XG4gIGZvciAoY29uc3QgaSBvZiBhcmd2LmluZGV4KSB7XG4gICAgZm9yIChjb25zdCBjaGFpbiBvZiBjaGFpbnMpIHtcbiAgICAgIGFzc2VydCh1dHhvbGliLmJpdGdvLmlzQ2hhaW5Db2RlKGNoYWluKSk7XG4gICAgICAvLyB5aWVsZCBmb3JtYXRBZGRyZXNzKHJvb3RYcHVicywgY2hhaW4sIGksIGFyZ3YubmV0d29yayA/PyB1dHhvbGliLm5ldHdvcmtzLmJpdGNvaW4sIGFyZ3YuZm9ybWF0KTtcbiAgICAgIHlpZWxkIGdldEFkZHJlc3NQcm9wZXJ0aWVzKHJvb3RYcHVicywgY2hhaW4sIGksIGFyZ3YubmV0d29yayA/PyB1dHhvbGliLm5ldHdvcmtzLmJpdGNvaW4pO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
111
|
+
exports.generateFixedScriptAddress = generateFixedScriptAddress;
|
|
112
|
+
const descriptorAddressPlaceholders = {
|
|
113
|
+
'%d': 'descriptor',
|
|
114
|
+
'%i': 'index',
|
|
115
|
+
'%e': 'explicitScript',
|
|
116
|
+
'%s': 'scriptPubKey',
|
|
117
|
+
'%a': 'address',
|
|
118
|
+
};
|
|
119
|
+
function getDescriptorAddressPlaceholderDescription() {
|
|
120
|
+
return getAsPlaceholderDescription(descriptorAddressPlaceholders);
|
|
121
|
+
}
|
|
122
|
+
exports.getDescriptorAddressPlaceholderDescription = getDescriptorAddressPlaceholderDescription;
|
|
123
|
+
function formatDescriptorAddress(props, format) {
|
|
124
|
+
return formatAddressWithFormatString(props, descriptorAddressPlaceholders, format);
|
|
125
|
+
}
|
|
126
|
+
exports.formatDescriptorAddress = formatDescriptorAddress;
|
|
127
|
+
function* generateDescriptorAddress(argv) {
|
|
128
|
+
const descriptor = wasm_miniscript_1.Descriptor.fromString(argv.descriptor, 'derivable');
|
|
129
|
+
for (const i of argv.index) {
|
|
130
|
+
const derived = descriptor.atDerivationIndex(i);
|
|
131
|
+
const explicitScript = Buffer.from(derived.encode());
|
|
132
|
+
const scriptPubKey = Buffer.from(derived.scriptPubkey());
|
|
133
|
+
const address = utxolib.address.fromOutputScript(scriptPubKey, argv.network);
|
|
134
|
+
yield {
|
|
135
|
+
descriptor: derived.toString(),
|
|
136
|
+
index: i,
|
|
137
|
+
address,
|
|
138
|
+
explicitScript: explicitScript.toString('hex'),
|
|
139
|
+
scriptPubKey: scriptPubKey.toString('hex'),
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
exports.generateDescriptorAddress = generateDescriptorAddress;
|
|
144
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGVBZGRyZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2dlbmVyYXRlQWRkcmVzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxpQ0FBaUM7QUFFakMsMkNBQTJDO0FBQzNDLDREQUFvRDtBQUVwRCxxQ0FBa0M7QUFDbEMsaURBQThDO0FBQzlDLHFDQUFzQztBQUN0QyxpQ0FBdUQ7QUFFdkQsU0FBUyxvQkFBb0I7SUFDM0IsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNO0lBQ3BDLHdEQUF3RDtJQUN4RCxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsS0FBSyxNQUFNLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsS0FBSyxZQUFZLENBQzlHLENBQUM7QUFDSixDQUFDO0FBa0JELE1BQU0sdUJBQXVCLEdBQUc7SUFDOUIsSUFBSSxFQUFFLE9BQU87SUFDYixJQUFJLEVBQUUsT0FBTztJQUNiLElBQUksRUFBRSxVQUFVO0lBQ2hCLElBQUksRUFBRSxNQUFNO0lBQ1osS0FBSyxFQUFFLFVBQVU7SUFDakIsS0FBSyxFQUFFLFlBQVk7SUFDbkIsS0FBSyxFQUFFLFdBQVc7SUFDbEIsS0FBSyxFQUFFLFNBQVM7SUFDaEIsS0FBSyxFQUFFLFdBQVc7SUFDbEIsS0FBSyxFQUFFLFVBQVU7SUFDakIsSUFBSSxFQUFFLGNBQWM7SUFDcEIsSUFBSSxFQUFFLGNBQWM7SUFDcEIsSUFBSSxFQUFFLGVBQWU7SUFDckIsSUFBSSxFQUFFLFNBQVM7Q0FDUCxDQUFDO0FBRVgsU0FBZ0IsMkJBQTJCLENBQUMsQ0FBeUI7SUFDbkUsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztTQUNyQixHQUFHLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsRUFBRSxF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RUFBRSxDQUFDO1lBQ1IsT0FBTztZQUNQLGNBQWMsRUFBRSxjQUFjLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztZQUM5QyxZQUFZLEVBQUUsWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7U0FDM0MsQ0FBQztLQUNIO0FBQ0gsQ0FBQztBQXBCRCw4REFvQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcblxuaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28vdXR4by1saWInO1xuaW1wb3J0IHsgRGVzY3JpcHRvciB9IGZyb20gJ0BiaXRnby93YXNtLW1pbmlzY3JpcHQnO1xuXG5pbXBvcnQgeyBQYXJzZXIgfSBmcm9tICcuL1BhcnNlcic7XG5pbXBvcnQgeyBwYXJzZVVua25vd24gfSBmcm9tICcuL3BhcnNlVW5rbm93bic7XG5pbXBvcnQgeyBmb3JtYXRUcmVlIH0gZnJvbSAnLi9mb3JtYXQnO1xuaW1wb3J0IHsgS2V5T3B0aW9ucywgZ2V0Um9vdFdhbGxldEtleXMgfSBmcm9tICcuL2FyZ3MnO1xuXG5mdW5jdGlvbiBnZXREZWZhdWx0Q2hhaW5Db2RlcygpOiBudW1iZXJbXSB7XG4gIHJldHVybiB1dHhvbGliLmJpdGdvLmNoYWluQ29kZXMuZmlsdGVyKFxuICAgIC8vIHRoZXNlIGFyZSByYXJlIGFuZCBzaG93IGFuIGFubm95aW5nIHdhcm5pbmcgaW4gc3RkZXJyXG4gICAgKGMpID0+IHV0eG9saWIuYml0Z28uc2NyaXB0VHlwZUZvckNoYWluKGMpICE9PSAncDJ0cicgJiYgdXR4b2xpYi5iaXRnby5zY3JpcHRUeXBlRm9yQ2hhaW4oYykgIT09ICdwMnRyTXVzaWcyJ1xuICApO1xufVxuXG50eXBlIEZpeGVkU2NyaXB0QWRkcmVzc1Byb3BlcnRpZXMgPSB7XG4gIGNoYWluOiB1dHhvbGliLmJpdGdvLkNoYWluQ29kZTtcbiAgaW5kZXg6IG51bWJlcjtcbiAgdHlwZTogdXR4b2xpYi5iaXRnby5vdXRwdXRTY3JpcHRzLlNjcmlwdFR5cGU7XG4gIHVzZXJQYXRoOiBzdHJpbmc7XG4gIGJhY2t1cFBhdGg6IHN0cmluZztcbiAgYml0Z29QYXRoOiBzdHJpbmc7XG4gIHVzZXJLZXk6IHN0cmluZztcbiAgYmFja3VwS2V5OiBzdHJpbmc7XG4gIGJpdGdvS2V5OiBzdHJpbmc7XG4gIHJlZGVlbVNjcmlwdD86IHN0cmluZztcbiAgd2l0bmVzc1NjcmlwdD86IHN0cmluZztcbiAgc2NyaXB0UHViS2V5OiBzdHJpbmc7XG4gIGFkZHJlc3M6IHN0cmluZztcbn07XG5cbmNvbnN0IGZpeGVkU2NyaXB0UGxhY2Vob2xkZXJzID0ge1xuICAnJWMnOiAnY2hhaW4nLFxuICAnJWknOiAnaW5kZXgnLFxuICAnJXAnOiAndXNlclBhdGgnLFxuICAnJXQnOiAndHlwZScsXG4gICclcDAnOiAndXNlclBhdGgnLFxuICAnJXAxJzogJ2JhY2t1cFBhdGgnLFxuICAnJXAyJzogJ2JpdGdvUGF0aCcsXG4gICclazAnOiAndXNlcktleScsXG4gICclazEnOiAnYmFja3VwS2V5JyxcbiAgJyVrMic6ICdiaXRnb0tleScsXG4gICclcyc6ICdzY3JpcHRQdWJLZXknLFxuICAnJXInOiAncmVkZWVtU2NyaXB0JyxcbiAgJyV3JzogJ3dpdG5lc3NTY3JpcHQnLFxuICAnJWEnOiAnYWRkcmVzcycsXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QXNQbGFjZWhvbGRlckRlc2NyaXB0aW9uKHY6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pOiBzdHJpbmcge1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXModilcbiAgICAubWFwKChbcGxhY2Vob2xkZXIsIHByb3BdKSA9PiBgJHtwbGFjZWhvbGRlcn0gLT4gJHtwcm9wfWApXG4gICAgLmpvaW4oJ1xcbicpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rml4ZWRTY3JpcHRBZGRyZXNzUGxhY2Vob2xkZXJEZXNjcmlwdGlvbigpOiBzdHJpbmcge1xuICByZXR1cm4gZ2V0QXNQbGFjZWhvbGRlckRlc2NyaXB0aW9uKGZpeGVkU2NyaXB0UGxhY2Vob2xkZXJzKTtcbn1cblxuZnVuY3Rpb24gZ2V0QWRkcmVzc1Byb3BlcnRpZXMoXG4gIGtleXM6IHV0eG9saWIuYml0Z28uUm9vdFdhbGxldEtleXMsXG4gIGNoYWluOiB1dHhvbGliLmJpdGdvLkNoYWluQ29kZSxcbiAgaW5kZXg6IG51bWJlcixcbiAgbmV0d29yazogdXR4b2xpYi5OZXR3b3JrXG4pOiBGaXhlZFNjcmlwdEFkZHJlc3NQcm9wZXJ0aWVzIHtcbiAgY29uc3QgW3VzZXJQYXRoLCBiYWNrdXBQYXRoLCBiaXRnb1BhdGhdID0ga2V5cy50cmlwbGUubWFwKChrKSA9PiBrZXlzLmdldERlcml2YXRpb25QYXRoKGssIGNoYWluLCBpbmRleCkpO1xuICBjb25zdCBzY3JpcHRzID0gdXR4b2xpYi5iaXRnby5nZXRXYWxsZXRPdXRwdXRTY3JpcHRzKGtleXMsIGNoYWluLCBpbmRleCk7XG4gIGNvbnN0IFt1c2VyS2V5LCBiYWNrdXBLZXksIGJpdGdvS2V5XSA9IGtleXMudHJpcGxlLm1hcCgoaykgPT4gay5kZXJpdmVQYXRoKHVzZXJQYXRoKS5wdWJsaWNLZXkudG9TdHJpbmcoJ2hleCcpKTtcbiAgY29uc3QgYWRkcmVzcyA9IHV0eG9saWIuYWRkcmVzcy5mcm9tT3V0cHV0U2NyaXB0KHNjcmlwdHMuc2NyaXB0UHViS2V5LCBuZXR3b3JrKTtcbiAgcmV0dXJuIHtcbiAgICBjaGFpbixcbiAgICBpbmRleCxcbiAgICB0eXBlOiB1dHhvbGliLmJpdGdvLnNjcmlwdFR5cGVGb3JDaGFpbihjaGFpbiksXG4gICAgdXNlclBhdGgsXG4gICAgYmFja3VwUGF0aCxcbiAgICBiaXRnb1BhdGgsXG4gICAgdXNlcktleSxcbiAgICBiYWNrdXBLZXksXG4gICAgYml0Z29LZXksXG4gICAgc2NyaXB0UHViS2V5OiBzY3JpcHRzLnNjcmlwdFB1YktleS50b1N0cmluZygnaGV4JyksXG4gICAgcmVkZWVtU2NyaXB0OiBzY3JpcHRzLnJlZGVlbVNjcmlwdD8udG9TdHJpbmcoJ2hleCcpLFxuICAgIHdpdG5lc3NTY3JpcHQ6IHNjcmlwdHMud2l0bmVzc1NjcmlwdD8udG9TdHJpbmcoJ2hleCcpLFxuICAgIGFkZHJlc3MsXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRBZGRyZXNzVHJlZShwcm9wczogRml4ZWRTY3JpcHRBZGRyZXNzUHJvcGVydGllcyB8IERlc2NyaXB0b3JBZGRyZXNzUHJvcGVydGllcyk6IHN0cmluZyB7XG4gIGNvbnN0IHBhcnNlciA9IG5ldyBQYXJzZXIoKTtcbiAgcmV0dXJuIGZvcm1hdFRyZWUocGFyc2VVbmtub3duKHBhcnNlciwgJ2FkZHJlc3MnLCBwcm9wcykpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0QWRkcmVzc1dpdGhGb3JtYXRTdHJpbmcoXG4gIHByb3BzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgcGxhY2Vob2xkZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxuICBmb3JtYXQ6IHN0cmluZ1xuKTogc3RyaW5nIHtcbiAgLy8gcmVwbGFjZSBhbGwgcGF0dGVybnMgd2l0aCBhICUgcHJlZml4IGZyb20gZm9ybWF0IHN0cmluZyB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIHByb3BlcnR5XG4gIC8vIGUuZy4gJXAwIC0+IHVzZXJQYXRoLCAlazEgLT4gYmFja3VwS2V5LCBldGMuXG4gIHJldHVybiBmb3JtYXQucmVwbGFjZSgvJVthLXowLTldKy9naSwgKG1hdGNoKSA9PiB7XG4gICAgaWYgKG1hdGNoIGluIHBsYWNlaG9sZGVycykge1xuICAgICAgY29uc3QgcHJvcCA9IHBsYWNlaG9sZGVyc1ttYXRjaF07XG4gICAgICByZXR1cm4gU3RyaW5nKHByb3BzW3Byb3BdKTtcbiAgICB9XG4gICAgcmV0dXJuIG1hdGNoO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdEZpeGVkU2NyaXB0QWRkcmVzcyhwcm9wczogRml4ZWRTY3JpcHRBZGRyZXNzUHJvcGVydGllcywgZm9ybWF0OiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gZm9ybWF0QWRkcmVzc1dpdGhGb3JtYXRTdHJpbmcocHJvcHMsIGZpeGVkU2NyaXB0UGxhY2Vob2xkZXJzLCBmb3JtYXQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmFuZ2Uoc3RhcnQ6IG51bWJlciwgZW5kOiBudW1iZXIpOiBudW1iZXJbXSB7XG4gIHJldHVybiBBcnJheS5mcm9tKHsgbGVuZ3RoOiBlbmQgLSBzdGFydCArIDEgfSwgKF8sIGkpID0+IHN0YXJ0ICsgaSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUluZGV4UmFuZ2UocmFuZ2VzOiBzdHJpbmdbXSk6IG51bWJlcltdIHtcbiAgcmV0dXJuIHJhbmdlcy5mbGF0TWFwKChyYW5nZSkgPT4ge1xuICAgIGNvbnN0IFtzdGFydCwgZW5kXSA9IHJhbmdlLnNwbGl0KCctJyk7XG4gICAgaWYgKGVuZCkge1xuICAgICAgcmV0dXJuIGdldFJhbmdlKE51bWJlcihzdGFydCksIE51bWJlcihlbmQpKTtcbiAgICB9XG4gICAgcmV0dXJuIFtOdW1iZXIoc3RhcnQpXTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiogZ2VuZXJhdGVGaXhlZFNjcmlwdEFkZHJlc3MoXG4gIGFyZ3Y6IEtleU9wdGlvbnMgJiB7XG4gICAgbmV0d29yaz86IHV0eG9saWIuTmV0d29yaztcbiAgICBjaGFpbj86IG51bWJlcltdO1xuICAgIGZvcm1hdDogc3RyaW5nO1xuICAgIGluZGV4OiBudW1iZXJbXTtcbiAgfVxuKTogR2VuZXJhdG9yPEZpeGVkU2NyaXB0QWRkcmVzc1Byb3BlcnRpZXM+IHtcbiAgY29uc3Qgcm9vdFhwdWJzID0gZ2V0Um9vdFdhbGxldEtleXMoYXJndik7XG4gIGNvbnN0IGNoYWlucyA9IGFyZ3YuY2hhaW4gPz8gZ2V0RGVmYXVsdENoYWluQ29kZXMoKTtcbiAgZm9yIChjb25zdCBpIG9mIGFyZ3YuaW5kZXgpIHtcbiAgICBmb3IgKGNvbnN0IGNoYWluIG9mIGNoYWlucykge1xuICAgICAgYXNzZXJ0KHV0eG9saWIuYml0Z28uaXNDaGFpbkNvZGUoY2hhaW4pKTtcbiAgICAgIC8vIHlpZWxkIGZvcm1hdEFkZHJlc3Mocm9vdFhwdWJzLCBjaGFpbiwgaSwgYXJndi5uZXR3b3JrID8/IHV0eG9saWIubmV0d29ya3MuYml0Y29pbiwgYXJndi5mb3JtYXQpO1xuICAgICAgeWllbGQgZ2V0QWRkcmVzc1Byb3BlcnRpZXMocm9vdFhwdWJzLCBjaGFpbiwgaSwgYXJndi5uZXR3b3JrID8/IHV0eG9saWIubmV0d29ya3MuYml0Y29pbik7XG4gICAgfVxuICB9XG59XG5cbnR5cGUgRGVzY3JpcHRvckFkZHJlc3NQcm9wZXJ0aWVzID0ge1xuICBkZXNjcmlwdG9yOiBzdHJpbmc7XG4gIGluZGV4OiBudW1iZXI7XG4gIGV4cGxpY2l0U2NyaXB0OiBzdHJpbmc7XG4gIHNjcmlwdFB1YktleTogc3RyaW5nO1xuICBhZGRyZXNzOiBzdHJpbmc7XG59O1xuXG5jb25zdCBkZXNjcmlwdG9yQWRkcmVzc1BsYWNlaG9sZGVycyA9IHtcbiAgJyVkJzogJ2Rlc2NyaXB0b3InLFxuICAnJWknOiAnaW5kZXgnLFxuICAnJWUnOiAnZXhwbGljaXRTY3JpcHQnLFxuICAnJXMnOiAnc2NyaXB0UHViS2V5JyxcbiAgJyVhJzogJ2FkZHJlc3MnLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlc2NyaXB0b3JBZGRyZXNzUGxhY2Vob2xkZXJEZXNjcmlwdGlvbigpOiBzdHJpbmcge1xuICByZXR1cm4gZ2V0QXNQbGFjZWhvbGRlckRlc2NyaXB0aW9uKGRlc2NyaXB0b3JBZGRyZXNzUGxhY2Vob2xkZXJzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdERlc2NyaXB0b3JBZGRyZXNzKHByb3BzOiBEZXNjcmlwdG9yQWRkcmVzc1Byb3BlcnRpZXMsIGZvcm1hdDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGZvcm1hdEFkZHJlc3NXaXRoRm9ybWF0U3RyaW5nKHByb3BzLCBkZXNjcmlwdG9yQWRkcmVzc1BsYWNlaG9sZGVycywgZm9ybWF0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uKiBnZW5lcmF0ZURlc2NyaXB0b3JBZGRyZXNzKGFyZ3Y6IHtcbiAgbmV0d29yazogdXR4b2xpYi5OZXR3b3JrO1xuICBkZXNjcmlwdG9yOiBzdHJpbmc7XG4gIGZvcm1hdDogc3RyaW5nO1xuICBpbmRleDogbnVtYmVyW107XG59KTogR2VuZXJhdG9yPERlc2NyaXB0b3JBZGRyZXNzUHJvcGVydGllcz4ge1xuICBjb25zdCBkZXNjcmlwdG9yID0gRGVzY3JpcHRvci5mcm9tU3RyaW5nKGFyZ3YuZGVzY3JpcHRvciwgJ2Rlcml2YWJsZScpO1xuICBmb3IgKGNvbnN0IGkgb2YgYXJndi5pbmRleCkge1xuICAgIGNvbnN0IGRlcml2ZWQgPSBkZXNjcmlwdG9yLmF0RGVyaXZhdGlvbkluZGV4KGkpO1xuICAgIGNvbnN0IGV4cGxpY2l0U2NyaXB0ID0gQnVmZmVyLmZyb20oZGVyaXZlZC5lbmNvZGUoKSk7XG4gICAgY29uc3Qgc2NyaXB0UHViS2V5ID0gQnVmZmVyLmZyb20oZGVyaXZlZC5zY3JpcHRQdWJrZXkoKSk7XG4gICAgY29uc3QgYWRkcmVzcyA9IHV0eG9saWIuYWRkcmVzcy5mcm9tT3V0cHV0U2NyaXB0KHNjcmlwdFB1YktleSwgYXJndi5uZXR3b3JrKTtcbiAgICB5aWVsZCB7XG4gICAgICBkZXNjcmlwdG9yOiBkZXJpdmVkLnRvU3RyaW5nKCksXG4gICAgICBpbmRleDogaSxcbiAgICAgIGFkZHJlc3MsXG4gICAgICBleHBsaWNpdFNjcmlwdDogZXhwbGljaXRTY3JpcHQudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgc2NyaXB0UHViS2V5OiBzY3JpcHRQdWJLZXkudG9TdHJpbmcoJ2hleCcpLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,13 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const assert = require("assert");
|
|
4
|
+
const utxolib = require("@bitgo/utxo-lib");
|
|
4
5
|
const generateAddress_1 = require("../src/generateAddress");
|
|
5
6
|
const bip32_util_1 = require("./bip32.util");
|
|
6
7
|
describe('generateAddresses', function () {
|
|
8
|
+
const [userKey, backupKey, bitgoKey] = (0, bip32_util_1.getKeyTriple)('generateAddress').map((k) => k.neutered().toBase58());
|
|
9
|
+
// addr${chain}${index}
|
|
10
|
+
const [addr00, addr10, addr01, addr11] = [
|
|
11
|
+
'38FHxcU7KY4E2nDEezEVcKWGvHy9717ehF',
|
|
12
|
+
'35Qg1UqVWSJdtF1ysfz9h3KRGdk9uH8iYx',
|
|
13
|
+
'3ARnshsLXE9QfJemQdoKL2kp6TRqGohLDz',
|
|
14
|
+
'3QxKW93NN8CQrKaNqkDsAXPyxPsrxfTYME',
|
|
15
|
+
];
|
|
7
16
|
it('should generate addresses', function () {
|
|
8
|
-
const [userKey, backupKey, bitgoKey] = (0, bip32_util_1.getKeyTriple)('generateAddress').map((k) => k.neutered().toBase58());
|
|
9
17
|
const lines = [];
|
|
10
|
-
for (const l of (0, generateAddress_1.
|
|
18
|
+
for (const l of (0, generateAddress_1.generateFixedScriptAddress)({
|
|
11
19
|
userKey,
|
|
12
20
|
backupKey,
|
|
13
21
|
bitgoKey,
|
|
@@ -15,15 +23,24 @@ describe('generateAddresses', function () {
|
|
|
15
23
|
format: '%a',
|
|
16
24
|
chain: [0, 1],
|
|
17
25
|
})) {
|
|
18
|
-
lines.push((0, generateAddress_1.
|
|
26
|
+
lines.push((0, generateAddress_1.formatFixedScriptAddress)(l, '%a'));
|
|
19
27
|
}
|
|
20
28
|
assert.strictEqual(lines.length, 4);
|
|
21
|
-
assert.deepStrictEqual(lines, [
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
]
|
|
29
|
+
assert.deepStrictEqual(lines, [addr00, addr10, addr01, addr11]);
|
|
30
|
+
});
|
|
31
|
+
it('should generate descriptor addresses', function () {
|
|
32
|
+
// only generate addresses for chain 0
|
|
33
|
+
const xpubs = [userKey, backupKey, bitgoKey].map((x) => x + '/0/0/0/*');
|
|
34
|
+
const lines = [];
|
|
35
|
+
for (const l of (0, generateAddress_1.generateDescriptorAddress)({
|
|
36
|
+
network: utxolib.networks.bitcoin,
|
|
37
|
+
descriptor: `sh(multi(2,${xpubs.join(',')}))`,
|
|
38
|
+
index: (0, generateAddress_1.parseIndexRange)(['0-1']),
|
|
39
|
+
format: '%d',
|
|
40
|
+
})) {
|
|
41
|
+
lines.push((0, generateAddress_1.formatDescriptorAddress)(l, '%a'));
|
|
42
|
+
}
|
|
43
|
+
assert.deepStrictEqual(lines, [addr00, addr01]);
|
|
27
44
|
});
|
|
28
45
|
});
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGVBZGRyZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdGVzdC9nZW5lcmF0ZUFkZHJlc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxpQ0FBaUM7QUFFakMsMkNBQTJDO0FBRTNDLDREQU1nQztBQUVoQyw2Q0FBNEM7QUFFNUMsUUFBUSxDQUFDLG1CQUFtQixFQUFFO0lBQzVCLE1BQU0sQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsQ0FBQyxHQUFHLElBQUEseUJBQVksRUFBQyxpQkFBaUIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDM0csdUJBQXVCO0lBQ3ZCLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsR0FBRztRQUN2QyxvQ0FBb0M7UUFDcEMsb0NBQW9DO1FBQ3BDLG9DQUFvQztRQUNwQyxvQ0FBb0M7S0FDckMsQ0FBQztJQUNGLEVBQUUsQ0FBQywyQkFBMkIsRUFBRTtRQUM5QixNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDakIsS0FBSyxNQUFNLENBQUMsSUFBSSxJQUFBLDRDQUEwQixFQUFDO1lBQ3pDLE9BQU87WUFDUCxTQUFTO1lBQ1QsUUFBUTtZQUNSLEtBQUssRUFBRSxJQUFBLGlDQUFlLEVBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMvQixNQUFNLEVBQUUsSUFBSTtZQUNaLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDZCxDQUFDLEVBQUU7WUFDRixLQUFLLENBQUMsSUFBSSxDQUFDLElBQUEsMENBQXdCLEVBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDL0M7UUFFRCxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDcEMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ2xFLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLHNDQUFzQyxFQUFFO1FBQ3pDLHNDQUFzQztRQUN0QyxNQUFNLEtBQUssR0FBRyxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUM7UUFDeEUsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLEtBQUssTUFBTSxDQUFDLElBQUksSUFBQSwyQ0FBeUIsRUFBQztZQUN4QyxPQUFPLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPO1lBQ2pDLFVBQVUsRUFBRSxjQUFjLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUk7WUFDN0MsS0FBSyxFQUFFLElBQUEsaUNBQWUsRUFBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQy9CLE1BQU0sRUFBRSxJQUFJO1NBQ2IsQ0FBQyxFQUFFO1lBQ0YsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFBLHlDQUF1QixFQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQzlDO1FBQ0QsTUFBTSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNsRCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvL3V0eG8tbGliJztcblxuaW1wb3J0IHtcbiAgZm9ybWF0RGVzY3JpcHRvckFkZHJlc3MsXG4gIGZvcm1hdEZpeGVkU2NyaXB0QWRkcmVzcyxcbiAgZ2VuZXJhdGVEZXNjcmlwdG9yQWRkcmVzcyxcbiAgZ2VuZXJhdGVGaXhlZFNjcmlwdEFkZHJlc3MsXG4gIHBhcnNlSW5kZXhSYW5nZSxcbn0gZnJvbSAnLi4vc3JjL2dlbmVyYXRlQWRkcmVzcyc7XG5cbmltcG9ydCB7IGdldEtleVRyaXBsZSB9IGZyb20gJy4vYmlwMzIudXRpbCc7XG5cbmRlc2NyaWJlKCdnZW5lcmF0ZUFkZHJlc3NlcycsIGZ1bmN0aW9uICgpIHtcbiAgY29uc3QgW3VzZXJLZXksIGJhY2t1cEtleSwgYml0Z29LZXldID0gZ2V0S2V5VHJpcGxlKCdnZW5lcmF0ZUFkZHJlc3MnKS5tYXAoKGspID0+IGsubmV1dGVyZWQoKS50b0Jhc2U1OCgpKTtcbiAgLy8gYWRkciR7Y2hhaW59JHtpbmRleH1cbiAgY29uc3QgW2FkZHIwMCwgYWRkcjEwLCBhZGRyMDEsIGFkZHIxMV0gPSBbXG4gICAgJzM4Rkh4Y1U3S1k0RTJuREVlekVWY0tXR3ZIeTk3MTdlaEYnLFxuICAgICczNVFnMVVxVldTSmR0RjF5c2Z6OWgzS1JHZGs5dUg4aVl4JyxcbiAgICAnM0FSbnNoc0xYRTlRZkplbVFkb0tMMmtwNlRScUdvaExEeicsXG4gICAgJzNReEtXOTNOTjhDUXJLYU5xa0RzQVhQeXhQc3J4ZlRZTUUnLFxuICBdO1xuICBpdCgnc2hvdWxkIGdlbmVyYXRlIGFkZHJlc3NlcycsIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCBsaW5lcyA9IFtdO1xuICAgIGZvciAoY29uc3QgbCBvZiBnZW5lcmF0ZUZpeGVkU2NyaXB0QWRkcmVzcyh7XG4gICAgICB1c2VyS2V5LFxuICAgICAgYmFja3VwS2V5LFxuICAgICAgYml0Z29LZXksXG4gICAgICBpbmRleDogcGFyc2VJbmRleFJhbmdlKFsnMC0xJ10pLFxuICAgICAgZm9ybWF0OiAnJWEnLFxuICAgICAgY2hhaW46IFswLCAxXSxcbiAgICB9KSkge1xuICAgICAgbGluZXMucHVzaChmb3JtYXRGaXhlZFNjcmlwdEFkZHJlc3MobCwgJyVhJykpO1xuICAgIH1cblxuICAgIGFzc2VydC5zdHJpY3RFcXVhbChsaW5lcy5sZW5ndGgsIDQpO1xuICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwobGluZXMsIFthZGRyMDAsIGFkZHIxMCwgYWRkcjAxLCBhZGRyMTFdKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBnZW5lcmF0ZSBkZXNjcmlwdG9yIGFkZHJlc3NlcycsIGZ1bmN0aW9uICgpIHtcbiAgICAvLyBvbmx5IGdlbmVyYXRlIGFkZHJlc3NlcyBmb3IgY2hhaW4gMFxuICAgIGNvbnN0IHhwdWJzID0gW3VzZXJLZXksIGJhY2t1cEtleSwgYml0Z29LZXldLm1hcCgoeCkgPT4geCArICcvMC8wLzAvKicpO1xuICAgIGNvbnN0IGxpbmVzID0gW107XG4gICAgZm9yIChjb25zdCBsIG9mIGdlbmVyYXRlRGVzY3JpcHRvckFkZHJlc3Moe1xuICAgICAgbmV0d29yazogdXR4b2xpYi5uZXR3b3Jrcy5iaXRjb2luLFxuICAgICAgZGVzY3JpcHRvcjogYHNoKG11bHRpKDIsJHt4cHVicy5qb2luKCcsJyl9KSlgLFxuICAgICAgaW5kZXg6IHBhcnNlSW5kZXhSYW5nZShbJzAtMSddKSxcbiAgICAgIGZvcm1hdDogJyVkJyxcbiAgICB9KSkge1xuICAgICAgbGluZXMucHVzaChmb3JtYXREZXNjcmlwdG9yQWRkcmVzcyhsLCAnJWEnKSk7XG4gICAgfVxuICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwobGluZXMsIFthZGRyMDAsIGFkZHIwMV0pO1xuICB9KTtcbn0pO1xuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseAddress.d.ts","sourceRoot":"","sources":["../../test/parseAddress.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"parseAddress.d.ts","sourceRoot":"","sources":["../../test/parseAddress.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAO3C,QAAA,MAAM,WAAW,iFAAqF,CAAC;AACvG,KAAK,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"}
|
|
@@ -4,9 +4,9 @@ exports.isSupportedDepositType = void 0;
|
|
|
4
4
|
const assert = require("assert");
|
|
5
5
|
const yargs = require("yargs");
|
|
6
6
|
const utxolib = require("@bitgo/utxo-lib");
|
|
7
|
-
const commands_1 = require("../src/commands");
|
|
8
7
|
const fixtures_1 = require("./fixtures");
|
|
9
8
|
const bip32_util_1 = require("./bip32.util");
|
|
9
|
+
const cmdParse_1 = require("../src/commands/cmdAddress/cmdParse");
|
|
10
10
|
const scriptTypesSingleSig = ['p2pkh', 'p2wkh'];
|
|
11
11
|
const scriptTypes = [...utxolib.bitgo.outputScripts.scriptTypes2Of3, ...scriptTypesSingleSig];
|
|
12
12
|
function isSupportedDepositType(network, scriptType) {
|
|
@@ -57,7 +57,7 @@ function getAddresses(n) {
|
|
|
57
57
|
]));
|
|
58
58
|
}
|
|
59
59
|
function parse(address, args) {
|
|
60
|
-
return (0,
|
|
60
|
+
return (0, cmdParse_1.getAddressParser)(yargs.command(cmdParse_1.cmdParse).parseSync(args)).parse(address);
|
|
61
61
|
}
|
|
62
62
|
function testParseAddress(network, type, addressFormat, address, args, suffix) {
|
|
63
63
|
describe(`parse address ${address} with arguments ${args.join(' ')}`, function () {
|
|
@@ -78,4 +78,4 @@ utxolib.getNetworkList().forEach((n) => {
|
|
|
78
78
|
}
|
|
79
79
|
});
|
|
80
80
|
});
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VBZGRyZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdGVzdC9wYXJzZUFkZHJlc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaUNBQWlDO0FBRWpDLCtCQUErQjtBQUMvQiwyQ0FBMkM7QUFFM0MseUNBQWlFO0FBQ2pFLDZDQUF1RDtBQUN2RCxrRUFBaUY7QUFFakYsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQVUsQ0FBQztBQUN6RCxNQUFNLFdBQVcsR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsZUFBZSxFQUFFLEdBQUcsb0JBQW9CLENBQVUsQ0FBQztBQUd2RyxTQUFnQixzQkFBc0IsQ0FBQyxPQUF3QixFQUFFLFVBQXNCO0lBQ3JGLElBQUksVUFBVSxLQUFLLE9BQU8sRUFBRTtRQUMxQixPQUFPLElBQUksQ0FBQztLQUNiO0lBRUQsSUFBSSxVQUFVLEtBQUssT0FBTyxFQUFFO1FBQzFCLE9BQU8sT0FBTyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztLQUN4QztJQUVELE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMscUJBQXFCLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQ2hGLENBQUM7QUFWRCx3REFVQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxTQUFTLGtCQUFrQixDQUFDLElBQWUsRUFBRSxVQUFzQixFQUFFLE9BQXdCO0lBQzNGLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUU3QyxRQUFRLFVBQVUsRUFBRTtRQUNsQixLQUFLLE1BQU0sQ0FBQztRQUNaLEtBQUssV0FBVyxDQUFDO1FBQ2pCLEtBQUssT0FBTyxDQUFDO1FBQ2IsS0FBSyxNQUFNLENBQUM7UUFDWixLQUFLLFlBQVk7WUFD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LE9BQU8sQ0FBQyxjQUFjLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtJQUNyQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQzVELGdCQUFnQixDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDMUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDM0csZ0JBQWdCLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7U0FDdEU7SUFDSCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbmltcG9ydCAqIGFzIHlhcmdzIGZyb20gJ3lhcmdzJztcbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvL3V0eG8tbGliJztcblxuaW1wb3J0IHsgZm9ybWF0VHJlZU5vQ29sb3IsIGdldEZpeHR1cmVTdHJpbmcgfSBmcm9tICcuL2ZpeHR1cmVzJztcbmltcG9ydCB7IGdldEtleVRyaXBsZSwgS2V5VHJpcGxlIH0gZnJvbSAnLi9iaXAzMi51dGlsJztcbmltcG9ydCB7IGdldEFkZHJlc3NQYXJzZXIsIGNtZFBhcnNlIH0gZnJvbSAnLi4vc3JjL2NvbW1hbmRzL2NtZEFkZHJlc3MvY21kUGFyc2UnO1xuXG5jb25zdCBzY3JpcHRUeXBlc1NpbmdsZVNpZyA9IFsncDJwa2gnLCAncDJ3a2gnXSBhcyBjb25zdDtcbmNvbnN0IHNjcmlwdFR5cGVzID0gWy4uLnV0eG9saWIuYml0Z28ub3V0cHV0U2NyaXB0cy5zY3JpcHRUeXBlczJPZjMsIC4uLnNjcmlwdFR5cGVzU2luZ2xlU2lnXSBhcyBjb25zdDtcbnR5cGUgU2NyaXB0VHlwZSA9ICh0eXBlb2Ygc2NyaXB0VHlwZXMpW251bWJlcl07XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1N1cHBvcnRlZERlcG9zaXRUeXBlKG5ldHdvcms6IHV0eG9saWIuTmV0d29yaywgc2NyaXB0VHlwZTogU2NyaXB0VHlwZSk6IGJvb2xlYW4ge1xuICBpZiAoc2NyaXB0VHlwZSA9PT0gJ3AycGtoJykge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgaWYgKHNjcmlwdFR5cGUgPT09ICdwMndraCcpIHtcbiAgICByZXR1cm4gdXR4b2xpYi5zdXBwb3J0c1NlZ3dpdChuZXR3b3JrKTtcbiAgfVxuXG4gIHJldHVybiB1dHhvbGliLmJpdGdvLm91dHB1dFNjcmlwdHMuaXNTdXBwb3J0ZWRTY3JpcHRUeXBlKG5ldHdvcmssIHNjcmlwdFR5cGUpO1xufVxuXG4vKipcbiAqXG4gKiBAcGFyYW0ga2V5cyAtIFB1YmtleXMgdG8gdXNlIGZvciBnZW5lcmF0aW5nIHRoZSBhZGRyZXNzLlxuICogICAgICAgICAgICAgICBJZiBzY3JpcHRUeXBlIGlzIHNpbmdsZS1zaWcsIHRoZSBmaXJzdCBrZXkgd2lsbCBiZSB1c2VkLlxuICogQHBhcmFtIHNjcmlwdFR5cGVcbiAqIEBwYXJhbSBuZXR3b3JrXG4gKiBAcmV0dXJuIHtCdWZmZXJ9IHNjcmlwdFB1YktleVxuICovXG5mdW5jdGlvbiBjcmVhdGVTY3JpcHRQdWJLZXkoa2V5czogS2V5VHJpcGxlLCBzY3JpcHRUeXBlOiBTY3JpcHRUeXBlLCBuZXR3b3JrOiB1dHhvbGliLk5ldHdvcmspOiBCdWZmZXIge1xuICBjb25zdCBwdWJrZXlzID0ga2V5cy5tYXAoKGspID0+IGsucHVibGljS2V5KTtcblxuICBzd2l0Y2ggKHNjcmlwdFR5cGUpIHtcbiAgICBjYXNlICdwMnNoJzpcbiAgICBjYXNlICdwMnNoUDJ3c2gnOlxuICAgIGNhc2UgJ3Ayd3NoJzpcbiAgICBjYXNlICdwMnRyJzpcbiAgICBjYXNlICdwMnRyTXVzaWcyJzpcbiAgICAgIHJldHVybiB1dHhvbGliLmJpdGdvLm91dHB1dFNjcmlwdHMuY3JlYXRlT3V0cHV0U2NyaXB0Mm9mMyhwdWJrZXlzLCBzY3JpcHRUeXBlKS5zY3JpcHRQdWJLZXk7XG4gICAgY2FzZSAncDJwa2gnOlxuICAgICAgcmV0dXJuIHV0eG9saWIucGF5bWVudHMucDJwa2goeyBwdWJrZXk6IGtleXNbMF0ucHVibGljS2V5IH0pLm91dHB1dCBhcyBCdWZmZXI7XG4gICAgY2FzZSAncDJ3a2gnOlxuICAgICAgcmV0dXJuIHV0eG9saWIucGF5bWVudHMucDJ3cGtoKHsgcHVia2V5OiBrZXlzWzBdLnB1YmxpY0tleSB9KS5vdXRwdXQgYXMgQnVmZmVyO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHVuc3VwcG9ydGVkIG91dHB1dCB0eXBlICR7c2NyaXB0VHlwZX1gKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRBZGRyZXNzZXMobjogdXR4b2xpYi5OZXR3b3JrKTogW3R5cGU6IHN0cmluZywgZm9ybWF0OiBzdHJpbmcsIGFkZHJlc3M6IHN0cmluZ11bXSB7XG4gIGNvbnN0IGtleXMgPSBnZXRLZXlUcmlwbGUoJ3BhcnNlQWRkcmVzcycpO1xuICByZXR1cm4gc2NyaXB0VHlwZXNcbiAgICAuZmlsdGVyKCh0KSA9PiBpc1N1cHBvcnRlZERlcG9zaXRUeXBlKG4sIHQpKVxuICAgIC5mbGF0TWFwKCh0KSA9PlxuICAgICAgdXR4b2xpYi5hZGRyZXNzRm9ybWF0LmFkZHJlc3NGb3JtYXRzXG4gICAgICAgIC5maWx0ZXIoKGZvcm1hdCkgPT4gdXR4b2xpYi5hZGRyZXNzRm9ybWF0LmlzU3VwcG9ydGVkQWRkcmVzc0Zvcm1hdChmb3JtYXQsIG4pKVxuICAgICAgICAubWFwKChmb3JtYXQpOiBbc3RyaW5nLCBzdHJpbmcsIHN0cmluZ10gPT4gW1xuICAgICAgICAgIHQsXG4gICAgICAgICAgZm9ybWF0LFxuICAgICAgICAgIHV0eG9saWIuYWRkcmVzc0Zvcm1hdC5mcm9tT3V0cHV0U2NyaXB0V2l0aEZvcm1hdChjcmVhdGVTY3JpcHRQdWJLZXkoa2V5cywgdCwgbiksIGZvcm1hdCwgbiksXG4gICAgICAgIF0pXG4gICAgKTtcbn1cblxuZnVuY3Rpb24gcGFyc2UoYWRkcmVzczogc3RyaW5nLCBhcmdzOiBzdHJpbmdbXSkge1xuICByZXR1cm4gZ2V0QWRkcmVzc1BhcnNlcih5YXJncy5jb21tYW5kKGNtZFBhcnNlKS5wYXJzZVN5bmMoYXJncykpLnBhcnNlKGFkZHJlc3MpO1xufVxuXG5mdW5jdGlvbiB0ZXN0UGFyc2VBZGRyZXNzKFxuICBuZXR3b3JrOiB1dHhvbGliLk5ldHdvcmssXG4gIHR5cGU6IHN0cmluZyxcbiAgYWRkcmVzc0Zvcm1hdDogc3RyaW5nLFxuICBhZGRyZXNzOiBzdHJpbmcsXG4gIGFyZ3M6IHN0cmluZ1tdLFxuICBzdWZmaXg6IHN0cmluZ1xuKSB7XG4gIGRlc2NyaWJlKGBwYXJzZSBhZGRyZXNzICR7YWRkcmVzc30gd2l0aCBhcmd1bWVudHMgJHthcmdzLmpvaW4oJyAnKX1gLCBmdW5jdGlvbiAoKSB7XG4gICAgaXQoYGZvcm1hdHMgYWRkcmVzc2AsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGZvcm1hdHRlZCA9IGZvcm1hdFRyZWVOb0NvbG9yKHBhcnNlKGFkZHJlc3MsIGFyZ3MpLCB7IHNob3dBbGw6IHRydWUgfSk7XG4gICAgICBjb25zdCBhZGRyTm9Db2xvbiA9IGFkZHJlc3MucmVwbGFjZSgnOicsICdfJyk7XG4gICAgICBjb25zdCBmaWxlbmFtZSA9IFt1dHhvbGliLmdldE5ldHdvcmtOYW1lKG5ldHdvcmspLCB0eXBlLCBhZGRyZXNzRm9ybWF0LCBhZGRyTm9Db2xvbiArIHN1ZmZpeF0uam9pbignXycpO1xuICAgICAgY29uc29sZS5sb2coZmlsZW5hbWUpO1xuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGF3YWl0IGdldEZpeHR1cmVTdHJpbmcoYHRlc3QvZml4dHVyZXMvZm9ybWF0QWRkcmVzcy8ke2ZpbGVuYW1lfS50eHRgLCBmb3JtYXR0ZWQpLCBmb3JtYXR0ZWQpO1xuICAgIH0pO1xuICB9KTtcbn1cblxudXR4b2xpYi5nZXROZXR3b3JrTGlzdCgpLmZvckVhY2goKG4pID0+IHtcbiAgZ2V0QWRkcmVzc2VzKG4pLmZvckVhY2goKFt0eXBlLCBhZGRyZXNzRm9ybWF0LCBhZGRyZXNzXSwgaSkgPT4ge1xuICAgIHRlc3RQYXJzZUFkZHJlc3MobiwgdHlwZSwgYWRkcmVzc0Zvcm1hdCwgYWRkcmVzcywgW10sICcnKTtcbiAgICBpZiAoW3V0eG9saWIubmV0d29ya3MuYml0Y29pbiwgdXR4b2xpYi5uZXR3b3Jrcy5iaXRjb2luY2FzaCwgdXR4b2xpYi5uZXR3b3Jrcy5lY2FzaF0uaW5jbHVkZXMobikgJiYgaSA9PT0gMCkge1xuICAgICAgdGVzdFBhcnNlQWRkcmVzcyhuLCB0eXBlLCBhZGRyZXNzRm9ybWF0LCBhZGRyZXNzLCBbJy0tYWxsJ10sICcuYWxsJyk7XG4gICAgfVxuICB9KTtcbn0pO1xuIl19
|