@bitgo-beta/utxo-bin 2.8.3-beta.31 → 2.8.3-beta.310

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 (73) hide show
  1. package/README.md +63 -4
  2. package/dist/bin/index.js +10 -2
  3. package/dist/src/AddressParser.d.ts +1 -0
  4. package/dist/src/AddressParser.d.ts.map +1 -1
  5. package/dist/src/AddressParser.js +7 -1
  6. package/dist/src/InputParser.d.ts +44 -0
  7. package/dist/src/InputParser.d.ts.map +1 -0
  8. package/dist/src/InputParser.js +239 -0
  9. package/dist/src/OutputParser.d.ts +25 -0
  10. package/dist/src/OutputParser.d.ts.map +1 -0
  11. package/dist/src/OutputParser.js +65 -0
  12. package/dist/src/Parser.d.ts +7 -1
  13. package/dist/src/Parser.d.ts.map +1 -1
  14. package/dist/src/Parser.js +29 -2
  15. package/dist/src/ParserTx.d.ts +28 -0
  16. package/dist/src/ParserTx.d.ts.map +1 -0
  17. package/dist/src/ParserTx.js +94 -0
  18. package/dist/src/ScriptParser.d.ts +21 -0
  19. package/dist/src/ScriptParser.d.ts.map +1 -0
  20. package/dist/src/ScriptParser.js +77 -0
  21. package/dist/src/TxParser.d.ts +10 -6
  22. package/dist/src/TxParser.d.ts.map +1 -1
  23. package/dist/src/TxParser.js +25 -25
  24. package/dist/src/bip32.d.ts +5 -0
  25. package/dist/src/bip32.d.ts.map +1 -0
  26. package/dist/src/bip32.js +23 -0
  27. package/dist/src/commands.d.ts +51 -1
  28. package/dist/src/commands.d.ts.map +1 -1
  29. package/dist/src/commands.js +162 -23
  30. package/dist/src/fetch.d.ts +4 -3
  31. package/dist/src/fetch.d.ts.map +1 -1
  32. package/dist/src/fetch.js +15 -3
  33. package/dist/src/format.d.ts +1 -1
  34. package/dist/src/format.d.ts.map +1 -1
  35. package/dist/src/format.js +17 -7
  36. package/dist/src/generateAddress.d.ts +35 -0
  37. package/dist/src/generateAddress.d.ts.map +1 -0
  38. package/dist/src/generateAddress.js +108 -0
  39. package/dist/src/parseString.d.ts +5 -0
  40. package/dist/src/parseString.d.ts.map +1 -0
  41. package/dist/src/parseString.js +29 -0
  42. package/dist/src/parseUnknown.d.ts +5 -0
  43. package/dist/src/parseUnknown.d.ts.map +1 -0
  44. package/dist/src/parseUnknown.js +50 -0
  45. package/dist/test/bip32.d.ts +2 -0
  46. package/dist/test/bip32.d.ts.map +1 -0
  47. package/dist/test/bip32.js +21 -0
  48. package/dist/test/bip32.util.d.ts +6 -0
  49. package/dist/test/bip32.util.d.ts.map +1 -0
  50. package/dist/test/bip32.util.js +14 -0
  51. package/dist/test/fixtures.d.ts +24 -0
  52. package/dist/test/fixtures.d.ts.map +1 -0
  53. package/dist/test/fixtures.js +95 -0
  54. package/dist/test/generateAddress.d.ts +2 -0
  55. package/dist/test/generateAddress.d.ts.map +1 -0
  56. package/dist/test/generateAddress.js +29 -0
  57. package/dist/test/parseAddress.d.ts +6 -0
  58. package/dist/test/parseAddress.d.ts.map +1 -0
  59. package/dist/test/parseAddress.js +80 -0
  60. package/dist/test/parseScript.d.ts +2 -0
  61. package/dist/test/parseScript.d.ts.map +1 -0
  62. package/dist/test/parseScript.js +38 -0
  63. package/dist/test/parseTransaction.d.ts +2 -0
  64. package/dist/test/parseTransaction.d.ts.map +1 -0
  65. package/dist/test/parseTransaction.js +66 -0
  66. package/dist/test/stringToBuffer.d.ts +2 -0
  67. package/dist/test/stringToBuffer.d.ts.map +1 -0
  68. package/dist/test/stringToBuffer.js +16 -0
  69. package/dist/tsconfig.tsbuildinfo +1 -4689
  70. package/package.json +8 -7
  71. package/dist/src/InputOutputParser.d.ts +0 -35
  72. package/dist/src/InputOutputParser.d.ts.map +0 -1
  73. package/dist/src/InputOutputParser.js +0 -196
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OutputParser = void 0;
4
+ const utxolib = require("@bitgo-beta/utxo-lib");
5
+ const Parser_1 = require("./Parser");
6
+ const AddressParser_1 = require("./AddressParser");
7
+ const format_1 = require("./format");
8
+ class OutputParser extends Parser_1.Parser {
9
+ constructor(network, txid, outputIndex, output, chainInfo, params) {
10
+ super(params);
11
+ this.network = network;
12
+ this.txid = txid;
13
+ this.outputIndex = outputIndex;
14
+ this.output = output;
15
+ this.chainInfo = chainInfo;
16
+ this.params = params;
17
+ }
18
+ parsePrevOutputSpend(params) {
19
+ if (!this.chainInfo.prevOutputSpends || !this.chainInfo.prevOutputSpends[this.outputIndex]) {
20
+ // no spend data available
21
+ return [];
22
+ }
23
+ const spend = this.chainInfo.prevOutputSpends[this.outputIndex];
24
+ if (spend.txid === undefined) {
25
+ return [this.node('spent', false)];
26
+ }
27
+ if (spend.txid === this.txid) {
28
+ // if input is spent by this transaction we don't display it
29
+ return [];
30
+ }
31
+ return [this.node('spent', `${spend.txid}:${spend.vin}`, params.conflict ? [this.node('conflict', true)] : [])];
32
+ }
33
+ parseOutputSpend() {
34
+ if (!this.chainInfo.outputSpends || !this.chainInfo.outputSpends[this.outputIndex]) {
35
+ // no spend data available
36
+ return [];
37
+ }
38
+ const spend = this.chainInfo.outputSpends[this.outputIndex];
39
+ if (spend.txid === undefined) {
40
+ return [this.node('spent', false)];
41
+ }
42
+ else {
43
+ return [this.node('spent', `${spend.txid}:${spend.vin}`)];
44
+ }
45
+ }
46
+ parseOutput() {
47
+ let address;
48
+ try {
49
+ address = utxolib.address.fromOutputScript(this.output.script, this.network);
50
+ }
51
+ catch (e) {
52
+ // ignore
53
+ }
54
+ const addressParser = new AddressParser_1.AddressParser({ network: this.network, all: false, convert: false });
55
+ return this.node(this.outputIndex, address !== null && address !== void 0 ? address : '(no address)', [
56
+ this.node(`value`, (0, format_1.formatSat)(this.output.value)),
57
+ ...(this.params.parseOutputScript || address === undefined
58
+ ? addressParser.parseOutputScript(this.output.script)
59
+ : []),
60
+ ...this.parseOutputSpend(),
61
+ ]);
62
+ }
63
+ }
64
+ exports.OutputParser = OutputParser;
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3V0cHV0UGFyc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL091dHB1dFBhcnNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxnREFBZ0Q7QUFFaEQscUNBQThDO0FBQzlDLG1EQUFnRDtBQUNoRCxxQ0FBcUM7QUFHckMsTUFBYSxZQUFhLFNBQVEsZUFBTTtJQUN0QyxZQUNVLE9BQWdCLEVBQ2hCLElBQVksRUFDWixXQUFtQixFQUNuQixNQUF5QyxFQUN6QyxTQUFvQixFQUNwQixNQUdQO1FBRUQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBVk4sWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNoQixTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ1osZ0JBQVcsR0FBWCxXQUFXLENBQVE7UUFDbkIsV0FBTSxHQUFOLE1BQU0sQ0FBbUM7UUFDekMsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNwQixXQUFNLEdBQU4sTUFBTSxDQUdiO0lBR0gsQ0FBQztJQUVELG9CQUFvQixDQUFDLE1BQTZCO1FBQ2hELElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDMUYsMEJBQTBCO1lBQzFCLE9BQU8sRUFBRSxDQUFDO1NBQ1g7UUFDRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNoRSxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFO1lBQzVCLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1NBQ3BDO1FBQ0QsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDNUIsNERBQTREO1lBQzVELE9BQU8sRUFBRSxDQUFDO1NBQ1g7UUFDRCxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxLQUFLLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbEgsQ0FBQztJQUVELGdCQUFnQjtRQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUNsRiwwQkFBMEI7WUFDMUIsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUNELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM1RCxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFO1lBQzVCLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1NBQ3BDO2FBQU07WUFDTCxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxLQUFLLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDM0Q7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksT0FBTyxDQUFDO1FBQ1osSUFBSTtZQUNGLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUM5RTtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsU0FBUztTQUNWO1FBRUQsTUFBTSxhQUFhLEdBQUcsSUFBSSw2QkFBYSxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUUvRixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxPQUFPLGFBQVAsT0FBTyxjQUFQLE9BQU8sR0FBSSxjQUFjLEVBQUU7WUFDNUQsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBQSxrQkFBUyxFQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDaEQsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLElBQUksT0FBTyxLQUFLLFNBQVM7Z0JBQ3hELENBQUMsQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7Z0JBQ3JELENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDUCxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtTQUMzQixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUE5REQsb0NBOERDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5pbXBvcnQgeyBDaGFpbkluZm8gfSBmcm9tICcuL1R4UGFyc2VyJztcbmltcG9ydCB7IFBhcnNlciwgUGFyc2VyTm9kZSB9IGZyb20gJy4vUGFyc2VyJztcbmltcG9ydCB7IEFkZHJlc3NQYXJzZXIgfSBmcm9tICcuL0FkZHJlc3NQYXJzZXInO1xuaW1wb3J0IHsgZm9ybWF0U2F0IH0gZnJvbSAnLi9mb3JtYXQnO1xuaW1wb3J0IHsgTmV0d29yayB9IGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcblxuZXhwb3J0IGNsYXNzIE91dHB1dFBhcnNlciBleHRlbmRzIFBhcnNlciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbmV0d29yazogTmV0d29yayxcbiAgICBwcml2YXRlIHR4aWQ6IHN0cmluZyxcbiAgICBwcml2YXRlIG91dHB1dEluZGV4OiBudW1iZXIsXG4gICAgcHJpdmF0ZSBvdXRwdXQ6IHsgc2NyaXB0OiBCdWZmZXI7IHZhbHVlOiBiaWdpbnQgfSxcbiAgICBwcml2YXRlIGNoYWluSW5mbzogQ2hhaW5JbmZvLFxuICAgIHByaXZhdGUgcGFyYW1zOiB7XG4gICAgICBwYXJzZU91dHB1dFNjcmlwdDogYm9vbGVhbjtcbiAgICAgIHBhcnNlRXJyb3I/OiAndGhyb3cnIHwgJ2NvbnRpbnVlJztcbiAgICB9XG4gICkge1xuICAgIHN1cGVyKHBhcmFtcyk7XG4gIH1cblxuICBwYXJzZVByZXZPdXRwdXRTcGVuZChwYXJhbXM6IHsgY29uZmxpY3Q6IGJvb2xlYW4gfSk6IFBhcnNlck5vZGVbXSB7XG4gICAgaWYgKCF0aGlzLmNoYWluSW5mby5wcmV2T3V0cHV0U3BlbmRzIHx8ICF0aGlzLmNoYWluSW5mby5wcmV2T3V0cHV0U3BlbmRzW3RoaXMub3V0cHV0SW5kZXhdKSB7XG4gICAgICAvLyBubyBzcGVuZCBkYXRhIGF2YWlsYWJsZVxuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgICBjb25zdCBzcGVuZCA9IHRoaXMuY2hhaW5JbmZvLnByZXZPdXRwdXRTcGVuZHNbdGhpcy5vdXRwdXRJbmRleF07XG4gICAgaWYgKHNwZW5kLnR4aWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIFt0aGlzLm5vZGUoJ3NwZW50JywgZmFsc2UpXTtcbiAgICB9XG4gICAgaWYgKHNwZW5kLnR4aWQgPT09IHRoaXMudHhpZCkge1xuICAgICAgLy8gaWYgaW5wdXQgaXMgc3BlbnQgYnkgdGhpcyB0cmFuc2FjdGlvbiB3ZSBkb24ndCBkaXNwbGF5IGl0XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIHJldHVybiBbdGhpcy5ub2RlKCdzcGVudCcsIGAke3NwZW5kLnR4aWR9OiR7c3BlbmQudmlufWAsIHBhcmFtcy5jb25mbGljdCA/IFt0aGlzLm5vZGUoJ2NvbmZsaWN0JywgdHJ1ZSldIDogW10pXTtcbiAgfVxuXG4gIHBhcnNlT3V0cHV0U3BlbmQoKTogUGFyc2VyTm9kZVtdIHtcbiAgICBpZiAoIXRoaXMuY2hhaW5JbmZvLm91dHB1dFNwZW5kcyB8fCAhdGhpcy5jaGFpbkluZm8ub3V0cHV0U3BlbmRzW3RoaXMub3V0cHV0SW5kZXhdKSB7XG4gICAgICAvLyBubyBzcGVuZCBkYXRhIGF2YWlsYWJsZVxuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgICBjb25zdCBzcGVuZCA9IHRoaXMuY2hhaW5JbmZvLm91dHB1dFNwZW5kc1t0aGlzLm91dHB1dEluZGV4XTtcbiAgICBpZiAoc3BlbmQudHhpZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gW3RoaXMubm9kZSgnc3BlbnQnLCBmYWxzZSldO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gW3RoaXMubm9kZSgnc3BlbnQnLCBgJHtzcGVuZC50eGlkfToke3NwZW5kLnZpbn1gKV07XG4gICAgfVxuICB9XG5cbiAgcGFyc2VPdXRwdXQoKTogUGFyc2VyTm9kZSB7XG4gICAgbGV0IGFkZHJlc3M7XG4gICAgdHJ5IHtcbiAgICAgIGFkZHJlc3MgPSB1dHhvbGliLmFkZHJlc3MuZnJvbU91dHB1dFNjcmlwdCh0aGlzLm91dHB1dC5zY3JpcHQsIHRoaXMubmV0d29yayk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgLy8gaWdub3JlXG4gICAgfVxuXG4gICAgY29uc3QgYWRkcmVzc1BhcnNlciA9IG5ldyBBZGRyZXNzUGFyc2VyKHsgbmV0d29yazogdGhpcy5uZXR3b3JrLCBhbGw6IGZhbHNlLCBjb252ZXJ0OiBmYWxzZSB9KTtcblxuICAgIHJldHVybiB0aGlzLm5vZGUodGhpcy5vdXRwdXRJbmRleCwgYWRkcmVzcyA/PyAnKG5vIGFkZHJlc3MpJywgW1xuICAgICAgdGhpcy5ub2RlKGB2YWx1ZWAsIGZvcm1hdFNhdCh0aGlzLm91dHB1dC52YWx1ZSkpLFxuICAgICAgLi4uKHRoaXMucGFyYW1zLnBhcnNlT3V0cHV0U2NyaXB0IHx8IGFkZHJlc3MgPT09IHVuZGVmaW5lZFxuICAgICAgICA/IGFkZHJlc3NQYXJzZXIucGFyc2VPdXRwdXRTY3JpcHQodGhpcy5vdXRwdXQuc2NyaXB0KVxuICAgICAgICA6IFtdKSxcbiAgICAgIC4uLnRoaXMucGFyc2VPdXRwdXRTcGVuZCgpLFxuICAgIF0pO1xuICB9XG59XG4iXX0=
@@ -1,5 +1,6 @@
1
1
  /// <reference types="node" />
2
- export declare type ParserNodeValue = number | string | Buffer | boolean | undefined | null;
2
+ export declare type ParserNodeValue = number | bigint | string | Buffer | Uint8Array | boolean | undefined | null;
3
+ export declare function isParserNodeValue(v: unknown): v is ParserNodeValue;
3
4
  export declare type ParserNode = {
4
5
  type: 'node';
5
6
  label: string;
@@ -7,6 +8,11 @@ export declare type ParserNode = {
7
8
  nodes: ParserNode[] | undefined;
8
9
  };
9
10
  export declare class Parser {
11
+ parseError: 'throw' | 'continue';
12
+ constructor(params?: {
13
+ parseError?: 'throw' | 'continue';
14
+ });
10
15
  node(label: string | number, value: ParserNodeValue, nodes?: ParserNode[]): ParserNode;
16
+ handleParseError(e: unknown): ParserNode;
11
17
  }
12
18
  //# sourceMappingURL=Parser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Parser.d.ts","sourceRoot":"","sources":["../../src/Parser.ts"],"names":[],"mappings":";AAAA,oBAAY,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;AAEpF,oBAAY,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,eAAe,GAAG,SAAS,CAAC;IACnC,KAAK,EAAE,UAAU,EAAE,GAAG,SAAS,CAAC;CACjC,CAAC;AAEF,qBAAa,MAAM;IACjB,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,GAAE,UAAU,EAAO,GAAG,UAAU;CAQ3F"}
1
+ {"version":3,"file":"Parser.d.ts","sourceRoot":"","sources":["../../src/Parser.ts"],"names":[],"mappings":";AAAA,oBAAY,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;AAE1G,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,eAAe,CAYlE;AAED,oBAAY,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,eAAe,GAAG,SAAS,CAAC;IACnC,KAAK,EAAE,UAAU,EAAE,GAAG,SAAS,CAAC;CACjC,CAAC;AAEF,qBAAa,MAAM;IACjB,UAAU,EAAE,OAAO,GAAG,UAAU,CAAC;gBACrB,MAAM,GAAE;QAAE,UAAU,CAAC,EAAE,OAAO,GAAG,UAAU,CAAA;KAAO;IAG9D,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,GAAE,UAAU,EAAO,GAAG,UAAU;IAY1F,gBAAgB,CAAC,CAAC,EAAE,OAAO,GAAG,UAAU;CAMzC"}
@@ -1,8 +1,29 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Parser = void 0;
3
+ exports.Parser = exports.isParserNodeValue = void 0;
4
+ function isParserNodeValue(v) {
5
+ switch (typeof v) {
6
+ case 'undefined':
7
+ case 'boolean':
8
+ case 'number':
9
+ case 'string':
10
+ case 'bigint':
11
+ return true;
12
+ case 'object':
13
+ return v === null || Buffer.isBuffer(v) || v instanceof Uint8Array;
14
+ }
15
+ return false;
16
+ }
17
+ exports.isParserNodeValue = isParserNodeValue;
4
18
  class Parser {
19
+ constructor(params = {}) {
20
+ var _a;
21
+ this.parseError = (_a = params.parseError) !== null && _a !== void 0 ? _a : 'continue';
22
+ }
5
23
  node(label, value, nodes = []) {
24
+ if (!isParserNodeValue(value)) {
25
+ throw new Error(`invalid node value ${typeof value}`);
26
+ }
6
27
  return {
7
28
  type: 'node',
8
29
  label: String(label),
@@ -10,6 +31,12 @@ class Parser {
10
31
  nodes,
11
32
  };
12
33
  }
34
+ handleParseError(e) {
35
+ if (this.parseError === 'throw') {
36
+ throw e;
37
+ }
38
+ return this.node('error', String(e));
39
+ }
13
40
  }
14
41
  exports.Parser = Parser;
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFyc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1BhcnNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFTQSxNQUFhLE1BQU07SUFDakIsSUFBSSxDQUFDLEtBQXNCLEVBQUUsS0FBc0IsRUFBRSxRQUFzQixFQUFFO1FBQzNFLE9BQU87WUFDTCxJQUFJLEVBQUUsTUFBTTtZQUNaLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDO1lBQ3BCLEtBQUs7WUFDTCxLQUFLO1NBQ04sQ0FBQztJQUNKLENBQUM7Q0FDRjtBQVRELHdCQVNDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgUGFyc2VyTm9kZVZhbHVlID0gbnVtYmVyIHwgc3RyaW5nIHwgQnVmZmVyIHwgYm9vbGVhbiB8IHVuZGVmaW5lZCB8IG51bGw7XG5cbmV4cG9ydCB0eXBlIFBhcnNlck5vZGUgPSB7XG4gIHR5cGU6ICdub2RlJztcbiAgbGFiZWw6IHN0cmluZztcbiAgdmFsdWU6IFBhcnNlck5vZGVWYWx1ZSB8IHVuZGVmaW5lZDtcbiAgbm9kZXM6IFBhcnNlck5vZGVbXSB8IHVuZGVmaW5lZDtcbn07XG5cbmV4cG9ydCBjbGFzcyBQYXJzZXIge1xuICBub2RlKGxhYmVsOiBzdHJpbmcgfCBudW1iZXIsIHZhbHVlOiBQYXJzZXJOb2RlVmFsdWUsIG5vZGVzOiBQYXJzZXJOb2RlW10gPSBbXSk6IFBhcnNlck5vZGUge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnbm9kZScsXG4gICAgICBsYWJlbDogU3RyaW5nKGxhYmVsKSxcbiAgICAgIHZhbHVlLFxuICAgICAgbm9kZXMsXG4gICAgfTtcbiAgfVxufVxuIl19
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFyc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1BhcnNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxTQUFnQixpQkFBaUIsQ0FBQyxDQUFVO0lBQzFDLFFBQVEsT0FBTyxDQUFDLEVBQUU7UUFDaEIsS0FBSyxXQUFXLENBQUM7UUFDakIsS0FBSyxTQUFTLENBQUM7UUFDZixLQUFLLFFBQVEsQ0FBQztRQUNkLEtBQUssUUFBUSxDQUFDO1FBQ2QsS0FBSyxRQUFRO1lBQ1gsT0FBTyxJQUFJLENBQUM7UUFDZCxLQUFLLFFBQVE7WUFDWCxPQUFPLENBQUMsS0FBSyxJQUFJLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksVUFBVSxDQUFDO0tBQ3RFO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBWkQsOENBWUM7QUFTRCxNQUFhLE1BQU07SUFFakIsWUFBWSxTQUFnRCxFQUFFOztRQUM1RCxJQUFJLENBQUMsVUFBVSxHQUFHLE1BQUEsTUFBTSxDQUFDLFVBQVUsbUNBQUksVUFBVSxDQUFDO0lBQ3BELENBQUM7SUFDRCxJQUFJLENBQUMsS0FBc0IsRUFBRSxLQUFzQixFQUFFLFFBQXNCLEVBQUU7UUFDM0UsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzdCLE1BQU0sSUFBSSxLQUFLLENBQUMsc0JBQXNCLE9BQU8sS0FBSyxFQUFFLENBQUMsQ0FBQztTQUN2RDtRQUNELE9BQU87WUFDTCxJQUFJLEVBQUUsTUFBTTtZQUNaLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDO1lBQ3BCLEtBQUs7WUFDTCxLQUFLO1NBQ04sQ0FBQztJQUNKLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxDQUFVO1FBQ3pCLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxPQUFPLEVBQUU7WUFDL0IsTUFBTSxDQUFDLENBQUM7U0FDVDtRQUNELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkMsQ0FBQztDQUNGO0FBdkJELHdCQXVCQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIFBhcnNlck5vZGVWYWx1ZSA9IG51bWJlciB8IGJpZ2ludCB8IHN0cmluZyB8IEJ1ZmZlciB8IFVpbnQ4QXJyYXkgfCBib29sZWFuIHwgdW5kZWZpbmVkIHwgbnVsbDtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzUGFyc2VyTm9kZVZhbHVlKHY6IHVua25vd24pOiB2IGlzIFBhcnNlck5vZGVWYWx1ZSB7XG4gIHN3aXRjaCAodHlwZW9mIHYpIHtcbiAgICBjYXNlICd1bmRlZmluZWQnOlxuICAgIGNhc2UgJ2Jvb2xlYW4nOlxuICAgIGNhc2UgJ251bWJlcic6XG4gICAgY2FzZSAnc3RyaW5nJzpcbiAgICBjYXNlICdiaWdpbnQnOlxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgY2FzZSAnb2JqZWN0JzpcbiAgICAgIHJldHVybiB2ID09PSBudWxsIHx8IEJ1ZmZlci5pc0J1ZmZlcih2KSB8fCB2IGluc3RhbmNlb2YgVWludDhBcnJheTtcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5cbmV4cG9ydCB0eXBlIFBhcnNlck5vZGUgPSB7XG4gIHR5cGU6ICdub2RlJztcbiAgbGFiZWw6IHN0cmluZztcbiAgdmFsdWU6IFBhcnNlck5vZGVWYWx1ZSB8IHVuZGVmaW5lZDtcbiAgbm9kZXM6IFBhcnNlck5vZGVbXSB8IHVuZGVmaW5lZDtcbn07XG5cbmV4cG9ydCBjbGFzcyBQYXJzZXIge1xuICBwYXJzZUVycm9yOiAndGhyb3cnIHwgJ2NvbnRpbnVlJztcbiAgY29uc3RydWN0b3IocGFyYW1zOiB7IHBhcnNlRXJyb3I/OiAndGhyb3cnIHwgJ2NvbnRpbnVlJyB9ID0ge30pIHtcbiAgICB0aGlzLnBhcnNlRXJyb3IgPSBwYXJhbXMucGFyc2VFcnJvciA/PyAnY29udGludWUnO1xuICB9XG4gIG5vZGUobGFiZWw6IHN0cmluZyB8IG51bWJlciwgdmFsdWU6IFBhcnNlck5vZGVWYWx1ZSwgbm9kZXM6IFBhcnNlck5vZGVbXSA9IFtdKTogUGFyc2VyTm9kZSB7XG4gICAgaWYgKCFpc1BhcnNlck5vZGVWYWx1ZSh2YWx1ZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBub2RlIHZhbHVlICR7dHlwZW9mIHZhbHVlfWApO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ25vZGUnLFxuICAgICAgbGFiZWw6IFN0cmluZyhsYWJlbCksXG4gICAgICB2YWx1ZSxcbiAgICAgIG5vZGVzLFxuICAgIH07XG4gIH1cblxuICBoYW5kbGVQYXJzZUVycm9yKGU6IHVua25vd24pOiBQYXJzZXJOb2RlIHtcbiAgICBpZiAodGhpcy5wYXJzZUVycm9yID09PSAndGhyb3cnKSB7XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5ub2RlKCdlcnJvcicsIFN0cmluZyhlKSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,28 @@
1
+ /// <reference types="node" />
2
+ import * as utxolib from '@bitgo-beta/utxo-lib';
3
+ export declare type ParserTx = utxolib.bitgo.UtxoTransaction<bigint> | utxolib.bitgo.UtxoPsbt;
4
+ export declare type ParserTxInput = utxolib.TxInput | utxolib.PsbtTxInput;
5
+ export declare type ParserTxOutput = utxolib.TxOutput<bigint> | utxolib.PsbtTxOutput;
6
+ export declare function getPrevOut(prevOutput: utxolib.bitgo.PsbtInput, prevOutpoint: utxolib.PsbtTxInput | number, network: utxolib.Network): {
7
+ value: bigint;
8
+ script: Buffer;
9
+ } | undefined;
10
+ export declare function getParserTxProperties(tx: ParserTx, prevOutputs: utxolib.TxOutput<bigint>[] | undefined): {
11
+ format: 'network' | 'legacy' | 'psbt';
12
+ complete: boolean;
13
+ id: string;
14
+ weight: number;
15
+ inputs: ParserTxInput[];
16
+ outputs: ParserTxOutput[];
17
+ outputSum: bigint;
18
+ inputSum: bigint | undefined;
19
+ hasWitnesses: boolean;
20
+ };
21
+ export declare function getParserTxInputProperties(input: ParserTxInput, prevOut?: utxolib.bitgo.PsbtInput): {
22
+ txid: string;
23
+ vout: number;
24
+ sequence?: number;
25
+ script?: Buffer;
26
+ witness?: Buffer[];
27
+ };
28
+ //# sourceMappingURL=ParserTx.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ParserTx.d.ts","sourceRoot":"","sources":["../../src/ParserTx.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAEhD,oBAAY,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;AACtF,oBAAY,aAAa,GACrB,OAAO,CAAC,OAAO,GACf,OAAO,CAAC,WAAW,CAAuD;AAC9E,oBAAY,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;AAE7E,wBAAgB,UAAU,CACxB,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,SAAS,EACnC,YAAY,EAAE,OAAO,CAAC,WAAW,GAAG,MAAM,EAC1C,OAAO,EAAE,OAAO,CAAC,OAAO,GAEtB;IACE,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB,GACD,SAAS,CAWZ;AAMD,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,QAAQ,EACZ,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,SAAS,GAClD;IACD,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;IACtC,QAAQ,EAAE,OAAO,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,YAAY,EAAE,OAAO,CAAC;CACvB,CAwDA;AACD,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,aAAa,EACpB,OAAO,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,SAAS,GAChC;IACD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB,CAqBA"}
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getParserTxInputProperties = exports.getParserTxProperties = exports.getPrevOut = void 0;
4
+ const utxolib = require("@bitgo-beta/utxo-lib");
5
+ function getPrevOut(prevOutput, prevOutpoint, network) {
6
+ if (prevOutput.witnessUtxo) {
7
+ return prevOutput.witnessUtxo;
8
+ }
9
+ const outputIndex = typeof prevOutpoint === 'number' ? prevOutpoint : utxolib.bitgo.getOutputIdForInput(prevOutpoint).vout;
10
+ if (prevOutput.nonWitnessUtxo) {
11
+ const tx = utxolib.bitgo.createTransactionFromBuffer(prevOutput.nonWitnessUtxo, network, { amountType: 'bigint' });
12
+ return tx.outs[outputIndex];
13
+ }
14
+ return undefined;
15
+ }
16
+ exports.getPrevOut = getPrevOut;
17
+ function getOutputSum(outputs) {
18
+ return outputs.reduce((sum, o) => sum + o.value, BigInt(0));
19
+ }
20
+ function getParserTxProperties(tx, prevOutputs) {
21
+ if (tx instanceof utxolib.bitgo.UtxoTransaction) {
22
+ let complete = true;
23
+ try {
24
+ const txb = utxolib.bitgo.createTransactionBuilderFromTransaction(tx);
25
+ txb.build();
26
+ }
27
+ catch (e) {
28
+ complete = false;
29
+ }
30
+ return {
31
+ format: complete ? 'network' : 'legacy',
32
+ complete,
33
+ id: tx.getId(),
34
+ weight: tx.weight(),
35
+ inputs: tx.ins,
36
+ outputs: tx.outs,
37
+ outputSum: getOutputSum(tx.outs),
38
+ inputSum: prevOutputs ? getOutputSum(prevOutputs) : undefined,
39
+ hasWitnesses: tx.hasWitnesses(),
40
+ };
41
+ }
42
+ if (tx instanceof utxolib.bitgo.UtxoPsbt) {
43
+ let signedTx;
44
+ let complete = true;
45
+ try {
46
+ const clone = tx.clone();
47
+ clone.finalizeAllInputs();
48
+ signedTx = clone.extractTransaction();
49
+ }
50
+ catch (e) {
51
+ complete = false;
52
+ // ignore
53
+ }
54
+ const unsignedTx = tx.getUnsignedTx();
55
+ return {
56
+ format: 'psbt',
57
+ complete,
58
+ id: (signedTx !== null && signedTx !== void 0 ? signedTx : unsignedTx).getId(),
59
+ weight: (signedTx !== null && signedTx !== void 0 ? signedTx : unsignedTx).weight(),
60
+ inputs: tx.txInputs,
61
+ outputs: tx.txOutputs,
62
+ outputSum: getOutputSum(tx.txOutputs),
63
+ inputSum: tx.data.inputs
64
+ .map((input, i) => { var _a; return (_a = getPrevOut(input, tx.txInputs[i], tx.network)) === null || _a === void 0 ? void 0 : _a.value; })
65
+ .reduce((sum, v) => sum === undefined || v === undefined ? undefined : sum + v, BigInt(0)),
66
+ hasWitnesses: tx.data.inputs.some((i) => i.witnessUtxo !== undefined),
67
+ };
68
+ }
69
+ throw new Error('unknown transaction type');
70
+ }
71
+ exports.getParserTxProperties = getParserTxProperties;
72
+ function getParserTxInputProperties(input, prevOut) {
73
+ const outputId = utxolib.bitgo.getOutputIdForInput(input);
74
+ if ('sequence' in input && 'script' in input && 'witness' in input) {
75
+ // full-signed or legacy case
76
+ return {
77
+ ...outputId,
78
+ sequence: input.sequence,
79
+ script: input.script,
80
+ witness: input.witness,
81
+ };
82
+ }
83
+ if (!prevOut) {
84
+ throw new Error('missing prevOut');
85
+ }
86
+ return {
87
+ ...outputId,
88
+ sequence: input.sequence,
89
+ script: prevOut.redeemScript,
90
+ witness: prevOut.witnessScript ? [prevOut.witnessScript] : [],
91
+ };
92
+ }
93
+ exports.getParserTxInputProperties = getParserTxInputProperties;
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFyc2VyVHguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvUGFyc2VyVHgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsZ0RBQWdEO0FBUWhELFNBQWdCLFVBQVUsQ0FDeEIsVUFBbUMsRUFDbkMsWUFBMEMsRUFDMUMsT0FBd0I7SUFPeEIsSUFBSSxVQUFVLENBQUMsV0FBVyxFQUFFO1FBQzFCLE9BQU8sVUFBVSxDQUFDLFdBQVcsQ0FBQztLQUMvQjtJQUNELE1BQU0sV0FBVyxHQUNmLE9BQU8sWUFBWSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQztJQUN6RyxJQUFJLFVBQVUsQ0FBQyxjQUFjLEVBQUU7UUFDN0IsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxVQUFVLENBQUMsY0FBYyxFQUFFLE9BQU8sRUFBRSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ25ILE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztLQUM3QjtJQUNELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUM7QUFwQkQsZ0NBb0JDO0FBRUQsU0FBUyxZQUFZLENBQUMsT0FBNEI7SUFDaEQsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDOUQsQ0FBQztBQUVELFNBQWdCLHFCQUFxQixDQUNuQyxFQUFZLEVBQ1osV0FBbUQ7SUFZbkQsSUFBSSxFQUFFLFlBQVksT0FBTyxDQUFDLEtBQUssQ0FBQyxlQUFlLEVBQUU7UUFDL0MsSUFBSSxRQUFRLEdBQUcsSUFB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RUFDcEIsT0FBaUM7SUFRakMsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxRCxJQUFJLFVBQVUsSUFBSSxLQUFLLElBQUksUUFBUSxJQUFJLEtBQUssSUFBSSxTQUFTLElBQUksS0FBSyxFQUFFO1FBQ2xFLDZCQUE2QjtRQUM3QixPQUFPO1lBQ0wsR0FBRyxRQUFRO1lBQ1gsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO1lBQ3hCLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtZQUNwQixPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87U0FDdkIsQ0FBQztLQUNIO0lBRUQsSUFBSSxDQUFDLE9BQU8sRUFBRTtRQUNaLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztLQUNwQztJQUNELE9BQU87UUFDTCxHQUFHLFFBQVE7UUFDWCxRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVE7UUFDeEIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxZQUFZO1FBQzVCLE9BQU8sRUFBRSxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtLQUM5RCxDQUFDO0FBQ0osQ0FBQztBQTlCRCxnRUE4QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcblxuZXhwb3J0IHR5cGUgUGFyc2VyVHggPSB1dHhvbGliLmJpdGdvLlV0eG9UcmFuc2FjdGlvbjxiaWdpbnQ+IHwgdXR4b2xpYi5iaXRnby5VdHhvUHNidDtcbmV4cG9ydCB0eXBlIFBhcnNlclR4SW5wdXQgPVxuICB8IHV0eG9saWIuVHhJbnB1dCAvKiB0eGlucHV0IGhhcyB0aGUgVHhPdXRQb2ludCBhbmQgYWxzbyBzY3JpcHQgYW5kIHdpdG5lc3MgZGF0YSAqL1xuICB8IHV0eG9saWIuUHNidFR4SW5wdXQgLyogdGhpcyBpcyBiYXNpY2FsbHkgZXF1aXZhbGVudCB0byBUeE91dFBvaW50IG9ubHkgKi87XG5leHBvcnQgdHlwZSBQYXJzZXJUeE91dHB1dCA9IHV0eG9saWIuVHhPdXRwdXQ8YmlnaW50PiB8IHV0eG9saWIuUHNidFR4T3V0cHV0O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UHJldk91dChcbiAgcHJldk91dHB1dDogdXR4b2xpYi5iaXRnby5Qc2J0SW5wdXQsXG4gIHByZXZPdXRwb2ludDogdXR4b2xpYi5Qc2J0VHhJbnB1dCB8IG51bWJlcixcbiAgbmV0d29yazogdXR4b2xpYi5OZXR3b3JrXG4pOlxuICB8IHtcbiAgICAgIHZhbHVlOiBiaWdpbnQ7XG4gICAgICBzY3JpcHQ6IEJ1ZmZlcjtcbiAgICB9XG4gIHwgdW5kZWZpbmVkIHtcbiAgaWYgKHByZXZPdXRwdXQud2l0bmVzc1V0eG8pIHtcbiAgICByZXR1cm4gcHJldk91dHB1dC53aXRuZXNzVXR4bztcbiAgfVxuICBjb25zdCBvdXRwdXRJbmRleCA9XG4gICAgdHlwZW9mIHByZXZPdXRwb2ludCA9PT0gJ251bWJlcicgPyBwcmV2T3V0cG9pbnQgOiB1dHhvbGliLmJpdGdvLmdldE91dHB1dElkRm9ySW5wdXQocHJldk91dHBvaW50KS52b3V0O1xuICBpZiAocHJldk91dHB1dC5ub25XaXRuZXNzVXR4bykge1xuICAgIGNvbnN0IHR4ID0gdXR4b2xpYi5iaXRnby5jcmVhdGVUcmFuc2FjdGlvbkZyb21CdWZmZXIocHJldk91dHB1dC5ub25XaXRuZXNzVXR4bywgbmV0d29yaywgeyBhbW91bnRUeXBlOiAnYmlnaW50JyB9KTtcbiAgICByZXR1cm4gdHgub3V0c1tvdXRwdXRJbmRleF07XG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gZ2V0T3V0cHV0U3VtKG91dHB1dHM6IHsgdmFsdWU6IGJpZ2ludCB9W10pOiBiaWdpbnQge1xuICByZXR1cm4gb3V0cHV0cy5yZWR1Y2UoKHN1bSwgbykgPT4gc3VtICsgby52YWx1ZSwgQmlnSW50KDApKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFBhcnNlclR4UHJvcGVydGllcyhcbiAgdHg6IFBhcnNlclR4LFxuICBwcmV2T3V0cHV0czogdXR4b2xpYi5UeE91dHB1dDxiaWdpbnQ+W10gfCB1bmRlZmluZWRcbik6IHtcbiAgZm9ybWF0OiAnbmV0d29yaycgfCAnbGVnYWN5JyB8ICdwc2J0JztcbiAgY29tcGxldGU6IGJvb2xlYW47XG4gIGlkOiBzdHJpbmc7XG4gIHdlaWdodDogbnVtYmVyO1xuICBpbnB1dHM6IFBhcnNlclR4SW5wdXRbXTtcbiAgb3V0cHV0czogUGFyc2VyVHhPdXRwdXRbXTtcbiAgb3V0cHV0U3VtOiBiaWdpbnQ7XG4gIGlucHV0U3VtOiBiaWdpbnQgfCB1bmRlZmluZWQ7XG4gIGhhc1dpdG5lc3NlczogYm9vbGVhbjtcbn0ge1xuICBpZiAodHggaW5zdGFuY2VvZiB1dHhvbGliLmJpdGdvLlV0eG9UcmFuc2FjdGlvbikge1xuICAgIGxldCBjb21wbGV0ZSA9IHRydWU7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHR4YiA9IHV0eG9saWIuYml0Z28uY3JlYXRlVHJhbnNhY3Rpb25CdWlsZGVyRnJvbVRyYW5zYWN0aW9uKHR4KTtcbiAgICAgIHR4Yi5idWlsZCgpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbXBsZXRlID0gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBmb3JtYXQ6IGNvbXBsZXRlID8gJ25ldHdvcmsnIDogJ2xlZ2FjeScsXG4gICAgICBjb21wbGV0ZSxcbiAgICAgIGlkOiB0eC5nZXRJZCgpLFxuICAgICAgd2VpZ2h0OiB0eC53ZWlnaHQoKSxcbiAgICAgIGlucHV0czogdHguaW5zLFxuICAgICAgb3V0cHV0czogdHgub3V0cyxcbiAgICAgIG91dHB1dFN1bTogZ2V0T3V0cHV0U3VtKHR4Lm91dHMpLFxuICAgICAgaW5wdXRTdW06IHByZXZPdXRwdXRzID8gZ2V0T3V0cHV0U3VtKHByZXZPdXRwdXRzKSA6IHVuZGVmaW5lZCxcbiAgICAgIGhhc1dpdG5lc3NlczogdHguaGFzV2l0bmVzc2VzKCksXG4gICAgfTtcbiAgfVxuXG4gIGlmICh0eCBpbnN0YW5jZW9mIHV0eG9saWIuYml0Z28uVXR4b1BzYnQpIHtcbiAgICBsZXQgc2lnbmVkVHg7XG4gICAgbGV0IGNvbXBsZXRlID0gdHJ1ZTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgY2xvbmUgPSB0eC5jbG9uZSgpO1xuICAgICAgY2xvbmUuZmluYWxpemVBbGxJbnB1dHMoKTtcbiAgICAgIHNpZ25lZFR4ID0gY2xvbmUuZXh0cmFjdFRyYW5zYWN0aW9uKCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29tcGxldGUgPSBmYWxzZTtcbiAgICAgIC8vIGlnbm9yZVxuICAgIH1cblxuICAgIGNvbnN0IHVuc2lnbmVkVHggPSB0eC5nZXRVbnNpZ25lZFR4KCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZm9ybWF0OiAncHNidCcsXG4gICAgICBjb21wbGV0ZSxcbiAgICAgIGlkOiAoc2lnbmVkVHggPz8gdW5zaWduZWRUeCkuZ2V0SWQoKSxcbiAgICAgIHdlaWdodDogKHNpZ25lZFR4ID8/IHVuc2lnbmVkVHgpLndlaWdodCgpLFxuICAgICAgaW5wdXRzOiB0eC50eElucHV0cyxcbiAgICAgIG91dHB1dHM6IHR4LnR4T3V0cHV0cyxcbiAgICAgIG91dHB1dFN1bTogZ2V0T3V0cHV0U3VtKHR4LnR4T3V0cHV0cyksXG4gICAgICBpbnB1dFN1bTogdHguZGF0YS5pbnB1dHNcbiAgICAgICAgLm1hcCgoaW5wdXQsIGkpID0+IGdldFByZXZPdXQoaW5wdXQsIHR4LnR4SW5wdXRzW2ldLCB0eC5uZXR3b3JrKT8udmFsdWUpXG4gICAgICAgIC5yZWR1Y2UoXG4gICAgICAgICAgKHN1bTogYmlnaW50IHwgdW5kZWZpbmVkLCB2OiBiaWdpbnQgfCB1bmRlZmluZWQpID0+XG4gICAgICAgICAgICBzdW0gPT09IHVuZGVmaW5lZCB8fCB2ID09PSB1bmRlZmluZWQgPyB1bmRlZmluZWQgOiBzdW0gKyB2LFxuICAgICAgICAgIEJpZ0ludCgwKVxuICAgICAgICApLFxuICAgICAgaGFzV2l0bmVzc2VzOiB0eC5kYXRhLmlucHV0cy5zb21lKChpKSA9PiBpLndpdG5lc3NVdHhvICE9PSB1bmRlZmluZWQpLFxuICAgIH07XG4gIH1cblxuICB0aHJvdyBuZXcgRXJyb3IoJ3Vua25vd24gdHJhbnNhY3Rpb24gdHlwZScpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldFBhcnNlclR4SW5wdXRQcm9wZXJ0aWVzKFxuICBpbnB1dDogUGFyc2VyVHhJbnB1dCxcbiAgcHJldk91dD86IHV0eG9saWIuYml0Z28uUHNidElucHV0XG4pOiB7XG4gIHR4aWQ6IHN0cmluZztcbiAgdm91dDogbnVtYmVyO1xuICBzZXF1ZW5jZT86IG51bWJlcjtcbiAgc2NyaXB0PzogQnVmZmVyO1xuICB3aXRuZXNzPzogQnVmZmVyW107XG59IHtcbiAgY29uc3Qgb3V0cHV0SWQgPSB1dHhvbGliLmJpdGdvLmdldE91dHB1dElkRm9ySW5wdXQoaW5wdXQpO1xuICBpZiAoJ3NlcXVlbmNlJyBpbiBpbnB1dCAmJiAnc2NyaXB0JyBpbiBpbnB1dCAmJiAnd2l0bmVzcycgaW4gaW5wdXQpIHtcbiAgICAvLyBmdWxsLXNpZ25lZCBvciBsZWdhY3kgY2FzZVxuICAgIHJldHVybiB7XG4gICAgICAuLi5vdXRwdXRJZCxcbiAgICAgIHNlcXVlbmNlOiBpbnB1dC5zZXF1ZW5jZSxcbiAgICAgIHNjcmlwdDogaW5wdXQuc2NyaXB0LFxuICAgICAgd2l0bmVzczogaW5wdXQud2l0bmVzcyxcbiAgICB9O1xuICB9XG5cbiAgaWYgKCFwcmV2T3V0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdtaXNzaW5nIHByZXZPdXQnKTtcbiAgfVxuICByZXR1cm4ge1xuICAgIC4uLm91dHB1dElkLFxuICAgIHNlcXVlbmNlOiBpbnB1dC5zZXF1ZW5jZSxcbiAgICBzY3JpcHQ6IHByZXZPdXQucmVkZWVtU2NyaXB0LFxuICAgIHdpdG5lc3M6IHByZXZPdXQud2l0bmVzc1NjcmlwdCA/IFtwcmV2T3V0LndpdG5lc3NTY3JpcHRdIDogW10sXG4gIH07XG59XG4iXX0=
@@ -0,0 +1,21 @@
1
+ /// <reference types="node" />
2
+ import { Parser, ParserNode } from './Parser';
3
+ import * as utxolib from '@bitgo-beta/utxo-lib';
4
+ export declare class ScriptParser extends Parser {
5
+ network?: utxolib.Network;
6
+ constructor({ network }?: {
7
+ network?: utxolib.Network;
8
+ });
9
+ static toASM(script: Buffer, { insertNewlines }?: {
10
+ insertNewlines?: boolean | undefined;
11
+ }): string | undefined;
12
+ static classify(script: Buffer | undefined, witness: Buffer[] | undefined): {
13
+ input: string | undefined;
14
+ output: string | undefined;
15
+ witness: string | undefined;
16
+ };
17
+ parsePayment(payment: utxolib.Payment): ParserNode;
18
+ parseBufferAsPayment(script: Buffer): ParserNode[];
19
+ parse(script: Buffer): ParserNode;
20
+ }
21
+ //# sourceMappingURL=ScriptParser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScriptParser.d.ts","sourceRoot":"","sources":["../../src/ScriptParser.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAqBhD,qBAAa,YAAa,SAAQ,MAAM;IACtC,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC;gBACd,EAAE,OAAO,EAAE,GAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,CAAA;KAAO;IAK3D,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,cAAqB,EAAE;;KAAK,GAAG,MAAM,GAAG,SAAS;IAahF,MAAM,CAAC,QAAQ,CACb,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,GAC5B;QACD,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;QAC1B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;QAC3B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;KAC7B;IAQD,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,UAAU;IAMlD,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,EAAE;IAUlD,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU;CAclC"}
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ScriptParser = void 0;
4
+ const Parser_1 = require("./Parser");
5
+ const utxolib = require("@bitgo-beta/utxo-lib");
6
+ const parseUnknown_1 = require("./parseUnknown");
7
+ const paymentTypes = ['p2sh', 'p2pkh', 'p2wpkh', 'p2wsh', 'p2ms'];
8
+ function parsePaymentWithType(script, type, network) {
9
+ switch (type) {
10
+ case 'p2sh':
11
+ return utxolib.payments.p2sh({ redeem: { output: script }, network });
12
+ case 'p2pkh':
13
+ return utxolib.payments.p2pkh({ output: script, network });
14
+ case 'p2wpkh':
15
+ return utxolib.payments.p2wpkh({ output: script, network });
16
+ case 'p2wsh':
17
+ return utxolib.payments.p2wsh({ output: script, network });
18
+ case 'p2ms':
19
+ return utxolib.payments.p2ms({ output: script, network });
20
+ }
21
+ }
22
+ class ScriptParser extends Parser_1.Parser {
23
+ constructor({ network } = {}) {
24
+ super();
25
+ this.network = network;
26
+ }
27
+ static toASM(script, { insertNewlines = true } = {}) {
28
+ let parsed;
29
+ try {
30
+ parsed = utxolib.script.toASM(script);
31
+ }
32
+ catch (e) {
33
+ return 'error';
34
+ }
35
+ if (parsed) {
36
+ return insertNewlines ? ['', ...parsed.split(' ')].join('\n') : parsed;
37
+ }
38
+ }
39
+ static classify(script, witness) {
40
+ return {
41
+ input: script ? utxolib.classify.input(script, /* allowIncomplete */ true) : undefined,
42
+ output: script ? utxolib.classify.output(script) : undefined,
43
+ witness: witness ? utxolib.classify.witness(witness) : undefined,
44
+ };
45
+ }
46
+ parsePayment(payment) {
47
+ return (0, parseUnknown_1.parseUnknown)(this, `payment: ${payment.name}`, payment, {
48
+ omit: ['network', 'name'],
49
+ });
50
+ }
51
+ parseBufferAsPayment(script) {
52
+ return paymentTypes.flatMap((type) => {
53
+ try {
54
+ return [this.parsePayment(parsePaymentWithType(script, type, this.network))];
55
+ }
56
+ catch (e) {
57
+ return [];
58
+ }
59
+ });
60
+ }
61
+ parse(script) {
62
+ const classification = ScriptParser.classify(script, undefined);
63
+ const decompiled = utxolib.script.decompile(script);
64
+ return this.node('script', `length ${script.length} bytes`, [
65
+ this.node('classification', undefined, [
66
+ this.node('input', classification.input),
67
+ this.node('output', classification.output),
68
+ this.node('witness', classification.witness),
69
+ ]),
70
+ this.node('asm', ScriptParser.toASM(script)),
71
+ this.node('decompiled', undefined, decompiled ? decompiled.map((v, i) => this.node(i, v)) : undefined),
72
+ ...this.parseBufferAsPayment(script),
73
+ ]);
74
+ }
75
+ }
76
+ exports.ScriptParser = ScriptParser;
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NyaXB0UGFyc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1NjcmlwdFBhcnNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxQ0FBOEM7QUFDOUMsZ0RBQWdEO0FBQ2hELGlEQUE4QztBQUU5QyxNQUFNLFlBQVksR0FBRyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQVUsQ0FBQztBQUczRSxTQUFTLG9CQUFvQixDQUFDLE1BQWMsRUFBRSxJQUFpQixFQUFFLE9BQXlCO0lBQ3hGLFFBQVEsSUFBSSxFQUFFO1FBQ1osS0FBSyxNQUFNO1lBQ1QsT0FBTyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ3hFLEtBQUssT0FBTztZQUNWLE9BQU8sT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDN0QsS0FBSyxRQUFRO1lBQ1gsT0FBTyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUM5RCxLQUFLLE9BQU87WUFDVixPQUFPLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQzdELEtBQUssTUFBTTtZQUNULE9BQU8sT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7S0FDN0Q7QUFDSCxDQUFDO0FBRUQsTUFBYSxZQUFhLFNBQVEsZUFBTTtJQUV0QyxZQUFZLEVBQUUsT0FBTyxLQUFv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QUM1QyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ3RHLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQztTQUNyQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFqRUQsb0NBaUVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGFyc2VyLCBQYXJzZXJOb2RlIH0gZnJvbSAnLi9QYXJzZXInO1xuaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5pbXBvcnQgeyBwYXJzZVVua25vd24gfSBmcm9tICcuL3BhcnNlVW5rbm93bic7XG5cbmNvbnN0IHBheW1lbnRUeXBlcyA9IFsncDJzaCcsICdwMnBraCcsICdwMndwa2gnLCAncDJ3c2gnLCAncDJtcyddIGFzIGNvbnN0O1xudHlwZSBQYXltZW50VHlwZSA9ICh0eXBlb2YgcGF5bWVudFR5cGVzKVtudW1iZXJdO1xuXG5mdW5jdGlvbiBwYXJzZVBheW1lbnRXaXRoVHlwZShzY3JpcHQ6IEJ1ZmZlciwgdHlwZTogUGF5bWVudFR5cGUsIG5ldHdvcms/OiB1dHhvbGliLk5ldHdvcmspOiB1dHhvbGliLlBheW1lbnQge1xuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlICdwMnNoJzpcbiAgICAgIHJldHVybiB1dHhvbGliLnBheW1lbnRzLnAyc2goeyByZWRlZW06IHsgb3V0cHV0OiBzY3JpcHQgfSwgbmV0d29yayB9KTtcbiAgICBjYXNlICdwMnBraCc6XG4gICAgICByZXR1cm4gdXR4b2xpYi5wYXltZW50cy5wMnBraCh7IG91dHB1dDogc2NyaXB0LCBuZXR3b3JrIH0pO1xuICAgIGNhc2UgJ3Ayd3BraCc6XG4gICAgICByZXR1cm4gdXR4b2xpYi5wYXltZW50cy5wMndwa2goeyBvdXRwdXQ6IHNjcmlwdCwgbmV0d29yayB9KTtcbiAgICBjYXNlICdwMndzaCc6XG4gICAgICByZXR1cm4gdXR4b2xpYi5wYXltZW50cy5wMndzaCh7IG91dHB1dDogc2NyaXB0LCBuZXR3b3JrIH0pO1xuICAgIGNhc2UgJ3AybXMnOlxuICAgICAgcmV0dXJuIHV0eG9saWIucGF5bWVudHMucDJtcyh7IG91dHB1dDogc2NyaXB0LCBuZXR3b3JrIH0pO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTY3JpcHRQYXJzZXIgZXh0ZW5kcyBQYXJzZXIge1xuICBuZXR3b3JrPzogdXR4b2xpYi5OZXR3b3JrO1xuICBjb25zdHJ1Y3Rvcih7IG5ldHdvcmsgfTogeyBuZXR3b3JrPzogdXR4b2xpYi5OZXR3b3JrIH0gPSB7fSkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5uZXR3b3JrID0gbmV0d29yaztcbiAgfVxuXG4gIHN0YXRpYyB0b0FTTShzY3JpcHQ6IEJ1ZmZlciwgeyBpbnNlcnROZXdsaW5lcyA9IHRydWUgfSA9IHt9KTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBsZXQgcGFyc2VkO1xuICAgIHRyeSB7XG4gICAgICBwYXJzZWQgPSB1dHhvbGliLnNjcmlwdC50b0FTTShzY3JpcHQpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiAnZXJyb3InO1xuICAgIH1cblxuICAgIGlmIChwYXJzZWQpIHtcbiAgICAgIHJldHVybiBpbnNlcnROZXdsaW5lcyA/IFsnJywgLi4ucGFyc2VkLnNwbGl0KCcgJyldLmpvaW4oJ1xcbicpIDogcGFyc2VkO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBjbGFzc2lmeShcbiAgICBzY3JpcHQ6IEJ1ZmZlciB8IHVuZGVmaW5lZCxcbiAgICB3aXRuZXNzOiBCdWZmZXJbXSB8IHVuZGVmaW5lZFxuICApOiB7XG4gICAgaW5wdXQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBvdXRwdXQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICB3aXRuZXNzOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIH0ge1xuICAgIHJldHVybiB7XG4gICAgICBpbnB1dDogc2NyaXB0ID8gdXR4b2xpYi5jbGFzc2lmeS5pbnB1dChzY3JpcHQsIC8qIGFsbG93SW5jb21wbGV0ZSAqLyB0cnVlKSA6IHVuZGVmaW5lZCxcbiAgICAgIG91dHB1dDogc2NyaXB0ID8gdXR4b2xpYi5jbGFzc2lmeS5vdXRwdXQoc2NyaXB0KSA6IHVuZGVmaW5lZCxcbiAgICAgIHdpdG5lc3M6IHdpdG5lc3MgPyB1dHhvbGliLmNsYXNzaWZ5LndpdG5lc3Mod2l0bmVzcykgOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfVxuXG4gIHBhcnNlUGF5bWVudChwYXltZW50OiB1dHhvbGliLlBheW1lbnQpOiBQYXJzZXJOb2RlIHtcbiAgICByZXR1cm4gcGFyc2VVbmtub3duKHRoaXMsIGBwYXltZW50OiAke3BheW1lbnQubmFtZX1gLCBwYXltZW50LCB7XG4gICAgICBvbWl0OiBbJ25ldHdvcmsnLCAnbmFtZSddLFxuICAgIH0pO1xuICB9XG5cbiAgcGFyc2VCdWZmZXJBc1BheW1lbnQoc2NyaXB0OiBCdWZmZXIpOiBQYXJzZXJOb2RlW10ge1xuICAgIHJldHVybiBwYXltZW50VHlwZXMuZmxhdE1hcCgodHlwZSkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIFt0aGlzLnBhcnNlUGF5bWVudChwYXJzZVBheW1lbnRXaXRoVHlwZShzY3JpcHQsIHR5cGUsIHRoaXMubmV0d29yaykpXTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcGFyc2Uoc2NyaXB0OiBCdWZmZXIpOiBQYXJzZXJOb2RlIHtcbiAgICBjb25zdCBjbGFzc2lmaWNhdGlvbiA9IFNjcmlwdFBhcnNlci5jbGFzc2lmeShzY3JpcHQsIHVuZGVmaW5lZCk7XG4gICAgY29uc3QgZGVjb21waWxlZCA9IHV0eG9saWIuc2NyaXB0LmRlY29tcGlsZShzY3JpcHQpO1xuICAgIHJldHVybiB0aGlzLm5vZGUoJ3NjcmlwdCcsIGBsZW5ndGggJHtzY3JpcHQubGVuZ3RofSBieXRlc2AsIFtcbiAgICAgIHRoaXMubm9kZSgnY2xhc3NpZmljYXRpb24nLCB1bmRlZmluZWQsIFtcbiAgICAgICAgdGhpcy5ub2RlKCdpbnB1dCcsIGNsYXNzaWZpY2F0aW9uLmlucHV0KSxcbiAgICAgICAgdGhpcy5ub2RlKCdvdXRwdXQnLCBjbGFzc2lmaWNhdGlvbi5vdXRwdXQpLFxuICAgICAgICB0aGlzLm5vZGUoJ3dpdG5lc3MnLCBjbGFzc2lmaWNhdGlvbi53aXRuZXNzKSxcbiAgICAgIF0pLFxuICAgICAgdGhpcy5ub2RlKCdhc20nLCBTY3JpcHRQYXJzZXIudG9BU00oc2NyaXB0KSksXG4gICAgICB0aGlzLm5vZGUoJ2RlY29tcGlsZWQnLCB1bmRlZmluZWQsIGRlY29tcGlsZWQgPyBkZWNvbXBpbGVkLm1hcCgodiwgaSkgPT4gdGhpcy5ub2RlKGksIHYpKSA6IHVuZGVmaW5lZCksXG4gICAgICAuLi50aGlzLnBhcnNlQnVmZmVyQXNQYXltZW50KHNjcmlwdCksXG4gICAgXSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,6 +1,7 @@
1
1
  import { OutputSpend, TransactionStatus } from '@bitgo-beta/blockapis';
2
2
  import * as utxolib from '@bitgo-beta/utxo-lib';
3
3
  import { Parser, ParserNode } from './Parser';
4
+ import { ParserTx, ParserTxInput, ParserTxOutput } from './ParserTx';
4
5
  export declare type TxParserArgs = {
5
6
  parseScriptData: boolean;
6
7
  parseScriptAsm: boolean;
@@ -10,24 +11,27 @@ export declare type TxParserArgs = {
10
11
  ecdsa: boolean;
11
12
  schnorr: boolean;
12
13
  };
14
+ parseAsUnknown: boolean;
13
15
  hide?: string[];
14
16
  maxOutputs?: number;
15
17
  vin?: number[];
18
+ vout?: number[];
19
+ parseError?: 'throw' | 'continue';
16
20
  };
17
21
  export declare type ChainInfo = {
18
22
  status?: TransactionStatus;
19
23
  outputSpends?: OutputSpend[];
20
- prevOutputs?: utxolib.TxOutput[];
24
+ prevOutputs?: utxolib.TxOutput<bigint>[];
21
25
  prevOutputSpends?: OutputSpend[];
22
26
  };
23
27
  export declare class TxParser extends Parser {
24
28
  private params;
25
29
  static PARSE_ALL: TxParserArgs;
26
30
  constructor(params: TxParserArgs);
27
- parseIns(ins: utxolib.TxInput[], tx: utxolib.bitgo.UtxoTransaction, outputInfo: ChainInfo): ParserNode[];
28
- parseOuts(outs: utxolib.TxOutput[], tx: utxolib.bitgo.UtxoTransaction, params: ChainInfo): ParserNode[];
29
- parseStatus(tx: utxolib.bitgo.UtxoTransaction, status?: TransactionStatus): ParserNode[];
30
- parseVersion(tx: utxolib.bitgo.UtxoTransaction): ParserNode;
31
- parse(tx: utxolib.bitgo.UtxoTransaction, chainInfo?: ChainInfo): ParserNode;
31
+ parseIns(ins: ParserTxInput[], tx: ParserTx, txid: string, outputInfo: ChainInfo): ParserNode[];
32
+ parseOuts(outs: ParserTxOutput[], tx: ParserTx, txid: string, params: ChainInfo): ParserNode[];
33
+ parseStatus(status?: TransactionStatus): ParserNode[];
34
+ parseVersion(tx: utxolib.bitgo.UtxoTransaction<bigint> | utxolib.bitgo.UtxoPsbt): ParserNode;
35
+ parse(tx: ParserTx, chainInfo?: ChainInfo): ParserNode;
32
36
  }
33
37
  //# sourceMappingURL=TxParser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TxParser.d.ts","sourceRoot":"","sources":["../../src/TxParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAa9C,oBAAY,YAAY,GAAG;IACzB,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,EAAE,OAAO,CAAC;IACxB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,kBAAkB,EAAE;QAClB,MAAM,EAAE,OAAO,CAAC;QAChB,KAAK,EAAE,OAAO,CAAC;QACf,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;IACF,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;CAChB,CAAC;AAEF,oBAAY,SAAS,GAAG;IACtB,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B,WAAW,CAAC,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;IACjC,gBAAgB,CAAC,EAAE,WAAW,EAAE,CAAC;CAClC,CAAC;AAEF,qBAAa,QAAS,SAAQ,MAAM;IAYtB,OAAO,CAAC,MAAM;IAX1B,MAAM,CAAC,SAAS,EAAE,YAAY,CAS5B;gBAEkB,MAAM,EAAE,YAAY;IAIxC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,UAAU,EAAE,SAAS,GAAG,UAAU,EAAE;IAUxG,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,MAAM,EAAE,SAAS,GAAG,UAAU,EAAE;IAUvG,WAAW,CAAC,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,MAAM,CAAC,EAAE,iBAAiB,GAAG,UAAU,EAAE;IAsBxF,YAAY,CAAC,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,eAAe,GAAG,UAAU;IAc3D,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,SAAS,GAAE,SAAc,GAAG,UAAU;CAiChF"}
1
+ {"version":3,"file":"TxParser.d.ts","sourceRoot":"","sources":["../../src/TxParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE9C,OAAO,EAAyB,QAAQ,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAa5F,oBAAY,YAAY,GAAG;IACzB,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,EAAE,OAAO,CAAC;IACxB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,kBAAkB,EAAE;QAClB,MAAM,EAAE,OAAO,CAAC;QAChB,KAAK,EAAE,OAAO,CAAC;QACf,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;IACF,cAAc,EAAE,OAAO,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;CACnC,CAAC;AAEF,oBAAY,SAAS,GAAG;IACtB,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B,WAAW,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;IACzC,gBAAgB,CAAC,EAAE,WAAW,EAAE,CAAC;CAClC,CAAC;AAEF,qBAAa,QAAS,SAAQ,MAAM;IAatB,OAAO,CAAC,MAAM;IAZ1B,MAAM,CAAC,SAAS,EAAE,YAAY,CAU5B;gBAEkB,MAAM,EAAE,YAAY;IAIxC,QAAQ,CAAC,GAAG,EAAE,aAAa,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,GAAG,UAAU,EAAE;IAQ/F,SAAS,CAAC,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,UAAU,EAAE;IAY9F,WAAW,CAAC,MAAM,CAAC,EAAE,iBAAiB,GAAG,UAAU,EAAE;IAsBrD,YAAY,CAAC,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU;IAc5F,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,GAAE,SAAc,GAAG,UAAU;CAoC3D"}
@@ -4,7 +4,9 @@ exports.TxParser = void 0;
4
4
  const utxolib = require("@bitgo-beta/utxo-lib");
5
5
  const Parser_1 = require("./Parser");
6
6
  const format_1 = require("./format");
7
- const InputOutputParser_1 = require("./InputOutputParser");
7
+ const ParserTx_1 = require("./ParserTx");
8
+ const InputParser_1 = require("./InputParser");
9
+ const OutputParser_1 = require("./OutputParser");
8
10
  function formatConsensusBranchId(branchId) {
9
11
  var _a;
10
12
  const map = {
@@ -16,26 +18,24 @@ function formatConsensusBranchId(branchId) {
16
18
  }
17
19
  class TxParser extends Parser_1.Parser {
18
20
  constructor(params) {
19
- super();
21
+ super(params);
20
22
  this.params = params;
21
23
  }
22
- parseIns(ins, tx, outputInfo) {
23
- const txid = tx.getId();
24
- const ioParser = new InputOutputParser_1.InputOutputParser(this.params);
24
+ parseIns(ins, tx, txid, outputInfo) {
25
25
  return ins.flatMap((input, i) => this.params.vin === undefined || this.params.vin.includes(i)
26
- ? [ioParser.parseInput(txid, tx, i, tx.ins[i], outputInfo)]
26
+ ? [new InputParser_1.InputParser(txid, tx, i, outputInfo, this.params).parseInput()]
27
27
  : []);
28
28
  }
29
- parseOuts(outs, tx, params) {
29
+ parseOuts(outs, tx, txid, params) {
30
30
  var _a;
31
- if (outs.length > ((_a = this.params.maxOutputs) !== null && _a !== void 0 ? _a : 200)) {
31
+ if (this.params.vout === undefined && outs.length > ((_a = this.params.maxOutputs) !== null && _a !== void 0 ? _a : 200)) {
32
32
  return [this.node('(omitted)', undefined)];
33
33
  }
34
- const txid = tx.getId();
35
- const ioParser = new InputOutputParser_1.InputOutputParser(this.params);
36
- return outs.map((o, i) => ioParser.parseOutput(txid, o, i, tx.network, params));
34
+ return outs.flatMap((o, i) => this.params.vout === undefined || this.params.vout.includes(i)
35
+ ? [new OutputParser_1.OutputParser(tx.network, txid, i, o, params, this.params).parseOutput()]
36
+ : []);
37
37
  }
38
- parseStatus(tx, status) {
38
+ parseStatus(status) {
39
39
  if (!status) {
40
40
  return [this.node('status', 'unknown')];
41
41
  }
@@ -59,26 +59,25 @@ class TxParser extends Parser_1.Parser {
59
59
  : []);
60
60
  }
61
61
  parse(tx, chainInfo = {}) {
62
- var _a;
63
- const weight = tx.weight();
64
- const vsize = tx.virtualSize();
65
- const outputSum = tx.outs.reduce((sum, o) => sum + o.value, 0);
66
- const inputSum = (_a = chainInfo.prevOutputs) === null || _a === void 0 ? void 0 : _a.reduce((sum, o) => sum + o.value, 0);
62
+ const { format, complete, id, weight, inputs, outputs, hasWitnesses, inputSum, outputSum } = (0, ParserTx_1.getParserTxProperties)(tx, chainInfo.prevOutputs);
63
+ const vsize = weight === undefined ? undefined : Math.ceil(weight / 4);
67
64
  const fee = inputSum ? inputSum - outputSum : undefined;
68
- const feeRate = fee ? fee / vsize : undefined;
69
- return this.node('transaction', tx.getId(), [
65
+ const feeRate = fee && vsize ? Number(fee) / vsize : undefined;
66
+ return this.node('transaction', id, [
67
+ this.node('format', format),
68
+ this.node('complete', complete),
70
69
  this.node('parsedAs', `${utxolib.getNetworkName(utxolib.getMainnet(tx.network))} ` +
71
70
  `${utxolib.isMainnet(tx.network) ? 'mainnet' : 'testnet'}`),
72
71
  this.parseVersion(tx),
73
72
  this.node('locktime', tx.locktime),
74
- this.node('hasWitnesses', tx.hasWitnesses()),
75
- ...this.parseStatus(tx, chainInfo.status),
73
+ this.node('hasWitnesses', hasWitnesses),
74
+ ...this.parseStatus(chainInfo.status),
76
75
  this.node('vsize', `${vsize}vbytes (${weight}wu)`),
77
76
  ...(fee && feeRate
78
- ? [this.node('fee [btc]', format_1.formatSat(fee)), this.node('feeRate [sat/vbyte]', feeRate.toFixed(2))]
77
+ ? [this.node('fee [btc]', (0, format_1.formatSat)(fee)), this.node('feeRate [sat/vbyte]', feeRate.toFixed(2))]
79
78
  : []),
80
- this.node(`inputs`, [String(tx.ins.length)].concat(inputSum ? ['sum=' + format_1.formatSat(inputSum)] : []).join(' '), this.parseIns(tx.ins, tx, chainInfo)),
81
- this.node(`outputs`, [String(tx.outs.length), 'sum=' + format_1.formatSat(outputSum)].join(' '), this.parseOuts(tx.outs, tx, chainInfo)),
79
+ this.node(`inputs`, [inputs.length.toString()].concat(inputSum ? ['sum=' + (0, format_1.formatSat)(inputSum)] : []).join(' '), this.parseIns(inputs, tx, id, chainInfo)),
80
+ this.node(`outputs`, [outputs.length.toString(), 'sum=' + (0, format_1.formatSat)(outputSum)].join(' '), this.parseOuts(outputs, tx, id, chainInfo)),
82
81
  ]);
83
82
  }
84
83
  }
@@ -92,5 +91,6 @@ TxParser.PARSE_ALL = {
92
91
  ecdsa: true,
93
92
  schnorr: true,
94
93
  },
94
+ parseAsUnknown: false,
95
95
  };
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHhQYXJzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvVHhQYXJzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsZ0RBQWdEO0FBQ2hELHFDQUE4QztBQUM5QyxxQ0FBcUM7QUFDckMsMkRBQXdEO0FBRXhELFNBQVMsdUJBQXVCLENBQUMsUUFBZ0I7O0lBQy9DLE1BQU0sR0FBRyxHQUEyQjtRQUNsQyxvQkFBb0IsRUFBRSxVQUFVO1FBQ2hDLGdCQUFnQixFQUFFLFVBQVU7UUFDNUIsYUFBYSxFQUFFLFVBQVU7S0FDMUIsQ0FBQztJQUNGLE9BQU8sTUFBQSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLFFBQVEsQ0FBQyxtQ0FBSSxTQUFTLENBQUM7QUFDeEUsQ0FBQztBQXVCRCxNQUFhLFFBQVMsU0FBUSxlQUFNO0lBWWxDLFlBQW9CLE1BQW9CO1FBQ3RDLEtBQUssRUFBRSxDQUFDO1FBRFUsV0FBTSxHQUFOLE1BQU0sQ0FBYztJQUV4QyxDQUFDO0lBRUQsUUFBUSxDQUFDLEdBQXNCLEVBQUUsRUFBaUMsRUFBRSxVQUFxQjtRQUN2RixNQUFNLElBQUksR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDeEIsTUFBTSxRQUFRLEdBQUcsSUFBSSxxQ0FBaUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEQsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQzlCLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQzFELENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFF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ImltcG9ydCB7IE91dHB1dFNwZW5kLCBUcmFuc2FjdGlvblN0YXR1cyB9IGZyb20gJ0BiaXRnby1iZXRhL2Jsb2NrYXBpcyc7XG5pbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCB7IFBhcnNlciwgUGFyc2VyTm9kZSB9IGZyb20gJy4vUGFyc2VyJztcbmltcG9ydCB7IGZvcm1hdFNhdCB9IGZyb20gJy4vZm9ybWF0JztcbmltcG9ydCB7IElucHV0T3V0cHV0UGFyc2VyIH0gZnJvbSAnLi9JbnB1dE91dHB1dFBhcnNlcic7XG5cbmZ1bmN0aW9uIGZvcm1hdENvbnNlbnN1c0JyYW5jaElkKGJyYW5jaElkOiBudW1iZXIpOiBzdHJpbmcge1xuICBjb25zdCBtYXA6IFJlY29yZDxzdHJpbmcsIG51bWJlcj4gPSB7XG4gICAgT1ZFUldJTlRFUl9CUkFOQ0hfSUQ6IDB4NWJhODFiMTksXG4gICAgQ0FOT1BZX0JSQU5DSF9JRDogMHhlOWZmNzVhNixcbiAgICBOVTVfQlJBTkNIX0lEOiAweGMyZDZkMGI0LFxuICB9O1xuICByZXR1cm4gT2JqZWN0LmtleXMobWFwKS5maW5kKChrKSA9PiBtYXBba10gPT09IGJyYW5jaElkKSA/PyAndW5rbm93bic7XG59XG5cbmV4cG9ydCB0eXBlIFR4UGFyc2VyQXJncyA9IHtcbiAgcGFyc2VTY3JpcHREYXRhOiBib29sZWFuO1xuICBwYXJzZVNjcmlwdEFzbTogYm9vbGVhbjtcbiAgcGFyc2VPdXRwdXRTY3JpcHQ6IGJvb2xlYW47XG4gIHBhcnNlU2lnbmF0dXJlRGF0YToge1xuICAgIHNjcmlwdDogYm9vbGVhbjtcbiAgICBlY2RzYTogYm9vbGVhbjtcbiAgICBzY2hub3JyOiBib29sZWFuO1xuICB9O1xuICBoaWRlPzogc3RyaW5nW107XG4gIG1heE91dHB1dHM/OiBudW1iZXI7XG4gIHZpbj86IG51bWJlcltdO1xufTtcblxuZXhwb3J0IHR5cGUgQ2hhaW5JbmZvID0ge1xuICBzdGF0dXM/OiBUcmFuc2FjdGlvblN0YXR1cztcbiAgb3V0cHV0U3BlbmRzPzogT3V0cHV0U3BlbmRbXTtcbiAgcHJldk91dHB1dHM/OiB1dHhvbGliLlR4T3V0cHV0W107XG4gIHByZXZPdXRwdXRTcGVuZHM/OiBPdXRwdXRTcGVuZFtdO1xufTtcblxuZXhwb3J0IGNsYXNzIFR4UGFyc2VyIGV4dGVuZHMgUGFyc2VyIHtcbiAgc3RhdGljIFBBUlNFX0FMTDogVHhQYXJzZXJBcmdzID0ge1xuICAgIHBhcnNlU2NyaXB0RGF0YTogdHJ1ZSxcbiAgICBwYXJzZVNjcmlwdEFzbTogdHJ1ZSxcbiAgICBwYXJzZU91dHB1dFNjcmlwdDogdHJ1ZSxcbiAgICBwYXJzZVNpZ25hdHVyZURhdGE6IHtcbiAgICAgIHNjcmlwdDogdHJ1ZSxcbiAgICAgIGVjZHNhOiB0cnVlLFxuICAgICAgc2Nobm9ycjogdHJ1ZSxcbiAgICB9LFxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcGFyYW1zOiBUeFBhcnNlckFyZ3MpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcGFyc2VJbnMoaW5zOiB1dHhvbGliLlR4SW5wdXRbXSwgdHg6IHV0eG9saWIuYml0Z28uVXR4b1RyYW5zYWN0aW9uLCBvdXRwdXRJbmZvOiBDaGFpbkluZm8pOiBQYXJzZXJOb2RlW10ge1xuICAgIGNvbnN0IHR4aWQgPSB0eC5nZXRJZCgpO1xuICAgIGNvbnN0IGlvUGFyc2VyID0gbmV3IElucHV0T3V0cHV0UGFyc2VyKHRoaXMucGFyYW1zKTtcbiAgICByZXR1cm4gaW5zLmZsYXRNYXAoKGlucHV0LCBpKSA9PlxuICAgICAgdGhpcy5wYXJhbXMudmluID09PSB1bmRlZmluZWQgfHwgdGhpcy5wYXJhbXMudmluLmluY2x1ZGVzKGkpXG4gICAgICAgID8gW2lvUGFyc2VyLnBhcnNlSW5wdXQodHhpZCwgdHgsIGksIHR4Lmluc1tpXSwgb3V0cHV0SW5mbyldXG4gICAgICAgIDogW11cbiAgICApO1xuICB9XG5cbiAgcGFyc2VPdXRzKG91dHM6IHV0eG9saWIuVHhPdXRwdXRbXSwgdHg6IHV0eG9saWIuYml0Z28uVXR4b1RyYW5zYWN0aW9uLCBwYXJhbXM6IENoYWluSW5mbyk6IFBhcnNlck5vZGVbXSB7XG4gICAgaWYgKG91dHMubGVuZ3RoID4gKHRoaXMucGFyYW1zLm1heE91dHB1dHMgPz8gMjAwKSkge1xuICAgICAgcmV0dXJuIFt0aGlzLm5vZGUoJyhvbWl0dGVkKScsIHVuZGVmaW5lZCldO1xuICAgIH1cblxuICAgIGNvbnN0IHR4aWQgPSB0eC5nZXRJZCgpO1xuICAgIGNvbnN0IGlvUGFyc2VyID0gbmV3IElucHV0T3V0cHV0UGFyc2VyKHRoaXMucGFyYW1zKTtcbiAgICByZXR1cm4gb3V0cy5tYXAoKG8sIGkpID0+IGlvUGFyc2VyLnBhcnNlT3V0cHV0KHR4aWQsIG8sIGksIHR4Lm5ldHdvcmssIHBhcmFtcykpO1xuICB9XG5cbiAgcGFyc2VTdGF0dXModHg6IHV0eG9saWIuYml0Z28uVXR4b1RyYW5zYWN0aW9uLCBzdGF0dXM/OiBUcmFuc2FjdGlvblN0YXR1cyk6IFBhcnNlck5vZGVbXSB7XG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybiBbdGhpcy5ub2RlKCdzdGF0dXMnLCAndW5rbm93bicpXTtcbiAgICB9XG4gICAgcmV0dXJuIFtcbiAgICAgIHRoaXMubm9kZShcbiAgICAgICAgJ3N0YXR1cycsXG4gICAgICAgIHN0YXR1cy5mb3VuZCA/ICdmb3VuZCcgOiAnbm90IGZvdW5kJyxcbiAgICAgICAgc3RhdHVzLmZvdW5kXG4gICAgICAgICAgPyBzdGF0dXMuY29uZmlybWVkXG4gICAgICAgICAgICA/IFtcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUoXG4gICAgICAgICAgICAgICAgICAnY29uZmlybWVkJyxcbiAgICAgICAgICAgICAgICAgIGBibG9jayAke3N0YXR1cy5ibG9ja0hlaWdodH1gICsgKHN0YXR1cy5kYXRlID8gYCBkYXRlPSR7c3RhdHVzLmRhdGUudG9JU09TdHJpbmcoKX1gIDogJycpXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgOiBbdGhpcy5ub2RlKCdjb25maXJtZWQnLCBmYWxzZSldXG4gICAgICAgICAgOiBbXVxuICAgICAgKSxcbiAgICBdO1xuICB9XG5cbiAgcGFyc2VWZXJzaW9uKHR4OiB1dHhvbGliLmJpdGdvLlV0eG9UcmFuc2FjdGlvbik6IFBhcnNlck5vZGUge1xuICAgIHJldHVybiB0aGlzLm5vZGUoXG4gICAgICAndmVyc2lvbicsXG4gICAgICB0eC52ZXJzaW9uLFxuICAgICAgdHggaW5zdGFuY2VvZiB1dHhvbGliLmJpdGdvLlpjYXNoVHJhbnNhY3Rpb25cbiAgICAgICAgPyBbXG4gICAgICAgICAgICB0aGlzLm5vZGUoJ2NvbnNlbnN1c0JyYW5jaElkIChpbmZlcnJlZCknLCB0eC5jb25zZW5zdXNCcmFuY2hJZC50b1N0cmluZygxNiksIFtcbiAgICAgICAgICAgICAgdGhpcy5ub2RlKCduYW1lJywgZm9ybWF0Q29uc2Vuc3VzQnJhbmNoSWQodHguY29uc2Vuc3VzQnJhbmNoSWQpKSxcbiAgICAgICAgICAgIF0pLFxuICAgICAgICAgIF1cbiAgICAgICAgOiBbXVxuICAgICk7XG4gIH1cblxuICBwYXJzZSh0eDogdXR4b2xpYi5iaXRnby5VdHhvVHJhbnNhY3Rpb24sIGNoYWluSW5mbzogQ2hhaW5JbmZvID0ge30pOiBQYXJzZXJOb2RlIHtcbiAgICBjb25zdCB3ZWlnaHQgPSB0eC53ZWlnaHQoKTtcbiAgICBjb25zdCB2c2l6ZSA9IHR4LnZpcnR1YWxTaXplKCk7XG4gICAgY29uc3Qgb3V0cHV0U3VtID0gdHgub3V0cy5yZWR1Y2UoKHN1bSwgbykgPT4gc3VtICsgby52YWx1ZSwgMCk7XG4gICAgY29uc3QgaW5wdXRTdW0gPSBjaGFpbkluZm8ucHJldk91dHB1dHM/LnJlZHVjZSgoc3VtLCBvKSA9PiBzdW0gKyBvLnZhbHVlLCAwKTtcbiAgICBjb25zdCBmZWUgPSBpbnB1dFN1bSA/IGlucHV0U3VtIC0gb3V0cHV0U3VtIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IGZlZVJhdGUgPSBmZWUgPyBmZWUgLyB2c2l6ZSA6IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gdGhpcy5ub2RlKCd0cmFuc2FjdGlvbicsIHR4LmdldElkKCksIFtcbiAgICAgIHRoaXMubm9kZShcbiAgICAgICAgJ3BhcnNlZEFzJyxcbiAgICAgICAgYCR7dXR4b2xpYi5nZXROZXR3b3JrTmFtZSh1dHhvbGliLmdldE1haW5uZXQodHgubmV0d29yaykpfSBgICtcbiAgICAgICAgICBgJHt1dHhvbGliLmlzTWFpbm5ldCh0eC5uZXR3b3JrKSA/ICdtYWlubmV0JyA6ICd0ZXN0bmV0J31gXG4gICAgICApLFxuICAgICAgdGhpcy5wYXJzZVZlcnNpb24odHgpLFxuICAgICAgdGhpcy5ub2RlKCdsb2NrdGltZScsIHR4LmxvY2t0aW1lKSxcbiAgICAgIHRoaXMubm9kZSgnaGFzV2l0bmVzc2VzJywgdHguaGFzV2l0bmVzc2VzKCkpLFxuICAgICAgLi4udGhpcy5wYXJzZVN0YXR1cyh0eCwgY2hhaW5JbmZvLnN0YXR1cyksXG4gICAgICB0aGlzLm5vZGUoJ3ZzaXplJywgYCR7dnNpemV9dmJ5dGVzICgke3dlaWdodH13dSlgKSxcbiAgICAgIC4uLihmZWUgJiYgZmVlUmF0ZVxuICAgICAgICA/IFt0aGlzLm5vZGUoJ2ZlZSBbYnRjXScsIGZvcm1hdFNhdChmZWUpKSwgdGhpcy5ub2RlKCdmZWVSYXRlIFtzYXQvdmJ5dGVdJywgZmVlUmF0ZS50b0ZpeGVkKDIpKV1cbiAgICAgICAgOiBbXSksXG4gICAgICB0aGlzLm5vZGUoXG4gICAgICAgIGBpbnB1dHNgLFxuICAgICAgICBbU3RyaW5nKHR4Lmlucy5sZW5ndGgpXS5jb25jYXQoaW5wdXRTdW0gPyBbJ3N1bT0nICsgZm9ybWF0U2F0KGlucHV0U3VtKV0gOiBbXSkuam9pbignICcpLFxuICAgICAgICB0aGlzLnBhcnNlSW5zKHR4LmlucywgdHgsIGNoYWluSW5mbylcbiAgICAgICksXG4gICAgICB0aGlzLm5vZGUoXG4gICAgICAgIGBvdXRwdXRzYCxcbiAgICAgICAgW1N0cmluZyh0eC5vdXRzLmxlbmd0aCksICdzdW09JyArIGZvcm1hdFNhdChvdXRwdXRTdW0pXS5qb2luKCcgJyksXG4gICAgICAgIHRoaXMucGFyc2VPdXRzKHR4Lm91dHMsIHR4LCBjaGFpbkluZm8pXG4gICAgICApLFxuICAgIF0pO1xuICB9XG59XG4iXX0=
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHhQYXJzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvVHhQYXJzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsZ0RBQWdEO0FBQ2hELHFDQUE4QztBQUM5QyxxQ0FBcUM7QUFDckMseUNBQTRGO0FBQzVGLCtDQUE0QztBQUM1QyxpREFBOEM7QUFFOUMsU0FBUyx1QkFBdUIsQ0FBQyxRQUFnQjs7SUFDL0MsTUFBTSxHQUFHLEdBQTJCO1FBQ2xDLG9CQUFvQixFQUFFLFVBQVU7UUFDaEMsZ0JBQWdCLEVBQUUsVUFBVTtRQUM1QixhQUFhLEVBQUUsVUFBVTtLQUMxQixDQUFDO0lBQ0YsT0FBTyxNQUFBLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssUUFBUSxDQUFDLG1DQUFJLFNBQVMsQ0FBQztBQUN4RSxDQUFDO0FBMEJELE1BQWEsUUFBUyxTQUFRLGVBQU07SUFhbEMsWUFBb0IsTUFBb0I7UUFDdEMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBREksV0FBTSxHQUFOLE1BQU0sQ0FBYztJQUV4QyxDQUFDO0lBRUQsUUFBUSxDQUFDLEdBQW9CLEVBQUUsRUFBWSxFQUFFLElBQVksRUFBRSxVQUFxQjtRQUM5RSxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFvQixFQUFFLENBQVMsRUFBRSxFQUFFLENBQ3JELElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQzFELENBQUMsQ0FBQyxDQUFDLElBQUkseUJBQVcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFVBQVUsRUFBRSxD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LEVBQUUsS0FBSztDQUN0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3V0cHV0U3BlbmQsIFRyYW5zYWN0aW9uU3RhdHVzIH0gZnJvbSAnQGJpdGdvLWJldGEvYmxvY2thcGlzJztcbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuaW1wb3J0IHsgUGFyc2VyLCBQYXJzZXJOb2RlIH0gZnJvbSAnLi9QYXJzZXInO1xuaW1wb3J0IHsgZm9ybWF0U2F0IH0gZnJvbSAnLi9mb3JtYXQnO1xuaW1wb3J0IHsgZ2V0UGFyc2VyVHhQcm9wZXJ0aWVzLCBQYXJzZXJUeCwgUGFyc2VyVHhJbnB1dCwgUGFyc2VyVHhPdXRwdXQgfSBmcm9tICcuL1BhcnNlclR4JztcbmltcG9ydCB7IElucHV0UGFyc2VyIH0gZnJvbSAnLi9JbnB1dFBhcnNlcic7XG5pbXBvcnQgeyBPdXRwdXRQYXJzZXIgfSBmcm9tICcuL091dHB1dFBhcnNlcic7XG5cbmZ1bmN0aW9uIGZvcm1hdENvbnNlbnN1c0JyYW5jaElkKGJyYW5jaElkOiBudW1iZXIpOiBzdHJpbmcge1xuICBjb25zdCBtYXA6IFJlY29yZDxzdHJpbmcsIG51bWJlcj4gPSB7XG4gICAgT1ZFUldJTlRFUl9CUkFOQ0hfSUQ6IDB4NWJhODFiMTksXG4gICAgQ0FOT1BZX0JSQU5DSF9JRDogMHhlOWZmNzVhNixcbiAgICBOVTVfQlJBTkNIX0lEOiAweGMyZDZkMGI0LFxuICB9O1xuICByZXR1cm4gT2JqZWN0LmtleXMobWFwKS5maW5kKChrKSA9PiBtYXBba10gPT09IGJyYW5jaElkKSA/PyAndW5rbm93bic7XG59XG5cbmV4cG9ydCB0eXBlIFR4UGFyc2VyQXJncyA9IHtcbiAgcGFyc2VTY3JpcHREYXRhOiBib29sZWFuO1xuICBwYXJzZVNjcmlwdEFzbTogYm9vbGVhbjtcbiAgcGFyc2VPdXRwdXRTY3JpcHQ6IGJvb2xlYW47XG4gIHBhcnNlU2lnbmF0dXJlRGF0YToge1xuICAgIHNjcmlwdDogYm9vbGVhbjtcbiAgICBlY2RzYTogYm9vbGVhbjtcbiAgICBzY2hub3JyOiBib29sZWFuO1xuICB9O1xuICBwYXJzZUFzVW5rbm93bjogYm9vbGVhbjtcbiAgaGlkZT86IHN0cmluZ1tdO1xuICBtYXhPdXRwdXRzPzogbnVtYmVyO1xuICB2aW4/OiBudW1iZXJbXTtcbiAgdm91dD86IG51bWJlcltdO1xuICBwYXJzZUVycm9yPzogJ3Rocm93JyB8ICdjb250aW51ZSc7XG59O1xuXG5leHBvcnQgdHlwZSBDaGFpbkluZm8gPSB7XG4gIHN0YXR1cz86IFRyYW5zYWN0aW9uU3RhdHVzO1xuICBvdXRwdXRTcGVuZHM/OiBPdXRwdXRTcGVuZFtdO1xuICBwcmV2T3V0cHV0cz86IHV0eG9saWIuVHhPdXRwdXQ8YmlnaW50PltdO1xuICBwcmV2T3V0cHV0U3BlbmRzPzogT3V0cHV0U3BlbmRbXTtcbn07XG5cbmV4cG9ydCBjbGFzcyBUeFBhcnNlciBleHRlbmRzIFBhcnNlciB7XG4gIHN0YXRpYyBQQVJTRV9BTEw6IFR4UGFyc2VyQXJncyA9IHtcbiAgICBwYXJzZVNjcmlwdERhdGE6IHRydWUsXG4gICAgcGFyc2VTY3JpcHRBc206IHRydWUsXG4gICAgcGFyc2VPdXRwdXRTY3JpcHQ6IHRydWUsXG4gICAgcGFyc2VTaWduYXR1cmVEYXRhOiB7XG4gICAgICBzY3JpcHQ6IHRydWUsXG4gICAgICBlY2RzYTogdHJ1ZSxcbiAgICAgIHNjaG5vcnI6IHRydWUsXG4gICAgfSxcbiAgICBwYXJzZUFzVW5rbm93bjogZmFsc2UsXG4gIH07XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwYXJhbXM6IFR4UGFyc2VyQXJncykge1xuICAgIHN1cGVyKHBhcmFtcyk7XG4gIH1cblxuICBwYXJzZUlucyhpbnM6IFBhcnNlclR4SW5wdXRbXSwgdHg6IFBhcnNlclR4LCB0eGlkOiBzdHJpbmcsIG91dHB1dEluZm86IENoYWluSW5mbyk6IFBhcnNlck5vZGVbXSB7XG4gICAgcmV0dXJuIGlucy5mbGF0TWFwKChpbnB1dDogUGFyc2VyVHhJbnB1dCwgaTogbnVtYmVyKSA9PlxuICAgICAgdGhpcy5wYXJhbXMudmluID09PSB1bmRlZmluZWQgfHwgdGhpcy5wYXJhbXMudmluLmluY2x1ZGVzKGkpXG4gICAgICAgID8gW25ldyBJbnB1dFBhcnNlcih0eGlkLCB0eCwgaSwgb3V0cHV0SW5mbywgdGhpcy5wYXJhbXMpLnBhcnNlSW5wdXQoKV1cbiAgICAgICAgOiBbXVxuICAgICk7XG4gIH1cblxuICBwYXJzZU91dHMob3V0czogUGFyc2VyVHhPdXRwdXRbXSwgdHg6IFBhcnNlclR4LCB0eGlkOiBzdHJpbmcsIHBhcmFtczogQ2hhaW5JbmZvKTogUGFyc2VyTm9kZVtdIHtcbiAgICBpZiAodGhpcy5wYXJhbXMudm91dCA9PT0gdW5kZWZpbmVkICYmIG91dHMubGVuZ3RoID4gKHRoaXMucGFyYW1zLm1heE91dHB1dHMgPz8gMjAwKSkge1xuICAgICAgcmV0dXJuIFt0aGlzLm5vZGUoJyhvbWl0dGVkKScsIHVuZGVmaW5lZCldO1xuICAgIH1cblxuICAgIHJldHVybiBvdXRzLmZsYXRNYXAoKG8sIGkpID0+XG4gICAgICB0aGlzLnBhcmFtcy52b3V0ID09PSB1bmRlZmluZWQgfHwgdGhpcy5wYXJhbXMudm91dC5pbmNsdWRlcyhpKVxuICAgICAgICA/IFtuZXcgT3V0cHV0UGFyc2VyKHR4Lm5ldHdvcmssIHR4aWQsIGksIG8sIHBhcmFtcywgdGhpcy5wYXJhbXMpLnBhcnNlT3V0cHV0KCldXG4gICAgICAgIDogW11cbiAgICApO1xuICB9XG5cbiAgcGFyc2VTdGF0dXMoc3RhdHVzPzogVHJhbnNhY3Rpb25TdGF0dXMpOiBQYXJzZXJOb2RlW10ge1xuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm4gW3RoaXMubm9kZSgnc3RhdHVzJywgJ3Vua25vd24nKV07XG4gICAgfVxuICAgIHJldHVybiBbXG4gICAgICB0aGlzLm5vZGUoXG4gICAgICAgICdzdGF0dXMnLFxuICAgICAgICBzdGF0dXMuZm91bmQgPyAnZm91bmQnIDogJ25vdCBmb3VuZCcsXG4gICAgICAgIHN0YXR1cy5mb3VuZFxuICAgICAgICAgID8gc3RhdHVzLmNvbmZpcm1lZFxuICAgICAgICAgICAgPyBbXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlKFxuICAgICAgICAgICAgICAgICAgJ2NvbmZpcm1lZCcsXG4gICAgICAgICAgICAgICAgICBgYmxvY2sgJHtzdGF0dXMuYmxvY2tIZWlnaHR9YCArIChzdGF0dXMuZGF0ZSA/IGAgZGF0ZT0ke3N0YXR1cy5kYXRlLnRvSVNPU3RyaW5nKCl9YCA6ICcnKVxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIDogW3RoaXMubm9kZSgnY29uZmlybWVkJywgZmFsc2UpXVxuICAgICAgICAgIDogW11cbiAgICAgICksXG4gICAgXTtcbiAgfVxuXG4gIHBhcnNlVmVyc2lvbih0eDogdXR4b2xpYi5iaXRnby5VdHhvVHJhbnNhY3Rpb248YmlnaW50PiB8IHV0eG9saWIuYml0Z28uVXR4b1BzYnQpOiBQYXJzZXJOb2RlIHtcbiAgICByZXR1cm4gdGhpcy5ub2RlKFxuICAgICAgJ3ZlcnNpb24nLFxuICAgICAgdHgudmVyc2lvbixcbiAgICAgIHR4IGluc3RhbmNlb2YgdXR4b2xpYi5iaXRnby5aY2FzaFRyYW5zYWN0aW9uXG4gICAgICAgID8gW1xuICAgICAgICAgICAgdGhpcy5ub2RlKCdjb25zZW5zdXNCcmFuY2hJZCAoaW5mZXJyZWQpJywgdHguY29uc2Vuc3VzQnJhbmNoSWQudG9TdHJpbmcoMTYpLCBbXG4gICAgICAgICAgICAgIHRoaXMubm9kZSgnbmFtZScsIGZvcm1hdENvbnNlbnN1c0JyYW5jaElkKHR4LmNvbnNlbnN1c0JyYW5jaElkKSksXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgICBdXG4gICAgICAgIDogW11cbiAgICApO1xuICB9XG5cbiAgcGFyc2UodHg6IFBhcnNlclR4LCBjaGFpbkluZm86IENoYWluSW5mbyA9IHt9KTogUGFyc2VyTm9kZSB7XG4gICAgY29uc3QgeyBmb3JtYXQsIGNvbXBsZXRlLCBpZCwgd2VpZ2h0LCBpbnB1dHMsIG91dHB1dHMsIGhhc1dpdG5lc3NlcywgaW5wdXRTdW0sIG91dHB1dFN1bSB9ID0gZ2V0UGFyc2VyVHhQcm9wZXJ0aWVzKFxuICAgICAgdHgsXG4gICAgICBjaGFpbkluZm8ucHJldk91dHB1dHNcbiAgICApO1xuICAgIGNvbnN0IHZzaXplID0gd2VpZ2h0ID09PSB1bmRlZmluZWQgPyB1bmRlZmluZWQgOiBNYXRoLmNlaWwod2VpZ2h0IC8gNCk7XG4gICAgY29uc3QgZmVlID0gaW5wdXRTdW0gPyBpbnB1dFN1bSAtIG91dHB1dFN1bSA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBmZWVSYXRlID0gZmVlICYmIHZzaXplID8gTnVtYmVyKGZlZSkgLyB2c2l6ZSA6IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gdGhpcy5ub2RlKCd0cmFuc2FjdGlvbicsIGlkLCBbXG4gICAgICB0aGlzLm5vZGUoJ2Zvcm1hdCcsIGZvcm1hdCksXG4gICAgICB0aGlzLm5vZGUoJ2NvbXBsZXRlJywgY29tcGxldGUpLFxuICAgICAgdGhpcy5ub2RlKFxuICAgICAgICAncGFyc2VkQXMnLFxuICAgICAgICBgJHt1dHhvbGliLmdldE5ldHdvcmtOYW1lKHV0eG9saWIuZ2V0TWFpbm5ldCh0eC5uZXR3b3JrKSl9IGAgK1xuICAgICAgICAgIGAke3V0eG9saWIuaXNNYWlubmV0KHR4Lm5ldHdvcmspID8gJ21haW5uZXQnIDogJ3Rlc3RuZXQnfWBcbiAgICAgICksXG4gICAgICB0aGlzLnBhcnNlVmVyc2lvbih0eCksXG4gICAgICB0aGlzLm5vZGUoJ2xvY2t0aW1lJywgdHgubG9ja3RpbWUpLFxuICAgICAgdGhpcy5ub2RlKCdoYXNXaXRuZXNzZXMnLCBoYXNXaXRuZXNzZXMpLFxuICAgICAgLi4udGhpcy5wYXJzZVN0YXR1cyhjaGFpbkluZm8uc3RhdHVzKSxcbiAgICAgIHRoaXMubm9kZSgndnNpemUnLCBgJHt2c2l6ZX12Ynl0ZXMgKCR7d2VpZ2h0fXd1KWApLFxuICAgICAgLi4uKGZlZSAmJiBmZWVSYXRlXG4gICAgICAgID8gW3RoaXMubm9kZSgnZmVlIFtidGNdJywgZm9ybWF0U2F0KGZlZSkpLCB0aGlzLm5vZGUoJ2ZlZVJhdGUgW3NhdC92Ynl0ZV0nLCBmZWVSYXRlLnRvRml4ZWQoMikpXVxuICAgICAgICA6IFtdKSxcbiAgICAgIHRoaXMubm9kZShcbiAgICAgICAgYGlucHV0c2AsXG4gICAgICAgIFtpbnB1dHMubGVuZ3RoLnRvU3RyaW5nKCldLmNvbmNhdChpbnB1dFN1bSA/IFsnc3VtPScgKyBmb3JtYXRTYXQoaW5wdXRTdW0pXSA6IFtdKS5qb2luKCcgJyksXG4gICAgICAgIHRoaXMucGFyc2VJbnMoaW5wdXRzLCB0eCwgaWQsIGNoYWluSW5mbylcbiAgICAgICksXG4gICAgICB0aGlzLm5vZGUoXG4gICAgICAgIGBvdXRwdXRzYCxcbiAgICAgICAgW291dHB1dHMubGVuZ3RoLnRvU3RyaW5nKCksICdzdW09JyArIGZvcm1hdFNhdChvdXRwdXRTdW0pXS5qb2luKCcgJyksXG4gICAgICAgIHRoaXMucGFyc2VPdXRzKG91dHB1dHMsIHR4LCBpZCwgY2hhaW5JbmZvKVxuICAgICAgKSxcbiAgICBdKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,5 @@
1
+ import { ParserNode } from './Parser';
2
+ export declare function parseXpub(xpub: string, params: {
3
+ derive?: string;
4
+ }): ParserNode;
5
+ //# sourceMappingURL=bip32.d.ts.map