@bitgo-beta/utxo-lib 8.0.3-beta.72 → 8.0.3-beta.721

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 (207) hide show
  1. package/dist/src/address.d.ts +0 -1
  2. package/dist/src/address.d.ts.map +1 -1
  3. package/dist/src/address.js +10 -10
  4. package/dist/src/addressFormat.d.ts +1 -2
  5. package/dist/src/addressFormat.d.ts.map +1 -1
  6. package/dist/src/addressFormat.js +21 -26
  7. package/dist/src/bitgo/Musig2.d.ts +0 -1
  8. package/dist/src/bitgo/Musig2.d.ts.map +1 -1
  9. package/dist/src/bitgo/Musig2.js +42 -42
  10. package/dist/src/bitgo/PsbtUtil.d.ts +17 -1
  11. package/dist/src/bitgo/PsbtUtil.d.ts.map +1 -1
  12. package/dist/src/bitgo/PsbtUtil.js +63 -10
  13. package/dist/src/bitgo/Unspent.d.ts +2 -3
  14. package/dist/src/bitgo/Unspent.d.ts.map +1 -1
  15. package/dist/src/bitgo/Unspent.js +14 -15
  16. package/dist/src/bitgo/UtxoPsbt.d.ts +8 -5
  17. package/dist/src/bitgo/UtxoPsbt.d.ts.map +1 -1
  18. package/dist/src/bitgo/UtxoPsbt.js +136 -120
  19. package/dist/src/bitgo/UtxoTransaction.d.ts +0 -1
  20. package/dist/src/bitgo/UtxoTransaction.d.ts.map +1 -1
  21. package/dist/src/bitgo/UtxoTransaction.js +12 -12
  22. package/dist/src/bitgo/UtxoTransactionBuilder.d.ts +0 -1
  23. package/dist/src/bitgo/UtxoTransactionBuilder.d.ts.map +1 -1
  24. package/dist/src/bitgo/UtxoTransactionBuilder.js +1 -1
  25. package/dist/src/bitgo/bitcoincash/address.d.ts +0 -1
  26. package/dist/src/bitgo/bitcoincash/address.d.ts.map +1 -1
  27. package/dist/src/bitgo/bitcoincash/address.js +11 -12
  28. package/dist/src/bitgo/bitcoincash/index.js +6 -2
  29. package/dist/src/bitgo/dash/DashPsbt.d.ts +0 -1
  30. package/dist/src/bitgo/dash/DashPsbt.d.ts.map +1 -1
  31. package/dist/src/bitgo/dash/DashTransaction.d.ts +0 -1
  32. package/dist/src/bitgo/dash/DashTransaction.d.ts.map +1 -1
  33. package/dist/src/bitgo/dash/DashTransaction.js +3 -3
  34. package/dist/src/bitgo/dash/DashTransactionBuilder.d.ts +0 -1
  35. package/dist/src/bitgo/dash/DashTransactionBuilder.d.ts.map +1 -1
  36. package/dist/src/bitgo/dash/DashTransactionBuilder.js +1 -1
  37. package/dist/src/bitgo/dash/index.js +6 -2
  38. package/dist/src/bitgo/index.d.ts +3 -1
  39. package/dist/src/bitgo/index.d.ts.map +1 -1
  40. package/dist/src/bitgo/index.js +9 -3
  41. package/dist/src/bitgo/keyutil.d.ts +9 -1
  42. package/dist/src/bitgo/keyutil.d.ts.map +1 -1
  43. package/dist/src/bitgo/keyutil.js +25 -4
  44. package/dist/src/bitgo/legacysafe/index.d.ts +14 -0
  45. package/dist/src/bitgo/legacysafe/index.d.ts.map +1 -0
  46. package/dist/src/bitgo/legacysafe/index.js +60 -0
  47. package/dist/src/bitgo/litecoin/LitecoinPsbt.d.ts +0 -1
  48. package/dist/src/bitgo/litecoin/LitecoinPsbt.d.ts.map +1 -1
  49. package/dist/src/bitgo/litecoin/LitecoinTransaction.d.ts +1 -2
  50. package/dist/src/bitgo/litecoin/LitecoinTransaction.d.ts.map +1 -1
  51. package/dist/src/bitgo/litecoin/LitecoinTransaction.js +2 -2
  52. package/dist/src/bitgo/litecoin/index.js +6 -2
  53. package/dist/src/bitgo/nonStandardHalfSigned.js +2 -3
  54. package/dist/src/bitgo/outputScripts.d.ts +7 -7
  55. package/dist/src/bitgo/outputScripts.d.ts.map +1 -1
  56. package/dist/src/bitgo/outputScripts.js +48 -33
  57. package/dist/src/bitgo/parseInput.d.ts +11 -8
  58. package/dist/src/bitgo/parseInput.d.ts.map +1 -1
  59. package/dist/src/bitgo/parseInput.js +30 -15
  60. package/dist/src/bitgo/psbt/fromHalfSigned.d.ts +0 -1
  61. package/dist/src/bitgo/psbt/fromHalfSigned.d.ts.map +1 -1
  62. package/dist/src/bitgo/psbt/fromHalfSigned.js +7 -8
  63. package/dist/src/bitgo/psbt/scriptTypes.d.ts +0 -1
  64. package/dist/src/bitgo/psbt/scriptTypes.d.ts.map +1 -1
  65. package/dist/src/bitgo/psbt/scriptTypes.js +7 -8
  66. package/dist/src/bitgo/signature.d.ts +2 -3
  67. package/dist/src/bitgo/signature.d.ts.map +1 -1
  68. package/dist/src/bitgo/signature.js +25 -17
  69. package/dist/src/bitgo/tnumber.js +2 -3
  70. package/dist/src/bitgo/transaction.d.ts +13 -1
  71. package/dist/src/bitgo/transaction.d.ts.map +1 -1
  72. package/dist/src/bitgo/transaction.js +49 -23
  73. package/dist/src/bitgo/transactionAmounts.d.ts +9 -0
  74. package/dist/src/bitgo/transactionAmounts.d.ts.map +1 -0
  75. package/dist/src/bitgo/transactionAmounts.js +32 -0
  76. package/dist/src/bitgo/types.d.ts +8 -2
  77. package/dist/src/bitgo/types.d.ts.map +1 -1
  78. package/dist/src/bitgo/types.js +12 -4
  79. package/dist/src/bitgo/wallet/Psbt.d.ts +43 -19
  80. package/dist/src/bitgo/wallet/Psbt.d.ts.map +1 -1
  81. package/dist/src/bitgo/wallet/Psbt.js +115 -51
  82. package/dist/src/bitgo/wallet/Unspent.d.ts +23 -16
  83. package/dist/src/bitgo/wallet/Unspent.d.ts.map +1 -1
  84. package/dist/src/bitgo/wallet/Unspent.js +68 -64
  85. package/dist/src/bitgo/wallet/WalletKeys.d.ts +1 -2
  86. package/dist/src/bitgo/wallet/WalletKeys.d.ts.map +1 -1
  87. package/dist/src/bitgo/wallet/WalletKeys.js +3 -3
  88. package/dist/src/bitgo/wallet/WalletOutput.js +10 -11
  89. package/dist/src/bitgo/wallet/WalletScripts.js +4 -5
  90. package/dist/src/bitgo/wallet/WalletUnspentSigner.js +7 -7
  91. package/dist/src/bitgo/wallet/chains.d.ts +3 -3
  92. package/dist/src/bitgo/wallet/chains.d.ts.map +1 -1
  93. package/dist/src/bitgo/wallet/chains.js +10 -10
  94. package/dist/src/bitgo/wallet/index.d.ts +2 -0
  95. package/dist/src/bitgo/wallet/index.d.ts.map +1 -1
  96. package/dist/src/bitgo/wallet/index.js +8 -2
  97. package/dist/src/bitgo/wallet/psbt/PsbtOutputs.d.ts +50 -0
  98. package/dist/src/bitgo/wallet/psbt/PsbtOutputs.d.ts.map +1 -0
  99. package/dist/src/bitgo/wallet/psbt/PsbtOutputs.js +85 -0
  100. package/dist/src/bitgo/wallet/psbt/RootNodes.d.ts +32 -0
  101. package/dist/src/bitgo/wallet/psbt/RootNodes.d.ts.map +1 -0
  102. package/dist/src/bitgo/wallet/psbt/RootNodes.js +123 -0
  103. package/dist/src/bitgo/zcash/ZcashBufferutils.d.ts +1 -2
  104. package/dist/src/bitgo/zcash/ZcashBufferutils.d.ts.map +1 -1
  105. package/dist/src/bitgo/zcash/ZcashBufferutils.js +15 -15
  106. package/dist/src/bitgo/zcash/ZcashPsbt.d.ts +0 -2
  107. package/dist/src/bitgo/zcash/ZcashPsbt.d.ts.map +1 -1
  108. package/dist/src/bitgo/zcash/ZcashPsbt.js +9 -17
  109. package/dist/src/bitgo/zcash/ZcashTransaction.d.ts +3 -2
  110. package/dist/src/bitgo/zcash/ZcashTransaction.d.ts.map +1 -1
  111. package/dist/src/bitgo/zcash/ZcashTransaction.js +31 -21
  112. package/dist/src/bitgo/zcash/ZcashTransactionBuilder.d.ts +0 -1
  113. package/dist/src/bitgo/zcash/ZcashTransactionBuilder.d.ts.map +1 -1
  114. package/dist/src/bitgo/zcash/ZcashTransactionBuilder.js +6 -4
  115. package/dist/src/bitgo/zcash/address.d.ts +0 -1
  116. package/dist/src/bitgo/zcash/address.d.ts.map +1 -1
  117. package/dist/src/bitgo/zcash/address.js +7 -8
  118. package/dist/src/bitgo/zcash/hashZip0244.d.ts +1 -2
  119. package/dist/src/bitgo/zcash/hashZip0244.d.ts.map +1 -1
  120. package/dist/src/bitgo/zcash/hashZip0244.js +9 -10
  121. package/dist/src/bitgo/zcash/index.js +6 -2
  122. package/dist/src/classify.d.ts +0 -1
  123. package/dist/src/classify.d.ts.map +1 -1
  124. package/dist/src/classify.js +5 -5
  125. package/dist/src/index.js +6 -2
  126. package/dist/src/networks.d.ts +2 -2
  127. package/dist/src/networks.d.ts.map +1 -1
  128. package/dist/src/networks.js +67 -21
  129. package/dist/src/noble_ecc.d.ts +7 -7
  130. package/dist/src/noble_ecc.d.ts.map +1 -1
  131. package/dist/src/noble_ecc.js +5 -5
  132. package/dist/src/payments/p2tr.js +11 -16
  133. package/dist/src/payments/p2tr_ns.js +3 -5
  134. package/dist/src/taproot.d.ts +1 -2
  135. package/dist/src/taproot.d.ts.map +1 -1
  136. package/dist/src/taproot.js +21 -22
  137. package/dist/src/templates/multisig/input.d.ts +0 -1
  138. package/dist/src/templates/multisig/input.d.ts.map +1 -1
  139. package/dist/src/templates/multisig/input.js +2 -3
  140. package/dist/src/templates/multisig/output.d.ts +0 -1
  141. package/dist/src/templates/multisig/output.d.ts.map +1 -1
  142. package/dist/src/templates/multisig/output.js +2 -3
  143. package/dist/src/templates/nulldata.d.ts +0 -1
  144. package/dist/src/templates/nulldata.d.ts.map +1 -1
  145. package/dist/src/templates/nulldata.js +3 -3
  146. package/dist/src/templates/pubkey/input.d.ts +0 -1
  147. package/dist/src/templates/pubkey/input.d.ts.map +1 -1
  148. package/dist/src/templates/pubkey/input.js +2 -3
  149. package/dist/src/templates/pubkey/output.d.ts +0 -1
  150. package/dist/src/templates/pubkey/output.d.ts.map +1 -1
  151. package/dist/src/templates/pubkey/output.js +2 -3
  152. package/dist/src/templates/pubkeyhash/input.d.ts +0 -1
  153. package/dist/src/templates/pubkeyhash/input.d.ts.map +1 -1
  154. package/dist/src/templates/pubkeyhash/input.js +2 -3
  155. package/dist/src/templates/pubkeyhash/output.d.ts +0 -1
  156. package/dist/src/templates/pubkeyhash/output.d.ts.map +1 -1
  157. package/dist/src/templates/pubkeyhash/output.js +2 -3
  158. package/dist/src/templates/scripthash/input.d.ts +0 -1
  159. package/dist/src/templates/scripthash/input.d.ts.map +1 -1
  160. package/dist/src/templates/scripthash/input.js +2 -3
  161. package/dist/src/templates/scripthash/output.d.ts +0 -1
  162. package/dist/src/templates/scripthash/output.d.ts.map +1 -1
  163. package/dist/src/templates/scripthash/output.js +2 -3
  164. package/dist/src/templates/taproot/input.d.ts +0 -1
  165. package/dist/src/templates/taproot/input.d.ts.map +1 -1
  166. package/dist/src/templates/taproot/input.js +2 -3
  167. package/dist/src/templates/taproot/output.d.ts +0 -1
  168. package/dist/src/templates/taproot/output.d.ts.map +1 -1
  169. package/dist/src/templates/taproot/output.js +2 -3
  170. package/dist/src/templates/taprootnofn/input.d.ts +0 -1
  171. package/dist/src/templates/taprootnofn/input.d.ts.map +1 -1
  172. package/dist/src/templates/taprootnofn/input.js +2 -3
  173. package/dist/src/templates/taprootnofn/output.d.ts +0 -1
  174. package/dist/src/templates/taprootnofn/output.d.ts.map +1 -1
  175. package/dist/src/templates/taprootnofn/output.js +2 -3
  176. package/dist/src/templates/witnesscommitment/output.d.ts +0 -1
  177. package/dist/src/templates/witnesscommitment/output.d.ts.map +1 -1
  178. package/dist/src/templates/witnesscommitment/output.js +4 -5
  179. package/dist/src/templates/witnesspubkeyhash/input.d.ts +0 -1
  180. package/dist/src/templates/witnesspubkeyhash/input.d.ts.map +1 -1
  181. package/dist/src/templates/witnesspubkeyhash/input.js +2 -3
  182. package/dist/src/templates/witnesspubkeyhash/output.d.ts +0 -1
  183. package/dist/src/templates/witnesspubkeyhash/output.d.ts.map +1 -1
  184. package/dist/src/templates/witnesspubkeyhash/output.js +2 -3
  185. package/dist/src/templates/witnessscripthash/input.d.ts +0 -1
  186. package/dist/src/templates/witnessscripthash/input.d.ts.map +1 -1
  187. package/dist/src/templates/witnessscripthash/input.js +2 -3
  188. package/dist/src/templates/witnessscripthash/output.d.ts +0 -1
  189. package/dist/src/templates/witnessscripthash/output.d.ts.map +1 -1
  190. package/dist/src/templates/witnessscripthash/output.js +2 -3
  191. package/dist/src/testutil/index.js +6 -2
  192. package/dist/src/testutil/keys.d.ts +4 -1
  193. package/dist/src/testutil/keys.d.ts.map +1 -1
  194. package/dist/src/testutil/keys.js +22 -8
  195. package/dist/src/testutil/mock.d.ts +1 -2
  196. package/dist/src/testutil/mock.d.ts.map +1 -1
  197. package/dist/src/testutil/mock.js +21 -21
  198. package/dist/src/testutil/psbt.d.ts +36 -21
  199. package/dist/src/testutil/psbt.d.ts.map +1 -1
  200. package/dist/src/testutil/psbt.js +51 -37
  201. package/dist/src/testutil/transaction.d.ts +2 -2
  202. package/dist/src/testutil/transaction.d.ts.map +1 -1
  203. package/dist/src/testutil/transaction.js +18 -18
  204. package/dist/src/transaction_builder.d.ts +0 -1
  205. package/dist/src/transaction_builder.d.ts.map +1 -1
  206. package/dist/src/transaction_builder.js +13 -18
  207. package/package.json +10 -10
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.updateWalletOutputForPsbt = exports.addWalletOutputToPsbt = void 0;
3
+ exports.addWalletOutputToPsbt = addWalletOutputToPsbt;
4
+ exports.updateWalletOutputForPsbt = updateWalletOutputForPsbt;
4
5
  const bitcoinjs_lib_1 = require("bitcoinjs-lib");
5
6
  const chains_1 = require("./chains");
6
7
  const outputScripts_1 = require("../outputScripts");
@@ -19,18 +20,17 @@ const outputScripts_1 = require("../outputScripts");
19
20
  */
20
21
  function addWalletOutputToPsbt(psbt, rootWalletKeys, chain, index, value) {
21
22
  const walletKeys = rootWalletKeys.deriveForChainAndIndex(chain, index);
22
- const scriptType = chains_1.scriptTypeForChain(chain);
23
+ const scriptType = (0, chains_1.scriptTypeForChain)(chain);
23
24
  if (scriptType === 'p2tr' || scriptType === 'p2trMusig2') {
24
- const payment = scriptType === 'p2tr' ? outputScripts_1.createPaymentP2tr(walletKeys.publicKeys) : outputScripts_1.createPaymentP2trMusig2(walletKeys.publicKeys);
25
+ const payment = scriptType === 'p2tr' ? (0, outputScripts_1.createPaymentP2tr)(walletKeys.publicKeys) : (0, outputScripts_1.createPaymentP2trMusig2)(walletKeys.publicKeys);
25
26
  psbt.addOutput({ script: payment.output, value });
26
27
  }
27
28
  else {
28
- const { scriptPubKey: script } = outputScripts_1.createOutputScript2of3(walletKeys.publicKeys, scriptType);
29
+ const { scriptPubKey: script } = (0, outputScripts_1.createOutputScript2of3)(walletKeys.publicKeys, scriptType);
29
30
  psbt.addOutput({ script, value });
30
31
  }
31
32
  updateWalletOutputForPsbt(psbt, rootWalletKeys, psbt.data.outputs.length - 1, chain, index);
32
33
  }
33
- exports.addWalletOutputToPsbt = addWalletOutputToPsbt;
34
34
  /**
35
35
  * Update the wallet output with the required information when necessary. If the
36
36
  * information is there already, it will skip over it.
@@ -52,11 +52,11 @@ function updateWalletOutputForPsbt(psbt, rootWalletKeys, outputIndex, chain, ind
52
52
  }
53
53
  const outputScript = psbt.getOutputScript(outputIndex);
54
54
  const walletKeys = rootWalletKeys.deriveForChainAndIndex(chain, index);
55
- const scriptType = chains_1.scriptTypeForChain(chain);
55
+ const scriptType = (0, chains_1.scriptTypeForChain)(chain);
56
56
  const output = psbt.data.outputs[outputIndex];
57
57
  const update = {};
58
58
  if (scriptType === 'p2tr' || scriptType === 'p2trMusig2') {
59
- const payment = scriptType === 'p2tr' ? outputScripts_1.createPaymentP2tr(walletKeys.publicKeys) : outputScripts_1.createPaymentP2trMusig2(walletKeys.publicKeys);
59
+ const payment = scriptType === 'p2tr' ? (0, outputScripts_1.createPaymentP2tr)(walletKeys.publicKeys) : (0, outputScripts_1.createPaymentP2trMusig2)(walletKeys.publicKeys);
60
60
  if (!payment.output || !payment.output.equals(outputScript)) {
61
61
  throw new Error(`cannot update a p2tr output where the scripts do not match - Failing.`);
62
62
  }
@@ -69,7 +69,7 @@ function updateWalletOutputForPsbt(psbt, rootWalletKeys, outputIndex, chain, ind
69
69
  }
70
70
  if (!output.tapBip32Derivation) {
71
71
  update.tapBip32Derivation = [0, 1, 2].map((idx) => {
72
- const pubkey = outputScripts_1.toXOnlyPublicKey(walletKeys.triple[idx].publicKey);
72
+ const pubkey = (0, outputScripts_1.toXOnlyPublicKey)(walletKeys.triple[idx].publicKey);
73
73
  const leafHashes = [];
74
74
  payment.redeems.forEach((r, idx) => {
75
75
  if (r.pubkeys.find((pk) => pk.equals(pubkey))) {
@@ -86,7 +86,7 @@ function updateWalletOutputForPsbt(psbt, rootWalletKeys, outputIndex, chain, ind
86
86
  }
87
87
  }
88
88
  else {
89
- const { scriptPubKey, witnessScript, redeemScript } = outputScripts_1.createOutputScript2of3(walletKeys.publicKeys, scriptType);
89
+ const { scriptPubKey, witnessScript, redeemScript } = (0, outputScripts_1.createOutputScript2of3)(walletKeys.publicKeys, scriptType);
90
90
  if (!scriptPubKey.equals(outputScript)) {
91
91
  throw new Error(`cannot update an output where the scripts do not match - Failing.`);
92
92
  }
@@ -106,5 +106,4 @@ function updateWalletOutputForPsbt(psbt, rootWalletKeys, outputIndex, chain, ind
106
106
  }
107
107
  psbt.updateOutput(outputIndex, update);
108
108
  }
109
- exports.updateWalletOutputForPsbt = updateWalletOutputForPsbt;
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2FsbGV0T3V0cHV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JpdGdvL3dhbGxldC9XYWxsZXRPdXRwdXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaURBQXdDO0FBSXhDLHFDQUF5RDtBQUN6RCxvREFBd0g7QUFFeEg7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsU0FBZ0IscUJBQXFCLENBQ25DLElBQWMsRUFDZCxjQUE4QixFQUM5QixLQUFnQixFQUNoQixLQUFhLEVBQ2IsS0FBYTtJQUViLE1BQU0sVUFBVSxHQUFHLGNBQWMsQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdkUsTUFBTSxVQUFVLEdBQUcsMkJBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0MsSUFBSSxVQUFVLEtBQUssTUFBTSxJQUFJLFVBQVUsS0FBSyxZQUFZLEVBQUU7UUFDeEQsTUFBTSxPQUFPLEdBQ1gsVUFBVSxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsaUNBQWlCLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyx1Q0FBdUIsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDcEgsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7S0FDcEQ7U0FBTTtRQUNMLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEdBQUcsc0NBQXNCLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMzRixJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7S0FDbkM7SUFDRCx5QkFBeUIsQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQzlGLENBQUM7QUFsQkQsc0RBa0JDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxTQUFnQix5QkFBeUIsQ0FDdkMsSUFBYyxFQUNkLGNBQThCLEVBQzlCLFdBQW1CLEVBQ25CLEtBQWdCLEVBQ2hCLEtBQWE7SUFFYixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxXQUFXLEVBQUU7UUFDM0MsTUFBTSxJQUFJLEtBQUssQ0FDYixnQkFBZ0IsV0FBVyw2Q0FBNkMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQ3BHLENBQUM7S0FDSDtJQUVELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFdkQsTUFBTSxVQUFVLEdBQUcsY0FBYyxDQUFDLHNCQUFzQixDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN2RSxNQUFNLFVBQVUsR0FBRywyQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM5QyxNQUFNLE1BQU0sR0FBcUIsRUFBRSxDQUFDO0lBQ3BDLElBQUksVUFBVSxLQUFLLE1BQU0sSUFBSSxVQUFVLEtBQUssWUFBWSxFQUFFO1FBQ3hELE1BQU0sT0FBTyxHQUNYLFVBQVUsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLGlDQUFpQixDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsdUNBQXVCLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3BILElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLEVBQUU7WUFDM0QsTUFBTSxJQUFJLEtBQUssQ0FBQyx1RUFBdUUsQ0FBQyxDQUFDO1NBQzFGO1FBQ0QsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLE9BQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLHVCQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxNQUFPLENBQUMsQ0FBQyxDQUFDO1FBRWxGLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFO1lBQ25CLE1BQU0sQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQztTQUNsQztRQUNELElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFO1lBQzFCLE1BQU0sQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQztTQUNoRDtRQUNELElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLEVBQUU7WUFDOUIsTUFBTSxDQUFDLGtCQUFrQixHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDaEQsTUFBTSxNQUFNLEdBQUcsZ0NBQWdCLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDbEUsTUFBTSxVQUFVLEdBQWEsRUFBRSxDQUFDO2dCQUNoQyxPQUFPLENBQUMsT0FBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRTtvQkFDbEMsSUFBSSxDQUFDLENBQUMsT0FBUSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFO3dCQUM5QyxVQUFVLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO3FCQUNyQztnQkFDSCxDQUFDLENBQUMsQ0FBQztnQkFDSCxPQUFPO29CQUNMLFVBQVU7b0JBQ1YsTUFBTTtvQkFDTixJQUFJLEVBQUUsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7b0JBQzNCLGlCQUFpQixFQUFFLGNBQWMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVztpQkFDMUQsQ0FBQztZQUNKLENBQUMsQ0FBQyxDQUFDO1NBQ0o7S0FDRjtTQUFNO1FBQ0wsTUFBTSxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLEdBQUcsc0NBQXNCLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUNoSCxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUN0QyxNQUFNLElBQUksS0FBSyxDQUFDLG1FQUFtRSxDQUFDLENBQUM7U0FDdEY7UUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsRUFBRTtZQUMzQixNQUFNLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQy9DLE1BQU0sRUFBRSxVQUFVLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVM7Z0JBQ3hDLElBQUksRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQztnQkFDM0IsaUJBQWlCLEVBQUUsY0FBYyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxXQUFXO2FBQzFELENBQUMsQ0FBQyxDQUFDO1NBQ0w7UUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsSUFBSSxhQUFhLEVBQUU7WUFDMUMsTUFBTSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7U0FDdEM7UUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksSUFBSSxZQUFZLEVBQUU7WUFDeEMsTUFBTSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7U0FDcEM7S0FDRjtJQUNELElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3pDLENBQUM7QUF0RUQsOERBc0VDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdGFwcm9vdCB9IGZyb20gJ2JpdGNvaW5qcy1saWInO1xuaW1wb3J0IHsgUHNidE91dHB1dFVwZGF0ZSB9IGZyb20gJ2JpcDE3NC9zcmMvbGliL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgVXR4b1BzYnQgfSBmcm9tICcuLi9VdHhvUHNidCc7XG5pbXBvcnQgeyBSb290V2FsbGV0S2V5cyB9IGZyb20gJy4vV2FsbGV0S2V5cyc7XG5pbXBvcnQgeyBDaGFpbkNvZGUsIHNjcmlwdFR5cGVGb3JDaGFpbiB9IGZyb20gJy4vY2hhaW5zJztcbmltcG9ydCB7IGNyZWF0ZU91dHB1dFNjcmlwdDJvZjMsIGNyZWF0ZVBheW1lbnRQMnRyLCBjcmVhdGVQYXltZW50UDJ0ck11c2lnMiwgdG9YT25seVB1YmxpY0tleSB9IGZyb20gJy4uL291dHB1dFNjcmlwdHMnO1xuXG4vKipcbiAqIEFkZCBhIHZlcmlmaWFibGUgd2FsbGV0IG91dHB1dCB0byB0aGUgUFNCVC4gVGhlIG91dHB1dCBhbmQgYWxsIGRhdGFcbiAqIG5lZWRlZCB0byB2ZXJpZnkgaXQgZnJvbSBwdWJsaWMga2V5cyBvbmx5IGFyZSBhZGRlZCB0byB0aGUgUFNCVC5cbiAqIFR5cGljYWxseSB0aGVzZSBhcmUgY2hhbmdlIG91dHB1dHMuXG4gKlxuICogQHBhcmFtIHBzYnQgdGhlIFBTQlQgdG8gYWRkIGNoYW5nZSBvdXRwdXQgdG9cbiAqIEBwYXJhbSByb290V2FsbGV0S2V5cyBrZXlzIHRoYXQgd2lsbCBiZSBhYmxlIHRvIHNwZW5kIHRoZSBvdXRwdXRcbiAqIEBwYXJhbSBjaGFpbiBjaGFpbiBjb2RlIHRvIHVzZSBmb3IgZGVyaXZpbmcgc2NyaXB0cyAoYW5kIHRvIGRldGVybWluZSBzY3JpcHRcbiAqICAgICAgICAgICAgICB0eXBlKSBjaGFpbiBpcyBhbiBBUEkgcGFyYW1ldGVyIGluIHRoZSBCaXRHbyBBUEksIGFuZCBtYXkgYmVcbiAqICAgICAgICAgICAgICBhbnkgdmFsaWQgQ2hhaW5Db2RlXG4gKiBAcGFyYW0gaW5kZXggZGVyaXZhdGlvbiBpbmRleCBmb3IgdGhlIGNoYW5nZSBhZGRyZXNzXG4gKiBAcGFyYW0gdmFsdWUgdmFsdWUgb2YgdGhlIGNoYW5nZSBvdXRwdXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZFdhbGxldE91dHB1dFRvUHNidChcbiAgcHNidDogVXR4b1BzYnQsXG4gIHJvb3RXYWxsZXRLZXlzOiBSb290V2FsbGV0S2V5cyxcbiAgY2hhaW46IENoYWluQ29kZSxcbiAgaW5kZXg6IG51bWJlcixcbiAgdmFsdWU6IGJpZ2ludFxuKTogdm9pZCB7XG4gIGNvbnN0IHdhbGxldEtleXMgPSByb290V2FsbGV0S2V5cy5kZXJpdmVGb3JDaGFpbkFuZEluZGV4KGNoYWluLCBpbmRleCk7XG4gIGNvbnN0IHNjcmlwdFR5cGUgPSBzY3JpcHRUeXBlRm9yQ2hhaW4oY2hhaW4pO1xuICBpZiAoc2NyaXB0VHlwZSA9PT0gJ3AydHInIHx8IHNjcmlwdFR5cGUgPT09ICdwMnRyTXVzaWcyJykge1xuICAgIGNvbnN0IHBheW1lbnQgPVxuICAgICAgc2NyaXB0VHlwZSA9PT0gJ3AydHInID8gY3JlYXRlUGF5bWVudFAydHIod2FsbGV0S2V5cy5wdWJsaWNLZXlzKSA6IGNyZWF0ZVBheW1lbnRQMnRyTXVzaWcyKHdhbGxldEtleXMucHVibGljS2V5cyk7XG4gICAgcHNidC5hZGRPdXRwdXQoeyBzY3JpcHQ6IHBheW1lbnQub3V0cHV0ISwgdmFsdWUgfSk7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgeyBzY3JpcHRQdWJLZXk6IHNjcmlwdCB9ID0gY3JlYXRlT3V0cHV0U2NyaXB0Mm9mMyh3YWxsZXRLZXlzLnB1YmxpY0tleXMsIHNjcmlwdFR5cGUpO1xuICAgIHBzYnQuYWRkT3V0cHV0KHsgc2NyaXB0LCB2YWx1ZSB9KTtcbiAgfVxuICB1cGRhdGVXYWxsZXRPdXRwdXRGb3JQc2J0KHBzYnQsIHJvb3RXYWxsZXRLZXlzLCBwc2J0LmRhdGEub3V0cHV0cy5sZW5ndGggLSAxLCBjaGFpbiwgaW5kZXgpO1xufVxuXG4vKipcbiAqIFVwZGF0ZSB0aGUgd2FsbGV0IG91dHB1dCB3aXRoIHRoZSByZXF1aXJlZCBpbmZvcm1hdGlvbiB3aGVuIG5lY2Vzc2FyeS4gSWYgdGhlXG4gKiBpbmZvcm1hdGlvbiBpcyB0aGVyZSBhbHJlYWR5LCBpdCB3aWxsIHNraXAgb3ZlciBpdC5cbiAqXG4gKiBUaGlzIGZ1bmN0aW9uIGFzc3VtZXMgdGhhdCB0aGUgb3V0cHV0IHNjcmlwdCBhbmQgdmFsdWUgaGF2ZSBhbHJlYWR5IGJlZW4gc2V0LlxuICpcbiAqIEBwYXJhbSBwc2J0IHRoZSBQU0JUIHRvIHVwZGF0ZSBjaGFuZ2Ugb3V0cHV0IGF0XG4gKiBAcGFyYW0gcm9vdFdhbGxldEtleXMga2V5cyB0aGF0IHdpbGwgYmUgYWJsZSB0byBzcGVuZCB0aGUgb3V0cHV0XG4gKiBAcGFyYW0gb3V0cHV0SW5kZXggb3V0cHV0IGluZGV4IHdoZXJlIHRvIHVwZGF0ZSB0aGUgb3V0cHV0XG4gKiBAcGFyYW0gY2hhaW4gY2hhaW4gY29kZSB0byB1c2UgZm9yIGRlcml2aW5nIHNjcmlwdHMgKGFuZCB0byBkZXRlcm1pbmUgc2NyaXB0XG4gKiAgICAgICAgICAgICAgdHlwZSkgY2hhaW4gaXMgYW4gQVBJIHBhcmFtZXRlciBpbiB0aGUgQml0R28gQVBJLCBhbmQgbWF5IGJlXG4gKiAgICAgICAgICAgICAgYW55IHZhbGlkIENoYWluQ29kZVxuICogQHBhcmFtIGluZGV4IGRlcml2YXRpb24gaW5kZXggZm9yIHRoZSBjaGFuZ2UgYWRkcmVzc1xuICogQHBhcmFtIHZhbHVlIHZhbHVlIG9mIHRoZSBjaGFuZ2Ugb3V0cHV0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1cGRhdGVXYWxsZXRPdXRwdXRGb3JQc2J0KFxuICBwc2J0OiBVdHhvUHNidCxcbiAgcm9vdFdhbGxldEtleXM6IFJvb3RXYWxsZXRLZXlzLFxuICBvdXRwdXRJbmRleDogbnVtYmVyLFxuICBjaGFpbjogQ2hhaW5Db2RlLFxuICBpbmRleDogbnVtYmVyXG4pOiB2b2lkIHtcbiAgaWYgKHBzYnQuZGF0YS5vdXRwdXRzLmxlbmd0aCA8PSBvdXRwdXRJbmRleCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBvdXRwdXRJbmRleCAoJHtvdXRwdXRJbmRleH0pIGlzIHRvbyBsYXJnZSBmb3IgdGhlIG51bWJlciBvZiBvdXRwdXRzICgke3BzYnQuZGF0YS5vdXRwdXRzLmxlbmd0aH0pYFxuICAgICk7XG4gIH1cblxuICBjb25zdCBvdXRwdXRTY3JpcHQgPSBwc2J0LmdldE91dHB1dFNjcmlwdChvdXRwdXRJbmRleCk7XG5cbiAgY29uc3Qgd2FsbGV0S2V5cyA9IHJvb3RXYWxsZXRLZXlzLmRlcml2ZUZvckNoYWluQW5kSW5kZXgoY2hhaW4sIGluZGV4KTtcbiAgY29uc3Qgc2NyaXB0VHlwZSA9IHNjcmlwdFR5cGVGb3JDaGFpbihjaGFpbik7XG4gIGNvbnN0IG91dHB1dCA9IHBzYnQuZGF0YS5vdXRwdXRzW291dHB1dEluZGV4XTtcbiAgY29uc3QgdXBkYXRlOiBQc2J0T3V0cHV0VXBkYXRlID0ge307XG4gIGlmIChzY3JpcHRUeXBlID09PSAncDJ0cicgfHwgc2NyaXB0VHlwZSA9PT0gJ3AydHJNdXNpZzInKSB7XG4gICAgY29uc3QgcGF5bWVudCA9XG4gICAgICBzY3JpcHRUeXBlID09PSAncDJ0cicgPyBjcmVhdGVQYXltZW50UDJ0cih3YWxsZXRLZXlzLnB1YmxpY0tleXMpIDogY3JlYXRlUGF5bWVudFAydHJNdXNpZzIod2FsbGV0S2V5cy5wdWJsaWNLZXlzKTtcbiAgICBpZiAoIXBheW1lbnQub3V0cHV0IHx8ICFwYXltZW50Lm91dHB1dC5lcXVhbHMob3V0cHV0U2NyaXB0KSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBjYW5ub3QgdXBkYXRlIGEgcDJ0ciBvdXRwdXQgd2hlcmUgdGhlIHNjcmlwdHMgZG8gbm90IG1hdGNoIC0gRmFpbGluZy5gKTtcbiAgICB9XG4gICAgY29uc3QgYWxsTGVhZkhhc2hlcyA9IHBheW1lbnQucmVkZWVtcyEubWFwKChyKSA9PiB0YXByb290Lmhhc2hUYXBMZWFmKHIub3V0cHV0ISkpO1xuXG4gICAgaWYgKCFvdXRwdXQudGFwVHJlZSkge1xuICAgICAgdXBkYXRlLnRhcFRyZWUgPSBwYXltZW50LnRhcFRyZWU7XG4gICAgfVxuICAgIGlmICghb3V0cHV0LnRhcEludGVybmFsS2V5KSB7XG4gICAgICB1cGRhdGUudGFwSW50ZXJuYWxLZXkgPSBwYXltZW50LmludGVybmFsUHVia2V5O1xuICAgIH1cbiAgICBpZiAoIW91dHB1dC50YXBCaXAzMkRlcml2YXRpb24pIHtcbiAgICAgIHVwZGF0ZS50YXBCaXAzMkRlcml2YXRpb24gPSBbMCwgMSwgMl0ubWFwKChpZHgpID0+IHtcbiAgICAgICAgY29uc3QgcHVia2V5ID0gdG9YT25seVB1YmxpY0tleSh3YWxsZXRLZXlzLnRyaXBsZVtpZHhdLnB1YmxpY0tleSk7XG4gICAgICAgIGNvbnN0IGxlYWZIYXNoZXM6IEJ1ZmZlcltdID0gW107XG4gICAgICAgIHBheW1lbnQucmVkZWVtcyEuZm9yRWFjaCgociwgaWR4KSA9PiB7XG4gICAgICAgICAgaWYgKHIucHVia2V5cyEuZmluZCgocGspID0+IHBrLmVxdWFscyhwdWJrZXkpKSkge1xuICAgICAgICAgICAgbGVhZkhhc2hlcy5wdXNoKGFsbExlYWZIYXNoZXNbaWR4XSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBsZWFmSGFzaGVzLFxuICAgICAgICAgIHB1YmtleSxcbiAgICAgICAgICBwYXRoOiB3YWxsZXRLZXlzLnBhdGhzW2lkeF0sXG4gICAgICAgICAgbWFzdGVyRmluZ2VycHJpbnQ6IHJvb3RXYWxsZXRLZXlzLnRyaXBsZVtpZHhdLmZpbmdlcnByaW50LFxuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGNvbnN0IHsgc2NyaXB0UHViS2V5LCB3aXRuZXNzU2NyaXB0LCByZWRlZW1TY3JpcHQgfSA9IGNyZWF0ZU91dHB1dFNjcmlwdDJvZjMod2FsbGV0S2V5cy5wdWJsaWNLZXlzLCBzY3JpcHRUeXBlKTtcbiAgICBpZiAoIXNjcmlwdFB1YktleS5lcXVhbHMob3V0cHV0U2NyaXB0KSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBjYW5ub3QgdXBkYXRlIGFuIG91dHB1dCB3aGVyZSB0aGUgc2NyaXB0cyBkbyBub3QgbWF0Y2ggLSBGYWlsaW5nLmApO1xuICAgIH1cbiAgICBpZiAoIW91dHB1dC5iaXAzMkRlcml2YXRpb24pIHtcbiAgICAgIHVwZGF0ZS5iaXAzMkRlcml2YXRpb24gPSBbMCwgMSwgMl0ubWFwKChpZHgpID0+ICh7XG4gICAgICAgIHB1YmtleTogd2FsbGV0S2V5cy50cmlwbGVbaWR4XS5wdWJsaWNLZXksXG4gICAgICAgIHBhdGg6IHdhbGxldEtleXMucGF0aHNbaWR4XSxcbiAgICAgICAgbWFzdGVyRmluZ2VycHJpbnQ6IHJvb3RXYWxsZXRLZXlzLnRyaXBsZVtpZHhdLmZpbmdlcnByaW50LFxuICAgICAgfSkpO1xuICAgIH1cbiAgICBpZiAoIW91dHB1dC53aXRuZXNzU2NyaXB0ICYmIHdpdG5lc3NTY3JpcHQpIHtcbiAgICAgIHVwZGF0ZS53aXRuZXNzU2NyaXB0ID0gd2l0bmVzc1NjcmlwdDtcbiAgICB9XG4gICAgaWYgKCFvdXRwdXQucmVkZWVtU2NyaXB0ICYmIHJlZGVlbVNjcmlwdCkge1xuICAgICAgdXBkYXRlLnJlZGVlbVNjcmlwdCA9IHJlZGVlbVNjcmlwdDtcbiAgICB9XG4gIH1cbiAgcHNidC51cGRhdGVPdXRwdXQob3V0cHV0SW5kZXgsIHVwZGF0ZSk7XG59XG4iXX0=
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2FsbGV0T3V0cHV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JpdGdvL3dhbGxldC9XYWxsZXRPdXRwdXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFvQkEsc0RBa0JDO0FBaUJELDhEQXNFQztBQTdIRCxpREFBd0M7QUFJeEMscUNBQXlEO0FBQ3pELG9EQUF3SDtBQUV4SDs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCxTQUFnQixxQkFBcUIsQ0FDbkMsSUFBYyxFQUNkLGNBQThCLEVBQzlCLEtBQWdCLEVBQ2hCLEtBQWEsRUFDYixLQUFhO0lBRWIsTUFBTSxVQUFVLEdBQUcsY0FBYyxDQUFDLHNCQUFzQixDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN2RSxNQUFNLFVBQVUsR0FBRyxJQUFBLDJCQUFrQixFQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdDLElBQUksVUFBVSxLQUFLLE1BQU0sSUFBSSxVQUFVLEtBQUssWUFBWSxFQUFFLENBQUM7UUFDekQsTUFBTSxPQUFPLEdBQ1gsVUFBVSxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBQSxpQ0FBaUIsRUFBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUEsdUNBQXVCLEVBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3BILElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3JELENBQUM7U0FBTSxDQUFDO1FBQ04sTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFBLHNDQUFzQixFQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDM0YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFDRCx5QkFBeUIsQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQzlGLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILFNBQWdCLHlCQUF5QixDQUN2QyxJQUFjLEVBQ2QsY0FBOEIsRUFDOUIsV0FBbUIsRUFDbkIsS0FBZ0IsRUFDaEIsS0FBYTtJQUViLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQzVDLE1BQU0sSUFBSSxLQUFLLENBQ2IsZ0JBQWdCLFdBQVcsNkNBQTZDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUNwRyxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFdkQsTUFBTSxVQUFVLEdBQUcsY0FBYyxDQUFDLHNCQUFzQixDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN2RSxNQUFNLFVBQVUsR0FBRyxJQUFBLDJCQUFrQixFQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzlDLE1BQU0sTUFBTSxHQUFxQixFQUFFLENBQUM7SUFDcEMsSUFBSSxVQUFVLEtBQUssTUFBTSxJQUFJLFVBQVUsS0FBSyxZQUFZLEVBQUUsQ0FBQztRQUN6RCxNQUFNLE9BQU8sR0FDWCxVQUFVLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFBLGlDQUFpQixFQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBQSx1Q0FBdUIsRUFBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDcEgsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO1lBQzVELE1BQU0sSUFBSSxLQUFLLENBQUMsdUVBQXVFLENBQUMsQ0FBQztRQUMzRixDQUFDO1FBQ0QsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLE9BQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLHVCQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxNQUFPLENBQUMsQ0FBQyxDQUFDO1FBRWxGLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDcEIsTUFBTSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDO1FBQ25DLENBQUM7UUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQzNCLE1BQU0sQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQztRQUNqRCxDQUFDO1FBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQy9CLE1BQU0sQ0FBQyxrQkFBa0IsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ2hELE1BQU0sTUFBTSxHQUFHLElBQUEsZ0NBQWdCLEVBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDbEUsTUFBTSxVQUFVLEdBQWEsRUFBRSxDQUFDO2dCQUNoQyxPQUFPLENBQUMsT0FBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRTtvQkFDbEMsSUFBSSxDQUFDLENBQUMsT0FBUSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUM7d0JBQy9DLFVBQVUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQ3RDLENBQUM7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsT0FBTztvQkFDTCxVQUFVO29CQUNWLE1BQU07b0JBQ04sSUFBSSxFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO29CQUMzQixpQkFBaUIsRUFBRSxjQUFjLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVc7aUJBQzFELENBQUM7WUFDSixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO1NBQU0sQ0FBQztRQUNOLE1BQU0sRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxHQUFHLElBQUEsc0NBQXNCLEVBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUNoSCxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLE1BQU0sSUFBSSxLQUFLLENBQUMsbUVBQW1FLENBQUMsQ0FBQztRQUN2RixDQUFDO1FBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUM1QixNQUFNLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQy9DLE1BQU0sRUFBRSxVQUFVLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVM7Z0JBQ3hDLElBQUksRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQztnQkFDM0IsaUJBQWlCLEVBQUUsY0FBYyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxXQUFXO2FBQzFELENBQUMsQ0FBQyxDQUFDO1FBQ04sQ0FBQztRQUNELElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQzNDLE1BQU0sQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1FBQ3ZDLENBQUM7UUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksSUFBSSxZQUFZLEVBQUUsQ0FBQztZQUN6QyxNQUFNLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztRQUNyQyxDQUFDO0lBQ0gsQ0FBQztJQUNELElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3pDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0YXByb290IH0gZnJvbSAnYml0Y29pbmpzLWxpYic7XG5pbXBvcnQgeyBQc2J0T3V0cHV0VXBkYXRlIH0gZnJvbSAnYmlwMTc0L3NyYy9saWIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBVdHhvUHNidCB9IGZyb20gJy4uL1V0eG9Qc2J0JztcbmltcG9ydCB7IFJvb3RXYWxsZXRLZXlzIH0gZnJvbSAnLi9XYWxsZXRLZXlzJztcbmltcG9ydCB7IENoYWluQ29kZSwgc2NyaXB0VHlwZUZvckNoYWluIH0gZnJvbSAnLi9jaGFpbnMnO1xuaW1wb3J0IHsgY3JlYXRlT3V0cHV0U2NyaXB0Mm9mMywgY3JlYXRlUGF5bWVudFAydHIsIGNyZWF0ZVBheW1lbnRQMnRyTXVzaWcyLCB0b1hPbmx5UHVibGljS2V5IH0gZnJvbSAnLi4vb3V0cHV0U2NyaXB0cyc7XG5cbi8qKlxuICogQWRkIGEgdmVyaWZpYWJsZSB3YWxsZXQgb3V0cHV0IHRvIHRoZSBQU0JULiBUaGUgb3V0cHV0IGFuZCBhbGwgZGF0YVxuICogbmVlZGVkIHRvIHZlcmlmeSBpdCBmcm9tIHB1YmxpYyBrZXlzIG9ubHkgYXJlIGFkZGVkIHRvIHRoZSBQU0JULlxuICogVHlwaWNhbGx5IHRoZXNlIGFyZSBjaGFuZ2Ugb3V0cHV0cy5cbiAqXG4gKiBAcGFyYW0gcHNidCB0aGUgUFNCVCB0byBhZGQgY2hhbmdlIG91dHB1dCB0b1xuICogQHBhcmFtIHJvb3RXYWxsZXRLZXlzIGtleXMgdGhhdCB3aWxsIGJlIGFibGUgdG8gc3BlbmQgdGhlIG91dHB1dFxuICogQHBhcmFtIGNoYWluIGNoYWluIGNvZGUgdG8gdXNlIGZvciBkZXJpdmluZyBzY3JpcHRzIChhbmQgdG8gZGV0ZXJtaW5lIHNjcmlwdFxuICogICAgICAgICAgICAgIHR5cGUpIGNoYWluIGlzIGFuIEFQSSBwYXJhbWV0ZXIgaW4gdGhlIEJpdEdvIEFQSSwgYW5kIG1heSBiZVxuICogICAgICAgICAgICAgIGFueSB2YWxpZCBDaGFpbkNvZGVcbiAqIEBwYXJhbSBpbmRleCBkZXJpdmF0aW9uIGluZGV4IGZvciB0aGUgY2hhbmdlIGFkZHJlc3NcbiAqIEBwYXJhbSB2YWx1ZSB2YWx1ZSBvZiB0aGUgY2hhbmdlIG91dHB1dFxuICovXG5leHBvcnQgZnVuY3Rpb24gYWRkV2FsbGV0T3V0cHV0VG9Qc2J0KFxuICBwc2J0OiBVdHhvUHNidCxcbiAgcm9vdFdhbGxldEtleXM6IFJvb3RXYWxsZXRLZXlzLFxuICBjaGFpbjogQ2hhaW5Db2RlLFxuICBpbmRleDogbnVtYmVyLFxuICB2YWx1ZTogYmlnaW50XG4pOiB2b2lkIHtcbiAgY29uc3Qgd2FsbGV0S2V5cyA9IHJvb3RXYWxsZXRLZXlzLmRlcml2ZUZvckNoYWluQW5kSW5kZXgoY2hhaW4sIGluZGV4KTtcbiAgY29uc3Qgc2NyaXB0VHlwZSA9IHNjcmlwdFR5cGVGb3JDaGFpbihjaGFpbik7XG4gIGlmIChzY3JpcHRUeXBlID09PSAncDJ0cicgfHwgc2NyaXB0VHlwZSA9PT0gJ3AydHJNdXNpZzInKSB7XG4gICAgY29uc3QgcGF5bWVudCA9XG4gICAgICBzY3JpcHRUeXBlID09PSAncDJ0cicgPyBjcmVhdGVQYXltZW50UDJ0cih3YWxsZXRLZXlzLnB1YmxpY0tleXMpIDogY3JlYXRlUGF5bWVudFAydHJNdXNpZzIod2FsbGV0S2V5cy5wdWJsaWNLZXlzKTtcbiAgICBwc2J0LmFkZE91dHB1dCh7IHNjcmlwdDogcGF5bWVudC5vdXRwdXQhLCB2YWx1ZSB9KTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCB7IHNjcmlwdFB1YktleTogc2NyaXB0IH0gPSBjcmVhdGVPdXRwdXRTY3JpcHQyb2YzKHdhbGxldEtleXMucHVibGljS2V5cywgc2NyaXB0VHlwZSk7XG4gICAgcHNidC5hZGRPdXRwdXQoeyBzY3JpcHQsIHZhbHVlIH0pO1xuICB9XG4gIHVwZGF0ZVdhbGxldE91dHB1dEZvclBzYnQocHNidCwgcm9vdFdhbGxldEtleXMsIHBzYnQuZGF0YS5vdXRwdXRzLmxlbmd0aCAtIDEsIGNoYWluLCBpbmRleCk7XG59XG5cbi8qKlxuICogVXBkYXRlIHRoZSB3YWxsZXQgb3V0cHV0IHdpdGggdGhlIHJlcXVpcmVkIGluZm9ybWF0aW9uIHdoZW4gbmVjZXNzYXJ5LiBJZiB0aGVcbiAqIGluZm9ybWF0aW9uIGlzIHRoZXJlIGFscmVhZHksIGl0IHdpbGwgc2tpcCBvdmVyIGl0LlxuICpcbiAqIFRoaXMgZnVuY3Rpb24gYXNzdW1lcyB0aGF0IHRoZSBvdXRwdXQgc2NyaXB0IGFuZCB2YWx1ZSBoYXZlIGFscmVhZHkgYmVlbiBzZXQuXG4gKlxuICogQHBhcmFtIHBzYnQgdGhlIFBTQlQgdG8gdXBkYXRlIGNoYW5nZSBvdXRwdXQgYXRcbiAqIEBwYXJhbSByb290V2FsbGV0S2V5cyBrZXlzIHRoYXQgd2lsbCBiZSBhYmxlIHRvIHNwZW5kIHRoZSBvdXRwdXRcbiAqIEBwYXJhbSBvdXRwdXRJbmRleCBvdXRwdXQgaW5kZXggd2hlcmUgdG8gdXBkYXRlIHRoZSBvdXRwdXRcbiAqIEBwYXJhbSBjaGFpbiBjaGFpbiBjb2RlIHRvIHVzZSBmb3IgZGVyaXZpbmcgc2NyaXB0cyAoYW5kIHRvIGRldGVybWluZSBzY3JpcHRcbiAqICAgICAgICAgICAgICB0eXBlKSBjaGFpbiBpcyBhbiBBUEkgcGFyYW1ldGVyIGluIHRoZSBCaXRHbyBBUEksIGFuZCBtYXkgYmVcbiAqICAgICAgICAgICAgICBhbnkgdmFsaWQgQ2hhaW5Db2RlXG4gKiBAcGFyYW0gaW5kZXggZGVyaXZhdGlvbiBpbmRleCBmb3IgdGhlIGNoYW5nZSBhZGRyZXNzXG4gKiBAcGFyYW0gdmFsdWUgdmFsdWUgb2YgdGhlIGNoYW5nZSBvdXRwdXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZVdhbGxldE91dHB1dEZvclBzYnQoXG4gIHBzYnQ6IFV0eG9Qc2J0LFxuICByb290V2FsbGV0S2V5czogUm9vdFdhbGxldEtleXMsXG4gIG91dHB1dEluZGV4OiBudW1iZXIsXG4gIGNoYWluOiBDaGFpbkNvZGUsXG4gIGluZGV4OiBudW1iZXJcbik6IHZvaWQge1xuICBpZiAocHNidC5kYXRhLm91dHB1dHMubGVuZ3RoIDw9IG91dHB1dEluZGV4KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYG91dHB1dEluZGV4ICgke291dHB1dEluZGV4fSkgaXMgdG9vIGxhcmdlIGZvciB0aGUgbnVtYmVyIG9mIG91dHB1dHMgKCR7cHNidC5kYXRhLm91dHB1dHMubGVuZ3RofSlgXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IG91dHB1dFNjcmlwdCA9IHBzYnQuZ2V0T3V0cHV0U2NyaXB0KG91dHB1dEluZGV4KTtcblxuICBjb25zdCB3YWxsZXRLZXlzID0gcm9vdFdhbGxldEtleXMuZGVyaXZlRm9yQ2hhaW5BbmRJbmRleChjaGFpbiwgaW5kZXgpO1xuICBjb25zdCBzY3JpcHRUeXBlID0gc2NyaXB0VHlwZUZvckNoYWluKGNoYWluKTtcbiAgY29uc3Qgb3V0cHV0ID0gcHNidC5kYXRhLm91dHB1dHNbb3V0cHV0SW5kZXhdO1xuICBjb25zdCB1cGRhdGU6IFBzYnRPdXRwdXRVcGRhdGUgPSB7fTtcbiAgaWYgKHNjcmlwdFR5cGUgPT09ICdwMnRyJyB8fCBzY3JpcHRUeXBlID09PSAncDJ0ck11c2lnMicpIHtcbiAgICBjb25zdCBwYXltZW50ID1cbiAgICAgIHNjcmlwdFR5cGUgPT09ICdwMnRyJyA/IGNyZWF0ZVBheW1lbnRQMnRyKHdhbGxldEtleXMucHVibGljS2V5cykgOiBjcmVhdGVQYXltZW50UDJ0ck11c2lnMih3YWxsZXRLZXlzLnB1YmxpY0tleXMpO1xuICAgIGlmICghcGF5bWVudC5vdXRwdXQgfHwgIXBheW1lbnQub3V0cHV0LmVxdWFscyhvdXRwdXRTY3JpcHQpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGNhbm5vdCB1cGRhdGUgYSBwMnRyIG91dHB1dCB3aGVyZSB0aGUgc2NyaXB0cyBkbyBub3QgbWF0Y2ggLSBGYWlsaW5nLmApO1xuICAgIH1cbiAgICBjb25zdCBhbGxMZWFmSGFzaGVzID0gcGF5bWVudC5yZWRlZW1zIS5tYXAoKHIpID0+IHRhcHJvb3QuaGFzaFRhcExlYWYoci5vdXRwdXQhKSk7XG5cbiAgICBpZiAoIW91dHB1dC50YXBUcmVlKSB7XG4gICAgICB1cGRhdGUudGFwVHJlZSA9IHBheW1lbnQudGFwVHJlZTtcbiAgICB9XG4gICAgaWYgKCFvdXRwdXQudGFwSW50ZXJuYWxLZXkpIHtcbiAgICAgIHVwZGF0ZS50YXBJbnRlcm5hbEtleSA9IHBheW1lbnQuaW50ZXJuYWxQdWJrZXk7XG4gICAgfVxuICAgIGlmICghb3V0cHV0LnRhcEJpcDMyRGVyaXZhdGlvbikge1xuICAgICAgdXBkYXRlLnRhcEJpcDMyRGVyaXZhdGlvbiA9IFswLCAxLCAyXS5tYXAoKGlkeCkgPT4ge1xuICAgICAgICBjb25zdCBwdWJrZXkgPSB0b1hPbmx5UHVibGljS2V5KHdhbGxldEtleXMudHJpcGxlW2lkeF0ucHVibGljS2V5KTtcbiAgICAgICAgY29uc3QgbGVhZkhhc2hlczogQnVmZmVyW10gPSBbXTtcbiAgICAgICAgcGF5bWVudC5yZWRlZW1zIS5mb3JFYWNoKChyLCBpZHgpID0+IHtcbiAgICAgICAgICBpZiAoci5wdWJrZXlzIS5maW5kKChwaykgPT4gcGsuZXF1YWxzKHB1YmtleSkpKSB7XG4gICAgICAgICAgICBsZWFmSGFzaGVzLnB1c2goYWxsTGVhZkhhc2hlc1tpZHhdKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGxlYWZIYXNoZXMsXG4gICAgICAgICAgcHVia2V5LFxuICAgICAgICAgIHBhdGg6IHdhbGxldEtleXMucGF0aHNbaWR4XSxcbiAgICAgICAgICBtYXN0ZXJGaW5nZXJwcmludDogcm9vdFdhbGxldEtleXMudHJpcGxlW2lkeF0uZmluZ2VycHJpbnQsXG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgeyBzY3JpcHRQdWJLZXksIHdpdG5lc3NTY3JpcHQsIHJlZGVlbVNjcmlwdCB9ID0gY3JlYXRlT3V0cHV0U2NyaXB0Mm9mMyh3YWxsZXRLZXlzLnB1YmxpY0tleXMsIHNjcmlwdFR5cGUpO1xuICAgIGlmICghc2NyaXB0UHViS2V5LmVxdWFscyhvdXRwdXRTY3JpcHQpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGNhbm5vdCB1cGRhdGUgYW4gb3V0cHV0IHdoZXJlIHRoZSBzY3JpcHRzIGRvIG5vdCBtYXRjaCAtIEZhaWxpbmcuYCk7XG4gICAgfVxuICAgIGlmICghb3V0cHV0LmJpcDMyRGVyaXZhdGlvbikge1xuICAgICAgdXBkYXRlLmJpcDMyRGVyaXZhdGlvbiA9IFswLCAxLCAyXS5tYXAoKGlkeCkgPT4gKHtcbiAgICAgICAgcHVia2V5OiB3YWxsZXRLZXlzLnRyaXBsZVtpZHhdLnB1YmxpY0tleSxcbiAgICAgICAgcGF0aDogd2FsbGV0S2V5cy5wYXRoc1tpZHhdLFxuICAgICAgICBtYXN0ZXJGaW5nZXJwcmludDogcm9vdFdhbGxldEtleXMudHJpcGxlW2lkeF0uZmluZ2VycHJpbnQsXG4gICAgICB9KSk7XG4gICAgfVxuICAgIGlmICghb3V0cHV0LndpdG5lc3NTY3JpcHQgJiYgd2l0bmVzc1NjcmlwdCkge1xuICAgICAgdXBkYXRlLndpdG5lc3NTY3JpcHQgPSB3aXRuZXNzU2NyaXB0O1xuICAgIH1cbiAgICBpZiAoIW91dHB1dC5yZWRlZW1TY3JpcHQgJiYgcmVkZWVtU2NyaXB0KSB7XG4gICAgICB1cGRhdGUucmVkZWVtU2NyaXB0ID0gcmVkZWVtU2NyaXB0O1xuICAgIH1cbiAgfVxuICBwc2J0LnVwZGF0ZU91dHB1dChvdXRwdXRJbmRleCwgdXBkYXRlKTtcbn1cbiJdfQ==
@@ -1,15 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getWalletAddress = exports.getWalletOutputScripts = void 0;
3
+ exports.getWalletOutputScripts = getWalletOutputScripts;
4
+ exports.getWalletAddress = getWalletAddress;
4
5
  const __1 = require("../..");
5
6
  const __2 = require("..");
6
7
  const outputScripts_1 = require("../outputScripts");
7
8
  function getWalletOutputScripts(keys, chain, index) {
8
- return __2.outputScripts.createOutputScript2of3(keys.deriveForChainAndIndex(chain, index).publicKeys, outputScripts_1.scriptTypeForChain(chain));
9
+ return __2.outputScripts.createOutputScript2of3(keys.deriveForChainAndIndex(chain, index).publicKeys, (0, outputScripts_1.scriptTypeForChain)(chain));
9
10
  }
10
- exports.getWalletOutputScripts = getWalletOutputScripts;
11
11
  function getWalletAddress(keys, chain, index, network) {
12
12
  return __1.address.fromOutputScript(getWalletOutputScripts(keys, chain, index).scriptPubKey, network);
13
13
  }
14
- exports.getWalletAddress = getWalletAddress;
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2FsbGV0U2NyaXB0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iaXRnby93YWxsZXQvV2FsbGV0U2NyaXB0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2QkFBeUM7QUFDekMsMEJBQThDO0FBRTlDLG9EQUF1RTtBQUV2RSxTQUFnQixzQkFBc0IsQ0FBQyxJQUFvQixFQUFFLEtBQWdCLEVBQUUsS0FBYTtJQUMxRixPQUFPLGlCQUFhLENBQUMsc0JBQXNCLENBQ3pDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsVUFBVSxFQUNwRCxrQ0FBa0IsQ0FBQyxLQUFLLENBQUMsQ0FDMUIsQ0FBQztBQUNKLENBQUM7QUFMRCx3REFLQztBQUVELFNBQWdCLGdCQUFnQixDQUFDLElBQW9CLEVBQUUsS0FBZ0IsRUFBRSxLQUFhLEVBQUUsT0FBZ0I7SUFDdEcsT0FBTyxXQUFPLENBQUMsZ0JBQWdCLENBQUMsc0JBQXNCLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDcEcsQ0FBQztBQUZELDRDQUVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmV0d29yaywgYWRkcmVzcyB9IGZyb20gJy4uLy4uJztcbmltcG9ydCB7IENoYWluQ29kZSwgb3V0cHV0U2NyaXB0cyB9IGZyb20gJy4uJztcbmltcG9ydCB7IFJvb3RXYWxsZXRLZXlzIH0gZnJvbSAnLi9XYWxsZXRLZXlzJztcbmltcG9ydCB7IHNjcmlwdFR5cGVGb3JDaGFpbiwgU3BlbmRhYmxlU2NyaXB0IH0gZnJvbSAnLi4vb3V0cHV0U2NyaXB0cyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRXYWxsZXRPdXRwdXRTY3JpcHRzKGtleXM6IFJvb3RXYWxsZXRLZXlzLCBjaGFpbjogQ2hhaW5Db2RlLCBpbmRleDogbnVtYmVyKTogU3BlbmRhYmxlU2NyaXB0IHtcbiAgcmV0dXJuIG91dHB1dFNjcmlwdHMuY3JlYXRlT3V0cHV0U2NyaXB0Mm9mMyhcbiAgICBrZXlzLmRlcml2ZUZvckNoYWluQW5kSW5kZXgoY2hhaW4sIGluZGV4KS5wdWJsaWNLZXlzLFxuICAgIHNjcmlwdFR5cGVGb3JDaGFpbihjaGFpbilcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFdhbGxldEFkZHJlc3Moa2V5czogUm9vdFdhbGxldEtleXMsIGNoYWluOiBDaGFpbkNvZGUsIGluZGV4OiBudW1iZXIsIG5ldHdvcms6IE5ldHdvcmspOiBzdHJpbmcge1xuICByZXR1cm4gYWRkcmVzcy5mcm9tT3V0cHV0U2NyaXB0KGdldFdhbGxldE91dHB1dFNjcmlwdHMoa2V5cywgY2hhaW4sIGluZGV4KS5zY3JpcHRQdWJLZXksIG5ldHdvcmspO1xufVxuIl19
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2FsbGV0U2NyaXB0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iaXRnby93YWxsZXQvV2FsbGV0U2NyaXB0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUtBLHdEQUtDO0FBRUQsNENBRUM7QUFkRCw2QkFBeUM7QUFDekMsMEJBQThDO0FBRTlDLG9EQUF1RTtBQUV2RSxTQUFnQixzQkFBc0IsQ0FBQyxJQUFvQixFQUFFLEtBQWdCLEVBQUUsS0FBYTtJQUMxRixPQUFPLGlCQUFhLENBQUMsc0JBQXNCLENBQ3pDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsVUFBVSxFQUNwRCxJQUFBLGtDQUFrQixFQUFDLEtBQUssQ0FBQyxDQUMxQixDQUFDO0FBQ0osQ0FBQztBQUVELFNBQWdCLGdCQUFnQixDQUFDLElBQW9CLEVBQUUsS0FBZ0IsRUFBRSxLQUFhLEVBQUUsT0FBZ0I7SUFDdEcsT0FBTyxXQUFPLENBQUMsZ0JBQWdCLENBQUMsc0JBQXNCLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDcEcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5ldHdvcmssIGFkZHJlc3MgfSBmcm9tICcuLi8uLic7XG5pbXBvcnQgeyBDaGFpbkNvZGUsIG91dHB1dFNjcmlwdHMgfSBmcm9tICcuLic7XG5pbXBvcnQgeyBSb290V2FsbGV0S2V5cyB9IGZyb20gJy4vV2FsbGV0S2V5cyc7XG5pbXBvcnQgeyBzY3JpcHRUeXBlRm9yQ2hhaW4sIFNwZW5kYWJsZVNjcmlwdCB9IGZyb20gJy4uL291dHB1dFNjcmlwdHMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0V2FsbGV0T3V0cHV0U2NyaXB0cyhrZXlzOiBSb290V2FsbGV0S2V5cywgY2hhaW46IENoYWluQ29kZSwgaW5kZXg6IG51bWJlcik6IFNwZW5kYWJsZVNjcmlwdCB7XG4gIHJldHVybiBvdXRwdXRTY3JpcHRzLmNyZWF0ZU91dHB1dFNjcmlwdDJvZjMoXG4gICAga2V5cy5kZXJpdmVGb3JDaGFpbkFuZEluZGV4KGNoYWluLCBpbmRleCkucHVibGljS2V5cyxcbiAgICBzY3JpcHRUeXBlRm9yQ2hhaW4oY2hhaW4pXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRXYWxsZXRBZGRyZXNzKGtleXM6IFJvb3RXYWxsZXRLZXlzLCBjaGFpbjogQ2hhaW5Db2RlLCBpbmRleDogbnVtYmVyLCBuZXR3b3JrOiBOZXR3b3JrKTogc3RyaW5nIHtcbiAgcmV0dXJuIGFkZHJlc3MuZnJvbU91dHB1dFNjcmlwdChnZXRXYWxsZXRPdXRwdXRTY3JpcHRzKGtleXMsIGNoYWluLCBpbmRleCkuc2NyaXB0UHViS2V5LCBuZXR3b3JrKTtcbn1cbiJdfQ==
@@ -3,31 +3,31 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.WalletUnspentSigner = void 0;
4
4
  const WalletKeys_1 = require("./WalletKeys");
5
5
  class WalletUnspentSigner {
6
+ static from(walletKeys, signer, cosigner) {
7
+ return new WalletUnspentSigner(walletKeys, signer, cosigner);
8
+ }
6
9
  constructor(walletKeys, signer, cosigner) {
7
10
  this.signer = signer;
8
11
  this.cosigner = cosigner;
9
12
  if (Array.isArray(walletKeys)) {
10
13
  walletKeys = new WalletKeys_1.RootWalletKeys(walletKeys);
11
14
  }
12
- this.signerIndex = walletKeys.triple.findIndex((k) => WalletKeys_1.eqPublicKey(k, signer));
15
+ this.signerIndex = walletKeys.triple.findIndex((k) => (0, WalletKeys_1.eqPublicKey)(k, signer));
13
16
  if (this.signerIndex === undefined) {
14
17
  throw new Error(`signer not part of walletKeys`);
15
18
  }
16
- this.cosignerIndex = walletKeys.triple.findIndex((k) => WalletKeys_1.eqPublicKey(k, cosigner));
19
+ this.cosignerIndex = walletKeys.triple.findIndex((k) => (0, WalletKeys_1.eqPublicKey)(k, cosigner));
17
20
  if (this.cosignerIndex === undefined) {
18
21
  throw new Error(`cosigner not part of walletKeys`);
19
22
  }
20
23
  this.walletKeys = walletKeys;
21
- if (WalletKeys_1.eqPublicKey(signer, cosigner)) {
24
+ if ((0, WalletKeys_1.eqPublicKey)(signer, cosigner)) {
22
25
  throw new Error(`signer must not equal cosigner`);
23
26
  }
24
27
  if (signer.isNeutered()) {
25
28
  throw new Error(`signer must have private key`);
26
29
  }
27
30
  }
28
- static from(walletKeys, signer, cosigner) {
29
- return new WalletUnspentSigner(walletKeys, signer, cosigner);
30
- }
31
31
  /**
32
32
  * @param chain
33
33
  * @param index
@@ -44,4 +44,4 @@ class WalletUnspentSigner {
44
44
  }
45
45
  }
46
46
  exports.WalletUnspentSigner = WalletUnspentSigner;
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2FsbGV0VW5zcGVudFNpZ25lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iaXRnby93YWxsZXQvV2FsbGV0VW5zcGVudFNpZ25lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSw2Q0FBMEY7QUFHMUYsTUFBYSxtQkFBbUI7SUFjOUIsWUFDRSxVQUErQyxFQUN4QyxNQUFzQixFQUN0QixRQUF3QjtRQUR4QixXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUFnQjtRQUUvQixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDN0IsVUFBVSxHQUFHLElBQUksMkJBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUM3QztRQUNELElBQUksQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLHdCQUFXLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDOUUsSUFBSSxJQUFJLENBQUMsV0FBVyxLQUFLLFNBQVMsRUFBRTtZQUNsQyxNQUFNLElBQUksS0FBSyxDQUFDLCtCQUErQixDQUFDLENBQUM7U0FDbEQ7UUFDRCxJQUFJLENBQUMsYUFBYSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyx3QkFBVyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ2xGLElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxTQUFTLEVBQUU7WUFDcEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO1NBQ3BEO1FBRUQsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFlLENBQUM7UUFFbEMsSUFBSSx3QkFBVyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFBRTtZQUNqQyxNQUFNLElBQUksS0FBSyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7U0FDbkQ7UUFDRCxJQUFJLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUN2QixNQUFNLElBQUksS0FBSyxDQUFDLDhCQUE4QixDQUFDLENBQUM7U0FDakQ7SUFDSCxDQUFDO0lBcENELE1BQU0sQ0FBQyxJQUFJLENBQ1QsVUFBMEIsRUFDMUIsTUFBc0IsRUFDdEIsUUFBd0I7UUFFeEIsT0FBTyxJQUFJLG1CQUFtQixDQUFpQixVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFnQ0Q7Ozs7T0FJRztJQUNILHNCQUFzQixDQUFDLEtBQWEsRUFBRSxLQUFhO1FBQ2pELElBQUksSUFBSSxDQUFDLFVBQVUsWUFBWSw4QkFBaUIsRUFBRTtZQUNoRCxNQUFNLElBQUksS0FBSyxDQUFDLDRDQUE0QyxDQUFDLENBQUM7U0FDL0Q7UUFFRCxJQUFJLElBQUksQ0FBQyxVQUFVLFlBQVksMkJBQWMsRUFBRTtZQUM3QyxPQUFPLElBQUksbUJBQW1CLENBQzVCLElBQUksQ0FBQyxVQUFVLENBQUMsc0JBQXNCLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUNwRCxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQ3BGLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FDekYsQ0FBQztTQUNIO1FBRUQsTUFBTSxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNuQyxDQUFDO0NBQ0Y7QUE3REQsa0RBNkRDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQklQMzJJbnRlcmZhY2UgfSBmcm9tICdiaXAzMic7XG5cbmltcG9ydCB7IERlcml2ZWRXYWxsZXRLZXlzLCBlcVB1YmxpY0tleSwgUm9vdFdhbGxldEtleXMsIFdhbGxldEtleXMgfSBmcm9tICcuL1dhbGxldEtleXMnO1xuaW1wb3J0IHsgVHJpcGxlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY2xhc3MgV2FsbGV0VW5zcGVudFNpZ25lcjxUIGV4dGVuZHMgV2FsbGV0S2V5cz4ge1xuICBwdWJsaWMgcmVhZG9ubHkgd2FsbGV0S2V5czogVDtcblxuICBzdGF0aWMgZnJvbShcbiAgICB3YWxsZXRLZXlzOiBSb290V2FsbGV0S2V5cyxcbiAgICBzaWduZXI6IEJJUDMySW50ZXJmYWNlLFxuICAgIGNvc2lnbmVyOiBCSVAzMkludGVyZmFjZVxuICApOiBXYWxsZXRVbnNwZW50U2lnbmVyPFJvb3RXYWxsZXRLZXlzPiB7XG4gICAgcmV0dXJuIG5ldyBXYWxsZXRVbnNwZW50U2lnbmVyPFJvb3RXYWxsZXRLZXlzPih3YWxsZXRLZXlzLCBzaWduZXIsIGNvc2lnbmVyKTtcbiAgfVxuXG4gIHJlYWRvbmx5IHNpZ25lckluZGV4O1xuICByZWFkb25seSBjb3NpZ25lckluZGV4O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHdhbGxldEtleXM6IFdhbGxldEtleXMgfCBUcmlwbGU8QklQMzJJbnRlcmZhY2U+LFxuICAgIHB1YmxpYyBzaWduZXI6IEJJUDMySW50ZXJmYWNlLFxuICAgIHB1YmxpYyBjb3NpZ25lcjogQklQMzJJbnRlcmZhY2VcbiAgKSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkod2FsbGV0S2V5cykpIHtcbiAgICAgIHdhbGxldEtleXMgPSBuZXcgUm9vdFdhbGxldEtleXMod2FsbGV0S2V5cyk7XG4gICAgfVxuICAgIHRoaXMuc2lnbmVySW5kZXggPSB3YWxsZXRLZXlzLnRyaXBsZS5maW5kSW5kZXgoKGspID0+IGVxUHVibGljS2V5KGssIHNpZ25lcikpO1xuICAgIGlmICh0aGlzLnNpZ25lckluZGV4ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgc2lnbmVyIG5vdCBwYXJ0IG9mIHdhbGxldEtleXNgKTtcbiAgICB9XG4gICAgdGhpcy5jb3NpZ25lckluZGV4ID0gd2FsbGV0S2V5cy50cmlwbGUuZmluZEluZGV4KChrKSA9PiBlcVB1YmxpY0tleShrLCBjb3NpZ25lcikpO1xuICAgIGlmICh0aGlzLmNvc2lnbmVySW5kZXggPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBjb3NpZ25lciBub3QgcGFydCBvZiB3YWxsZXRLZXlzYCk7XG4gICAgfVxuXG4gICAgdGhpcy53YWxsZXRLZXlzID0gd2FsbGV0S2V5cyBhcyBUO1xuXG4gICAgaWYgKGVxUHVibGljS2V5KHNpZ25lciwgY29zaWduZXIpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHNpZ25lciBtdXN0IG5vdCBlcXVhbCBjb3NpZ25lcmApO1xuICAgIH1cbiAgICBpZiAoc2lnbmVyLmlzTmV1dGVyZWQoKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBzaWduZXIgbXVzdCBoYXZlIHByaXZhdGUga2V5YCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBjaGFpblxuICAgKiBAcGFyYW0gaW5kZXhcbiAgICogQHJldHVybiBXYWxsZXRVbnNwZW50U2lnbmVyIHRoYXQgY29udGFpbnMga2V5cyBmb3IgZ2VuZXJhdGluZyBvdXRwdXQgc2NyaXB0cyBhbmQgc2lnbmF0dXJlcy5cbiAgICovXG4gIGRlcml2ZUZvckNoYWluQW5kSW5kZXgoY2hhaW46IG51bWJlciwgaW5kZXg6IG51bWJlcik6IFdhbGxldFVuc3BlbnRTaWduZXI8RGVyaXZlZFdhbGxldEtleXM+IHtcbiAgICBpZiAodGhpcy53YWxsZXRLZXlzIGluc3RhbmNlb2YgRGVyaXZlZFdhbGxldEtleXMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgY2Fubm90IGRlcml2ZSBhZ2FpbiBmcm9tIERlcml2ZWRXYWxsZXRLZXlzYCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMud2FsbGV0S2V5cyBpbnN0YW5jZW9mIFJvb3RXYWxsZXRLZXlzKSB7XG4gICAgICByZXR1cm4gbmV3IFdhbGxldFVuc3BlbnRTaWduZXIoXG4gICAgICAgIHRoaXMud2FsbGV0S2V5cy5kZXJpdmVGb3JDaGFpbkFuZEluZGV4KGNoYWluLCBpbmRleCksXG4gICAgICAgIHRoaXMuc2lnbmVyLmRlcml2ZVBhdGgodGhpcy53YWxsZXRLZXlzLmdldERlcml2YXRpb25QYXRoKHRoaXMuc2lnbmVyLCBjaGFpbiwgaW5kZXgpKSxcbiAgICAgICAgdGhpcy5jb3NpZ25lci5kZXJpdmVQYXRoKHRoaXMud2FsbGV0S2V5cy5nZXREZXJpdmF0aW9uUGF0aCh0aGlzLmNvc2lnbmVyLCBjaGFpbiwgaW5kZXgpKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgc3RhdGVgKTtcbiAgfVxufVxuIl19
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2FsbGV0VW5zcGVudFNpZ25lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iaXRnby93YWxsZXQvV2FsbGV0VW5zcGVudFNpZ25lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSw2Q0FBMEY7QUFHMUYsTUFBYSxtQkFBbUI7SUFHOUIsTUFBTSxDQUFDLElBQUksQ0FDVCxVQUEwQixFQUMxQixNQUFzQixFQUN0QixRQUF3QjtRQUV4QixPQUFPLElBQUksbUJBQW1CLENBQWlCLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUtELFlBQ0UsVUFBK0MsRUFDeEMsTUFBc0IsRUFDdEIsUUFBd0I7UUFEeEIsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFDdEIsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFFL0IsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDOUIsVUFBVSxHQUFHLElBQUksMkJBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBQ0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBQSx3QkFBVyxFQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQzlFLElBQUksSUFBSSxDQUFDLFdBQVcsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNuQyxNQUFNLElBQUksS0FBSyxDQUFDLCtCQUErQixDQUFDLENBQUM7UUFDbkQsQ0FBQztRQUNELElBQUksQ0FBQyxhQUFhLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUEsd0JBQVcsRUFBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUNsRixJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDckMsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO1FBQ3JELENBQUM7UUFFRCxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQWUsQ0FBQztRQUVsQyxJQUFJLElBQUEsd0JBQVcsRUFBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUNsQyxNQUFNLElBQUksS0FBSyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7UUFDcEQsQ0FBQztRQUNELElBQUksTUFBTSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUM7WUFDeEIsTUFBTSxJQUFJLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1FBQ2xELENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILHNCQUFzQixDQUFDLEtBQWEsRUFBRSxLQUFhO1FBQ2pELElBQUksSUFBSSxDQUFDLFVBQVUsWUFBWSw4QkFBaUIsRUFBRSxDQUFDO1lBQ2pELE1BQU0sSUFBSSxLQUFLLENBQUMsNENBQTRDLENBQUMsQ0FBQztRQUNoRSxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsVUFBVSxZQUFZLDJCQUFjLEVBQUUsQ0FBQztZQUM5QyxPQUFPLElBQUksbUJBQW1CLENBQzVCLElBQUksQ0FBQyxVQUFVLENBQUMsc0JBQXNCLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUNwRCxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQ3BGLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FDekYsQ0FBQztRQUNKLENBQUM7UUFFRCxNQUFNLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ25DLENBQUM7Q0FDRjtBQTdERCxrREE2REMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCSVAzMkludGVyZmFjZSB9IGZyb20gJ2JpcDMyJztcblxuaW1wb3J0IHsgRGVyaXZlZFdhbGxldEtleXMsIGVxUHVibGljS2V5LCBSb290V2FsbGV0S2V5cywgV2FsbGV0S2V5cyB9IGZyb20gJy4vV2FsbGV0S2V5cyc7XG5pbXBvcnQgeyBUcmlwbGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjbGFzcyBXYWxsZXRVbnNwZW50U2lnbmVyPFQgZXh0ZW5kcyBXYWxsZXRLZXlzPiB7XG4gIHB1YmxpYyByZWFkb25seSB3YWxsZXRLZXlzOiBUO1xuXG4gIHN0YXRpYyBmcm9tKFxuICAgIHdhbGxldEtleXM6IFJvb3RXYWxsZXRLZXlzLFxuICAgIHNpZ25lcjogQklQMzJJbnRlcmZhY2UsXG4gICAgY29zaWduZXI6IEJJUDMySW50ZXJmYWNlXG4gICk6IFdhbGxldFVuc3BlbnRTaWduZXI8Um9vdFdhbGxldEtleXM+IHtcbiAgICByZXR1cm4gbmV3IFdhbGxldFVuc3BlbnRTaWduZXI8Um9vdFdhbGxldEtleXM+KHdhbGxldEtleXMsIHNpZ25lciwgY29zaWduZXIpO1xuICB9XG5cbiAgcmVhZG9ubHkgc2lnbmVySW5kZXg7XG4gIHJlYWRvbmx5IGNvc2lnbmVySW5kZXg7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgd2FsbGV0S2V5czogV2FsbGV0S2V5cyB8IFRyaXBsZTxCSVAzMkludGVyZmFjZT4sXG4gICAgcHVibGljIHNpZ25lcjogQklQMzJJbnRlcmZhY2UsXG4gICAgcHVibGljIGNvc2lnbmVyOiBCSVAzMkludGVyZmFjZVxuICApIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh3YWxsZXRLZXlzKSkge1xuICAgICAgd2FsbGV0S2V5cyA9IG5ldyBSb290V2FsbGV0S2V5cyh3YWxsZXRLZXlzKTtcbiAgICB9XG4gICAgdGhpcy5zaWduZXJJbmRleCA9IHdhbGxldEtleXMudHJpcGxlLmZpbmRJbmRleCgoaykgPT4gZXFQdWJsaWNLZXkoaywgc2lnbmVyKSk7XG4gICAgaWYgKHRoaXMuc2lnbmVySW5kZXggPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBzaWduZXIgbm90IHBhcnQgb2Ygd2FsbGV0S2V5c2ApO1xuICAgIH1cbiAgICB0aGlzLmNvc2lnbmVySW5kZXggPSB3YWxsZXRLZXlzLnRyaXBsZS5maW5kSW5kZXgoKGspID0+IGVxUHVibGljS2V5KGssIGNvc2lnbmVyKSk7XG4gICAgaWYgKHRoaXMuY29zaWduZXJJbmRleCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGNvc2lnbmVyIG5vdCBwYXJ0IG9mIHdhbGxldEtleXNgKTtcbiAgICB9XG5cbiAgICB0aGlzLndhbGxldEtleXMgPSB3YWxsZXRLZXlzIGFzIFQ7XG5cbiAgICBpZiAoZXFQdWJsaWNLZXkoc2lnbmVyLCBjb3NpZ25lcikpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgc2lnbmVyIG11c3Qgbm90IGVxdWFsIGNvc2lnbmVyYCk7XG4gICAgfVxuICAgIGlmIChzaWduZXIuaXNOZXV0ZXJlZCgpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHNpZ25lciBtdXN0IGhhdmUgcHJpdmF0ZSBrZXlgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIGNoYWluXG4gICAqIEBwYXJhbSBpbmRleFxuICAgKiBAcmV0dXJuIFdhbGxldFVuc3BlbnRTaWduZXIgdGhhdCBjb250YWlucyBrZXlzIGZvciBnZW5lcmF0aW5nIG91dHB1dCBzY3JpcHRzIGFuZCBzaWduYXR1cmVzLlxuICAgKi9cbiAgZGVyaXZlRm9yQ2hhaW5BbmRJbmRleChjaGFpbjogbnVtYmVyLCBpbmRleDogbnVtYmVyKTogV2FsbGV0VW5zcGVudFNpZ25lcjxEZXJpdmVkV2FsbGV0S2V5cz4ge1xuICAgIGlmICh0aGlzLndhbGxldEtleXMgaW5zdGFuY2VvZiBEZXJpdmVkV2FsbGV0S2V5cykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBjYW5ub3QgZGVyaXZlIGFnYWluIGZyb20gRGVyaXZlZFdhbGxldEtleXNgKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy53YWxsZXRLZXlzIGluc3RhbmNlb2YgUm9vdFdhbGxldEtleXMpIHtcbiAgICAgIHJldHVybiBuZXcgV2FsbGV0VW5zcGVudFNpZ25lcihcbiAgICAgICAgdGhpcy53YWxsZXRLZXlzLmRlcml2ZUZvckNoYWluQW5kSW5kZXgoY2hhaW4sIGluZGV4KSxcbiAgICAgICAgdGhpcy5zaWduZXIuZGVyaXZlUGF0aCh0aGlzLndhbGxldEtleXMuZ2V0RGVyaXZhdGlvblBhdGgodGhpcy5zaWduZXIsIGNoYWluLCBpbmRleCkpLFxuICAgICAgICB0aGlzLmNvc2lnbmVyLmRlcml2ZVBhdGgodGhpcy53YWxsZXRLZXlzLmdldERlcml2YXRpb25QYXRoKHRoaXMuY29zaWduZXIsIGNoYWluLCBpbmRleCkpXG4gICAgICApO1xuICAgIH1cblxuICAgIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBzdGF0ZWApO1xuICB9XG59XG4iXX0=
@@ -18,14 +18,14 @@ export declare const chainCodesP2shP2wsh: readonly [10, 11];
18
18
  export declare const chainCodesP2wsh: readonly [20, 21];
19
19
  export declare const chainCodesP2tr: readonly [30, 31];
20
20
  export declare const chainCodesP2trMusig2: readonly [40, 41];
21
- export declare const chainCodes: (0 | 1 | 31 | 10 | 11 | 20 | 21 | 30 | 40 | 41)[];
22
- export declare type ChainCode = (typeof chainCodes)[number];
21
+ export declare const chainCodes: (0 | 1 | 31 | 30 | 10 | 11 | 20 | 21 | 40 | 41)[];
22
+ export type ChainCode = (typeof chainCodes)[number];
23
23
  export declare function isChainCode(n: unknown): n is ChainCode;
24
24
  /**
25
25
  * A script type maps to two ChainCodes:
26
26
  * External addresses are intended for deposits, internal addresses are intended for change outputs.
27
27
  */
28
- export declare type ChainCodePair = Readonly<[external: ChainCode, internal: ChainCode]>;
28
+ export type ChainCodePair = Readonly<[external: ChainCode, internal: ChainCode]>;
29
29
  /**
30
30
  * @return ChainCodePair for input
31
31
  */
@@ -1 +1 @@
1
- {"version":3,"file":"chains.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/wallet/chains.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD;;GAEG;AACH,eAAO,MAAM,cAAc,iBAAkB,CAAC;AAC9C,eAAO,MAAM,mBAAmB,mBAAoB,CAAC;AACrD,eAAO,MAAM,eAAe,mBAAoB,CAAC;AACjD,eAAO,MAAM,cAAc,mBAAoB,CAAC;AAChD,eAAO,MAAM,oBAAoB,mBAAoB,CAAC;AACtD,eAAO,MAAM,UAAU,mDAMtB,CAAC;AACF,oBAAY,SAAS,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AACpD,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,SAAS,CAEtD;AAED;;;GAGG;AACH,oBAAY,aAAa,GAAG,QAAQ,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAcjF;;GAEG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,aAAa,GAAG,SAAS,GAAG,cAAc,GAAG,aAAa,CAiBxF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,GAAG,cAAc,CAOnE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,aAAa,GAAG,cAAc,GAAG,SAAS,GAAG,SAAS,CAE7F;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,aAAa,GAAG,cAAc,GAAG,SAAS,GAAG,SAAS,CAE7F;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,SAAS,GAAG,OAAO,CAEzD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,SAAS,GAAG,OAAO,CAEzD;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,SAAS,GAAG,OAAO,CAQ9C"}
1
+ {"version":3,"file":"chains.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/wallet/chains.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD;;GAEG;AACH,eAAO,MAAM,cAAc,iBAAkB,CAAC;AAC9C,eAAO,MAAM,mBAAmB,mBAAoB,CAAC;AACrD,eAAO,MAAM,eAAe,mBAAoB,CAAC;AACjD,eAAO,MAAM,cAAc,mBAAoB,CAAC;AAChD,eAAO,MAAM,oBAAoB,mBAAoB,CAAC;AACtD,eAAO,MAAM,UAAU,mDAMtB,CAAC;AACF,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AACpD,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,SAAS,CAEtD;AAED;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,QAAQ,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAcjF;;GAEG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,aAAa,GAAG,SAAS,GAAG,cAAc,GAAG,aAAa,CAiBxF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,GAAG,cAAc,CAOnE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,aAAa,GAAG,cAAc,GAAG,SAAS,GAAG,SAAS,CAE7F;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,aAAa,GAAG,cAAc,GAAG,SAAS,GAAG,SAAS,CAE7F;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,SAAS,GAAG,OAAO,CAEzD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,SAAS,GAAG,OAAO,CAEzD;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,SAAS,GAAG,OAAO,CAQ9C"}
@@ -1,6 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isSegwit = exports.isInternalChainCode = exports.isExternalChainCode = exports.getInternalChainCode = exports.getExternalChainCode = exports.scriptTypeForChain = exports.toChainPair = exports.isChainCode = exports.chainCodes = exports.chainCodesP2trMusig2 = exports.chainCodesP2tr = exports.chainCodesP2wsh = exports.chainCodesP2shP2wsh = exports.chainCodesP2sh = void 0;
3
+ exports.chainCodes = exports.chainCodesP2trMusig2 = exports.chainCodesP2tr = exports.chainCodesP2wsh = exports.chainCodesP2shP2wsh = exports.chainCodesP2sh = void 0;
4
+ exports.isChainCode = isChainCode;
5
+ exports.toChainPair = toChainPair;
6
+ exports.scriptTypeForChain = scriptTypeForChain;
7
+ exports.getExternalChainCode = getExternalChainCode;
8
+ exports.getInternalChainCode = getInternalChainCode;
9
+ exports.isExternalChainCode = isExternalChainCode;
10
+ exports.isInternalChainCode = isInternalChainCode;
11
+ exports.isSegwit = isSegwit;
4
12
  /**
5
13
  * All valid chain codes
6
14
  */
@@ -19,7 +27,6 @@ exports.chainCodes = [
19
27
  function isChainCode(n) {
20
28
  return exports.chainCodes.includes(n);
21
29
  }
22
- exports.isChainCode = isChainCode;
23
30
  const map = new Map([
24
31
  ['p2sh', exports.chainCodesP2sh],
25
32
  ['p2shP2wsh', exports.chainCodesP2shP2wsh],
@@ -49,7 +56,6 @@ function toChainPair(v) {
49
56
  }
50
57
  return pair;
51
58
  }
52
- exports.toChainPair = toChainPair;
53
59
  /**
54
60
  * @return ScriptType2Of3 for input
55
61
  */
@@ -61,35 +67,30 @@ function scriptTypeForChain(chain) {
61
67
  }
62
68
  throw new Error(`invalid chain ${chain}`);
63
69
  }
64
- exports.scriptTypeForChain = scriptTypeForChain;
65
70
  /**
66
71
  * @return chain code intended for external addresses
67
72
  */
68
73
  function getExternalChainCode(v) {
69
74
  return toChainPair(v)[0];
70
75
  }
71
- exports.getExternalChainCode = getExternalChainCode;
72
76
  /**
73
77
  * @return chain code intended for change outputs
74
78
  */
75
79
  function getInternalChainCode(v) {
76
80
  return toChainPair(v)[1];
77
81
  }
78
- exports.getInternalChainCode = getInternalChainCode;
79
82
  /**
80
83
  * @return true iff chain code is external
81
84
  */
82
85
  function isExternalChainCode(v) {
83
86
  return toChainPair(v).indexOf(v) === 0;
84
87
  }
85
- exports.isExternalChainCode = isExternalChainCode;
86
88
  /**
87
89
  * @return true iff chain code is internal
88
90
  */
89
91
  function isInternalChainCode(v) {
90
92
  return toChainPair(v).indexOf(v) === 1;
91
93
  }
92
- exports.isInternalChainCode = isInternalChainCode;
93
94
  /**
94
95
  * @return true iff chain code is a segwit address
95
96
  */
@@ -102,5 +103,4 @@ function isSegwit(v) {
102
103
  ];
103
104
  return segwitCodes.includes(v);
104
105
  }
105
- exports.isSegwit = isSegwit;
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhaW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JpdGdvL3dhbGxldC9jaGFpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBYUE7O0dBRUc7QUFDVSxRQUFBLGNBQWMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQVUsQ0FBQztBQUNqQyxRQUFBLG1CQUFtQixHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBVSxDQUFDO0FBQ3hDLFFBQUEsZUFBZSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBVSxDQUFDO0FBQ3BDLFFBQUEsY0FBYyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBVSxDQUFDO0FBQ25DLFFBQUEsb0JBQW9CLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFVLENBQUM7QUFDekMsUUFBQSxVQUFVLEdBQUc7SUFDeEIsR0FBRyxzQkFBYztJQUNqQixHQUFHLDJCQUFtQjtJQUN0QixHQUFHLHVCQUFlO0lBQ2xCLEdBQUcsc0JBQWM7SUFDakIsR0FBRyw0QkFBb0I7Q0FDeEIsQ0FBQztBQUVGLFNBQWdCLFdBQVcsQ0FBQyxDQUFVO0lBQ3BDLE9BQU8sa0JBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBYyxDQUFDLENBQUM7QUFDN0MsQ0FBQztBQUZELGtDQUVDO0FBUUQsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQ2pCO0lBQ0UsQ0FBQyxNQUFNLEVBQUUsc0JBQWMsQ0FBQztJQUN4QixDQUFDLFdBQVcsRUFBRSwyQkFBbUIsQ0FBQztJQUNsQyxDQUFDLE9BQU8sRUFBRSx1QkFBZSxDQUFDO0lBQzFCLENBQUMsTUFBTSxFQUFFLHNCQUFjLENBQUM7SUFDeEIsQ0FBQyxZQUFZLEVBQUUsNEJBQW9CLENBQUM7Q0FDckMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFtQixFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFrQixDQUFDLENBQUMsQ0FDNUUsQ0FBQztBQUVGLE1BQU0sS0FBSyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztBQUVoQzs7R0FFRztBQUNILFNBQWdCLFdBQVcsQ0FBQyxDQUE2QztJQUN2RSxJQUFJLElBQUksQ0FBQztJQUNULElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtRQUNwQixJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBa0IsQ0FBQyxFQUFFO1lBQ3RDLElBQUksR0FBRyxDQUFDLENBQUM7U0FDVjtLQUNGO0lBQ0QsSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRLEVBQUU7UUFDekIsSUFBSSxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDbkI7SUFDRCxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsRUFBRTtRQUN6QixJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ3pDO0lBQ0QsSUFBSSxDQUFDLElBQUksRUFBRTtRQUNULE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLENBQUMsRUFBRSxDQUFDLENBQUM7S0FDM0M7SUFDRCxPQUFPLElBQXFCLENBQUM7QUFDL0IsQ0FBQztBQWpCRCxrQ0FpQkM7QUFFRDs7R0FFRztBQUNILFNBQWdCLGtCQUFrQixDQUFDLEtBQWdCO0lBQ2pELEtBQUssTUFBTSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsT0FBTyxFQUFFLEVBQUU7UUFDOUMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3hCLE9BQU8sVUFBVSxDQUFDO1NBQ25CO0tBQ0Y7SUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixLQUFLLEVBQUUsQ0FBQyxDQUFDO0FBQzVDLENBQUM7QUFQRCxnREFPQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0Isb0JBQW9CLENBQUMsQ0FBNkM7SUFDaEYsT0FBTyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDM0IsQ0FBQztBQUZELG9EQUVDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixvQkFBb0IsQ0FBQyxDQUE2QztJQUNoRixPQUFPLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMzQixDQUFDO0FBRkQsb0RBRUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLG1CQUFtQixDQUFDLENBQVk7SUFDOUMsT0FBTyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN6QyxDQUFDO0FBRkQsa0RBRUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLG1CQUFtQixDQUFDLENBQVk7SUFDOUMsT0FBTyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN6QyxDQUFDO0FBRkQsa0RBRUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLFFBQVEsQ0FBQyxDQUFZO0lBQ25DLE1BQU0sV0FBVyxHQUFnQjtRQUMvQixHQUFHLDJCQUFtQjtRQUN0QixHQUFHLHVCQUFlO1FBQ2xCLEdBQUcsc0JBQWM7UUFDakIsR0FBRyw0QkFBb0I7S0FDeEIsQ0FBQztJQUNGLE9BQU8sV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNqQyxDQUFDO0FBUkQsNEJBUUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIERlZmluZXMgQml0R28gbWFwcGluZ3MgYmV0d2VlbiBiaXAzMiBkZXJpdmF0aW9uIHBhdGggYW5kIHNjcmlwdCB0eXBlLlxuICpcbiAqIFRoZSBzY3JpcHRzIGZvciBhIEJpdEdvIHdhbGxldCBhZGRyZXNzIGFyZSBkZWZpbmVkIGJ5IHRoZWlyIGRlcml2YXRpb24gcGF0aC5cbiAqXG4gKiBUaGUgZGVyaXZhdGlvbiBwYXRoIGhhcyB0aGUgZm9ybWF0IGAwLzAvJHtjaGFpbn0vJHtpbmRleH1gIChpbiByYXJlIGNhc2VzIHRoZSBwcmVmaXggaXMgbm90IDAvMClcbiAqXG4gKiBUaGUgYWRkcmVzcyBzY3JpcHQgdHlwZSAoU2NyaXB0VHlwZTJPZjMpIGlzIGRlZmluZWQgYnkgdGhlIGBjaGFpbmAgcGFyYW1ldGVyLlxuICpcbiAqIFRoaXMgZmlsZSBkZWZpbmVzIHRoZSBtYXBwaW5nIGJldHdlZW4gY2hhaW4gcGFyYW1ldGVyIGFuZCBhZGRyZXNzIHR5cGUuXG4gKi9cbmltcG9ydCB7IFNjcmlwdFR5cGUyT2YzIH0gZnJvbSAnLi4vb3V0cHV0U2NyaXB0cyc7XG5cbi8qKlxuICogQWxsIHZhbGlkIGNoYWluIGNvZGVzXG4gKi9cbmV4cG9ydCBjb25zdCBjaGFpbkNvZGVzUDJzaCA9IFswLCAxXSBhcyBjb25zdDtcbmV4cG9ydCBjb25zdCBjaGFpbkNvZGVzUDJzaFAyd3NoID0gWzEwLCAxMV0gYXMgY29uc3Q7XG5leHBvcnQgY29uc3QgY2hhaW5Db2Rlc1Ayd3NoID0gWzIwLCAyMV0gYXMgY29uc3Q7XG5leHBvcnQgY29uc3QgY2hhaW5Db2Rlc1AydHIgPSBbMzAsIDMxXSBhcyBjb25zdDtcbmV4cG9ydCBjb25zdCBjaGFpbkNvZGVzUDJ0ck11c2lnMiA9IFs0MCwgNDFdIGFzIGNvbnN0O1xuZXhwb3J0IGNvbnN0IGNoYWluQ29kZXMgPSBbXG4gIC4uLmNoYWluQ29kZXNQMnNoLFxuICAuLi5jaGFpbkNvZGVzUDJzaFAyd3NoLFxuICAuLi5jaGFpbkNvZGVzUDJ3c2gsXG4gIC4uLmNoYWluQ29kZXNQMnRyLFxuICAuLi5jaGFpbkNvZGVzUDJ0ck11c2lnMixcbl07XG5leHBvcnQgdHlwZSBDaGFpbkNvZGUgPSAodHlwZW9mIGNoYWluQ29kZXMpW251bWJlcl07XG5leHBvcnQgZnVuY3Rpb24gaXNDaGFpbkNvZGUobjogdW5rbm93bik6IG4gaXMgQ2hhaW5Db2RlIHtcbiAgcmV0dXJuIGNoYWluQ29kZXMuaW5jbHVkZXMobiBhcyBDaGFpbkNvZGUpO1xufVxuXG4vKipcbiAqIEEgc2NyaXB0IHR5cGUgbWFwcyB0byB0d28gQ2hhaW5Db2RlczpcbiAqIEV4dGVybmFsIGFkZHJlc3NlcyBhcmUgaW50ZW5kZWQgZm9yIGRlcG9zaXRzLCBpbnRlcm5hbCBhZGRyZXNzZXMgYXJlIGludGVuZGVkIGZvciBjaGFuZ2Ugb3V0cHV0cy5cbiAqL1xuZXhwb3J0IHR5cGUgQ2hhaW5Db2RlUGFpciA9IFJlYWRvbmx5PFtleHRlcm5hbDogQ2hhaW5Db2RlLCBpbnRlcm5hbDogQ2hhaW5Db2RlXT47XG5cbmNvbnN0IG1hcCA9IG5ldyBNYXA8U2NyaXB0VHlwZTJPZjMsIENoYWluQ29kZVBhaXI+KFxuICBbXG4gICAgWydwMnNoJywgY2hhaW5Db2Rlc1Ayc2hdLFxuICAgIFsncDJzaFAyd3NoJywgY2hhaW5Db2Rlc1Ayc2hQMndzaF0sXG4gICAgWydwMndzaCcsIGNoYWluQ29kZXNQMndzaF0sXG4gICAgWydwMnRyJywgY2hhaW5Db2Rlc1AydHJdLFxuICAgIFsncDJ0ck11c2lnMicsIGNoYWluQ29kZXNQMnRyTXVzaWcyXSxcbiAgXS5tYXAoKFtrLCB2XSkgPT4gW2sgYXMgU2NyaXB0VHlwZTJPZjMsIE9iamVjdC5mcmVlemUodikgYXMgQ2hhaW5Db2RlUGFpcl0pXG4pO1xuXG5jb25zdCBwYWlycyA9IFsuLi5tYXAudmFsdWVzKCldO1xuXG4vKipcbiAqIEByZXR1cm4gQ2hhaW5Db2RlUGFpciBmb3IgaW5wdXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvQ2hhaW5QYWlyKHY6IENoYWluQ29kZVBhaXIgfCBDaGFpbkNvZGUgfCBTY3JpcHRUeXBlMk9mMyk6IENoYWluQ29kZVBhaXIge1xuICBsZXQgcGFpcjtcbiAgaWYgKEFycmF5LmlzQXJyYXkodikpIHtcbiAgICBpZiAocGFpcnMuaW5jbHVkZXModiBhcyBDaGFpbkNvZGVQYWlyKSkge1xuICAgICAgcGFpciA9IHY7XG4gICAgfVxuICB9XG4gIGlmICh0eXBlb2YgdiA9PT0gJ3N0cmluZycpIHtcbiAgICBwYWlyID0gbWFwLmdldCh2KTtcbiAgfVxuICBpZiAodHlwZW9mIHYgPT09ICdudW1iZXInKSB7XG4gICAgcGFpciA9IHBhaXJzLmZpbmQoKHApID0+IHAuaW5jbHVkZXModikpO1xuICB9XG4gIGlmICghcGFpcikge1xuICAgIHRocm93IG5ldyBFcnJvcihgbm8gcGFpciBmb3IgaW5wdXQgJHt2fWApO1xuICB9XG4gIHJldHVybiBwYWlyIGFzIENoYWluQ29kZVBhaXI7XG59XG5cbi8qKlxuICogQHJldHVybiBTY3JpcHRUeXBlMk9mMyBmb3IgaW5wdXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNjcmlwdFR5cGVGb3JDaGFpbihjaGFpbjogQ2hhaW5Db2RlKTogU2NyaXB0VHlwZTJPZjMge1xuICBmb3IgKGNvbnN0IFtzY3JpcHRUeXBlLCBwYWlyXSBvZiBtYXAuZW50cmllcygpKSB7XG4gICAgaWYgKHBhaXIuaW5jbHVkZXMoY2hhaW4pKSB7XG4gICAgICByZXR1cm4gc2NyaXB0VHlwZTtcbiAgICB9XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIGNoYWluICR7Y2hhaW59YCk7XG59XG5cbi8qKlxuICogQHJldHVybiBjaGFpbiBjb2RlIGludGVuZGVkIGZvciBleHRlcm5hbCBhZGRyZXNzZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEV4dGVybmFsQ2hhaW5Db2RlKHY6IENoYWluQ29kZVBhaXIgfCBTY3JpcHRUeXBlMk9mMyB8IENoYWluQ29kZSk6IENoYWluQ29kZSB7XG4gIHJldHVybiB0b0NoYWluUGFpcih2KVswXTtcbn1cblxuLyoqXG4gKiBAcmV0dXJuIGNoYWluIGNvZGUgaW50ZW5kZWQgZm9yIGNoYW5nZSBvdXRwdXRzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnRlcm5hbENoYWluQ29kZSh2OiBDaGFpbkNvZGVQYWlyIHwgU2NyaXB0VHlwZTJPZjMgfCBDaGFpbkNvZGUpOiBDaGFpbkNvZGUge1xuICByZXR1cm4gdG9DaGFpblBhaXIodilbMV07XG59XG5cbi8qKlxuICogQHJldHVybiB0cnVlIGlmZiBjaGFpbiBjb2RlIGlzIGV4dGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0V4dGVybmFsQ2hhaW5Db2RlKHY6IENoYWluQ29kZSk6IGJvb2xlYW4ge1xuICByZXR1cm4gdG9DaGFpblBhaXIodikuaW5kZXhPZih2KSA9PT0gMDtcbn1cblxuLyoqXG4gKiBAcmV0dXJuIHRydWUgaWZmIGNoYWluIGNvZGUgaXMgaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzSW50ZXJuYWxDaGFpbkNvZGUodjogQ2hhaW5Db2RlKTogYm9vbGVhbiB7XG4gIHJldHVybiB0b0NoYWluUGFpcih2KS5pbmRleE9mKHYpID09PSAxO1xufVxuXG4vKipcbiAqIEByZXR1cm4gdHJ1ZSBpZmYgY2hhaW4gY29kZSBpcyBhIHNlZ3dpdCBhZGRyZXNzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1NlZ3dpdCh2OiBDaGFpbkNvZGUpOiBib29sZWFuIHtcbiAgY29uc3Qgc2Vnd2l0Q29kZXM6IENoYWluQ29kZVtdID0gW1xuICAgIC4uLmNoYWluQ29kZXNQMnNoUDJ3c2gsXG4gICAgLi4uY2hhaW5Db2Rlc1Ayd3NoLFxuICAgIC4uLmNoYWluQ29kZXNQMnRyLFxuICAgIC4uLmNoYWluQ29kZXNQMnRyTXVzaWcyLFxuICBdO1xuICByZXR1cm4gc2Vnd2l0Q29kZXMuaW5jbHVkZXModik7XG59XG4iXX0=
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhaW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JpdGdvL3dhbGxldC9jaGFpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBNkJBLGtDQUVDO0FBdUJELGtDQWlCQztBQUtELGdEQU9DO0FBS0Qsb0RBRUM7QUFLRCxvREFFQztBQUtELGtEQUVDO0FBS0Qsa0RBRUM7QUFLRCw0QkFRQztBQS9HRDs7R0FFRztBQUNVLFFBQUEsY0FBYyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBVSxDQUFDO0FBQ2pDLFFBQUEsbUJBQW1CLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFVLENBQUM7QUFDeEMsUUFBQSxlQUFlLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFVLENBQUM7QUFDcEMsUUFBQSxjQUFjLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFVLENBQUM7QUFDbkMsUUFBQSxvQkFBb0IsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQVUsQ0FBQztBQUN6QyxRQUFBLFVBQVUsR0FBRztJQUN4QixHQUFHLHNCQUFjO0lBQ2pCLEdBQUcsMkJBQW1CO0lBQ3RCLEdBQUcsdUJBQWU7SUFDbEIsR0FBRyxzQkFBYztJQUNqQixHQUFHLDRCQUFvQjtDQUN4QixDQUFDO0FBRUYsU0FBZ0IsV0FBVyxDQUFDLENBQVU7SUFDcEMsT0FBTyxrQkFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFjLENBQUMsQ0FBQztBQUM3QyxDQUFDO0FBUUQsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQ2pCO0lBQ0UsQ0FBQyxNQUFNLEVBQUUsc0JBQWMsQ0FBQztJQUN4QixDQUFDLFdBQVcsRUFBRSwyQkFBbUIsQ0FBQztJQUNsQyxDQUFDLE9BQU8sRUFBRSx1QkFBZSxDQUFDO0lBQzFCLENBQUMsTUFBTSxFQUFFLHNCQUFjLENBQUM7SUFDeEIsQ0FBQyxZQUFZLEVBQUUsNEJBQW9CLENBQUM7Q0FDckMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFtQixFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFrQixDQUFDLENBQUMsQ0FDNUUsQ0FBQztBQUVGLE1BQU0sS0FBSyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztBQUVoQzs7R0FFRztBQUNILFNBQWdCLFdBQVcsQ0FBQyxDQUE2QztJQUN2RSxJQUFJLElBQUksQ0FBQztJQUNULElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3JCLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFrQixDQUFDLEVBQUUsQ0FBQztZQUN2QyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ1gsQ0FBQztJQUNILENBQUM7SUFDRCxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzFCLElBQUksR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BCLENBQUM7SUFDRCxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzFCLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUNELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUNELE9BQU8sSUFBcUIsQ0FBQztBQUMvQixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixrQkFBa0IsQ0FBQyxLQUFnQjtJQUNqRCxLQUFLLE1BQU0sQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7UUFDL0MsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDekIsT0FBTyxVQUFVLENBQUM7UUFDcEIsQ0FBQztJQUNILENBQUM7SUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixLQUFLLEVBQUUsQ0FBQyxDQUFDO0FBQzVDLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLG9CQUFvQixDQUFDLENBQTZDO0lBQ2hGLE9BQU8sV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzNCLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLG9CQUFvQixDQUFDLENBQTZDO0lBQ2hGLE9BQU8sV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzNCLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLG1CQUFtQixDQUFDLENBQVk7SUFDOUMsT0FBTyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN6QyxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixtQkFBbUIsQ0FBQyxDQUFZO0lBQzlDLE9BQU8sV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDekMsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsUUFBUSxDQUFDLENBQVk7SUFDbkMsTUFBTSxXQUFXLEdBQWdCO1FBQy9CLEdBQUcsMkJBQW1CO1FBQ3RCLEdBQUcsdUJBQWU7UUFDbEIsR0FBRyxzQkFBYztRQUNqQixHQUFHLDRCQUFvQjtLQUN4QixDQUFDO0lBQ0YsT0FBTyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2pDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIERlZmluZXMgQml0R28gbWFwcGluZ3MgYmV0d2VlbiBiaXAzMiBkZXJpdmF0aW9uIHBhdGggYW5kIHNjcmlwdCB0eXBlLlxuICpcbiAqIFRoZSBzY3JpcHRzIGZvciBhIEJpdEdvIHdhbGxldCBhZGRyZXNzIGFyZSBkZWZpbmVkIGJ5IHRoZWlyIGRlcml2YXRpb24gcGF0aC5cbiAqXG4gKiBUaGUgZGVyaXZhdGlvbiBwYXRoIGhhcyB0aGUgZm9ybWF0IGAwLzAvJHtjaGFpbn0vJHtpbmRleH1gIChpbiByYXJlIGNhc2VzIHRoZSBwcmVmaXggaXMgbm90IDAvMClcbiAqXG4gKiBUaGUgYWRkcmVzcyBzY3JpcHQgdHlwZSAoU2NyaXB0VHlwZTJPZjMpIGlzIGRlZmluZWQgYnkgdGhlIGBjaGFpbmAgcGFyYW1ldGVyLlxuICpcbiAqIFRoaXMgZmlsZSBkZWZpbmVzIHRoZSBtYXBwaW5nIGJldHdlZW4gY2hhaW4gcGFyYW1ldGVyIGFuZCBhZGRyZXNzIHR5cGUuXG4gKi9cbmltcG9ydCB7IFNjcmlwdFR5cGUyT2YzIH0gZnJvbSAnLi4vb3V0cHV0U2NyaXB0cyc7XG5cbi8qKlxuICogQWxsIHZhbGlkIGNoYWluIGNvZGVzXG4gKi9cbmV4cG9ydCBjb25zdCBjaGFpbkNvZGVzUDJzaCA9IFswLCAxXSBhcyBjb25zdDtcbmV4cG9ydCBjb25zdCBjaGFpbkNvZGVzUDJzaFAyd3NoID0gWzEwLCAxMV0gYXMgY29uc3Q7XG5leHBvcnQgY29uc3QgY2hhaW5Db2Rlc1Ayd3NoID0gWzIwLCAyMV0gYXMgY29uc3Q7XG5leHBvcnQgY29uc3QgY2hhaW5Db2Rlc1AydHIgPSBbMzAsIDMxXSBhcyBjb25zdDtcbmV4cG9ydCBjb25zdCBjaGFpbkNvZGVzUDJ0ck11c2lnMiA9IFs0MCwgNDFdIGFzIGNvbnN0O1xuZXhwb3J0IGNvbnN0IGNoYWluQ29kZXMgPSBbXG4gIC4uLmNoYWluQ29kZXNQMnNoLFxuICAuLi5jaGFpbkNvZGVzUDJzaFAyd3NoLFxuICAuLi5jaGFpbkNvZGVzUDJ3c2gsXG4gIC4uLmNoYWluQ29kZXNQMnRyLFxuICAuLi5jaGFpbkNvZGVzUDJ0ck11c2lnMixcbl07XG5leHBvcnQgdHlwZSBDaGFpbkNvZGUgPSAodHlwZW9mIGNoYWluQ29kZXMpW251bWJlcl07XG5leHBvcnQgZnVuY3Rpb24gaXNDaGFpbkNvZGUobjogdW5rbm93bik6IG4gaXMgQ2hhaW5Db2RlIHtcbiAgcmV0dXJuIGNoYWluQ29kZXMuaW5jbHVkZXMobiBhcyBDaGFpbkNvZGUpO1xufVxuXG4vKipcbiAqIEEgc2NyaXB0IHR5cGUgbWFwcyB0byB0d28gQ2hhaW5Db2RlczpcbiAqIEV4dGVybmFsIGFkZHJlc3NlcyBhcmUgaW50ZW5kZWQgZm9yIGRlcG9zaXRzLCBpbnRlcm5hbCBhZGRyZXNzZXMgYXJlIGludGVuZGVkIGZvciBjaGFuZ2Ugb3V0cHV0cy5cbiAqL1xuZXhwb3J0IHR5cGUgQ2hhaW5Db2RlUGFpciA9IFJlYWRvbmx5PFtleHRlcm5hbDogQ2hhaW5Db2RlLCBpbnRlcm5hbDogQ2hhaW5Db2RlXT47XG5cbmNvbnN0IG1hcCA9IG5ldyBNYXA8U2NyaXB0VHlwZTJPZjMsIENoYWluQ29kZVBhaXI+KFxuICBbXG4gICAgWydwMnNoJywgY2hhaW5Db2Rlc1Ayc2hdLFxuICAgIFsncDJzaFAyd3NoJywgY2hhaW5Db2Rlc1Ayc2hQMndzaF0sXG4gICAgWydwMndzaCcsIGNoYWluQ29kZXNQMndzaF0sXG4gICAgWydwMnRyJywgY2hhaW5Db2Rlc1AydHJdLFxuICAgIFsncDJ0ck11c2lnMicsIGNoYWluQ29kZXNQMnRyTXVzaWcyXSxcbiAgXS5tYXAoKFtrLCB2XSkgPT4gW2sgYXMgU2NyaXB0VHlwZTJPZjMsIE9iamVjdC5mcmVlemUodikgYXMgQ2hhaW5Db2RlUGFpcl0pXG4pO1xuXG5jb25zdCBwYWlycyA9IFsuLi5tYXAudmFsdWVzKCldO1xuXG4vKipcbiAqIEByZXR1cm4gQ2hhaW5Db2RlUGFpciBmb3IgaW5wdXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvQ2hhaW5QYWlyKHY6IENoYWluQ29kZVBhaXIgfCBDaGFpbkNvZGUgfCBTY3JpcHRUeXBlMk9mMyk6IENoYWluQ29kZVBhaXIge1xuICBsZXQgcGFpcjtcbiAgaWYgKEFycmF5LmlzQXJyYXkodikpIHtcbiAgICBpZiAocGFpcnMuaW5jbHVkZXModiBhcyBDaGFpbkNvZGVQYWlyKSkge1xuICAgICAgcGFpciA9IHY7XG4gICAgfVxuICB9XG4gIGlmICh0eXBlb2YgdiA9PT0gJ3N0cmluZycpIHtcbiAgICBwYWlyID0gbWFwLmdldCh2KTtcbiAgfVxuICBpZiAodHlwZW9mIHYgPT09ICdudW1iZXInKSB7XG4gICAgcGFpciA9IHBhaXJzLmZpbmQoKHApID0+IHAuaW5jbHVkZXModikpO1xuICB9XG4gIGlmICghcGFpcikge1xuICAgIHRocm93IG5ldyBFcnJvcihgbm8gcGFpciBmb3IgaW5wdXQgJHt2fWApO1xuICB9XG4gIHJldHVybiBwYWlyIGFzIENoYWluQ29kZVBhaXI7XG59XG5cbi8qKlxuICogQHJldHVybiBTY3JpcHRUeXBlMk9mMyBmb3IgaW5wdXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNjcmlwdFR5cGVGb3JDaGFpbihjaGFpbjogQ2hhaW5Db2RlKTogU2NyaXB0VHlwZTJPZjMge1xuICBmb3IgKGNvbnN0IFtzY3JpcHRUeXBlLCBwYWlyXSBvZiBtYXAuZW50cmllcygpKSB7XG4gICAgaWYgKHBhaXIuaW5jbHVkZXMoY2hhaW4pKSB7XG4gICAgICByZXR1cm4gc2NyaXB0VHlwZTtcbiAgICB9XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIGNoYWluICR7Y2hhaW59YCk7XG59XG5cbi8qKlxuICogQHJldHVybiBjaGFpbiBjb2RlIGludGVuZGVkIGZvciBleHRlcm5hbCBhZGRyZXNzZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEV4dGVybmFsQ2hhaW5Db2RlKHY6IENoYWluQ29kZVBhaXIgfCBTY3JpcHRUeXBlMk9mMyB8IENoYWluQ29kZSk6IENoYWluQ29kZSB7XG4gIHJldHVybiB0b0NoYWluUGFpcih2KVswXTtcbn1cblxuLyoqXG4gKiBAcmV0dXJuIGNoYWluIGNvZGUgaW50ZW5kZWQgZm9yIGNoYW5nZSBvdXRwdXRzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnRlcm5hbENoYWluQ29kZSh2OiBDaGFpbkNvZGVQYWlyIHwgU2NyaXB0VHlwZTJPZjMgfCBDaGFpbkNvZGUpOiBDaGFpbkNvZGUge1xuICByZXR1cm4gdG9DaGFpblBhaXIodilbMV07XG59XG5cbi8qKlxuICogQHJldHVybiB0cnVlIGlmZiBjaGFpbiBjb2RlIGlzIGV4dGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0V4dGVybmFsQ2hhaW5Db2RlKHY6IENoYWluQ29kZSk6IGJvb2xlYW4ge1xuICByZXR1cm4gdG9DaGFpblBhaXIodikuaW5kZXhPZih2KSA9PT0gMDtcbn1cblxuLyoqXG4gKiBAcmV0dXJuIHRydWUgaWZmIGNoYWluIGNvZGUgaXMgaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzSW50ZXJuYWxDaGFpbkNvZGUodjogQ2hhaW5Db2RlKTogYm9vbGVhbiB7XG4gIHJldHVybiB0b0NoYWluUGFpcih2KS5pbmRleE9mKHYpID09PSAxO1xufVxuXG4vKipcbiAqIEByZXR1cm4gdHJ1ZSBpZmYgY2hhaW4gY29kZSBpcyBhIHNlZ3dpdCBhZGRyZXNzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1NlZ3dpdCh2OiBDaGFpbkNvZGUpOiBib29sZWFuIHtcbiAgY29uc3Qgc2Vnd2l0Q29kZXM6IENoYWluQ29kZVtdID0gW1xuICAgIC4uLmNoYWluQ29kZXNQMnNoUDJ3c2gsXG4gICAgLi4uY2hhaW5Db2Rlc1Ayd3NoLFxuICAgIC4uLmNoYWluQ29kZXNQMnRyLFxuICAgIC4uLmNoYWluQ29kZXNQMnRyTXVzaWcyLFxuICBdO1xuICByZXR1cm4gc2Vnd2l0Q29kZXMuaW5jbHVkZXModik7XG59XG4iXX0=
@@ -5,4 +5,6 @@ export * from './WalletOutput';
5
5
  export * from './WalletUnspentSigner';
6
6
  export * from './WalletScripts';
7
7
  export * from './WalletKeys';
8
+ export * from './psbt/PsbtOutputs';
9
+ export * from './psbt/RootNodes';
8
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/wallet/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/wallet/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC"}
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[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);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -17,4 +21,6 @@ __exportStar(require("./WalletOutput"), exports);
17
21
  __exportStar(require("./WalletUnspentSigner"), exports);
18
22
  __exportStar(require("./WalletScripts"), exports);
19
23
  __exportStar(require("./WalletKeys"), exports);
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYml0Z28vd2FsbGV0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLDJDQUF5QjtBQUN6Qix5Q0FBdUI7QUFDdkIsNENBQTBCO0FBQzFCLGlEQUErQjtBQUMvQix3REFBc0M7QUFDdEMsa0RBQWdDO0FBQ2hDLCtDQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY2hhaW5zJztcbmV4cG9ydCAqIGZyb20gJy4vUHNidCc7XG5leHBvcnQgKiBmcm9tICcuL1Vuc3BlbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9XYWxsZXRPdXRwdXQnO1xuZXhwb3J0ICogZnJvbSAnLi9XYWxsZXRVbnNwZW50U2lnbmVyJztcbmV4cG9ydCAqIGZyb20gJy4vV2FsbGV0U2NyaXB0cyc7XG5leHBvcnQgKiBmcm9tICcuL1dhbGxldEtleXMnO1xuIl19
24
+ __exportStar(require("./psbt/PsbtOutputs"), exports);
25
+ __exportStar(require("./psbt/RootNodes"), exports);
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYml0Z28vd2FsbGV0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyQ0FBeUI7QUFDekIseUNBQXVCO0FBQ3ZCLDRDQUEwQjtBQUMxQixpREFBK0I7QUFDL0Isd0RBQXNDO0FBQ3RDLGtEQUFnQztBQUNoQywrQ0FBNkI7QUFDN0IscURBQW1DO0FBQ25DLG1EQUFpQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY2hhaW5zJztcbmV4cG9ydCAqIGZyb20gJy4vUHNidCc7XG5leHBvcnQgKiBmcm9tICcuL1Vuc3BlbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9XYWxsZXRPdXRwdXQnO1xuZXhwb3J0ICogZnJvbSAnLi9XYWxsZXRVbnNwZW50U2lnbmVyJztcbmV4cG9ydCAqIGZyb20gJy4vV2FsbGV0U2NyaXB0cyc7XG5leHBvcnQgKiBmcm9tICcuL1dhbGxldEtleXMnO1xuZXhwb3J0ICogZnJvbSAnLi9wc2J0L1BzYnRPdXRwdXRzJztcbmV4cG9ydCAqIGZyb20gJy4vcHNidC9Sb290Tm9kZXMnO1xuIl19
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Contains helper methods for determining if a transaction output belongs to a given BitGo wallet
3
+ */
4
+ import { Triple } from '../../types';
5
+ import { UtxoPsbt } from '../../UtxoPsbt';
6
+ import { BIP32Interface } from 'bip32';
7
+ import { PsbtOutput } from 'bip174/src/lib/interfaces';
8
+ /**
9
+ * Derives the appropriate BIP32 key pair for a given output.
10
+ * It uses either tapBip32Derivation or bip32Derivation paths from the output.
11
+ * @param bip32 - The BIP32Interface object to derive from.
12
+ * @param output - The specific PSBT output to derive for.
13
+ * @returns The derived BIP32 key pair if master fingerprint matches, or undefined.
14
+ */
15
+ export declare function deriveKeyPairForOutput(bip32: BIP32Interface, output: PsbtOutput): BIP32Interface | undefined;
16
+ /**
17
+ * Determines if a specified output in a PSBT is an output of the wallet represented by the given root nodes.
18
+ * @param psbt - The PSBT to check.
19
+ * @param outputIndex - The index of the output to check.
20
+ * @param rootWalletNodes - The root nodes representing the wallet.
21
+ * @returns A boolean indicating if the output belongs to the wallet.
22
+ */
23
+ export declare function isWalletOutput(psbt: UtxoPsbt, outputIndex: number, rootWalletNodes: Triple<BIP32Interface>): boolean;
24
+ /**
25
+ * Finds indices of all outputs in a PSBT that belong to the wallet represented by the given root nodes.
26
+ * @param psbt - The PSBT to search through.
27
+ * @param rootWalletNodes - The root nodes representing the wallet.
28
+ * @returns An array of indices corresponding to wallet outputs.
29
+ */
30
+ export declare function findWalletOutputIndices(psbt: UtxoPsbt, rootWalletNodes: Triple<BIP32Interface>): number[];
31
+ /**
32
+ * Calculates the total amount of all wallet outputs in a PSBT for the wallet represented by the given root nodes.
33
+ * @param psbt - The PSBT to calculate for.
34
+ * @param rootWalletNodes - The root nodes representing the wallet.
35
+ * @returns The total amount of wallet outputs.
36
+ */
37
+ export declare function getTotalAmountOfWalletOutputs(psbt: UtxoPsbt, rootWalletNodes: Triple<BIP32Interface>): bigint;
38
+ /**
39
+ * Finds indices of all internal outputs in a PSBT, identified as outputs belonging to the wallet's root nodes within the PSBT.
40
+ * @param psbt - The PSBT containing the wallet's root nodes as indicated by global Xpubs.
41
+ * @returns An array of indices of internal outputs.
42
+ */
43
+ export declare function findInternalOutputIndices(psbt: UtxoPsbt): number[];
44
+ /**
45
+ * Calculates the total amount of all internal outputs in a PSBT, identified as outputs belonging to the wallet's root nodes within the PSBT.
46
+ * @param psbt - The PSBT containing the wallet's root nodes as indicated by global Xpubs.
47
+ * @returns The total amount of internal outputs.
48
+ */
49
+ export declare function getTotalAmountOfInternalOutputs(psbt: UtxoPsbt): bigint;
50
+ //# sourceMappingURL=PsbtOutputs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PsbtOutputs.d.ts","sourceRoot":"","sources":["../../../../../src/bitgo/wallet/psbt/PsbtOutputs.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAiB,MAAM,EAAE,MAAM,aAAa,CAAC;AAEpD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAGvD;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,UAAU,GAAG,cAAc,GAAG,SAAS,CAM5G;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,CAAC,cAAc,CAAC,GAAG,OAAO,CAapH;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,CAAC,cAAc,CAAC,GAAG,MAAM,EAAE,CAEzG;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,CAAC,cAAc,CAAC,GAAG,MAAM,CAI7G;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,EAAE,CAGlE;AAED;;;;GAIG;AACH,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAGtE"}
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ /**
3
+ * Contains helper methods for determining if a transaction output belongs to a given BitGo wallet
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.deriveKeyPairForOutput = deriveKeyPairForOutput;
7
+ exports.isWalletOutput = isWalletOutput;
8
+ exports.findWalletOutputIndices = findWalletOutputIndices;
9
+ exports.getTotalAmountOfWalletOutputs = getTotalAmountOfWalletOutputs;
10
+ exports.findInternalOutputIndices = findInternalOutputIndices;
11
+ exports.getTotalAmountOfInternalOutputs = getTotalAmountOfInternalOutputs;
12
+ const types_1 = require("../../types");
13
+ const outputScripts_1 = require("../../outputScripts");
14
+ const UtxoPsbt_1 = require("../../UtxoPsbt");
15
+ const utils_1 = require("bip174/src/lib/utils");
16
+ const RootNodes_1 = require("./RootNodes");
17
+ /**
18
+ * Derives the appropriate BIP32 key pair for a given output.
19
+ * It uses either tapBip32Derivation or bip32Derivation paths from the output.
20
+ * @param bip32 - The BIP32Interface object to derive from.
21
+ * @param output - The specific PSBT output to derive for.
22
+ * @returns The derived BIP32 key pair if master fingerprint matches, or undefined.
23
+ */
24
+ function deriveKeyPairForOutput(bip32, output) {
25
+ return output.tapBip32Derivation?.length
26
+ ? UtxoPsbt_1.UtxoPsbt.deriveKeyPair(bip32, output.tapBip32Derivation, { ignoreY: true })
27
+ : output.bip32Derivation?.length
28
+ ? UtxoPsbt_1.UtxoPsbt.deriveKeyPair(bip32, output.bip32Derivation, { ignoreY: false })
29
+ : undefined;
30
+ }
31
+ /**
32
+ * Determines if a specified output in a PSBT is an output of the wallet represented by the given root nodes.
33
+ * @param psbt - The PSBT to check.
34
+ * @param outputIndex - The index of the output to check.
35
+ * @param rootWalletNodes - The root nodes representing the wallet.
36
+ * @returns A boolean indicating if the output belongs to the wallet.
37
+ */
38
+ function isWalletOutput(psbt, outputIndex, rootWalletNodes) {
39
+ const output = (0, utils_1.checkForOutput)(psbt.data.outputs, outputIndex);
40
+ const pubKeys = rootWalletNodes.map((rootNode) => deriveKeyPairForOutput(rootNode, output)?.publicKey);
41
+ if (!(0, types_1.isBufferArray)(pubKeys)) {
42
+ return false;
43
+ }
44
+ const outputScript = psbt.getOutputScript(outputIndex);
45
+ return outputScripts_1.scriptTypes2Of3.some((scriptType) => (0, outputScripts_1.createOutputScript2of3)(pubKeys, scriptType).scriptPubKey.equals(outputScript));
46
+ }
47
+ /**
48
+ * Finds indices of all outputs in a PSBT that belong to the wallet represented by the given root nodes.
49
+ * @param psbt - The PSBT to search through.
50
+ * @param rootWalletNodes - The root nodes representing the wallet.
51
+ * @returns An array of indices corresponding to wallet outputs.
52
+ */
53
+ function findWalletOutputIndices(psbt, rootWalletNodes) {
54
+ return psbt.data.outputs.flatMap((_, i) => (isWalletOutput(psbt, i, rootWalletNodes) ? [i] : []));
55
+ }
56
+ /**
57
+ * Calculates the total amount of all wallet outputs in a PSBT for the wallet represented by the given root nodes.
58
+ * @param psbt - The PSBT to calculate for.
59
+ * @param rootWalletNodes - The root nodes representing the wallet.
60
+ * @returns The total amount of wallet outputs.
61
+ */
62
+ function getTotalAmountOfWalletOutputs(psbt, rootWalletNodes) {
63
+ const indices = findWalletOutputIndices(psbt, rootWalletNodes);
64
+ const txOutputs = psbt.txOutputs;
65
+ return indices.reduce((sum, i) => sum + txOutputs[i].value, BigInt(0));
66
+ }
67
+ /**
68
+ * Finds indices of all internal outputs in a PSBT, identified as outputs belonging to the wallet's root nodes within the PSBT.
69
+ * @param psbt - The PSBT containing the wallet's root nodes as indicated by global Xpubs.
70
+ * @returns An array of indices of internal outputs.
71
+ */
72
+ function findInternalOutputIndices(psbt) {
73
+ const rootNodes = (0, RootNodes_1.getSortedRootNodes)(psbt);
74
+ return findWalletOutputIndices(psbt, rootNodes);
75
+ }
76
+ /**
77
+ * Calculates the total amount of all internal outputs in a PSBT, identified as outputs belonging to the wallet's root nodes within the PSBT.
78
+ * @param psbt - The PSBT containing the wallet's root nodes as indicated by global Xpubs.
79
+ * @returns The total amount of internal outputs.
80
+ */
81
+ function getTotalAmountOfInternalOutputs(psbt) {
82
+ const rootNodes = (0, RootNodes_1.getSortedRootNodes)(psbt);
83
+ return getTotalAmountOfWalletOutputs(psbt, rootNodes);
84
+ }
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHNidE91dHB1dHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYml0Z28vd2FsbGV0L3BzYnQvUHNidE91dHB1dHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHOztBQWlCSCx3REFNQztBQVNELHdDQWFDO0FBUUQsMERBRUM7QUFRRCxzRUFJQztBQU9ELDhEQUdDO0FBT0QsMEVBR0M7QUFyRkQsdUNBQW9EO0FBQ3BELHVEQUE4RTtBQUM5RSw2Q0FBMEM7QUFFMUMsZ0RBQXNEO0FBRXRELDJDQUFpRDtBQUVqRDs7Ozs7O0dBTUc7QUFDSCxTQUFnQixzQkFBc0IsQ0FBQyxLQUFxQixFQUFFLE1BQWtCO0lBQzlFLE9BQU8sTUFBTSxDQUFDLGtCQUFrQixFQUFFLE1BQU07UUFDdEMsQ0FBQyxDQUFDLG1CQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDN0UsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxlQUFlLEVBQUUsTUFBTTtZQUNoQyxDQUFDLENBQUMsbUJBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxlQUFlLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDM0UsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUNoQixDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsU0FBZ0IsY0FBYyxDQUFDLElBQWMsRUFBRSxXQUFtQixFQUFFLGVBQXVDO0lBQ3pHLE1BQU0sTUFBTSxHQUFHLElBQUEsc0JBQWMsRUFBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsQ0FBQztJQUU5RCxNQUFNLE9BQU8sR0FBRyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFFdkcsSUFBSSxDQUFDLElBQUEscUJBQWEsRUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQzVCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdkQsT0FBTywrQkFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQ3pDLElBQUEsc0NBQXNCLEVBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQzlFLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQix1QkFBdUIsQ0FBQyxJQUFjLEVBQUUsZUFBdUM7SUFDN0YsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3BHLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLDZCQUE2QixDQUFDLElBQWMsRUFBRSxlQUF1QztJQUNuRyxNQUFNLE9BQU8sR0FBRyx1QkFBdUIsQ0FBQyxJQUFJLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFDL0QsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUNqQyxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN6RSxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLHlCQUF5QixDQUFDLElBQWM7SUFDdEQsTUFBTSxTQUFTLEdBQUcsSUFBQSw4QkFBa0IsRUFBQyxJQUFJLENBQUMsQ0FBQztJQUMzQyxPQUFPLHVCQUF1QixDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztBQUNsRCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLCtCQUErQixDQUFDLElBQWM7SUFDNUQsTUFBTSxTQUFTLEdBQUcsSUFBQSw4QkFBa0IsRUFBQyxJQUFJLENBQUMsQ0FBQztJQUMzQyxPQUFPLDZCQUE2QixDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztBQUN4RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb250YWlucyBoZWxwZXIgbWV0aG9kcyBmb3IgZGV0ZXJtaW5pbmcgaWYgYSB0cmFuc2FjdGlvbiBvdXRwdXQgYmVsb25ncyB0byBhIGdpdmVuIEJpdEdvIHdhbGxldFxuICovXG5cbmltcG9ydCB7IGlzQnVmZmVyQXJyYXksIFRyaXBsZSB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IGNyZWF0ZU91dHB1dFNjcmlwdDJvZjMsIHNjcmlwdFR5cGVzMk9mMyB9IGZyb20gJy4uLy4uL291dHB1dFNjcmlwdHMnO1xuaW1wb3J0IHsgVXR4b1BzYnQgfSBmcm9tICcuLi8uLi9VdHhvUHNidCc7XG5pbXBvcnQgeyBCSVAzMkludGVyZmFjZSB9IGZyb20gJ2JpcDMyJztcbmltcG9ydCB7IGNoZWNrRm9yT3V0cHV0IH0gZnJvbSAnYmlwMTc0L3NyYy9saWIvdXRpbHMnO1xuaW1wb3J0IHsgUHNidE91dHB1dCB9IGZyb20gJ2JpcDE3NC9zcmMvbGliL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgZ2V0U29ydGVkUm9vdE5vZGVzIH0gZnJvbSAnLi9Sb290Tm9kZXMnO1xuXG4vKipcbiAqIERlcml2ZXMgdGhlIGFwcHJvcHJpYXRlIEJJUDMyIGtleSBwYWlyIGZvciBhIGdpdmVuIG91dHB1dC5cbiAqIEl0IHVzZXMgZWl0aGVyIHRhcEJpcDMyRGVyaXZhdGlvbiBvciBiaXAzMkRlcml2YXRpb24gcGF0aHMgZnJvbSB0aGUgb3V0cHV0LlxuICogQHBhcmFtIGJpcDMyIC0gVGhlIEJJUDMySW50ZXJmYWNlIG9iamVjdCB0byBkZXJpdmUgZnJvbS5cbiAqIEBwYXJhbSBvdXRwdXQgLSBUaGUgc3BlY2lmaWMgUFNCVCBvdXRwdXQgdG8gZGVyaXZlIGZvci5cbiAqIEByZXR1cm5zIFRoZSBkZXJpdmVkIEJJUDMyIGtleSBwYWlyIGlmIG1hc3RlciBmaW5nZXJwcmludCBtYXRjaGVzLCBvciB1bmRlZmluZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZXJpdmVLZXlQYWlyRm9yT3V0cHV0KGJpcDMyOiBCSVAzMkludGVyZmFjZSwgb3V0cHV0OiBQc2J0T3V0cHV0KTogQklQMzJJbnRlcmZhY2UgfCB1bmRlZmluZWQge1xuICByZXR1cm4gb3V0cHV0LnRhcEJpcDMyRGVyaXZhdGlvbj8ubGVuZ3RoXG4gICAgPyBVdHhvUHNidC5kZXJpdmVLZXlQYWlyKGJpcDMyLCBvdXRwdXQudGFwQmlwMzJEZXJpdmF0aW9uLCB7IGlnbm9yZVk6IHRydWUgfSlcbiAgICA6IG91dHB1dC5iaXAzMkRlcml2YXRpb24/Lmxlbmd0aFxuICAgID8gVXR4b1BzYnQuZGVyaXZlS2V5UGFpcihiaXAzMiwgb3V0cHV0LmJpcDMyRGVyaXZhdGlvbiwgeyBpZ25vcmVZOiBmYWxzZSB9KVxuICAgIDogdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIERldGVybWluZXMgaWYgYSBzcGVjaWZpZWQgb3V0cHV0IGluIGEgUFNCVCBpcyBhbiBvdXRwdXQgb2YgdGhlIHdhbGxldCByZXByZXNlbnRlZCBieSB0aGUgZ2l2ZW4gcm9vdCBub2Rlcy5cbiAqIEBwYXJhbSBwc2J0IC0gVGhlIFBTQlQgdG8gY2hlY2suXG4gKiBAcGFyYW0gb3V0cHV0SW5kZXggLSBUaGUgaW5kZXggb2YgdGhlIG91dHB1dCB0byBjaGVjay5cbiAqIEBwYXJhbSByb290V2FsbGV0Tm9kZXMgLSBUaGUgcm9vdCBub2RlcyByZXByZXNlbnRpbmcgdGhlIHdhbGxldC5cbiAqIEByZXR1cm5zIEEgYm9vbGVhbiBpbmRpY2F0aW5nIGlmIHRoZSBvdXRwdXQgYmVsb25ncyB0byB0aGUgd2FsbGV0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNXYWxsZXRPdXRwdXQocHNidDogVXR4b1BzYnQsIG91dHB1dEluZGV4OiBudW1iZXIsIHJvb3RXYWxsZXROb2RlczogVHJpcGxlPEJJUDMySW50ZXJmYWNlPik6IGJvb2xlYW4ge1xuICBjb25zdCBvdXRwdXQgPSBjaGVja0Zvck91dHB1dChwc2J0LmRhdGEub3V0cHV0cywgb3V0cHV0SW5kZXgpO1xuXG4gIGNvbnN0IHB1YktleXMgPSByb290V2FsbGV0Tm9kZXMubWFwKChyb290Tm9kZSkgPT4gZGVyaXZlS2V5UGFpckZvck91dHB1dChyb290Tm9kZSwgb3V0cHV0KT8ucHVibGljS2V5KTtcblxuICBpZiAoIWlzQnVmZmVyQXJyYXkocHViS2V5cykpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBvdXRwdXRTY3JpcHQgPSBwc2J0LmdldE91dHB1dFNjcmlwdChvdXRwdXRJbmRleCk7XG4gIHJldHVybiBzY3JpcHRUeXBlczJPZjMuc29tZSgoc2NyaXB0VHlwZSkgPT5cbiAgICBjcmVhdGVPdXRwdXRTY3JpcHQyb2YzKHB1YktleXMsIHNjcmlwdFR5cGUpLnNjcmlwdFB1YktleS5lcXVhbHMob3V0cHV0U2NyaXB0KVxuICApO1xufVxuXG4vKipcbiAqIEZpbmRzIGluZGljZXMgb2YgYWxsIG91dHB1dHMgaW4gYSBQU0JUIHRoYXQgYmVsb25nIHRvIHRoZSB3YWxsZXQgcmVwcmVzZW50ZWQgYnkgdGhlIGdpdmVuIHJvb3Qgbm9kZXMuXG4gKiBAcGFyYW0gcHNidCAtIFRoZSBQU0JUIHRvIHNlYXJjaCB0aHJvdWdoLlxuICogQHBhcmFtIHJvb3RXYWxsZXROb2RlcyAtIFRoZSByb290IG5vZGVzIHJlcHJlc2VudGluZyB0aGUgd2FsbGV0LlxuICogQHJldHVybnMgQW4gYXJyYXkgb2YgaW5kaWNlcyBjb3JyZXNwb25kaW5nIHRvIHdhbGxldCBvdXRwdXRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZFdhbGxldE91dHB1dEluZGljZXMocHNidDogVXR4b1BzYnQsIHJvb3RXYWxsZXROb2RlczogVHJpcGxlPEJJUDMySW50ZXJmYWNlPik6IG51bWJlcltdIHtcbiAgcmV0dXJuIHBzYnQuZGF0YS5vdXRwdXRzLmZsYXRNYXAoKF8sIGkpID0+IChpc1dhbGxldE91dHB1dChwc2J0LCBpLCByb290V2FsbGV0Tm9kZXMpID8gW2ldIDogW10pKTtcbn1cblxuLyoqXG4gKiBDYWxjdWxhdGVzIHRoZSB0b3RhbCBhbW91bnQgb2YgYWxsIHdhbGxldCBvdXRwdXRzIGluIGEgUFNCVCBmb3IgdGhlIHdhbGxldCByZXByZXNlbnRlZCBieSB0aGUgZ2l2ZW4gcm9vdCBub2Rlcy5cbiAqIEBwYXJhbSBwc2J0IC0gVGhlIFBTQlQgdG8gY2FsY3VsYXRlIGZvci5cbiAqIEBwYXJhbSByb290V2FsbGV0Tm9kZXMgLSBUaGUgcm9vdCBub2RlcyByZXByZXNlbnRpbmcgdGhlIHdhbGxldC5cbiAqIEByZXR1cm5zIFRoZSB0b3RhbCBhbW91bnQgb2Ygd2FsbGV0IG91dHB1dHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRUb3RhbEFtb3VudE9mV2FsbGV0T3V0cHV0cyhwc2J0OiBVdHhvUHNidCwgcm9vdFdhbGxldE5vZGVzOiBUcmlwbGU8QklQMzJJbnRlcmZhY2U+KTogYmlnaW50IHtcbiAgY29uc3QgaW5kaWNlcyA9IGZpbmRXYWxsZXRPdXRwdXRJbmRpY2VzKHBzYnQsIHJvb3RXYWxsZXROb2Rlcyk7XG4gIGNvbnN0IHR4T3V0cHV0cyA9IHBzYnQudHhPdXRwdXRzO1xuICByZXR1cm4gaW5kaWNlcy5yZWR1Y2UoKHN1bSwgaSkgPT4gc3VtICsgdHhPdXRwdXRzW2ldLnZhbHVlLCBCaWdJbnQoMCkpO1xufVxuXG4vKipcbiAqIEZpbmRzIGluZGljZXMgb2YgYWxsIGludGVybmFsIG91dHB1dHMgaW4gYSBQU0JULCBpZGVudGlmaWVkIGFzIG91dHB1dHMgYmVsb25naW5nIHRvIHRoZSB3YWxsZXQncyByb290IG5vZGVzIHdpdGhpbiB0aGUgUFNCVC5cbiAqIEBwYXJhbSBwc2J0IC0gVGhlIFBTQlQgY29udGFpbmluZyB0aGUgd2FsbGV0J3Mgcm9vdCBub2RlcyBhcyBpbmRpY2F0ZWQgYnkgZ2xvYmFsIFhwdWJzLlxuICogQHJldHVybnMgQW4gYXJyYXkgb2YgaW5kaWNlcyBvZiBpbnRlcm5hbCBvdXRwdXRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZEludGVybmFsT3V0cHV0SW5kaWNlcyhwc2J0OiBVdHhvUHNidCk6IG51bWJlcltdIHtcbiAgY29uc3Qgcm9vdE5vZGVzID0gZ2V0U29ydGVkUm9vdE5vZGVzKHBzYnQpO1xuICByZXR1cm4gZmluZFdhbGxldE91dHB1dEluZGljZXMocHNidCwgcm9vdE5vZGVzKTtcbn1cblxuLyoqXG4gKiBDYWxjdWxhdGVzIHRoZSB0b3RhbCBhbW91bnQgb2YgYWxsIGludGVybmFsIG91dHB1dHMgaW4gYSBQU0JULCBpZGVudGlmaWVkIGFzIG91dHB1dHMgYmVsb25naW5nIHRvIHRoZSB3YWxsZXQncyByb290IG5vZGVzIHdpdGhpbiB0aGUgUFNCVC5cbiAqIEBwYXJhbSBwc2J0IC0gVGhlIFBTQlQgY29udGFpbmluZyB0aGUgd2FsbGV0J3Mgcm9vdCBub2RlcyBhcyBpbmRpY2F0ZWQgYnkgZ2xvYmFsIFhwdWJzLlxuICogQHJldHVybnMgVGhlIHRvdGFsIGFtb3VudCBvZiBpbnRlcm5hbCBvdXRwdXRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VG90YWxBbW91bnRPZkludGVybmFsT3V0cHV0cyhwc2J0OiBVdHhvUHNidCk6IGJpZ2ludCB7XG4gIGNvbnN0IHJvb3ROb2RlcyA9IGdldFNvcnRlZFJvb3ROb2Rlcyhwc2J0KTtcbiAgcmV0dXJuIGdldFRvdGFsQW1vdW50T2ZXYWxsZXRPdXRwdXRzKHBzYnQsIHJvb3ROb2Rlcyk7XG59XG4iXX0=
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Contains helper methods for getting and sorting root nodes from a PSBT.
3
+ */
4
+ import { UtxoPsbt } from '../../UtxoPsbt';
5
+ import { Triple } from '../../types';
6
+ import { BIP32Interface } from 'bip32';
7
+ /**
8
+ * Error thrown when no multi-sig input is found in a PSBT.
9
+ * */
10
+ export declare class ErrorNoMultiSigInputFound extends Error {
11
+ constructor(message: string);
12
+ }
13
+ /**
14
+ * Retrieves unsorted root BIP32Interface nodes from a PSBT if available.
15
+ * @param psbt - The PSBT from which to extract the global Xpubs.
16
+ * @returns An array of BIP32Interface objects or undefined if not available.
17
+ */
18
+ export declare function getUnsortedRootNodes(psbt: UtxoPsbt): Triple<BIP32Interface> | undefined;
19
+ /**
20
+ * Sorts given root nodes based on the script compatibility with the PSBT's multi-sig inputs.
21
+ * @param psbt - The PSBT containing multi-sig inputs.
22
+ * @param rootNodes - Array of root nodes to sort.
23
+ * @returns An array of BIP32Interface objects in the order that matches the multi-sig script.
24
+ */
25
+ export declare function sortRootNodes(psbt: UtxoPsbt, rootNodes: Triple<BIP32Interface>): Triple<BIP32Interface>;
26
+ /**
27
+ * Retrieves sorted root nodes from a PSBT, ensuring they are ordered according to script compatibility.
28
+ * @param psbt - The PSBT to extract and sort root nodes from.
29
+ * @returns An array of sorted BIP32Interface root nodes.
30
+ */
31
+ export declare function getSortedRootNodes(psbt: UtxoPsbt): Triple<BIP32Interface>;
32
+ //# sourceMappingURL=RootNodes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RootNodes.d.ts","sourceRoot":"","sources":["../../../../../src/bitgo/wallet/psbt/RootNodes.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAY,MAAM,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAgB,cAAc,EAAE,MAAM,OAAO,CAAC;AASrD;;KAEK;AACL,qBAAa,yBAA0B,SAAQ,KAAK;gBACtC,OAAO,EAAE,MAAM;CAG5B;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAAC,cAAc,CAAC,GAAG,SAAS,CAMvF;AAkGD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,cAAc,CAAC,GAAG,MAAM,CAAC,cAAc,CAAC,CAKvG;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAAC,cAAc,CAAC,CAIzE"}