@bitgo-beta/utxo-lib 8.0.3-beta.154 → 8.0.3-beta.1541

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 (222) 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 +1 -2
  8. package/dist/src/bitgo/Musig2.d.ts.map +1 -1
  9. package/dist/src/bitgo/Musig2.js +54 -54
  10. package/dist/src/bitgo/ProprietaryKeyValUtils.d.ts +27 -0
  11. package/dist/src/bitgo/ProprietaryKeyValUtils.d.ts.map +1 -0
  12. package/dist/src/bitgo/ProprietaryKeyValUtils.js +74 -0
  13. package/dist/src/bitgo/PsbtUtil.d.ts +18 -23
  14. package/dist/src/bitgo/PsbtUtil.d.ts.map +1 -1
  15. package/dist/src/bitgo/PsbtUtil.js +63 -24
  16. package/dist/src/bitgo/Unspent.d.ts +2 -3
  17. package/dist/src/bitgo/Unspent.d.ts.map +1 -1
  18. package/dist/src/bitgo/Unspent.js +14 -15
  19. package/dist/src/bitgo/UtxoPsbt.d.ts +22 -9
  20. package/dist/src/bitgo/UtxoPsbt.d.ts.map +1 -1
  21. package/dist/src/bitgo/UtxoPsbt.js +131 -124
  22. package/dist/src/bitgo/UtxoTransaction.d.ts +0 -1
  23. package/dist/src/bitgo/UtxoTransaction.d.ts.map +1 -1
  24. package/dist/src/bitgo/UtxoTransaction.js +14 -14
  25. package/dist/src/bitgo/UtxoTransactionBuilder.d.ts +0 -1
  26. package/dist/src/bitgo/UtxoTransactionBuilder.d.ts.map +1 -1
  27. package/dist/src/bitgo/UtxoTransactionBuilder.js +1 -1
  28. package/dist/src/bitgo/bitcoincash/address.d.ts +0 -1
  29. package/dist/src/bitgo/bitcoincash/address.d.ts.map +1 -1
  30. package/dist/src/bitgo/bitcoincash/address.js +11 -12
  31. package/dist/src/bitgo/bitcoincash/index.js +6 -2
  32. package/dist/src/bitgo/dash/DashPsbt.d.ts +1 -1
  33. package/dist/src/bitgo/dash/DashPsbt.d.ts.map +1 -1
  34. package/dist/src/bitgo/dash/DashPsbt.js +4 -1
  35. package/dist/src/bitgo/dash/DashTransaction.d.ts +0 -1
  36. package/dist/src/bitgo/dash/DashTransaction.d.ts.map +1 -1
  37. package/dist/src/bitgo/dash/DashTransaction.js +3 -3
  38. package/dist/src/bitgo/dash/DashTransactionBuilder.d.ts +0 -1
  39. package/dist/src/bitgo/dash/DashTransactionBuilder.d.ts.map +1 -1
  40. package/dist/src/bitgo/dash/DashTransactionBuilder.js +1 -1
  41. package/dist/src/bitgo/dash/index.js +6 -2
  42. package/dist/src/bitgo/index.d.ts +3 -1
  43. package/dist/src/bitgo/index.d.ts.map +1 -1
  44. package/dist/src/bitgo/index.js +8 -2
  45. package/dist/src/bitgo/keyutil.d.ts +10 -2
  46. package/dist/src/bitgo/keyutil.d.ts.map +1 -1
  47. package/dist/src/bitgo/keyutil.js +27 -6
  48. package/dist/src/bitgo/legacysafe/index.d.ts +0 -1
  49. package/dist/src/bitgo/legacysafe/index.d.ts.map +1 -1
  50. package/dist/src/bitgo/legacysafe/index.js +11 -12
  51. package/dist/src/bitgo/litecoin/LitecoinPsbt.d.ts +1 -1
  52. package/dist/src/bitgo/litecoin/LitecoinPsbt.d.ts.map +1 -1
  53. package/dist/src/bitgo/litecoin/LitecoinPsbt.js +4 -1
  54. package/dist/src/bitgo/litecoin/LitecoinTransaction.d.ts +1 -2
  55. package/dist/src/bitgo/litecoin/LitecoinTransaction.d.ts.map +1 -1
  56. package/dist/src/bitgo/litecoin/LitecoinTransaction.js +2 -2
  57. package/dist/src/bitgo/litecoin/index.js +6 -2
  58. package/dist/src/bitgo/nonStandardHalfSigned.js +4 -5
  59. package/dist/src/bitgo/outputScripts.d.ts +12 -8
  60. package/dist/src/bitgo/outputScripts.d.ts.map +1 -1
  61. package/dist/src/bitgo/outputScripts.js +68 -50
  62. package/dist/src/bitgo/parseInput.d.ts +7 -8
  63. package/dist/src/bitgo/parseInput.d.ts.map +1 -1
  64. package/dist/src/bitgo/parseInput.js +14 -15
  65. package/dist/src/bitgo/psbt/fromHalfSigned.d.ts +0 -1
  66. package/dist/src/bitgo/psbt/fromHalfSigned.d.ts.map +1 -1
  67. package/dist/src/bitgo/psbt/fromHalfSigned.js +7 -8
  68. package/dist/src/bitgo/psbt/scriptTypes.d.ts +0 -1
  69. package/dist/src/bitgo/psbt/scriptTypes.d.ts.map +1 -1
  70. package/dist/src/bitgo/psbt/scriptTypes.js +7 -8
  71. package/dist/src/bitgo/signature.d.ts +3 -4
  72. package/dist/src/bitgo/signature.d.ts.map +1 -1
  73. package/dist/src/bitgo/signature.js +30 -22
  74. package/dist/src/bitgo/tnumber.js +2 -3
  75. package/dist/src/bitgo/transaction.d.ts +13 -1
  76. package/dist/src/bitgo/transaction.d.ts.map +1 -1
  77. package/dist/src/bitgo/transaction.js +51 -23
  78. package/dist/src/bitgo/transactionAmounts.d.ts +9 -0
  79. package/dist/src/bitgo/transactionAmounts.d.ts.map +1 -0
  80. package/dist/src/bitgo/transactionAmounts.js +32 -0
  81. package/dist/src/bitgo/types.d.ts +8 -2
  82. package/dist/src/bitgo/types.d.ts.map +1 -1
  83. package/dist/src/bitgo/types.js +12 -4
  84. package/dist/src/bitgo/wallet/Psbt.d.ts +37 -21
  85. package/dist/src/bitgo/wallet/Psbt.d.ts.map +1 -1
  86. package/dist/src/bitgo/wallet/Psbt.js +88 -58
  87. package/dist/src/bitgo/wallet/ScriptId.d.ts +14 -0
  88. package/dist/src/bitgo/wallet/ScriptId.d.ts.map +1 -0
  89. package/dist/src/bitgo/wallet/ScriptId.js +28 -0
  90. package/dist/src/bitgo/wallet/Unspent.d.ts +23 -16
  91. package/dist/src/bitgo/wallet/Unspent.d.ts.map +1 -1
  92. package/dist/src/bitgo/wallet/Unspent.js +69 -65
  93. package/dist/src/bitgo/wallet/WalletKeys.d.ts +2 -3
  94. package/dist/src/bitgo/wallet/WalletKeys.d.ts.map +1 -1
  95. package/dist/src/bitgo/wallet/WalletKeys.js +3 -3
  96. package/dist/src/bitgo/wallet/WalletOutput.d.ts +62 -8
  97. package/dist/src/bitgo/wallet/WalletOutput.d.ts.map +1 -1
  98. package/dist/src/bitgo/wallet/WalletOutput.js +160 -63
  99. package/dist/src/bitgo/wallet/WalletScripts.js +4 -5
  100. package/dist/src/bitgo/wallet/WalletUnspentSigner.d.ts +1 -1
  101. package/dist/src/bitgo/wallet/WalletUnspentSigner.d.ts.map +1 -1
  102. package/dist/src/bitgo/wallet/WalletUnspentSigner.js +7 -7
  103. package/dist/src/bitgo/wallet/chains.d.ts +2 -2
  104. package/dist/src/bitgo/wallet/chains.d.ts.map +1 -1
  105. package/dist/src/bitgo/wallet/chains.js +10 -10
  106. package/dist/src/bitgo/wallet/index.d.ts +3 -0
  107. package/dist/src/bitgo/wallet/index.d.ts.map +1 -1
  108. package/dist/src/bitgo/wallet/index.js +9 -2
  109. package/dist/src/bitgo/wallet/psbt/PsbtOutputs.d.ts +50 -0
  110. package/dist/src/bitgo/wallet/psbt/PsbtOutputs.d.ts.map +1 -0
  111. package/dist/src/bitgo/wallet/psbt/PsbtOutputs.js +85 -0
  112. package/dist/src/bitgo/wallet/psbt/RootNodes.d.ts +32 -0
  113. package/dist/src/bitgo/wallet/psbt/RootNodes.d.ts.map +1 -0
  114. package/dist/src/bitgo/wallet/psbt/RootNodes.js +122 -0
  115. package/dist/src/bitgo/zcash/ZcashBufferutils.d.ts +1 -2
  116. package/dist/src/bitgo/zcash/ZcashBufferutils.d.ts.map +1 -1
  117. package/dist/src/bitgo/zcash/ZcashBufferutils.js +15 -15
  118. package/dist/src/bitgo/zcash/ZcashPsbt.d.ts +4 -5
  119. package/dist/src/bitgo/zcash/ZcashPsbt.d.ts.map +1 -1
  120. package/dist/src/bitgo/zcash/ZcashPsbt.js +22 -15
  121. package/dist/src/bitgo/zcash/ZcashTransaction.d.ts +5 -2
  122. package/dist/src/bitgo/zcash/ZcashTransaction.d.ts.map +1 -1
  123. package/dist/src/bitgo/zcash/ZcashTransaction.js +48 -21
  124. package/dist/src/bitgo/zcash/ZcashTransactionBuilder.d.ts +0 -1
  125. package/dist/src/bitgo/zcash/ZcashTransactionBuilder.d.ts.map +1 -1
  126. package/dist/src/bitgo/zcash/ZcashTransactionBuilder.js +8 -4
  127. package/dist/src/bitgo/zcash/address.d.ts +0 -1
  128. package/dist/src/bitgo/zcash/address.d.ts.map +1 -1
  129. package/dist/src/bitgo/zcash/address.js +7 -8
  130. package/dist/src/bitgo/zcash/hashZip0244.d.ts +1 -2
  131. package/dist/src/bitgo/zcash/hashZip0244.d.ts.map +1 -1
  132. package/dist/src/bitgo/zcash/hashZip0244.js +9 -10
  133. package/dist/src/bitgo/zcash/index.js +6 -2
  134. package/dist/src/classify.d.ts +0 -1
  135. package/dist/src/classify.d.ts.map +1 -1
  136. package/dist/src/classify.js +5 -5
  137. package/dist/src/index.d.ts +3 -1
  138. package/dist/src/index.d.ts.map +1 -1
  139. package/dist/src/index.js +12 -4
  140. package/dist/src/networks.d.ts +2 -2
  141. package/dist/src/networks.d.ts.map +1 -1
  142. package/dist/src/networks.js +67 -21
  143. package/dist/src/payments/p2tr.d.ts.map +1 -1
  144. package/dist/src/payments/p2tr.js +16 -28
  145. package/dist/src/payments/p2tr_ns.js +3 -5
  146. package/dist/src/taproot.d.ts +80 -6
  147. package/dist/src/taproot.d.ts.map +1 -1
  148. package/dist/src/taproot.js +132 -48
  149. package/dist/src/templates/multisig/input.d.ts +0 -1
  150. package/dist/src/templates/multisig/input.d.ts.map +1 -1
  151. package/dist/src/templates/multisig/input.js +2 -3
  152. package/dist/src/templates/multisig/output.d.ts +0 -1
  153. package/dist/src/templates/multisig/output.d.ts.map +1 -1
  154. package/dist/src/templates/multisig/output.js +2 -3
  155. package/dist/src/templates/nulldata.d.ts +0 -1
  156. package/dist/src/templates/nulldata.d.ts.map +1 -1
  157. package/dist/src/templates/nulldata.js +3 -3
  158. package/dist/src/templates/pubkey/input.d.ts +0 -1
  159. package/dist/src/templates/pubkey/input.d.ts.map +1 -1
  160. package/dist/src/templates/pubkey/input.js +2 -3
  161. package/dist/src/templates/pubkey/output.d.ts +0 -1
  162. package/dist/src/templates/pubkey/output.d.ts.map +1 -1
  163. package/dist/src/templates/pubkey/output.js +2 -3
  164. package/dist/src/templates/pubkeyhash/input.d.ts +0 -1
  165. package/dist/src/templates/pubkeyhash/input.d.ts.map +1 -1
  166. package/dist/src/templates/pubkeyhash/input.js +2 -3
  167. package/dist/src/templates/pubkeyhash/output.d.ts +0 -1
  168. package/dist/src/templates/pubkeyhash/output.d.ts.map +1 -1
  169. package/dist/src/templates/pubkeyhash/output.js +2 -3
  170. package/dist/src/templates/scripthash/input.d.ts +0 -1
  171. package/dist/src/templates/scripthash/input.d.ts.map +1 -1
  172. package/dist/src/templates/scripthash/input.js +2 -3
  173. package/dist/src/templates/scripthash/output.d.ts +0 -1
  174. package/dist/src/templates/scripthash/output.d.ts.map +1 -1
  175. package/dist/src/templates/scripthash/output.js +2 -3
  176. package/dist/src/templates/taproot/input.d.ts +0 -1
  177. package/dist/src/templates/taproot/input.d.ts.map +1 -1
  178. package/dist/src/templates/taproot/input.js +2 -3
  179. package/dist/src/templates/taproot/output.d.ts +0 -1
  180. package/dist/src/templates/taproot/output.d.ts.map +1 -1
  181. package/dist/src/templates/taproot/output.js +2 -3
  182. package/dist/src/templates/taprootnofn/input.d.ts +0 -1
  183. package/dist/src/templates/taprootnofn/input.d.ts.map +1 -1
  184. package/dist/src/templates/taprootnofn/input.js +2 -3
  185. package/dist/src/templates/taprootnofn/output.d.ts +0 -1
  186. package/dist/src/templates/taprootnofn/output.d.ts.map +1 -1
  187. package/dist/src/templates/taprootnofn/output.js +4 -5
  188. package/dist/src/templates/witnesscommitment/output.d.ts +0 -1
  189. package/dist/src/templates/witnesscommitment/output.d.ts.map +1 -1
  190. package/dist/src/templates/witnesscommitment/output.js +4 -5
  191. package/dist/src/templates/witnesspubkeyhash/input.d.ts +0 -1
  192. package/dist/src/templates/witnesspubkeyhash/input.d.ts.map +1 -1
  193. package/dist/src/templates/witnesspubkeyhash/input.js +2 -3
  194. package/dist/src/templates/witnesspubkeyhash/output.d.ts +0 -1
  195. package/dist/src/templates/witnesspubkeyhash/output.d.ts.map +1 -1
  196. package/dist/src/templates/witnesspubkeyhash/output.js +2 -3
  197. package/dist/src/templates/witnessscripthash/input.d.ts +0 -1
  198. package/dist/src/templates/witnessscripthash/input.d.ts.map +1 -1
  199. package/dist/src/templates/witnessscripthash/input.js +2 -3
  200. package/dist/src/templates/witnessscripthash/output.d.ts +0 -1
  201. package/dist/src/templates/witnessscripthash/output.d.ts.map +1 -1
  202. package/dist/src/templates/witnessscripthash/output.js +2 -3
  203. package/dist/src/testutil/index.js +6 -2
  204. package/dist/src/testutil/keys.d.ts +6 -6
  205. package/dist/src/testutil/keys.d.ts.map +1 -1
  206. package/dist/src/testutil/keys.js +16 -14
  207. package/dist/src/testutil/mock.d.ts +3 -4
  208. package/dist/src/testutil/mock.d.ts.map +1 -1
  209. package/dist/src/testutil/mock.js +33 -31
  210. package/dist/src/testutil/psbt.d.ts +72 -15
  211. package/dist/src/testutil/psbt.d.ts.map +1 -1
  212. package/dist/src/testutil/psbt.js +137 -39
  213. package/dist/src/testutil/transaction.d.ts +2 -2
  214. package/dist/src/testutil/transaction.d.ts.map +1 -1
  215. package/dist/src/testutil/transaction.js +22 -21
  216. package/dist/src/transaction_builder.d.ts +0 -1
  217. package/dist/src/transaction_builder.d.ts.map +1 -1
  218. package/dist/src/transaction_builder.js +27 -32
  219. package/package.json +9 -16
  220. package/dist/src/noble_ecc.d.ts +0 -28
  221. package/dist/src/noble_ecc.d.ts.map +0 -1
  222. package/dist/src/noble_ecc.js +0 -172
@@ -1,11 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.signInput2Of3 = exports.signInputP2shP2pk = exports.getDefaultSigHash = exports.verifySignatureWithPublicKey = exports.verifySignatureWithPublicKeys = exports.getSignaturesWithPublicKeys = exports.verifySignature = exports.getSignatureVerifications = void 0;
3
+ exports.getSignatureVerifications = getSignatureVerifications;
4
+ exports.verifySignature = verifySignature;
5
+ exports.getSignaturesWithPublicKeys = getSignaturesWithPublicKeys;
6
+ exports.verifySignatureWithPublicKeys = verifySignatureWithPublicKeys;
7
+ exports.verifySignatureWithPublicKey = verifySignatureWithPublicKey;
8
+ exports.getDefaultSigHash = getDefaultSigHash;
9
+ exports.signInputP2shP2pk = signInputP2shP2pk;
10
+ exports.signInput2Of3 = signInput2Of3;
4
11
  const bitcoinjs_lib_1 = require("bitcoinjs-lib");
5
12
  const UtxoTransaction_1 = require("./UtxoTransaction");
6
13
  const outputScripts_1 = require("./outputScripts");
7
14
  const networks_1 = require("../networks");
8
- const noble_ecc_1 = require("../noble_ecc");
15
+ const secp256k1_1 = require("@bitgo-beta/secp256k1");
9
16
  const parseInput_1 = require("./parseInput");
10
17
  const taproot_1 = require("../taproot");
11
18
  /**
@@ -32,7 +39,7 @@ function getSignatureVerifications(transaction, inputIndex, amount, verification
32
39
  // Unsigned input: no signatures.
33
40
  return [];
34
41
  }
35
- const parsedScript = parseInput_1.parseSignatureScript2Of3(input);
42
+ const parsedScript = (0, parseInput_1.parseSignatureScript2Of3)(input);
36
43
  if (parsedScript.scriptType === 'taprootKeyPathSpend' || parsedScript.scriptType === 'taprootScriptPathSpend') {
37
44
  if (parsedScript.scriptType === 'taprootKeyPathSpend' &&
38
45
  (verificationSettings.signatureIndex || verificationSettings.publicKey)) {
@@ -48,12 +55,21 @@ function getSignatureVerifications(transaction, inputIndex, amount, verification
48
55
  throw new Error(`prevOutputs length ${prevOutputs.length}, expected ${transaction.ins.length}`);
49
56
  }
50
57
  }
58
+ if (parsedScript.scriptType !== 'taprootKeyPathSpend' &&
59
+ parsedScript.scriptType !== 'taprootScriptPathSpend' &&
60
+ prevOutputs) {
61
+ const prevOutScript = prevOutputs[inputIndex].script;
62
+ const output = (0, outputScripts_1.getOutputScript)(parsedScript.scriptType, parsedScript.pubScript);
63
+ if (!prevOutScript.equals(output)) {
64
+ throw new Error(`prevout script ${prevOutScript.toString('hex')} does not match computed script ${output.toString('hex')}`);
65
+ }
66
+ }
51
67
  let publicKeys;
52
68
  if (parsedScript.scriptType === 'taprootKeyPathSpend') {
53
69
  if (!prevOutputs) {
54
70
  throw new Error(`prevOutputs not set`);
55
71
  }
56
- publicKeys = [taproot_1.getTaprootOutputKey(prevOutputs[inputIndex].script)];
72
+ publicKeys = [(0, taproot_1.getTaprootOutputKey)(prevOutputs[inputIndex].script)];
57
73
  }
58
74
  else {
59
75
  publicKeys = parsedScript.publicKeys.filter((buf) => verificationSettings.publicKey === undefined ||
@@ -77,9 +93,9 @@ function getSignatureVerifications(transaction, inputIndex, amount, verification
77
93
  throw new Error(`prevOutputs not set`);
78
94
  }
79
95
  const { controlBlock, pubScript } = parsedScript;
80
- const leafHash = bitcoinjs_lib_1.taproot.getTapleafHash(noble_ecc_1.ecc, controlBlock, pubScript);
96
+ const leafHash = bitcoinjs_lib_1.taproot.getTapleafHash(secp256k1_1.ecc, controlBlock, pubScript);
81
97
  const signatureHash = transaction.hashForWitnessV1(inputIndex, prevOutputs.map(({ script }) => script), prevOutputs.map(({ value }) => value), hashType, leafHash);
82
- const signedBy = publicKeys.filter((k) => Buffer.isBuffer(signatureBuffer) && noble_ecc_1.ecc.verifySchnorr(signatureHash, k, signatureBuffer));
98
+ const signedBy = publicKeys.filter((k) => Buffer.isBuffer(signatureBuffer) && secp256k1_1.ecc.verifySchnorr(signatureHash, k, signatureBuffer));
83
99
  if (signedBy.length === 0) {
84
100
  return { signedBy: undefined, signature: undefined };
85
101
  }
@@ -93,7 +109,7 @@ function getSignatureVerifications(transaction, inputIndex, amount, verification
93
109
  throw new Error(`prevOutputs not set`);
94
110
  }
95
111
  const signatureHash = transaction.hashForWitnessV1(inputIndex, prevOutputs.map(({ script }) => script), prevOutputs.map(({ value }) => value), hashType);
96
- const result = noble_ecc_1.ecc.verifySchnorr(signatureHash, publicKeys[0], signatureBuffer);
112
+ const result = secp256k1_1.ecc.verifySchnorr(signatureHash, publicKeys[0], signatureBuffer);
97
113
  return result
98
114
  ? { signedBy: publicKeys[0], signature: signatureBuffer }
99
115
  : { signedBy: undefined, signature: undefined };
@@ -104,7 +120,7 @@ function getSignatureVerifications(transaction, inputIndex, amount, verification
104
120
  const transactionHash = parsedScript.scriptType === 'p2shP2wsh' || parsedScript.scriptType === 'p2wsh'
105
121
  ? transaction.hashForWitnessV0(inputIndex, parsedScript.pubScript, amount, hashType)
106
122
  : transaction.hashForSignatureByNetwork(inputIndex, parsedScript.pubScript, amount, hashType);
107
- const signedBy = publicKeys.filter((publicKey) => noble_ecc_1.ecc.verify(transactionHash, publicKey, signature,
123
+ const signedBy = publicKeys.filter((publicKey) => secp256k1_1.ecc.verify(transactionHash, publicKey, signature,
108
124
  /*
109
125
  Strict verification (require lower-S value), as required by BIP-0146
110
126
  https://github.com/bitcoin/bips/blob/master/bip-0146.mediawiki
@@ -122,7 +138,6 @@ function getSignatureVerifications(transaction, inputIndex, amount, verification
122
138
  }
123
139
  });
124
140
  }
125
- exports.getSignatureVerifications = getSignatureVerifications;
126
141
  /**
127
142
  * @deprecated use {@see verifySignatureWithPublicKeys} instead
128
143
  * @param transaction
@@ -141,7 +156,6 @@ function verifySignature(transaction, inputIndex, amount, verificationSettings =
141
156
  verificationSettings.publicKey.slice(1).equals(v.signedBy))));
142
157
  return signatureVerifications.length > 0 && signatureVerifications.every((v) => v.signedBy !== undefined);
143
158
  }
144
- exports.verifySignature = verifySignature;
145
159
  /**
146
160
  * @param v
147
161
  * @param publicKey
@@ -170,7 +184,6 @@ function getSignaturesWithPublicKeys(transaction, inputIndex, prevOutputs, publi
170
184
  return v ? v.signature : undefined;
171
185
  });
172
186
  }
173
- exports.getSignaturesWithPublicKeys = getSignaturesWithPublicKeys;
174
187
  /**
175
188
  * @param transaction
176
189
  * @param inputIndex
@@ -181,7 +194,6 @@ exports.getSignaturesWithPublicKeys = getSignaturesWithPublicKeys;
181
194
  function verifySignatureWithPublicKeys(transaction, inputIndex, prevOutputs, publicKeys) {
182
195
  return getSignaturesWithPublicKeys(transaction, inputIndex, prevOutputs, publicKeys).map((s) => s !== undefined);
183
196
  }
184
- exports.verifySignatureWithPublicKeys = verifySignatureWithPublicKeys;
185
197
  /**
186
198
  * Wrapper for {@see verifySignatureWithPublicKeys} for single pubkey
187
199
  * @param transaction
@@ -193,9 +205,8 @@ exports.verifySignatureWithPublicKeys = verifySignatureWithPublicKeys;
193
205
  function verifySignatureWithPublicKey(transaction, inputIndex, prevOutputs, publicKey) {
194
206
  return verifySignatureWithPublicKeys(transaction, inputIndex, prevOutputs, [publicKey])[0];
195
207
  }
196
- exports.verifySignatureWithPublicKey = verifySignatureWithPublicKey;
197
208
  function getDefaultSigHash(network, scriptType) {
198
- switch (networks_1.getMainnet(network)) {
209
+ switch ((0, networks_1.getMainnet)(network)) {
199
210
  case networks_1.networks.bitcoincash:
200
211
  case networks_1.networks.bitcoinsv:
201
212
  case networks_1.networks.bitcoingold:
@@ -211,10 +222,9 @@ function getDefaultSigHash(network, scriptType) {
211
222
  }
212
223
  }
213
224
  }
214
- exports.getDefaultSigHash = getDefaultSigHash;
215
225
  function signInputP2shP2pk(txBuilder, vin, keyPair) {
216
226
  const prevOutScriptType = 'p2sh-p2pk';
217
- const { redeemScript, witnessScript } = outputScripts_1.createOutputScriptP2shP2pk(keyPair.publicKey);
227
+ const { redeemScript, witnessScript } = (0, outputScripts_1.createOutputScriptP2shP2pk)(keyPair.publicKey);
218
228
  keyPair.network = txBuilder.network;
219
229
  txBuilder.sign({
220
230
  vin,
@@ -226,17 +236,16 @@ function signInputP2shP2pk(txBuilder, vin, keyPair) {
226
236
  witnessValue: undefined,
227
237
  });
228
238
  }
229
- exports.signInputP2shP2pk = signInputP2shP2pk;
230
239
  function signInput2Of3(txBuilder, vin, scriptType, pubkeys, keyPair, cosigner, amount) {
231
240
  let controlBlock;
232
241
  let redeemScript;
233
242
  let witnessScript;
234
- const prevOutScriptType = outputScripts_1.scriptType2Of3AsPrevOutType(scriptType);
243
+ const prevOutScriptType = (0, outputScripts_1.scriptType2Of3AsPrevOutType)(scriptType);
235
244
  if (scriptType === 'p2tr') {
236
- ({ witnessScript, controlBlock } = outputScripts_1.createSpendScriptP2tr(pubkeys, [keyPair.publicKey, cosigner]));
245
+ ({ witnessScript, controlBlock } = (0, outputScripts_1.createSpendScriptP2tr)(pubkeys, [keyPair.publicKey, cosigner]));
237
246
  }
238
247
  else {
239
- ({ redeemScript, witnessScript } = outputScripts_1.createOutputScript2of3(pubkeys, scriptType));
248
+ ({ redeemScript, witnessScript } = (0, outputScripts_1.createOutputScript2of3)(pubkeys, scriptType));
240
249
  }
241
250
  keyPair.network = txBuilder.network;
242
251
  txBuilder.sign({
@@ -250,5 +259,4 @@ function signInput2Of3(txBuilder, vin, scriptType, pubkeys, keyPair, cosigner, a
250
259
  controlBlock,
251
260
  });
252
261
  }
253
- exports.signInput2Of3 = signInput2Of3;
254
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmF0dXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JpdGdvL3NpZ25hdHVyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxpREFBZ0Y7QUFFaEYsdURBQW9EO0FBRXBELG1EQU95QjtBQUV6QiwwQ0FBNEQ7QUFDNUQsNENBQTZDO0FBQzdDLDZDQUF3RDtBQUN4RCx3Q0FBaUQ7QUE4QmpEOzs7Ozs7Ozs7R0FTRztBQUNILFNBQWdCLHlCQUF5QixDQUN2QyxXQUFxQyxFQUNyQyxVQUFrQixFQUNsQixNQUFlLEVBQ2YsdUJBQTZDLEVBQUUsRUFDL0MsV0FBaUM7SUFFakMsMEJBQTBCO0lBQzFCLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFO1FBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQztLQUN4QztJQUVELE1BQU0sS0FBSyxHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDMUMsMEJBQTBCO0lBQzFCLElBQUksQ0FBQyxLQUFLLEVBQUU7UUFDVixNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixVQUFVLEVBQUUsQ0FBQyxDQUFDO0tBQ3BEO0lBRUQsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7UUFDOUUsaUNBQWlDO1FBQ2pDLE9BQU8sRUFBRSxDQUFDO0tBQ1g7SUFFRCxNQUFNLFlBQVksR0FBRyxxQ0FBd0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUVyRCxJQUFJLFlBQVksQ0FBQyxVQUFVLEtBQUsscUJBQXFCLElBQUksWUFBWSxDQUFDLFVBQVUsS0FBSyx3QkFBd0IsRUFBRTtRQUM3RyxJQUNFLFlBQVksQ0FBQyxVQUFVLEtBQUsscUJBQXFCO1lBQ2pELENBQUMs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YUFBYTtRQUNiLFlBQVksRUFBRSxNQUFNO1FBQ3BCLFlBQVk7S0FDYixDQUFDLENBQUM7QUFDTCxDQUFDO0FBaENELHNDQWdDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJJUDMySW50ZXJmYWNlIH0gZnJvbSAnYmlwMzInO1xuXG5pbXBvcnQgeyBUcmFuc2FjdGlvbiwgdGFwcm9vdCwgVHhPdXRwdXQsIFNjcmlwdFNpZ25hdHVyZSB9IGZyb20gJ2JpdGNvaW5qcy1saWInO1xuXG5pbXBvcnQgeyBVdHhvVHJhbnNhY3Rpb24gfSBmcm9tICcuL1V0eG9UcmFuc2FjdGlvbic7XG5pbXBvcnQgeyBVdHhvVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi9VdHhvVHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7XG4gIGNyZWF0ZU91dHB1dFNjcmlwdDJvZjMsXG4gIGNyZWF0ZU91dHB1dFNjcmlwdFAyc2hQMnBrLFxuICBjcmVhdGVTcGVuZFNjcmlwdFAydHIsXG4gIFNjcmlwdFR5cGUsXG4gIFNjcmlwdFR5cGUyT2YzLFxuICBzY3JpcHRUeXBlMk9mM0FzUHJldk91dFR5cGUsXG59IGZyb20gJy4vb3V0cHV0U2NyaXB0cyc7XG5pbXBvcnQgeyBUcmlwbGUgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IGdldE1haW5uZXQsIE5ldHdvcmssIG5ldHdvcmtzIH0gZnJvbSAnLi4vbmV0d29ya3MnO1xuaW1wb3J0IHsgZWNjIGFzIGVjY0xpYiB9IGZyb20gJy4uL25vYmxlX2VjYyc7XG5pbXBvcnQgeyBwYXJzZVNpZ25hdHVyZVNjcmlwdDJPZjMgfSBmcm9tICcuL3BhcnNlSW5wdXQnO1xuaW1wb3J0IHsgZ2V0VGFwcm9vdE91dHB1dEtleSB9IGZyb20gJy4uL3RhcHJvb3QnO1xuXG4vKipcbiAqIENvbnN0cmFpbnRzIGZvciBzaWduYXR1cmUgdmVyaWZpY2F0aW9ucy5cbiAqIFBhcmFtZXRlcnMgYXJlIGNvbmp1bmN0aXZlOiBpZiBtdWx0aXBsZSBwYXJhbWV0ZXJzIGFyZSBzZXQsIGEgdmVyaWZpY2F0aW9uIGZvciBhbiBpbmRpdmlkdWFsXG4gKiBzaWduYXR1cmUgbXVzdCBzYXRpc2Z5IGFsbCBvZiB0aGVtLlxuICovXG5leHBvcnQgdHlwZSBWZXJpZmljYXRpb25TZXR0aW5ncyA9IHtcbiAgLyoqXG4gICAqIFRoZSBpbmRleCBvZiB0aGUgc2lnbmF0dXJlIHRvIHZlcmlmeS4gT25seSBpdGVyYXRlcyBvdmVyIG5vbi1lbXB0eSBzaWduYXR1cmVzLlxuICAgKi9cbiAgc2lnbmF0dXJlSW5kZXg/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBUaGUgcHVibGljIGtleSB0byB2ZXJpZnkuXG4gICAqL1xuICBwdWJsaWNLZXk/OiBCdWZmZXI7XG59O1xuXG4vKipcbiAqIFJlc3VsdCBmb3IgYSBpbmRpdmlkdWFsIHNpZ25hdHVyZSB2ZXJpZmljYXRpb25cbiAqL1xuZXhwb3J0IHR5cGUgU2lnbmF0dXJlVmVyaWZpY2F0aW9uID1cbiAgfCB7XG4gICAgICAvKiogU2V0IHRvIHRoZSBwdWJsaWMga2V5IHRoYXQgc2lnbmVkIGZvciB0aGUgc2lnbmF0dXJlICovXG4gICAgICBzaWduZWRCeTogQnVmZmVyO1xuICAgICAgLyoqIFNldCB0byB0aGUgc2lnbmF0dXJlIGJ1ZmZlciAqL1xuICAgICAgc2lnbmF0dXJlOiBCdWZmZXI7XG4gICAgfVxuICB8IHsgc2lnbmVkQnk6IHVuZGVmaW5lZDsgc2lnbmF0dXJlOiB1bmRlZmluZWQgfTtcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCAtIHVzZSB7QHNlZSB2ZXJpZnlTaWduYXR1cmVzV2l0aFB1YmxpY0tleXN9IGluc3RlYWRcbiAqIEdldCBzaWduYXR1cmUgdmVyaWZpY2F0aW9ucyBmb3IgbXVsdHNpZyB0cmFuc2FjdGlvblxuICogQHBhcmFtIHRyYW5zYWN0aW9uXG4gKiBAcGFyYW0gaW5wdXRJbmRleFxuICogQHBhcmFtIGFtb3VudCAtIG11c3QgYmUgc2V0IGZvciBzZWd3aXQgdHJhbnNhY3Rpb25zIGFuZCBCSVAxNDMgdHJhbnNhY3Rpb25zXG4gKiBAcGFyYW0gdmVyaWZpY2F0aW9uU2V0dGluZ3NcbiAqIEBwYXJhbSBwcmV2T3V0cHV0cyAtIG11c3QgYmUgc2V0IGZvciBwMnRyIGFuZCBwMnRyTXVzaWcyIHRyYW5zYWN0aW9uc1xuICogQHJldHVybnMgU2lnbmF0dXJlVmVyaWZpY2F0aW9uW10gLSBpbiBvcmRlciBvZiBwYXJzZWQgbm9uLWVtcHR5IHNpZ25hdHVyZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNpZ25hdHVyZVZlcmlmaWNhdGlvbnM8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludD4oXG4gIHRyYW5zYWN0aW9uOiBVdHhvVHJhbnNhY3Rpb248VE51bWJlcj4sXG4gIGlucHV0SW5kZXg6IG51bWJlcixcbiAgYW1vdW50OiBUTnVtYmVyLFxuICB2ZXJpZmljYXRpb25TZXR0aW5nczogVmVyaWZpY2F0aW9uU2V0dGluZ3MgPSB7fSxcbiAgcHJldk91dHB1dHM/OiBUeE91dHB1dDxUTnVtYmVyPltdXG4pOiBTaWduYXR1cmVWZXJpZmljYXRpb25bXSB7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIGlmICghdHJhbnNhY3Rpb24uaW5zKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIHRyYW5zYWN0aW9uYCk7XG4gIH1cblxuICBjb25zdCBpbnB1dCA9IHRyYW5zYWN0aW9uLmluc1tpbnB1dEluZGV4XTtcbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgaWYgKCFpbnB1dCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgbm8gaW5wdXQgYXQgaW5kZXggJHtpbnB1dEluZGV4fWApO1xuICB9XG5cbiAgaWYgKCghaW5wdXQuc2NyaXB0IHx8IGlucHV0LnNjcmlwdC5sZW5ndGggPT09IDApICYmIGlucHV0LndpdG5lc3MubGVuZ3RoID09PSAwKSB7XG4gICAgLy8gVW5zaWduZWQgaW5wdXQ6IG5vIHNpZ25hdHVyZXMuXG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgY29uc3QgcGFyc2VkU2NyaXB0ID0gcGFyc2VTaWduYXR1cmVTY3JpcHQyT2YzKGlucHV0KTtcblxuICBpZiAocGFyc2VkU2NyaXB0LnNjcmlwdFR5cGUgPT09ICd0YXByb290S2V5UGF0aFNwZW5kJyB8fCBwYXJzZWRTY3JpcHQuc2NyaXB0VHlwZSA9PT0gJ3RhcHJvb3RTY3JpcHRQYXRoU3BlbmQnKSB7XG4gICAgaWYgKFxuICAgICAgcGFyc2VkU2NyaXB0LnNjcmlwdFR5cGUgPT09ICd0YXByb290S2V5UGF0aFNwZW5kJyAmJlxuICAgICAgKHZlcmlmaWNhdGlvblNldHRpbmdzLnNpZ25hdHVyZUluZGV4IHx8IHZlcmlmaWNhdGlvblNldHRpbmdzLnB1YmxpY0tleSlcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgc2lnbmF0dXJlSW5kZXggYW5kIHB1YmxpY0tleSBwYXJhbWV0ZXJzIG5vdCBzdXBwb3J0ZWQgZm9yIHRhcHJvb3RLZXlQYXRoU3BlbmRgKTtcbiAgICB9XG5cbiAgICBpZiAodmVyaWZpY2F0aW9uU2V0dGluZ3Muc2lnbmF0dXJlSW5kZXggIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBzaWduYXR1cmVJbmRleCBwYXJhbWV0ZXIgbm90IHN1cHBvcnRlZCBmb3IgdGFwcm9vdFNjcmlwdFBhdGhTcGVuZGApO1xuICAgIH1cblxuICAgIGlmICghcHJldk91dHB1dHMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgcHJldk91dHB1dHMgbm90IHNldGApO1xuICAgIH1cblxuICAgIGlmIChwcmV2T3V0cHV0cy5sZW5ndGggIT09IHRyYW5zYWN0aW9uLmlucy5sZW5ndGgpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgcHJldk91dHB1dHMgbGVuZ3RoICR7cHJldk91dHB1dHMubGVuZ3RofSwgZXhwZWN0ZWQgJHt0cmFuc2FjdGlvbi5pbnMubGVuZ3RofWApO1xuICAgIH1cbiAgfVxuXG4gIGxldCBwdWJsaWNLZXlzOiBCdWZmZXJbXTtcbiAgaWYgKHBhcnNlZFNjcmlwdC5zY3JpcHRUeXBlID09PSAndGFwcm9vdEtleVBhdGhTcGVuZCcpIHtcbiAgICBpZiAoIXByZXZPdXRwdXRzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHByZXZPdXRwdXRzIG5vdCBzZXRgKTtcbiAgICB9XG4gICAgcHVibGljS2V5cyA9IFtnZXRUYXByb290T3V0cHV0S2V5KHByZXZPdXRwdXRzW2lucHV0SW5kZXhdLnNjcmlwdCldO1xuICB9IGVsc2Uge1xuICAgIHB1YmxpY0tleXMgPSBwYXJzZWRTY3JpcHQucHVibGljS2V5cy5maWx0ZXIoXG4gICAgICAoYnVmKSA9PlxuICAgICAgICB2ZXJpZmljYXRpb25TZXR0aW5ncy5wdWJsaWNLZXkgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgICB2ZXJpZmljYXRpb25TZXR0aW5ncy5wdWJsaWNLZXkuZXF1YWxzKGJ1ZikgfHxcbiAgICAgICAgdmVyaWZpY2F0aW9uU2V0dGluZ3MucHVibGljS2V5LnNsaWNlKDEpLmVxdWFscyhidWYpXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IHNpZ25hdHVyZXMgPSBwYXJzZWRTY3JpcHQuc2lnbmF0dXJlc1xuICAgIC5maWx0ZXIoKHMpID0+IHMgJiYgcy5sZW5ndGgpXG4gICAgLmZpbHRlcigocywgaSkgPT4gdmVyaWZpY2F0aW9uU2V0dGluZ3Muc2lnbmF0dXJlSW5kZXggPT09IHVuZGVmaW5lZCB8fCB2ZXJpZmljYXRpb25TZXR0aW5ncy5zaWduYXR1cmVJbmRleCA9PT0gaSk7XG5cbiAgcmV0dXJuIHNpZ25hdHVyZXMubWFwKChzaWduYXR1cmVCdWZmZXIpOiBTaWduYXR1cmVWZXJpZmljYXRpb24gPT4ge1xuICAgIGlmIChzaWduYXR1cmVCdWZmZXIgPT09IDAgfHwgc2lnbmF0dXJlQnVmZmVyLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHsgc2lnbmVkQnk6IHVuZGVmaW5lZCwgc2lnbmF0dXJlOiB1bmRlZmluZWQgfTtcbiAgICB9XG5cbiAgICBsZXQgaGFzaFR5cGUgPSBUcmFuc2FjdGlvbi5TSUdIQVNIX0RFRkFVTFQ7XG5cbiAgICBpZiAoc2lnbmF0dXJlQnVmZmVyLmxlbmd0aCA9PT0gNjUpIHtcbiAgICAgIGhhc2hUeXBlID0gc2lnbmF0dXJlQnVmZmVyW3NpZ25hdHVyZUJ1ZmZlci5sZW5ndGggLSAxXTtcbiAgICAgIHNpZ25hdHVyZUJ1ZmZlciA9IHNpZ25hdHVyZUJ1ZmZlci5zbGljZSgwLCAtMSk7XG4gICAgfVxuXG4gICAgaWYgKHBhcnNlZFNjcmlwdC5zY3JpcHRUeXBlID09PSAndGFwcm9vdFNjcmlwdFBhdGhTcGVuZCcpIHtcbiAgICAgIGlmICghcHJldk91dHB1dHMpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBwcmV2T3V0cHV0cyBub3Qgc2V0YCk7XG4gICAgICB9XG4gICAgICBjb25zdCB7IGNvbnRyb2xCbG9jaywgcHViU2NyaXB0IH0gPSBwYXJzZWRTY3JpcHQ7XG4gICAgICBjb25zdCBsZWFmSGFzaCA9IHRhcHJvb3QuZ2V0VGFwbGVhZkhhc2goZWNjTGliLCBjb250cm9sQmxvY2ssIHB1YlNjcmlwdCk7XG4gICAgICBjb25zdCBzaWduYXR1cmVIYXNoID0gdHJhbnNhY3Rpb24uaGFzaEZvcldpdG5lc3NWMShcbiAgICAgICAgaW5wdXRJbmRleCxcbiAgICAgICAgcHJldk91dHB1dHMubWFwKCh7IHNjcmlwdCB9KSA9PiBzY3JpcHQpLFxuICAgICAgICBwcmV2T3V0cHV0cy5tYXAoKHsgdmFsdWUgfSkgPT4gdmFsdWUpLFxuICAgICAgICBoYXNoVHlwZSxcbiAgICAgICAgbGVhZkhhc2hcbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IHNpZ25lZEJ5ID0gcHVibGljS2V5cy5maWx0ZXIoXG4gICAgICAgIChrKSA9PiBCdWZmZXIuaXNCdWZmZXIoc2lnbmF0dXJlQnVmZmVyKSAmJiBlY2NMaWIudmVyaWZ5U2Nobm9ycihzaWduYXR1cmVIYXNoLCBrLCBzaWduYXR1cmVCdWZmZXIpXG4gICAgICApO1xuXG4gICAgICBpZiAoc2lnbmVkQnkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiB7IHNpZ25lZEJ5OiB1bmRlZmluZWQsIHNpZ25hdHVyZTogdW5kZWZpbmVkIH07XG4gICAgICB9XG4gICAgICBpZiAoc2lnbmVkQnkubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIHJldHVybiB7IHNpZ25lZEJ5OiBzaWduZWRCeVswXSwgc2lnbmF0dXJlOiBzaWduYXR1cmVCdWZmZXIgfTtcbiAgICAgIH1cbiAgICAgIHRocm93IG5ldyBFcnJvcihgaWxsZWdhbCBzdGF0ZTogc2lnbmVkIGJ5IG11bHRpcGxlIHB1YmxpYyBrZXlzYCk7XG4gICAgfSBlbHNlIGlmIChwYXJzZWRTY3JpcHQuc2NyaXB0VHlwZSA9PT0gJ3RhcHJvb3RLZXlQYXRoU3BlbmQnKSB7XG4gICAgICBpZiAoIXByZXZPdXRwdXRzKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgcHJldk91dHB1dHMgbm90IHNldGApO1xuICAgICAgfVxuICAgICAgY29uc3Qgc2lnbmF0dXJlSGFzaCA9IHRyYW5zYWN0aW9uLmhhc2hGb3JXaXRuZXNzVjEoXG4gICAgICAgIGlucHV0SW5kZXgsXG4gICAgICAgIHByZXZPdXRwdXRzLm1hcCgoeyBzY3JpcHQgfSkgPT4gc2NyaXB0KSxcbiAgICAgICAgcHJldk91dHB1dHMubWFwKCh7IHZhbHVlIH0pID0+IHZhbHVlKSxcbiAgICAgICAgaGFzaFR5cGVcbiAgICAgICk7XG4gICAgICBjb25zdCByZXN1bHQgPSBlY2NMaWIudmVyaWZ5U2Nobm9ycihzaWduYXR1cmVIYXNoLCBwdWJsaWNLZXlzWzBdLCBzaWduYXR1cmVCdWZmZXIpO1xuICAgICAgcmV0dXJuIHJlc3VsdFxuICAgICAgICA/IHsgc2lnbmVkQnk6IHB1YmxpY0tleXNbMF0sIHNpZ25hdHVyZTogc2lnbmF0dXJlQnVmZmVyIH1cbiAgICAgICAgOiB7IHNpZ25lZEJ5OiB1bmRlZmluZWQsIHNpZ25hdHVyZTogdW5kZWZpbmVkIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIHNsaWNlIHRoZSBsYXN0IGJ5dGUgZnJvbSB0aGUgc2lnbmF0dXJlIGhhc2ggaW5wdXQgYmVjYXVzZSBpdCdzIHRoZSBoYXNoIHR5cGVcbiAgICAgIGNvbnN0IHsgc2lnbmF0dXJlLCBoYXNoVHlwZSB9ID0gU2NyaXB0U2lnbmF0dXJlLmRlY29kZShzaWduYXR1cmVCdWZmZXIpO1xuICAgICAgY29uc3QgdHJhbnNhY3Rpb25IYXNoID1cbiAgICAgICAgcGFyc2VkU2NyaXB0LnNjcmlwdFR5cGUgPT09ICdwMnNoUDJ3c2gnIHx8IHBhcnNlZFNjcmlwdC5zY3JpcHRUeXBlID09PSAncDJ3c2gnXG4gICAgICAgICAgPyB0cmFuc2FjdGlvbi5oYXNoRm9yV2l0bmVzc1YwKGlucHV0SW5kZXgsIHBhcnNlZFNjcmlwdC5wdWJTY3JpcHQsIGFtb3VudCwgaGFzaFR5cGUpXG4gICAgICAgICAgOiB0cmFuc2FjdGlvbi5oYXNoRm9yU2lnbmF0dXJlQnlOZXR3b3JrKGlucHV0SW5kZXgsIHBhcnNlZFNjcmlwdC5wdWJTY3JpcHQsIGFtb3VudCwgaGFzaFR5cGUpO1xuICAgICAgY29uc3Qgc2lnbmVkQnkgPSBwdWJsaWNLZXlzLmZpbHRlcigocHVibGljS2V5KSA9PlxuICAgICAgICBlY2NMaWIudmVyaWZ5KFxuICAgICAgICAgIHRyYW5zYWN0aW9uSGFzaCxcbiAgICAgICAgICBwdWJsaWNLZXksXG4gICAgICAgICAgc2lnbmF0dXJlLFxuICAgICAgICAgIC8qXG4gICAgICAgICAgICBTdHJpY3QgdmVyaWZpY2F0aW9uIChyZXF1aXJlIGxvd2VyLVMgdmFsdWUpLCBhcyByZXF1aXJlZCBieSBCSVAtMDE0NlxuICAgICAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL2JpdGNvaW4vYmlwcy9ibG9iL21hc3Rlci9iaXAtMDE0Ni5tZWRpYXdpa2lcbiAgICAgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9iaXRjb2luLWNvcmUvc2VjcDI1NmsxL2Jsb2IvYWM4M2JlMzMvaW5jbHVkZS9zZWNwMjU2azEuaCNMNDc4LUw1MDhcbiAgICAgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9iaXRjb2luanMvdGlueS1zZWNwMjU2azEvYmxvYi92MS4xLjYvanMuanMjTDIzMS1MMjMzXG4gICAgICAgICAgKi9cbiAgICAgICAgICB0cnVlXG4gICAgICAgIClcbiAgICAgICk7XG5cbiAgICAgIGlmIChzaWduZWRCeS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuIHsgc2lnbmVkQnk6IHVuZGVmaW5lZCwgc2lnbmF0dXJlOiB1bmRlZmluZWQgfTtcbiAgICAgIH1cbiAgICAgIGlmIChzaWduZWRCeS5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgcmV0dXJuIHsgc2lnbmVkQnk6IHNpZ25lZEJ5WzBdLCBzaWduYXR1cmU6IHNpZ25hdHVyZUJ1ZmZlciB9O1xuICAgICAgfVxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBpbGxlZ2FsIHN0YXRlOiBzaWduZWQgYnkgbXVsdGlwbGUgcHVibGljIGtleXNgKTtcbiAgICB9XG4gIH0pO1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIHVzZSB7QHNlZSB2ZXJpZnlTaWduYXR1cmVXaXRoUHVibGljS2V5c30gaW5zdGVhZFxuICogQHBhcmFtIHRyYW5zYWN0aW9uXG4gKiBAcGFyYW0gaW5wdXRJbmRleFxuICogQHBhcmFtIGFtb3VudFxuICogQHBhcmFtIHZlcmlmaWNhdGlvblNldHRpbmdzIC0gaWYgcHVibGljS2V5IGlzIHNwZWNpZmllZCwgcmV0dXJucyB0cnVlIGlmZiBhbnkgc2lnbmF0dXJlIGlzIHNpZ25lZCBieSBwdWJsaWNLZXkuXG4gKiBAcGFyYW0gcHJldk91dHB1dHMgLSBtdXN0IGJlIHNldCBmb3IgcDJ0ciB0cmFuc2FjdGlvbnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZlcmlmeVNpZ25hdHVyZTxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50PihcbiAgdHJhbnNhY3Rpb246IFV0eG9UcmFuc2FjdGlvbjxUTnVtYmVyPixcbiAgaW5wdXRJbmRleDogbnVtYmVyLFxuICBhbW91bnQ6IFROdW1iZXIsXG4gIHZlcmlmaWNhdGlvblNldHRpbmdzOiBWZXJpZmljYXRpb25TZXR0aW5ncyA9IHt9LFxuICBwcmV2T3V0cHV0cz86IFR4T3V0cHV0PFROdW1iZXI+W11cbik6IGJvb2xlYW4ge1xuICBjb25zdCBzaWduYXR1cmVWZXJpZmljYXRpb25zID0gZ2V0U2lnbmF0dXJlVmVyaWZpY2F0aW9ucyhcbiAgICB0cmFuc2FjdGlvbixcbiAgICBpbnB1dEluZGV4LFxuICAgIGFtb3VudCxcbiAgICB2ZXJpZmljYXRpb25TZXR0aW5ncyxcbiAgICBwcmV2T3V0cHV0c1xuICApLmZpbHRlcihcbiAgICAodikgPT5cbiAgICAgIC8vIElmIG5vIHB1YmxpY0tleSBpcyBzZXQgaW4gdmVyaWZpY2F0aW9uU2V0dGluZ3MsIGFsbCBzaWduYXR1cmVzIG11c3QgYmUgdmFsaWQuXG4gICAgICAvLyBPdGhlcndpc2UsIGEgc2luZ2xlIHZhbGlkIHNpZ25hdHVyZSBieSB0aGUgc3BlY2lmaWVkIHB1YmtleSBpcyBzdWZmaWNpZW50LlxuICAgICAgdmVyaWZpY2F0aW9uU2V0dGluZ3MucHVibGljS2V5ID09PSB1bmRlZmluZWQgfHxcbiAgICAgICh2LnNpZ25lZEJ5ICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgKHZlcmlmaWNhdGlvblNldHRpbmdzLnB1YmxpY0tleS5lcXVhbHModi5zaWduZWRCeSkgfHxcbiAgICAgICAgICB2ZXJpZmljYXRpb25TZXR0aW5ncy5wdWJsaWNLZXkuc2xpY2UoMSkuZXF1YWxzKHYuc2lnbmVkQnkpKSlcbiAgKTtcblxuICByZXR1cm4gc2lnbmF0dXJlVmVyaWZpY2F0aW9ucy5sZW5ndGggPiAwICYmIHNpZ25hdHVyZVZlcmlmaWNhdGlvbnMuZXZlcnkoKHYpID0+IHYuc2lnbmVkQnkgIT09IHVuZGVmaW5lZCk7XG59XG5cbi8qKlxuICogQHBhcmFtIHZcbiAqIEBwYXJhbSBwdWJsaWNLZXlcbiAqIEByZXR1cm4gdHJ1ZSBpZmYgc2lnbmF0dXJlIGlzIGJ5IHB1YmxpY0tleSAob3IgeG9ubHkgdmFyaWFudCBvZiBwdWJsaWNLZXkpXG4gKi9cbmZ1bmN0aW9uIGlzU2lnbmF0dXJlQnlQdWJsaWNLZXkodjogU2lnbmF0dXJlVmVyaWZpY2F0aW9uLCBwdWJsaWNLZXk6IEJ1ZmZlcik6IGJvb2xlYW4ge1xuICByZXR1cm4gKFxuICAgICEhdi5zaWduZWRCeSAmJlxuICAgICh2LnNpZ25lZEJ5LmVxdWFscyhwdWJsaWNLZXkpIHx8XG4gICAgICAvKiBmb3IgcDJ0ciBzaWduYXR1cmVzLCB3ZSBwYXNzIHRoZSBwdWJrZXkgaW4gMzMtYnl0ZSBmb3JtYXQgcmVjb3ZlciBpdCBmcm9tIHRoZSBzaWduYXR1cmUgaW4gMzItYnl0ZSBmb3JtYXQgKi9cbiAgICAgIChwdWJsaWNLZXkubGVuZ3RoID09PSAzMyAmJiBpc1NpZ25hdHVyZUJ5UHVibGljS2V5KHYsIHB1YmxpY0tleS5zbGljZSgxKSkpKVxuICApO1xufVxuXG4vKipcbiAqIEBwYXJhbSB0cmFuc2FjdGlvblxuICogQHBhcmFtIGlucHV0SW5kZXhcbiAqIEBwYXJhbSBwcmV2T3V0cHV0c1xuICogQHBhcmFtIHB1YmxpY0tleXNcbiAqIEByZXR1cm4gYXJyYXkgd2l0aCBzaWduYXR1cmUgY29ycmVzcG9uZGluZyB0byBuLXRoIGtleSwgdW5kZWZpbmVkIGlmIG5vIG1hdGNoIGZvdW5kXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTaWduYXR1cmVzV2l0aFB1YmxpY0tleXM8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludD4oXG4gIHRyYW5zYWN0aW9uOiBVdHhvVHJhbnNhY3Rpb248VE51bWJlcj4sXG4gIGlucHV0SW5kZXg6IG51bWJlcixcbiAgcHJldk91dHB1dHM6IFR4T3V0cHV0PFROdW1iZXI+W10sXG4gIHB1YmxpY0tleXM6IEJ1ZmZlcltdXG4pOiBBcnJheTxCdWZmZXIgfCB1bmRlZmluZWQ+IHtcbiAgaWYgKHRyYW5zYWN0aW9uLmlucy5sZW5ndGggIT09IHByZXZPdXRwdXRzLmxlbmd0aCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgaW5wdXQgbGVuZ3RoIG11c3QgbWF0Y2ggcHJldk91dHB1dHMgbGVuZ3RoYCk7XG4gIH1cblxuICBjb25zdCBzaWduYXR1cmVWZXJpZmljYXRpb25zID0gZ2V0U2lnbmF0dXJlVmVyaWZpY2F0aW9ucyhcbiAgICB0cmFuc2FjdGlvbixcbiAgICBpbnB1dEluZGV4LFxuICAgIHByZXZPdXRwdXRzW2lucHV0SW5kZXhdLnZhbHVlLFxuICAgIHt9LFxuICAgIHByZXZPdXRwdXRzXG4gICk7XG5cbiAgcmV0dXJuIHB1YmxpY0tleXMubWFwKChwdWJsaWNLZXkpID0+IHtcbiAgICBjb25zdCB2ID0gc2lnbmF0dXJlVmVyaWZpY2F0aW9ucy5maW5kKCh2KSA9PiBpc1NpZ25hdHVyZUJ5UHVibGljS2V5KHYsIHB1YmxpY0tleSkpO1xuICAgIHJldHVybiB2ID8gdi5zaWduYXR1cmUgOiB1bmRlZmluZWQ7XG4gIH0pO1xufVxuXG4vKipcbiAqIEBwYXJhbSB0cmFuc2FjdGlvblxuICogQHBhcmFtIGlucHV0SW5kZXhcbiAqIEBwYXJhbSBwcmV2T3V0cHV0cyAtIHRyYW5zYWN0aW9uIG91dHB1dHMgZm9yIGlucHV0c1xuICogQHBhcmFtIHB1YmxpY0tleXMgLSBwdWJsaWMga2V5cyB0byBjaGVjayBzaWduYXR1cmVzIGZvclxuICogQHJldHVybiBhcnJheSBvZiBib29sZWFucyBpbmRpY2F0aW5nIGEgdmFsaWQgc2lnbmF0dXJlIGZvciBldmVyeSBwdWJrZXkgaW4gX3B1YmxpY0tleXNfXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2ZXJpZnlTaWduYXR1cmVXaXRoUHVibGljS2V5czxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50PihcbiAgdHJhbnNhY3Rpb246IFV0eG9UcmFuc2FjdGlvbjxUTnVtYmVyPixcbiAgaW5wdXRJbmRleDogbnVtYmVyLFxuICBwcmV2T3V0cHV0czogVHhPdXRwdXQ8VE51bWJlcj5bXSxcbiAgcHVibGljS2V5czogQnVmZmVyW11cbik6IGJvb2xlYW5bXSB7XG4gIHJldHVybiBnZXRTaWduYXR1cmVzV2l0aFB1YmxpY0tleXModHJhbnNhY3Rpb24sIGlucHV0SW5kZXgsIHByZXZPdXRwdXRzLCBwdWJsaWNLZXlzKS5tYXAoKHMpID0+IHMgIT09IHVuZGVmaW5lZCk7XG59XG5cbi8qKlxuICogV3JhcHBlciBmb3Ige0BzZWUgdmVyaWZ5U2lnbmF0dXJlV2l0aFB1YmxpY0tleXN9IGZvciBzaW5nbGUgcHVia2V5XG4gKiBAcGFyYW0gdHJhbnNhY3Rpb25cbiAqIEBwYXJhbSBpbnB1dEluZGV4XG4gKiBAcGFyYW0gcHJldk91dHB1dHNcbiAqIEBwYXJhbSBwdWJsaWNLZXlcbiAqIEByZXR1cm4gdHJ1ZSBpZmYgc2lnbmF0dXJlIGlzIHZhbGlkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2ZXJpZnlTaWduYXR1cmVXaXRoUHVibGljS2V5PFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQ+KFxuICB0cmFuc2FjdGlvbjogVXR4b1RyYW5zYWN0aW9uPFROdW1iZXI+LFxuICBpbnB1dEluZGV4OiBudW1iZXIsXG4gIHByZXZPdXRwdXRzOiBUeE91dHB1dDxUTnVtYmVyPltdLFxuICBwdWJsaWNLZXk6IEJ1ZmZlclxuKTogYm9vbGVhbiB7XG4gIHJldHVybiB2ZXJpZnlTaWduYXR1cmVXaXRoUHVibGljS2V5cyh0cmFuc2FjdGlvbiwgaW5wdXRJbmRleCwgcHJldk91dHB1dHMsIFtwdWJsaWNLZXldKVswXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlZmF1bHRTaWdIYXNoKG5ldHdvcms6IE5ldHdvcmssIHNjcmlwdFR5cGU/OiBTY3JpcHRUeXBlKTogbnVtYmVyIHtcbiAgc3dpdGNoIChnZXRNYWlubmV0KG5ldHdvcmspKSB7XG4gICAgY2FzZSBuZXR3b3Jrcy5iaXRjb2luY2FzaDpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5zdjpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5nb2xkOlxuICAgIGNhc2UgbmV0d29ya3MuZWNhc2g6XG4gICAgICByZXR1cm4gVHJhbnNhY3Rpb24uU0lHSEFTSF9BTEwgfCBVdHhvVHJhbnNhY3Rpb24uU0lHSEFTSF9GT1JLSUQ7XG4gICAgZGVmYXVsdDpcbiAgICAgIHN3aXRjaCAoc2NyaXB0VHlwZSkge1xuICAgICAgICBjYXNlICdwMnRyJzpcbiAgICAgICAgY2FzZSAncDJ0ck11c2lnMic6XG4gICAgICAgICAgcmV0dXJuIFRyYW5zYWN0aW9uLlNJR0hBU0hfREVGQVVMVDtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4gVHJhbnNhY3Rpb24uU0lHSEFTSF9BTEw7XG4gICAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNpZ25JbnB1dFAyc2hQMnBrPFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQ+KFxuICB0eEJ1aWxkZXI6IFV0eG9UcmFuc2FjdGlvbkJ1aWxkZXI8VE51bWJlcj4sXG4gIHZpbjogbnVtYmVyLFxuICBrZXlQYWlyOiBCSVAzMkludGVyZmFjZVxuKTogdm9pZCB7XG4gIGNvbnN0IHByZXZPdXRTY3JpcHRUeXBlID0gJ3Ayc2gtcDJwayc7XG4gIGNvbnN0IHsgcmVkZWVtU2NyaXB0LCB3aXRuZXNzU2NyaXB0IH0gPSBjcmVhdGVPdXRwdXRTY3JpcHRQMnNoUDJwayhrZXlQYWlyLnB1YmxpY0tleSk7XG4gIGtleVBhaXIubmV0d29yayA9IHR4QnVpbGRlci5uZXR3b3JrO1xuXG4gIHR4QnVpbGRlci5zaWduKHtcbiAgICB2aW4sXG4gICAgcHJldk91dFNjcmlwdFR5cGUsXG4gICAga2V5UGFpcixcbiAgICBoYXNoVHlwZTogZ2V0RGVmYXVsdFNpZ0hhc2godHhCdWlsZGVyLm5ldHdvcmsgYXMgTmV0d29yayksXG4gICAgcmVkZWVtU2NyaXB0LFxuICAgIHdpdG5lc3NTY3JpcHQsXG4gICAgd2l0bmVzc1ZhbHVlOiB1bmRlZmluZWQsXG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2lnbklucHV0Mk9mMzxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50PihcbiAgdHhCdWlsZGVyOiBVdHhvVHJhbnNhY3Rpb25CdWlsZGVyPFROdW1iZXI+LFxuICB2aW46IG51bWJlcixcbiAgc2NyaXB0VHlwZTogU2NyaXB0VHlwZTJPZjMsXG4gIHB1YmtleXM6IFRyaXBsZTxCdWZmZXI+LFxuICBrZXlQYWlyOiBCSVAzMkludGVyZmFjZSxcbiAgY29zaWduZXI6IEJ1ZmZlcixcbiAgYW1vdW50OiBUTnVtYmVyXG4pOiB2b2lkIHtcbiAgbGV0IGNvbnRyb2xCbG9jaztcbiAgbGV0IHJlZGVlbVNjcmlwdDtcbiAgbGV0IHdpdG5lc3NTY3JpcHQ7XG5cbiAgY29uc3QgcHJldk91dFNjcmlwdFR5cGUgPSBzY3JpcHRUeXBlMk9mM0FzUHJldk91dFR5cGUoc2NyaXB0VHlwZSk7XG4gIGlmIChzY3JpcHRUeXBlID09PSAncDJ0cicpIHtcbiAgICAoeyB3aXRuZXNzU2NyaXB0LCBjb250cm9sQmxvY2sgfSA9IGNyZWF0ZVNwZW5kU2NyaXB0UDJ0cihwdWJrZXlzLCBba2V5UGFpci5wdWJsaWNLZXksIGNvc2lnbmVyXSkpO1xuICB9IGVsc2Uge1xuICAgICh7IHJlZGVlbVNjcmlwdCwgd2l0bmVzc1NjcmlwdCB9ID0gY3JlYXRlT3V0cHV0U2NyaXB0Mm9mMyhwdWJrZXlzLCBzY3JpcHRUeXBlKSk7XG4gIH1cblxuICBrZXlQYWlyLm5ldHdvcmsgPSB0eEJ1aWxkZXIubmV0d29yaztcblxuICB0eEJ1aWxkZXIuc2lnbih7XG4gICAgdmluLFxuICAgIHByZXZPdXRTY3JpcHRUeXBlLFxuICAgIGtleVBhaXIsXG4gICAgaGFzaFR5cGU6IGdldERlZmF1bHRTaWdIYXNoKHR4QnVpbGRlci5uZXR3b3JrIGFzIE5ldHdvcmssIHNjcmlwdFR5cGUpLFxuICAgIHJlZGVlbVNjcmlwdCxcbiAgICB3aXRuZXNzU2NyaXB0LFxuICAgIHdpdG5lc3NWYWx1ZTogYW1vdW50LFxuICAgIGNvbnRyb2xCbG9jayxcbiAgfSk7XG59XG4iXX0=
262
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmF0dXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JpdGdvL3NpZ25hdHVyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQTBEQSw4REFrS0M7QUFVRCwwQ0F3QkM7QUF1QkQsa0VBc0JDO0FBU0Qsc0VBT0M7QUFVRCxvRUFPQztBQUVELDhDQWdCQztBQUVELDhDQWtCQztBQUVELHNDQWdDQztBQXBaRCxpREFBZ0Y7QUFHaEYsdURBQW9EO0FBRXBELG1EQVF5QjtBQUV6QiwwQ0FBNEQ7QUFDNUQscURBQXNEO0FBQ3RELDZDQUF3RDtBQUN4RCx3Q0FBaUQ7QUE4QmpEOzs7Ozs7Ozs7R0FTRztBQUNILFNBQWdCLHlCQUF5QixDQUN2QyxXQUFxQyxFQUNyQyxVQUFrQixFQUNsQixNQUFlLEVBQ2YsdUJBQTZDLEVBQUUsRUFDL0MsV0FBaUM7SUFFakMsMEJBQTBCO0lBQzFCLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDckIsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzFDLDBCQUEwQjtJQUMxQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDWCxNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQy9FLGlDQUFpQztRQUNqQyxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxNQUFNLFlBQVksR0FBRyxJQUFBLHFDQUF3QixFQUFDLEtBQUssQ0FB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QztRQUN6RCxZQUFZO1FBQ1osYUFBYTtRQUNiLFlBQVksRUFBRSxTQUFTO0tBQ3hCLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxTQUFnQixhQUFhLENBQzNCLFNBQTBDLEVBQzFDLEdBQVcsRUFDWCxVQUEwQixFQUMxQixPQUF1QixFQUN2QixPQUF1QixFQUN2QixRQUFnQixFQUNoQixNQUFlO0lBRWYsSUFBSSxZQUFZLENBQUM7SUFDakIsSUFBSSxZQUFZLENBQUM7SUFDakIsSUFBSSxhQUFhLENBQUM7SUFFbEIsTUFBTSxpQkFBaUIsR0FBRyxJQUFBLDJDQUEyQixFQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2xFLElBQUksVUFBVSxLQUFLLE1BQU0sRUFBRSxDQUFDO1FBQzFCLENBQUMsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLEdBQUcsSUFBQSxxQ0FBcUIsRUFBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwRyxDQUFDO1NBQU0sQ0FBQztRQUNOLENBQUMsRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLEdBQUcsSUFBQSxzQ0FBc0IsRUFBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUNsRixDQUFDO0lBRUQsT0FBTyxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDO0lBRXBDLFNBQVMsQ0FBQyxJQUFJLENBQUM7UUFDYixHQUFHO1FBQ0gsaUJBQWlCO1FBQ2pCLE9BQU87UUFDUCxRQUFRLEVBQUUsaUJBQWlCLENBQUMsU0FBUyxDQUFDLE9BQWtCLEVBQUUsVUFBVSxDQUFDO1FBQ3JFLFlBQVk7UUFDWixhQUFhO1FBQ2IsWUFBWSxFQUFFLE1BQU07UUFDcEIsWUFBWTtLQUNiLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFuc2FjdGlvbiwgdGFwcm9vdCwgVHhPdXRwdXQsIFNjcmlwdFNpZ25hdHVyZSB9IGZyb20gJ2JpdGNvaW5qcy1saWInO1xuaW1wb3J0IHsgQklQMzJJbnRlcmZhY2UgfSBmcm9tICdAYml0Z28tYmV0YS9zZWNwMjU2azEnO1xuXG5pbXBvcnQgeyBVdHhvVHJhbnNhY3Rpb24gfSBmcm9tICcuL1V0eG9UcmFuc2FjdGlvbic7XG5pbXBvcnQgeyBVdHhvVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi9VdHhvVHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7XG4gIGNyZWF0ZU91dHB1dFNjcmlwdDJvZjMsXG4gIGNyZWF0ZU91dHB1dFNjcmlwdFAyc2hQMnBrLFxuICBjcmVhdGVTcGVuZFNjcmlwdFAydHIsXG4gIGdldE91dHB1dFNjcmlwdCxcbiAgU2NyaXB0VHlwZSxcbiAgU2NyaXB0VHlwZTJPZjMsXG4gIHNjcmlwdFR5cGUyT2YzQXNQcmV2T3V0VHlwZSxcbn0gZnJvbSAnLi9vdXRwdXRTY3JpcHRzJztcbmltcG9ydCB7IFRyaXBsZSB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgZ2V0TWFpbm5ldCwgTmV0d29yaywgbmV0d29ya3MgfSBmcm9tICcuLi9uZXR3b3Jrcyc7XG5pbXBvcnQgeyBlY2MgYXMgZWNjTGliIH0gZnJvbSAnQGJpdGdvLWJldGEvc2VjcDI1NmsxJztcbmltcG9ydCB7IHBhcnNlU2lnbmF0dXJlU2NyaXB0Mk9mMyB9IGZyb20gJy4vcGFyc2VJbnB1dCc7XG5pbXBvcnQgeyBnZXRUYXByb290T3V0cHV0S2V5IH0gZnJvbSAnLi4vdGFwcm9vdCc7XG5cbi8qKlxuICogQ29uc3RyYWludHMgZm9yIHNpZ25hdHVyZSB2ZXJpZmljYXRpb25zLlxuICogUGFyYW1ldGVycyBhcmUgY29uanVuY3RpdmU6IGlmIG11bHRpcGxlIHBhcmFtZXRlcnMgYXJlIHNldCwgYSB2ZXJpZmljYXRpb24gZm9yIGFuIGluZGl2aWR1YWxcbiAqIHNpZ25hdHVyZSBtdXN0IHNhdGlzZnkgYWxsIG9mIHRoZW0uXG4gKi9cbmV4cG9ydCB0eXBlIFZlcmlmaWNhdGlvblNldHRpbmdzID0ge1xuICAvKipcbiAgICogVGhlIGluZGV4IG9mIHRoZSBzaWduYXR1cmUgdG8gdmVyaWZ5LiBPbmx5IGl0ZXJhdGVzIG92ZXIgbm9uLWVtcHR5IHNpZ25hdHVyZXMuXG4gICAqL1xuICBzaWduYXR1cmVJbmRleD86IG51bWJlcjtcbiAgLyoqXG4gICAqIFRoZSBwdWJsaWMga2V5IHRvIHZlcmlmeS5cbiAgICovXG4gIHB1YmxpY0tleT86IEJ1ZmZlcjtcbn07XG5cbi8qKlxuICogUmVzdWx0IGZvciBhIGluZGl2aWR1YWwgc2lnbmF0dXJlIHZlcmlmaWNhdGlvblxuICovXG5leHBvcnQgdHlwZSBTaWduYXR1cmVWZXJpZmljYXRpb24gPVxuICB8IHtcbiAgICAgIC8qKiBTZXQgdG8gdGhlIHB1YmxpYyBrZXkgdGhhdCBzaWduZWQgZm9yIHRoZSBzaWduYXR1cmUgKi9cbiAgICAgIHNpZ25lZEJ5OiBCdWZmZXI7XG4gICAgICAvKiogU2V0IHRvIHRoZSBzaWduYXR1cmUgYnVmZmVyICovXG4gICAgICBzaWduYXR1cmU6IEJ1ZmZlcjtcbiAgICB9XG4gIHwgeyBzaWduZWRCeTogdW5kZWZpbmVkOyBzaWduYXR1cmU6IHVuZGVmaW5lZCB9O1xuXG4vKipcbiAqIEBkZXByZWNhdGVkIC0gdXNlIHtAc2VlIHZlcmlmeVNpZ25hdHVyZXNXaXRoUHVibGljS2V5c30gaW5zdGVhZFxuICogR2V0IHNpZ25hdHVyZSB2ZXJpZmljYXRpb25zIGZvciBtdWx0c2lnIHRyYW5zYWN0aW9uXG4gKiBAcGFyYW0gdHJhbnNhY3Rpb25cbiAqIEBwYXJhbSBpbnB1dEluZGV4XG4gKiBAcGFyYW0gYW1vdW50IC0gbXVzdCBiZSBzZXQgZm9yIHNlZ3dpdCB0cmFuc2FjdGlvbnMgYW5kIEJJUDE0MyB0cmFuc2FjdGlvbnNcbiAqIEBwYXJhbSB2ZXJpZmljYXRpb25TZXR0aW5nc1xuICogQHBhcmFtIHByZXZPdXRwdXRzIC0gbXVzdCBiZSBzZXQgZm9yIHAydHIgYW5kIHAydHJNdXNpZzIgdHJhbnNhY3Rpb25zXG4gKiBAcmV0dXJucyBTaWduYXR1cmVWZXJpZmljYXRpb25bXSAtIGluIG9yZGVyIG9mIHBhcnNlZCBub24tZW1wdHkgc2lnbmF0dXJlc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2lnbmF0dXJlVmVyaWZpY2F0aW9uczxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50PihcbiAgdHJhbnNhY3Rpb246IFV0eG9UcmFuc2FjdGlvbjxUTnVtYmVyPixcbiAgaW5wdXRJbmRleDogbnVtYmVyLFxuICBhbW91bnQ6IFROdW1iZXIsXG4gIHZlcmlmaWNhdGlvblNldHRpbmdzOiBWZXJpZmljYXRpb25TZXR0aW5ncyA9IHt9LFxuICBwcmV2T3V0cHV0cz86IFR4T3V0cHV0PFROdW1iZXI+W11cbik6IFNpZ25hdHVyZVZlcmlmaWNhdGlvbltdIHtcbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgaWYgKCF0cmFuc2FjdGlvbi5pbnMpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgdHJhbnNhY3Rpb25gKTtcbiAgfVxuXG4gIGNvbnN0IGlucHV0ID0gdHJhbnNhY3Rpb24uaW5zW2lucHV0SW5kZXhdO1xuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICBpZiAoIWlucHV0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBubyBpbnB1dCBhdCBpbmRleCAke2lucHV0SW5kZXh9YCk7XG4gIH1cblxuICBpZiAoKCFpbnB1dC5zY3JpcHQgfHwgaW5wdXQuc2NyaXB0Lmxlbmd0aCA9PT0gMCkgJiYgaW5wdXQud2l0bmVzcy5sZW5ndGggPT09IDApIHtcbiAgICAvLyBVbnNpZ25lZCBpbnB1dDogbm8gc2lnbmF0dXJlcy5cbiAgICByZXR1cm4gW107XG4gIH1cblxuICBjb25zdCBwYXJzZWRTY3JpcHQgPSBwYXJzZVNpZ25hdHVyZVNjcmlwdDJPZjMoaW5wdXQpO1xuXG4gIGlmIChwYXJzZWRTY3JpcHQuc2NyaXB0VHlwZSA9PT0gJ3RhcHJvb3RLZXlQYXRoU3BlbmQnIHx8IHBhcnNlZFNjcmlwdC5zY3JpcHRUeXBlID09PSAndGFwcm9vdFNjcmlwdFBhdGhTcGVuZCcpIHtcbiAgICBpZiAoXG4gICAgICBwYXJzZWRTY3JpcHQuc2NyaXB0VHlwZSA9PT0gJ3RhcHJvb3RLZXlQYXRoU3BlbmQnICYmXG4gICAgICAodmVyaWZpY2F0aW9uU2V0dGluZ3Muc2lnbmF0dXJlSW5kZXggfHwgdmVyaWZpY2F0aW9uU2V0dGluZ3MucHVibGljS2V5KVxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBzaWduYXR1cmVJbmRleCBhbmQgcHVibGljS2V5IHBhcmFtZXRlcnMgbm90IHN1cHBvcnRlZCBmb3IgdGFwcm9vdEtleVBhdGhTcGVuZGApO1xuICAgIH1cblxuICAgIGlmICh2ZXJpZmljYXRpb25TZXR0aW5ncy5zaWduYXR1cmVJbmRleCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHNpZ25hdHVyZUluZGV4IHBhcmFtZXRlciBub3Qgc3VwcG9ydGVkIGZvciB0YXByb290U2NyaXB0UGF0aFNwZW5kYCk7XG4gICAgfVxuXG4gICAgaWYgKCFwcmV2T3V0cHV0cykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBwcmV2T3V0cHV0cyBub3Qgc2V0YCk7XG4gICAgfVxuXG4gICAgaWYgKHByZXZPdXRwdXRzLmxlbmd0aCAhPT0gdHJhbnNhY3Rpb24uaW5zLmxlbmd0aCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBwcmV2T3V0cHV0cyBsZW5ndGggJHtwcmV2T3V0cHV0cy5sZW5ndGh9LCBleHBlY3RlZCAke3RyYW5zYWN0aW9uLmlucy5sZW5ndGh9YCk7XG4gICAgfVxuICB9XG5cbiAgaWYgKFxuICAgIHBhcnNlZFNjcmlwdC5zY3JpcHRUeXBlICE9PSAndGFwcm9vdEtleVBhdGhTcGVuZCcgJiZcbiAgICBwYXJzZWRTY3JpcHQuc2NyaXB0VHlwZSAhPT0gJ3RhcHJvb3RTY3JpcHRQYXRoU3BlbmQnICYmXG4gICAgcHJldk91dHB1dHNcbiAgKSB7XG4gICAgY29uc3QgcHJldk91dFNjcmlwdCA9IHByZXZPdXRwdXRzW2lucHV0SW5kZXhdLnNjcmlwdDtcblxuICAgIGNvbnN0IG91dHB1dCA9IGdldE91dHB1dFNjcmlwdChwYXJzZWRTY3JpcHQuc2NyaXB0VHlwZSwgcGFyc2VkU2NyaXB0LnB1YlNjcmlwdCk7XG4gICAgaWYgKCFwcmV2T3V0U2NyaXB0LmVxdWFscyhvdXRwdXQpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBwcmV2b3V0IHNjcmlwdCAke3ByZXZPdXRTY3JpcHQudG9TdHJpbmcoJ2hleCcpfSBkb2VzIG5vdCBtYXRjaCBjb21wdXRlZCBzY3JpcHQgJHtvdXRwdXQudG9TdHJpbmcoJ2hleCcpfWBcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgbGV0IHB1YmxpY0tleXM6IEJ1ZmZlcltdO1xuICBpZiAocGFyc2VkU2NyaXB0LnNjcmlwdFR5cGUgPT09ICd0YXByb290S2V5UGF0aFNwZW5kJykge1xuICAgIGlmICghcHJldk91dHB1dHMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgcHJldk91dHB1dHMgbm90IHNldGApO1xuICAgIH1cbiAgICBwdWJsaWNLZXlzID0gW2dldFRhcHJvb3RPdXRwdXRLZXkocHJldk91dHB1dHNbaW5wdXRJbmRleF0uc2NyaXB0KV07XG4gIH0gZWxzZSB7XG4gICAgcHVibGljS2V5cyA9IHBhcnNlZFNjcmlwdC5wdWJsaWNLZXlzLmZpbHRlcihcbiAgICAgIChidWYpID0+XG4gICAgICAgIHZlcmlmaWNhdGlvblNldHRpbmdzLnB1YmxpY0tleSA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICAgIHZlcmlmaWNhdGlvblNldHRpbmdzLnB1YmxpY0tleS5lcXVhbHMoYnVmKSB8fFxuICAgICAgICB2ZXJpZmljYXRpb25TZXR0aW5ncy5wdWJsaWNLZXkuc2xpY2UoMSkuZXF1YWxzKGJ1ZilcbiAgICApO1xuICB9XG5cbiAgY29uc3Qgc2lnbmF0dXJlcyA9IHBhcnNlZFNjcmlwdC5zaWduYXR1cmVzXG4gICAgLmZpbHRlcigocykgPT4gcyAmJiBzLmxlbmd0aClcbiAgICAuZmlsdGVyKChzLCBpKSA9PiB2ZXJpZmljYXRpb25TZXR0aW5ncy5zaWduYXR1cmVJbmRleCA9PT0gdW5kZWZpbmVkIHx8IHZlcmlmaWNhdGlvblNldHRpbmdzLnNpZ25hdHVyZUluZGV4ID09PSBpKTtcblxuICByZXR1cm4gc2lnbmF0dXJlcy5tYXAoKHNpZ25hdHVyZUJ1ZmZlcik6IFNpZ25hdHVyZVZlcmlmaWNhdGlvbiA9PiB7XG4gICAgaWYgKHNpZ25hdHVyZUJ1ZmZlciA9PT0gMCB8fCBzaWduYXR1cmVCdWZmZXIubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4geyBzaWduZWRCeTogdW5kZWZpbmVkLCBzaWduYXR1cmU6IHVuZGVmaW5lZCB9O1xuICAgIH1cblxuICAgIGxldCBoYXNoVHlwZSA9IFRyYW5zYWN0aW9uLlNJR0hBU0hfREVGQVVMVDtcblxuICAgIGlmIChzaWduYXR1cmVCdWZmZXIubGVuZ3RoID09PSA2NSkge1xuICAgICAgaGFzaFR5cGUgPSBzaWduYXR1cmVCdWZmZXJbc2lnbmF0dXJlQnVmZmVyLmxlbmd0aCAtIDFdO1xuICAgICAgc2lnbmF0dXJlQnVmZmVyID0gc2lnbmF0dXJlQnVmZmVyLnNsaWNlKDAsIC0xKTtcbiAgICB9XG5cbiAgICBpZiAocGFyc2VkU2NyaXB0LnNjcmlwdFR5cGUgPT09ICd0YXByb290U2NyaXB0UGF0aFNwZW5kJykge1xuICAgICAgaWYgKCFwcmV2T3V0cHV0cykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHByZXZPdXRwdXRzIG5vdCBzZXRgKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHsgY29udHJvbEJsb2NrLCBwdWJTY3JpcHQgfSA9IHBhcnNlZFNjcmlwdDtcbiAgICAgIGNvbnN0IGxlYWZIYXNoID0gdGFwcm9vdC5nZXRUYXBsZWFmSGFzaChlY2NMaWIsIGNvbnRyb2xCbG9jaywgcHViU2NyaXB0KTtcbiAgICAgIGNvbnN0IHNpZ25hdHVyZUhhc2ggPSB0cmFuc2FjdGlvbi5oYXNoRm9yV2l0bmVzc1YxKFxuICAgICAgICBpbnB1dEluZGV4LFxuICAgICAgICBwcmV2T3V0cHV0cy5tYXAoKHsgc2NyaXB0IH0pID0+IHNjcmlwdCksXG4gICAgICAgIHByZXZPdXRwdXRzLm1hcCgoeyB2YWx1ZSB9KSA9PiB2YWx1ZSksXG4gICAgICAgIGhhc2hUeXBlLFxuICAgICAgICBsZWFmSGFzaFxuICAgICAgKTtcblxuICAgICAgY29uc3Qgc2lnbmVkQnkgPSBwdWJsaWNLZXlzLmZpbHRlcihcbiAgICAgICAgKGspID0+IEJ1ZmZlci5pc0J1ZmZlcihzaWduYXR1cmVCdWZmZXIpICYmIGVjY0xpYi52ZXJpZnlTY2hub3JyKHNpZ25hdHVyZUhhc2gsIGssIHNpZ25hdHVyZUJ1ZmZlcilcbiAgICAgICk7XG5cbiAgICAgIGlmIChzaWduZWRCeS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuIHsgc2lnbmVkQnk6IHVuZGVmaW5lZCwgc2lnbmF0dXJlOiB1bmRlZmluZWQgfTtcbiAgICAgIH1cbiAgICAgIGlmIChzaWduZWRCeS5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgcmV0dXJuIHsgc2lnbmVkQnk6IHNpZ25lZEJ5WzBdLCBzaWduYXR1cmU6IHNpZ25hdHVyZUJ1ZmZlciB9O1xuICAgICAgfVxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBpbGxlZ2FsIHN0YXRlOiBzaWduZWQgYnkgbXVsdGlwbGUgcHVibGljIGtleXNgKTtcbiAgICB9IGVsc2UgaWYgKHBhcnNlZFNjcmlwdC5zY3JpcHRUeXBlID09PSAndGFwcm9vdEtleVBhdGhTcGVuZCcpIHtcbiAgICAgIGlmICghcHJldk91dHB1dHMpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBwcmV2T3V0cHV0cyBub3Qgc2V0YCk7XG4gICAgICB9XG4gICAgICBjb25zdCBzaWduYXR1cmVIYXNoID0gdHJhbnNhY3Rpb24uaGFzaEZvcldpdG5lc3NWMShcbiAgICAgICAgaW5wdXRJbmRleCxcbiAgICAgICAgcHJldk91dHB1dHMubWFwKCh7IHNjcmlwdCB9KSA9PiBzY3JpcHQpLFxuICAgICAgICBwcmV2T3V0cHV0cy5tYXAoKHsgdmFsdWUgfSkgPT4gdmFsdWUpLFxuICAgICAgICBoYXNoVHlwZVxuICAgICAgKTtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGVjY0xpYi52ZXJpZnlTY2hub3JyKHNpZ25hdHVyZUhhc2gsIHB1YmxpY0tleXNbMF0sIHNpZ25hdHVyZUJ1ZmZlcik7XG4gICAgICByZXR1cm4gcmVzdWx0XG4gICAgICAgID8geyBzaWduZWRCeTogcHVibGljS2V5c1swXSwgc2lnbmF0dXJlOiBzaWduYXR1cmVCdWZmZXIgfVxuICAgICAgICA6IHsgc2lnbmVkQnk6IHVuZGVmaW5lZCwgc2lnbmF0dXJlOiB1bmRlZmluZWQgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gc2xpY2UgdGhlIGxhc3QgYnl0ZSBmcm9tIHRoZSBzaWduYXR1cmUgaGFzaCBpbnB1dCBiZWNhdXNlIGl0J3MgdGhlIGhhc2ggdHlwZVxuICAgICAgY29uc3QgeyBzaWduYXR1cmUsIGhhc2hUeXBlIH0gPSBTY3JpcHRTaWduYXR1cmUuZGVjb2RlKHNpZ25hdHVyZUJ1ZmZlcik7XG4gICAgICBjb25zdCB0cmFuc2FjdGlvbkhhc2ggPVxuICAgICAgICBwYXJzZWRTY3JpcHQuc2NyaXB0VHlwZSA9PT0gJ3Ayc2hQMndzaCcgfHwgcGFyc2VkU2NyaXB0LnNjcmlwdFR5cGUgPT09ICdwMndzaCdcbiAgICAgICAgICA/IHRyYW5zYWN0aW9uLmhhc2hGb3JXaXRuZXNzVjAoaW5wdXRJbmRleCwgcGFyc2VkU2NyaXB0LnB1YlNjcmlwdCwgYW1vdW50LCBoYXNoVHlwZSlcbiAgICAgICAgICA6IHRyYW5zYWN0aW9uLmhhc2hGb3JTaWduYXR1cmVCeU5ldHdvcmsoaW5wdXRJbmRleCwgcGFyc2VkU2NyaXB0LnB1YlNjcmlwdCwgYW1vdW50LCBoYXNoVHlwZSk7XG4gICAgICBjb25zdCBzaWduZWRCeSA9IHB1YmxpY0tleXMuZmlsdGVyKChwdWJsaWNLZXkpID0+XG4gICAgICAgIGVjY0xpYi52ZXJpZnkoXG4gICAgICAgICAgdHJhbnNhY3Rpb25IYXNoLFxuICAgICAgICAgIHB1YmxpY0tleSxcbiAgICAgICAgICBzaWduYXR1cmUsXG4gICAgICAgICAgLypcbiAgICAgICAgICAgIFN0cmljdCB2ZXJpZmljYXRpb24gKHJlcXVpcmUgbG93ZXItUyB2YWx1ZSksIGFzIHJlcXVpcmVkIGJ5IEJJUC0wMTQ2XG4gICAgICAgICAgICBodHRwczovL2dpdGh1Yi5jb20vYml0Y29pbi9iaXBzL2Jsb2IvbWFzdGVyL2JpcC0wMTQ2Lm1lZGlhd2lraVxuICAgICAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL2JpdGNvaW4tY29yZS9zZWNwMjU2azEvYmxvYi9hYzgzYmUzMy9pbmNsdWRlL3NlY3AyNTZrMS5oI0w0NzgtTDUwOFxuICAgICAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL2JpdGNvaW5qcy90aW55LXNlY3AyNTZrMS9ibG9iL3YxLjEuNi9qcy5qcyNMMjMxLUwyMzNcbiAgICAgICAgICAqL1xuICAgICAgICAgIHRydWVcbiAgICAgICAgKVxuICAgICAgKTtcblxuICAgICAgaWYgKHNpZ25lZEJ5Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4geyBzaWduZWRCeTogdW5kZWZpbmVkLCBzaWduYXR1cmU6IHVuZGVmaW5lZCB9O1xuICAgICAgfVxuICAgICAgaWYgKHNpZ25lZEJ5Lmxlbmd0aCA9PT0gMSkge1xuICAgICAgICByZXR1cm4geyBzaWduZWRCeTogc2lnbmVkQnlbMF0sIHNpZ25hdHVyZTogc2lnbmF0dXJlQnVmZmVyIH07XG4gICAgICB9XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGlsbGVnYWwgc3RhdGU6IHNpZ25lZCBieSBtdWx0aXBsZSBwdWJsaWMga2V5c2ApO1xuICAgIH1cbiAgfSk7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgdXNlIHtAc2VlIHZlcmlmeVNpZ25hdHVyZVdpdGhQdWJsaWNLZXlzfSBpbnN0ZWFkXG4gKiBAcGFyYW0gdHJhbnNhY3Rpb25cbiAqIEBwYXJhbSBpbnB1dEluZGV4XG4gKiBAcGFyYW0gYW1vdW50XG4gKiBAcGFyYW0gdmVyaWZpY2F0aW9uU2V0dGluZ3MgLSBpZiBwdWJsaWNLZXkgaXMgc3BlY2lmaWVkLCByZXR1cm5zIHRydWUgaWZmIGFueSBzaWduYXR1cmUgaXMgc2lnbmVkIGJ5IHB1YmxpY0tleS5cbiAqIEBwYXJhbSBwcmV2T3V0cHV0cyAtIG11c3QgYmUgc2V0IGZvciBwMnRyIHRyYW5zYWN0aW9uc1xuICovXG5leHBvcnQgZnVuY3Rpb24gdmVyaWZ5U2lnbmF0dXJlPFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQ+KFxuICB0cmFuc2FjdGlvbjogVXR4b1RyYW5zYWN0aW9uPFROdW1iZXI+LFxuICBpbnB1dEluZGV4OiBudW1iZXIsXG4gIGFtb3VudDogVE51bWJlcixcbiAgdmVyaWZpY2F0aW9uU2V0dGluZ3M6IFZlcmlmaWNhdGlvblNldHRpbmdzID0ge30sXG4gIHByZXZPdXRwdXRzPzogVHhPdXRwdXQ8VE51bWJlcj5bXVxuKTogYm9vbGVhbiB7XG4gIGNvbnN0IHNpZ25hdHVyZVZlcmlmaWNhdGlvbnMgPSBnZXRTaWduYXR1cmVWZXJpZmljYXRpb25zKFxuICAgIHRyYW5zYWN0aW9uLFxuICAgIGlucHV0SW5kZXgsXG4gICAgYW1vdW50LFxuICAgIHZlcmlmaWNhdGlvblNldHRpbmdzLFxuICAgIHByZXZPdXRwdXRzXG4gICkuZmlsdGVyKFxuICAgICh2KSA9PlxuICAgICAgLy8gSWYgbm8gcHVibGljS2V5IGlzIHNldCBpbiB2ZXJpZmljYXRpb25TZXR0aW5ncywgYWxsIHNpZ25hdHVyZXMgbXVzdCBiZSB2YWxpZC5cbiAgICAgIC8vIE90aGVyd2lzZSwgYSBzaW5nbGUgdmFsaWQgc2lnbmF0dXJlIGJ5IHRoZSBzcGVjaWZpZWQgcHVia2V5IGlzIHN1ZmZpY2llbnQuXG4gICAgICB2ZXJpZmljYXRpb25TZXR0aW5ncy5wdWJsaWNLZXkgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgKHYuc2lnbmVkQnkgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAodmVyaWZpY2F0aW9uU2V0dGluZ3MucHVibGljS2V5LmVxdWFscyh2LnNpZ25lZEJ5KSB8fFxuICAgICAgICAgIHZlcmlmaWNhdGlvblNldHRpbmdzLnB1YmxpY0tleS5zbGljZSgxKS5lcXVhbHModi5zaWduZWRCeSkpKVxuICApO1xuXG4gIHJldHVybiBzaWduYXR1cmVWZXJpZmljYXRpb25zLmxlbmd0aCA+IDAgJiYgc2lnbmF0dXJlVmVyaWZpY2F0aW9ucy5ldmVyeSgodikgPT4gdi5zaWduZWRCeSAhPT0gdW5kZWZpbmVkKTtcbn1cblxuLyoqXG4gKiBAcGFyYW0gdlxuICogQHBhcmFtIHB1YmxpY0tleVxuICogQHJldHVybiB0cnVlIGlmZiBzaWduYXR1cmUgaXMgYnkgcHVibGljS2V5IChvciB4b25seSB2YXJpYW50IG9mIHB1YmxpY0tleSlcbiAqL1xuZnVuY3Rpb24gaXNTaWduYXR1cmVCeVB1YmxpY0tleSh2OiBTaWduYXR1cmVWZXJpZmljYXRpb24sIHB1YmxpY0tleTogQnVmZmVyKTogYm9vbGVhbiB7XG4gIHJldHVybiAoXG4gICAgISF2LnNpZ25lZEJ5ICYmXG4gICAgKHYuc2lnbmVkQnkuZXF1YWxzKHB1YmxpY0tleSkgfHxcbiAgICAgIC8qIGZvciBwMnRyIHNpZ25hdHVyZXMsIHdlIHBhc3MgdGhlIHB1YmtleSBpbiAzMy1ieXRlIGZvcm1hdCByZWNvdmVyIGl0IGZyb20gdGhlIHNpZ25hdHVyZSBpbiAzMi1ieXRlIGZvcm1hdCAqL1xuICAgICAgKHB1YmxpY0tleS5sZW5ndGggPT09IDMzICYmIGlzU2lnbmF0dXJlQnlQdWJsaWNLZXkodiwgcHVibGljS2V5LnNsaWNlKDEpKSkpXG4gICk7XG59XG5cbi8qKlxuICogQHBhcmFtIHRyYW5zYWN0aW9uXG4gKiBAcGFyYW0gaW5wdXRJbmRleFxuICogQHBhcmFtIHByZXZPdXRwdXRzXG4gKiBAcGFyYW0gcHVibGljS2V5c1xuICogQHJldHVybiBhcnJheSB3aXRoIHNpZ25hdHVyZSBjb3JyZXNwb25kaW5nIHRvIG4tdGgga2V5LCB1bmRlZmluZWQgaWYgbm8gbWF0Y2ggZm91bmRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNpZ25hdHVyZXNXaXRoUHVibGljS2V5czxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50PihcbiAgdHJhbnNhY3Rpb246IFV0eG9UcmFuc2FjdGlvbjxUTnVtYmVyPixcbiAgaW5wdXRJbmRleDogbnVtYmVyLFxuICBwcmV2T3V0cHV0czogVHhPdXRwdXQ8VE51bWJlcj5bXSxcbiAgcHVibGljS2V5czogQnVmZmVyW11cbik6IEFycmF5PEJ1ZmZlciB8IHVuZGVmaW5lZD4ge1xuICBpZiAodHJhbnNhY3Rpb24uaW5zLmxlbmd0aCAhPT0gcHJldk91dHB1dHMubGVuZ3RoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBpbnB1dCBsZW5ndGggbXVzdCBtYXRjaCBwcmV2T3V0cHV0cyBsZW5ndGhgKTtcbiAgfVxuXG4gIGNvbnN0IHNpZ25hdHVyZVZlcmlmaWNhdGlvbnMgPSBnZXRTaWduYXR1cmVWZXJpZmljYXRpb25zKFxuICAgIHRyYW5zYWN0aW9uLFxuICAgIGlucHV0SW5kZXgsXG4gICAgcHJldk91dHB1dHNbaW5wdXRJbmRleF0udmFsdWUsXG4gICAge30sXG4gICAgcHJldk91dHB1dHNcbiAgKTtcblxuICByZXR1cm4gcHVibGljS2V5cy5tYXAoKHB1YmxpY0tleSkgPT4ge1xuICAgIGNvbnN0IHYgPSBzaWduYXR1cmVWZXJpZmljYXRpb25zLmZpbmQoKHYpID0+IGlzU2lnbmF0dXJlQnlQdWJsaWNLZXkodiwgcHVibGljS2V5KSk7XG4gICAgcmV0dXJuIHYgPyB2LnNpZ25hdHVyZSA6IHVuZGVmaW5lZDtcbiAgfSk7XG59XG5cbi8qKlxuICogQHBhcmFtIHRyYW5zYWN0aW9uXG4gKiBAcGFyYW0gaW5wdXRJbmRleFxuICogQHBhcmFtIHByZXZPdXRwdXRzIC0gdHJhbnNhY3Rpb24gb3V0cHV0cyBmb3IgaW5wdXRzXG4gKiBAcGFyYW0gcHVibGljS2V5cyAtIHB1YmxpYyBrZXlzIHRvIGNoZWNrIHNpZ25hdHVyZXMgZm9yXG4gKiBAcmV0dXJuIGFycmF5IG9mIGJvb2xlYW5zIGluZGljYXRpbmcgYSB2YWxpZCBzaWduYXR1cmUgZm9yIGV2ZXJ5IHB1YmtleSBpbiBfcHVibGljS2V5c19cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZlcmlmeVNpZ25hdHVyZVdpdGhQdWJsaWNLZXlzPFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQ+KFxuICB0cmFuc2FjdGlvbjogVXR4b1RyYW5zYWN0aW9uPFROdW1iZXI+LFxuICBpbnB1dEluZGV4OiBudW1iZXIsXG4gIHByZXZPdXRwdXRzOiBUeE91dHB1dDxUTnVtYmVyPltdLFxuICBwdWJsaWNLZXlzOiBCdWZmZXJbXVxuKTogYm9vbGVhbltdIHtcbiAgcmV0dXJuIGdldFNpZ25hdHVyZXNXaXRoUHVibGljS2V5cyh0cmFuc2FjdGlvbiwgaW5wdXRJbmRleCwgcHJldk91dHB1dHMsIHB1YmxpY0tleXMpLm1hcCgocykgPT4gcyAhPT0gdW5kZWZpbmVkKTtcbn1cblxuLyoqXG4gKiBXcmFwcGVyIGZvciB7QHNlZSB2ZXJpZnlTaWduYXR1cmVXaXRoUHVibGljS2V5c30gZm9yIHNpbmdsZSBwdWJrZXlcbiAqIEBwYXJhbSB0cmFuc2FjdGlvblxuICogQHBhcmFtIGlucHV0SW5kZXhcbiAqIEBwYXJhbSBwcmV2T3V0cHV0c1xuICogQHBhcmFtIHB1YmxpY0tleVxuICogQHJldHVybiB0cnVlIGlmZiBzaWduYXR1cmUgaXMgdmFsaWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZlcmlmeVNpZ25hdHVyZVdpdGhQdWJsaWNLZXk8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludD4oXG4gIHRyYW5zYWN0aW9uOiBVdHhvVHJhbnNhY3Rpb248VE51bWJlcj4sXG4gIGlucHV0SW5kZXg6IG51bWJlcixcbiAgcHJldk91dHB1dHM6IFR4T3V0cHV0PFROdW1iZXI+W10sXG4gIHB1YmxpY0tleTogQnVmZmVyXG4pOiBib29sZWFuIHtcbiAgcmV0dXJuIHZlcmlmeVNpZ25hdHVyZVdpdGhQdWJsaWNLZXlzKHRyYW5zYWN0aW9uLCBpbnB1dEluZGV4LCBwcmV2T3V0cHV0cywgW3B1YmxpY0tleV0pWzBdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVmYXVsdFNpZ0hhc2gobmV0d29yazogTmV0d29yaywgc2NyaXB0VHlwZT86IFNjcmlwdFR5cGUpOiBudW1iZXIge1xuICBzd2l0Y2ggKGdldE1haW5uZXQobmV0d29yaykpIHtcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5jYXNoOlxuICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbnN2OlxuICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbmdvbGQ6XG4gICAgY2FzZSBuZXR3b3Jrcy5lY2FzaDpcbiAgICAgIHJldHVybiBUcmFuc2FjdGlvbi5TSUdIQVNIX0FMTCB8IFV0eG9UcmFuc2FjdGlvbi5TSUdIQVNIX0ZPUktJRDtcbiAgICBkZWZhdWx0OlxuICAgICAgc3dpdGNoIChzY3JpcHRUeXBlKSB7XG4gICAgICAgIGNhc2UgJ3AydHInOlxuICAgICAgICBjYXNlICdwMnRyTXVzaWcyJzpcbiAgICAgICAgICByZXR1cm4gVHJhbnNhY3Rpb24uU0lHSEFTSF9ERUZBVUxUO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiBUcmFuc2FjdGlvbi5TSUdIQVNIX0FMTDtcbiAgICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2lnbklucHV0UDJzaFAycGs8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludD4oXG4gIHR4QnVpbGRlcjogVXR4b1RyYW5zYWN0aW9uQnVpbGRlcjxUTnVtYmVyPixcbiAgdmluOiBudW1iZXIsXG4gIGtleVBhaXI6IEJJUDMySW50ZXJmYWNlXG4pOiB2b2lkIHtcbiAgY29uc3QgcHJldk91dFNjcmlwdFR5cGUgPSAncDJzaC1wMnBrJztcbiAgY29uc3QgeyByZWRlZW1TY3JpcHQsIHdpdG5lc3NTY3JpcHQgfSA9IGNyZWF0ZU91dHB1dFNjcmlwdFAyc2hQMnBrKGtleVBhaXIucHVibGljS2V5KTtcbiAga2V5UGFpci5uZXR3b3JrID0gdHhCdWlsZGVyLm5ldHdvcms7XG5cbiAgdHhCdWlsZGVyLnNpZ24oe1xuICAgIHZpbixcbiAgICBwcmV2T3V0U2NyaXB0VHlwZSxcbiAgICBrZXlQYWlyLFxuICAgIGhhc2hUeXBlOiBnZXREZWZhdWx0U2lnSGFzaCh0eEJ1aWxkZXIubmV0d29yayBhcyBOZXR3b3JrKSxcbiAgICByZWRlZW1TY3JpcHQsXG4gICAgd2l0bmVzc1NjcmlwdCxcbiAgICB3aXRuZXNzVmFsdWU6IHVuZGVmaW5lZCxcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzaWduSW5wdXQyT2YzPFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQ+KFxuICB0eEJ1aWxkZXI6IFV0eG9UcmFuc2FjdGlvbkJ1aWxkZXI8VE51bWJlcj4sXG4gIHZpbjogbnVtYmVyLFxuICBzY3JpcHRUeXBlOiBTY3JpcHRUeXBlMk9mMyxcbiAgcHVia2V5czogVHJpcGxlPEJ1ZmZlcj4sXG4gIGtleVBhaXI6IEJJUDMySW50ZXJmYWNlLFxuICBjb3NpZ25lcjogQnVmZmVyLFxuICBhbW91bnQ6IFROdW1iZXJcbik6IHZvaWQge1xuICBsZXQgY29udHJvbEJsb2NrO1xuICBsZXQgcmVkZWVtU2NyaXB0O1xuICBsZXQgd2l0bmVzc1NjcmlwdDtcblxuICBjb25zdCBwcmV2T3V0U2NyaXB0VHlwZSA9IHNjcmlwdFR5cGUyT2YzQXNQcmV2T3V0VHlwZShzY3JpcHRUeXBlKTtcbiAgaWYgKHNjcmlwdFR5cGUgPT09ICdwMnRyJykge1xuICAgICh7IHdpdG5lc3NTY3JpcHQsIGNvbnRyb2xCbG9jayB9ID0gY3JlYXRlU3BlbmRTY3JpcHRQMnRyKHB1YmtleXMsIFtrZXlQYWlyLnB1YmxpY0tleSwgY29zaWduZXJdKSk7XG4gIH0gZWxzZSB7XG4gICAgKHsgcmVkZWVtU2NyaXB0LCB3aXRuZXNzU2NyaXB0IH0gPSBjcmVhdGVPdXRwdXRTY3JpcHQyb2YzKHB1YmtleXMsIHNjcmlwdFR5cGUpKTtcbiAgfVxuXG4gIGtleVBhaXIubmV0d29yayA9IHR4QnVpbGRlci5uZXR3b3JrO1xuXG4gIHR4QnVpbGRlci5zaWduKHtcbiAgICB2aW4sXG4gICAgcHJldk91dFNjcmlwdFR5cGUsXG4gICAga2V5UGFpcixcbiAgICBoYXNoVHlwZTogZ2V0RGVmYXVsdFNpZ0hhc2godHhCdWlsZGVyLm5ldHdvcmsgYXMgTmV0d29yaywgc2NyaXB0VHlwZSksXG4gICAgcmVkZWVtU2NyaXB0LFxuICAgIHdpdG5lc3NTY3JpcHQsXG4gICAgd2l0bmVzc1ZhbHVlOiBhbW91bnQsXG4gICAgY29udHJvbEJsb2NrLFxuICB9KTtcbn1cbiJdfQ==
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.toTNumber = void 0;
3
+ exports.toTNumber = toTNumber;
4
4
  /**
5
5
  * Convert input to bigint or number.
6
6
  * Throws error if input cannot be converted to a safe integer number.
@@ -27,5 +27,4 @@ function toTNumber(value, amountType) {
27
27
  }
28
28
  throw new Error('amountType must be either "number" or "bigint"');
29
29
  }
30
- exports.toTNumber = toTNumber;
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG51bWJlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iaXRnby90bnVtYmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOzs7Ozs7R0FNRztBQUNILFNBQWdCLFNBQVMsQ0FDdkIsS0FBK0IsRUFDL0IsVUFBK0I7SUFFL0IsSUFBSSxPQUFPLEtBQUssS0FBSyxVQUFVLEVBQUU7UUFDL0IsT0FBTyxLQUFnQixDQUFDO0tBQ3pCO0lBQ0QsSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFO1FBQ3ZCLE1BQU0sSUFBSSxLQUFLLENBQUMsaUNBQWlDLENBQUMsQ0FBQztLQUNwRDtJQUNELElBQUksVUFBVSxLQUFLLFFBQVEsRUFBRTtRQUMzQixNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDdEMsTUFBTSxJQUFJLEtBQUssQ0FBQyx3REFBd0QsQ0FBQyxDQUFDO1NBQzNFO1FBQ0QsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFZLENBQUM7S0FDakM7SUFDRCxJQUFJLFVBQVUsS0FBSyxRQUFRLEVBQUU7UUFDM0IsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFZLENBQUM7S0FDakM7SUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLGdEQUFnRCxDQUFDLENBQUM7QUFDcEUsQ0FBQztBQXJCRCw4QkFxQkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvbnZlcnQgaW5wdXQgdG8gYmlnaW50IG9yIG51bWJlci5cbiAqIFRocm93cyBlcnJvciBpZiBpbnB1dCBjYW5ub3QgYmUgY29udmVydGVkIHRvIGEgc2FmZSBpbnRlZ2VyIG51bWJlci5cbiAqIEBwYXJhbSB2YWx1ZSAtIGlucHV0IHZhbHVlXG4gKiBAcGFyYW0gYW1vdW50VHlwZSAtIGRlc2lyZWQgb3V0cHV0IHR5cGVcbiAqIEByZXR1cm4gdmFsdWUgY29udmVydGVkIHRvIGFtb3VudFR5cGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvVE51bWJlcjxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50PihcbiAgdmFsdWU6IG51bWJlciB8IGJpZ2ludCB8IHN0cmluZyxcbiAgYW1vdW50VHlwZTogJ251bWJlcicgfCAnYmlnaW50J1xuKTogVE51bWJlciB7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09IGFtb3VudFR5cGUpIHtcbiAgICByZXR1cm4gdmFsdWUgYXMgVE51bWJlcjtcbiAgfVxuICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgIHRocm93IG5ldyBFcnJvcignaW5wdXQgdmFsdWUgY2Fubm90IGJlIHVuZGVmaW5lZCcpO1xuICB9XG4gIGlmIChhbW91bnRUeXBlID09PSAnbnVtYmVyJykge1xuICAgIGNvbnN0IG51bWJlclZhbHVlID0gTnVtYmVyKHZhbHVlKTtcbiAgICBpZiAoIU51bWJlci5pc1NhZmVJbnRlZ2VyKG51bWJlclZhbHVlKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdpbnB1dCB2YWx1ZSBjYW5ub3QgYmUgY29udmVydGVkIHRvIHNhZmUgaW50ZWdlciBudW1iZXInKTtcbiAgICB9XG4gICAgcmV0dXJuIE51bWJlcih2YWx1ZSkgYXMgVE51bWJlcjtcbiAgfVxuICBpZiAoYW1vdW50VHlwZSA9PT0gJ2JpZ2ludCcpIHtcbiAgICByZXR1cm4gQmlnSW50KHZhbHVlKSBhcyBUTnVtYmVyO1xuICB9XG4gIHRocm93IG5ldyBFcnJvcignYW1vdW50VHlwZSBtdXN0IGJlIGVpdGhlciBcIm51bWJlclwiIG9yIFwiYmlnaW50XCInKTtcbn1cbiJdfQ==
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG51bWJlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iaXRnby90bnVtYmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBT0EsOEJBcUJDO0FBNUJEOzs7Ozs7R0FNRztBQUNILFNBQWdCLFNBQVMsQ0FDdkIsS0FBK0IsRUFDL0IsVUFBK0I7SUFFL0IsSUFBSSxPQUFPLEtBQUssS0FBSyxVQUFVLEVBQUUsQ0FBQztRQUNoQyxPQUFPLEtBQWdCLENBQUM7SUFDMUIsQ0FBQztJQUNELElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ3hCLE1BQU0sSUFBSSxLQUFLLENBQUMsaUNBQWlDLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBQ0QsSUFBSSxVQUFVLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDNUIsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDdkMsTUFBTSxJQUFJLEtBQUssQ0FBQyx3REFBd0QsQ0FBQyxDQUFDO1FBQzVFLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQVksQ0FBQztJQUNsQyxDQUFDO0lBQ0QsSUFBSSxVQUFVLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDNUIsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFZLENBQUM7SUFDbEMsQ0FBQztJQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsZ0RBQWdELENBQUMsQ0FBQztBQUNwRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb252ZXJ0IGlucHV0IHRvIGJpZ2ludCBvciBudW1iZXIuXG4gKiBUaHJvd3MgZXJyb3IgaWYgaW5wdXQgY2Fubm90IGJlIGNvbnZlcnRlZCB0byBhIHNhZmUgaW50ZWdlciBudW1iZXIuXG4gKiBAcGFyYW0gdmFsdWUgLSBpbnB1dCB2YWx1ZVxuICogQHBhcmFtIGFtb3VudFR5cGUgLSBkZXNpcmVkIG91dHB1dCB0eXBlXG4gKiBAcmV0dXJuIHZhbHVlIGNvbnZlcnRlZCB0byBhbW91bnRUeXBlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b1ROdW1iZXI8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludD4oXG4gIHZhbHVlOiBudW1iZXIgfCBiaWdpbnQgfCBzdHJpbmcsXG4gIGFtb3VudFR5cGU6ICdudW1iZXInIHwgJ2JpZ2ludCdcbik6IFROdW1iZXIge1xuICBpZiAodHlwZW9mIHZhbHVlID09PSBhbW91bnRUeXBlKSB7XG4gICAgcmV0dXJuIHZhbHVlIGFzIFROdW1iZXI7XG4gIH1cbiAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2lucHV0IHZhbHVlIGNhbm5vdCBiZSB1bmRlZmluZWQnKTtcbiAgfVxuICBpZiAoYW1vdW50VHlwZSA9PT0gJ251bWJlcicpIHtcbiAgICBjb25zdCBudW1iZXJWYWx1ZSA9IE51bWJlcih2YWx1ZSk7XG4gICAgaWYgKCFOdW1iZXIuaXNTYWZlSW50ZWdlcihudW1iZXJWYWx1ZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignaW5wdXQgdmFsdWUgY2Fubm90IGJlIGNvbnZlcnRlZCB0byBzYWZlIGludGVnZXIgbnVtYmVyJyk7XG4gICAgfVxuICAgIHJldHVybiBOdW1iZXIodmFsdWUpIGFzIFROdW1iZXI7XG4gIH1cbiAgaWYgKGFtb3VudFR5cGUgPT09ICdiaWdpbnQnKSB7XG4gICAgcmV0dXJuIEJpZ0ludCh2YWx1ZSkgYXMgVE51bWJlcjtcbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoJ2Ftb3VudFR5cGUgbXVzdCBiZSBlaXRoZXIgXCJudW1iZXJcIiBvciBcImJpZ2ludFwiJyk7XG59XG4iXX0=
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import { TxOutput } from 'bitcoinjs-lib';
3
2
  import { Network } from '../networks';
4
3
  import { UtxoPsbt, PsbtOpts } from './UtxoPsbt';
@@ -24,7 +23,20 @@ export declare function createTransactionFromHex(hex: string, network: Network,
24
23
  export declare function createTransactionFromHex<TNumber extends number | bigint = number>(hex: string, network: Network, p?: {
25
24
  amountType?: 'number' | 'bigint';
26
25
  } | 'number' | 'bigint'): UtxoTransaction<TNumber>;
26
+ /**
27
+ * @param buf - must start with the PSBT magic bytes
28
+ * @param network
29
+ * @param bip32PathsAbsolute
30
+ */
27
31
  export declare function createPsbtFromBuffer(buf: Buffer, network: Network, bip32PathsAbsolute?: boolean): UtxoPsbt;
32
+ /**
33
+ * Like createPsbtFromBuffer, but attempts hex and base64 decoding as well.
34
+ *
35
+ * @param buf
36
+ * @param network
37
+ * @param bip32PathsAbsolute
38
+ */
39
+ export declare function createPsbtDecode(buf: Buffer | string, network: Network, bip32PathsAbsolute?: boolean): UtxoPsbt;
28
40
  export declare function createPsbtFromHex(hex: string, network: Network, bip32PathsAbsolute?: boolean): UtxoPsbt;
29
41
  export declare function createPsbtFromTransaction(tx: UtxoTransaction<bigint>, prevOuts: TxOutput<bigint>[]): UtxoPsbt;
30
42
  export declare function getDefaultTransactionVersion(network: Network): number;
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/bitgo/transaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/bitgo/transaction.ts"],"names":[],"mappings":"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"}