@bitgo/utxo-bin 2.50.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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 +4 -3
  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/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,iBAAiB,CAAC;AAC3C,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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY21kR2VuZXJhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tbWFuZHMvY21kQWRkcmVzcy9jbWRHZW5lcmF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFHQSxxQ0FBNkU7QUFDN0UsMkRBVStCO0FBTy9CLE1BQU0saUJBQWlCLEdBQUc7SUFDeEIsS0FBSyxFQUFFO1FBQ0wsSUFBSSxFQUFFLFFBQVE7UUFDZCxLQUFLLEVBQUUsSUFBSTtRQUNYLFdBQVcsRUFBRSxvRkFBb0Y7S0FDbEc7SUFDRCxLQUFLLEVBQUU7UUFDTCxJQUFJLEVBQUUsUUFBUTtRQUNkLFdBQVcsRUFBRSx3REFBd0Q7UUFDckUsT0FBTyxFQUFFLEdBQUc7S0FDYjtDQUNPLENBQUM7QUFFWCxTQUFTLHFCQUFxQixDQUFDLElBQXVCO0lBQ3BELElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtRQUNkLE9BQU8sSUFBQSxpQ0FBZSxFQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUNwQztJQUNELElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtRQUNkLE9BQU8sSUFBQSwwQkFBUSxFQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO0tBQ3BDO0lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0FBQ3ZDLENBQUM7QUFTWSxRQUFBLHNCQUFzQixHQUEyRDtJQUM1RixPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFFBQVEsRUFBRSx1Q0FBdUM7SUFDakQsT0FBTyxDQUFDLENBQUM7UUFDUCxPQUFPLENBQUM7YUFDTCxPQUFPLENBQUMsSUFBQSw4QkFBdUIsRUFBQyxTQUFTLENBQUMsQ0FBQzthQUMzQyxPQUFPLENBQUMsaUJBQVUsQ0FBQzthQUNuQixNQUFNLENBQUMsUUFBUSxFQUFFO1lBQ2hCLElBQUksRUFBRSxRQUFRO1lBQ2QsT0FBTyxFQUFFLFNBQVM7WUFDbEIsV0FBVyxFQUFFLGtDQUFrQyxJQUFBLDZEQUEyQyxHQUFFLEVBQUU7U0FDL0YsQ0FBQzthQUNELE1BQU0sQ0FBQyxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxDQUFDO2FBQzlFLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFDRCxPQUFPLENBQUMsSUFBSTtRQUNWLEtBQUssTUFBTSxPQUFPLElBQUksSUFBQSw0Q0FBMEIsRUFBQztZQUMvQyxHQUFHLElBQUk7WUFDUCxLQUFLLEVBQUUscUJBQXFCLENBQUMsSUFBSSxDQUFDO1NBQ25DLENBQUMsRUFBRTtZQUNGLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxNQUFNLEVBQUU7Z0JBQzFCLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBQSxtQ0FBaUIsRUFBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO2FBQ3pDO2lCQUFNO2dCQUNMLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBQSwwQ0FBd0IsRUFBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7YUFDN0Q7U0FDRjtJQUNILENBQUM7Q0FDRixDQUFDO0FBUVcsUUFBQSxpQkFBaUIsR0FBMEQ7SUFDdEYsT0FBTyxFQUFFLDZCQUE2QjtJQUN0QyxRQUFRLEVBQUUsa0NBQWtDO0lBQzVDLE9BQU8sQ0FBQyxDQUFDO1FBQ1AsT0FBTyxDQUFDO2FBQ0wsT0FBTyxDQUFDLElBQUEsOEJBQXVCLEVBQUMsU0FBUyxDQUFDLENBQUM7YUFDM0MsVUFBVSxDQUFDLFlBQVksRUFBRTtZQUN4QixJQUFJLEVBQUUsUUFBUTtZQUNkLFlBQVksRUFBRSxJQUFJO1NBQ25CLENBQUM7YUFDRCxPQUFPLENBQUM7WUFDUCxNQUFNLEVBQUU7Z0JBQ04sSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsV0FBVyxFQUFFLGtDQUFrQyxJQUFBLDREQUEwQyxHQUFFLEVBQUU7Z0JBQzdGLE9BQU8sRUFBRSxRQUFRO2FBQ2xCO1NBQ0YsQ0FBQzthQUNELE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFDRCxPQUFPLENBQUMsSUFBSTtRQUNWLEtBQUssTUFBTSxPQUFPLElBQUksSUFBQSwyQ0FBeUIsRUFBQztZQUM5QyxHQUFHLElBQUk7WUFDUCxLQUFLLEVBQUUscUJBQXFCLENBQUMsSUFBSSxDQUFDO1NBQ25DLENBQUMsRUFBRTtZQUNGLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxNQUFNLEVBQUU7Z0JBQzFCLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBQSxtQ0FBaUIsRUFBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO2FBQ3pDO2lCQUFNO2dCQUNMLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBQSx5Q0FBdUIsRUFBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7YUFDNUQ7U0FDRjtJQUNILENBQUM7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28vdXR4by1saWInO1xuaW1wb3J0IHsgQ29tbWFuZE1vZHVsZSB9IGZyb20gJ3lhcmdzJztcblxuaW1wb3J0IHsgZ2V0TmV0d29ya09wdGlvbnNEZW1hbmQsIGtleU9wdGlvbnMsIEtleU9wdGlvbnMgfSBmcm9tICcuLi8uLi9hcmdzJztcbmltcG9ydCB7XG4gIGZvcm1hdEFkZHJlc3NUcmVlLFxuICBmb3JtYXREZXNjcmlwdG9yQWRkcmVzcyxcbiAgZm9ybWF0Rml4ZWRTY3JpcHRBZGRyZXNzLFxuICBnZW5lcmF0ZURlc2NyaXB0b3JBZGRyZXNzLFxuICBnZW5lcmF0ZUZpeGVkU2NyaXB0QWRkcmVzcyxcbiAgZ2V0RGVzY3JpcHRvckFkZHJlc3NQbGFjZWhvbGRlckRlc2NyaXB0aW9uLFxuICBnZXRGaXhlZFNjcmlwdEFkZHJlc3NQbGFjZWhvbGRlckRlc2NyaXB0aW9uLFxuICBnZXRSYW5nZSxcbiAgcGFyc2VJbmRleFJhbmdlLFxufSBmcm9tICcuLi8uLi9nZW5lcmF0ZUFkZHJlc3MnO1xuXG50eXBlIEluZGV4TGltaXRPcHRpb25zID0ge1xuICBpbmRleD86IHN0cmluZ1tdO1xuICBsaW1pdD86IG51bWJlcjtcbn07XG5cbmNvbnN0IGluZGV4TGltaXRPcHRpb25zID0ge1xuICBpbmRleDoge1xuICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgIGFycmF5OiB0cnVlLFxuICAgIGRlc2NyaXB0aW9uOiAnQWRkcmVzcyBpbmRleC4gQ2FuIGJlIGdpdmVuIGFzIGEgcmFuZ2UgKGUuZy4gMC05OSkuIFRha2VzIHByZWNlZGVuY2Ugb3ZlciAtLWxpbWl0LicsXG4gIH0sXG4gIGxpbWl0OiB7XG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgZGVzY3JpcHRpb246ICdBbGlhcyBmb3IgLS1pbmRleCB3aXRoIHJhbmdlIHN0YXJ0aW5nIGF0IDAgdG8gbGltaXQtMS4nLFxuICAgIGRlZmF1bHQ6IDEwMCxcbiAgfSxcbn0gYXMgY29uc3Q7XG5cbmZ1bmN0aW9uIGdldEluZGV4UmFuZ2VGcm9tQXJndihhcmd2OiBJbmRleExpbWl0T3B0aW9ucyk6IG51bWJlcltdIHtcbiAgaWYgKGFyZ3YuaW5kZXgpIHtcbiAgICByZXR1cm4gcGFyc2VJbmRleFJhbmdlKGFyZ3YuaW5kZXgpO1xuICB9XG4gIGlmIChhcmd2LmxpbWl0KSB7XG4gICAgcmV0dXJuIGdldFJhbmdlKDAsIGFyZ3YubGltaXQgLSAxKTtcbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoYG5vIGluZGV4IG9yIGxpbWl0YCk7XG59XG5cbnR5cGUgQXJnc0dlbmVyYXRlQWRkcmVzc0ZpeGVkU2NyaXB0ID0gS2V5T3B0aW9ucyAmXG4gIEluZGV4TGltaXRPcHRpb25zICYge1xuICAgIG5ldHdvcms6IHV0eG9saWIuTmV0d29yaztcbiAgICBjaGFpbj86IG51bWJlcltdO1xuICAgIGZvcm1hdDogc3RyaW5nO1xuICB9O1xuXG5leHBvcnQgY29uc3QgY21kR2VuZXJhdGVGaXhlZFNjcmlwdDogQ29tbWFuZE1vZHVsZTx1bmtub3duLCBBcmdzR2VuZXJhdGVBZGRyZXNzRml4ZWRTY3JpcHQ+ID0ge1xuICBjb21tYW5kOiAnZnJvbUZpeGVkU2NyaXB0JyxcbiAgZGVzY3JpYmU6ICdnZW5lcmF0ZSBiaXRnbyBmaXhlZC1zY3JpcHQgYWRkcmVzc2VzJyxcbiAgYnVpbGRlcihiKSB7XG4gICAgcmV0dXJuIGJcbiAgICAgIC5vcHRpb25zKGdldE5ldHdvcmtPcHRpb25zRGVtYW5kKCdiaXRjb2luJykpXG4gICAgICAub3B0aW9ucyhrZXlPcHRpb25zKVxuICAgICAgLm9wdGlvbignZm9ybWF0Jywge1xuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgZGVmYXVsdDogJyVwMFxcdCVhJyxcbiAgICAgICAgZGVzY3JpcHRpb246IGBGb3JtYXQgc3RyaW5nLlxcblBsYWNlaG9sZGVyczpcXG4ke2dldEZpeGVkU2NyaXB0QWRkcmVzc1BsYWNlaG9sZGVyRGVzY3JpcHRpb24oKX1gLFxuICAgICAgfSlcbiAgICAgIC5vcHRpb24oJ2NoYWluJywgeyB0eXBlOiAnbnVtYmVyJywgYXJyYXk6IHRydWUsIGRlc2NyaXB0aW9uOiAnQWRkcmVzcyBjaGFpbicgfSlcbiAgICAgIC5vcHRpb25zKGluZGV4TGltaXRPcHRpb25zKTtcbiAgfSxcbiAgaGFuZGxlcihhcmd2KTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBhZGRyZXNzIG9mIGdlbmVyYXRlRml4ZWRTY3JpcHRBZGRyZXNzKHtcbiAgICAgIC4uLmFyZ3YsXG4gICAgICBpbmRleDogZ2V0SW5kZXhSYW5nZUZyb21Bcmd2KGFyZ3YpLFxuICAgIH0pKSB7XG4gICAgICBpZiAoYXJndi5mb3JtYXQgPT09ICd0cmVlJykge1xuICAgICAgICBjb25zb2xlLmxvZyhmb3JtYXRBZGRyZXNzVHJlZShhZGRyZXNzKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLmxvZyhmb3JtYXRGaXhlZFNjcmlwdEFkZHJlc3MoYWRkcmVzcywgYXJndi5mb3JtYXQpKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sXG59O1xuXG50eXBlIEFyZ3NHZW5lcmF0ZURlc2NyaXB0b3JBZGRyZXNzID0ge1xuICBuZXR3b3JrOiB1dHhvbGliLk5ldHdvcms7XG4gIGRlc2NyaXB0b3I6IHN0cmluZztcbiAgZm9ybWF0OiBzdHJpbmc7XG59ICYgSW5kZXhMaW1pdE9wdGlvbnM7XG5cbmV4cG9ydCBjb25zdCBjbWRGcm9tRGVzY3JpcHRvcjogQ29tbWFuZE1vZHVsZTx1bmtub3duLCBBcmdzR2VuZXJhdGVEZXNjcmlwdG9yQWRkcmVzcz4gPSB7XG4gIGNvbW1hbmQ6ICdmcm9tRGVzY3JpcHRvciBbZGVzY3JpcHRvcl0nLFxuICBkZXNjcmliZTogJ2dlbmVyYXRlIGFkZHJlc3MgZnJvbSBkZXNjcmlwdG9yJyxcbiAgYnVpbGRlcihiKSB7XG4gICAgcmV0dXJuIGJcbiAgICAgIC5vcHRpb25zKGdldE5ldHdvcmtPcHRpb25zRGVtYW5kKCdiaXRjb2luJykpXG4gICAgICAucG9zaXRpb25hbCgnZGVzY3JpcHRvcicsIHtcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIGRlbWFuZE9wdGlvbjogdHJ1ZSxcbiAgICAgIH0pXG4gICAgICAub3B0aW9ucyh7XG4gICAgICAgIGZvcm1hdDoge1xuICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiBgRm9ybWF0IHN0cmluZy5cXG5QbGFjZWhvbGRlcnM6XFxuJHtnZXREZXNjcmlwdG9yQWRkcmVzc1BsYWNlaG9sZGVyRGVzY3JpcHRpb24oKX1gLFxuICAgICAgICAgIGRlZmF1bHQ6ICclaVxcdCVhJyxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgICAub3B0aW9ucyhpbmRleExpbWl0T3B0aW9ucyk7XG4gIH0sXG4gIGhhbmRsZXIoYXJndikge1xuICAgIGZvciAoY29uc3QgYWRkcmVzcyBvZiBnZW5lcmF0ZURlc2NyaXB0b3JBZGRyZXNzKHtcbiAgICAgIC4uLmFyZ3YsXG4gICAgICBpbmRleDogZ2V0SW5kZXhSYW5nZUZyb21Bcmd2KGFyZ3YpLFxuICAgIH0pKSB7XG4gICAgICBpZiAoYXJndi5mb3JtYXQgPT09ICd0cmVlJykge1xuICAgICAgICBjb25zb2xlLmxvZyhmb3JtYXRBZGRyZXNzVHJlZShhZGRyZXNzKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLmxvZyhmb3JtYXREZXNjcmlwdG9yQWRkcmVzcyhhZGRyZXNzLCBhcmd2LmZvcm1hdCkpO1xuICAgICAgfVxuICAgIH1cbiAgfSxcbn07XG4iXX0=
@@ -1,20 +1,20 @@
1
1
  import * as utxolib from '@bitgo/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,iBAAiB,CAAC;AAC3C,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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY21kUGFyc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tbWFuZHMvY21kQWRkcmVzcy9jbWRQYXJzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFHQSx1REFBb0Q7QUFDcEQscUNBQW1GO0FBRW5GLGtEQUErQztBQVUvQyxTQUFnQixnQkFBZ0IsQ0FBQyxJQUFzQjtJQUNyRCxPQUFPLElBQUksNkJBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNqQyxDQUFDO0FBRkQsNENBRUM7QUFFWSxRQUFBLFFBQVEsR0FBRztJQUN0QixPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FBQztJQUNwQixRQUFRLEVBQUUsZUFBZTtJQUN6QixPQUFPLENBQUMsQ0FBc0I7UUFDNUIsT0FBTyxDQUFDO2FBQ0wsT0FBTyxDQUFDLElBQUEsd0JBQWlCLEdBQUUsQ0FBQzthQUM1QixNQUFNLENBQUMsUUFBUSxFQUFFLHVCQUFnQixDQUFDO2FBQ2xDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQzthQUN0RCxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUM7YUFDbEQsVUFBVSxDQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVELE9BQU8sQ0FBQyxJQUF1QztRQUM3QyxNQUFNLE1BQU0sR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzFELE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBQSwyQkFBWSxFQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7Q0FDTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28vdXR4by1saWInO1xuaW1wb3J0ICogYXMgeWFyZ3MgZnJvbSAneWFyZ3MnO1xuXG5pbXBvcnQgeyBBZGRyZXNzUGFyc2VyIH0gZnJvbSAnLi4vLi4vQWRkcmVzc1BhcnNlcic7XG5pbXBvcnQgeyBmb3JtYXRUcmVlT3JKc29uLCBGb3JtYXRUcmVlT3JKc29uLCBnZXROZXR3b3JrT3B0aW9ucyB9IGZyb20gJy4uLy4uL2FyZ3MnO1xuXG5pbXBvcnQgeyBmb3JtYXRTdHJpbmcgfSBmcm9tICcuLi9mb3JtYXRTdHJpbmcnO1xuXG5leHBvcnQgdHlwZSBBcmdzUGFyc2VBZGRyZXNzID0ge1xuICBuZXR3b3JrPzogdXR4b2xpYi5OZXR3b3JrO1xuICBmb3JtYXQ6IEZvcm1hdFRyZWVPckpzb247XG4gIGFsbDogYm9vbGVhbjtcbiAgY29udmVydDogYm9vbGVhbjtcbiAgYWRkcmVzczogc3RyaW5nO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEFkZHJlc3NQYXJzZXIoYXJndjogQXJnc1BhcnNlQWRkcmVzcyk6IEFkZHJlc3NQYXJzZXIge1xuICByZXR1cm4gbmV3IEFkZHJlc3NQYXJzZXIoYXJndik7XG59XG5cbmV4cG9ydCBjb25zdCBjbWRQYXJzZSA9IHtcbiAgY29tbWFuZDogJ3BhcnNlIFthZGRyZXNzXScsXG4gIGFsaWFzZXM6IFsnYWRkcmVzcyddLFxuICBkZXNjcmliZTogJ3BhcnNlIGFkZHJlc3MnLFxuICBidWlsZGVyKGI6IHlhcmdzLkFyZ3Y8dW5rbm93bj4pOiB5YXJncy5Bcmd2PEFyZ3NQYXJzZUFkZHJlc3M+IHtcbiAgICByZXR1cm4gYlxuICAgICAgLm9wdGlvbnMoZ2V0TmV0d29ya09wdGlvbnMoKSlcbiAgICAgIC5vcHRpb24oJ2Zvcm1hdCcsIGZvcm1hdFRyZWVPckpzb24pXG4gICAgICAub3B0aW9uKCdjb252ZXJ0JywgeyB0eXBlOiAnYm9vbGVhbicsIGRlZmF1bHQ6IGZhbHNlIH0pXG4gICAgICAub3B0aW9uKCdhbGwnLCB7IHR5cGU6ICdib29sZWFuJywgZGVmYXVsdDogZmFsc2UgfSlcbiAgICAgIC5wb3NpdGlvbmFsKCdhZGRyZXNzJywgeyB0eXBlOiAnc3RyaW5nJywgZGVtYW5kT3B0aW9uOiB0cnVlIH0pO1xuICB9LFxuXG4gIGhhbmRsZXIoYXJndjogeWFyZ3MuQXJndW1lbnRzPEFyZ3NQYXJzZUFkZHJlc3M+KTogdm9pZCB7XG4gICAgY29uc3QgcGFyc2VkID0gZ2V0QWRkcmVzc1BhcnNlcihhcmd2KS5wYXJzZShhcmd2LmFkZHJlc3MpO1xuICAgIGNvbnNvbGUubG9nKGZvcm1hdFN0cmluZyhwYXJzZWQsIGFyZ3YpKTtcbiAgfSxcbn0gYXMgY29uc3Q7XG4iXX0=
@@ -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/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,iBAAiB,CAAC;AAK3C,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,iBAAiB,CAAC;AAM3C,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/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,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.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,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;AAQ3C,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,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"}