@bitgo/abstract-utxo 9.3.0 → 9.4.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 (113) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/src/abstractUtxoCoin.d.ts +3 -6
  3. package/dist/src/abstractUtxoCoin.d.ts.map +1 -1
  4. package/dist/src/abstractUtxoCoin.js +85 -58
  5. package/dist/src/core/descriptor/DescriptorMap.d.ts +9 -0
  6. package/dist/src/core/descriptor/DescriptorMap.d.ts.map +1 -0
  7. package/dist/src/core/descriptor/DescriptorMap.js +9 -0
  8. package/dist/src/core/descriptor/Output.d.ts +24 -0
  9. package/dist/src/core/descriptor/Output.d.ts.map +1 -0
  10. package/dist/src/core/descriptor/Output.js +22 -0
  11. package/dist/src/core/descriptor/VirtualSize.d.ts +21 -0
  12. package/dist/src/core/descriptor/VirtualSize.d.ts.map +1 -0
  13. package/dist/src/core/descriptor/VirtualSize.js +83 -0
  14. package/dist/src/core/descriptor/address.d.ts +5 -0
  15. package/dist/src/core/descriptor/address.d.ts.map +1 -0
  16. package/dist/src/core/descriptor/address.js +48 -0
  17. package/dist/src/core/descriptor/index.d.ts +9 -0
  18. package/dist/src/core/descriptor/index.d.ts.map +1 -0
  19. package/dist/src/core/descriptor/index.js +17 -0
  20. package/dist/src/core/descriptor/psbt/assertSatisfiable.d.ts +20 -0
  21. package/dist/src/core/descriptor/psbt/assertSatisfiable.d.ts.map +1 -0
  22. package/dist/src/core/descriptor/psbt/assertSatisfiable.js +75 -0
  23. package/dist/src/core/descriptor/psbt/createPsbt.d.ts +15 -0
  24. package/dist/src/core/descriptor/psbt/createPsbt.d.ts.map +1 -0
  25. package/dist/src/core/descriptor/psbt/createPsbt.js +83 -0
  26. package/dist/src/core/descriptor/psbt/findDescriptors.d.ts +22 -0
  27. package/dist/src/core/descriptor/psbt/findDescriptors.d.ts.map +1 -0
  28. package/dist/src/core/descriptor/psbt/findDescriptors.js +75 -0
  29. package/dist/src/core/descriptor/psbt/index.d.ts +5 -0
  30. package/dist/src/core/descriptor/psbt/index.d.ts.map +1 -0
  31. package/dist/src/core/descriptor/psbt/index.js +10 -0
  32. package/dist/src/core/descriptor/psbt/parse.d.ts +27 -0
  33. package/dist/src/core/descriptor/psbt/parse.d.ts.map +1 -0
  34. package/dist/src/core/descriptor/psbt/parse.js +87 -0
  35. package/dist/src/core/descriptor/psbt/wrap.d.ts +12 -0
  36. package/dist/src/core/descriptor/psbt/wrap.d.ts.map +1 -0
  37. package/dist/src/core/descriptor/psbt/wrap.js +76 -0
  38. package/dist/src/core/descriptor/signTxLocal.d.ts +3 -0
  39. package/dist/src/core/descriptor/signTxLocal.d.ts.map +1 -0
  40. package/dist/src/core/descriptor/signTxLocal.js +9 -0
  41. package/dist/src/descriptor/NamedDescriptor.js +35 -2
  42. package/dist/src/descriptor/assertDescriptorWalletAddress.js +44 -8
  43. package/dist/src/index.js +24 -2
  44. package/dist/src/names.js +35 -2
  45. package/dist/src/parseOutput.d.ts +0 -3
  46. package/dist/src/parseOutput.d.ts.map +1 -1
  47. package/dist/src/parseOutput.js +15 -15
  48. package/dist/src/recovery/backupKeyRecovery.d.ts +0 -3
  49. package/dist/src/recovery/backupKeyRecovery.d.ts.map +1 -1
  50. package/dist/src/recovery/backupKeyRecovery.js +47 -14
  51. package/dist/src/recovery/baseApi.d.ts +1 -4
  52. package/dist/src/recovery/baseApi.d.ts.map +1 -1
  53. package/dist/src/recovery/baseApi.js +6 -6
  54. package/dist/src/recovery/coingeckoApi.d.ts +0 -3
  55. package/dist/src/recovery/coingeckoApi.d.ts.map +1 -1
  56. package/dist/src/recovery/coingeckoApi.js +1 -4
  57. package/dist/src/recovery/crossChainRecovery.d.ts.map +1 -1
  58. package/dist/src/recovery/crossChainRecovery.js +40 -7
  59. package/dist/src/recovery/mempoolApi.d.ts.map +1 -1
  60. package/dist/src/recovery/mempoolApi.js +7 -7
  61. package/dist/src/replayProtection.js +35 -2
  62. package/dist/src/sign.d.ts +0 -3
  63. package/dist/src/sign.d.ts.map +1 -1
  64. package/dist/src/sign.js +41 -8
  65. package/dist/src/transaction/explainTransaction.d.ts +9 -8
  66. package/dist/src/transaction/explainTransaction.d.ts.map +1 -1
  67. package/dist/src/transaction/explainTransaction.js +42 -182
  68. package/dist/src/transaction/fetchInputs.js +35 -2
  69. package/dist/src/transaction/fixedScript/explainTransaction.d.ts +30 -0
  70. package/dist/src/transaction/fixedScript/explainTransaction.d.ts.map +1 -0
  71. package/dist/src/transaction/fixedScript/explainTransaction.js +220 -0
  72. package/dist/src/transaction/fixedScript/index.d.ts +2 -0
  73. package/dist/src/transaction/fixedScript/index.d.ts.map +1 -0
  74. package/dist/src/transaction/fixedScript/index.js +7 -0
  75. package/dist/src/transaction/index.d.ts +1 -1
  76. package/dist/src/transaction/index.d.ts.map +1 -1
  77. package/dist/src/transaction/index.js +4 -2
  78. package/dist/src/transaction/recipient.js +35 -2
  79. package/dist/test/core/descriptor/descriptor.utils.d.ts +9 -0
  80. package/dist/test/core/descriptor/descriptor.utils.d.ts.map +1 -0
  81. package/dist/test/core/descriptor/descriptor.utils.js +57 -0
  82. package/dist/test/core/descriptor/psbt/VirtualSize.d.ts +2 -0
  83. package/dist/test/core/descriptor/psbt/VirtualSize.d.ts.map +1 -0
  84. package/dist/test/core/descriptor/psbt/VirtualSize.js +78 -0
  85. package/dist/test/core/descriptor/psbt/assertSatisfiable.d.ts +2 -0
  86. package/dist/test/core/descriptor/psbt/assertSatisfiable.d.ts.map +1 -0
  87. package/dist/test/core/descriptor/psbt/assertSatisfiable.js +56 -0
  88. package/dist/test/core/descriptor/psbt/createPsbt.d.ts +2 -0
  89. package/dist/test/core/descriptor/psbt/createPsbt.d.ts.map +1 -0
  90. package/dist/test/core/descriptor/psbt/createPsbt.js +85 -0
  91. package/dist/test/core/descriptor/psbt/findDescriptors.d.ts +2 -0
  92. package/dist/test/core/descriptor/psbt/findDescriptors.d.ts.map +1 -0
  93. package/dist/test/core/descriptor/psbt/findDescriptors.js +66 -0
  94. package/dist/test/core/descriptor/psbt/mock.utils.d.ts +34 -0
  95. package/dist/test/core/descriptor/psbt/mock.utils.d.ts.map +1 -0
  96. package/dist/test/core/descriptor/psbt/mock.utils.js +89 -0
  97. package/dist/test/core/descriptor/psbt/parse.d.ts +2 -0
  98. package/dist/test/core/descriptor/psbt/parse.d.ts.map +1 -0
  99. package/dist/test/core/descriptor/psbt/parse.js +32 -0
  100. package/dist/test/core/descriptor/psbt/psbt.utils.d.ts +4 -0
  101. package/dist/test/core/descriptor/psbt/psbt.utils.d.ts.map +1 -0
  102. package/dist/test/core/descriptor/psbt/psbt.utils.js +20 -0
  103. package/dist/test/core/fixtures.utils.d.ts +15 -0
  104. package/dist/test/core/fixtures.utils.d.ts.map +1 -0
  105. package/dist/test/core/fixtures.utils.js +114 -0
  106. package/dist/test/core/key.utils.d.ts +16 -0
  107. package/dist/test/core/key.utils.d.ts.map +1 -0
  108. package/dist/test/core/key.utils.js +59 -0
  109. package/dist/test/core/toPlainObject.utils.d.ts +11 -0
  110. package/dist/test/core/toPlainObject.utils.d.ts.map +1 -0
  111. package/dist/test/core/toPlainObject.utils.js +76 -0
  112. package/dist/tsconfig.tsbuildinfo +1 -1
  113. package/package.json +10 -7
@@ -1,191 +1,51 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.explainPsbt = explainPsbt;
4
- exports.explainTx = explainTx;
5
- const utxo_lib_1 = require("@bitgo/utxo-lib");
6
- const utxolib = require("@bitgo/utxo-lib");
7
- const recipient_1 = require("./recipient");
8
- function explainCommon(tx, params, network) {
9
- var _a;
10
- const displayOrder = ['id', 'outputAmount', 'changeAmount', 'outputs', 'changeOutputs'];
11
- let spendAmount = BigInt(0);
12
- let changeAmount = BigInt(0);
13
- const changeOutputs = [];
14
- const outputs = [];
15
- const { changeInfo } = params;
16
- const changeAddresses = (_a = changeInfo === null || changeInfo === void 0 ? void 0 : changeInfo.map((info) => info.address)) !== null && _a !== void 0 ? _a : [];
17
- tx.outs.forEach((currentOutput) => {
18
- // Try to encode the script pubkey with an address. If it fails, try to parse it as an OP_RETURN output with the prefix.
19
- // If that fails, then it is an unrecognized scriptPubkey and should fail
20
- const currentAddress = (0, recipient_1.toExtendedAddressFormat)(currentOutput.script, network);
21
- const currentAmount = BigInt(currentOutput.value);
22
- if (changeAddresses.includes(currentAddress)) {
23
- // this is change
24
- changeAmount += currentAmount;
25
- const change = changeInfo === null || changeInfo === void 0 ? void 0 : changeInfo.find((change) => change.address === currentAddress);
26
- if (!change) {
27
- throw new Error('changeInfo must have change information for all change outputs');
28
- }
29
- changeOutputs.push({
30
- address: currentAddress,
31
- amount: currentAmount.toString(),
32
- chain: change.chain,
33
- index: change.index,
34
- external: false,
35
- });
36
- return;
37
- }
38
- spendAmount += currentAmount;
39
- outputs.push({
40
- address: currentAddress,
41
- amount: currentAmount.toString(),
42
- // If changeInfo has a length greater than or equal to zero, it means that the change information
43
- // was provided to the function but the output was not identified as change. In this case,
44
- // the output is external, and we can set it as so. If changeInfo is undefined, it means we were
45
- // given no information about change outputs, so we can't determine anything about the output,
46
- // so we leave it undefined.
47
- external: changeInfo ? true : undefined,
48
- });
49
- });
50
- const outputDetails = {
51
- outputAmount: spendAmount.toString(),
52
- changeAmount: changeAmount.toString(),
53
- outputs,
54
- changeOutputs,
55
- };
56
- let fee;
57
- let locktime;
58
- if (params.feeInfo) {
59
- displayOrder.push('fee');
60
- fee = params.feeInfo;
61
- }
62
- if (Number.isInteger(tx.locktime) && tx.locktime > 0) {
63
- displayOrder.push('locktime');
64
- locktime = tx.locktime;
65
- }
66
- return { displayOrder, id: tx.getId(), ...outputDetails, fee, locktime };
67
- }
68
- function getRootWalletKeys(params) {
69
- var _a;
70
- const keys = (_a = params.pubs) === null || _a === void 0 ? void 0 : _a.map((xpub) => utxo_lib_1.bip32.fromBase58(xpub));
71
- return keys && keys.length === 3 ? new utxo_lib_1.bitgo.RootWalletKeys(keys) : undefined;
72
- }
73
- function getPsbtInputSignaturesCount(psbt, params) {
74
- const rootWalletKeys = getRootWalletKeys(params);
75
- return rootWalletKeys
76
- ? utxo_lib_1.bitgo.getSignatureValidationArrayPsbt(psbt, rootWalletKeys).map((sv) => sv[1].filter((v) => v).length)
77
- : Array(psbt.data.inputs.length).fill(0);
78
- }
79
- function getTxInputSignaturesCount(tx, params, network) {
80
- var _a, _b, _c;
81
- const prevOutputs = (_b = (_a = params.txInfo) === null || _a === void 0 ? void 0 : _a.unspents) === null || _b === void 0 ? void 0 : _b.map((u) => utxo_lib_1.bitgo.toOutput(u, network));
82
- const rootWalletKeys = getRootWalletKeys(params);
83
- const { unspents = [] } = (_c = params.txInfo) !== null && _c !== void 0 ? _c : {};
84
- // get the number of signatures per input
85
- return tx.ins.map((input, idx) => {
86
- if (unspents.length !== tx.ins.length) {
87
- return 0;
88
- }
89
- if (!prevOutputs) {
90
- throw new Error(`invalid state`);
91
- }
92
- if (!rootWalletKeys) {
93
- // no pub keys or incorrect number of pub keys
94
- return 0;
95
- }
96
- try {
97
- return utxo_lib_1.bitgo.verifySignatureWithUnspent(tx, idx, unspents, rootWalletKeys).filter((v) => v).length;
98
- }
99
- catch (e) {
100
- // some other error occurred and we can't validate the signatures
101
- return 0;
102
- }
103
- });
104
- }
105
- /**
106
- * Decompose a raw psbt into useful information, such as the total amounts,
107
- * change amounts, and transaction outputs.
108
- */
109
- function explainPsbt(psbt, params, network) {
110
- const txOutputs = psbt.txOutputs;
111
- function getChainAndIndexFromBip32Derivations(output) {
112
- var _a, _b;
113
- const derivations = (_b = (_a = output.bip32Derivation) !== null && _a !== void 0 ? _a : output.tapBip32Derivation) !== null && _b !== void 0 ? _b : undefined;
114
- if (!derivations) {
115
- return undefined;
116
- }
117
- const paths = derivations.map((d) => d.path);
118
- if (!paths || paths.length !== 3) {
119
- throw new Error('expected 3 paths in bip32Derivation or tapBip32Derivation');
120
- }
121
- if (!paths.every((p) => paths[0] === p)) {
122
- throw new Error('expected all paths to be the same');
123
- }
124
- paths.forEach((path) => {
125
- if (paths[0] !== path) {
126
- throw new Error('Unable to get a single chain and index on the output because there are different paths for different keys');
127
- }
128
- });
129
- return utxolib.bitgo.getChainAndIndexFromPath(paths[0]);
130
- }
131
- function getChangeInfo() {
132
- try {
133
- return utxolib.bitgo.findInternalOutputIndices(psbt).map((i) => {
134
- const derivationInformation = getChainAndIndexFromBip32Derivations(psbt.data.outputs[i]);
135
- if (!derivationInformation) {
136
- throw new Error('could not find derivation information on bip32Derivation or tapBip32Derivation');
137
- }
138
- return {
139
- address: utxolib.address.fromOutputScript(txOutputs[i].script, network),
140
- external: false,
141
- ...derivationInformation,
142
- };
143
- });
144
- }
145
- catch (e) {
146
- if (e instanceof utxolib.bitgo.ErrorNoMultiSigInputFound) {
147
- return undefined;
148
- }
149
- throw e;
150
- }
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
151
7
  }
152
- const changeInfo = getChangeInfo();
153
- const tx = psbt.getUnsignedTx();
154
- const common = explainCommon(tx, { ...params, txInfo: params.txInfo, changeInfo }, network);
155
- const inputSignaturesCount = getPsbtInputSignaturesCount(psbt, params);
156
- // Set fee from subtracting inputs from outputs
157
- const outputAmount = txOutputs.reduce((cumulative, curr) => cumulative + BigInt(curr.value), BigInt(0));
158
- const inputAmount = psbt.txInputs.reduce((cumulative, txInput, i) => {
159
- const data = psbt.data.inputs[i];
160
- if (data.witnessUtxo) {
161
- return cumulative + BigInt(data.witnessUtxo.value);
162
- }
163
- else if (data.nonWitnessUtxo) {
164
- const tx = utxo_lib_1.bitgo.createTransactionFromBuffer(data.nonWitnessUtxo, network, { amountType: 'bigint' });
165
- return cumulative + BigInt(tx.outs[txInput.index].value);
166
- }
167
- else {
168
- throw new Error('could not find value on input');
169
- }
170
- }, BigInt(0));
171
- return {
172
- ...common,
173
- fee: (inputAmount - outputAmount).toString(),
174
- inputSignatures: inputSignaturesCount,
175
- signatures: inputSignaturesCount.reduce((prev, curr) => (curr > prev ? curr : prev), 0),
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
176
26
  };
177
- }
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.explainTx = explainTx;
37
+ const utxolib = __importStar(require("@bitgo/utxo-lib"));
38
+ const fixedScript = __importStar(require("./fixedScript"));
178
39
  /**
179
40
  * Decompose a raw transaction into useful information, such as the total amounts,
180
41
  * change amounts, and transaction outputs.
181
42
  */
182
43
  function explainTx(tx, params, network) {
183
- const common = explainCommon(tx, params, network);
184
- const inputSignaturesCount = getTxInputSignaturesCount(tx, params, network);
185
- return {
186
- ...common,
187
- inputSignatures: inputSignaturesCount,
188
- signatures: inputSignaturesCount.reduce((prev, curr) => (curr > prev ? curr : prev), 0),
189
- };
44
+ if (tx instanceof utxolib.bitgo.UtxoPsbt) {
45
+ return fixedScript.explainPsbt(tx, params, network);
46
+ }
47
+ else {
48
+ return fixedScript.explainLegacyTx(tx, params, network);
49
+ }
190
50
  }
191
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwbGFpblRyYW5zYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL2V4cGxhaW5UcmFuc2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXlJQSxrQ0EyRUM7QUFNRCw4QkFZQztBQXRPRCw4Q0FBK0Q7QUFDL0QsMkNBQTJDO0FBVzNDLDJDQUFzRDtBQUV0RCxTQUFTLGFBQWEsQ0FDcEIsRUFBa0MsRUFDbEMsTUFBbUQsRUFDbkQsT0FBd0I7O0lBRXhCLE1BQU0sWUFBWSxHQUFHLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQ3hGLElBQUksV0FBVyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1QixJQUFJLFlBQVksR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0IsTUFBTSxhQUFhLEdBQW1CLEVBQUUsQ0FBQztJQUN6QyxNQUFNLE9BQU8sR0FBYSxFQUFFLENBQUM7SUFFN0IsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLE1BQU0sQ0FBQztJQUM5QixNQUFNLGVBQWUsR0FBRyxNQUFBLFVBQVUsYUFBVixVQUFVLHVCQUFWLFVBQVUsQ0FBRSxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsbUNBQUksRUFBRSxDQUFDO0lBRXRFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUU7UUFDaEMsd0hBQXdIO1FBQ3hILHlFQUF5RTtRQUN6RSxNQUFNLGNBQWMsR0FBRyxJQUFBLG1DQUF1QixFQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDOUUsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVsRCxJQUFJLGVBQWUsQ0FBQyxR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QyxDQUFDO1FBQzNELENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxJQUFJLEtBQUssQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1FBQ25ELENBQUM7SUFDSCxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFZCxPQUFPO1FBQ0wsR0FBRyxNQUFNO1FBQ1QsR0FBRyxFQUFFLENBQUMsV0FBVyxHQUFHLFlBQVksQ0FBQyxDQUFDLFFBQVEsRUFBRTtRQUM1QyxlQUFlLEVBQUUsb0JBQW9CO1FBQ3JDLFVBQVUsRUFBRSxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0tBQzlELENBQUM7QUFDOUIsQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLFNBQVMsQ0FDdkIsRUFBa0MsRUFDbEMsTUFBMEMsRUFDMUMsT0FBd0I7SUFFeEIsTUFBTSxNQUFNLEdBQUcsYUFBYSxDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbEQsTUFBTSxvQkFBb0IsR0FBRyx5QkFBeUIsQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzVFLE9BQU87UUFDTCxHQUFHLE1BQU07UUFDVCxlQUFlLEVBQUUsb0JBQW9CO1FBQ3JDLFVBQVUsRUFBRSxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0tBQzlELENBQUM7QUFDOUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGJpcDMyLCBCSVAzMkludGVyZmFjZSwgYml0Z28gfSBmcm9tICdAYml0Z28vdXR4by1saWInO1xuaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28vdXR4by1saWInO1xuaW1wb3J0IHsgVHJpcGxlIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcblxuaW1wb3J0IHtcbiAgRGVjb3JhdGVkRXhwbGFpblRyYW5zYWN0aW9uT3B0aW9ucyxcbiAgRXhwbGFpblRyYW5zYWN0aW9uT3B0aW9ucyxcbiAgT3V0cHV0LFxuICBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uLFxuICBXYWxsZXRPdXRwdXQsXG59IGZyb20gJy4uL2Fic3RyYWN0VXR4b0NvaW4nO1xuXG5pbXBvcnQgeyB0b0V4dGVuZGVkQWRkcmVzc0Zvcm1hdCB9IGZyb20gJy4vcmVjaXBpZW50JztcblxuZnVuY3Rpb24gZXhwbGFpbkNvbW1vbjxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50PihcbiAgdHg6IGJpdGdvLlV0eG9UcmFuc2FjdGlvbjxUTnVtYmVyPixcbiAgcGFyYW1zOiBEZWNvcmF0ZWRFeHBsYWluVHJhbnNhY3Rpb25PcHRpb25zPFROdW1iZXI+LFxuICBuZXR3b3JrOiB1dHhvbGliLk5ldHdvcmtcbikge1xuICBjb25zdCBkaXNwbGF5T3JkZXIgPSBbJ2lkJywgJ291dHB1dEFtb3VudCcsICdjaGFuZ2VBbW91bnQnLCAnb3V0cHV0cycsICdjaGFuZ2VPdXRwdXRzJ107XG4gIGxldCBzcGVuZEFtb3VudCA9IEJpZ0ludCgwKTtcbiAgbGV0IGNoYW5nZUFtb3VudCA9IEJpZ0ludCgwKTtcbiAgY29uc3QgY2hhbmdlT3V0cHV0czogV2FsbGV0T3V0cHV0W10gPSBbXTtcbiAgY29uc3Qgb3V0cHV0czogT3V0cHV0W10gPSBbXTtcblxuICBjb25zdCB7IGNoYW5nZUluZm8gfSA9IHBhcmFtcztcbiAgY29uc3QgY2hhbmdlQWRkcmVzc2VzID0gY2hhbmdlSW5mbz8ubWFwKChpbmZvKSA9PiBpbmZvLmFkZHJlc3MpID8/IFtdO1xuXG4gIHR4Lm91dHMuZm9yRWFjaCgoY3VycmVudE91dHB1dCkgPT4ge1xuICAgIC8vIFRyeSB0byBlbmNvZGUgdGhlIHNjcmlwdCBwdWJrZXkgd2l0aCBhbiBhZGRyZXNzLiBJZiBpdCBmYWlscywgdHJ5IHRvIHBhcnNlIGl0IGFzIGFuIE9QX1JFVFVSTiBvdXRwdXQgd2l0aCB0aGUgcHJlZml4LlxuICAgIC8vIElmIHRoYXQgZmFpbHMsIHRoZW4gaXQgaXMgYW4gdW5yZWNvZ25pemVkIHNjcmlwdFB1YmtleSBhbmQgc2hvdWxkIGZhaWxcbiAgICBjb25zdCBjdXJyZW50QWRkcmVzcyA9IHRvRXh0ZW5kZWRBZGRyZXNzRm9ybWF0KGN1cnJlbnRPdXRwdXQuc2NyaXB0LCBuZXR3b3JrKTtcbiAgICBjb25zdCBjdXJyZW50QW1vdW50ID0gQmlnSW50KGN1cnJlbnRPdXRwdXQudmFsdWUpO1xuXG4gICAgaWYgKGNoYW5nZUFkZHJlc3Nlcy5pbmNsdWRlcyhjdXJyZW50QWRkcmVzcykpIHtcbiAgICAgIC8vIHRoaXMgaXMgY2hhbmdlXG4gICAgICBjaGFuZ2VBbW91bnQgKz0gY3VycmVudEFtb3VudDtcbiAgICAgIGNvbnN0IGNoYW5nZSA9IGNoYW5nZUluZm8/LmZpbmQoKGNoYW5nZSkgPT4gY2hhbmdlLmFkZHJlc3MgPT09IGN1cnJlbnRBZGRyZXNzKTtcblxuICAgICAgaWYgKCFjaGFuZ2UpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdjaGFuZ2VJbmZvIG11c3QgaGF2ZSBjaGFuZ2UgaW5mb3JtYXRpb24gZm9yIGFsbCBjaGFuZ2Ugb3V0cHV0cycpO1xuICAgICAgfVxuICAgICAgY2hhbmdlT3V0cHV0cy5wdXNoKHtcbiAgICAgICAgYWRkcmVzczogY3VycmVudEFkZHJlc3MsXG4gICAgICAgIGFtb3VudDogY3VycmVudEFtb3VudC50b1N0cmluZygpLFxuICAgICAgICBjaGFpbjogY2hhbmdlLmNoYWluLFxuICAgICAgICBpbmRleDogY2hhbmdlLmluZGV4LFxuICAgICAgICBleHRlcm5hbDogZmFsc2UsXG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzcGVuZEFtb3VudCArPSBjdXJyZW50QW1vdW50O1xuICAgIG91dHB1dHMucHVzaCh7XG4gICAgICBhZGRyZXNzOiBjdXJyZW50QWRkcmVzcyxcbiAgICAgIGFtb3VudDogY3VycmVudEFtb3VudC50b1N0cmluZygpLFxuICAgICAgLy8gSWYgY2hhbmdlSW5mbyBoYXMgYSBsZW5ndGggZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHplcm8sIGl0IG1lYW5zIHRoYXQgdGhlIGNoYW5nZSBpbmZvcm1hdGlvblxuICAgICAgLy8gd2FzIHByb3ZpZGVkIHRvIHRoZSBmdW5jdGlvbiBidXQgdGhlIG91dHB1dCB3YXMgbm90IGlkZW50aWZpZWQgYXMgY2hhbmdlLiBJbiB0aGlzIGNhc2UsXG4gICAgICAvLyB0aGUgb3V0cHV0IGlzIGV4dGVybmFsLCBhbmQgd2UgY2FuIHNldCBpdCBhcyBzby4gSWYgY2hhbmdlSW5mbyBpcyB1bmRlZmluZWQsIGl0IG1lYW5zIHdlIHdlcmVcbiAgICAgIC8vIGdpdmVuIG5vIGluZm9ybWF0aW9uIGFib3V0IGNoYW5nZSBvdXRwdXRzLCBzbyB3ZSBjYW4ndCBkZXRlcm1pbmUgYW55dGhpbmcgYWJvdXQgdGhlIG91dHB1dCxcbiAgICAgIC8vIHNvIHdlIGxlYXZlIGl0IHVuZGVmaW5lZC5cbiAgICAgIGV4dGVybmFsOiBjaGFuZ2VJbmZvID8gdHJ1ZSA6IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgfSk7XG5cbiAgY29uc3Qgb3V0cHV0RGV0YWlscyA9IHtcbiAgICBvdXRwdXRBbW91bnQ6IHNwZW5kQW1vdW50LnRvU3RyaW5nKCksXG4gICAgY2hhbmdlQW1vdW50OiBjaGFuZ2VBbW91bnQudG9TdHJpbmcoKSxcbiAgICBvdXRwdXRzLFxuICAgIGNoYW5nZU91dHB1dHMsXG4gIH07XG5cbiAgbGV0IGZlZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBsZXQgbG9ja3RpbWU6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICBpZiAocGFyYW1zLmZlZUluZm8pIHtcbiAgICBkaXNwbGF5T3JkZXIucHVzaCgnZmVlJyk7XG4gICAgZmVlID0gcGFyYW1zLmZlZUluZm87XG4gIH1cblxuICBpZiAoTnVtYmVyLmlzSW50ZWdlcih0eC5sb2NrdGltZSkgJiYgdHgubG9ja3RpbWUgPiAwKSB7XG4gICAgZGlzcGxheU9yZGVyLnB1c2goJ2xvY2t0aW1lJyk7XG4gICAgbG9ja3RpbWUgPSB0eC5sb2NrdGltZTtcbiAgfVxuXG4gIHJldHVybiB7IGRpc3BsYXlPcmRlciwgaWQ6IHR4LmdldElkKCksIC4uLm91dHB1dERldGFpbHMsIGZlZSwgbG9ja3RpbWUgfTtcbn1cblxuZnVuY3Rpb24gZ2V0Um9vdFdhbGxldEtleXM8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludD4ocGFyYW1zOiBFeHBsYWluVHJhbnNhY3Rpb25PcHRpb25zPFROdW1iZXI+KSB7XG4gIGNvbnN0IGtleXMgPSBwYXJhbXMucHVicz8ubWFwKCh4cHViKSA9PiBiaXAzMi5mcm9tQmFzZTU4KHhwdWIpKTtcbiAgcmV0dXJuIGtleXMgJiYga2V5cy5sZW5ndGggPT09IDMgPyBuZXcgYml0Z28uUm9vdFdhbGxldEtleXMoa2V5cyBhcyBUcmlwbGU8QklQMzJJbnRlcmZhY2U+KSA6IHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gZ2V0UHNidElucHV0U2lnbmF0dXJlc0NvdW50PFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQ+KFxuICBwc2J0OiBiaXRnby5VdHhvUHNidCxcbiAgcGFyYW1zOiBFeHBsYWluVHJhbnNhY3Rpb25PcHRpb25zPFROdW1iZXI+XG4pIHtcbiAgY29uc3Qgcm9vdFdhbGxldEtleXMgPSBnZXRSb290V2FsbGV0S2V5cyhwYXJhbXMpO1xuICByZXR1cm4gcm9vdFdhbGxldEtleXNcbiAgICA/IGJpdGdvLmdldFNpZ25hdHVyZVZhbGlkYXRpb25BcnJheVBzYnQocHNidCwgcm9vdFdhbGxldEtleXMpLm1hcCgoc3YpID0+IHN2WzFdLmZpbHRlcigodikgPT4gdikubGVuZ3RoKVxuICAgIDogKEFycmF5KHBzYnQuZGF0YS5pbnB1dHMubGVuZ3RoKSBhcyBudW1iZXJbXSkuZmlsbCgwKTtcbn1cblxuZnVuY3Rpb24gZ2V0VHhJbnB1dFNpZ25hdHVyZXNDb3VudDxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50PihcbiAgdHg6IGJpdGdvLlV0eG9UcmFuc2FjdGlvbjxUTnVtYmVyPixcbiAgcGFyYW1zOiBFeHBsYWluVHJhbnNhY3Rpb25PcHRpb25zPFROdW1iZXI+LFxuICBuZXR3b3JrOiB1dHhvbGliLk5ldHdvcmtcbikge1xuICBjb25zdCBwcmV2T3V0cHV0cyA9IHBhcmFtcy50eEluZm8/LnVuc3BlbnRzPy5tYXAoKHUpID0+IGJpdGdvLnRvT3V0cHV0PFROdW1iZXI+KHUsIG5ldHdvcmspKTtcbiAgY29uc3Qgcm9vdFdhbGxldEtleXMgPSBnZXRSb290V2FsbGV0S2V5cyhwYXJhbXMpO1xuICBjb25zdCB7IHVuc3BlbnRzID0gW10gfSA9IHBhcmFtcy50eEluZm8gPz8ge307XG5cbiAgLy8gZ2V0IHRoZSBudW1iZXIgb2Ygc2lnbmF0dXJlcyBwZXIgaW5wdXRcbiAgcmV0dXJuIHR4Lmlucy5tYXAoKGlucHV0LCBpZHgpOiBudW1iZXIgPT4ge1xuICAgIGlmICh1bnNwZW50cy5sZW5ndGggIT09IHR4Lmlucy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgICBpZiAoIXByZXZPdXRwdXRzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgc3RhdGVgKTtcbiAgICB9XG4gICAgaWYgKCFyb290V2FsbGV0S2V5cykge1xuICAgICAgLy8gbm8gcHViIGtleXMgb3IgaW5jb3JyZWN0IG51bWJlciBvZiBwdWIga2V5c1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gYml0Z28udmVyaWZ5U2lnbmF0dXJlV2l0aFVuc3BlbnQ8VE51bWJlcj4odHgsIGlkeCwgdW5zcGVudHMsIHJvb3RXYWxsZXRLZXlzKS5maWx0ZXIoKHYpID0+IHYpLmxlbmd0aDtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvLyBzb21lIG90aGVyIGVycm9yIG9jY3VycmVkIGFuZCB3ZSBjYW4ndCB2YWxpZGF0ZSB0aGUgc2lnbmF0dXJlc1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICB9KTtcbn1cblxuLyoqXG4gKiBEZWNvbXBvc2UgYSByYXcgcHNidCBpbnRvIHVzZWZ1bCBpbmZvcm1hdGlvbiwgc3VjaCBhcyB0aGUgdG90YWwgYW1vdW50cyxcbiAqIGNoYW5nZSBhbW91bnRzLCBhbmQgdHJhbnNhY3Rpb24gb3V0cHV0cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4cGxhaW5Qc2J0PFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQsIFR4IGV4dGVuZHMgYml0Z28uVXR4b1RyYW5zYWN0aW9uPGJpZ2ludD4+KFxuICBwc2J0OiBiaXRnby5VdHhvUHNidDxUeD4sXG4gIHBhcmFtczogRXhwbGFpblRyYW5zYWN0aW9uT3B0aW9uczxUTnVtYmVyPixcbiAgbmV0d29yazogdXR4b2xpYi5OZXR3b3JrXG4pOiBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIHtcbiAgY29uc3QgdHhPdXRwdXRzID0gcHNidC50eE91dHB1dHM7XG5cbiAgZnVuY3Rpb24gZ2V0Q2hhaW5BbmRJbmRleEZyb21CaXAzMkRlcml2YXRpb25zKG91dHB1dDogYml0Z28uUHNidE91dHB1dCkge1xuICAgIGNvbnN0IGRlcml2YXRpb25zID0gb3V0cHV0LmJpcDMyRGVyaXZhdGlvbiA/PyBvdXRwdXQudGFwQmlwMzJEZXJpdmF0aW9uID8/IHVuZGVmaW5lZDtcbiAgICBpZiAoIWRlcml2YXRpb25zKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBjb25zdCBwYXRocyA9IGRlcml2YXRpb25zLm1hcCgoZCkgPT4gZC5wYXRoKTtcbiAgICBpZiAoIXBhdGhzIHx8IHBhdGhzLmxlbmd0aCAhPT0gMykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdleHBlY3RlZCAzIHBhdGhzIGluIGJpcDMyRGVyaXZhdGlvbiBvciB0YXBCaXAzMkRlcml2YXRpb24nKTtcbiAgICB9XG4gICAgaWYgKCFwYXRocy5ldmVyeSgocCkgPT4gcGF0aHNbMF0gPT09IHApKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2V4cGVjdGVkIGFsbCBwYXRocyB0byBiZSB0aGUgc2FtZScpO1xuICAgIH1cblxuICAgIHBhdGhzLmZvckVhY2goKHBhdGgpID0+IHtcbiAgICAgIGlmIChwYXRoc1swXSAhPT0gcGF0aCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgJ1VuYWJsZSB0byBnZXQgYSBzaW5nbGUgY2hhaW4gYW5kIGluZGV4IG9uIHRoZSBvdXRwdXQgYmVjYXVzZSB0aGVyZSBhcmUgZGlmZmVyZW50IHBhdGhzIGZvciBkaWZmZXJlbnQga2V5cydcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gdXR4b2xpYi5iaXRnby5nZXRDaGFpbkFuZEluZGV4RnJvbVBhdGgocGF0aHNbMF0pO1xuICB9XG5cbiAgZnVuY3Rpb24gZ2V0Q2hhbmdlSW5mbygpIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIHV0eG9saWIuYml0Z28uZmluZEludGVybmFsT3V0cHV0SW5kaWNlcyhwc2J0KS5tYXAoKGkpID0+IHtcbiAgICAgICAgY29uc3QgZGVyaXZhdGlvbkluZm9ybWF0aW9uID0gZ2V0Q2hhaW5BbmRJbmRleEZyb21CaXAzMkRlcml2YXRpb25zKHBzYnQuZGF0YS5vdXRwdXRzW2ldKTtcbiAgICAgICAgaWYgKCFkZXJpdmF0aW9uSW5mb3JtYXRpb24pIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2NvdWxkIG5vdCBmaW5kIGRlcml2YXRpb24gaW5mb3JtYXRpb24gb24gYmlwMzJEZXJpdmF0aW9uIG9yIHRhcEJpcDMyRGVyaXZhdGlvbicpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgYWRkcmVzczogdXR4b2xpYi5hZGRyZXNzLmZyb21PdXRwdXRTY3JpcHQodHhPdXRwdXRzW2ldLnNjcmlwdCwgbmV0d29yayksXG4gICAgICAgICAgZXh0ZXJuYWw6IGZhbHNlLFxuICAgICAgICAgIC4uLmRlcml2YXRpb25JbmZvcm1hdGlvbixcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmIChlIGluc3RhbmNlb2YgdXR4b2xpYi5iaXRnby5FcnJvck5vTXVsdGlTaWdJbnB1dEZvdW5kKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgfVxuICBjb25zdCBjaGFuZ2VJbmZvID0gZ2V0Q2hhbmdlSW5mbygpO1xuICBjb25zdCB0eCA9IHBzYnQuZ2V0VW5zaWduZWRUeCgpIGFzIGJpdGdvLlV0eG9UcmFuc2FjdGlvbjxUTnVtYmVyPjtcbiAgY29uc3QgY29tbW9uID0gZXhwbGFpbkNvbW1vbih0eCwgeyAuLi5wYXJhbXMsIHR4SW5mbzogcGFyYW1zLnR4SW5mbywgY2hhbmdlSW5mbyB9LCBuZXR3b3JrKTtcbiAgY29uc3QgaW5wdXRTaWduYXR1cmVzQ291bnQgPSBnZXRQc2J0SW5wdXRTaWduYXR1cmVzQ291bnQocHNidCwgcGFyYW1zKTtcblxuICAvLyBTZXQgZmVlIGZyb20gc3VidHJhY3RpbmcgaW5wdXRzIGZyb20gb3V0cHV0c1xuICBjb25zdCBvdXRwdXRBbW91bnQgPSB0eE91dHB1dHMucmVkdWNlKChjdW11bGF0aXZlLCBjdXJyKSA9PiBjdW11bGF0aXZlICsgQmlnSW50KGN1cnIudmFsdWUpLCBCaWdJbnQoMCkpO1xuICBjb25zdCBpbnB1dEFtb3VudCA9IHBzYnQudHhJbnB1dHMucmVkdWNlKChjdW11bGF0aXZlLCB0eElucHV0LCBpKSA9PiB7XG4gICAgY29uc3QgZGF0YSA9IHBzYnQuZGF0YS5pbnB1dHNbaV07XG4gICAgaWYgKGRhdGEud2l0bmVzc1V0eG8pIHtcbiAgICAgIHJldHVybiBjdW11bGF0aXZlICsgQmlnSW50KGRhdGEud2l0bmVzc1V0eG8udmFsdWUpO1xuICAgIH0gZWxzZSBpZiAoZGF0YS5ub25XaXRuZXNzVXR4bykge1xuICAgICAgY29uc3QgdHggPSBiaXRnby5jcmVhdGVUcmFuc2FjdGlvbkZyb21CdWZmZXI8YmlnaW50PihkYXRhLm5vbldpdG5lc3NVdHhvLCBuZXR3b3JrLCB7IGFtb3VudFR5cGU6ICdiaWdpbnQnIH0pO1xuICAgICAgcmV0dXJuIGN1bXVsYXRpdmUgKyBCaWdJbnQodHgub3V0c1t0eElucHV0LmluZGV4XS52YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignY291bGQgbm90IGZpbmQgdmFsdWUgb24gaW5wdXQnKTtcbiAgICB9XG4gIH0sIEJpZ0ludCgwKSk7XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5jb21tb24sXG4gICAgZmVlOiAoaW5wdXRBbW91bnQgLSBvdXRwdXRBbW91bnQpLnRvU3RyaW5nKCksXG4gICAgaW5wdXRTaWduYXR1cmVzOiBpbnB1dFNpZ25hdHVyZXNDb3VudCxcbiAgICBzaWduYXR1cmVzOiBpbnB1dFNpZ25hdHVyZXNDb3VudC5yZWR1Y2UoKHByZXYsIGN1cnIpID0+IChjdXJyID4gcHJldiA/IGN1cnIgOiBwcmV2KSwgMCksXG4gIH0gYXMgVHJhbnNhY3Rpb25FeHBsYW5hdGlvbjtcbn1cblxuLyoqXG4gKiBEZWNvbXBvc2UgYSByYXcgdHJhbnNhY3Rpb24gaW50byB1c2VmdWwgaW5mb3JtYXRpb24sIHN1Y2ggYXMgdGhlIHRvdGFsIGFtb3VudHMsXG4gKiBjaGFuZ2UgYW1vdW50cywgYW5kIHRyYW5zYWN0aW9uIG91dHB1dHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHBsYWluVHg8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludD4oXG4gIHR4OiBiaXRnby5VdHhvVHJhbnNhY3Rpb248VE51bWJlcj4sXG4gIHBhcmFtczogRXhwbGFpblRyYW5zYWN0aW9uT3B0aW9uczxUTnVtYmVyPixcbiAgbmV0d29yazogdXR4b2xpYi5OZXR3b3JrXG4pOiBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIHtcbiAgY29uc3QgY29tbW9uID0gZXhwbGFpbkNvbW1vbih0eCwgcGFyYW1zLCBuZXR3b3JrKTtcbiAgY29uc3QgaW5wdXRTaWduYXR1cmVzQ291bnQgPSBnZXRUeElucHV0U2lnbmF0dXJlc0NvdW50KHR4LCBwYXJhbXMsIG5ldHdvcmspO1xuICByZXR1cm4ge1xuICAgIC4uLmNvbW1vbixcbiAgICBpbnB1dFNpZ25hdHVyZXM6IGlucHV0U2lnbmF0dXJlc0NvdW50LFxuICAgIHNpZ25hdHVyZXM6IGlucHV0U2lnbmF0dXJlc0NvdW50LnJlZHVjZSgocHJldiwgY3VycikgPT4gKGN1cnIgPiBwcmV2ID8gY3VyciA6IHByZXYpLCAwKSxcbiAgfSBhcyBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uO1xufVxuIl19
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwbGFpblRyYW5zYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL2V4cGxhaW5UcmFuc2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVVBLDhCQWNDO0FBeEJELHlEQUEyQztBQUkzQywyREFBNkM7QUFFN0M7OztHQUdHO0FBQ0gsU0FBZ0IsU0FBUyxDQUN2QixFQUFtRSxFQUNuRSxNQUlDLEVBQ0QsT0FBd0I7SUFFeEIsSUFBSSxFQUFFLFlBQVksT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN6QyxPQUFPLFdBQVcsQ0FBQyxXQUFXLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN0RCxDQUFDO1NBQU0sQ0FBQztRQUNOLE9BQU8sV0FBVyxDQUFDLGVBQWUsQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzFELENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28vdXR4by1saWInO1xuXG5pbXBvcnQgeyBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIH0gZnJvbSAnLi4vYWJzdHJhY3RVdHhvQ29pbic7XG5cbmltcG9ydCAqIGFzIGZpeGVkU2NyaXB0IGZyb20gJy4vZml4ZWRTY3JpcHQnO1xuXG4vKipcbiAqIERlY29tcG9zZSBhIHJhdyB0cmFuc2FjdGlvbiBpbnRvIHVzZWZ1bCBpbmZvcm1hdGlvbiwgc3VjaCBhcyB0aGUgdG90YWwgYW1vdW50cyxcbiAqIGNoYW5nZSBhbW91bnRzLCBhbmQgdHJhbnNhY3Rpb24gb3V0cHV0cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4cGxhaW5UeDxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50PihcbiAgdHg6IHV0eG9saWIuYml0Z28uVXR4b1RyYW5zYWN0aW9uPFROdW1iZXI+IHwgdXR4b2xpYi5iaXRnby5VdHhvUHNidCxcbiAgcGFyYW1zOiB7XG4gICAgcHVicz86IHN0cmluZ1tdO1xuICAgIHR4SW5mbz86IHsgdW5zcGVudHM/OiB1dHhvbGliLmJpdGdvLlVuc3BlbnQ8VE51bWJlcj5bXSB9O1xuICAgIGNoYW5nZUluZm8/OiBmaXhlZFNjcmlwdC5DaGFuZ2VBZGRyZXNzSW5mb1tdO1xuICB9LFxuICBuZXR3b3JrOiB1dHhvbGliLk5ldHdvcmtcbik6IFRyYW5zYWN0aW9uRXhwbGFuYXRpb24ge1xuICBpZiAodHggaW5zdGFuY2VvZiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0KSB7XG4gICAgcmV0dXJuIGZpeGVkU2NyaXB0LmV4cGxhaW5Qc2J0KHR4LCBwYXJhbXMsIG5ldHdvcmspO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBmaXhlZFNjcmlwdC5leHBsYWluTGVnYWN5VHgodHgsIHBhcmFtcywgbmV0d29yayk7XG4gIH1cbn1cbiJdfQ==
@@ -1,8 +1,41 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
36
  exports.getPsbtTxInputs = getPsbtTxInputs;
4
37
  exports.getTxInputs = getTxInputs;
5
- const utxolib = require("@bitgo/utxo-lib");
38
+ const utxolib = __importStar(require("@bitgo/utxo-lib"));
6
39
  /**
7
40
  * Get the inputs for a psbt from a prebuild.
8
41
  */
@@ -74,4 +107,4 @@ async function getTxInputs(params) {
74
107
  return transactionDetails.outputs[currentInput.index];
75
108
  }));
76
109
  }
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmV0Y2hJbnB1dHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vZmV0Y2hJbnB1dHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFRQSwwQ0E0QkM7QUFLRCxrQ0EwQ0M7QUFuRkQsMkNBQTJDO0FBSzNDOztHQUVHO0FBQ0gsU0FBZ0IsZUFBZSxDQUM3QixPQUF3QyxFQUN4QyxPQUF3QjtJQUV4QixNQUFNLElBQUksR0FBRyxPQUFPLFlBQVksT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDckgsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUMvQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRTtRQUMzQyxJQUFJLE9BQWUsQ0FBQztRQUNwQixJQUFJLEtBQWEsQ0FBQztRQUNsQixJQUFJLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN0QixPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztZQUM5RSxLQUFLLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7UUFDbEMsQ0FBQzthQUFNLElBQUksS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ2hDLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsMkJBQTJCLENBQVMsS0FBSyxDQUFDLGNBQWMsRUFBRSxPQUFPLEVBQUU7Z0JBQzFGLFVBQVUsRUFBRSxRQUFRO2FBQ3JCLENBQUMsQ0FBQztZQUNILE1BQU0sSUFBSSxHQUFJLE1BQU0s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O1lBQ3BHLENBQUM7WUFDRCxJQUFJLEtBQUssRUFBRSxDQUFDO2dCQUNWLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNoQyxDQUFDO1lBQ0QsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLEdBQUcsTUFBTSxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDdEcsQ0FBQztRQUNELE1BQU0sa0JBQWtCLEdBQUcsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDM0QsT0FBTyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hELENBQUMsQ0FBQyxDQUNILENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28vdXR4by1saWInO1xuaW1wb3J0IHsgQml0R29CYXNlLCBJUmVxdWVzdFRyYWNlciB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5cbmltcG9ydCB7IEFic3RyYWN0VXR4b0NvaW4sIFRyYW5zYWN0aW9uUHJlYnVpbGQgfSBmcm9tICcuLi9hYnN0cmFjdFV0eG9Db2luJztcblxuLyoqXG4gKiBHZXQgdGhlIGlucHV0cyBmb3IgYSBwc2J0IGZyb20gYSBwcmVidWlsZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFBzYnRUeElucHV0cyhcbiAgcHNidEFyZzogc3RyaW5nIHwgdXR4b2xpYi5iaXRnby5VdHhvUHNidCxcbiAgbmV0d29yazogdXR4b2xpYi5OZXR3b3JrXG4pOiB7IGFkZHJlc3M6IHN0cmluZzsgdmFsdWU6IGJpZ2ludDsgdmFsdWVTdHJpbmc6IHN0cmluZyB9W10ge1xuICBjb25zdCBwc2J0ID0gcHNidEFyZyBpbnN0YW5jZW9mIHV0eG9saWIuYml0Z28uVXR4b1BzYnQgPyBwc2J0QXJnIDogdXR4b2xpYi5iaXRnby5jcmVhdGVQc2J0RnJvbUhleChwc2J0QXJnLCBuZXR3b3JrKTtcbiAgY29uc3QgdHhJbnB1dHMgPSBwc2J0LnR4SW5wdXRzO1xuICByZXR1cm4gcHNidC5kYXRhLmlucHV0cy5tYXAoKGlucHV0LCBpbmRleCkgPT4ge1xuICAgIGxldCBhZGRyZXNzOiBzdHJpbmc7XG4gICAgbGV0IHZhbHVlOiBiaWdpbnQ7XG4gICAgaWYgKGlucHV0LndpdG5lc3NVdHhvKSB7XG4gICAgICBhZGRyZXNzID0gdXR4b2xpYi5hZGRyZXNzLmZyb21PdXRwdXRTY3JpcHQoaW5wdXQud2l0bmVzc1V0eG8uc2NyaXB0LCBuZXR3b3JrKTtcbiAgICAgIHZhbHVlID0gaW5wdXQud2l0bmVzc1V0eG8udmFsdWU7XG4gICAgfSBlbHNlIGlmIChpbnB1dC5ub25XaXRuZXNzVXR4bykge1xuICAgICAgY29uc3QgdHggPSB1dHhvbGliLmJpdGdvLmNyZWF0ZVRyYW5zYWN0aW9uRnJvbUJ1ZmZlcjxiaWdpbnQ+KGlucHV0Lm5vbldpdG5lc3NVdHhvLCBuZXR3b3JrLCB7XG4gICAgICAgIGFtb3VudFR5cGU6ICdiaWdpbnQnLFxuICAgICAgfSk7XG4gICAgICBjb25zdCB0eElkID0gKEJ1ZmZlci5mcm9tKHR4SW5wdXRzW2luZGV4XS5oYXNoKS5yZXZlcnNlKCkgYXMgQnVmZmVyKS50b1N0cmluZygnaGV4Jyk7XG4gICAgICBpZiAodHguZ2V0SWQoKSAhPT0gdHhJZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2lucHV0IHRyYW5zYWN0aW9uIGhleCBkb2VzIG5vdCBtYXRjaCBpZCcpO1xuICAgICAgfVxuICAgICAgY29uc3QgcHJldlR4T3V0cHV0SW5kZXggPSB0eElucHV0c1tpbmRleF0uaW5kZXg7XG4gICAgICBhZGRyZXNzID0gdXR4b2xpYi5hZGRyZXNzLmZyb21PdXRwdXRTY3JpcHQodHgub3V0c1twcmV2VHhPdXRwdXRJbmRleF0uc2NyaXB0LCBuZXR3b3JrKTtcbiAgICAgIHZhbHVlID0gdHgub3V0c1twcmV2VHhPdXRwdXRJbmRleF0udmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigncHNidCBpbnB1dCBpcyBtaXNzaW5nIGJvdGggd2l0bmVzc1V0eG8gYW5kIG5vbldpdG5lc3NVdHhvJyk7XG4gICAgfVxuICAgIHJldHVybiB7IGFkZHJlc3MsIHZhbHVlLCB2YWx1ZVN0cmluZzogdmFsdWUudG9TdHJpbmcoKSB9O1xuICB9KTtcbn1cblxuLyoqXG4gKiBHZXQgdGhlIGlucHV0cyBmb3IgYSB0cmFuc2FjdGlvbiBmcm9tIGEgcHJlYnVpbGQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRUeElucHV0czxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50PihwYXJhbXM6IHtcbiAgdHhQcmVidWlsZDogVHJhbnNhY3Rpb25QcmVidWlsZDxUTnVtYmVyPjtcbiAgYml0Z286IEJpdEdvQmFzZTtcbiAgY29pbjogQWJzdHJhY3RVdHhvQ29pbjtcbiAgZGlzYWJsZU5ldHdvcmtpbmc6IGJvb2xlYW47XG4gIHJlcUlkPzogSVJlcXVlc3RUcmFjZXI7XG59KTogUHJvbWlzZTx7IGFkZHJlc3M6IHN0cmluZzsgdmFsdWU6IFROdW1iZXI7IHZhbHVlU3RyaW5nOiBzdHJpbmcgfVtdPiB7XG4gIGNvbnN0IHsgdHhQcmVidWlsZCwgYml0Z28sIGNvaW4sIGRpc2FibGVOZXR3b3JraW5nLCByZXFJZCB9ID0gcGFyYW1zO1xuICBpZiAoIXR4UHJlYnVpbGQudHhIZXgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYHR4UHJlYnVpbGQudHhIZXggbm90IHNldGApO1xuICB9XG4gIGNvbnN0IHRyYW5zYWN0aW9uID0gY29pbi5jcmVhdGVUcmFuc2FjdGlvbkZyb21IZXg8VE51bWJlcj4odHhQcmVidWlsZC50eEhleCk7XG4gIGNvbnN0IHRyYW5zYWN0aW9uQ2FjaGUgPSB7fTtcbiAgcmV0dXJuIGF3YWl0IFByb21pc2UuYWxsKFxuICAgIHRyYW5zYWN0aW9uLmlucy5tYXAoYXN5bmMgKGN1cnJlbnRJbnB1dCk6IFByb21pc2U8eyBhZGRyZXNzOiBzdHJpbmc7IHZhbHVlOiBUTnVtYmVyOyB2YWx1ZVN0cmluZzogc3RyaW5nIH0+ID0+IHtcbiAgICAgIGNvbnN0IHRyYW5zYWN0aW9uSWQgPSAoQnVmZmVyLmZyb20oY3VycmVudElucHV0Lmhhc2gpLnJldmVyc2UoKSBhcyBCdWZmZXIpLnRvU3RyaW5nKCdoZXgnKTtcbiAgICAgIGNvbnN0IHR4SGV4ID0gdHhQcmVidWlsZC50eEluZm8/LnR4SGV4ZXM/Llt0cmFuc2FjdGlvbklkXTtcbiAgICAgIGlmICh0eEhleCkge1xuICAgICAgICBjb25zdCBsb2NhbFR4ID0gY29pbi5jcmVhdGVUcmFuc2FjdGlvbkZyb21IZXg8VE51bWJlcj4odHhIZXgpO1xuICAgICAgICBpZiAobG9jYWxUeC5nZXRJZCgpICE9PSB0cmFuc2FjdGlvbklkKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdpbnB1dCB0cmFuc2FjdGlvbiBoZXggZG9lcyBub3QgbWF0Y2ggaWQnKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjdXJyZW50T3V0cHV0ID0gbG9jYWxUeC5vdXRzW2N1cnJlbnRJbnB1dC5pbmRleF07XG4gICAgICAgIGNvbnN0IGFkZHJlc3MgPSB1dHhvbGliLmFkZHJlc3MuZnJvbU91dHB1dFNjcmlwdChjdXJyZW50T3V0cHV0LnNjcmlwdCwgY29pbi5uZXR3b3JrKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBhZGRyZXNzLFxuICAgICAgICAgIHZhbHVlOiBjdXJyZW50T3V0cHV0LnZhbHVlLFxuICAgICAgICAgIHZhbHVlU3RyaW5nOiBjdXJyZW50T3V0cHV0LnZhbHVlLnRvU3RyaW5nKCksXG4gICAgICAgIH07XG4gICAgICB9IGVsc2UgaWYgKCF0cmFuc2FjdGlvbkNhY2hlW3RyYW5zYWN0aW9uSWRdKSB7XG4gICAgICAgIGlmIChkaXNhYmxlTmV0d29ya2luZykge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignYXR0ZW1wdGluZyB0byByZXRyaWV2ZSB0cmFuc2FjdGlvbiBkZXRhaWxzIGV4dGVybmFsbHkgd2l0aCBuZXR3b3JraW5nIGRpc2FibGVkJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJlcUlkKSB7XG4gICAgICAgICAgYml0Z28uc2V0UmVxdWVzdFRyYWNlcihyZXFJZCk7XG4gICAgICAgIH1cbiAgICAgICAgdHJhbnNhY3Rpb25DYWNoZVt0cmFuc2FjdGlvbklkXSA9IGF3YWl0IGJpdGdvLmdldChjb2luLnVybChgL3B1YmxpYy90eC8ke3RyYW5zYWN0aW9uSWR9YCkpLnJlc3VsdCgpO1xuICAgICAgfVxuICAgICAgY29uc3QgdHJhbnNhY3Rpb25EZXRhaWxzID0gdHJhbnNhY3Rpb25DYWNoZVt0cmFuc2FjdGlvbklkXTtcbiAgICAgIHJldHVybiB0cmFuc2FjdGlvbkRldGFpbHMub3V0cHV0c1tjdXJyZW50SW5wdXQuaW5kZXhdO1xuICAgIH0pXG4gICk7XG59XG4iXX0=
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmV0Y2hJbnB1dHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vZmV0Y2hJbnB1dHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFRQSwwQ0E0QkM7QUFLRCxrQ0EwQ0M7QUFuRkQseURBQTJDO0FBSzNDOztHQUVHO0FBQ0gsU0FBZ0IsZUFBZSxDQUM3QixPQUF3QyxFQUN4QyxPQUF3QjtJQUV4QixNQUFNLElBQUksR0FBRyxPQUFPLFlBQVksT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDckgsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUMvQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRTtRQUMzQyxJQUFJLE9BQWUsQ0FBQztRQUNwQixJQUFJLEtBQWEsQ0FBQztRQUNsQixJQUFJLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN0QixPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztZQUM5RSxLQUFLLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7UUFDbEMsQ0FBQzthQUFNLElBQUksS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ2hDLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsMkJBQTJCLENBQVMsS0FBSyxDQUFDLGNBQWMsRUFBRSxPQUFPLEVBQUU7Z0JBQzFGLFVBQVUsRUFBRSxRQUFRO2FBQ3JCLENB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TSxJQUFJLEtBQUssQ0FBQyxnRkFBZ0YsQ0FBQyxDQUFDO1lBQ3BHLENBQUM7WUFDRCxJQUFJLEtBQUssRUFBRSxDQUFDO2dCQUNWLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNoQyxDQUFDO1lBQ0QsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLEdBQUcsTUFBTSxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDdEcsQ0FBQztRQUNELE1BQU0sa0JBQWtCLEdBQUcsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDM0QsT0FBTyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hELENBQUMsQ0FBQyxDQUNILENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28vdXR4by1saWInO1xuaW1wb3J0IHsgQml0R29CYXNlLCBJUmVxdWVzdFRyYWNlciB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5cbmltcG9ydCB7IEFic3RyYWN0VXR4b0NvaW4sIFRyYW5zYWN0aW9uUHJlYnVpbGQgfSBmcm9tICcuLi9hYnN0cmFjdFV0eG9Db2luJztcblxuLyoqXG4gKiBHZXQgdGhlIGlucHV0cyBmb3IgYSBwc2J0IGZyb20gYSBwcmVidWlsZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFBzYnRUeElucHV0cyhcbiAgcHNidEFyZzogc3RyaW5nIHwgdXR4b2xpYi5iaXRnby5VdHhvUHNidCxcbiAgbmV0d29yazogdXR4b2xpYi5OZXR3b3JrXG4pOiB7IGFkZHJlc3M6IHN0cmluZzsgdmFsdWU6IGJpZ2ludDsgdmFsdWVTdHJpbmc6IHN0cmluZyB9W10ge1xuICBjb25zdCBwc2J0ID0gcHNidEFyZyBpbnN0YW5jZW9mIHV0eG9saWIuYml0Z28uVXR4b1BzYnQgPyBwc2J0QXJnIDogdXR4b2xpYi5iaXRnby5jcmVhdGVQc2J0RnJvbUhleChwc2J0QXJnLCBuZXR3b3JrKTtcbiAgY29uc3QgdHhJbnB1dHMgPSBwc2J0LnR4SW5wdXRzO1xuICByZXR1cm4gcHNidC5kYXRhLmlucHV0cy5tYXAoKGlucHV0LCBpbmRleCkgPT4ge1xuICAgIGxldCBhZGRyZXNzOiBzdHJpbmc7XG4gICAgbGV0IHZhbHVlOiBiaWdpbnQ7XG4gICAgaWYgKGlucHV0LndpdG5lc3NVdHhvKSB7XG4gICAgICBhZGRyZXNzID0gdXR4b2xpYi5hZGRyZXNzLmZyb21PdXRwdXRTY3JpcHQoaW5wdXQud2l0bmVzc1V0eG8uc2NyaXB0LCBuZXR3b3JrKTtcbiAgICAgIHZhbHVlID0gaW5wdXQud2l0bmVzc1V0eG8udmFsdWU7XG4gICAgfSBlbHNlIGlmIChpbnB1dC5ub25XaXRuZXNzVXR4bykge1xuICAgICAgY29uc3QgdHggPSB1dHhvbGliLmJpdGdvLmNyZWF0ZVRyYW5zYWN0aW9uRnJvbUJ1ZmZlcjxiaWdpbnQ+KGlucHV0Lm5vbldpdG5lc3NVdHhvLCBuZXR3b3JrLCB7XG4gICAgICAgIGFtb3VudFR5cGU6ICdiaWdpbnQnLFxuICAgICAgfSk7XG4gICAgICBjb25zdCB0eElkID0gKEJ1ZmZlci5mcm9tKHR4SW5wdXRzW2luZGV4XS5oYXNoKS5yZXZlcnNlKCkgYXMgQnVmZmVyKS50b1N0cmluZygnaGV4Jyk7XG4gICAgICBpZiAodHguZ2V0SWQoKSAhPT0gdHhJZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2lucHV0IHRyYW5zYWN0aW9uIGhleCBkb2VzIG5vdCBtYXRjaCBpZCcpO1xuICAgICAgfVxuICAgICAgY29uc3QgcHJldlR4T3V0cHV0SW5kZXggPSB0eElucHV0c1tpbmRleF0uaW5kZXg7XG4gICAgICBhZGRyZXNzID0gdXR4b2xpYi5hZGRyZXNzLmZyb21PdXRwdXRTY3JpcHQodHgub3V0c1twcmV2VHhPdXRwdXRJbmRleF0uc2NyaXB0LCBuZXR3b3JrKTtcbiAgICAgIHZhbHVlID0gdHgub3V0c1twcmV2VHhPdXRwdXRJbmRleF0udmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigncHNidCBpbnB1dCBpcyBtaXNzaW5nIGJvdGggd2l0bmVzc1V0eG8gYW5kIG5vbldpdG5lc3NVdHhvJyk7XG4gICAgfVxuICAgIHJldHVybiB7IGFkZHJlc3MsIHZhbHVlLCB2YWx1ZVN0cmluZzogdmFsdWUudG9TdHJpbmcoKSB9O1xuICB9KTtcbn1cblxuLyoqXG4gKiBHZXQgdGhlIGlucHV0cyBmb3IgYSB0cmFuc2FjdGlvbiBmcm9tIGEgcHJlYnVpbGQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRUeElucHV0czxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50PihwYXJhbXM6IHtcbiAgdHhQcmVidWlsZDogVHJhbnNhY3Rpb25QcmVidWlsZDxUTnVtYmVyPjtcbiAgYml0Z286IEJpdEdvQmFzZTtcbiAgY29pbjogQWJzdHJhY3RVdHhvQ29pbjtcbiAgZGlzYWJsZU5ldHdvcmtpbmc6IGJvb2xlYW47XG4gIHJlcUlkPzogSVJlcXVlc3RUcmFjZXI7XG59KTogUHJvbWlzZTx7IGFkZHJlc3M6IHN0cmluZzsgdmFsdWU6IFROdW1iZXI7IHZhbHVlU3RyaW5nOiBzdHJpbmcgfVtdPiB7XG4gIGNvbnN0IHsgdHhQcmVidWlsZCwgYml0Z28sIGNvaW4sIGRpc2FibGVOZXR3b3JraW5nLCByZXFJZCB9ID0gcGFyYW1zO1xuICBpZiAoIXR4UHJlYnVpbGQudHhIZXgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYHR4UHJlYnVpbGQudHhIZXggbm90IHNldGApO1xuICB9XG4gIGNvbnN0IHRyYW5zYWN0aW9uID0gY29pbi5jcmVhdGVUcmFuc2FjdGlvbkZyb21IZXg8VE51bWJlcj4odHhQcmVidWlsZC50eEhleCk7XG4gIGNvbnN0IHRyYW5zYWN0aW9uQ2FjaGUgPSB7fTtcbiAgcmV0dXJuIGF3YWl0IFByb21pc2UuYWxsKFxuICAgIHRyYW5zYWN0aW9uLmlucy5tYXAoYXN5bmMgKGN1cnJlbnRJbnB1dCk6IFByb21pc2U8eyBhZGRyZXNzOiBzdHJpbmc7IHZhbHVlOiBUTnVtYmVyOyB2YWx1ZVN0cmluZzogc3RyaW5nIH0+ID0+IHtcbiAgICAgIGNvbnN0IHRyYW5zYWN0aW9uSWQgPSAoQnVmZmVyLmZyb20oY3VycmVudElucHV0Lmhhc2gpLnJldmVyc2UoKSBhcyBCdWZmZXIpLnRvU3RyaW5nKCdoZXgnKTtcbiAgICAgIGNvbnN0IHR4SGV4ID0gdHhQcmVidWlsZC50eEluZm8/LnR4SGV4ZXM/Llt0cmFuc2FjdGlvbklkXTtcbiAgICAgIGlmICh0eEhleCkge1xuICAgICAgICBjb25zdCBsb2NhbFR4ID0gY29pbi5jcmVhdGVUcmFuc2FjdGlvbkZyb21IZXg8VE51bWJlcj4odHhIZXgpO1xuICAgICAgICBpZiAobG9jYWxUeC5nZXRJZCgpICE9PSB0cmFuc2FjdGlvbklkKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdpbnB1dCB0cmFuc2FjdGlvbiBoZXggZG9lcyBub3QgbWF0Y2ggaWQnKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjdXJyZW50T3V0cHV0ID0gbG9jYWxUeC5vdXRzW2N1cnJlbnRJbnB1dC5pbmRleF07XG4gICAgICAgIGNvbnN0IGFkZHJlc3MgPSB1dHhvbGliLmFkZHJlc3MuZnJvbU91dHB1dFNjcmlwdChjdXJyZW50T3V0cHV0LnNjcmlwdCwgY29pbi5uZXR3b3JrKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBhZGRyZXNzLFxuICAgICAgICAgIHZhbHVlOiBjdXJyZW50T3V0cHV0LnZhbHVlLFxuICAgICAgICAgIHZhbHVlU3RyaW5nOiBjdXJyZW50T3V0cHV0LnZhbHVlLnRvU3RyaW5nKCksXG4gICAgICAgIH07XG4gICAgICB9IGVsc2UgaWYgKCF0cmFuc2FjdGlvbkNhY2hlW3RyYW5zYWN0aW9uSWRdKSB7XG4gICAgICAgIGlmIChkaXNhYmxlTmV0d29ya2luZykge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignYXR0ZW1wdGluZyB0byByZXRyaWV2ZSB0cmFuc2FjdGlvbiBkZXRhaWxzIGV4dGVybmFsbHkgd2l0aCBuZXR3b3JraW5nIGRpc2FibGVkJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJlcUlkKSB7XG4gICAgICAgICAgYml0Z28uc2V0UmVxdWVzdFRyYWNlcihyZXFJZCk7XG4gICAgICAgIH1cbiAgICAgICAgdHJhbnNhY3Rpb25DYWNoZVt0cmFuc2FjdGlvbklkXSA9IGF3YWl0IGJpdGdvLmdldChjb2luLnVybChgL3B1YmxpYy90eC8ke3RyYW5zYWN0aW9uSWR9YCkpLnJlc3VsdCgpO1xuICAgICAgfVxuICAgICAgY29uc3QgdHJhbnNhY3Rpb25EZXRhaWxzID0gdHJhbnNhY3Rpb25DYWNoZVt0cmFuc2FjdGlvbklkXTtcbiAgICAgIHJldHVybiB0cmFuc2FjdGlvbkRldGFpbHMub3V0cHV0c1tjdXJyZW50SW5wdXQuaW5kZXhdO1xuICAgIH0pXG4gICk7XG59XG4iXX0=
@@ -0,0 +1,30 @@
1
+ import * as utxolib from '@bitgo/utxo-lib';
2
+ import { bitgo } from '@bitgo/utxo-lib';
3
+ import { TransactionExplanation } from '../../abstractUtxoCoin';
4
+ export type ChangeAddressInfo = {
5
+ address: string;
6
+ chain: number;
7
+ index: number;
8
+ };
9
+ /**
10
+ * Decompose a raw psbt into useful information, such as the total amounts,
11
+ * change amounts, and transaction outputs.
12
+ */
13
+ export declare function explainPsbt<TNumber extends number | bigint, Tx extends bitgo.UtxoTransaction<bigint>>(psbt: bitgo.UtxoPsbt<Tx>, params: {
14
+ pubs?: string[];
15
+ txInfo?: {
16
+ unspents?: bitgo.Unspent<TNumber>[];
17
+ };
18
+ }, network: utxolib.Network): TransactionExplanation;
19
+ export declare function explainLegacyTx<TNumber extends number | bigint>(tx: bitgo.UtxoTransaction<TNumber>, params: {
20
+ pubs?: string[];
21
+ txInfo?: {
22
+ unspents?: bitgo.Unspent<TNumber>[];
23
+ };
24
+ changeInfo?: {
25
+ address: string;
26
+ chain: number;
27
+ index: number;
28
+ }[];
29
+ }, network: utxolib.Network): TransactionExplanation;
30
+ //# sourceMappingURL=explainTransaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"explainTransaction.d.ts","sourceRoot":"","sources":["../../../../src/transaction/fixedScript/explainTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAyB,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAG/D,OAAO,EAAU,sBAAsB,EAA2B,MAAM,wBAAwB,CAAC;AAGjG,MAAM,MAAM,iBAAiB,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAiIlF;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EAAE,EAAE,SAAS,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,EACnG,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,EACxB,MAAM,EAAE;IACN,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAA;KAAE,CAAC;CAClD,EACD,OAAO,EAAE,OAAO,CAAC,OAAO,GACvB,sBAAsB,CAuExB;AAED,wBAAgB,eAAe,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EAC7D,EAAE,EAAE,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,EAClC,MAAM,EAAE;IACN,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAA;KAAE,CAAC;IACjD,UAAU,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAClE,EACD,OAAO,EAAE,OAAO,CAAC,OAAO,GACvB,sBAAsB,CAQxB"}