@bitgo/utxo-bin 2.11.0 → 2.13.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 (55) hide show
  1. package/README.md +9 -1
  2. package/dist/bin/index.js +9 -2
  3. package/dist/src/InputParser.d.ts +44 -0
  4. package/dist/src/InputParser.d.ts.map +1 -0
  5. package/dist/src/InputParser.js +239 -0
  6. package/dist/src/OutputParser.d.ts +24 -0
  7. package/dist/src/OutputParser.d.ts.map +1 -0
  8. package/dist/src/OutputParser.js +52 -0
  9. package/dist/src/Parser.d.ts +7 -1
  10. package/dist/src/Parser.d.ts.map +1 -1
  11. package/dist/src/Parser.js +26 -2
  12. package/dist/src/ParserTx.d.ts +28 -0
  13. package/dist/src/ParserTx.d.ts.map +1 -0
  14. package/dist/src/ParserTx.js +94 -0
  15. package/dist/src/ScriptParser.d.ts +21 -0
  16. package/dist/src/ScriptParser.d.ts.map +1 -0
  17. package/dist/src/ScriptParser.js +77 -0
  18. package/dist/src/TxParser.d.ts +9 -6
  19. package/dist/src/TxParser.d.ts.map +1 -1
  20. package/dist/src/TxParser.js +21 -23
  21. package/dist/src/commands.d.ts +34 -2
  22. package/dist/src/commands.d.ts.map +1 -1
  23. package/dist/src/commands.js +102 -19
  24. package/dist/src/fetch.d.ts +4 -3
  25. package/dist/src/fetch.d.ts.map +1 -1
  26. package/dist/src/fetch.js +14 -3
  27. package/dist/src/format.d.ts +1 -1
  28. package/dist/src/format.d.ts.map +1 -1
  29. package/dist/src/format.js +14 -7
  30. package/dist/src/generateAddress.d.ts +11 -0
  31. package/dist/src/generateAddress.d.ts.map +1 -0
  32. package/dist/src/generateAddress.js +29 -0
  33. package/dist/src/parseString.d.ts +5 -0
  34. package/dist/src/parseString.d.ts.map +1 -0
  35. package/dist/src/parseString.js +29 -0
  36. package/dist/src/parseUnknown.d.ts +5 -0
  37. package/dist/src/parseUnknown.d.ts.map +1 -0
  38. package/dist/src/parseUnknown.js +50 -0
  39. package/dist/test/fixtures.d.ts +24 -0
  40. package/dist/test/fixtures.d.ts.map +1 -0
  41. package/dist/test/fixtures.js +95 -0
  42. package/dist/test/parseAddress.d.ts +10 -0
  43. package/dist/test/parseAddress.d.ts.map +1 -0
  44. package/dist/test/parseAddress.js +87 -0
  45. package/dist/test/parseScript.d.ts +2 -0
  46. package/dist/test/parseScript.d.ts.map +1 -0
  47. package/dist/test/parseScript.js +38 -0
  48. package/dist/test/parseTransaction.d.ts +2 -0
  49. package/dist/test/parseTransaction.d.ts.map +1 -0
  50. package/dist/test/parseTransaction.js +66 -0
  51. package/dist/test/stringToBuffer.d.ts +2 -0
  52. package/dist/test/stringToBuffer.d.ts.map +1 -0
  53. package/dist/test/stringToBuffer.js +16 -0
  54. package/dist/tsconfig.tsbuildinfo +1 -5401
  55. package/package.json +7 -7
@@ -1,17 +1,23 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.cmdParseAddress = exports.cmdParseTx = exports.getAddressParser = exports.getTxParser = void 0;
3
+ exports.cmdGenerateAddress = exports.cmdParseScript = exports.cmdParseAddress = exports.cmdParseTx = exports.getScriptParser = exports.getAddressParser = exports.getTxParser = void 0;
4
4
  const fs = require("fs");
5
5
  const process = require("process");
6
6
  const util_1 = require("util");
7
- const clipboardy = require("clipboardy");
7
+ const clipboardy_cjs_1 = require("clipboardy-cjs");
8
8
  const utxolib = require("@bitgo/utxo-lib");
9
+ const Parser_1 = require("./Parser");
9
10
  const format_1 = require("./format");
10
11
  const fetch_1 = require("./fetch");
11
12
  const TxParser_1 = require("./TxParser");
12
13
  const AddressParser_1 = require("./AddressParser");
13
14
  const blockapis_1 = require("@bitgo/blockapis");
14
15
  const readStdin_1 = require("./readStdin");
16
+ const parseUnknown_1 = require("./parseUnknown");
17
+ const ParserTx_1 = require("./ParserTx");
18
+ const ScriptParser_1 = require("./ScriptParser");
19
+ const parseString_1 = require("./parseString");
20
+ const generateAddress_1 = require("./generateAddress");
15
21
  async function getClient({ cache }) {
16
22
  if (cache) {
17
23
  const mkdir = util_1.promisify(fs.mkdir);
@@ -24,7 +30,7 @@ async function getClient({ cache }) {
24
30
  function getNetworkForName(name) {
25
31
  const network = utxolib.networks[name];
26
32
  if (!network) {
27
- throw new Error(`invalid network ${network}`);
33
+ throw new Error(`invalid network ${name}`);
28
34
  }
29
35
  return network;
30
36
  }
@@ -48,7 +54,7 @@ function resolveNetwork(args) {
48
54
  }
49
55
  function getTxParser(argv) {
50
56
  if (argv.all) {
51
- return new TxParser_1.TxParser(TxParser_1.TxParser.PARSE_ALL);
57
+ return new TxParser_1.TxParser({ ...argv, ...TxParser_1.TxParser.PARSE_ALL });
52
58
  }
53
59
  return new TxParser_1.TxParser({
54
60
  ...argv,
@@ -64,15 +70,22 @@ function getAddressParser(argv) {
64
70
  return new AddressParser_1.AddressParser(resolveNetwork(argv));
65
71
  }
66
72
  exports.getAddressParser = getAddressParser;
73
+ function getScriptParser(argv) {
74
+ return new ScriptParser_1.ScriptParser(resolveNetwork(argv));
75
+ }
76
+ exports.getScriptParser = getScriptParser;
67
77
  exports.cmdParseTx = {
68
78
  command: 'parseTx [path]',
69
79
  aliases: ['parse', 'tx'],
70
- describe: 'display transaction components in human-readable form',
80
+ describe: 'Display transaction components in human-readable form. ' +
81
+ 'Supported formats are Partially Signed Bitcoin Transaction (PSBT), ' +
82
+ 'bitcoinjs-lib encoding (Legacy) or fully signed transaction. ' +
83
+ 'Bytes must be encoded in hex or base64 format.',
71
84
  builder(b) {
72
85
  return b
73
86
  .option('path', { type: 'string', nargs: 1, default: '' })
74
87
  .option('stdin', { type: 'boolean', default: false })
75
- .option('hex', { type: 'string', description: 'transaction bytes (hex-encoded)' })
88
+ .option('data', { type: 'string', description: 'transaction bytes (hex or base64)', alias: 'hex' })
76
89
  .option('clipboard', { type: 'boolean', default: false })
77
90
  .option('txid', { type: 'string' })
78
91
  .option('fetchAll', { type: 'boolean', default: false })
@@ -84,12 +97,27 @@ exports.cmdParseTx = {
84
97
  .option('parseScriptData', { alias: 'scriptdata', type: 'boolean', default: false })
85
98
  .option('parseSignatureData', { alias: 'sigdata', type: 'boolean', default: false })
86
99
  .option('parseOutputScript', { type: 'boolean', default: false })
100
+ .option('parseAsUnknown', {
101
+ type: 'boolean',
102
+ default: false,
103
+ description: 'show plain Javascript object without any post-processing',
104
+ })
87
105
  .option('maxOutputs', { type: 'number' })
88
106
  .option('vin', { type: 'number' })
89
107
  .array('vin')
108
+ .option('finalize', {
109
+ type: 'boolean',
110
+ default: false,
111
+ description: 'finalize PSBT and parse result instead of PSBT',
112
+ })
90
113
  .option('all', { type: 'boolean', default: false })
91
- .option('cache', { type: 'boolean', default: false, description: 'use local cache for http responses' })
92
- .option('format', { choices: ['tree', 'json'], default: 'tree' });
114
+ .option('cache', {
115
+ type: 'boolean',
116
+ default: false,
117
+ description: 'use local cache for http responses',
118
+ })
119
+ .option('format', { choices: ['tree', 'json'], default: 'tree' })
120
+ .option('parseError', { choices: ['continue', 'throw'], default: 'continue' });
93
121
  },
94
122
  async handler(argv) {
95
123
  const network = getNetwork(argv);
@@ -115,7 +143,7 @@ exports.cmdParseTx = {
115
143
  if (data) {
116
144
  throw new Error(`conflicting arguments`);
117
145
  }
118
- data = await clipboardy.read();
146
+ data = await clipboardy_cjs_1.default.read();
119
147
  }
120
148
  if (argv.path) {
121
149
  if (data) {
@@ -123,21 +151,33 @@ exports.cmdParseTx = {
123
151
  }
124
152
  data = (await fs.promises.readFile(argv.path, 'utf8')).toString();
125
153
  }
126
- if (argv.hex) {
154
+ if (argv.data) {
127
155
  if (data) {
128
156
  throw new Error(`conflicting arguments`);
129
157
  }
130
- data = argv.hex;
158
+ data = argv.data;
131
159
  }
132
160
  // strip whitespace
133
- data = data === null || data === void 0 ? void 0 : data.replace(/\s*/g, '');
134
161
  if (!data) {
135
162
  throw new Error(`no txdata`);
136
163
  }
137
- const tx = utxolib.bitgo.createTransactionFromHex(data, network);
138
- const txid = tx.getId();
139
- if (argv.txid && txid !== argv.txid) {
140
- throw new Error(`computed txid does not match txid argument`);
164
+ const bytes = parseString_1.stringToBuffer(data, ['hex', 'base64']);
165
+ let tx = utxolib.bitgo.isPsbt(bytes)
166
+ ? utxolib.bitgo.createPsbtFromBuffer(bytes, network)
167
+ : utxolib.bitgo.createTransactionFromBuffer(bytes, network, { amountType: 'bigint' });
168
+ const { id: txid } = ParserTx_1.getParserTxProperties(tx, undefined);
169
+ if (tx instanceof utxolib.bitgo.UtxoTransaction) {
170
+ if (argv.txid && txid !== argv.txid) {
171
+ throw new Error(`computed txid does not match txid argument`);
172
+ }
173
+ }
174
+ else if (argv.finalize) {
175
+ tx.finalizeAllInputs();
176
+ tx = tx.extractTransaction();
177
+ }
178
+ if (argv.parseAsUnknown) {
179
+ console.log(formatString(parseUnknown_1.parseUnknown(new Parser_1.Parser(), 'tx', tx), argv));
180
+ return;
141
181
  }
142
182
  if (argv.fetchAll) {
143
183
  argv.fetchStatus = true;
@@ -145,10 +185,12 @@ exports.cmdParseTx = {
145
185
  argv.fetchSpends = true;
146
186
  }
147
187
  const parsed = getTxParser(argv).parse(tx, {
148
- status: argv.fetchStatus ? await fetch_1.fetchTransactionStatus(httpClient, txid, network) : undefined,
188
+ status: argv.fetchStatus && txid ? await fetch_1.fetchTransactionStatus(httpClient, txid, network) : undefined,
149
189
  prevOutputs: argv.fetchInputs ? await fetch_1.fetchPrevOutputs(httpClient, tx) : undefined,
150
190
  prevOutputSpends: argv.fetchSpends ? await fetch_1.fetchPrevOutputSpends(httpClient, tx) : undefined,
151
- outputSpends: argv.fetchSpends ? await fetch_1.fetchOutputSpends(httpClient, tx) : undefined,
191
+ outputSpends: argv.fetchSpends && tx instanceof utxolib.bitgo.UtxoTransaction
192
+ ? await fetch_1.fetchOutputSpends(httpClient, tx)
193
+ : undefined,
152
194
  });
153
195
  console.log(formatString(parsed, argv));
154
196
  },
@@ -170,4 +212,45 @@ exports.cmdParseAddress = {
170
212
  console.log(formatString(parsed, argv));
171
213
  },
172
214
  };
173
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEseUJBQXlCO0FBQ3pCLG1DQUFtQztBQUNuQywrQkFBaUM7QUFFakMseUNBQXlDO0FBQ3pDLDJDQUEyQztBQUczQyxxQ0FBc0M7QUFDdEMsbUNBTWlCO0FBQ2pCLHlDQUFvRDtBQUNwRCxtREFBZ0Q7QUFDaEQsZ0RBQWlGO0FBQ2pGLDJDQUF3QztBQTZCeEMsS0FBSyxVQUFVLFNBQVMsQ0FBQyxFQUFFLEtBQUssRUFBc0I7SUFDcEQsSUFBSSxLQUFLLEVBQUU7UUFDVCxNQUFNLEtBQUssR0FBRyxnQkFBUyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsQyxNQUFNLEdBQUcsR0FBRyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxtQkFBbUIsQ0FBQztRQUNuRCxNQUFNLEtBQUssQ0FBQyxHQUFHLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN0QyxPQUFPLElBQUksNkJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDbkM7SUFDRCxPQUFPLElBQUksMEJBQWMsRUFBRSxDQUFDO0FBQzlCLENBQUM7QUFFRCxTQUFTLGlCQUFpQixDQUFDLElBQVk7SUFDckMsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUEyQixDQUFDLENBQUM7SUFDOUQsSUFBSSxDQUFDLE9BQU8sRUFBRTtRQUNaLE1BQU0sSUFBSSxLQUFLLENBQUMsbUJBQW1CLE9BQU8sRUFBRSxDQUFDLENBQUM7S0FDL0M7SUFDRCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUMsSUFBMEM7SUFDNUQsT0FBTyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDekMsQ0FBQztBQUVELFNBQVMsWUFBWSxDQUFDLE1B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YUFDdEQsTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDO2FBQ2xELFVBQVUsQ0FBQyxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRCxPQUFPLENBQUMsSUFBdUM7UUFDN0MsTUFBTSxNQUFNLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMxRCxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUMxQyxDQUFDO0NBQ08sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLWNvbnNvbGUgKi9cbmltcG9ydCAqIGFzIHlhcmdzIGZyb20gJ3lhcmdzJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHByb2Nlc3MgZnJvbSAncHJvY2Vzcyc7XG5pbXBvcnQgeyBwcm9taXNpZnkgfSBmcm9tICd1dGlsJztcblxuaW1wb3J0ICogYXMgY2xpcGJvYXJkeSBmcm9tICdjbGlwYm9hcmR5JztcbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvL3V0eG8tbGliJztcblxuaW1wb3J0IHsgUGFyc2VyTm9kZSB9IGZyb20gJy4vUGFyc2VyJztcbmltcG9ydCB7IGZvcm1hdFRyZWUgfSBmcm9tICcuL2Zvcm1hdCc7XG5pbXBvcnQge1xuICBmZXRjaE91dHB1dFNwZW5kcyxcbiAgZmV0Y2hQcmV2T3V0cHV0cyxcbiAgZmV0Y2hQcmV2T3V0cHV0U3BlbmRzLFxuICBmZXRjaFRyYW5zYWN0aW9uSGV4LFxuICBmZXRjaFRyYW5zYWN0aW9uU3RhdHVzLFxufSBmcm9tICcuL2ZldGNoJztcbmltcG9ydCB7IFR4UGFyc2VyLCBUeFBhcnNlckFyZ3MgfSBmcm9tICcuL1R4UGFyc2VyJztcbmltcG9ydCB7IEFkZHJlc3NQYXJzZXIgfSBmcm9tICcuL0FkZHJlc3NQYXJzZXInO1xuaW1wb3J0IHsgQmFzZUh0dHBDbGllbnQsIENhY2hpbmdIdHRwQ2xpZW50LCBIdHRwQ2xpZW50IH0gZnJvbSAnQGJpdGdvL2Jsb2NrYXBpcyc7XG5pbXBvcnQgeyByZWFkU3RkaW4gfSBmcm9tICcuL3JlYWRTdGRpbic7XG5cbnR5cGUgT3V0cHV0Rm9ybWF0ID0gJ3RyZWUnIHwgJ2pzb24nO1xuXG50eXBlIEFyZ3NQYXJzZVRyYW5zYWN0aW9uID0ge1xuICBuZXR3b3JrOiBzdHJpbmc7XG4gIHN0ZGluOiBib29sZWFuO1xuICBjbGlwYm9hcmQ6IGJvb2xlYW47XG4gIHBhdGg/OiBzdHJpbmc7XG4gIHR4aWQ/OiBzdHJpbmc7XG4gIGhleD86IHN0cmluZztcbiAgYWxsOiBib29sZWFuO1xuICBjYWNoZTogYm9vbGVhbjtcbiAgZm9ybWF0OiBPdXRwdXRGb3JtYXQ7XG4gIGZldGNoQWxsOiBib29sZWFuO1xuICBmZXRjaFN0YXR1czogYm9vbGVhbjtcbiAgZmV0Y2hJbnB1dHM6IGJvb2xlYW47XG4gIGZldGNoU3BlbmRzOiBib29sZWFuO1xuICBwYXJzZVNpZ25hdHVyZURhdGE6IGJvb2xlYW47XG59ICYgT21pdDxUeFBhcnNlckFyZ3MsICdwYXJzZVNpZ25hdHVyZURhdGEnPjtcblxudHlwZSBBcmdzUGFyc2VBZGRyZXNzID0ge1xuICBuZXR3b3JrPzogc3RyaW5nO1xuICBhbGw6IGJvb2xlYW47XG4gIGZvcm1hdDogT3V0cHV0Rm9ybWF0O1xuICBjb252ZXJ0OiBib29sZWFuO1xuICBhZGRyZXNzOiBzdHJpbmc7XG59O1xuXG5hc3luYyBmdW5jdGlvbiBnZXRDbGllbnQoeyBjYWNoZSB9OiB7IGNhY2hlOiBib29sZWFuIH0pOiBQcm9taXNlPEh0dHBDbGllbnQ+IHtcbiAgaWYgKGNhY2hlKSB7XG4gICAgY29uc3QgbWtkaXIgPSBwcm9taXNpZnkoZnMubWtkaXIpO1xuICAgIGNvbnN0IGRpciA9IGAke3Byb2Nlc3MuZW52LkhPTUV9Ly5jYWNoZS91dHhvLWJpbi9gO1xuICAgIGF3YWl0IG1rZGlyKGRpciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgcmV0dXJuIG5ldyBDYWNoaW5nSHR0cENsaWVudChkaXIpO1xuICB9XG4gIHJldHVybiBuZXcgQmFzZUh0dHBDbGllbnQoKTtcbn1cblxuZnVuY3Rpb24gZ2V0TmV0d29ya0Zvck5hbWUobmFtZTogc3RyaW5nKSB7XG4gIGNvbnN0IG5ldHdvcmsgPSB1dHhvbGliLm5ldHdvcmtzW25hbWUgYXMgdXR4b2xpYi5OZXR3b3JrTmFtZV07XG4gIGlmICghbmV0d29yaykge1xuICAgIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBuZXR3b3JrICR7bmV0d29ya31gKTtcbiAgfVxuICByZXR1cm4gbmV0d29yaztcbn1cblxuZnVuY3Rpb24gZ2V0TmV0d29yayhhcmd2OiB5YXJncy5Bcmd1bWVudHM8eyBuZXR3b3JrOiBzdHJpbmcgfT4pOiB1dHhvbGliLk5ldHdvcmsge1xuICByZXR1cm4gZ2V0TmV0d29ya0Zvck5hbWUoYXJndi5uZXR3b3JrKTtcbn1cblxuZnVuY3Rpb24gZm9ybWF0U3RyaW5nKHBhcnNlZDogUGFyc2VyTm9kZSwgYXJndjogeWFyZ3MuQXJndW1lbnRzPHsgZm9ybWF0OiBPdXRwdXRGb3JtYXQ7IGFsbDogYm9vbGVhbiB9Pik6IHN0cmluZyB7XG4gIHN3aXRjaCAoYXJndi5mb3JtYXQpIHtcbiAgICBjYXNlICdqc29uJzpcbiAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShwYXJzZWQsIG51bGwsIDIpO1xuICAgIGNhc2UgJ3RyZWUnOlxuICAgICAgcmV0dXJuIGZvcm1hdFRyZWUocGFyc2VkLCB7IGhpZGU6IGFyZ3YuYWxsID8gW10gOiB1bmRlZmluZWQgfSk7XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIGZvcm1hdCAke2FyZ3YuZm9ybWF0fWApO1xufVxuXG5mdW5jdGlvbiByZXNvbHZlTmV0d29yazxUIGV4dGVuZHMgeyBuZXR3b3JrPzogc3RyaW5nIH0+KGFyZ3M6IFQpOiBUICYgeyBuZXR3b3JrPzogdXR4b2xpYi5OZXR3b3JrIH0ge1xuICBpZiAoYXJncy5uZXR3b3JrKSB7XG4gICAgcmV0dXJuIHsgLi4uYXJncywgbmV0d29yazogZ2V0TmV0d29ya0Zvck5hbWUoYXJncy5uZXR3b3JrKSB9O1xuICB9XG4gIHJldHVybiB7IC4uLmFyZ3MsIG5ldHdvcms6IHVuZGVmaW5lZCB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VHhQYXJzZXIoYXJndjogeWFyZ3MuQXJndW1lbnRzPEFyZ3NQYXJzZVRyYW5zYWN0aW9uPik6IFR4UGFyc2VyIHtcbiAgaWYgKGFyZ3YuYWxsKSB7XG4gICAgcmV0dXJuIG5ldyBUeFBhcnNlcihUeFBhcnNlci5QQVJTRV9BTEwpO1xuICB9XG4gIHJldHVybiBuZXcgVHhQYXJzZXIoe1xuICAgIC4uLmFyZ3YsXG4gICAgcGFyc2VTaWduYXR1cmVEYXRhOiB7XG4gICAgICBzY3JpcHQ6IGFyZ3YucGFyc2VTaWduYXR1cmVEYXRhLFxuICAgICAgZWNkc2E6IGFyZ3YucGFyc2VTaWduYXR1cmVEYXRhLFxuICAgICAgc2Nobm9ycjogYXJndi5wYXJzZVNpZ25hdHVyZURhdGEsXG4gICAgfSxcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRBZGRyZXNzUGFyc2VyKGFyZ3Y6IEFyZ3NQYXJzZUFkZHJlc3MpOiBBZGRyZXNzUGFyc2VyIHtcbiAgcmV0dXJuIG5ldyBBZGRyZXNzUGFyc2VyKHJlc29sdmVOZXR3b3JrKGFyZ3YpKTtcbn1cblxuZXhwb3J0IGNvbnN0IGNtZFBhcnNlVHggPSB7XG4gIGNvbW1hbmQ6ICdwYXJzZVR4IFtwYXRoXScsXG4gIGFsaWFzZXM6IFsncGFyc2UnLCAndHgnXSxcbiAgZGVzY3JpYmU6ICdkaXNwbGF5IHRyYW5zYWN0aW9uIGNvbXBvbmVudHMgaW4gaHVtYW4tcmVhZGFibGUgZm9ybScsXG5cbiAgYnVpbGRlcihiOiB5YXJncy5Bcmd2PHVua25vd24+KTogeWFyZ3MuQXJndjxBcmdzUGFyc2VUcmFuc2FjdGlvbj4ge1xuICAgIHJldHVybiBiXG4gICAgICAub3B0aW9uKCdwYXRoJywgeyB0eXBlOiAnc3RyaW5nJywgbmFyZ3M6IDEsIGRlZmF1bHQ6ICcnIH0pXG4gICAgICAub3B0aW9uKCdzdGRpbicsIHsgdHlwZTogJ2Jvb2xlYW4nLCBkZWZhdWx0OiBmYWxzZSB9KVxuICAgICAgLm9wdGlvbignaGV4JywgeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICd0cmFuc2FjdGlvbiBieXRlcyAoaGV4LWVuY29kZWQpJyB9KVxuICAgICAgLm9wdGlvbignY2xpcGJvYXJkJywgeyB0eXBlOiAnYm9vbGVhbicsIGRlZmF1bHQ6IGZhbHNlIH0pXG4gICAgICAub3B0aW9uKCd0eGlkJywgeyB0eXBlOiAnc3RyaW5nJyB9KVxuICAgICAgLm9wdGlvbignZmV0Y2hBbGwnLCB7IHR5cGU6ICdib29sZWFuJywgZGVmYXVsdDogZmFsc2UgfSlcbiAgICAgIC5vcHRpb24oJ2ZldGNoU3RhdHVzJywgeyB0eXBlOiAnYm9vbGVhbicsIGRlZmF1bHQ6IGZhbHNlIH0pXG4gICAgICAub3B0aW9uKCdmZXRjaElucHV0cycsIHsgdHlwZTogJ2Jvb2xlYW4nLCBkZWZhdWx0OiBmYWxzZSB9KVxuICAgICAgLm9wdGlvbignZmV0Y2hTcGVuZHMnLCB7IHR5cGU6ICdib29sZWFuJywgZGVmYXVsdDogZmFsc2UgfSlcbiAgICAgIC5vcHRpb24oJ25ldHdvcmsnLCB7IGFsaWFzOiAnbicsIHR5cGU6ICdzdHJpbmcnLCBkZW1hbmRPcHRpb246IHRydWUgfSlcbiAgICAgIC5vcHRpb24oJ3BhcnNlU2NyaXB0QXNtJywgeyBhbGlhczogJ3NjcmlwdGFzbScsIHR5cGU6ICdib29sZWFuJywgZGVmYXVsdDogZmFsc2UgfSlcbiAgICAgIC5vcHRpb24oJ3BhcnNlU2NyaXB0RGF0YScsIHsgYWxpYXM6ICdzY3JpcHRkYXRhJywgdHlwZTogJ2Jvb2xlYW4nLCBkZWZhdWx0OiBmYWxzZSB9KVxuICAgICAgLm9wdGlvbigncGFyc2VTaWduYXR1cmVEYXRhJywgeyBhbGlhczogJ3NpZ2RhdGEnLCB0eXBlOiAnYm9vbGVhbicsIGRlZmF1bHQ6IGZhbHNlIH0pXG4gICAgICAub3B0aW9uKCdwYXJzZU91dHB1dFNjcmlwdCcsIHsgdHlwZTogJ2Jvb2xlYW4nLCBkZWZhdWx0OiBmYWxzZSB9KVxuICAgICAgLm9wdGlvbignbWF4T3V0cHV0cycsIHsgdHlwZTogJ251bWJlcicgfSlcbiAgICAgIC5vcHRpb24oJ3ZpbicsIHsgdHlwZTogJ251bWJlcicgfSlcbiAgICAgIC5hcnJheSgndmluJylcbiAgICAgIC5vcHRpb24oJ2FsbCcsIHsgdHlwZTogJ2Jvb2xlYW4nLCBkZWZhdWx0OiBmYWxzZSB9KVxuICAgICAgLm9wdGlvbignY2FjaGUnLCB7IHR5cGU6ICdib29sZWFuJywgZGVmYXVsdDogZmFsc2UsIGRlc2NyaXB0aW9uOiAndXNlIGxvY2FsIGNhY2hlIGZvciBodHRwIHJlc3BvbnNlcycgfSlcbiAgICAgIC5vcHRpb24oJ2Zvcm1hdCcsIHsgY2hvaWNlczogWyd0cmVlJywgJ2pzb24nXSwgZGVmYXVsdDogJ3RyZWUnIH0gYXMgY29uc3QpO1xuICB9LFxuXG4gIGFzeW5jIGhhbmRsZXIoYXJndjogeWFyZ3MuQXJndW1lbnRzPEFyZ3NQYXJzZVRyYW5zYWN0aW9uPik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IG5ldHdvcmsgPSBnZXROZXR3b3JrKGFyZ3YpO1xuICAgIGxldCBkYXRhO1xuXG4gICAgY29uc3QgaHR0cENsaWVudCA9IGF3YWl0IGdldENsaWVudCh7IGNhY2hlOiBhcmd2LmNhY2hlIH0pO1xuXG4gICAgaWYgKGFyZ3YudHhpZCkge1xuICAgICAgZGF0YSA9IGF3YWl0IGZldGNoVHJhbnNhY3Rpb25IZXgoaHR0cENsaWVudCwgYXJndi50eGlkLCBuZXR3b3JrKTtcbiAgICB9XG5cbiAgICBpZiAoYXJndi5zdGRpbiB8fCBhcmd2LnBhdGggPT09ICctJykge1xuICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBjb25mbGljdGluZyBhcmd1bWVudHNgKTtcbiAgICAgIH1cbiAgICAgIGNvbnNvbGUubG9nKCdSZWFkaW5nIGZyb20gc3RkaW4uIFBsZWFzZSBwYXN0ZSBoZXgtZW5jb2RlZCB0cmFuc2FjdGlvbiBkYXRhLicpO1xuICAgICAgY29uc29sZS5sb2coJ1ByZXNzIEN0cmwtRCB0byBmaW5pc2gsIG9yIEN0cmwtQyB0byBjYW5jZWwuJyk7XG4gICAgICBpZiAocHJvY2Vzcy5zdGRpbi5pc1RUWSkge1xuICAgICAgICBkYXRhID0gYXdhaXQgcmVhZFN0ZGluKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkYXRhID0gYXdhaXQgZnMucHJvbWlzZXMucmVhZEZpbGUoJy9kZXYvc3RkaW4nLCAndXRmOCcpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChhcmd2LmNsaXBib2FyZCkge1xuICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBjb25mbGljdGluZyBhcmd1bWVudHNgKTtcbiAgICAgIH1cbiAgICAgIGRhdGEgPSBhd2FpdCBjbGlwYm9hcmR5LnJlYWQoKTtcbiAgICB9XG5cbiAgICBpZiAoYXJndi5wYXRoKSB7XG4gICAgICBpZiAoZGF0YSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGNvbmZsaWN0aW5nIGFyZ3VtZW50c2ApO1xuICAgICAgfVxuICAgICAgZGF0YSA9IChhd2FpdCBmcy5wcm9taXNlcy5yZWFkRmlsZShhcmd2LnBhdGgsICd1dGY4JykpLnRvU3RyaW5nKCk7XG4gICAgfVxuXG4gICAgaWYgKGFyZ3YuaGV4KSB7XG4gICAgICBpZiAoZGF0YSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGNvbmZsaWN0aW5nIGFyZ3VtZW50c2ApO1xuICAgICAgfVxuICAgICAgZGF0YSA9IGFyZ3YuaGV4O1xuICAgIH1cblxuICAgIC8vIHN0cmlwIHdoaXRlc3BhY2VcbiAgICBkYXRhID0gZGF0YT8ucmVwbGFjZSgvXFxzKi9nLCAnJyk7XG4gICAgaWYgKCFkYXRhKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYG5vIHR4ZGF0YWApO1xuICAgIH1cblxuICAgIGNvbnN0IHR4ID0gdXR4b2xpYi5iaXRnby5jcmVhdGVUcmFuc2FjdGlvbkZyb21IZXgoZGF0YSwgbmV0d29yayk7XG4gICAgY29uc3QgdHhpZCA9IHR4LmdldElkKCk7XG4gICAgaWYgKGFyZ3YudHhpZCAmJiB0eGlkICE9PSBhcmd2LnR4aWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgY29tcHV0ZWQgdHhpZCBkb2VzIG5vdCBtYXRjaCB0eGlkIGFyZ3VtZW50YCk7XG4gICAgfVxuXG4gICAgaWYgKGFyZ3YuZmV0Y2hBbGwpIHtcbiAgICAgIGFyZ3YuZmV0Y2hTdGF0dXMgPSB0cnVlO1xuICAgICAgYXJndi5mZXRjaElucHV0cyA9IHRydWU7XG4gICAgICBhcmd2LmZldGNoU3BlbmRzID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBjb25zdCBwYXJzZWQgPSBnZXRUeFBhcnNlcihhcmd2KS5wYXJzZSh0eCwge1xuICAgICAgc3RhdHVzOiBhcmd2LmZldGNoU3RhdHVzID8gYXdhaXQgZmV0Y2hUcmFuc2FjdGlvblN0YXR1cyhodHRwQ2xpZW50LCB0eGlkLCBuZXR3b3JrKSA6IHVuZGVmaW5lZCxcbiAgICAgIHByZXZPdXRwdXRzOiBhcmd2LmZldGNoSW5wdXRzID8gYXdhaXQgZmV0Y2hQcmV2T3V0cHV0cyhodHRwQ2xpZW50LCB0eCkgOiB1bmRlZmluZWQsXG4gICAgICBwcmV2T3V0cHV0U3BlbmRzOiBhcmd2LmZldGNoU3BlbmRzID8gYXdhaXQgZmV0Y2hQcmV2T3V0cHV0U3BlbmRzKGh0dHBDbGllbnQsIHR4KSA6IHVuZGVmaW5lZCxcbiAgICAgIG91dHB1dFNwZW5kczogYXJndi5mZXRjaFNwZW5kcyA/IGF3YWl0IGZldGNoT3V0cHV0U3BlbmRzKGh0dHBDbGllbnQsIHR4KSA6IHVuZGVmaW5lZCxcbiAgICB9KTtcblxuICAgIGNvbnNvbGUubG9nKGZvcm1hdFN0cmluZyhwYXJzZWQsIGFyZ3YpKTtcbiAgfSxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCBjb25zdCBjbWRQYXJzZUFkZHJlc3MgPSB7XG4gIGNvbW1hbmQ6ICdwYXJzZUFkZHJlc3MgW2FkZHJlc3NdJyxcbiAgYWxpYXNlczogWydhZGRyZXNzJ10sXG4gIGRlc2NyaWJlOiAncGFyc2UgYWRkcmVzcycsXG4gIGJ1aWxkZXIoYjogeWFyZ3MuQXJndjx1bmtub3duPik6IHlhcmdzLkFyZ3Y8QXJnc1BhcnNlQWRkcmVzcz4ge1xuICAgIHJldHVybiBiXG4gICAgICAub3B0aW9uKCduZXR3b3JrJywgeyBhbGlhczogJ24nLCB0eXBlOiAnc3RyaW5nJyB9KVxuICAgICAgLm9wdGlvbignZm9ybWF0JywgeyBjaG9pY2VzOiBbJ3RyZWUnLCAnanNvbiddLCBkZWZhdWx0OiAndHJlZScgfSBhcyBjb25zdClcbiAgICAgIC5vcHRpb24oJ2NvbnZlcnQnLCB7IHR5cGU6ICdib29sZWFuJywgZGVmYXVsdDogZmFsc2UgfSlcbiAgICAgIC5vcHRpb24oJ2FsbCcsIHsgdHlwZTogJ2Jvb2xlYW4nLCBkZWZhdWx0OiBmYWxzZSB9KVxuICAgICAgLnBvc2l0aW9uYWwoJ2FkZHJlc3MnLCB7IHR5cGU6ICdzdHJpbmcnLCBkZW1hbmRPcHRpb246IHRydWUgfSk7XG4gIH0sXG5cbiAgaGFuZGxlcihhcmd2OiB5YXJncy5Bcmd1bWVudHM8QXJnc1BhcnNlQWRkcmVzcz4pOiB2b2lkIHtcbiAgICBjb25zdCBwYXJzZWQgPSBnZXRBZGRyZXNzUGFyc2VyKGFyZ3YpLnBhcnNlKGFyZ3YuYWRkcmVzcyk7XG4gICAgY29uc29sZS5sb2coZm9ybWF0U3RyaW5nKHBhcnNlZCwgYXJndikpO1xuICB9LFxufSBhcyBjb25zdDtcbiJdfQ==
215
+ exports.cmdParseScript = {
216
+ command: 'parseScript [script]',
217
+ describe: 'parse script',
218
+ builder(b) {
219
+ return b
220
+ .option('network', { alias: 'n', type: 'string' })
221
+ .option('format', { choices: ['tree', 'json'], default: 'tree' })
222
+ .option('all', { type: 'boolean', default: false })
223
+ .positional('script', { type: 'string', demandOption: true });
224
+ },
225
+ handler(argv) {
226
+ const script = parseString_1.stringToBuffer(argv.script, 'hex');
227
+ const parsed = getScriptParser(argv).parse(script);
228
+ console.log(formatString(parsed, { ...argv, all: true }));
229
+ },
230
+ };
231
+ exports.cmdGenerateAddress = {
232
+ command: 'generateAddresses',
233
+ describe: 'generate addresses',
234
+ builder(b) {
235
+ return b
236
+ .option('network', { alias: 'n', type: 'string' })
237
+ .option('userKey', { type: 'string', demandOption: true })
238
+ .option('backupKey', { type: 'string', demandOption: true })
239
+ .option('bitgoKey', { type: 'string', demandOption: true })
240
+ .option('chain', { type: 'number' })
241
+ .option('showDerivationPath', { type: 'boolean', default: true })
242
+ .array('chain')
243
+ .option('limit', { type: 'number', default: 100 });
244
+ },
245
+ handler(argv) {
246
+ var _a;
247
+ console.log('generating addresses..');
248
+ for (const address of generateAddress_1.generateAddress({
249
+ ...argv,
250
+ network: getNetworkForName((_a = argv.network) !== null && _a !== void 0 ? _a : 'bitcoin'),
251
+ })) {
252
+ console.log(address);
253
+ }
254
+ },
255
+ };
256
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEseUJBQXlCO0FBQ3pCLG1DQUFtQztBQUNuQywrQkFBaUM7QUFFakMsbURBQXdDO0FBQ3hDLDJDQUEyQztBQUUzQyxxQ0FBOEM7QUFDOUMscUNBQXNDO0FBQ3RDLG1DQU1pQjtBQUNqQix5Q0FBb0Q7QUFDcEQsbURBQWdEO0FBQ2hELGdEQUFpRjtBQUNqRiwyQ0FBd0M7QUFDeEMsaURBQThDO0FBQzlDLHlDQUFtRDtBQUNuRCxpREFBOEM7QUFDOUMsK0NBQStDO0FBQy9DLHVEQUFvRDtBQWlEcEQsS0FBSyxVQUFVLFNBQVMsQ0FBQyxFQUFFLEtBQUssRUFBc0I7SUFDcEQsSUFBSSxLQUFLLEVBQUU7UUFDVCxNQUFNLEtBQUssR0FBRyxnQkFBUyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsQyxNQUFNLEdBQUcsR0FBRyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxtQkFBbUIsQ0FBQztRQUNuRCxNQUFNLEtBQUssQ0FBQyxHQUFHLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN0QyxPQUFPLElBQUksNkJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDbkM7SUFDRCxPQUFPLElBQUksMEJBQWMsRUFBRSxDQUFDO0FBQzlCLENBQUM7QUFFRCxTQUFTLGlCQUFpQixDQUFDLElBQVk7SUFDckMsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUEyQixDQUFDLENBQUM7SUFDOUQsSUFBSSxDQUFDLE9BQU8sRUFBRTtRQUNaLE1BQU0sSUFBSSxLQUFLLENBQUMsbUJBQW1CLElBQUksRUFBRSxDQUFDLENBQUM7S0FDNUM7SUFDRCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUMsSUFBMEM7SUFD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RUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO2FBQ2hFLEtBQUssQ0FBQyxPQUFPLENBQUM7YUFDZCxNQUFNLENBQUMsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBQ0QsT0FBTyxDQUFDLElBQTBDOztRQUNoRCxPQUFPLENBQUMsR0FBRyxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFDdEMsS0FBSyxNQUFNLE9BQU8sSUFBSSxpQ0FBZSxDQUFDO1lBQ3BDLEdBQUcsSUFBSTtZQUNQLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQyxNQUFBLElBQUksQ0FBQyxPQUFPLG1DQUFJLFNBQVMsQ0FBQztTQUN0RCxDQUFDLEVBQUU7WUFDRixPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQztDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1jb25zb2xlICovXG5pbXBvcnQgKiBhcyB5YXJncyBmcm9tICd5YXJncyc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwcm9jZXNzIGZyb20gJ3Byb2Nlc3MnO1xuaW1wb3J0IHsgcHJvbWlzaWZ5IH0gZnJvbSAndXRpbCc7XG5cbmltcG9ydCBjbGlwYm9hcmR5IGZyb20gJ2NsaXBib2FyZHktY2pzJztcbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvL3V0eG8tbGliJztcblxuaW1wb3J0IHsgUGFyc2VyLCBQYXJzZXJOb2RlIH0gZnJvbSAnLi9QYXJzZXInO1xuaW1wb3J0IHsgZm9ybWF0VHJlZSB9IGZyb20gJy4vZm9ybWF0JztcbmltcG9ydCB7XG4gIGZldGNoT3V0cHV0U3BlbmRzLFxuICBmZXRjaFByZXZPdXRwdXRzLFxuICBmZXRjaFByZXZPdXRwdXRTcGVuZHMsXG4gIGZldGNoVHJhbnNhY3Rpb25IZXgsXG4gIGZldGNoVHJhbnNhY3Rpb25TdGF0dXMsXG59IGZyb20gJy4vZmV0Y2gnO1xuaW1wb3J0IHsgVHhQYXJzZXIsIFR4UGFyc2VyQXJncyB9IGZyb20gJy4vVHhQYXJzZXInO1xuaW1wb3J0IHsgQWRkcmVzc1BhcnNlciB9IGZyb20gJy4vQWRkcmVzc1BhcnNlcic7XG5pbXBvcnQgeyBCYXNlSHR0cENsaWVudCwgQ2FjaGluZ0h0dHBDbGllbnQsIEh0dHBDbGllbnQgfSBmcm9tICdAYml0Z28vYmxvY2thcGlzJztcbmltcG9ydCB7IHJlYWRTdGRpbiB9IGZyb20gJy4vcmVhZFN0ZGluJztcbmltcG9ydCB7IHBhcnNlVW5rbm93biB9IGZyb20gJy4vcGFyc2VVbmtub3duJztcbmltcG9ydCB7IGdldFBhcnNlclR4UHJvcGVydGllcyB9IGZyb20gJy4vUGFyc2VyVHgnO1xuaW1wb3J0IHsgU2NyaXB0UGFyc2VyIH0gZnJvbSAnLi9TY3JpcHRQYXJzZXInO1xuaW1wb3J0IHsgc3RyaW5nVG9CdWZmZXIgfSBmcm9tICcuL3BhcnNlU3RyaW5nJztcbmltcG9ydCB7IGdlbmVyYXRlQWRkcmVzcyB9IGZyb20gJy4vZ2VuZXJhdGVBZGRyZXNzJztcblxudHlwZSBPdXRwdXRGb3JtYXQgPSAndHJlZScgfCAnanNvbic7XG5cbnR5cGUgQXJnc1BhcnNlVHJhbnNhY3Rpb24gPSB7XG4gIG5ldHdvcms6IHN0cmluZztcbiAgc3RkaW46IGJvb2xlYW47XG4gIGNsaXBib2FyZDogYm9vbGVhbjtcbiAgcGF0aD86IHN0cmluZztcbiAgdHhpZD86IHN0cmluZztcbiAgZGF0YT86IHN0cmluZztcbiAgYWxsOiBib29sZWFuO1xuICBjYWNoZTogYm9vbGVhbjtcbiAgZm9ybWF0OiBPdXRwdXRGb3JtYXQ7XG4gIGZldGNoQWxsOiBib29sZWFuO1xuICBmZXRjaFN0YXR1czogYm9vbGVhbjtcbiAgZmV0Y2hJbnB1dHM6IGJvb2xlYW47XG4gIGZldGNoU3BlbmRzOiBib29sZWFuO1xuICBmaW5hbGl6ZTogYm9vbGVhbjtcbiAgcGFyc2VTaWduYXR1cmVEYXRhOiBib29sZWFuO1xuICBwYXJzZUFzVW5rbm93bjogYm9vbGVhbjtcbiAgcGFyc2VFcnJvcjogJ3Rocm93JyB8ICdjb250aW51ZSc7XG59ICYgT21pdDxUeFBhcnNlckFyZ3MsICdwYXJzZVNpZ25hdHVyZURhdGEnPjtcblxudHlwZSBBcmdzUGFyc2VBZGRyZXNzID0ge1xuICBuZXR3b3JrPzogc3RyaW5nO1xuICBhbGw6IGJvb2xlYW47XG4gIGZvcm1hdDogT3V0cHV0Rm9ybWF0O1xuICBjb252ZXJ0OiBib29sZWFuO1xuICBhZGRyZXNzOiBzdHJpbmc7XG59O1xuXG50eXBlIEFyZ3NQYXJzZVNjcmlwdCA9IHtcbiAgbmV0d29yaz86IHN0cmluZztcbiAgZm9ybWF0OiBPdXRwdXRGb3JtYXQ7XG4gIGFsbDogYm9vbGVhbjtcbiAgc2NyaXB0OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBBcmdzR2VuZXJhdGVBZGRyZXNzID0ge1xuICBuZXR3b3JrPzogc3RyaW5nO1xuICB1c2VyS2V5OiBzdHJpbmc7XG4gIGJhY2t1cEtleTogc3RyaW5nO1xuICBiaXRnb0tleTogc3RyaW5nO1xuICBjaGFpbj86IG51bWJlcltdO1xuICBzaG93RGVyaXZhdGlvblBhdGg/OiBib29sZWFuO1xuICBsaW1pdDogbnVtYmVyO1xufTtcblxuYXN5bmMgZnVuY3Rpb24gZ2V0Q2xpZW50KHsgY2FjaGUgfTogeyBjYWNoZTogYm9vbGVhbiB9KTogUHJvbWlzZTxIdHRwQ2xpZW50PiB7XG4gIGlmIChjYWNoZSkge1xuICAgIGNvbnN0IG1rZGlyID0gcHJvbWlzaWZ5KGZzLm1rZGlyKTtcbiAgICBjb25zdCBkaXIgPSBgJHtwcm9jZXNzLmVudi5IT01FfS8uY2FjaGUvdXR4by1iaW4vYDtcbiAgICBhd2FpdCBta2RpcihkaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgIHJldHVybiBuZXcgQ2FjaGluZ0h0dHBDbGllbnQoZGlyKTtcbiAgfVxuICByZXR1cm4gbmV3IEJhc2VIdHRwQ2xpZW50KCk7XG59XG5cbmZ1bmN0aW9uIGdldE5ldHdvcmtGb3JOYW1lKG5hbWU6IHN0cmluZykge1xuICBjb25zdCBuZXR3b3JrID0gdXR4b2xpYi5uZXR3b3Jrc1tuYW1lIGFzIHV0eG9saWIuTmV0d29ya05hbWVdO1xuICBpZiAoIW5ldHdvcmspIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgbmV0d29yayAke25hbWV9YCk7XG4gIH1cbiAgcmV0dXJuIG5ldHdvcms7XG59XG5cbmZ1bmN0aW9uIGdldE5ldHdvcmsoYXJndjogeWFyZ3MuQXJndW1lbnRzPHsgbmV0d29yazogc3RyaW5nIH0+KTogdXR4b2xpYi5OZXR3b3JrIHtcbiAgcmV0dXJuIGdldE5ldHdvcmtGb3JOYW1lKGFyZ3YubmV0d29yayk7XG59XG5cbmZ1bmN0aW9uIGZvcm1hdFN0cmluZyhcbiAgcGFyc2VkOiBQYXJzZXJOb2RlLFxuICBhcmd2OiB5YXJncy5Bcmd1bWVudHM8e1xuICAgIGZvcm1hdDogT3V0cHV0Rm9ybWF0O1xuICAgIGFsbDogYm9vbGVhbjtcbiAgfT5cbik6IHN0cmluZyB7XG4gIHN3aXRjaCAoYXJndi5mb3JtYXQpIHtcbiAgICBjYXNlICdqc29uJzpcbiAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShwYXJzZWQsIG51bGwsIDIpO1xuICAgIGNhc2UgJ3RyZWUnOlxuICAgICAgcmV0dXJuIGZvcm1hdFRyZWUocGFyc2VkLCB7IGhpZGU6IGFyZ3YuYWxsID8gW10gOiB1bmRlZmluZWQgfSk7XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIGZvcm1hdCAke2FyZ3YuZm9ybWF0fWApO1xufVxuXG5mdW5jdGlvbiByZXNvbHZlTmV0d29yazxUIGV4dGVuZHMgeyBuZXR3b3JrPzogc3RyaW5nIH0+KFxuICBhcmdzOiBUXG4pOiBUICYge1xuICBuZXR3b3JrPzogdXR4b2xpYi5OZXR3b3JrO1xufSB7XG4gIGlmIChhcmdzLm5ldHdvcmspIHtcbiAgICByZXR1cm4geyAuLi5hcmdzLCBuZXR3b3JrOiBnZXROZXR3b3JrRm9yTmFtZShhcmdzLm5ldHdvcmspIH07XG4gIH1cbiAgcmV0dXJuIHsgLi4uYXJncywgbmV0d29yazogdW5kZWZpbmVkIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUeFBhcnNlcihhcmd2OiB5YXJncy5Bcmd1bWVudHM8QXJnc1BhcnNlVHJhbnNhY3Rpb24+KTogVHhQYXJzZXIge1xuICBpZiAoYXJndi5hbGwpIHtcbiAgICByZXR1cm4gbmV3IFR4UGFyc2VyKHsgLi4uYXJndiwgLi4uVHhQYXJzZXIuUEFSU0VfQUxMIH0pO1xuICB9XG4gIHJldHVybiBuZXcgVHhQYXJzZXIoe1xuICAgIC4uLmFyZ3YsXG4gICAgcGFyc2VTaWduYXR1cmVEYXRhOiB7XG4gICAgICBzY3JpcHQ6IGFyZ3YucGFyc2VTaWduYXR1cmVEYXRhLFxuICAgICAgZWNkc2E6IGFyZ3YucGFyc2VTaWduYXR1cmVEYXRhLFxuICAgICAgc2Nobm9ycjogYXJndi5wYXJzZVNpZ25hdHVyZURhdGEsXG4gICAgfSxcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRBZGRyZXNzUGFyc2VyKGFyZ3Y6IEFyZ3NQYXJzZUFkZHJlc3MpOiBBZGRyZXNzUGFyc2VyIHtcbiAgcmV0dXJuIG5ldyBBZGRyZXNzUGFyc2VyKHJlc29sdmVOZXR3b3JrKGFyZ3YpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNjcmlwdFBhcnNlcihhcmd2OiBBcmdzUGFyc2VTY3JpcHQpOiBTY3JpcHRQYXJzZXIge1xuICByZXR1cm4gbmV3IFNjcmlwdFBhcnNlcihyZXNvbHZlTmV0d29yayhhcmd2KSk7XG59XG5cbmV4cG9ydCBjb25zdCBjbWRQYXJzZVR4ID0ge1xuICBjb21tYW5kOiAncGFyc2VUeCBbcGF0aF0nLFxuICBhbGlhc2VzOiBbJ3BhcnNlJywgJ3R4J10sXG4gIGRlc2NyaWJlOlxuICAgICdEaXNwbGF5IHRyYW5zYWN0aW9uIGNvbXBvbmVudHMgaW4gaHVtYW4tcmVhZGFibGUgZm9ybS4gJyArXG4gICAgJ1N1cHBvcnRlZCBmb3JtYXRzIGFyZSBQYXJ0aWFsbHkgU2lnbmVkIEJpdGNvaW4gVHJhbnNhY3Rpb24gKFBTQlQpLCAnICtcbiAgICAnYml0Y29pbmpzLWxpYiBlbmNvZGluZyAoTGVnYWN5KSBvciBmdWxseSBzaWduZWQgdHJhbnNhY3Rpb24uICcgK1xuICAgICdCeXRlcyBtdXN0IGJlIGVuY29kZWQgaW4gaGV4IG9yIGJhc2U2NCBmb3JtYXQuJyxcblxuICBidWlsZGVyKGI6IHlhcmdzLkFyZ3Y8dW5rbm93bj4pOiB5YXJncy5Bcmd2PEFyZ3NQYXJzZVRyYW5zYWN0aW9uPiB7XG4gICAgcmV0dXJuIGJcbiAgICAgIC5vcHRpb24oJ3BhdGgnLCB7IHR5cGU6ICdzdHJpbmcnLCBuYXJnczogMSwgZGVmYXVsdDogJycgfSlcbiAgICAgIC5vcHRpb24oJ3N0ZGluJywgeyB0eXBlOiAnYm9vbGVhbicsIGRlZmF1bHQ6IGZhbHNlIH0pXG4gICAgICAub3B0aW9uKCdkYXRhJywgeyB0eXBlOiAnc3RyaW5nJywgZGVzY3JpcHRpb246ICd0cmFuc2FjdGlvbiBieXRlcyAoaGV4IG9yIGJhc2U2NCknLCBhbGlhczogJ2hleCcgfSlcbiAgICAgIC5vcHRpb24oJ2NsaXBib2FyZCcsIHsgdHlwZTogJ2Jvb2xlYW4nLCBkZWZhdWx0OiBmYWxzZSB9KVxuICAgICAgLm9wdGlvbigndHhpZCcsIHsgdHlwZTogJ3N0cmluZycgfSlcbiAgICAgIC5vcHRpb24oJ2ZldGNoQWxsJywgeyB0eXBlOiAnYm9vbGVhbicsIGRlZmF1bHQ6IGZhbHNlIH0pXG4gICAgICAub3B0aW9uKCdmZXRjaFN0YXR1cycsIHsgdHlwZTogJ2Jvb2xlYW4nLCBkZWZhdWx0OiBmYWxzZSB9KVxuICAgICAgLm9wdGlvbignZmV0Y2hJbnB1dHMnLCB7IHR5cGU6ICdib29sZWFuJywgZGVmYXVsdDogZmFsc2UgfSlcbiAgICAgIC5vcHRpb24oJ2ZldGNoU3BlbmRzJywgeyB0eXBlOiAnYm9vbGVhbicsIGRlZmF1bHQ6IGZhbHNlIH0pXG4gICAgICAub3B0aW9uKCduZXR3b3JrJywgeyBhbGlhczogJ24nLCB0eXBlOiAnc3RyaW5nJywgZGVtYW5kT3B0aW9uOiB0cnVlIH0pXG4gICAgICAub3B0aW9uKCdwYXJzZVNjcmlwdEFzbScsIHsgYWxpYXM6ICdzY3JpcHRhc20nLCB0eXBlOiAnYm9vbGVhbicsIGRlZmF1bHQ6IGZhbHNlIH0pXG4gICAgICAub3B0aW9uKCdwYXJzZVNjcmlwdERhdGEnLCB7IGFsaWFzOiAnc2NyaXB0ZGF0YScsIHR5cGU6ICdib29sZWFuJywgZGVmYXVsdDogZmFsc2UgfSlcbiAgICAgIC5vcHRpb24oJ3BhcnNlU2lnbmF0dXJlRGF0YScsIHsgYWxpYXM6ICdzaWdkYXRhJywgdHlwZTogJ2Jvb2xlYW4nLCBkZWZhdWx0OiBmYWxzZSB9KVxuICAgICAgLm9wdGlvbigncGFyc2VPdXRwdXRTY3JpcHQnLCB7IHR5cGU6ICdib29sZWFuJywgZGVmYXVsdDogZmFsc2UgfSlcbiAgICAgIC5vcHRpb24oJ3BhcnNlQXNVbmtub3duJywge1xuICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ3Nob3cgcGxhaW4gSmF2YXNjcmlwdCBvYmplY3Qgd2l0aG91dCBhbnkgcG9zdC1wcm9jZXNzaW5nJyxcbiAgICAgIH0pXG4gICAgICAub3B0aW9uKCdtYXhPdXRwdXRzJywgeyB0eXBlOiAnbnVtYmVyJyB9KVxuICAgICAgLm9wdGlvbigndmluJywgeyB0eXBlOiAnbnVtYmVyJyB9KVxuICAgICAgLmFycmF5KCd2aW4nKVxuICAgICAgLm9wdGlvbignZmluYWxpemUnLCB7XG4gICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgZGVmYXVsdDogZmFsc2UsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnZmluYWxpemUgUFNCVCBhbmQgcGFyc2UgcmVzdWx0IGluc3RlYWQgb2YgUFNCVCcsXG4gICAgICB9KVxuICAgICAgLm9wdGlvbignYWxsJywgeyB0eXBlOiAnYm9vbGVhbicsIGRlZmF1bHQ6IGZhbHNlIH0pXG4gICAgICAub3B0aW9uKCdjYWNoZScsIHtcbiAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICAgICAgZGVzY3JpcHRpb246ICd1c2UgbG9jYWwgY2FjaGUgZm9yIGh0dHAgcmVzcG9uc2VzJyxcbiAgICAgIH0pXG4gICAgICAub3B0aW9uKCdmb3JtYXQnLCB7IGNob2ljZXM6IFsndHJlZScsICdqc29uJ10sIGRlZmF1bHQ6ICd0cmVlJyB9IGFzIGNvbnN0KVxuICAgICAgLm9wdGlvbigncGFyc2VFcnJvcicsIHsgY2hvaWNlczogWydjb250aW51ZScsICd0aHJvdyddLCBkZWZhdWx0OiAnY29udGludWUnIH0gYXMgY29uc3QpO1xuICB9LFxuXG4gIGFzeW5jIGhhbmRsZXIoYXJndjogeWFyZ3MuQXJndW1lbnRzPEFyZ3NQYXJzZVRyYW5zYWN0aW9uPik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IG5ldHdvcmsgPSBnZXROZXR3b3JrKGFyZ3YpO1xuICAgIGxldCBkYXRhO1xuXG4gICAgY29uc3QgaHR0cENsaWVudCA9IGF3YWl0IGdldENsaWVudCh7IGNhY2hlOiBhcmd2LmNhY2hlIH0pO1xuXG4gICAgaWYgKGFyZ3YudHhpZCkge1xuICAgICAgZGF0YSA9IGF3YWl0IGZldGNoVHJhbnNhY3Rpb25IZXgoaHR0cENsaWVudCwgYXJndi50eGlkLCBuZXR3b3JrKTtcbiAgICB9XG5cbiAgICBpZiAoYXJndi5zdGRpbiB8fCBhcmd2LnBhdGggPT09ICctJykge1xuICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBjb25mbGljdGluZyBhcmd1bWVudHNgKTtcbiAgICAgIH1cbiAgICAgIGNvbnNvbGUubG9nKCdSZWFkaW5nIGZyb20gc3RkaW4uIFBsZWFzZSBwYXN0ZSBoZXgtZW5jb2RlZCB0cmFuc2FjdGlvbiBkYXRhLicpO1xuICAgICAgY29uc29sZS5sb2coJ1ByZXNzIEN0cmwtRCB0byBmaW5pc2gsIG9yIEN0cmwtQyB0byBjYW5jZWwuJyk7XG4gICAgICBpZiAocHJvY2Vzcy5zdGRpbi5pc1RUWSkge1xuICAgICAgICBkYXRhID0gYXdhaXQgcmVhZFN0ZGluKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkYXRhID0gYXdhaXQgZnMucHJvbWlzZXMucmVhZEZpbGUoJy9kZXYvc3RkaW4nLCAndXRmOCcpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChhcmd2LmNsaXBib2FyZCkge1xuICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBjb25mbGljdGluZyBhcmd1bWVudHNgKTtcbiAgICAgIH1cbiAgICAgIGRhdGEgPSBhd2FpdCBjbGlwYm9hcmR5LnJlYWQoKTtcbiAgICB9XG5cbiAgICBpZiAoYXJndi5wYXRoKSB7XG4gICAgICBpZiAoZGF0YSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGNvbmZsaWN0aW5nIGFyZ3VtZW50c2ApO1xuICAgICAgfVxuICAgICAgZGF0YSA9IChhd2FpdCBmcy5wcm9taXNlcy5yZWFkRmlsZShhcmd2LnBhdGgsICd1dGY4JykpLnRvU3RyaW5nKCk7XG4gICAgfVxuXG4gICAgaWYgKGFyZ3YuZGF0YSkge1xuICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBjb25mbGljdGluZyBhcmd1bWVudHNgKTtcbiAgICAgIH1cbiAgICAgIGRhdGEgPSBhcmd2LmRhdGE7XG4gICAgfVxuXG4gICAgLy8gc3RyaXAgd2hpdGVzcGFjZVxuICAgIGlmICghZGF0YSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBubyB0eGRhdGFgKTtcbiAgICB9XG5cbiAgICBjb25zdCBieXRlcyA9IHN0cmluZ1RvQnVmZmVyKGRhdGEsIFsnaGV4JywgJ2Jhc2U2NCddKTtcblxuICAgIGxldCB0eCA9IHV0eG9saWIuYml0Z28uaXNQc2J0KGJ5dGVzKVxuICAgICAgPyB1dHhvbGliLmJpdGdvLmNyZWF0ZVBzYnRGcm9tQnVmZmVyKGJ5dGVzLCBuZXR3b3JrKVxuICAgICAgOiB1dHhvbGliLmJpdGdvLmNyZWF0ZVRyYW5zYWN0aW9uRnJvbUJ1ZmZlcihieXRlcywgbmV0d29yaywgeyBhbW91bnRUeXBlOiAnYmlnaW50JyB9KTtcblxuICAgIGNvbnN0IHsgaWQ6IHR4aWQgfSA9IGdldFBhcnNlclR4UHJvcGVydGllcyh0eCwgdW5kZWZpbmVkKTtcbiAgICBpZiAodHggaW5zdGFuY2VvZiB1dHhvbGliLmJpdGdvLlV0eG9UcmFuc2FjdGlvbikge1xuICAgICAgaWYgKGFyZ3YudHhpZCAmJiB0eGlkICE9PSBhcmd2LnR4aWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBjb21wdXRlZCB0eGlkIGRvZXMgbm90IG1hdGNoIHR4aWQgYXJndW1lbnRgKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGFyZ3YuZmluYWxpemUpIHtcbiAgICAgIHR4LmZpbmFsaXplQWxsSW5wdXRzKCk7XG4gICAgICB0eCA9IHR4LmV4dHJhY3RUcmFuc2FjdGlvbigpO1xuICAgIH1cblxuICAgIGlmIChhcmd2LnBhcnNlQXNVbmtub3duKSB7XG4gICAgICBjb25zb2xlLmxvZyhmb3JtYXRTdHJpbmcocGFyc2VVbmtub3duKG5ldyBQYXJzZXIoKSwgJ3R4JywgdHgpLCBhcmd2KSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGFyZ3YuZmV0Y2hBbGwpIHtcbiAgICAgIGFyZ3YuZmV0Y2hTdGF0dXMgPSB0cnVlO1xuICAgICAgYXJndi5mZXRjaElucHV0cyA9IHRydWU7XG4gICAgICBhcmd2LmZldGNoU3BlbmRzID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBjb25zdCBwYXJzZWQgPSBnZXRUeFBhcnNlcihhcmd2KS5wYXJzZSh0eCwge1xuICAgICAgc3RhdHVzOiBhcmd2LmZldGNoU3RhdHVzICYmIHR4aWQgPyBhd2FpdCBmZXRjaFRyYW5zYWN0aW9uU3RhdHVzKGh0dHBDbGllbnQsIHR4aWQsIG5ldHdvcmspIDogdW5kZWZpbmVkLFxuICAgICAgcHJldk91dHB1dHM6IGFyZ3YuZmV0Y2hJbnB1dHMgPyBhd2FpdCBmZXRjaFByZXZPdXRwdXRzKGh0dHBDbGllbnQsIHR4KSA6IHVuZGVmaW5lZCxcbiAgICAgIHByZXZPdXRwdXRTcGVuZHM6IGFyZ3YuZmV0Y2hTcGVuZHMgPyBhd2FpdCBmZXRjaFByZXZPdXRwdXRTcGVuZHMoaHR0cENsaWVudCwgdHgpIDogdW5kZWZpbmVkLFxuICAgICAgb3V0cHV0U3BlbmRzOlxuICAgICAgICBhcmd2LmZldGNoU3BlbmRzICYmIHR4IGluc3RhbmNlb2YgdXR4b2xpYi5iaXRnby5VdHhvVHJhbnNhY3Rpb25cbiAgICAgICAgICA/IGF3YWl0IGZldGNoT3V0cHV0U3BlbmRzKGh0dHBDbGllbnQsIHR4KVxuICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgIH0pO1xuXG4gICAgY29uc29sZS5sb2coZm9ybWF0U3RyaW5nKHBhcnNlZCwgYXJndikpO1xuICB9LFxufSBhcyBjb25zdDtcblxuZXhwb3J0IGNvbnN0IGNtZFBhcnNlQWRkcmVzcyA9IHtcbiAgY29tbWFuZDogJ3BhcnNlQWRkcmVzcyBbYWRkcmVzc10nLFxuICBhbGlhc2VzOiBbJ2FkZHJlc3MnXSxcbiAgZGVzY3JpYmU6ICdwYXJzZSBhZGRyZXNzJyxcbiAgYnVpbGRlcihiOiB5YXJncy5Bcmd2PHVua25vd24+KTogeWFyZ3MuQXJndjxBcmdzUGFyc2VBZGRyZXNzPiB7XG4gICAgcmV0dXJuIGJcbiAgICAgIC5vcHRpb24oJ25ldHdvcmsnLCB7IGFsaWFzOiAnbicsIHR5cGU6ICdzdHJpbmcnIH0pXG4gICAgICAub3B0aW9uKCdmb3JtYXQnLCB7IGNob2ljZXM6IFsndHJlZScsICdqc29uJ10sIGRlZmF1bHQ6ICd0cmVlJyB9IGFzIGNvbnN0KVxuICAgICAgLm9wdGlvbignY29udmVydCcsIHsgdHlwZTogJ2Jvb2xlYW4nLCBkZWZhdWx0OiBmYWxzZSB9KVxuICAgICAgLm9wdGlvbignYWxsJywgeyB0eXBlOiAnYm9vbGVhbicsIGRlZmF1bHQ6IGZhbHNlIH0pXG4gICAgICAucG9zaXRpb25hbCgnYWRkcmVzcycsIHsgdHlwZTogJ3N0cmluZycsIGRlbWFuZE9wdGlvbjogdHJ1ZSB9KTtcbiAgfSxcblxuICBoYW5kbGVyKGFyZ3Y6IHlhcmdzLkFyZ3VtZW50czxBcmdzUGFyc2VBZGRyZXNzPik6IHZvaWQge1xuICAgIGNvbnN0IHBhcnNlZCA9IGdldEFkZHJlc3NQYXJzZXIoYXJndikucGFyc2UoYXJndi5hZGRyZXNzKTtcbiAgICBjb25zb2xlLmxvZyhmb3JtYXRTdHJpbmcocGFyc2VkLCBhcmd2KSk7XG4gIH0sXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgY29uc3QgY21kUGFyc2VTY3JpcHQgPSB7XG4gIGNvbW1hbmQ6ICdwYXJzZVNjcmlwdCBbc2NyaXB0XScsXG4gIGRlc2NyaWJlOiAncGFyc2Ugc2NyaXB0JyxcbiAgYnVpbGRlcihiOiB5YXJncy5Bcmd2PHVua25vd24+KTogeWFyZ3MuQXJndjxBcmdzUGFyc2VTY3JpcHQ+IHtcbiAgICByZXR1cm4gYlxuICAgICAgLm9wdGlvbignbmV0d29yaycsIHsgYWxpYXM6ICduJywgdHlwZTogJ3N0cmluZycgfSlcbiAgICAgIC5vcHRpb24oJ2Zvcm1hdCcsIHsgY2hvaWNlczogWyd0cmVlJywgJ2pzb24nXSwgZGVmYXVsdDogJ3RyZWUnIH0gYXMgY29uc3QpXG4gICAgICAub3B0aW9uKCdhbGwnLCB7IHR5cGU6ICdib29sZWFuJywgZGVmYXVsdDogZmFsc2UgfSlcbiAgICAgIC5wb3NpdGlvbmFsKCdzY3JpcHQnLCB7IHR5cGU6ICdzdHJpbmcnLCBkZW1hbmRPcHRpb246IHRydWUgfSk7XG4gIH0sXG4gIGhhbmRsZXIoYXJndjogeWFyZ3MuQXJndW1lbnRzPEFyZ3NQYXJzZVNjcmlwdD4pOiB2b2lkIHtcbiAgICBjb25zdCBzY3JpcHQgPSBzdHJpbmdUb0J1ZmZlcihhcmd2LnNjcmlwdCwgJ2hleCcpO1xuICAgIGNvbnN0IHBhcnNlZCA9IGdldFNjcmlwdFBhcnNlcihhcmd2KS5wYXJzZShzY3JpcHQpO1xuICAgIGNvbnNvbGUubG9nKGZvcm1hdFN0cmluZyhwYXJzZWQsIHsgLi4uYXJndiwgYWxsOiB0cnVlIH0pKTtcbiAgfSxcbn07XG5cbmV4cG9ydCBjb25zdCBjbWRHZW5lcmF0ZUFkZHJlc3MgPSB7XG4gIGNvbW1hbmQ6ICdnZW5lcmF0ZUFkZHJlc3NlcycsXG4gIGRlc2NyaWJlOiAnZ2VuZXJhdGUgYWRkcmVzc2VzJyxcbiAgYnVpbGRlcihiOiB5YXJncy5Bcmd2PHVua25vd24+KTogeWFyZ3MuQXJndjxBcmdzR2VuZXJhdGVBZGRyZXNzPiB7XG4gICAgcmV0dXJuIGJcbiAgICAgIC5vcHRpb24oJ25ldHdvcmsnLCB7IGFsaWFzOiAnbicsIHR5cGU6ICdzdHJpbmcnIH0pXG4gICAgICAub3B0aW9uKCd1c2VyS2V5JywgeyB0eXBlOiAnc3RyaW5nJywgZGVtYW5kT3B0aW9uOiB0cnVlIH0pXG4gICAgICAub3B0aW9uKCdiYWNrdXBLZXknLCB7IHR5cGU6ICdzdHJpbmcnLCBkZW1hbmRPcHRpb246IHRydWUgfSlcbiAgICAgIC5vcHRpb24oJ2JpdGdvS2V5JywgeyB0eXBlOiAnc3RyaW5nJywgZGVtYW5kT3B0aW9uOiB0cnVlIH0pXG4gICAgICAub3B0aW9uKCdjaGFpbicsIHsgdHlwZTogJ251bWJlcicgfSlcbiAgICAgIC5vcHRpb24oJ3Nob3dEZXJpdmF0aW9uUGF0aCcsIHsgdHlwZTogJ2Jvb2xlYW4nLCBkZWZhdWx0OiB0cnVlIH0pXG4gICAgICAuYXJyYXkoJ2NoYWluJylcbiAgICAgIC5vcHRpb24oJ2xpbWl0JywgeyB0eXBlOiAnbnVtYmVyJywgZGVmYXVsdDogMTAwIH0pO1xuICB9LFxuICBoYW5kbGVyKGFyZ3Y6IHlhcmdzLkFyZ3VtZW50czxBcmdzR2VuZXJhdGVBZGRyZXNzPik6IHZvaWQge1xuICAgIGNvbnNvbGUubG9nKCdnZW5lcmF0aW5nIGFkZHJlc3Nlcy4uJyk7XG4gICAgZm9yIChjb25zdCBhZGRyZXNzIG9mIGdlbmVyYXRlQWRkcmVzcyh7XG4gICAgICAuLi5hcmd2LFxuICAgICAgbmV0d29yazogZ2V0TmV0d29ya0Zvck5hbWUoYXJndi5uZXR3b3JrID8/ICdiaXRjb2luJyksXG4gICAgfSkpIHtcbiAgICAgIGNvbnNvbGUubG9nKGFkZHJlc3MpO1xuICAgIH1cbiAgfSxcbn07XG4iXX0=
@@ -1,9 +1,10 @@
1
1
  import * as utxolib from '@bitgo/utxo-lib';
2
2
  import * as blockapis from '@bitgo/blockapis';
3
3
  import { HttpClient } from '@bitgo/blockapis';
4
+ import { ParserTx } from './ParserTx';
4
5
  export declare function fetchTransactionHex(httpClient: HttpClient, txid: string, network: utxolib.Network): Promise<string>;
5
6
  export declare function fetchTransactionStatus(httpClient: HttpClient, txid: string, network: utxolib.Network): Promise<blockapis.TransactionStatus>;
6
- export declare function fetchPrevOutputs(httpClient: HttpClient, tx: utxolib.bitgo.UtxoTransaction): Promise<utxolib.TxOutput[]>;
7
- export declare function fetchPrevOutputSpends(httpClient: HttpClient, tx: utxolib.bitgo.UtxoTransaction): Promise<blockapis.OutputSpend[]>;
8
- export declare function fetchOutputSpends(httpClient: HttpClient, tx: utxolib.bitgo.UtxoTransaction): Promise<blockapis.OutputSpend[]>;
7
+ export declare function fetchPrevOutputs(httpClient: HttpClient, tx: ParserTx): Promise<utxolib.TxOutput<bigint>[]>;
8
+ export declare function fetchPrevOutputSpends(httpClient: HttpClient, tx: utxolib.bitgo.UtxoTransaction<bigint> | utxolib.bitgo.UtxoPsbt): Promise<blockapis.OutputSpend[]>;
9
+ export declare function fetchOutputSpends(httpClient: HttpClient, tx: utxolib.bitgo.UtxoTransaction<bigint>): Promise<blockapis.OutputSpend[]>;
9
10
  //# sourceMappingURL=fetch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../src/fetch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAC3C,OAAO,KAAK,SAAS,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAqC9C,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,CAAC,OAAO,GACvB,OAAO,CAAC,MAAM,CAAC,CAEjB;AAED,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,CAAC,OAAO,GACvB,OAAO,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAEtC;AAED,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,UAAU,EACtB,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,eAAe,GAChC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAE7B;AAED,wBAAsB,qBAAqB,CACzC,UAAU,EAAE,UAAU,EACtB,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,eAAe,GAChC,OAAO,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAKlC;AAED,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,UAAU,EACtB,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,eAAe,GAChC,OAAO,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAMlC"}
1
+ {"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../src/fetch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAC3C,OAAO,KAAK,SAAS,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AA6CtC,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,CAAC,OAAO,GACvB,OAAO,CAAC,MAAM,CAAC,CAEjB;AAED,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,CAAC,OAAO,GACvB,OAAO,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAEtC;AAED,wBAAsB,gBAAgB,CAAC,UAAU,EAAE,UAAU,EAAE,EAAE,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAKhH;AAED,wBAAsB,qBAAqB,CACzC,UAAU,EAAE,UAAU,EACtB,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,GACjE,OAAO,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAElC;AAED,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,UAAU,EACtB,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,GACxC,OAAO,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAMlC"}
package/dist/src/fetch.js CHANGED
@@ -4,6 +4,14 @@ exports.fetchOutputSpends = exports.fetchPrevOutputSpends = exports.fetchPrevOut
4
4
  const utxolib = require("@bitgo/utxo-lib");
5
5
  const blockapis = require("@bitgo/blockapis");
6
6
  const statics_1 = require("@bitgo/statics");
7
+ function getTxOutPoints(tx) {
8
+ if (tx instanceof utxolib.bitgo.UtxoTransaction) {
9
+ return tx.ins.map((i) => utxolib.bitgo.getOutputIdForInput(i));
10
+ }
11
+ else {
12
+ return tx.txInputs.map((i) => utxolib.bitgo.getOutputIdForInput(i));
13
+ }
14
+ }
7
15
  function getCoinName(network) {
8
16
  const networkName = utxolib.getNetworkName(network);
9
17
  // the bitcoincash network actually has two coins: bch and bcha - hardcode bch by default here
@@ -42,11 +50,14 @@ async function fetchTransactionStatus(httpClient, txid, network) {
42
50
  }
43
51
  exports.fetchTransactionStatus = fetchTransactionStatus;
44
52
  async function fetchPrevOutputs(httpClient, tx) {
45
- return await blockapis.fetchInputs(tx.ins, getApi(httpClient, tx.network), tx.network);
53
+ return (await blockapis.fetchInputs(getTxOutPoints(tx), getApi(httpClient, tx.network), tx.network)).map((v) => ({
54
+ ...v,
55
+ value: BigInt(v.value),
56
+ }));
46
57
  }
47
58
  exports.fetchPrevOutputs = fetchPrevOutputs;
48
59
  async function fetchPrevOutputSpends(httpClient, tx) {
49
- return await blockapis.fetchTransactionSpends(tx.ins.map((i) => utxolib.bitgo.getOutputIdForInput(i)), getApi(httpClient, tx.network));
60
+ return await blockapis.fetchTransactionSpends(getTxOutPoints(tx), getApi(httpClient, tx.network));
50
61
  }
51
62
  exports.fetchPrevOutputSpends = fetchPrevOutputSpends;
52
63
  async function fetchOutputSpends(httpClient, tx) {
@@ -58,4 +69,4 @@ async function fetchOutputSpends(httpClient, tx) {
58
69
  }
59
70
  }
60
71
  exports.fetchOutputSpends = fetchOutputSpends;
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmV0Y2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZmV0Y2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkNBQTJDO0FBQzNDLDhDQUE4QztBQUM5Qyw0Q0FBaUQ7QUFHakQsU0FBUyxXQUFXLENBQUMsT0FBd0I7SUFDM0MsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUVwRCw4RkFBOEY7SUFDOUYsUUFBUSxXQUFXLEVBQUU7UUFDbkIsS0FBSyxhQUFhO1lBQ2hCLE9BQU8sS0FBSyxDQUFDO1FBQ2YsS0FBSyxvQkFBb0I7WUFDdkIsT0FBTyxNQUFNLENBQUM7S0FDakI7SUFFRCxNQUFNLE9BQU8sR0FBRyxDQUFDLEdBQUcsZUFBSyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FDOUMsSUFBSSxZQUFZLGtCQUFRLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUN4RixDQUFDO0lBQ0YsUUFBUSxPQUFPLENBQUMsTUFBTSxFQUFFO1FBQ3RCLEtBQUssQ0FBQztZQUNKLE1BQU0sSUFBSSxLQUFLLENBQUMsdUJBQXVCLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDeEQsS0FBSyxDQUFDO1lBQ0osT0FBTyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEI7WUFDRSxNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixXQUFXLEtBQUssT0FBTyxFQUFFLENBQUMsQ0FBQztLQUN4RTtBQUNILENBQUM7QUFFRCxTQUFTLE1BQU0sQ0FBQyxVQUFzQixFQUFFLE9BQXdCO0lBQzlELE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN0QyxRQUFRLFFBQVEsRUFBRTtRQUNoQixLQUFLLEtBQUssQ0FBQztRQUNYLEtBQUssTUFBTTtZQUNULE9BQU8sU0FBUyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUNwRTtZQUNFLE9BQU8sU0FBUyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztLQUNwRTtBQUNILENBQUM7QUFFTSxLQUFLLFVBQVUsbUJBQW1CLENBQ3ZDLFVBQXNCLEVBQ3RCLElBQVksRUFDWixPQUF3QjtJQUV4QixPQUFPLE1BQU0sTUFBTSxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNuRSxDQUFDO0FBTkQsa0RBTUM7QUFFTSxLQUFLLFVBQVUsc0JBQXNCLENBQzFDLFVBQXNCLEVBQ3RCLElBQVksRUFDWixPQUF3QjtJQUV4QixPQUFPLE1BQU0sTUFBTSxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN0RSxDQUFDO0FBTkQsd0RBTUM7QUFFTSxLQUFLLFVBQVUsZ0JBQWdCLENBQ3BDLFVBQXNCLEVBQ3RCLEVBQWlDO0lBRWpDLE9BQU8sTUFBTSxTQUFTLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3pGLENBQUM7QUFMRCw0Q0FLQztBQUVNLEtBQUssVUFBVSxxQkFBcUIsQ0FDekMsVUFBc0IsRUFDdEIsRUFBaUM7SUFFakMsT0FBTyxNQUFNLFNBQVMsQ0FBQyxzQkFBc0IsQ0FDM0MsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDdkQsTUFBTSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQy9CLENBQUM7QUFDSixDQUFDO0FBUkQsc0RBUUM7QUFFTSxLQUFLLFVBQVUsaUJBQWlCLENBQ3JDLFVBQXNCLEVBQ3RCLEVBQWlDO0lBRWpDLElBQUk7UUFDRixPQUFPLE1BQU0sTUFBTSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsb0JBQW9CLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7S0FDOUU7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNWLE9BQU8sRUFBRSxDQUFDO0tBQ1g7QUFDSCxDQUFDO0FBVEQsOENBU0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby91dHhvLWxpYic7XG5pbXBvcnQgKiBhcyBibG9ja2FwaXMgZnJvbSAnQGJpdGdvL2Jsb2NrYXBpcyc7XG5pbXBvcnQgeyBjb2lucywgVXR4b0NvaW4gfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGJpdGdvL2Jsb2NrYXBpcyc7XG5cbmZ1bmN0aW9uIGdldENvaW5OYW1lKG5ldHdvcms6IHV0eG9saWIuTmV0d29yayk6IHN0cmluZyB7XG4gIGNvbnN0IG5ldHdvcmtOYW1lID0gdXR4b2xpYi5nZXROZXR3b3JrTmFtZShuZXR3b3JrKTtcblxuICAvLyB0aGUgYml0Y29pbmNhc2ggbmV0d29yayBhY3R1YWxseSBoYXMgdHdvIGNvaW5zOiBiY2ggYW5kIGJjaGEgLSBoYXJkY29kZSBiY2ggYnkgZGVmYXVsdCBoZXJlXG4gIHN3aXRjaCAobmV0d29ya05hbWUpIHtcbiAgICBjYXNlICdiaXRjb2luY2FzaCc6XG4gICAgICByZXR1cm4gJ2JjaCc7XG4gICAgY2FzZSAnYml0Y29pbmNhc2hUZXN0bmV0JzpcbiAgICAgIHJldHVybiAndGJjaCc7XG4gIH1cblxuICBjb25zdCBtYXRjaGVzID0gWy4uLmNvaW5zXS5mbGF0TWFwKChbLCBjb2luXSkgPT5cbiAgICBjb2luIGluc3RhbmNlb2YgVXR4b0NvaW4gJiYgY29pbi5uZXR3b3JrLnV0eG9saWJOYW1lID09PSBuZXR3b3JrTmFtZSA/IFtjb2luLm5hbWVdIDogW11cbiAgKTtcbiAgc3dpdGNoIChtYXRjaGVzLmxlbmd0aCkge1xuICAgIGNhc2UgMDpcbiAgICAgIHRocm93IG5ldyBFcnJvcihgbm8gY29pbiBmb3IgbmV0d29yayAke25ldHdvcmtOYW1lfWApO1xuICAgIGNhc2UgMTpcbiAgICAgIHJldHVybiBtYXRjaGVzWzBdO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYG1vcmUgdGhhbiBvbmUgY29pbiBmb3IgJHtuZXR3b3JrTmFtZX06ICR7bWF0Y2hlc31gKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRBcGkoaHR0cENsaWVudDogSHR0cENsaWVudCwgbmV0d29yazogdXR4b2xpYi5OZXR3b3JrKTogYmxvY2thcGlzLlV0eG9BcGkge1xuICBjb25zdCBjb2luTmFtZSA9IGdldENvaW5OYW1lKG5ldHdvcmspO1xuICBzd2l0Y2ggKGNvaW5OYW1lKSB7XG4gICAgY2FzZSAnYnRjJzpcbiAgICBjYXNlICd0YnRjJzpcbiAgICAgIHJldHVybiBibG9ja2FwaXMuQmxvY2tzdHJlYW1BcGkuZm9yQ29pbihjb2luTmFtZSwgeyBodHRwQ2xpZW50IH0pO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gYmxvY2thcGlzLkJsb2NrY2hhaXJBcGkuZm9yQ29pbihjb2luTmFtZSwgeyBodHRwQ2xpZW50IH0pO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBmZXRjaFRyYW5zYWN0aW9uSGV4KFxuICBodHRwQ2xpZW50OiBIdHRwQ2xpZW50LFxuICB0eGlkOiBzdHJpbmcsXG4gIG5ldHdvcms6IHV0eG9saWIuTmV0d29ya1xuKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgcmV0dXJuIGF3YWl0IGdldEFwaShodHRwQ2xpZW50LCBuZXR3b3JrKS5nZXRUcmFuc2FjdGlvbkhleCh0eGlkKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZldGNoVHJhbnNhY3Rpb25TdGF0dXMoXG4gIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsXG4gIHR4aWQ6IHN0cmluZyxcbiAgbmV0d29yazogdXR4b2xpYi5OZXR3b3JrXG4pOiBQcm9taXNlPGJsb2NrYXBpcy5UcmFuc2FjdGlvblN0YXR1cz4ge1xuICByZXR1cm4gYXdhaXQgZ2V0QXBpKGh0dHBDbGllbnQsIG5ldHdvcmspLmdldFRyYW5zYWN0aW9uU3RhdHVzKHR4aWQpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZmV0Y2hQcmV2T3V0cHV0cyhcbiAgaHR0cENsaWVudDogSHR0cENsaWVudCxcbiAgdHg6IHV0eG9saWIuYml0Z28uVXR4b1RyYW5zYWN0aW9uXG4pOiBQcm9taXNlPHV0eG9saWIuVHhPdXRwdXRbXT4ge1xuICByZXR1cm4gYXdhaXQgYmxvY2thcGlzLmZldGNoSW5wdXRzKHR4LmlucywgZ2V0QXBpKGh0dHBDbGllbnQsIHR4Lm5ldHdvcmspLCB0eC5uZXR3b3JrKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZldGNoUHJldk91dHB1dFNwZW5kcyhcbiAgaHR0cENsaWVudDogSHR0cENsaWVudCxcbiAgdHg6IHV0eG9saWIuYml0Z28uVXR4b1RyYW5zYWN0aW9uXG4pOiBQcm9taXNlPGJsb2NrYXBpcy5PdXRwdXRTcGVuZFtdPiB7XG4gIHJldHVybiBhd2FpdCBibG9ja2FwaXMuZmV0Y2hUcmFuc2FjdGlvblNwZW5kcyhcbiAgICB0eC5pbnMubWFwKChpKSA9PiB1dHhvbGliLmJpdGdvLmdldE91dHB1dElkRm9ySW5wdXQoaSkpLFxuICAgIGdldEFwaShodHRwQ2xpZW50LCB0eC5uZXR3b3JrKVxuICApO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZmV0Y2hPdXRwdXRTcGVuZHMoXG4gIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsXG4gIHR4OiB1dHhvbGliLmJpdGdvLlV0eG9UcmFuc2FjdGlvblxuKTogUHJvbWlzZTxibG9ja2FwaXMuT3V0cHV0U3BlbmRbXT4ge1xuICB0cnkge1xuICAgIHJldHVybiBhd2FpdCBnZXRBcGkoaHR0cENsaWVudCwgdHgubmV0d29yaykuZ2V0VHJhbnNhY3Rpb25TcGVuZHModHguZ2V0SWQoKSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gW107XG4gIH1cbn1cbiJdfQ==
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmV0Y2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZmV0Y2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkNBQTJDO0FBQzNDLDhDQUE4QztBQUM5Qyw0Q0FBaUQ7QUFJakQsU0FBUyxjQUFjLENBQUMsRUFBWTtJQUNsQyxJQUFJLEVBQUUsWUFBWSxPQUFPLENBQUMsS0FBSyxDQUFDLGVBQWUsRUFBRTtRQUMvQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDaEU7U0FBTTtRQUNMLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUNyRTtBQUNILENBQUM7QUFFRCxTQUFTLFdBQVcsQ0FBQyxPQUF3QjtJQUMzQyxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRXBELDhGQUE4RjtJQUM5RixRQUFRLFdBQVcsRUFBRTtRQUNuQixLQUFLLGFBQWE7WUFDaEIsT0FBTyxLQUFLLENBQUM7UUFDZixLQUFLLG9CQUFvQjtZQUN2QixPQUFPLE1BQU0sQ0FBQztLQUNqQjtJQUVELE1BQU0sT0FBTyxHQUFHLENBQUMsR0FBRyxlQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUM5QyxJQUFJLFlBQVksa0JBQVEsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQ3hGLENBQUM7SUFDRixRQUFRLE9BQU8sQ0FBQyxNQUFNLEVBQUU7UUFDdEIsS0FBSyxDQUFDO1lBQ0osTUFBTSxJQUFJLEtBQUssQ0FBQyx1QkFBdUIsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUN4RCxLQUFLLENBQUM7WUFDSixPQUFPLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwQjtZQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLFdBQVcsS0FBSyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0tBQ3hFO0FBQ0gsQ0FBQztBQUVELFNBQVMsTUFBTSxDQUFDLFVBQXNCLEVBQUUsT0FBd0I7SUFDOUQsTUFBTSxRQUFRLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RDLFFBQVEsUUFBUSxFQUFFO1FBQ2hCLEtBQUssS0FBSyxDQUFDO1FBQ1gsS0FBSyxNQUFNO1lBQ1QsT0FBTyxTQUFTLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQ3BFO1lBQ0UsT0FBTyxTQUFTLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO0tBQ3BFO0FBQ0gsQ0FBQztBQUVNLEtBQUssVUFBVSxtQkFBbUIsQ0FDdkMsVUFBc0IsRUFDdEIsSUFBWSxFQUNaLE9BQXdCO0lBRXhCLE9BQU8sTUFBTSxNQUFNLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ25FLENBQUM7QUFORCxrREFNQztBQUVNLEtBQUssVUFBVSxzQkFBc0IsQ0FDMUMsVUFBc0IsRUFDdEIsSUFBWSxFQUNaLE9BQXdCO0lBRXhCLE9BQU8sTUFBTSxNQUFNLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3RFLENBQUM7QUFORCx3REFNQztBQUVNLEtBQUssVUFBVSxnQkFBZ0IsQ0FBQyxVQUFzQixFQUFFLEVBQVk7SUFDekUsT0FBTyxDQUFDLE1BQU0sU0FBUyxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQy9HLEdBQUcsQ0FBQztRQUNKLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztLQUN2QixDQUFDLENBQUMsQ0FBQztBQUNOLENBQUM7QUFMRCw0Q0FLQztBQUVNLEtBQUssVUFBVSxxQkFBcUIsQ0FDekMsVUFBc0IsRUFDdEIsRUFBa0U7SUFFbEUsT0FBTyxNQUFNLFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztBQUNwRyxDQUFDO0FBTEQsc0RBS0M7QUFFTSxLQUFLLFVBQVUsaUJBQWlCLENBQ3JDLFVBQXNCLEVBQ3RCLEVBQXlDO0lBRXpDLElBQUk7UUFDRixPQUFPLE1BQU0sTUFBTSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsb0JBQW9CLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7S0FDOUU7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNWLE9BQU8sRUFBRSxDQUFDO0tBQ1g7QUFDSCxDQUFDO0FBVEQsOENBU0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby91dHhvLWxpYic7XG5pbXBvcnQgKiBhcyBibG9ja2FwaXMgZnJvbSAnQGJpdGdvL2Jsb2NrYXBpcyc7XG5pbXBvcnQgeyBjb2lucywgVXR4b0NvaW4gfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGJpdGdvL2Jsb2NrYXBpcyc7XG5pbXBvcnQgeyBQYXJzZXJUeCB9IGZyb20gJy4vUGFyc2VyVHgnO1xuXG5mdW5jdGlvbiBnZXRUeE91dFBvaW50cyh0eDogUGFyc2VyVHgpOiB1dHhvbGliLmJpdGdvLlR4T3V0UG9pbnRbXSB7XG4gIGlmICh0eCBpbnN0YW5jZW9mIHV0eG9saWIuYml0Z28uVXR4b1RyYW5zYWN0aW9uKSB7XG4gICAgcmV0dXJuIHR4Lmlucy5tYXAoKGkpID0+IHV0eG9saWIuYml0Z28uZ2V0T3V0cHV0SWRGb3JJbnB1dChpKSk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHR4LnR4SW5wdXRzLm1hcCgoaSkgPT4gdXR4b2xpYi5iaXRnby5nZXRPdXRwdXRJZEZvcklucHV0KGkpKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRDb2luTmFtZShuZXR3b3JrOiB1dHhvbGliLk5ldHdvcmspOiBzdHJpbmcge1xuICBjb25zdCBuZXR3b3JrTmFtZSA9IHV0eG9saWIuZ2V0TmV0d29ya05hbWUobmV0d29yayk7XG5cbiAgLy8gdGhlIGJpdGNvaW5jYXNoIG5ldHdvcmsgYWN0dWFsbHkgaGFzIHR3byBjb2luczogYmNoIGFuZCBiY2hhIC0gaGFyZGNvZGUgYmNoIGJ5IGRlZmF1bHQgaGVyZVxuICBzd2l0Y2ggKG5ldHdvcmtOYW1lKSB7XG4gICAgY2FzZSAnYml0Y29pbmNhc2gnOlxuICAgICAgcmV0dXJuICdiY2gnO1xuICAgIGNhc2UgJ2JpdGNvaW5jYXNoVGVzdG5ldCc6XG4gICAgICByZXR1cm4gJ3RiY2gnO1xuICB9XG5cbiAgY29uc3QgbWF0Y2hlcyA9IFsuLi5jb2luc10uZmxhdE1hcCgoWywgY29pbl0pID0+XG4gICAgY29pbiBpbnN0YW5jZW9mIFV0eG9Db2luICYmIGNvaW4ubmV0d29yay51dHhvbGliTmFtZSA9PT0gbmV0d29ya05hbWUgPyBbY29pbi5uYW1lXSA6IFtdXG4gICk7XG4gIHN3aXRjaCAobWF0Y2hlcy5sZW5ndGgpIHtcbiAgICBjYXNlIDA6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYG5vIGNvaW4gZm9yIG5ldHdvcmsgJHtuZXR3b3JrTmFtZX1gKTtcbiAgICBjYXNlIDE6XG4gICAgICByZXR1cm4gbWF0Y2hlc1swXTtcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBtb3JlIHRoYW4gb25lIGNvaW4gZm9yICR7bmV0d29ya05hbWV9OiAke21hdGNoZXN9YCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0QXBpKGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsIG5ldHdvcms6IHV0eG9saWIuTmV0d29yayk6IGJsb2NrYXBpcy5VdHhvQXBpIHtcbiAgY29uc3QgY29pbk5hbWUgPSBnZXRDb2luTmFtZShuZXR3b3JrKTtcbiAgc3dpdGNoIChjb2luTmFtZSkge1xuICAgIGNhc2UgJ2J0Yyc6XG4gICAgY2FzZSAndGJ0Yyc6XG4gICAgICByZXR1cm4gYmxvY2thcGlzLkJsb2Nrc3RyZWFtQXBpLmZvckNvaW4oY29pbk5hbWUsIHsgaHR0cENsaWVudCB9KTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIGJsb2NrYXBpcy5CbG9ja2NoYWlyQXBpLmZvckNvaW4oY29pbk5hbWUsIHsgaHR0cENsaWVudCB9KTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZmV0Y2hUcmFuc2FjdGlvbkhleChcbiAgaHR0cENsaWVudDogSHR0cENsaWVudCxcbiAgdHhpZDogc3RyaW5nLFxuICBuZXR3b3JrOiB1dHhvbGliLk5ldHdvcmtcbik6IFByb21pc2U8c3RyaW5nPiB7XG4gIHJldHVybiBhd2FpdCBnZXRBcGkoaHR0cENsaWVudCwgbmV0d29yaykuZ2V0VHJhbnNhY3Rpb25IZXgodHhpZCk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBmZXRjaFRyYW5zYWN0aW9uU3RhdHVzKFxuICBodHRwQ2xpZW50OiBIdHRwQ2xpZW50LFxuICB0eGlkOiBzdHJpbmcsXG4gIG5ldHdvcms6IHV0eG9saWIuTmV0d29ya1xuKTogUHJvbWlzZTxibG9ja2FwaXMuVHJhbnNhY3Rpb25TdGF0dXM+IHtcbiAgcmV0dXJuIGF3YWl0IGdldEFwaShodHRwQ2xpZW50LCBuZXR3b3JrKS5nZXRUcmFuc2FjdGlvblN0YXR1cyh0eGlkKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZldGNoUHJldk91dHB1dHMoaHR0cENsaWVudDogSHR0cENsaWVudCwgdHg6IFBhcnNlclR4KTogUHJvbWlzZTx1dHhvbGliLlR4T3V0cHV0PGJpZ2ludD5bXT4ge1xuICByZXR1cm4gKGF3YWl0IGJsb2NrYXBpcy5mZXRjaElucHV0cyhnZXRUeE91dFBvaW50cyh0eCksIGdldEFwaShodHRwQ2xpZW50LCB0eC5uZXR3b3JrKSwgdHgubmV0d29yaykpLm1hcCgodikgPT4gKHtcbiAgICAuLi52LFxuICAgIHZhbHVlOiBCaWdJbnQodi52YWx1ZSksXG4gIH0pKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZldGNoUHJldk91dHB1dFNwZW5kcyhcbiAgaHR0cENsaWVudDogSHR0cENsaWVudCxcbiAgdHg6IHV0eG9saWIuYml0Z28uVXR4b1RyYW5zYWN0aW9uPGJpZ2ludD4gfCB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0XG4pOiBQcm9taXNlPGJsb2NrYXBpcy5PdXRwdXRTcGVuZFtdPiB7XG4gIHJldHVybiBhd2FpdCBibG9ja2FwaXMuZmV0Y2hUcmFuc2FjdGlvblNwZW5kcyhnZXRUeE91dFBvaW50cyh0eCksIGdldEFwaShodHRwQ2xpZW50LCB0eC5uZXR3b3JrKSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBmZXRjaE91dHB1dFNwZW5kcyhcbiAgaHR0cENsaWVudDogSHR0cENsaWVudCxcbiAgdHg6IHV0eG9saWIuYml0Z28uVXR4b1RyYW5zYWN0aW9uPGJpZ2ludD5cbik6IFByb21pc2U8YmxvY2thcGlzLk91dHB1dFNwZW5kW10+IHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gYXdhaXQgZ2V0QXBpKGh0dHBDbGllbnQsIHR4Lm5ldHdvcmspLmdldFRyYW5zYWN0aW9uU3BlbmRzKHR4LmdldElkKCkpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG59XG4iXX0=
@@ -1,6 +1,6 @@
1
1
  import { Chalk } from 'chalk';
2
2
  import { ParserNode } from './Parser';
3
- export declare function formatSat(v: number): string;
3
+ export declare function formatSat(v: number | bigint): string;
4
4
  export declare function formatTree(n: ParserNode, { hide, chalk }?: {
5
5
  hide?: string[];
6
6
  chalk?: Chalk;
@@ -1 +1 @@
1
- {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/format.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAY,MAAM,OAAO,CAAC;AAExC,OAAO,EAAE,UAAU,EAAmB,MAAM,UAAU,CAAC;AAIvD,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE3C;AAED,wBAAgB,UAAU,CACxB,CAAC,EAAE,UAAU,EACb,EAAE,IAAkB,EAAE,KAAsB,EAAE,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,CAAC,EAAE,KAAK,CAAA;CAAO,GACtF,MAAM,CAoCR"}
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/format.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAY,MAAM,OAAO,CAAC;AAExC,OAAO,EAAE,UAAU,EAAmB,MAAM,UAAU,CAAC;AAIvD,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAEpD;AAED,wBAAgB,UAAU,CACxB,CAAC,EAAE,UAAU,EACb,EAAE,IAAkB,EAAE,KAAsB,EAAE,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,CAAC,EAAE,KAAK,CAAA;CAAO,GACtF,MAAM,CA6CR"}
@@ -5,13 +5,18 @@ const chalk_1 = require("chalk");
5
5
  const archy = require("archy");
6
6
  const hideDefault = ['pubkeys', 'sequence', 'locktime', 'scriptSig', 'witness'];
7
7
  function formatSat(v) {
8
- return (v / 1e8).toFixed(8);
8
+ return (Number(v) / 1e8).toFixed(8);
9
9
  }
10
10
  exports.formatSat = formatSat;
11
11
  function formatTree(n, { hide = hideDefault, chalk = new chalk_1.Instance() } = {}) {
12
- function getLabel(label, v) {
12
+ function getLabel(label, v, { showUndefined } = { showUndefined: false }) {
13
13
  const arr = [chalk.bold(label)];
14
- if (v !== undefined) {
14
+ if (v === undefined) {
15
+ if (showUndefined) {
16
+ arr.push(chalk.dim('undefined'));
17
+ }
18
+ }
19
+ else {
15
20
  arr.push(String(v));
16
21
  }
17
22
  return arr.join(': ');
@@ -23,24 +28,26 @@ function formatTree(n, { hide = hideDefault, chalk = new chalk_1.Instance() } =
23
28
  case 'boolean':
24
29
  case 'number':
25
30
  case 'string':
31
+ case 'bigint':
26
32
  return String(v);
27
33
  case 'object':
28
34
  if (v === null) {
29
35
  return String(v);
30
36
  }
31
37
  if (Buffer.isBuffer(v)) {
32
- return v.length === 0 ? '[]' : v.toString('hex');
38
+ return `${v.toString('hex')} ${chalk.dim(`(${v.length} bytes)`)}`;
33
39
  }
34
40
  }
35
- throw new Error(`could not get label from value`);
41
+ throw new Error(`could not get label from value ${typeof v}`);
36
42
  }
37
43
  function toArchy(n) {
44
+ var _a;
38
45
  return {
39
- label: getLabel(n.label, getLabelFromValue(n.value)),
46
+ label: getLabel(n.label, getLabelFromValue(n.value), { showUndefined: !Boolean((_a = n.nodes) === null || _a === void 0 ? void 0 : _a.length) }),
40
47
  nodes: n.nodes ? n.nodes.flatMap((e) => (hide.includes(e.label) ? [] : [toArchy(e)])) : undefined,
41
48
  };
42
49
  }
43
50
  return archy(toArchy(n));
44
51
  }
45
52
  exports.formatTree = formatTree;
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Zvcm1hdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxpQ0FBd0M7QUFDeEMsK0JBQStCO0FBRy9CLE1BQU0sV0FBVyxHQUFHLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBRWhGLFNBQWdCLFNBQVMsQ0FBQyxDQUFTO0lBQ2pDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzlCLENBQUM7QUFGRCw4QkFFQztBQUVELFNBQWdCLFVBQVUsQ0FDeEIsQ0FBYSxFQUNiLEVBQUUsSUFBSSxHQUFHLFdBQVcsRUFBRSxLQUFLLEdBQUcsSUFBSSxnQkFBUSxFQUFFLEtBQXlDLEVBQUU7SUFFdkYsU0FBUyxRQUFRLENBQUMsS0FBc0IsRUFBRSxDQUFXO1FBQ25ELE1BQU0sR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxLQUFLLFNBQVMsRUFBRTtZQUNuQixHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3JCO1FBQ0QsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxTQUFTLGlCQUFpQixDQUFDLENBQWtCO1FBQzNDLFFBQVEsT0FBTyxDQUFDLEVBQUU7WUFDaEIsS0FBSyxXQUFXO2dCQUNkLE9BQU8sU0FBUyxDQUFDO1lBQ25CLEtBQUssU0FBUyxDQUFDO1lBQ2YsS0FBSyxRQUFRLENBQUM7WUFDZCxLQUFLLFFBQVE7Z0JBQ1gsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkIsS0FBSyxRQUFRO2dCQUNYLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRTtvQkFDZCxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDbEI7Z0JBQ0QsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFO29CQUN0QixPQUFPLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQ2xEO1NBQ0o7UUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELFNBQVMsT0FBTyxDQUFDLENBQWE7UUFDNUIsT0FBTztZQUNMLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDcEQsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO1NBQ2xHLENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDM0IsQ0FBQztBQXZDRCxnQ0F1Q0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFsaywgSW5zdGFuY2UgfSBmcm9tICdjaGFsayc7XG5pbXBvcnQgKiBhcyBhcmNoeSBmcm9tICdhcmNoeSc7XG5pbXBvcnQgeyBQYXJzZXJOb2RlLCBQYXJzZXJOb2RlVmFsdWUgfSBmcm9tICcuL1BhcnNlcic7XG5cbmNvbnN0IGhpZGVEZWZhdWx0ID0gWydwdWJrZXlzJywgJ3NlcXVlbmNlJywgJ2xvY2t0aW1lJywgJ3NjcmlwdFNpZycsICd3aXRuZXNzJ107XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRTYXQodjogbnVtYmVyKTogc3RyaW5nIHtcbiAgcmV0dXJuICh2IC8gMWU4KS50b0ZpeGVkKDgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0VHJlZShcbiAgbjogUGFyc2VyTm9kZSxcbiAgeyBoaWRlID0gaGlkZURlZmF1bHQsIGNoYWxrID0gbmV3IEluc3RhbmNlKCkgfTogeyBoaWRlPzogc3RyaW5nW107IGNoYWxrPzogQ2hhbGsgfSA9IHt9XG4pOiBzdHJpbmcge1xuICBmdW5jdGlvbiBnZXRMYWJlbChsYWJlbDogc3RyaW5nIHwgbnVtYmVyLCB2PzogdW5rbm93bik6IHN0cmluZyB7XG4gICAgY29uc3QgYXJyID0gW2NoYWxrLmJvbGQobGFiZWwpXTtcbiAgICBpZiAodiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBhcnIucHVzaChTdHJpbmcodikpO1xuICAgIH1cbiAgICByZXR1cm4gYXJyLmpvaW4oJzogJyk7XG4gIH1cblxuICBmdW5jdGlvbiBnZXRMYWJlbEZyb21WYWx1ZSh2OiBQYXJzZXJOb2RlVmFsdWUpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHN3aXRjaCAodHlwZW9mIHYpIHtcbiAgICAgIGNhc2UgJ3VuZGVmaW5lZCc6XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICBjYXNlICdib29sZWFuJzpcbiAgICAgIGNhc2UgJ251bWJlcic6XG4gICAgICBjYXNlICdzdHJpbmcnOlxuICAgICAgICByZXR1cm4gU3RyaW5nKHYpO1xuICAgICAgY2FzZSAnb2JqZWN0JzpcbiAgICAgICAgaWYgKHYgPT09IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gU3RyaW5nKHYpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChCdWZmZXIuaXNCdWZmZXIodikpIHtcbiAgICAgICAgICByZXR1cm4gdi5sZW5ndGggPT09IDAgPyAnW10nIDogdi50b1N0cmluZygnaGV4Jyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKGBjb3VsZCBub3QgZ2V0IGxhYmVsIGZyb20gdmFsdWVgKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHRvQXJjaHkobjogUGFyc2VyTm9kZSk6IGFyY2h5LkRhdGEge1xuICAgIHJldHVybiB7XG4gICAgICBsYWJlbDogZ2V0TGFiZWwobi5sYWJlbCwgZ2V0TGFiZWxGcm9tVmFsdWUobi52YWx1ZSkpLFxuICAgICAgbm9kZXM6IG4ubm9kZXMgPyBuLm5vZGVzLmZsYXRNYXAoKGUpID0+IChoaWRlLmluY2x1ZGVzKGUubGFiZWwpID8gW10gOiBbdG9BcmNoeShlKV0pKSA6IHVuZGVmaW5lZCxcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIGFyY2h5KHRvQXJjaHkobikpO1xufVxuIl19
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Zvcm1hdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxpQ0FBd0M7QUFDeEMsK0JBQStCO0FBRy9CLE1BQU0sV0FBVyxHQUFHLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBRWhGLFNBQWdCLFNBQVMsQ0FBQyxDQUFrQjtJQUMxQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN0QyxDQUFDO0FBRkQsOEJBRUM7QUFFRCxTQUFnQixVQUFVLENBQ3hCLENBQWEsRUFDYixFQUFFLElBQUksR0FBRyxXQUFXLEVBQUUsS0FBSyxHQUFHLElBQUksZ0JBQVEsRUFBRSxLQUF5QyxFQUFFO0lBRXZGLFNBQVMsUUFBUSxDQUNmLEtBQXNCLEVBQ3RCLENBQVcsRUFDWCxFQUFFLGFBQWEsS0FBaUMsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFO1FBRXhFLE1BQU0sR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxLQUFLLFNBQVMsRUFBRTtZQUNuQixJQUFJLGFBQWEsRUFBRTtnQkFDakIsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7YUFDbEM7U0FDRjthQUFNO1lBQ0wsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNyQjtRQUNELE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQsU0FBUyxpQkFBaUIsQ0FBQyxDQUFrQjtRQUMzQyxRQUFRLE9BQU8sQ0FBQyxFQUFFO1lBQ2hCLEtBQUssV0FBVztnQkFDZCxPQUFPLFNBQVMsQ0FBQztZQUNuQixLQUFLLFNBQVMsQ0FBQztZQUNmLEtBQUssUUFBUSxDQUFDO1lBQ2QsS0FBSyxRQUFRLENBQUM7WUFDZCxLQUFLLFFBQVE7Z0JBQ1gsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkIsS0FBSyxRQUFRO2dCQUNYLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRTtvQkFDZCxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDbEI7Z0JBQ0QsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFO29CQUN0QixPQUFPLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sU0FBUyxDQUFDLEVBQUUsQ0FBQztpQkFDbkU7U0FDSjtRQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsa0NBQWtDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQsU0FBUyxPQUFPLENBQUMsQ0FBYTs7UUFDNUIsT0FBTztZQUNMLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxhQUFhLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBQSxDQUFDLENBQUMsS0FBSywwQ0FBRSxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ2xHLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztTQUNsRyxDQUFDO0lBQ0osQ0FBQztJQUVELE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzNCLENBQUM7QUFoREQsZ0NBZ0RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbGssIEluc3RhbmNlIH0gZnJvbSAnY2hhbGsnO1xuaW1wb3J0ICogYXMgYXJjaHkgZnJvbSAnYXJjaHknO1xuaW1wb3J0IHsgUGFyc2VyTm9kZSwgUGFyc2VyTm9kZVZhbHVlIH0gZnJvbSAnLi9QYXJzZXInO1xuXG5jb25zdCBoaWRlRGVmYXVsdCA9IFsncHVia2V5cycsICdzZXF1ZW5jZScsICdsb2NrdGltZScsICdzY3JpcHRTaWcnLCAnd2l0bmVzcyddO1xuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0U2F0KHY6IG51bWJlciB8IGJpZ2ludCk6IHN0cmluZyB7XG4gIHJldHVybiAoTnVtYmVyKHYpIC8gMWU4KS50b0ZpeGVkKDgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0VHJlZShcbiAgbjogUGFyc2VyTm9kZSxcbiAgeyBoaWRlID0gaGlkZURlZmF1bHQsIGNoYWxrID0gbmV3IEluc3RhbmNlKCkgfTogeyBoaWRlPzogc3RyaW5nW107IGNoYWxrPzogQ2hhbGsgfSA9IHt9XG4pOiBzdHJpbmcge1xuICBmdW5jdGlvbiBnZXRMYWJlbChcbiAgICBsYWJlbDogc3RyaW5nIHwgbnVtYmVyLFxuICAgIHY/OiB1bmtub3duLFxuICAgIHsgc2hvd1VuZGVmaW5lZCB9OiB7IHNob3dVbmRlZmluZWQ6IGJvb2xlYW4gfSA9IHsgc2hvd1VuZGVmaW5lZDogZmFsc2UgfVxuICApOiBzdHJpbmcge1xuICAgIGNvbnN0IGFyciA9IFtjaGFsay5ib2xkKGxhYmVsKV07XG4gICAgaWYgKHYgPT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKHNob3dVbmRlZmluZWQpIHtcbiAgICAgICAgYXJyLnB1c2goY2hhbGsuZGltKCd1bmRlZmluZWQnKSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGFyci5wdXNoKFN0cmluZyh2KSk7XG4gICAgfVxuICAgIHJldHVybiBhcnIuam9pbignOiAnKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGdldExhYmVsRnJvbVZhbHVlKHY6IFBhcnNlck5vZGVWYWx1ZSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgc3dpdGNoICh0eXBlb2Ygdikge1xuICAgICAgY2FzZSAndW5kZWZpbmVkJzpcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxuICAgICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgIGNhc2UgJ3N0cmluZyc6XG4gICAgICBjYXNlICdiaWdpbnQnOlxuICAgICAgICByZXR1cm4gU3RyaW5nKHYpO1xuICAgICAgY2FzZSAnb2JqZWN0JzpcbiAgICAgICAgaWYgKHYgPT09IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gU3RyaW5nKHYpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChCdWZmZXIuaXNCdWZmZXIodikpIHtcbiAgICAgICAgICByZXR1cm4gYCR7di50b1N0cmluZygnaGV4Jyl9ICR7Y2hhbGsuZGltKGAoJHt2Lmxlbmd0aH0gYnl0ZXMpYCl9YDtcbiAgICAgICAgfVxuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoYGNvdWxkIG5vdCBnZXQgbGFiZWwgZnJvbSB2YWx1ZSAke3R5cGVvZiB2fWApO1xuICB9XG5cbiAgZnVuY3Rpb24gdG9BcmNoeShuOiBQYXJzZXJOb2RlKTogYXJjaHkuRGF0YSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxhYmVsOiBnZXRMYWJlbChuLmxhYmVsLCBnZXRMYWJlbEZyb21WYWx1ZShuLnZhbHVlKSwgeyBzaG93VW5kZWZpbmVkOiAhQm9vbGVhbihuLm5vZGVzPy5sZW5ndGgpIH0pLFxuICAgICAgbm9kZXM6IG4ubm9kZXMgPyBuLm5vZGVzLmZsYXRNYXAoKGUpID0+IChoaWRlLmluY2x1ZGVzKGUubGFiZWwpID8gW10gOiBbdG9BcmNoeShlKV0pKSA6IHVuZGVmaW5lZCxcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIGFyY2h5KHRvQXJjaHkobikpO1xufVxuIl19
@@ -0,0 +1,11 @@
1
+ import * as utxolib from '@bitgo/utxo-lib';
2
+ export declare function generateAddress(argv: {
3
+ network?: utxolib.Network;
4
+ userKey: string;
5
+ backupKey: string;
6
+ bitgoKey: string;
7
+ chain?: number[];
8
+ limit: number;
9
+ showDerivationPath?: boolean;
10
+ }): Generator<string>;
11
+ //# sourceMappingURL=generateAddress.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateAddress.d.ts","sourceRoot":"","sources":["../../src/generateAddress.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAE3C,wBAAiB,eAAe,CAAC,IAAI,EAAE;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B,GAAG,SAAS,CAAC,MAAM,CAAC,CAuBpB"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateAddress = void 0;
4
+ const assert = require("assert");
5
+ const utxolib = require("@bitgo/utxo-lib");
6
+ function* generateAddress(argv) {
7
+ var _a, _b;
8
+ const xpubs = [argv.userKey, argv.backupKey, argv.bitgoKey].map((k) => utxolib.bip32.fromBase58(k));
9
+ assert(utxolib.bitgo.isTriple(xpubs));
10
+ const rootXpubs = new utxolib.bitgo.RootWalletKeys(xpubs);
11
+ const chains = (_a = argv.chain) !== null && _a !== void 0 ? _a : utxolib.bitgo.chainCodes.filter(
12
+ // these are rare and show an annoying warning in stderr
13
+ (c) => utxolib.bitgo.scriptTypeForChain(c) !== 'p2tr' && utxolib.bitgo.scriptTypeForChain(c) !== 'p2trMusig2');
14
+ for (let i = 0; i < argv.limit; i++) {
15
+ for (const chain of chains) {
16
+ assert(utxolib.bitgo.isChainCode(chain));
17
+ const scripts = utxolib.bitgo.getWalletOutputScripts(rootXpubs, chain, i);
18
+ const parts = [];
19
+ if (argv.showDerivationPath) {
20
+ // FIXME: can be different for other keys
21
+ parts.push(rootXpubs.getDerivationPath(rootXpubs.user, chain, i));
22
+ }
23
+ parts.push(utxolib.address.fromOutputScript(scripts.scriptPubKey, (_b = argv.network) !== null && _b !== void 0 ? _b : utxolib.networks.bitcoin));
24
+ yield parts.join('\t');
25
+ }
26
+ }
27
+ }
28
+ exports.generateAddress = generateAddress;
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGVBZGRyZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2dlbmVyYXRlQWRkcmVzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxpQ0FBaUM7QUFDakMsMkNBQTJDO0FBRTNDLFFBQWUsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxJQVFoQzs7SUFDQyxNQUFNLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BHLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3RDLE1BQU0sU0FBUyxHQUFHLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUQsTUFBTSxNQUFNLEdBQ1YsTUFBQSxJQUFJLENBQUMsS0FBSyxtQ0FDVixPQUFPLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNO0lBQzdCLHdEQUF3RDtJQUN4RCxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsS0FBSyxNQUFNLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsS0FBSyxZQUFZLENBQzlHLENBQUM7SUFDSixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUNuQyxLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQU0sRUFBRTtZQUMxQixNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUN6QyxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLHNCQUFzQixDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDMUUsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQ2pCLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFO2dCQUMzQix5Q0FBeUM7Z0JBQ3pDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDbkU7WUFDRCxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxNQUFBLElBQUksQ0FBQyxPQUFPLG1DQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUM3RyxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDeEI7S0FDRjtBQUNILENBQUM7QUEvQkQsMENBK0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby91dHhvLWxpYic7XG5cbmV4cG9ydCBmdW5jdGlvbiogZ2VuZXJhdGVBZGRyZXNzKGFyZ3Y6IHtcbiAgbmV0d29yaz86IHV0eG9saWIuTmV0d29yaztcbiAgdXNlcktleTogc3RyaW5nO1xuICBiYWNrdXBLZXk6IHN0cmluZztcbiAgYml0Z29LZXk6IHN0cmluZztcbiAgY2hhaW4/OiBudW1iZXJbXTtcbiAgbGltaXQ6IG51bWJlcjtcbiAgc2hvd0Rlcml2YXRpb25QYXRoPzogYm9vbGVhbjtcbn0pOiBHZW5lcmF0b3I8c3RyaW5nPiB7XG4gIGNvbnN0IHhwdWJzID0gW2FyZ3YudXNlcktleSwgYXJndi5iYWNrdXBLZXksIGFyZ3YuYml0Z29LZXldLm1hcCgoaykgPT4gdXR4b2xpYi5iaXAzMi5mcm9tQmFzZTU4KGspKTtcbiAgYXNzZXJ0KHV0eG9saWIuYml0Z28uaXNUcmlwbGUoeHB1YnMpKTtcbiAgY29uc3Qgcm9vdFhwdWJzID0gbmV3IHV0eG9saWIuYml0Z28uUm9vdFdhbGxldEtleXMoeHB1YnMpO1xuICBjb25zdCBjaGFpbnMgPVxuICAgIGFyZ3YuY2hhaW4gPz9cbiAgICB1dHhvbGliLmJpdGdvLmNoYWluQ29kZXMuZmlsdGVyKFxuICAgICAgLy8gdGhlc2UgYXJlIHJhcmUgYW5kIHNob3cgYW4gYW5ub3lpbmcgd2FybmluZyBpbiBzdGRlcnJcbiAgICAgIChjKSA9PiB1dHhvbGliLmJpdGdvLnNjcmlwdFR5cGVGb3JDaGFpbihjKSAhPT0gJ3AydHInICYmIHV0eG9saWIuYml0Z28uc2NyaXB0VHlwZUZvckNoYWluKGMpICE9PSAncDJ0ck11c2lnMidcbiAgICApO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGFyZ3YubGltaXQ7IGkrKykge1xuICAgIGZvciAoY29uc3QgY2hhaW4gb2YgY2hhaW5zKSB7XG4gICAgICBhc3NlcnQodXR4b2xpYi5iaXRnby5pc0NoYWluQ29kZShjaGFpbikpO1xuICAgICAgY29uc3Qgc2NyaXB0cyA9IHV0eG9saWIuYml0Z28uZ2V0V2FsbGV0T3V0cHV0U2NyaXB0cyhyb290WHB1YnMsIGNoYWluLCBpKTtcbiAgICAgIGNvbnN0IHBhcnRzID0gW107XG4gICAgICBpZiAoYXJndi5zaG93RGVyaXZhdGlvblBhdGgpIHtcbiAgICAgICAgLy8gRklYTUU6IGNhbiBiZSBkaWZmZXJlbnQgZm9yIG90aGVyIGtleXNcbiAgICAgICAgcGFydHMucHVzaChyb290WHB1YnMuZ2V0RGVyaXZhdGlvblBhdGgocm9vdFhwdWJzLnVzZXIsIGNoYWluLCBpKSk7XG4gICAgICB9XG4gICAgICBwYXJ0cy5wdXNoKHV0eG9saWIuYWRkcmVzcy5mcm9tT3V0cHV0U2NyaXB0KHNjcmlwdHMuc2NyaXB0UHViS2V5LCBhcmd2Lm5ldHdvcmsgPz8gdXR4b2xpYi5uZXR3b3Jrcy5iaXRjb2luKSk7XG4gICAgICB5aWVsZCBwYXJ0cy5qb2luKCdcXHQnKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,5 @@
1
+ /// <reference types="node" />
2
+ declare type Format = 'hex' | 'base64';
3
+ export declare function stringToBuffer(data: string, format: Format | Format[]): Buffer;
4
+ export {};
5
+ //# sourceMappingURL=parseString.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseString.d.ts","sourceRoot":"","sources":["../../src/parseString.ts"],"names":[],"mappings":";AAAA,aAAK,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;AAC/B,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,CAyB9E"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.stringToBuffer = void 0;
4
+ function stringToBuffer(data, format) {
5
+ if (typeof format !== 'string') {
6
+ for (const f of format) {
7
+ try {
8
+ return stringToBuffer(data, f);
9
+ }
10
+ catch (err) {
11
+ // ignore, try next
12
+ }
13
+ }
14
+ throw new Error(`could not parse data, formats: ${format}`);
15
+ }
16
+ // strip all whitespace
17
+ data = data.replace(/\s*/g, '');
18
+ if (format === 'hex') {
19
+ data = data.toLowerCase();
20
+ }
21
+ const buf = Buffer.from(data, format);
22
+ // make sure there were no decoding errors
23
+ if (buf.toString(format) !== data) {
24
+ throw new Error(`invalid ${format}`);
25
+ }
26
+ return buf;
27
+ }
28
+ exports.stringToBuffer = stringToBuffer;
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VTdHJpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcGFyc2VTdHJpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsU0FBZ0IsY0FBYyxDQUFDLElBQVksRUFBRSxNQUF5QjtJQUNwRSxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFBRTtRQUM5QixLQUFLLE1BQU0sQ0FBQyxJQUFJLE1BQU0sRUFBRTtZQUN0QixJQUFJO2dCQUNGLE9BQU8sY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQzthQUNoQztZQUFDLE9BQU8sR0FBRyxFQUFFO2dCQUNaLG1CQUFtQjthQUNwQjtTQUNGO1FBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQ0FBa0MsTUFBTSxFQUFFLENBQUMsQ0FBQztLQUM3RDtJQUVELHVCQUF1QjtJQUN2QixJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFaEMsSUFBSSxNQUFNLEtBQUssS0FBSyxFQUFFO1FBQ3BCLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7S0FDM0I7SUFFRCxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN0QywwQ0FBMEM7SUFDMUMsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksRUFBRTtRQUNqQyxNQUFNLElBQUksS0FBSyxDQUFDLFdBQVcsTUFBTSxFQUFFLENBQUMsQ0FBQztLQUN0QztJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQXpCRCx3Q0F5QkMiLCJzb3VyY2VzQ29udGVudCI6WyJ0eXBlIEZvcm1hdCA9ICdoZXgnIHwgJ2Jhc2U2NCc7XG5leHBvcnQgZnVuY3Rpb24gc3RyaW5nVG9CdWZmZXIoZGF0YTogc3RyaW5nLCBmb3JtYXQ6IEZvcm1hdCB8IEZvcm1hdFtdKTogQnVmZmVyIHtcbiAgaWYgKHR5cGVvZiBmb3JtYXQgIT09ICdzdHJpbmcnKSB7XG4gICAgZm9yIChjb25zdCBmIG9mIGZvcm1hdCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIHN0cmluZ1RvQnVmZmVyKGRhdGEsIGYpO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIC8vIGlnbm9yZSwgdHJ5IG5leHRcbiAgICAgIH1cbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKGBjb3VsZCBub3QgcGFyc2UgZGF0YSwgZm9ybWF0czogJHtmb3JtYXR9YCk7XG4gIH1cblxuICAvLyBzdHJpcCBhbGwgd2hpdGVzcGFjZVxuICBkYXRhID0gZGF0YS5yZXBsYWNlKC9cXHMqL2csICcnKTtcblxuICBpZiAoZm9ybWF0ID09PSAnaGV4Jykge1xuICAgIGRhdGEgPSBkYXRhLnRvTG93ZXJDYXNlKCk7XG4gIH1cblxuICBjb25zdCBidWYgPSBCdWZmZXIuZnJvbShkYXRhLCBmb3JtYXQpO1xuICAvLyBtYWtlIHN1cmUgdGhlcmUgd2VyZSBubyBkZWNvZGluZyBlcnJvcnNcbiAgaWYgKGJ1Zi50b1N0cmluZyhmb3JtYXQpICE9PSBkYXRhKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkICR7Zm9ybWF0fWApO1xuICB9XG4gIHJldHVybiBidWY7XG59XG4iXX0=
@@ -0,0 +1,5 @@
1
+ import { Parser, ParserNode } from './Parser';
2
+ export declare function parseUnknown(p: Parser, label: string | number, obj: unknown, { omit }?: {
3
+ omit?: string[];
4
+ }): ParserNode;
5
+ //# sourceMappingURL=parseUnknown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseUnknown.d.ts","sourceRoot":"","sources":["../../src/parseUnknown.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,MAAM,EAAE,UAAU,EAAmB,MAAM,UAAU,CAAC;AAgBlF,wBAAgB,YAAY,CAC1B,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,GAAG,EAAE,OAAO,EACZ,EAAE,IAAS,EAAE,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;CAAO,GACtC,UAAU,CAwCZ"}