@bitgo-beta/utxo-bin 2.8.3-beta.504 → 2.8.3-beta.505

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.
Files changed (29) hide show
  1. package/dist/bin/index.js +2 -3
  2. package/dist/src/commands/cmdAddress/cmdGenerate.d.ts +21 -0
  3. package/dist/src/commands/cmdAddress/cmdGenerate.d.ts.map +1 -0
  4. package/dist/src/commands/cmdAddress/cmdGenerate.js +89 -0
  5. package/dist/src/commands/{cmdParseAddress.d.ts → cmdAddress/cmdParse.d.ts} +6 -6
  6. package/dist/src/commands/cmdAddress/cmdParse.d.ts.map +1 -0
  7. package/dist/src/commands/cmdAddress/cmdParse.js +28 -0
  8. package/dist/src/commands/cmdAddress/index.d.ts +3 -0
  9. package/dist/src/commands/cmdAddress/index.d.ts.map +1 -0
  10. package/dist/src/commands/cmdAddress/index.js +16 -0
  11. package/dist/src/commands/formatString.d.ts +1 -2
  12. package/dist/src/commands/formatString.d.ts.map +1 -1
  13. package/dist/src/commands/formatString.js +1 -1
  14. package/dist/src/commands/index.d.ts +1 -2
  15. package/dist/src/commands/index.d.ts.map +1 -1
  16. package/dist/src/commands/index.js +2 -3
  17. package/dist/src/generateAddress.d.ts +23 -6
  18. package/dist/src/generateAddress.d.ts.map +1 -1
  19. package/dist/src/generateAddress.js +50 -9
  20. package/dist/test/generateAddress.js +27 -10
  21. package/dist/test/parseAddress.d.ts.map +1 -1
  22. package/dist/test/parseAddress.js +3 -3
  23. package/dist/tsconfig.tsbuildinfo +1 -1
  24. package/package.json +6 -5
  25. package/dist/src/commands/cmdGenerateAddress.d.ts +0 -17
  26. package/dist/src/commands/cmdGenerateAddress.d.ts.map +0 -1
  27. package/dist/src/commands/cmdGenerateAddress.js +0 -55
  28. package/dist/src/commands/cmdParseAddress.d.ts.map +0 -1
  29. package/dist/src/commands/cmdParseAddress.js +0 -28
package/dist/bin/index.js CHANGED
@@ -5,12 +5,11 @@ const yargs = require("yargs");
5
5
  const commands_1 = require("../src/commands");
6
6
  yargs
7
7
  .command(commands_1.cmdParseTx)
8
- .command(commands_1.cmdParseAddress)
8
+ .command(commands_1.cmdAddress)
9
9
  .command(commands_1.cmdParseScript)
10
- .command(commands_1.cmdGenerateAddress)
11
10
  .command(commands_1.cmdBip32)
12
11
  .strict()
13
12
  .demandCommand()
14
13
  .help()
15
14
  .parse();
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9iaW4vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsK0JBQStCO0FBRS9CLDhDQUE0RztBQUU1RyxLQUFLO0tBQ0YsT0FBTyxDQUFDLHFCQUFVLENBQUM7S0FDbkIsT0FBTyxDQUFDLDBCQUFlLENBQUM7S0FDeEIsT0FBTyxDQUFDLHlCQUFjLENBQUM7S0FDdkIsT0FBTyxDQUFDLDZCQUFrQixDQUFDO0tBQzNCLE9BQU8sQ0FBQyxtQkFBUSxDQUFDO0tBQ2pCLE1BQU0sRUFBRTtLQUNSLGFBQWEsRUFBRTtLQUNmLElBQUksRUFBRTtLQUNOLEtBQUssRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiIyEvdXNyL2Jpbi9lbnYgbm9kZVxuaW1wb3J0ICogYXMgeWFyZ3MgZnJvbSAneWFyZ3MnO1xuXG5pbXBvcnQgeyBjbWRQYXJzZVR4LCBjbWRQYXJzZVNjcmlwdCwgY21kQmlwMzIsIGNtZEdlbmVyYXRlQWRkcmVzcywgY21kUGFyc2VBZGRyZXNzIH0gZnJvbSAnLi4vc3JjL2NvbW1hbmRzJztcblxueWFyZ3NcbiAgLmNvbW1hbmQoY21kUGFyc2VUeClcbiAgLmNvbW1hbmQoY21kUGFyc2VBZGRyZXNzKVxuICAuY29tbWFuZChjbWRQYXJzZVNjcmlwdClcbiAgLmNvbW1hbmQoY21kR2VuZXJhdGVBZGRyZXNzKVxuICAuY29tbWFuZChjbWRCaXAzMilcbiAgLnN0cmljdCgpXG4gIC5kZW1hbmRDb21tYW5kKClcbiAgLmhlbHAoKVxuICAucGFyc2UoKTtcbiJdfQ==
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9iaW4vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsK0JBQStCO0FBRS9CLDhDQUFtRjtBQUVuRixLQUFLO0tBQ0YsT0FBTyxDQUFDLHFCQUFVLENBQUM7S0FDbkIsT0FBTyxDQUFDLHFCQUFVLENBQUM7S0FDbkIsT0FBTyxDQUFDLHlCQUFjLENBQUM7S0FDdkIsT0FBTyxDQUFDLG1CQUFRLENBQUM7S0FDakIsTUFBTSxFQUFFO0tBQ1IsYUFBYSxFQUFFO0tBQ2YsSUFBSSxFQUFFO0tBQ04sS0FBSyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIjIS91c3IvYmluL2VudiBub2RlXG5pbXBvcnQgKiBhcyB5YXJncyBmcm9tICd5YXJncyc7XG5cbmltcG9ydCB7IGNtZFBhcnNlVHgsIGNtZFBhcnNlU2NyaXB0LCBjbWRCaXAzMiwgY21kQWRkcmVzcyB9IGZyb20gJy4uL3NyYy9jb21tYW5kcyc7XG5cbnlhcmdzXG4gIC5jb21tYW5kKGNtZFBhcnNlVHgpXG4gIC5jb21tYW5kKGNtZEFkZHJlc3MpXG4gIC5jb21tYW5kKGNtZFBhcnNlU2NyaXB0KVxuICAuY29tbWFuZChjbWRCaXAzMilcbiAgLnN0cmljdCgpXG4gIC5kZW1hbmRDb21tYW5kKClcbiAgLmhlbHAoKVxuICAucGFyc2UoKTtcbiJdfQ==
@@ -0,0 +1,21 @@
1
+ import * as utxolib from '@bitgo-beta/utxo-lib';
2
+ import { CommandModule } from 'yargs';
3
+ import { KeyOptions } from '../../args';
4
+ type IndexLimitOptions = {
5
+ index?: string[];
6
+ limit?: number;
7
+ };
8
+ type ArgsGenerateAddressFixedScript = KeyOptions & IndexLimitOptions & {
9
+ network: utxolib.Network;
10
+ chain?: number[];
11
+ format: string;
12
+ };
13
+ export declare const cmdGenerateFixedScript: CommandModule<unknown, ArgsGenerateAddressFixedScript>;
14
+ type ArgsGenerateDescriptorAddress = {
15
+ network: utxolib.Network;
16
+ descriptor: string;
17
+ format: string;
18
+ } & IndexLimitOptions;
19
+ export declare const cmdFromDescriptor: CommandModule<unknown, ArgsGenerateDescriptorAddress>;
20
+ export {};
21
+ //# sourceMappingURL=cmdGenerate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cmdGenerate.d.ts","sourceRoot":"","sources":["../../../../src/commands/cmdAddress/cmdGenerate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEtC,OAAO,EAAuC,UAAU,EAAE,MAAM,YAAY,CAAC;AAa7E,KAAK,iBAAiB,GAAG;IACvB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAyBF,KAAK,8BAA8B,GAAG,UAAU,GAC9C,iBAAiB,GAAG;IAClB,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEJ,eAAO,MAAM,sBAAsB,EAAE,aAAa,CAAC,OAAO,EAAE,8BAA8B,CA2BzF,CAAC;AAEF,KAAK,6BAA6B,GAAG;IACnC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,iBAAiB,CAAC;AAEtB,eAAO,MAAM,iBAAiB,EAAE,aAAa,CAAC,OAAO,EAAE,6BAA6B,CA+BnF,CAAC"}
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.cmdFromDescriptor = exports.cmdGenerateFixedScript = void 0;
4
+ const args_1 = require("../../args");
5
+ const generateAddress_1 = require("../../generateAddress");
6
+ const indexLimitOptions = {
7
+ index: {
8
+ type: 'string',
9
+ array: true,
10
+ description: 'Address index. Can be given as a range (e.g. 0-99). Takes precedence over --limit.',
11
+ },
12
+ limit: {
13
+ type: 'number',
14
+ description: 'Alias for --index with range starting at 0 to limit-1.',
15
+ default: 100,
16
+ },
17
+ };
18
+ function getIndexRangeFromArgv(argv) {
19
+ if (argv.index) {
20
+ return (0, generateAddress_1.parseIndexRange)(argv.index);
21
+ }
22
+ if (argv.limit) {
23
+ return (0, generateAddress_1.getRange)(0, argv.limit - 1);
24
+ }
25
+ throw new Error(`no index or limit`);
26
+ }
27
+ exports.cmdGenerateFixedScript = {
28
+ command: 'fromFixedScript',
29
+ describe: 'generate bitgo fixed-script addresses',
30
+ builder(b) {
31
+ return b
32
+ .options((0, args_1.getNetworkOptionsDemand)('bitcoin'))
33
+ .options(args_1.keyOptions)
34
+ .option('format', {
35
+ type: 'string',
36
+ default: '%p0\t%a',
37
+ description: `Format string.\nPlaceholders:\n${(0, generateAddress_1.getFixedScriptAddressPlaceholderDescription)()}`,
38
+ })
39
+ .option('chain', { type: 'number', array: true, description: 'Address chain' })
40
+ .options(indexLimitOptions);
41
+ },
42
+ handler(argv) {
43
+ for (const address of (0, generateAddress_1.generateFixedScriptAddress)({
44
+ ...argv,
45
+ index: getIndexRangeFromArgv(argv),
46
+ })) {
47
+ if (argv.format === 'tree') {
48
+ console.log((0, generateAddress_1.formatAddressTree)(address));
49
+ }
50
+ else {
51
+ console.log((0, generateAddress_1.formatFixedScriptAddress)(address, argv.format));
52
+ }
53
+ }
54
+ },
55
+ };
56
+ exports.cmdFromDescriptor = {
57
+ command: 'fromDescriptor [descriptor]',
58
+ describe: 'generate address from descriptor',
59
+ builder(b) {
60
+ return b
61
+ .options((0, args_1.getNetworkOptionsDemand)('bitcoin'))
62
+ .positional('descriptor', {
63
+ type: 'string',
64
+ demandOption: true,
65
+ })
66
+ .options({
67
+ format: {
68
+ type: 'string',
69
+ description: `Format string.\nPlaceholders:\n${(0, generateAddress_1.getDescriptorAddressPlaceholderDescription)()}`,
70
+ default: '%i\t%a',
71
+ },
72
+ })
73
+ .options(indexLimitOptions);
74
+ },
75
+ handler(argv) {
76
+ for (const address of (0, generateAddress_1.generateDescriptorAddress)({
77
+ ...argv,
78
+ index: getIndexRangeFromArgv(argv),
79
+ })) {
80
+ if (argv.format === 'tree') {
81
+ console.log((0, generateAddress_1.formatAddressTree)(address));
82
+ }
83
+ else {
84
+ console.log((0, generateAddress_1.formatDescriptorAddress)(address, argv.format));
85
+ }
86
+ }
87
+ },
88
+ };
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY21kR2VuZXJhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tbWFuZHMvY21kQWRkcmVzcy9jbWRHZW5lcmF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFHQSxxQ0FBNkU7QUFDN0UsMkRBVStCO0FBTy9CLE1BQU0saUJBQWlCLEdBQUc7SUFDeEIsS0FBSyxFQUFFO1FBQ0wsSUFBSSxFQUFFLFFBQVE7UUFDZCxLQUFLLEVBQUUsSUFBSTtRQUNYLFdBQVcsRUFBRSxvRkFBb0Y7S0FDbEc7SUFDRCxLQUFLLEVBQUU7UUFDTCxJQUFJLEVBQUUsUUFBUTtRQUNkLFdBQVcsRUFBRSx3REFBd0Q7UUFDckUsT0FBTyxFQUFFLEdBQUc7S0FDYjtDQUNPLENBQUM7QUFFWCxTQUFTLHFCQUFxQixDQUFDLElBQXVCO0lBQ3BELElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtRQUNkLE9BQU8sSUFBQSxpQ0FBZSxFQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUNwQztJQUNELElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtRQUNkLE9BQU8sSUFBQSwwQkFBUSxFQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO0tBQ3BDO0lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0FBQ3ZDLENBQUM7QUFTWSxRQUFBLHNCQUFzQixHQUEyRDtJQUM1RixPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFFBQVEsRUFBRSx1Q0FBdUM7SUFDakQsT0FBTyxDQUFDLENBQUM7UUFDUCxPQUFPLENBQUM7YUFDTCxPQUFPLENBQUMsSUFBQSw4QkFBdUIsRUFBQyxTQUFTLENBQUMsQ0FBQzthQUMzQyxPQUFPLENBQUMsaUJBQVUsQ0FBQzthQUNuQixNQUFNLENBQUMsUUFBUSxFQUFFO1lBQ2hCLElBQUksRUFBRSxRQUFRO1lBQ2QsT0FBTyxFQUFFLFNBQVM7WUFDbEIsV0FBVyxFQUFFLGtDQUFrQyxJQUFBLDZEQUEyQyxHQUFFLEVBQUU7U0FDL0YsQ0FBQzthQUNELE1BQU0sQ0FBQyxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxDQUFDO2FBQzlFLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFDRCxPQUFPLENBQUMsSUFBSTtRQUNWLEtBQUssTUFBTSxPQUFPLElBQUksSUFBQSw0Q0FBMEIsRUFBQztZQUMvQyxHQUFHLElBQUk7WUFDUCxLQUFLLEVBQUUscUJBQXFCLENBQUMsSUFBSSxDQUFDO1NBQ25DLENBQUMsRUFBRTtZQUNGLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxNQUFNLEVBQUU7Z0JBQzFCLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBQSxtQ0FBaUIsRUFBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO2FBQ3pDO2lCQUFNO2dCQUNMLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBQSwwQ0FBd0IsRUFBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7YUFDN0Q7U0FDRjtJQUNILENBQUM7Q0FDRixDQUFDO0FBUVcsUUFBQSxpQkFBaUIsR0FBMEQ7SUFDdEYsT0FBTyxFQUFFLDZCQUE2QjtJQUN0QyxRQUFRLEVBQUUsa0NBQWtDO0lBQzVDLE9BQU8sQ0FBQyxDQUFDO1FBQ1AsT0FBTyxDQUFDO2FBQ0wsT0FBTyxDQUFDLElBQUEsOEJBQXVCLEVBQUMsU0FBUyxDQUFDLENBQUM7YUFDM0MsVUFBVSxDQUFDLFlBQVksRUFBRTtZQUN4QixJQUFJLEVBQUUsUUFBUTtZQUNkLFlBQVksRUFBRSxJQUFJO1NBQ25CLENBQUM7YUFDRCxPQUFPLENBQUM7WUFDUCxNQUFNLEVBQUU7Z0JBQ04sSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsV0FBVyxFQUFFLGtDQUFrQyxJQUFBLDREQUEwQyxHQUFFLEVBQUU7Z0JBQzdGLE9BQU8sRUFBRSxRQUFRO2FBQ2xCO1NBQ0YsQ0FBQzthQUNELE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFDRCxPQUFPLENBQUMsSUFBSTtRQUNWLEtBQUssTUFBTSxPQUFPLElBQUksSUFBQSwyQ0FBeUIsRUFBQztZQUM5QyxHQUFHLElBQUk7WUFDUCxLQUFLLEVBQUUscUJBQXFCLENBQUMsSUFBSSxDQUFDO1NBQ25DLENBQUMsRUFBRTtZQUNGLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxNQUFNLEVBQUU7Z0JBQzFCLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBQSxtQ0FBaUIsRUFBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO2FBQ3pDO2lCQUFNO2dCQUNMLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBQSx5Q0FBdUIsRUFBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7YUFDNUQ7U0FDRjtJQUNILENBQUM7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5pbXBvcnQgeyBDb21tYW5kTW9kdWxlIH0gZnJvbSAneWFyZ3MnO1xuXG5pbXBvcnQgeyBnZXROZXR3b3JrT3B0aW9uc0RlbWFuZCwga2V5T3B0aW9ucywgS2V5T3B0aW9ucyB9IGZyb20gJy4uLy4uL2FyZ3MnO1xuaW1wb3J0IHtcbiAgZm9ybWF0QWRkcmVzc1RyZWUsXG4gIGZvcm1hdERlc2NyaXB0b3JBZGRyZXNzLFxuICBmb3JtYXRGaXhlZFNjcmlwdEFkZHJlc3MsXG4gIGdlbmVyYXRlRGVzY3JpcHRvckFkZHJlc3MsXG4gIGdlbmVyYXRlRml4ZWRTY3JpcHRBZGRyZXNzLFxuICBnZXREZXNjcmlwdG9yQWRkcmVzc1BsYWNlaG9sZGVyRGVzY3JpcHRpb24sXG4gIGdldEZpeGVkU2NyaXB0QWRkcmVzc1BsYWNlaG9sZGVyRGVzY3JpcHRpb24sXG4gIGdldFJhbmdlLFxuICBwYXJzZUluZGV4UmFuZ2UsXG59IGZyb20gJy4uLy4uL2dlbmVyYXRlQWRkcmVzcyc7XG5cbnR5cGUgSW5kZXhMaW1pdE9wdGlvbnMgPSB7XG4gIGluZGV4Pzogc3RyaW5nW107XG4gIGxpbWl0PzogbnVtYmVyO1xufTtcblxuY29uc3QgaW5kZXhMaW1pdE9wdGlvbnMgPSB7XG4gIGluZGV4OiB7XG4gICAgdHlwZTogJ3N0cmluZycsXG4gICAgYXJyYXk6IHRydWUsXG4gICAgZGVzY3JpcHRpb246ICdBZGRyZXNzIGluZGV4LiBDYW4gYmUgZ2l2ZW4gYXMgYSByYW5nZSAoZS5nLiAwLTk5KS4gVGFrZXMgcHJlY2VkZW5jZSBvdmVyIC0tbGltaXQuJyxcbiAgfSxcbiAgbGltaXQ6IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBkZXNjcmlwdGlvbjogJ0FsaWFzIGZvciAtLWluZGV4IHdpdGggcmFuZ2Ugc3RhcnRpbmcgYXQgMCB0byBsaW1pdC0xLicsXG4gICAgZGVmYXVsdDogMTAwLFxuICB9LFxufSBhcyBjb25zdDtcblxuZnVuY3Rpb24gZ2V0SW5kZXhSYW5nZUZyb21Bcmd2KGFyZ3Y6IEluZGV4TGltaXRPcHRpb25zKTogbnVtYmVyW10ge1xuICBpZiAoYXJndi5pbmRleCkge1xuICAgIHJldHVybiBwYXJzZUluZGV4UmFuZ2UoYXJndi5pbmRleCk7XG4gIH1cbiAgaWYgKGFyZ3YubGltaXQpIHtcbiAgICByZXR1cm4gZ2V0UmFuZ2UoMCwgYXJndi5saW1pdCAtIDEpO1xuICB9XG4gIHRocm93IG5ldyBFcnJvcihgbm8gaW5kZXggb3IgbGltaXRgKTtcbn1cblxudHlwZSBBcmdzR2VuZXJhdGVBZGRyZXNzRml4ZWRTY3JpcHQgPSBLZXlPcHRpb25zICZcbiAgSW5kZXhMaW1pdE9wdGlvbnMgJiB7XG4gICAgbmV0d29yazogdXR4b2xpYi5OZXR3b3JrO1xuICAgIGNoYWluPzogbnVtYmVyW107XG4gICAgZm9ybWF0OiBzdHJpbmc7XG4gIH07XG5cbmV4cG9ydCBjb25zdCBjbWRHZW5lcmF0ZUZpeGVkU2NyaXB0OiBDb21tYW5kTW9kdWxlPHVua25vd24sIEFyZ3NHZW5lcmF0ZUFkZHJlc3NGaXhlZFNjcmlwdD4gPSB7XG4gIGNvbW1hbmQ6ICdmcm9tRml4ZWRTY3JpcHQnLFxuICBkZXNjcmliZTogJ2dlbmVyYXRlIGJpdGdvIGZpeGVkLXNjcmlwdCBhZGRyZXNzZXMnLFxuICBidWlsZGVyKGIpIHtcbiAgICByZXR1cm4gYlxuICAgICAgLm9wdGlvbnMoZ2V0TmV0d29ya09wdGlvbnNEZW1hbmQoJ2JpdGNvaW4nKSlcbiAgICAgIC5vcHRpb25zKGtleU9wdGlvbnMpXG4gICAgICAub3B0aW9uKCdmb3JtYXQnLCB7XG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICBkZWZhdWx0OiAnJXAwXFx0JWEnLFxuICAgICAgICBkZXNjcmlwdGlvbjogYEZvcm1hdCBzdHJpbmcuXFxuUGxhY2Vob2xkZXJzOlxcbiR7Z2V0Rml4ZWRTY3JpcHRBZGRyZXNzUGxhY2Vob2xkZXJEZXNjcmlwdGlvbigpfWAsXG4gICAgICB9KVxuICAgICAgLm9wdGlvbignY2hhaW4nLCB7IHR5cGU6ICdudW1iZXInLCBhcnJheTogdHJ1ZSwgZGVzY3JpcHRpb246ICdBZGRyZXNzIGNoYWluJyB9KVxuICAgICAgLm9wdGlvbnMoaW5kZXhMaW1pdE9wdGlvbnMpO1xuICB9LFxuICBoYW5kbGVyKGFyZ3YpOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IGFkZHJlc3Mgb2YgZ2VuZXJhdGVGaXhlZFNjcmlwdEFkZHJlc3Moe1xuICAgICAgLi4uYXJndixcbiAgICAgIGluZGV4OiBnZXRJbmRleFJhbmdlRnJvbUFyZ3YoYXJndiksXG4gICAgfSkpIHtcbiAgICAgIGlmIChhcmd2LmZvcm1hdCA9PT0gJ3RyZWUnKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGZvcm1hdEFkZHJlc3NUcmVlKGFkZHJlc3MpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGZvcm1hdEZpeGVkU2NyaXB0QWRkcmVzcyhhZGRyZXNzLCBhcmd2LmZvcm1hdCkpO1xuICAgICAgfVxuICAgIH1cbiAgfSxcbn07XG5cbnR5cGUgQXJnc0dlbmVyYXRlRGVzY3JpcHRvckFkZHJlc3MgPSB7XG4gIG5ldHdvcms6IHV0eG9saWIuTmV0d29yaztcbiAgZGVzY3JpcHRvcjogc3RyaW5nO1xuICBmb3JtYXQ6IHN0cmluZztcbn0gJiBJbmRleExpbWl0T3B0aW9ucztcblxuZXhwb3J0IGNvbnN0IGNtZEZyb21EZXNjcmlwdG9yOiBDb21tYW5kTW9kdWxlPHVua25vd24sIEFyZ3NHZW5lcmF0ZURlc2NyaXB0b3JBZGRyZXNzPiA9IHtcbiAgY29tbWFuZDogJ2Zyb21EZXNjcmlwdG9yIFtkZXNjcmlwdG9yXScsXG4gIGRlc2NyaWJlOiAnZ2VuZXJhdGUgYWRkcmVzcyBmcm9tIGRlc2NyaXB0b3InLFxuICBidWlsZGVyKGIpIHtcbiAgICByZXR1cm4gYlxuICAgICAgLm9wdGlvbnMoZ2V0TmV0d29ya09wdGlvbnNEZW1hbmQoJ2JpdGNvaW4nKSlcbiAgICAgIC5wb3NpdGlvbmFsKCdkZXNjcmlwdG9yJywge1xuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgZGVtYW5kT3B0aW9uOiB0cnVlLFxuICAgICAgfSlcbiAgICAgIC5vcHRpb25zKHtcbiAgICAgICAgZm9ybWF0OiB7XG4gICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgZGVzY3JpcHRpb246IGBGb3JtYXQgc3RyaW5nLlxcblBsYWNlaG9sZGVyczpcXG4ke2dldERlc2NyaXB0b3JBZGRyZXNzUGxhY2Vob2xkZXJEZXNjcmlwdGlvbigpfWAsXG4gICAgICAgICAgZGVmYXVsdDogJyVpXFx0JWEnLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICAgIC5vcHRpb25zKGluZGV4TGltaXRPcHRpb25zKTtcbiAgfSxcbiAgaGFuZGxlcihhcmd2KSB7XG4gICAgZm9yIChjb25zdCBhZGRyZXNzIG9mIGdlbmVyYXRlRGVzY3JpcHRvckFkZHJlc3Moe1xuICAgICAgLi4uYXJndixcbiAgICAgIGluZGV4OiBnZXRJbmRleFJhbmdlRnJvbUFyZ3YoYXJndiksXG4gICAgfSkpIHtcbiAgICAgIGlmIChhcmd2LmZvcm1hdCA9PT0gJ3RyZWUnKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGZvcm1hdEFkZHJlc3NUcmVlKGFkZHJlc3MpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGZvcm1hdERlc2NyaXB0b3JBZGRyZXNzKGFkZHJlc3MsIGFyZ3YuZm9ybWF0KSk7XG4gICAgICB9XG4gICAgfVxuICB9LFxufTtcbiJdfQ==
@@ -1,20 +1,20 @@
1
1
  import * as utxolib from '@bitgo-beta/utxo-lib';
2
2
  import * as yargs from 'yargs';
3
- import { AddressParser } from '../AddressParser';
4
- import { FormatTreeOrJson } from '../args';
3
+ import { AddressParser } from '../../AddressParser';
4
+ import { FormatTreeOrJson } from '../../args';
5
5
  export type ArgsParseAddress = {
6
6
  network?: utxolib.Network;
7
- all: boolean;
8
7
  format: FormatTreeOrJson;
8
+ all: boolean;
9
9
  convert: boolean;
10
10
  address: string;
11
11
  };
12
12
  export declare function getAddressParser(argv: ArgsParseAddress): AddressParser;
13
- export declare const cmdParseAddress: {
14
- readonly command: "parseAddress [address]";
13
+ export declare const cmdParse: {
14
+ readonly command: "parse [address]";
15
15
  readonly aliases: readonly ["address"];
16
16
  readonly describe: "parse address";
17
17
  readonly builder: (b: yargs.Argv<unknown>) => yargs.Argv<ArgsParseAddress>;
18
18
  readonly handler: (argv: yargs.Arguments<ArgsParseAddress>) => void;
19
19
  };
20
- //# sourceMappingURL=cmdParseAddress.d.ts.map
20
+ //# sourceMappingURL=cmdParse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cmdParse.d.ts","sourceRoot":"","sources":["../../../../src/commands/cmdAddress/cmdParse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAChD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAoB,gBAAgB,EAAqB,MAAM,YAAY,CAAC;AAInF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC;IAC1B,MAAM,EAAE,gBAAgB,CAAC;IACzB,GAAG,EAAE,OAAO,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,GAAG,aAAa,CAEtE;AAED,eAAO,MAAM,QAAQ;;;;0BAIR,MAAM,IAAI,CAAC,OAAO,CAAC,KAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC;6BAS/C,MAAM,SAAS,CAAC,gBAAgB,CAAC,KAAG,IAAI;CAI9C,CAAC"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.cmdParse = exports.getAddressParser = void 0;
4
+ const AddressParser_1 = require("../../AddressParser");
5
+ const args_1 = require("../../args");
6
+ const formatString_1 = require("../formatString");
7
+ function getAddressParser(argv) {
8
+ return new AddressParser_1.AddressParser(argv);
9
+ }
10
+ exports.getAddressParser = getAddressParser;
11
+ exports.cmdParse = {
12
+ command: 'parse [address]',
13
+ aliases: ['address'],
14
+ describe: 'parse address',
15
+ builder(b) {
16
+ return b
17
+ .options((0, args_1.getNetworkOptions)())
18
+ .option('format', args_1.formatTreeOrJson)
19
+ .option('convert', { type: 'boolean', default: false })
20
+ .option('all', { type: 'boolean', default: false })
21
+ .positional('address', { type: 'string', demandOption: true });
22
+ },
23
+ handler(argv) {
24
+ const parsed = getAddressParser(argv).parse(argv.address);
25
+ console.log((0, formatString_1.formatString)(parsed, argv));
26
+ },
27
+ };
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY21kUGFyc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tbWFuZHMvY21kQWRkcmVzcy9jbWRQYXJzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFHQSx1REFBb0Q7QUFDcEQscUNBQW1GO0FBRW5GLGtEQUErQztBQVUvQyxTQUFnQixnQkFBZ0IsQ0FBQyxJQUFzQjtJQUNyRCxPQUFPLElBQUksNkJBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNqQyxDQUFDO0FBRkQsNENBRUM7QUFFWSxRQUFBLFFBQVEsR0FBRztJQUN0QixPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FBQztJQUNwQixRQUFRLEVBQUUsZUFBZTtJQUN6QixPQUFPLENBQUMsQ0FBc0I7UUFDNUIsT0FBTyxDQUFDO2FBQ0wsT0FBTyxDQUFDLElBQUEsd0JBQWlCLEdBQUUsQ0FBQzthQUM1QixNQUFNLENBQUMsUUFBUSxFQUFFLHVCQUFnQixDQUFDO2FBQ2xDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQzthQUN0RCxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUM7YUFDbEQsVUFBVSxDQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVELE9BQU8sQ0FBQyxJQUF1QztRQUM3QyxNQUFNLE1BQU0sR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzFELE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBQSwyQkFBWSxFQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7Q0FDTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5pbXBvcnQgKiBhcyB5YXJncyBmcm9tICd5YXJncyc7XG5cbmltcG9ydCB7IEFkZHJlc3NQYXJzZXIgfSBmcm9tICcuLi8uLi9BZGRyZXNzUGFyc2VyJztcbmltcG9ydCB7IGZvcm1hdFRyZWVPckpzb24sIEZvcm1hdFRyZWVPckpzb24sIGdldE5ldHdvcmtPcHRpb25zIH0gZnJvbSAnLi4vLi4vYXJncyc7XG5cbmltcG9ydCB7IGZvcm1hdFN0cmluZyB9IGZyb20gJy4uL2Zvcm1hdFN0cmluZyc7XG5cbmV4cG9ydCB0eXBlIEFyZ3NQYXJzZUFkZHJlc3MgPSB7XG4gIG5ldHdvcms/OiB1dHhvbGliLk5ldHdvcms7XG4gIGZvcm1hdDogRm9ybWF0VHJlZU9ySnNvbjtcbiAgYWxsOiBib29sZWFuO1xuICBjb252ZXJ0OiBib29sZWFuO1xuICBhZGRyZXNzOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWRkcmVzc1BhcnNlcihhcmd2OiBBcmdzUGFyc2VBZGRyZXNzKTogQWRkcmVzc1BhcnNlciB7XG4gIHJldHVybiBuZXcgQWRkcmVzc1BhcnNlcihhcmd2KTtcbn1cblxuZXhwb3J0IGNvbnN0IGNtZFBhcnNlID0ge1xuICBjb21tYW5kOiAncGFyc2UgW2FkZHJlc3NdJyxcbiAgYWxpYXNlczogWydhZGRyZXNzJ10sXG4gIGRlc2NyaWJlOiAncGFyc2UgYWRkcmVzcycsXG4gIGJ1aWxkZXIoYjogeWFyZ3MuQXJndjx1bmtub3duPik6IHlhcmdzLkFyZ3Y8QXJnc1BhcnNlQWRkcmVzcz4ge1xuICAgIHJldHVybiBiXG4gICAgICAub3B0aW9ucyhnZXROZXR3b3JrT3B0aW9ucygpKVxuICAgICAgLm9wdGlvbignZm9ybWF0JywgZm9ybWF0VHJlZU9ySnNvbilcbiAgICAgIC5vcHRpb24oJ2NvbnZlcnQnLCB7IHR5cGU6ICdib29sZWFuJywgZGVmYXVsdDogZmFsc2UgfSlcbiAgICAgIC5vcHRpb24oJ2FsbCcsIHsgdHlwZTogJ2Jvb2xlYW4nLCBkZWZhdWx0OiBmYWxzZSB9KVxuICAgICAgLnBvc2l0aW9uYWwoJ2FkZHJlc3MnLCB7IHR5cGU6ICdzdHJpbmcnLCBkZW1hbmRPcHRpb246IHRydWUgfSk7XG4gIH0sXG5cbiAgaGFuZGxlcihhcmd2OiB5YXJncy5Bcmd1bWVudHM8QXJnc1BhcnNlQWRkcmVzcz4pOiB2b2lkIHtcbiAgICBjb25zdCBwYXJzZWQgPSBnZXRBZGRyZXNzUGFyc2VyKGFyZ3YpLnBhcnNlKGFyZ3YuYWRkcmVzcyk7XG4gICAgY29uc29sZS5sb2coZm9ybWF0U3RyaW5nKHBhcnNlZCwgYXJndikpO1xuICB9LFxufSBhcyBjb25zdDtcbiJdfQ==
@@ -0,0 +1,3 @@
1
+ import { CommandModule } from 'yargs';
2
+ export declare const cmdAddress: CommandModule<unknown, unknown>;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/cmdAddress/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAKtC,eAAO,MAAM,UAAU,EAAE,aAAa,CAAC,OAAO,EAAE,OAAO,CAStD,CAAC"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.cmdAddress = void 0;
4
+ const cmdGenerate_1 = require("./cmdGenerate");
5
+ const cmdParse_1 = require("./cmdParse");
6
+ exports.cmdAddress = {
7
+ command: 'address <command>',
8
+ describe: 'address commands',
9
+ builder(b) {
10
+ return b.strict().command(cmdGenerate_1.cmdGenerateFixedScript).command(cmdParse_1.cmdParse).demandCommand();
11
+ },
12
+ handler() {
13
+ // do nothing
14
+ },
15
+ };
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tbWFuZHMvY21kQWRkcmVzcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSwrQ0FBdUQ7QUFDdkQseUNBQXNDO0FBRXpCLFFBQUEsVUFBVSxHQUFvQztJQUN6RCxPQUFPLEVBQUUsbUJBQW1CO0lBQzVCLFFBQVEsRUFBRSxrQkFBa0I7SUFDNUIsT0FBTyxDQUFDLENBQUM7UUFDUCxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsb0NBQXNCLENBQUMsQ0FBQyxPQUFPLENBQUMsbUJBQVEsQ0FBQyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3RGLENBQUM7SUFDRCxPQUFPO1FBQ0wsYUFBYTtJQUNmLENBQUM7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbWFuZE1vZHVsZSB9IGZyb20gJ3lhcmdzJztcblxuaW1wb3J0IHsgY21kR2VuZXJhdGVGaXhlZFNjcmlwdCB9IGZyb20gJy4vY21kR2VuZXJhdGUnO1xuaW1wb3J0IHsgY21kUGFyc2UgfSBmcm9tICcuL2NtZFBhcnNlJztcblxuZXhwb3J0IGNvbnN0IGNtZEFkZHJlc3M6IENvbW1hbmRNb2R1bGU8dW5rbm93biwgdW5rbm93bj4gPSB7XG4gIGNvbW1hbmQ6ICdhZGRyZXNzIDxjb21tYW5kPicsXG4gIGRlc2NyaWJlOiAnYWRkcmVzcyBjb21tYW5kcycsXG4gIGJ1aWxkZXIoYikge1xuICAgIHJldHVybiBiLnN0cmljdCgpLmNvbW1hbmQoY21kR2VuZXJhdGVGaXhlZFNjcmlwdCkuY29tbWFuZChjbWRQYXJzZSkuZGVtYW5kQ29tbWFuZCgpO1xuICB9LFxuICBoYW5kbGVyKCkge1xuICAgIC8vIGRvIG5vdGhpbmdcbiAgfSxcbn07XG4iXX0=
@@ -1,9 +1,8 @@
1
- import * as yargs from 'yargs';
2
1
  import { ParserNode } from '../Parser';
3
2
  import { FormatTreeOrJson } from '../args';
4
3
  export type FormatStringArgs = {
5
4
  format: FormatTreeOrJson;
6
5
  all: boolean;
7
6
  };
8
- export declare function formatString(parsed: ParserNode, argv: yargs.Arguments<FormatStringArgs>): string;
7
+ export declare function formatString(parsed: ParserNode, argv: FormatStringArgs): string;
9
8
  //# sourceMappingURL=formatString.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"formatString.d.ts","sourceRoot":"","sources":["../../../src/commands/formatString.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,gBAAgB,CAAC;IACzB,GAAG,EAAE,OAAO,CAAC;CACd,CAAC;AAEF,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAQhG"}
1
+ {"version":3,"file":"formatString.d.ts","sourceRoot":"","sources":["../../../src/commands/formatString.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,gBAAgB,CAAC;IACzB,GAAG,EAAE,OAAO,CAAC;CACd,CAAC;AAEF,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAQ/E"}
@@ -12,4 +12,4 @@ function formatString(parsed, argv) {
12
12
  throw new Error(`invalid format ${argv.format}`);
13
13
  }
14
14
  exports.formatString = formatString;
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0U3RyaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2Zvcm1hdFN0cmluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFHQSxzQ0FBdUM7QUFRdkMsU0FBZ0IsWUFBWSxDQUFDLE1BQWtCLEVBQUUsSUFBdUM7SUFDdEYsUUFBUSxJQUFJLENBQUMsTUFBTSxFQUFFO1FBQ25CLEtBQUssTUFBTTtZQUNULE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3pDLEtBQUssTUFBTTtZQUNULE9BQU8sSUFBQSxtQkFBVSxFQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7S0FDbEU7SUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLGtCQUFrQixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztBQUNuRCxDQUFDO0FBUkQsb0NBUUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB5YXJncyBmcm9tICd5YXJncyc7XG5cbmltcG9ydCB7IFBhcnNlck5vZGUgfSBmcm9tICcuLi9QYXJzZXInO1xuaW1wb3J0IHsgZm9ybWF0VHJlZSB9IGZyb20gJy4uL2Zvcm1hdCc7XG5pbXBvcnQgeyBGb3JtYXRUcmVlT3JKc29uIH0gZnJvbSAnLi4vYXJncyc7XG5cbmV4cG9ydCB0eXBlIEZvcm1hdFN0cmluZ0FyZ3MgPSB7XG4gIGZvcm1hdDogRm9ybWF0VHJlZU9ySnNvbjtcbiAgYWxsOiBib29sZWFuO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFN0cmluZyhwYXJzZWQ6IFBhcnNlck5vZGUsIGFyZ3Y6IHlhcmdzLkFyZ3VtZW50czxGb3JtYXRTdHJpbmdBcmdzPik6IHN0cmluZyB7XG4gIHN3aXRjaCAoYXJndi5mb3JtYXQpIHtcbiAgICBjYXNlICdqc29uJzpcbiAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShwYXJzZWQsIG51bGwsIDIpO1xuICAgIGNhc2UgJ3RyZWUnOlxuICAgICAgcmV0dXJuIGZvcm1hdFRyZWUocGFyc2VkLCB7IGhpZGU6IGFyZ3YuYWxsID8gW10gOiB1bmRlZmluZWQgfSk7XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIGZvcm1hdCAke2FyZ3YuZm9ybWF0fWApO1xufVxuIl19
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0U3RyaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2Zvcm1hdFN0cmluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxzQ0FBdUM7QUFRdkMsU0FBZ0IsWUFBWSxDQUFDLE1BQWtCLEVBQUUsSUFBc0I7SUFDckUsUUFBUSxJQUFJLENBQUMsTUFBTSxFQUFFO1FBQ25CLEtBQUssTUFBTTtZQUNULE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3pDLEtBQUssTUFBTTtZQUNULE9BQU8sSUFBQSxtQkFBVSxFQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7S0FDbEU7SUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLGtCQUFrQixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztBQUNuRCxDQUFDO0FBUkQsb0NBUUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQYXJzZXJOb2RlIH0gZnJvbSAnLi4vUGFyc2VyJztcbmltcG9ydCB7IGZvcm1hdFRyZWUgfSBmcm9tICcuLi9mb3JtYXQnO1xuaW1wb3J0IHsgRm9ybWF0VHJlZU9ySnNvbiB9IGZyb20gJy4uL2FyZ3MnO1xuXG5leHBvcnQgdHlwZSBGb3JtYXRTdHJpbmdBcmdzID0ge1xuICBmb3JtYXQ6IEZvcm1hdFRyZWVPckpzb247XG4gIGFsbDogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRTdHJpbmcocGFyc2VkOiBQYXJzZXJOb2RlLCBhcmd2OiBGb3JtYXRTdHJpbmdBcmdzKTogc3RyaW5nIHtcbiAgc3dpdGNoIChhcmd2LmZvcm1hdCkge1xuICAgIGNhc2UgJ2pzb24nOlxuICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHBhcnNlZCwgbnVsbCwgMik7XG4gICAgY2FzZSAndHJlZSc6XG4gICAgICByZXR1cm4gZm9ybWF0VHJlZShwYXJzZWQsIHsgaGlkZTogYXJndi5hbGwgPyBbXSA6IHVuZGVmaW5lZCB9KTtcbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgZm9ybWF0ICR7YXJndi5mb3JtYXR9YCk7XG59XG4iXX0=
@@ -1,6 +1,5 @@
1
1
  export * from './cmdParseTx';
2
- export * from './cmdParseAddress';
2
+ export * from './cmdAddress';
3
3
  export * from './cmdParseScript';
4
- export * from './cmdGenerateAddress';
5
4
  export * from './cmdBip32';
6
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC"}
@@ -15,8 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./cmdParseTx"), exports);
18
- __exportStar(require("./cmdParseAddress"), exports);
18
+ __exportStar(require("./cmdAddress"), exports);
19
19
  __exportStar(require("./cmdParseScript"), exports);
20
- __exportStar(require("./cmdGenerateAddress"), exports);
21
20
  __exportStar(require("./cmdBip32"), exports);
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUE2QjtBQUM3QixvREFBa0M7QUFDbEMsbURBQWlDO0FBQ2pDLHVEQUFxQztBQUNyQyw2Q0FBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NtZFBhcnNlVHgnO1xuZXhwb3J0ICogZnJvbSAnLi9jbWRQYXJzZUFkZHJlc3MnO1xuZXhwb3J0ICogZnJvbSAnLi9jbWRQYXJzZVNjcmlwdCc7XG5leHBvcnQgKiBmcm9tICcuL2NtZEdlbmVyYXRlQWRkcmVzcyc7XG5leHBvcnQgKiBmcm9tICcuL2NtZEJpcDMyJztcbiJdfQ==
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUE2QjtBQUM3QiwrQ0FBNkI7QUFDN0IsbURBQWlDO0FBQ2pDLDZDQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY21kUGFyc2VUeCc7XG5leHBvcnQgKiBmcm9tICcuL2NtZEFkZHJlc3MnO1xuZXhwb3J0ICogZnJvbSAnLi9jbWRQYXJzZVNjcmlwdCc7XG5leHBvcnQgKiBmcm9tICcuL2NtZEJpcDMyJztcbiJdfQ==
@@ -1,6 +1,6 @@
1
1
  import * as utxolib from '@bitgo-beta/utxo-lib';
2
2
  import { KeyOptions } from './args';
3
- type AddressProperties = {
3
+ type FixedScriptAddressProperties = {
4
4
  chain: utxolib.bitgo.ChainCode;
5
5
  index: number;
6
6
  type: utxolib.bitgo.outputScripts.ScriptType;
@@ -15,16 +15,33 @@ type AddressProperties = {
15
15
  scriptPubKey: string;
16
16
  address: string;
17
17
  };
18
- export declare function getAddressPlaceholderDescription(): string;
19
- export declare function formatAddressTree(props: AddressProperties): string;
20
- export declare function formatAddressWithFormatString(props: AddressProperties, format: string): string;
18
+ export declare function getAsPlaceholderDescription(v: Record<string, string>): string;
19
+ export declare function getFixedScriptAddressPlaceholderDescription(): string;
20
+ export declare function formatAddressTree(props: FixedScriptAddressProperties | DescriptorAddressProperties): string;
21
+ export declare function formatAddressWithFormatString(props: Record<string, unknown>, placeholders: Record<string, string>, format: string): string;
22
+ export declare function formatFixedScriptAddress(props: FixedScriptAddressProperties, format: string): string;
21
23
  export declare function getRange(start: number, end: number): number[];
22
24
  export declare function parseIndexRange(ranges: string[]): number[];
23
- export declare function generateAddress(argv: KeyOptions & {
25
+ export declare function generateFixedScriptAddress(argv: KeyOptions & {
24
26
  network?: utxolib.Network;
25
27
  chain?: number[];
26
28
  format: string;
27
29
  index: number[];
28
- }): Generator<AddressProperties>;
30
+ }): Generator<FixedScriptAddressProperties>;
31
+ type DescriptorAddressProperties = {
32
+ descriptor: string;
33
+ index: number;
34
+ explicitScript: string;
35
+ scriptPubKey: string;
36
+ address: string;
37
+ };
38
+ export declare function getDescriptorAddressPlaceholderDescription(): string;
39
+ export declare function formatDescriptorAddress(props: DescriptorAddressProperties, format: string): string;
40
+ export declare function generateDescriptorAddress(argv: {
41
+ network: utxolib.Network;
42
+ descriptor: string;
43
+ format: string;
44
+ index: number[];
45
+ }): Generator<DescriptorAddressProperties>;
29
46
  export {};
30
47
  //# sourceMappingURL=generateAddress.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"generateAddress.d.ts","sourceRoot":"","sources":["../../src/generateAddress.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAKhD,OAAO,EAAE,UAAU,EAAqB,MAAM,QAAQ,CAAC;AASvD,KAAK,iBAAiB,GAAG;IACvB,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAmBF,wBAAgB,gCAAgC,IAAI,MAAM,CAIzD;AA6BD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,CAGlE;AAED,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAU9F;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAE7D;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAQ1D;AAED,wBAAiB,eAAe,CAC9B,IAAI,EAAE,UAAU,GAAG;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB,GACA,SAAS,CAAC,iBAAiB,CAAC,CAU9B"}
1
+ {"version":3,"file":"generateAddress.d.ts","sourceRoot":"","sources":["../../src/generateAddress.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAMhD,OAAO,EAAE,UAAU,EAAqB,MAAM,QAAQ,CAAC;AASvD,KAAK,4BAA4B,GAAG;IAClC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAmBF,wBAAgB,2BAA2B,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAI7E;AAED,wBAAgB,2CAA2C,IAAI,MAAM,CAEpE;AA6BD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,4BAA4B,GAAG,2BAA2B,GAAG,MAAM,CAG3G;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,MAAM,EAAE,MAAM,GACb,MAAM,CAUR;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,4BAA4B,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAEpG;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAE7D;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAQ1D;AAED,wBAAiB,0BAA0B,CACzC,IAAI,EAAE,UAAU,GAAG;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB,GACA,SAAS,CAAC,4BAA4B,CAAC,CAUzC;AAED,KAAK,2BAA2B,GAAG;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAUF,wBAAgB,0CAA0C,IAAI,MAAM,CAEnE;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,2BAA2B,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAElG;AAED,wBAAiB,yBAAyB,CAAC,IAAI,EAAE;IAC/C,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB,GAAG,SAAS,CAAC,2BAA2B,CAAC,CAezC"}
@@ -1,8 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generateAddress = exports.parseIndexRange = exports.getRange = exports.formatAddressWithFormatString = exports.formatAddressTree = exports.getAddressPlaceholderDescription = void 0;
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-beta/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 placeholders = {
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 getAddressPlaceholderDescription() {
32
- return Object.entries(placeholders)
32
+ function getAsPlaceholderDescription(v) {
33
+ return Object.entries(v)
33
34
  .map(([placeholder, prop]) => `${placeholder} -> ${prop}`)
34
35
  .join('\n');
35
36
  }
36
- exports.getAddressPlaceholderDescription = getAddressPlaceholderDescription;
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* generateAddress(argv) {
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.generateAddress = generateAddress;
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGVBZGRyZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2dlbmVyYXRlQWRkcmVzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxpQ0FBaUM7QUFFakMsZ0RBQWdEO0FBRWhELHFDQUFrQztBQUNsQyxpREFBOEM7QUFDOUMscUNBQXNDO0FBQ3RDLGlDQUF1RDtBQUV2RCxTQUFTLG9CQUFvQjtJQUMzQixPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU07SUFDcEMsd0RBQXdEO0lBQ3hELENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxLQUFLLE1BQU0sSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxLQUFLLFlBQVksQ0FDOUcsQ0FBQztBQUNKLENBQUM7QUFrQkQsTUFBTSxZQUFZLEdBQUc7SUFDbkIsSUFBSSxFQUFFLE9BQU87SUFDYixJQUFJLEVBQUUsT0FBTztJQUNiLElBQUksRUFBRSxVQUFVO0lBQ2hCLElBQUksRUFBRSxNQUFNO0lBQ1osS0FBSyxFQUFFLFVBQVU7SUFDakIsS0FBSyxFQUFFLFlBQVk7SUFDbkIsS0FBSyxFQUFFLFdBQVc7SUFDbEIsS0FBSyxFQUFFLFNBQVM7SUFDaEIsS0FBSyxFQUFFLFdBQVc7SUFDbEIsS0FBSyxFQUFFLFVBQVU7SUFDakIsSUFBSSxFQUFFLGNBQWM7SUFDcEIsSUFBSSxFQUFFLGNBQWM7SUFDcEIsSUFBSSxFQUFFLGVBQWU7SUFDckIsSUFBSSxFQUFFLFNBQVM7Q0FDUCxDQUFDO0FBRVgsU0FBZ0IsZ0NBQWdDO0lBQzlDLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUM7U0FDaEMsR0FBRyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsV0FBVyxPQUFPLElB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QUFDLEtBQUssRUFBRSxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3RDLElBQUksR0FBRyxFQUFFO1lBQ1AsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQzdDO1FBQ0QsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3pCLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQVJELDBDQVFDO0FBRUQsUUFBZSxDQUFDLENBQUMsZUFBZSxDQUM5QixJQUtDOztJQUVELE1BQU0sU0FBUyxHQUFHLElBQUEsd0JBQWlCLEVBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUMsTUFBTSxNQUFNLEdBQUcsTUFBQSxJQUFJLENBQUMsS0FBSyxtQ0FBSSxvQkFBb0IsRUFBRSxDQUFDO0lBQ3BELEtBQUssTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtRQUMxQixLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQU0sRUFBRTtZQUMxQixNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUN6QyxtR0FBbUc7WUFDbkcsTUFBTSxvQkFBb0IsQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxNQUFBLElBQUksQ0FBQyxPQUFPLG1DQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDM0Y7S0FDRjtBQUNILENBQUM7QUFqQkQsMENBaUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuXG5pbXBvcnQgeyBQYXJzZXIgfSBmcm9tICcuL1BhcnNlcic7XG5pbXBvcnQgeyBwYXJzZVVua25vd24gfSBmcm9tICcuL3BhcnNlVW5rbm93bic7XG5pbXBvcnQgeyBmb3JtYXRUcmVlIH0gZnJvbSAnLi9mb3JtYXQnO1xuaW1wb3J0IHsgS2V5T3B0aW9ucywgZ2V0Um9vdFdhbGxldEtleXMgfSBmcm9tICcuL2FyZ3MnO1xuXG5mdW5jdGlvbiBnZXREZWZhdWx0Q2hhaW5Db2RlcygpOiBudW1iZXJbXSB7XG4gIHJldHVybiB1dHhvbGliLmJpdGdvLmNoYWluQ29kZXMuZmlsdGVyKFxuICAgIC8vIHRoZXNlIGFyZSByYXJlIGFuZCBzaG93IGFuIGFubm95aW5nIHdhcm5pbmcgaW4gc3RkZXJyXG4gICAgKGMpID0+IHV0eG9saWIuYml0Z28uc2NyaXB0VHlwZUZvckNoYWluKGMpICE9PSAncDJ0cicgJiYgdXR4b2xpYi5iaXRnby5zY3JpcHRUeXBlRm9yQ2hhaW4oYykgIT09ICdwMnRyTXVzaWcyJ1xuICApO1xufVxuXG50eXBlIEFkZHJlc3NQcm9wZXJ0aWVzID0ge1xuICBjaGFpbjogdXR4b2xpYi5iaXRnby5DaGFpbkNvZGU7XG4gIGluZGV4OiBudW1iZXI7XG4gIHR5cGU6IHV0eG9saWIuYml0Z28ub3V0cHV0U2NyaXB0cy5TY3JpcHRUeXBlO1xuICB1c2VyUGF0aDogc3RyaW5nO1xuICBiYWNrdXBQYXRoOiBzdHJpbmc7XG4gIGJpdGdvUGF0aDogc3RyaW5nO1xuICB1c2VyS2V5OiBzdHJpbmc7XG4gIGJhY2t1cEtleTogc3RyaW5nO1xuICBiaXRnb0tleTogc3RyaW5nO1xuICByZWRlZW1TY3JpcHQ/OiBzdHJpbmc7XG4gIHdpdG5lc3NTY3JpcHQ/OiBzdHJpbmc7XG4gIHNjcmlwdFB1YktleTogc3RyaW5nO1xuICBhZGRyZXNzOiBzdHJpbmc7XG59O1xuXG5jb25zdCBwbGFjZWhvbGRlcnMgPSB7XG4gICclYyc6ICdjaGFpbicsXG4gICclaSc6ICdpbmRleCcsXG4gICclcCc6ICd1c2VyUGF0aCcsXG4gICcldCc6ICd0eXBlJyxcbiAgJyVwMCc6ICd1c2VyUGF0aCcsXG4gICclcDEnOiAnYmFja3VwUGF0aCcsXG4gICclcDInOiAnYml0Z29QYXRoJyxcbiAgJyVrMCc6ICd1c2VyS2V5JyxcbiAgJyVrMSc6ICdiYWNrdXBLZXknLFxuICAnJWsyJzogJ2JpdGdvS2V5JyxcbiAgJyVzJzogJ3NjcmlwdFB1YktleScsXG4gICclcic6ICdyZWRlZW1TY3JpcHQnLFxuICAnJXcnOiAnd2l0bmVzc1NjcmlwdCcsXG4gICclYSc6ICdhZGRyZXNzJyxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRBZGRyZXNzUGxhY2Vob2xkZXJEZXNjcmlwdGlvbigpOiBzdHJpbmcge1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocGxhY2Vob2xkZXJzKVxuICAgIC5tYXAoKFtwbGFjZWhvbGRlciwgcHJvcF0pID0+IGAke3BsYWNlaG9sZGVyfSAtPiAke3Byb3B9YClcbiAgICAuam9pbignXFxuJyk7XG59XG5cbmZ1bmN0aW9uIGdldEFkZHJlc3NQcm9wZXJ0aWVzKFxuICBrZXlzOiB1dHhvbGliLmJpdGdvLlJvb3RXYWxsZXRLZXlzLFxuICBjaGFpbjogdXR4b2xpYi5iaXRnby5DaGFpbkNvZGUsXG4gIGluZGV4OiBudW1iZXIsXG4gIG5ldHdvcms6IHV0eG9saWIuTmV0d29ya1xuKTogQWRkcmVzc1Byb3BlcnRpZXMge1xuICBjb25zdCBbdXNlclBhdGgsIGJhY2t1cFBhdGgsIGJpdGdvUGF0aF0gPSBrZXlzLnRyaXBsZS5tYXAoKGspID0+IGtleXMuZ2V0RGVyaXZhdGlvblBhdGgoaywgY2hhaW4sIGluZGV4KSk7XG4gIGNvbnN0IHNjcmlwdHMgPSB1dHhvbGliLmJpdGdvLmdldFdhbGxldE91dHB1dFNjcmlwdHMoa2V5cywgY2hhaW4sIGluZGV4KTtcbiAgY29uc3QgW3VzZXJLZXksIGJhY2t1cEtleSwgYml0Z29LZXldID0ga2V5cy50cmlwbGUubWFwKChrKSA9PiBrLmRlcml2ZVBhdGgodXNlclBhdGgpLnB1YmxpY0tleS50b1N0cmluZygnaGV4JykpO1xuICBjb25zdCBhZGRyZXNzID0gdXR4b2xpYi5hZGRyZXNzLmZyb21PdXRwdXRTY3JpcHQoc2NyaXB0cy5zY3JpcHRQdWJLZXksIG5ldHdvcmspO1xuICByZXR1cm4ge1xuICAgIGNoYWluLFxuICAgIGluZGV4LFxuICAgIHR5cGU6IHV0eG9saWIuYml0Z28uc2NyaXB0VHlwZUZvckNoYWluKGNoYWluKSxcbiAgICB1c2VyUGF0aCxcbiAgICBiYWNrdXBQYXRoLFxuICAgIGJpdGdvUGF0aCxcbiAgICB1c2VyS2V5LFxuICAgIGJhY2t1cEtleSxcbiAgICBiaXRnb0tleSxcbiAgICBzY3JpcHRQdWJLZXk6IHNjcmlwdHMuc2NyaXB0UHViS2V5LnRvU3RyaW5nKCdoZXgnKSxcbiAgICByZWRlZW1TY3JpcHQ6IHNjcmlwdHMucmVkZWVtU2NyaXB0Py50b1N0cmluZygnaGV4JyksXG4gICAgd2l0bmVzc1NjcmlwdDogc2NyaXB0cy53aXRuZXNzU2NyaXB0Py50b1N0cmluZygnaGV4JyksXG4gICAgYWRkcmVzcyxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdEFkZHJlc3NUcmVlKHByb3BzOiBBZGRyZXNzUHJvcGVydGllcyk6IHN0cmluZyB7XG4gIGNvbnN0IHBhcnNlciA9IG5ldyBQYXJzZXIoKTtcbiAgcmV0dXJuIGZvcm1hdFRyZWUocGFyc2VVbmtub3duKHBhcnNlciwgJ2FkZHJlc3MnLCBwcm9wcykpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0QWRkcmVzc1dpdGhGb3JtYXRTdHJpbmcocHJvcHM6IEFkZHJlc3NQcm9wZXJ0aWVzLCBmb3JtYXQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIC8vIHJlcGxhY2UgYWxsIHBhdHRlcm5zIHdpdGggYSAlIHByZWZpeCBmcm9tIGZvcm1hdCBzdHJpbmcgd2l0aCB0aGUgY29ycmVzcG9uZGluZyBwcm9wZXJ0eVxuICAvLyBlLmcuICVwMCAtPiB1c2VyUGF0aCwgJWsxIC0+IGJhY2t1cEtleSwgZXRjLlxuICByZXR1cm4gZm9ybWF0LnJlcGxhY2UoLyVbYS16MC05XSsvZ2ksIChtYXRjaCkgPT4ge1xuICAgIGlmIChtYXRjaCBpbiBwbGFjZWhvbGRlcnMpIHtcbiAgICAgIGNvbnN0IHByb3AgPSBwbGFjZWhvbGRlcnNbbWF0Y2ggYXMga2V5b2YgdHlwZW9mIHBsYWNlaG9sZGVyc107XG4gICAgICByZXR1cm4gU3RyaW5nKHByb3BzW3Byb3BdKTtcbiAgICB9XG4gICAgcmV0dXJuIG1hdGNoO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJhbmdlKHN0YXJ0OiBudW1iZXIsIGVuZDogbnVtYmVyKTogbnVtYmVyW10ge1xuICByZXR1cm4gQXJyYXkuZnJvbSh7IGxlbmd0aDogZW5kIC0gc3RhcnQgKyAxIH0sIChfLCBpKSA9PiBzdGFydCArIGkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VJbmRleFJhbmdlKHJhbmdlczogc3RyaW5nW10pOiBudW1iZXJbXSB7XG4gIHJldHVybiByYW5nZXMuZmxhdE1hcCgocmFuZ2UpID0+IHtcbiAgICBjb25zdCBbc3RhcnQsIGVuZF0gPSByYW5nZS5zcGxpdCgnLScpO1xuICAgIGlmIChlbmQpIHtcbiAgICAgIHJldHVybiBnZXRSYW5nZShOdW1iZXIoc3RhcnQpLCBOdW1iZXIoZW5kKSk7XG4gICAgfVxuICAgIHJldHVybiBbTnVtYmVyKHN0YXJ0KV07XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24qIGdlbmVyYXRlQWRkcmVzcyhcbiAgYXJndjogS2V5T3B0aW9ucyAmIHtcbiAgICBuZXR3b3JrPzogdXR4b2xpYi5OZXR3b3JrO1xuICAgIGNoYWluPzogbnVtYmVyW107XG4gICAgZm9ybWF0OiBzdHJpbmc7XG4gICAgaW5kZXg6IG51bWJlcltdO1xuICB9XG4pOiBHZW5lcmF0b3I8QWRkcmVzc1Byb3BlcnRpZXM+IHtcbiAgY29uc3Qgcm9vdFhwdWJzID0gZ2V0Um9vdFdhbGxldEtleXMoYXJndik7XG4gIGNvbnN0IGNoYWlucyA9IGFyZ3YuY2hhaW4gPz8gZ2V0RGVmYXVsdENoYWluQ29kZXMoKTtcbiAgZm9yIChjb25zdCBpIG9mIGFyZ3YuaW5kZXgpIHtcbiAgICBmb3IgKGNvbnN0IGNoYWluIG9mIGNoYWlucykge1xuICAgICAgYXNzZXJ0KHV0eG9saWIuYml0Z28uaXNDaGFpbkNvZGUoY2hhaW4pKTtcbiAgICAgIC8vIHlpZWxkIGZvcm1hdEFkZHJlc3Mocm9vdFhwdWJzLCBjaGFpbiwgaSwgYXJndi5uZXR3b3JrID8/IHV0eG9saWIubmV0d29ya3MuYml0Y29pbiwgYXJndi5mb3JtYXQpO1xuICAgICAgeWllbGQgZ2V0QWRkcmVzc1Byb3BlcnRpZXMocm9vdFhwdWJzLCBjaGFpbiwgaSwgYXJndi5uZXR3b3JrID8/IHV0eG9saWIubmV0d29ya3MuYml0Y29pbik7XG4gICAgfVxuICB9XG59XG4iXX0=
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGVBZGRyZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2dlbmVyYXRlQWRkcmVzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxpQ0FBaUM7QUFFakMsZ0RBQWdEO0FBQ2hELDREQUFvRDtBQUVwRCxxQ0FBa0M7QUFDbEMsaURBQThDO0FBQzlDLHFDQUFzQztBQUN0QyxpQ0FBdUQ7QUFFdkQsU0FBUyxvQkFBb0I7SUFDM0IsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNO0lBQ3BDLHdEQUF3RDtJQUN4RCxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsS0FBSyxNQUFNLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsS0FBSyxZQUFZLENBQzlHLENBQUM7QUFDSixDQUFDO0FBa0JELE1BQU0sdUJBQXVCLEdBQUc7SUFDOUIsSUFBSSxFQUFFLE9BQU87SUFDYixJQUFJLEVBQUUsT0FBTztJQUNiLElBQUksRUFBRSxVQUFVO0lBQ2hCLElBQUksRUFBRSxNQUFNO0lBQ1osS0FBSyxFQUFFLFVBQVU7SUFDakIsS0FBSyxFQUFFLFlBQVk7SUFDbkIsS0FBSyxFQUFFLFdBQVc7SUFDbEIsS0FBSyxFQUFFLFNBQVM7SUFDaEIsS0FBSyxFQUFFLFdBQVc7SUFDbEIsS0FBSyxFQUFFLFVBQVU7SUFDakIsSUFBSSxFQUFFLGNBQWM7SUFDcEIsSUFBSSxFQUFFLGNBQWM7SUFDcEIsSUFBSSxFQUFFLGVBQWU7SUFDckIsSUFBSSxFQUFFLFNBQVM7Q0FDUCxDQUFDO0FBRVgsU0FBZ0IsMkJBQTJCLENBQUMsQ0FBeUI7SUFDbkUsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztTQUNyQixHQUFHLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxXQUFXLE9BQU8sSUFBSSxFQUFFLENBQUM7U0FDekQsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2hCLENBQUM7QUFKRCxrRUFJQztBQUVELFNBQWdCLDJDQUEyQztJQUN6RCxPQUFPLDJCQUEyQixDQUFDLHVCQUF1QixDQUFDLENBQUM7QUFDOUQsQ0FBQztBQUZELGtHQUVDO0FBRUQsU0FBUyxvQkFBb0IsQ0FDM0IsSUFBa0MsRUFDbEMsS0FBOEIsRUFDOUIsS0FBYSxFQUNiLE9BQXdCOztJQUV4QixNQUFNLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxTQUFTLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUMxRyxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLHNCQUFzQixDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDekUsTUFBTSxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2hILE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNoRixPQUFPO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxJQUFJLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUM7UUFDN0MsUUFBUTtRQUNSLFVBQVU7UUFDVixTQUFTO1FBQ1QsT0FBTztRQUNQLFNBQVM7UUFDVCxRQUFRO1FBQ1IsWUFBWSxFQUFFLE9BQU8sQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztRQUNsRCxZQUFZLEVBQUUsTUFBQSxPQUFPLENBQUMsWUFBWSwwQ0FBRSxRQUFRLENBQUMsS0FBSyxDQUFDO1FBQ25ELGFBQWEsRUFBRSxNQUFBLE9BQU8sQ0FBQyxhQUFhLDBDQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUM7UUFDckQsT0FBTztLQUNSLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBZ0IsaUJBQWlCLENBQUMsS0FBaUU7SUFDakcsTUFBTSxNQUFNLEdBQUcsSUFBSSxlQUFNLEVBQUUsQ0FBQztJQUM1QixPQUFPLElBQUEsbUJBQVUsRUFBQyxJQUFBLDJCQUFZLEVBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQzVELENBQUM7QUFIRCw4Q0FHQztBQUVELFNBQWdCLDZCQUE2QixDQUMzQyxLQUE4QixFQUM5QixZQUFvQyxFQUNwQyxNQUFjO0lBRWQsMEZBQTBGO0lBQzFGLCtDQUErQztJQUMvQyxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7UUFDOUMsSUFBSSxLQUFLLElBQUksWUFBWSxFQUFFO1lBQ3pCLE1BQU0sSUFBSSxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqQyxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztTQUM1QjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBZEQsc0VBY0M7QUFFRCxTQUFnQix3QkFBd0IsQ0FBQyxLQUFtQyxFQUFFLE1BQWM7SUFDMUYsT0FBTyw2QkFBNkIsQ0FBQyxLQUFLLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDL0UsQ0FBQztBQUZELDREQUVDO0FBRUQsU0FBZ0IsUUFBUSxDQUFDLEtBQWEsRUFBRSxHQUFXO0lBQ2pELE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxHQUFHLEdBQUcsS0FBSyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ3RFLENBQUM7QUFGRCw0QkFFQztBQUVELFNBQWdCLGVBQWUsQ0FBQyxNQUFnQjtJQUM5QyxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtRQUM5QixNQUFNLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdEMsSUFBSSxHQUFHLEVBQUU7WUFDUCxPQUFPLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDN0M7UUFDRCxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDekIsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBUkQsMENBUUM7QUFFRCxRQUFlLENBQUMsQ0FBQywwQkFBMEIsQ0FDekMsSUFLQzs7SUFFRCxNQUFNLFNBQVMsR0FBRyxJQUFBLHdCQUFpQixFQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFDLE1BQU0sTUFBTSxHQUFHLE1BQUEsSUFBSSxDQUFDLEtBQUssbUNBQUksb0JBQW9CLEVBQUUsQ0FBQztJQUNwRCxLQUFLLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7UUFDMUIsS0FBSyxNQUFNLEtBQUssSUFBSSxNQUFNLEVBQUU7WUFDMUIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDekMsbUdBQW1HO1lBQ25HLE1BQU0sb0JBQW9CLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsTUFBQSxJQUFJLENBQUMsT0FBTyxtQ0FBSSxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzNGO0tBQ0Y7QUFDSCxDQUFDO0FBakJELGdFQWlCQztBQVVELE1BQU0sNkJBQTZCLEdBQUc7SUFDcEMsSUFBSSxFQUFFLFlBQVk7SUFDbEIsSUFBSSxFQUFFLE9BQU87SUFDYixJQUFJLEVBQUUsZ0JBQWdCO0lBQ3RCLElBQUksRUFBRSxjQUFjO0lBQ3BCLElBQUksRUFBRSxTQUFTO0NBQ1AsQ0FBQztBQUVYLFNBQWdCLDBDQUEwQztJQUN4RCxPQUFPLDJCQUEyQixDQUFDLDZCQUE2QixDQUFDLENBQUM7QUFDcEUsQ0FBQztBQUZELGdHQUVDO0FBRUQsU0FBZ0IsdUJBQXVCLENBQUMsS0FBa0MsRUFBRSxNQUFjO0lBQ3hGLE9BQU8sNkJBQTZCLENBQUMsS0FBSyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3JGLENBQUM7QUFGRCwwREFFQztBQUVELFFBQWUsQ0FBQyxDQUFDLHlCQUF5QixDQUFDLElBSzFDO0lBQ0MsTUFBTSxVQUFVLEdBQUcsNEJBQVUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUN2RSxLQUFLLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7UUFDMUIsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2hELE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDckQsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztRQUN6RCxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0UsTUFBTTtZQUNKLFVBQVUsRUFBRSxPQUFPLENBQUMsUUFBUSxFQUFFO1lBQzlCLEtBQUssRUFBRSxDQUFDO1lBQ1IsT0FBTztZQUNQLGNBQWMsRUFBRSxjQUFjLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztZQUM5QyxZQUFZLEVBQUUsWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7U0FDM0MsQ0FBQztLQUNIO0FBQ0gsQ0FBQztBQXBCRCw4REFvQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcblxuaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5pbXBvcnQgeyBEZXNjcmlwdG9yIH0gZnJvbSAnQGJpdGdvL3dhc20tbWluaXNjcmlwdCc7XG5cbmltcG9ydCB7IFBhcnNlciB9IGZyb20gJy4vUGFyc2VyJztcbmltcG9ydCB7IHBhcnNlVW5rbm93biB9IGZyb20gJy4vcGFyc2VVbmtub3duJztcbmltcG9ydCB7IGZvcm1hdFRyZWUgfSBmcm9tICcuL2Zvcm1hdCc7XG5pbXBvcnQgeyBLZXlPcHRpb25zLCBnZXRSb290V2FsbGV0S2V5cyB9IGZyb20gJy4vYXJncyc7XG5cbmZ1bmN0aW9uIGdldERlZmF1bHRDaGFpbkNvZGVzKCk6IG51bWJlcltdIHtcbiAgcmV0dXJuIHV0eG9saWIuYml0Z28uY2hhaW5Db2Rlcy5maWx0ZXIoXG4gICAgLy8gdGhlc2UgYXJlIHJhcmUgYW5kIHNob3cgYW4gYW5ub3lpbmcgd2FybmluZyBpbiBzdGRlcnJcbiAgICAoYykgPT4gdXR4b2xpYi5iaXRnby5zY3JpcHRUeXBlRm9yQ2hhaW4oYykgIT09ICdwMnRyJyAmJiB1dHhvbGliLmJpdGdvLnNjcmlwdFR5cGVGb3JDaGFpbihjKSAhPT0gJ3AydHJNdXNpZzInXG4gICk7XG59XG5cbnR5cGUgRml4ZWRTY3JpcHRBZGRyZXNzUHJvcGVydGllcyA9IHtcbiAgY2hhaW46IHV0eG9saWIuYml0Z28uQ2hhaW5Db2RlO1xuICBpbmRleDogbnVtYmVyO1xuICB0eXBlOiB1dHhvbGliLmJpdGdvLm91dHB1dFNjcmlwdHMuU2NyaXB0VHlwZTtcbiAgdXNlclBhdGg6IHN0cmluZztcbiAgYmFja3VwUGF0aDogc3RyaW5nO1xuICBiaXRnb1BhdGg6IHN0cmluZztcbiAgdXNlcktleTogc3RyaW5nO1xuICBiYWNrdXBLZXk6IHN0cmluZztcbiAgYml0Z29LZXk6IHN0cmluZztcbiAgcmVkZWVtU2NyaXB0Pzogc3RyaW5nO1xuICB3aXRuZXNzU2NyaXB0Pzogc3RyaW5nO1xuICBzY3JpcHRQdWJLZXk6IHN0cmluZztcbiAgYWRkcmVzczogc3RyaW5nO1xufTtcblxuY29uc3QgZml4ZWRTY3JpcHRQbGFjZWhvbGRlcnMgPSB7XG4gICclYyc6ICdjaGFpbicsXG4gICclaSc6ICdpbmRleCcsXG4gICclcCc6ICd1c2VyUGF0aCcsXG4gICcldCc6ICd0eXBlJyxcbiAgJyVwMCc6ICd1c2VyUGF0aCcsXG4gICclcDEnOiAnYmFja3VwUGF0aCcsXG4gICclcDInOiAnYml0Z29QYXRoJyxcbiAgJyVrMCc6ICd1c2VyS2V5JyxcbiAgJyVrMSc6ICdiYWNrdXBLZXknLFxuICAnJWsyJzogJ2JpdGdvS2V5JyxcbiAgJyVzJzogJ3NjcmlwdFB1YktleScsXG4gICclcic6ICdyZWRlZW1TY3JpcHQnLFxuICAnJXcnOiAnd2l0bmVzc1NjcmlwdCcsXG4gICclYSc6ICdhZGRyZXNzJyxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRBc1BsYWNlaG9sZGVyRGVzY3JpcHRpb24odjogUmVjb3JkPHN0cmluZywgc3RyaW5nPik6IHN0cmluZyB7XG4gIHJldHVybiBPYmplY3QuZW50cmllcyh2KVxuICAgIC5tYXAoKFtwbGFjZWhvbGRlciwgcHJvcF0pID0+IGAke3BsYWNlaG9sZGVyfSAtPiAke3Byb3B9YClcbiAgICAuam9pbignXFxuJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGaXhlZFNjcmlwdEFkZHJlc3NQbGFjZWhvbGRlckRlc2NyaXB0aW9uKCk6IHN0cmluZyB7XG4gIHJldHVybiBnZXRBc1BsYWNlaG9sZGVyRGVzY3JpcHRpb24oZml4ZWRTY3JpcHRQbGFjZWhvbGRlcnMpO1xufVxuXG5mdW5jdGlvbiBnZXRBZGRyZXNzUHJvcGVydGllcyhcbiAga2V5czogdXR4b2xpYi5iaXRnby5Sb290V2FsbGV0S2V5cyxcbiAgY2hhaW46IHV0eG9saWIuYml0Z28uQ2hhaW5Db2RlLFxuICBpbmRleDogbnVtYmVyLFxuICBuZXR3b3JrOiB1dHhvbGliLk5ldHdvcmtcbik6IEZpeGVkU2NyaXB0QWRkcmVzc1Byb3BlcnRpZXMge1xuICBjb25zdCBbdXNlclBhdGgsIGJhY2t1cFBhdGgsIGJpdGdvUGF0aF0gPSBrZXlzLnRyaXBsZS5tYXAoKGspID0+IGtleXMuZ2V0RGVyaXZhdGlvblBhdGgoaywgY2hhaW4sIGluZGV4KSk7XG4gIGNvbnN0IHNjcmlwdHMgPSB1dHhvbGliLmJpdGdvLmdldFdhbGxldE91dHB1dFNjcmlwdHMoa2V5cywgY2hhaW4sIGluZGV4KTtcbiAgY29uc3QgW3VzZXJLZXksIGJhY2t1cEtleSwgYml0Z29LZXldID0ga2V5cy50cmlwbGUubWFwKChrKSA9PiBrLmRlcml2ZVBhdGgodXNlclBhdGgpLnB1YmxpY0tleS50b1N0cmluZygnaGV4JykpO1xuICBjb25zdCBhZGRyZXNzID0gdXR4b2xpYi5hZGRyZXNzLmZyb21PdXRwdXRTY3JpcHQoc2NyaXB0cy5zY3JpcHRQdWJLZXksIG5ldHdvcmspO1xuICByZXR1cm4ge1xuICAgIGNoYWluLFxuICAgIGluZGV4LFxuICAgIHR5cGU6IHV0eG9saWIuYml0Z28uc2NyaXB0VHlwZUZvckNoYWluKGNoYWluKSxcbiAgICB1c2VyUGF0aCxcbiAgICBiYWNrdXBQYXRoLFxuICAgIGJpdGdvUGF0aCxcbiAgICB1c2VyS2V5LFxuICAgIGJhY2t1cEtleSxcbiAgICBiaXRnb0tleSxcbiAgICBzY3JpcHRQdWJLZXk6IHNjcmlwdHMuc2NyaXB0UHViS2V5LnRvU3RyaW5nKCdoZXgnKSxcbiAgICByZWRlZW1TY3JpcHQ6IHNjcmlwdHMucmVkZWVtU2NyaXB0Py50b1N0cmluZygnaGV4JyksXG4gICAgd2l0bmVzc1NjcmlwdDogc2NyaXB0cy53aXRuZXNzU2NyaXB0Py50b1N0cmluZygnaGV4JyksXG4gICAgYWRkcmVzcyxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdEFkZHJlc3NUcmVlKHByb3BzOiBGaXhlZFNjcmlwdEFkZHJlc3NQcm9wZXJ0aWVzIHwgRGVzY3JpcHRvckFkZHJlc3NQcm9wZXJ0aWVzKTogc3RyaW5nIHtcbiAgY29uc3QgcGFyc2VyID0gbmV3IFBhcnNlcigpO1xuICByZXR1cm4gZm9ybWF0VHJlZShwYXJzZVVua25vd24ocGFyc2VyLCAnYWRkcmVzcycsIHByb3BzKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRBZGRyZXNzV2l0aEZvcm1hdFN0cmluZyhcbiAgcHJvcHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICBwbGFjZWhvbGRlcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG4gIGZvcm1hdDogc3RyaW5nXG4pOiBzdHJpbmcge1xuICAvLyByZXBsYWNlIGFsbCBwYXR0ZXJucyB3aXRoIGEgJSBwcmVmaXggZnJvbSBmb3JtYXQgc3RyaW5nIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgcHJvcGVydHlcbiAgLy8gZS5nLiAlcDAgLT4gdXNlclBhdGgsICVrMSAtPiBiYWNrdXBLZXksIGV0Yy5cbiAgcmV0dXJuIGZvcm1hdC5yZXBsYWNlKC8lW2EtejAtOV0rL2dpLCAobWF0Y2gpID0+IHtcbiAgICBpZiAobWF0Y2ggaW4gcGxhY2Vob2xkZXJzKSB7XG4gICAgICBjb25zdCBwcm9wID0gcGxhY2Vob2xkZXJzW21hdGNoXTtcbiAgICAgIHJldHVybiBTdHJpbmcocHJvcHNbcHJvcF0pO1xuICAgIH1cbiAgICByZXR1cm4gbWF0Y2g7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0Rml4ZWRTY3JpcHRBZGRyZXNzKHByb3BzOiBGaXhlZFNjcmlwdEFkZHJlc3NQcm9wZXJ0aWVzLCBmb3JtYXQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBmb3JtYXRBZGRyZXNzV2l0aEZvcm1hdFN0cmluZyhwcm9wcywgZml4ZWRTY3JpcHRQbGFjZWhvbGRlcnMsIGZvcm1hdCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSYW5nZShzdGFydDogbnVtYmVyLCBlbmQ6IG51bWJlcik6IG51bWJlcltdIHtcbiAgcmV0dXJuIEFycmF5LmZyb20oeyBsZW5ndGg6IGVuZCAtIHN0YXJ0ICsgMSB9LCAoXywgaSkgPT4gc3RhcnQgKyBpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlSW5kZXhSYW5nZShyYW5nZXM6IHN0cmluZ1tdKTogbnVtYmVyW10ge1xuICByZXR1cm4gcmFuZ2VzLmZsYXRNYXAoKHJhbmdlKSA9PiB7XG4gICAgY29uc3QgW3N0YXJ0LCBlbmRdID0gcmFuZ2Uuc3BsaXQoJy0nKTtcbiAgICBpZiAoZW5kKSB7XG4gICAgICByZXR1cm4gZ2V0UmFuZ2UoTnVtYmVyKHN0YXJ0KSwgTnVtYmVyKGVuZCkpO1xuICAgIH1cbiAgICByZXR1cm4gW051bWJlcihzdGFydCldO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uKiBnZW5lcmF0ZUZpeGVkU2NyaXB0QWRkcmVzcyhcbiAgYXJndjogS2V5T3B0aW9ucyAmIHtcbiAgICBuZXR3b3JrPzogdXR4b2xpYi5OZXR3b3JrO1xuICAgIGNoYWluPzogbnVtYmVyW107XG4gICAgZm9ybWF0OiBzdHJpbmc7XG4gICAgaW5kZXg6IG51bWJlcltdO1xuICB9XG4pOiBHZW5lcmF0b3I8Rml4ZWRTY3JpcHRBZGRyZXNzUHJvcGVydGllcz4ge1xuICBjb25zdCByb290WHB1YnMgPSBnZXRSb290V2FsbGV0S2V5cyhhcmd2KTtcbiAgY29uc3QgY2hhaW5zID0gYXJndi5jaGFpbiA/PyBnZXREZWZhdWx0Q2hhaW5Db2RlcygpO1xuICBmb3IgKGNvbnN0IGkgb2YgYXJndi5pbmRleCkge1xuICAgIGZvciAoY29uc3QgY2hhaW4gb2YgY2hhaW5zKSB7XG4gICAgICBhc3NlcnQodXR4b2xpYi5iaXRnby5pc0NoYWluQ29kZShjaGFpbikpO1xuICAgICAgLy8geWllbGQgZm9ybWF0QWRkcmVzcyhyb290WHB1YnMsIGNoYWluLCBpLCBhcmd2Lm5ldHdvcmsgPz8gdXR4b2xpYi5uZXR3b3Jrcy5iaXRjb2luLCBhcmd2LmZvcm1hdCk7XG4gICAgICB5aWVsZCBnZXRBZGRyZXNzUHJvcGVydGllcyhyb290WHB1YnMsIGNoYWluLCBpLCBhcmd2Lm5ldHdvcmsgPz8gdXR4b2xpYi5uZXR3b3Jrcy5iaXRjb2luKTtcbiAgICB9XG4gIH1cbn1cblxudHlwZSBEZXNjcmlwdG9yQWRkcmVzc1Byb3BlcnRpZXMgPSB7XG4gIGRlc2NyaXB0b3I6IHN0cmluZztcbiAgaW5kZXg6IG51bWJlcjtcbiAgZXhwbGljaXRTY3JpcHQ6IHN0cmluZztcbiAgc2NyaXB0UHViS2V5OiBzdHJpbmc7XG4gIGFkZHJlc3M6IHN0cmluZztcbn07XG5cbmNvbnN0IGRlc2NyaXB0b3JBZGRyZXNzUGxhY2Vob2xkZXJzID0ge1xuICAnJWQnOiAnZGVzY3JpcHRvcicsXG4gICclaSc6ICdpbmRleCcsXG4gICclZSc6ICdleHBsaWNpdFNjcmlwdCcsXG4gICclcyc6ICdzY3JpcHRQdWJLZXknLFxuICAnJWEnOiAnYWRkcmVzcycsXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVzY3JpcHRvckFkZHJlc3NQbGFjZWhvbGRlckRlc2NyaXB0aW9uKCk6IHN0cmluZyB7XG4gIHJldHVybiBnZXRBc1BsYWNlaG9sZGVyRGVzY3JpcHRpb24oZGVzY3JpcHRvckFkZHJlc3NQbGFjZWhvbGRlcnMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0RGVzY3JpcHRvckFkZHJlc3MocHJvcHM6IERlc2NyaXB0b3JBZGRyZXNzUHJvcGVydGllcywgZm9ybWF0OiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gZm9ybWF0QWRkcmVzc1dpdGhGb3JtYXRTdHJpbmcocHJvcHMsIGRlc2NyaXB0b3JBZGRyZXNzUGxhY2Vob2xkZXJzLCBmb3JtYXQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24qIGdlbmVyYXRlRGVzY3JpcHRvckFkZHJlc3MoYXJndjoge1xuICBuZXR3b3JrOiB1dHhvbGliLk5ldHdvcms7XG4gIGRlc2NyaXB0b3I6IHN0cmluZztcbiAgZm9ybWF0OiBzdHJpbmc7XG4gIGluZGV4OiBudW1iZXJbXTtcbn0pOiBHZW5lcmF0b3I8RGVzY3JpcHRvckFkZHJlc3NQcm9wZXJ0aWVzPiB7XG4gIGNvbnN0IGRlc2NyaXB0b3IgPSBEZXNjcmlwdG9yLmZyb21TdHJpbmcoYXJndi5kZXNjcmlwdG9yLCAnZGVyaXZhYmxlJyk7XG4gIGZvciAoY29uc3QgaSBvZiBhcmd2LmluZGV4KSB7XG4gICAgY29uc3QgZGVyaXZlZCA9IGRlc2NyaXB0b3IuYXREZXJpdmF0aW9uSW5kZXgoaSk7XG4gICAgY29uc3QgZXhwbGljaXRTY3JpcHQgPSBCdWZmZXIuZnJvbShkZXJpdmVkLmVuY29kZSgpKTtcbiAgICBjb25zdCBzY3JpcHRQdWJLZXkgPSBCdWZmZXIuZnJvbShkZXJpdmVkLnNjcmlwdFB1YmtleSgpKTtcbiAgICBjb25zdCBhZGRyZXNzID0gdXR4b2xpYi5hZGRyZXNzLmZyb21PdXRwdXRTY3JpcHQoc2NyaXB0UHViS2V5LCBhcmd2Lm5ldHdvcmspO1xuICAgIHlpZWxkIHtcbiAgICAgIGRlc2NyaXB0b3I6IGRlcml2ZWQudG9TdHJpbmcoKSxcbiAgICAgIGluZGV4OiBpLFxuICAgICAgYWRkcmVzcyxcbiAgICAgIGV4cGxpY2l0U2NyaXB0OiBleHBsaWNpdFNjcmlwdC50b1N0cmluZygnaGV4JyksXG4gICAgICBzY3JpcHRQdWJLZXk6IHNjcmlwdFB1YktleS50b1N0cmluZygnaGV4JyksXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -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-beta/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.generateAddress)({
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.formatAddressWithFormatString)(l, '%a'));
26
+ lines.push((0, generateAddress_1.formatFixedScriptAddress)(l, '%a'));
19
27
  }
20
28
  assert.strictEqual(lines.length, 4);
21
- assert.deepStrictEqual(lines, [
22
- '38FHxcU7KY4E2nDEezEVcKWGvHy9717ehF',
23
- '35Qg1UqVWSJdtF1ysfz9h3KRGdk9uH8iYx',
24
- '3ARnshsLXE9QfJemQdoKL2kp6TRqGohLDz',
25
- '3QxKW93NN8CQrKaNqkDsAXPyxPsrxfTYME',
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGVBZGRyZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdGVzdC9nZW5lcmF0ZUFkZHJlc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxpQ0FBaUM7QUFFakMsNERBQXlHO0FBRXpHLDZDQUE0QztBQUU1QyxRQUFRLENBQUMsbUJBQW1CLEVBQUU7SUFDNUIsRUFBRSxDQUFDLDJCQUEyQixFQUFFO1FBQzlCLE1BQU0sQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsQ0FBQyxHQUFHLElBQUEseUJBQVksRUFBQyxpQkFBaUIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDM0csTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLEtBQUssTUFBTSxDQUFDLElBQUksSUFBQSxpQ0FBZSxFQUFDO1lBQzlCLE9BQU87WUFDUCxTQUFTO1lBQ1QsUUFBUTtZQUNSLEtBQUssRUFBRSxJQUFBLGlDQUFlLEVBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMvQixNQUFNLEVBQUUsSUFBSTtZQUNaLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDZCxDQUFDLEVBQUU7WUFDRixLQUFLLENBQUMsSUFBSSxDQUFDLElBQUEsK0NBQTZCLEVBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDcEQ7UUFFRCxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDcEMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUU7WUFDNUIsb0NBQW9DO1lBQ3BDLG9DQUFvQztZQUNwQyxvQ0FBb0M7WUFDcEMsb0NBQW9DO1NBQ3JDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcblxuaW1wb3J0IHsgZm9ybWF0QWRkcmVzc1dpdGhGb3JtYXRTdHJpbmcsIGdlbmVyYXRlQWRkcmVzcywgcGFyc2VJbmRleFJhbmdlIH0gZnJvbSAnLi4vc3JjL2dlbmVyYXRlQWRkcmVzcyc7XG5cbmltcG9ydCB7IGdldEtleVRyaXBsZSB9IGZyb20gJy4vYmlwMzIudXRpbCc7XG5cbmRlc2NyaWJlKCdnZW5lcmF0ZUFkZHJlc3NlcycsIGZ1bmN0aW9uICgpIHtcbiAgaXQoJ3Nob3VsZCBnZW5lcmF0ZSBhZGRyZXNzZXMnLCBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgW3VzZXJLZXksIGJhY2t1cEtleSwgYml0Z29LZXldID0gZ2V0S2V5VHJpcGxlKCdnZW5lcmF0ZUFkZHJlc3MnKS5tYXAoKGspID0+IGsubmV1dGVyZWQoKS50b0Jhc2U1OCgpKTtcbiAgICBjb25zdCBsaW5lcyA9IFtdO1xuICAgIGZvciAoY29uc3QgbCBvZiBnZW5lcmF0ZUFkZHJlc3Moe1xuICAgICAgdXNlcktleSxcbiAgICAgIGJhY2t1cEtleSxcbiAgICAgIGJpdGdvS2V5LFxuICAgICAgaW5kZXg6IHBhcnNlSW5kZXhSYW5nZShbJzAtMSddKSxcbiAgICAgIGZvcm1hdDogJyVhJyxcbiAgICAgIGNoYWluOiBbMCwgMV0sXG4gICAgfSkpIHtcbiAgICAgIGxpbmVzLnB1c2goZm9ybWF0QWRkcmVzc1dpdGhGb3JtYXRTdHJpbmcobCwgJyVhJykpO1xuICAgIH1cblxuICAgIGFzc2VydC5zdHJpY3RFcXVhbChsaW5lcy5sZW5ndGgsIDQpO1xuICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwobGluZXMsIFtcbiAgICAgICczOEZIeGNVN0tZNEUybkRFZXpFVmNLV0d2SHk5NzE3ZWhGJyxcbiAgICAgICczNVFnMVVxVldTSmR0RjF5c2Z6OWgzS1JHZGs5dUg4aVl4JyxcbiAgICAgICczQVJuc2hzTFhFOVFmSmVtUWRvS0wya3A2VFJxR29oTER6JyxcbiAgICAgICczUXhLVzkzTk44Q1FyS2FOcWtEc0FYUHl4UHNyeGZUWU1FJyxcbiAgICBdKTtcbiAgfSk7XG59KTtcbiJdfQ==
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGVBZGRyZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdGVzdC9nZW5lcmF0ZUFkZHJlc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxpQ0FBaUM7QUFFakMsZ0RBQWdEO0FBRWhELDREQU1nQztBQUVoQyw2Q0FBNEM7QUFFNUMsUUFBUSxDQUFDLG1CQUFtQixFQUFFO0lBQzVCLE1BQU0sQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsQ0FBQyxHQUFHLElBQUEseUJBQVksRUFBQyxpQkFBaUIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDM0csdUJBQXVCO0lBQ3ZCLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsR0FBRztRQUN2QyxvQ0FBb0M7UUFDcEMsb0NBQW9DO1FBQ3BDLG9DQUFvQztRQUNwQyxvQ0FBb0M7S0FDckMsQ0FBQztJQUNGLEVBQUUsQ0FBQywyQkFBMkIsRUFBRTtRQUM5QixNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDakIsS0FBSyxNQUFNLENBQUMsSUFBSSxJQUFBLDRDQUEwQixFQUFDO1lBQ3pDLE9BQU87WUFDUCxTQUFTO1lBQ1QsUUFBUTtZQUNSLEtBQUssRUFBRSxJQUFBLGlDQUFlLEVBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMvQixNQUFNLEVBQUUsSUFBSTtZQUNaLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDZCxDQUFDLEVBQUU7WUFDRixLQUFLLENBQUMsSUFBSSxDQUFDLElBQUEsMENBQXdCLEVBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDL0M7UUFFRCxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDcEMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ2xFLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLHNDQUFzQyxFQUFFO1FBQ3pDLHNDQUFzQztRQUN0QyxNQUFNLEtBQUssR0FBRyxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUM7UUFDeEUsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLEtBQUssTUFBTSxDQUFDLElBQUksSUFBQSwyQ0FBeUIsRUFBQztZQUN4QyxPQUFPLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPO1lBQ2pDLFVBQVUsRUFBRSxjQUFjLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUk7WUFDN0MsS0FBSyxFQUFFLElBQUEsaUNBQWUsRUFBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQy9CLE1BQU0sRUFBRSxJQUFJO1NBQ2IsQ0FBQyxFQUFFO1lBQ0YsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFBLHlDQUF1QixFQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQzlDO1FBQ0QsTUFBTSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNsRCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuXG5pbXBvcnQge1xuICBmb3JtYXREZXNjcmlwdG9yQWRkcmVzcyxcbiAgZm9ybWF0Rml4ZWRTY3JpcHRBZGRyZXNzLFxuICBnZW5lcmF0ZURlc2NyaXB0b3JBZGRyZXNzLFxuICBnZW5lcmF0ZUZpeGVkU2NyaXB0QWRkcmVzcyxcbiAgcGFyc2VJbmRleFJhbmdlLFxufSBmcm9tICcuLi9zcmMvZ2VuZXJhdGVBZGRyZXNzJztcblxuaW1wb3J0IHsgZ2V0S2V5VHJpcGxlIH0gZnJvbSAnLi9iaXAzMi51dGlsJztcblxuZGVzY3JpYmUoJ2dlbmVyYXRlQWRkcmVzc2VzJywgZnVuY3Rpb24gKCkge1xuICBjb25zdCBbdXNlcktleSwgYmFja3VwS2V5LCBiaXRnb0tleV0gPSBnZXRLZXlUcmlwbGUoJ2dlbmVyYXRlQWRkcmVzcycpLm1hcCgoaykgPT4gay5uZXV0ZXJlZCgpLnRvQmFzZTU4KCkpO1xuICAvLyBhZGRyJHtjaGFpbn0ke2luZGV4fVxuICBjb25zdCBbYWRkcjAwLCBhZGRyMTAsIGFkZHIwMSwgYWRkcjExXSA9IFtcbiAgICAnMzhGSHhjVTdLWTRFMm5ERWV6RVZjS1dHdkh5OTcxN2VoRicsXG4gICAgJzM1UWcxVXFWV1NKZHRGMXlzZno5aDNLUkdkazl1SDhpWXgnLFxuICAgICczQVJuc2hzTFhFOVFmSmVtUWRvS0wya3A2VFJxR29oTER6JyxcbiAgICAnM1F4S1c5M05OOENRckthTnFrRHNBWFB5eFBzcnhmVFlNRScsXG4gIF07XG4gIGl0KCdzaG91bGQgZ2VuZXJhdGUgYWRkcmVzc2VzJywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IGxpbmVzID0gW107XG4gICAgZm9yIChjb25zdCBsIG9mIGdlbmVyYXRlRml4ZWRTY3JpcHRBZGRyZXNzKHtcbiAgICAgIHVzZXJLZXksXG4gICAgICBiYWNrdXBLZXksXG4gICAgICBiaXRnb0tleSxcbiAgICAgIGluZGV4OiBwYXJzZUluZGV4UmFuZ2UoWycwLTEnXSksXG4gICAgICBmb3JtYXQ6ICclYScsXG4gICAgICBjaGFpbjogWzAsIDFdLFxuICAgIH0pKSB7XG4gICAgICBsaW5lcy5wdXNoKGZvcm1hdEZpeGVkU2NyaXB0QWRkcmVzcyhsLCAnJWEnKSk7XG4gICAgfVxuXG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKGxpbmVzLmxlbmd0aCwgNCk7XG4gICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChsaW5lcywgW2FkZHIwMCwgYWRkcjEwLCBhZGRyMDEsIGFkZHIxMV0pO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGdlbmVyYXRlIGRlc2NyaXB0b3IgYWRkcmVzc2VzJywgZnVuY3Rpb24gKCkge1xuICAgIC8vIG9ubHkgZ2VuZXJhdGUgYWRkcmVzc2VzIGZvciBjaGFpbiAwXG4gICAgY29uc3QgeHB1YnMgPSBbdXNlcktleSwgYmFja3VwS2V5LCBiaXRnb0tleV0ubWFwKCh4KSA9PiB4ICsgJy8wLzAvMC8qJyk7XG4gICAgY29uc3QgbGluZXMgPSBbXTtcbiAgICBmb3IgKGNvbnN0IGwgb2YgZ2VuZXJhdGVEZXNjcmlwdG9yQWRkcmVzcyh7XG4gICAgICBuZXR3b3JrOiB1dHhvbGliLm5ldHdvcmtzLmJpdGNvaW4sXG4gICAgICBkZXNjcmlwdG9yOiBgc2gobXVsdGkoMiwke3hwdWJzLmpvaW4oJywnKX0pKWAsXG4gICAgICBpbmRleDogcGFyc2VJbmRleFJhbmdlKFsnMC0xJ10pLFxuICAgICAgZm9ybWF0OiAnJWQnLFxuICAgIH0pKSB7XG4gICAgICBsaW5lcy5wdXNoKGZvcm1hdERlc2NyaXB0b3JBZGRyZXNzKGwsICclYScpKTtcbiAgICB9XG4gICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChsaW5lcywgW2FkZHIwMCwgYWRkcjAxXSk7XG4gIH0pO1xufSk7XG4iXX0=
@@ -1 +1 @@
1
- {"version":3,"file":"parseAddress.d.ts","sourceRoot":"","sources":["../../test/parseAddress.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAQhD,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"}
1
+ {"version":3,"file":"parseAddress.d.ts","sourceRoot":"","sources":["../../test/parseAddress.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAOhD,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"}