@bitgo-beta/utxo-lib 8.0.3-beta.182 → 8.0.3-beta.1821

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 +126 -120
  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 +11 -8
  60. package/dist/src/bitgo/outputScripts.d.ts.map +1 -1
  61. package/dist/src/bitgo/outputScripts.js +47 -44
  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 +22 -23
  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 +53 -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 +0 -3
  91. package/dist/src/bitgo/wallet/Unspent.d.ts.map +1 -1
  92. package/dist/src/bitgo/wallet/Unspent.js +47 -44
  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 +24 -15
  121. package/dist/src/bitgo/zcash/ZcashTransaction.d.ts +7 -2
  122. package/dist/src/bitgo/zcash/ZcashTransaction.d.ts.map +1 -1
  123. package/dist/src/bitgo/zcash/ZcashTransaction.js +58 -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 +10 -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 +69 -15
  211. package/dist/src/testutil/psbt.d.ts.map +1 -1
  212. package/dist/src/testutil/psbt.js +140 -50
  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,6 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createTransactionBuilderFromTransaction = exports.createTransactionBuilderForNetwork = exports.createPsbtForNetwork = exports.setPsbtDefaults = exports.setTransactionBuilderDefaults = exports.getDefaultTransactionVersion = exports.createPsbtFromTransaction = exports.createPsbtFromHex = exports.createPsbtFromBuffer = exports.createTransactionFromHex = exports.createTransactionFromBuffer = void 0;
3
+ exports.createTransactionFromBuffer = createTransactionFromBuffer;
4
+ exports.createTransactionFromHex = createTransactionFromHex;
5
+ exports.createPsbtFromBuffer = createPsbtFromBuffer;
6
+ exports.createPsbtDecode = createPsbtDecode;
7
+ exports.createPsbtFromHex = createPsbtFromHex;
8
+ exports.createPsbtFromTransaction = createPsbtFromTransaction;
9
+ exports.getDefaultTransactionVersion = getDefaultTransactionVersion;
10
+ exports.setTransactionBuilderDefaults = setTransactionBuilderDefaults;
11
+ exports.setPsbtDefaults = setPsbtDefaults;
12
+ exports.createPsbtForNetwork = createPsbtForNetwork;
13
+ exports.createTransactionBuilderForNetwork = createTransactionBuilderForNetwork;
14
+ exports.createTransactionBuilderFromTransaction = createTransactionBuilderFromTransaction;
4
15
  const networks_1 = require("../networks");
5
16
  const UtxoPsbt_1 = require("./UtxoPsbt");
6
17
  const UtxoTransaction_1 = require("./UtxoTransaction");
@@ -12,6 +23,7 @@ const ZcashPsbt_1 = require("./zcash/ZcashPsbt");
12
23
  const ZcashTransactionBuilder_1 = require("./zcash/ZcashTransactionBuilder");
13
24
  const ZcashTransaction_1 = require("./zcash/ZcashTransaction");
14
25
  const litecoin_1 = require("./litecoin");
26
+ const PsbtUtil_1 = require("./PsbtUtil");
15
27
  function createTransactionFromBuffer(buf, network, { version, amountType } = {}, deprecatedAmountType) {
16
28
  if (amountType) {
17
29
  if (deprecatedAmountType && amountType !== deprecatedAmountType) {
@@ -26,7 +38,7 @@ function createTransactionFromBuffer(buf, network, { version, amountType } = {},
26
38
  amountType = 'number';
27
39
  }
28
40
  }
29
- switch (networks_1.getMainnet(network)) {
41
+ switch ((0, networks_1.getMainnet)(network)) {
30
42
  case networks_1.networks.bitcoin:
31
43
  case networks_1.networks.bitcoincash:
32
44
  case networks_1.networks.bitcoinsv:
@@ -44,16 +56,22 @@ function createTransactionFromBuffer(buf, network, { version, amountType } = {},
44
56
  /* istanbul ignore next */
45
57
  throw new Error(`invalid network`);
46
58
  }
47
- exports.createTransactionFromBuffer = createTransactionFromBuffer;
48
59
  function createTransactionFromHex(hex, network, p) {
49
60
  if (typeof p === 'string') {
50
61
  p = { amountType: p };
51
62
  }
52
63
  return createTransactionFromBuffer(Buffer.from(hex, 'hex'), network, p);
53
64
  }
54
- exports.createTransactionFromHex = createTransactionFromHex;
65
+ /**
66
+ * @param buf - must start with the PSBT magic bytes
67
+ * @param network
68
+ * @param bip32PathsAbsolute
69
+ */
55
70
  function createPsbtFromBuffer(buf, network, bip32PathsAbsolute = false) {
56
- switch (networks_1.getMainnet(network)) {
71
+ if (!(0, PsbtUtil_1.isPsbt)(buf)) {
72
+ throw new Error(`invalid psbt (does not start with 'psbt' magic bytes)`);
73
+ }
74
+ switch ((0, networks_1.getMainnet)(network)) {
57
75
  case networks_1.networks.bitcoin:
58
76
  case networks_1.networks.bitcoincash:
59
77
  case networks_1.networks.bitcoinsv:
@@ -71,13 +89,21 @@ function createPsbtFromBuffer(buf, network, bip32PathsAbsolute = false) {
71
89
  /* istanbul ignore next */
72
90
  throw new Error(`invalid network`);
73
91
  }
74
- exports.createPsbtFromBuffer = createPsbtFromBuffer;
92
+ /**
93
+ * Like createPsbtFromBuffer, but attempts hex and base64 decoding as well.
94
+ *
95
+ * @param buf
96
+ * @param network
97
+ * @param bip32PathsAbsolute
98
+ */
99
+ function createPsbtDecode(buf, network, bip32PathsAbsolute = false) {
100
+ return createPsbtFromBuffer((0, PsbtUtil_1.toPsbtBuffer)(buf), network, bip32PathsAbsolute);
101
+ }
75
102
  function createPsbtFromHex(hex, network, bip32PathsAbsolute = false) {
76
103
  return createPsbtFromBuffer(Buffer.from(hex, 'hex'), network, bip32PathsAbsolute);
77
104
  }
78
- exports.createPsbtFromHex = createPsbtFromHex;
79
105
  function createPsbtFromTransaction(tx, prevOuts) {
80
- switch (networks_1.getMainnet(tx.network)) {
106
+ switch ((0, networks_1.getMainnet)(tx.network)) {
81
107
  case networks_1.networks.bitcoin:
82
108
  case networks_1.networks.bitcoincash:
83
109
  case networks_1.networks.bitcoinsv:
@@ -95,23 +121,26 @@ function createPsbtFromTransaction(tx, prevOuts) {
95
121
  /* istanbul ignore next */
96
122
  throw new Error(`invalid network`);
97
123
  }
98
- exports.createPsbtFromTransaction = createPsbtFromTransaction;
99
124
  function getDefaultTransactionVersion(network) {
100
- switch (networks_1.getMainnet(network)) {
125
+ // Mainnet activated NU6.2 at block 3364600; testnet has not (activation 4052000),
126
+ // so testnet still builds NU6.1 transactions.
127
+ if (network === networks_1.networks.zcashTest) {
128
+ return ZcashTransaction_1.ZcashTransaction.VERSION4_BRANCH_NU6_1;
129
+ }
130
+ switch ((0, networks_1.getMainnet)(network)) {
101
131
  case networks_1.networks.bitcoincash:
102
132
  case networks_1.networks.bitcoinsv:
103
133
  case networks_1.networks.bitcoingold:
104
134
  case networks_1.networks.ecash:
105
135
  return 2;
106
136
  case networks_1.networks.zcash:
107
- return ZcashTransaction_1.ZcashTransaction.VERSION4_BRANCH_NU5;
137
+ return ZcashTransaction_1.ZcashTransaction.VERSION4_BRANCH_NU6_2;
108
138
  default:
109
139
  return 1;
110
140
  }
111
141
  }
112
- exports.getDefaultTransactionVersion = getDefaultTransactionVersion;
113
142
  function setTransactionBuilderDefaults(txb, network, { version = getDefaultTransactionVersion(network) } = {}) {
114
- switch (networks_1.getMainnet(network)) {
143
+ switch ((0, networks_1.getMainnet)(network)) {
115
144
  case networks_1.networks.bitcoincash:
116
145
  case networks_1.networks.bitcoinsv:
117
146
  case networks_1.networks.bitcoingold:
@@ -130,9 +159,8 @@ function setTransactionBuilderDefaults(txb, network, { version = getDefaultTrans
130
159
  }
131
160
  }
132
161
  }
133
- exports.setTransactionBuilderDefaults = setTransactionBuilderDefaults;
134
162
  function setPsbtDefaults(psbt, network, { version = getDefaultTransactionVersion(network) } = {}) {
135
- switch (networks_1.getMainnet(network)) {
163
+ switch ((0, networks_1.getMainnet)(network)) {
136
164
  case networks_1.networks.bitcoincash:
137
165
  case networks_1.networks.bitcoinsv:
138
166
  case networks_1.networks.bitcoingold:
@@ -145,7 +173,13 @@ function setPsbtDefaults(psbt, network, { version = getDefaultTransactionVersion
145
173
  if (![
146
174
  ZcashTransaction_1.ZcashTransaction.VERSION4_BRANCH_CANOPY,
147
175
  ZcashTransaction_1.ZcashTransaction.VERSION4_BRANCH_NU5,
176
+ ZcashTransaction_1.ZcashTransaction.VERSION4_BRANCH_NU6,
177
+ ZcashTransaction_1.ZcashTransaction.VERSION4_BRANCH_NU6_1,
178
+ ZcashTransaction_1.ZcashTransaction.VERSION4_BRANCH_NU6_2,
148
179
  ZcashTransaction_1.ZcashTransaction.VERSION5_BRANCH_NU5,
180
+ ZcashTransaction_1.ZcashTransaction.VERSION5_BRANCH_NU6,
181
+ ZcashTransaction_1.ZcashTransaction.VERSION5_BRANCH_NU6_1,
182
+ ZcashTransaction_1.ZcashTransaction.VERSION5_BRANCH_NU6_2,
149
183
  ].includes(version)) {
150
184
  throw new Error(`invalid version`);
151
185
  }
@@ -160,10 +194,9 @@ function setPsbtDefaults(psbt, network, { version = getDefaultTransactionVersion
160
194
  psbt.setVersion(version);
161
195
  }
162
196
  }
163
- exports.setPsbtDefaults = setPsbtDefaults;
164
197
  function createPsbtForNetwork(psbtOpts, { version } = {}) {
165
198
  let psbt;
166
- switch (networks_1.getMainnet(psbtOpts.network)) {
199
+ switch ((0, networks_1.getMainnet)(psbtOpts.network)) {
167
200
  case networks_1.networks.bitcoin:
168
201
  case networks_1.networks.bitcoincash:
169
202
  case networks_1.networks.bitcoinsv:
@@ -191,10 +224,9 @@ function createPsbtForNetwork(psbtOpts, { version } = {}) {
191
224
  setPsbtDefaults(psbt, psbtOpts.network, { version });
192
225
  return psbt;
193
226
  }
194
- exports.createPsbtForNetwork = createPsbtForNetwork;
195
227
  function createTransactionBuilderForNetwork(network, { version } = {}) {
196
228
  let txb;
197
- switch (networks_1.getMainnet(network)) {
229
+ switch ((0, networks_1.getMainnet)(network)) {
198
230
  case networks_1.networks.bitcoin:
199
231
  case networks_1.networks.bitcoincash:
200
232
  case networks_1.networks.bitcoinsv:
@@ -221,9 +253,8 @@ function createTransactionBuilderForNetwork(network, { version } = {}) {
221
253
  setTransactionBuilderDefaults(txb, network, { version });
222
254
  return txb;
223
255
  }
224
- exports.createTransactionBuilderForNetwork = createTransactionBuilderForNetwork;
225
256
  function createTransactionBuilderFromTransaction(tx, prevOutputs) {
226
- switch (networks_1.getMainnet(tx.network)) {
257
+ switch ((0, networks_1.getMainnet)(tx.network)) {
227
258
  case networks_1.networks.bitcoin:
228
259
  case networks_1.networks.bitcoincash:
229
260
  case networks_1.networks.bitcoinsv:
@@ -240,5 +271,4 @@ function createTransactionBuilderFromTransaction(tx, prevOutputs) {
240
271
  }
241
272
  throw new Error(`invalid network`);
242
273
  }
243
- exports.createTransactionBuilderFromTransaction = createTransactionBuilderFromTransaction;
244
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYml0Z28vdHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0EsMENBQTREO0FBRTVELHlDQUFnRDtBQUNoRCx1REFBb0Q7QUFDcEQscUVBQWtFO0FBQ2xFLDhDQUEyQztBQUMzQyw0REFBeUQ7QUFDekQsMEVBQXVFO0FBQ3ZFLGlEQUE4QztBQUM5Qyw2RUFBMEU7QUFDMUUsK0RBQTBFO0FBQzFFLHlDQUEyRjtBQVkzRixTQUFnQiwyQkFBMkIsQ0FDekMsR0FBVyxFQUNYLE9BQWdCLEVBQ2hCLEVBQUUsT0FBTyxFQUFFLFVBQVUsS0FBNkQsRUFBRSxFQUNwRixvQkFBMEM7SUFFMUMsSUFBSSxVQUFVLEVBQUU7UUFDZCxJQUFJLG9CQUFvQixJQUFJLFVBQVUsS0FBSyxvQkFBb0IsRUFBRTtZQUMvRCxNQUFNLElBQUksS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUM7U0FDdEM7S0FDRjtTQUFNO1FBQ0wsSUFBSSxvQkFBb0IsRUFBRTtZQUN4QixVQUFVLEdBQUcsb0JBQW9CLENBQUM7U0FDbkM7YUFBTTtZQUNMLFVBQVUsR0FBRyxRQUFRLENBQUM7U0FDdkI7S0FDRjtJQUNELFFBQVEscUJBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRTtRQUMzQixLQUFLLG1CQUFRLENBQUMsT0FBTyxDQUFDO1FBQ3RCLEtBQUssbUJBQVEsQ0FBQyxXQUFXLENBQUM7UUFDMUIsS0FBSyxtQkFBUSxDQUFDLFNBQVMsQ0FBQztRQUN4QixLQUFLLG1CQUFRLENBQUMsV0FBVyxDQUFDO1FBQzFCLEtBQUssbUJBQVEsQ0FBQyxRQUFRLENBQUM7UUFDdkIsS0FBSyxtQkFBUSxDQUFDLEtBQUs7WUFDakIsT0FBTyxpQ0FBZSxDQUFDLFVBQVUsQ0FBVSxHQUFHLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM5RSxLQUFLLG1CQUFRLENB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LElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFDckMsQ0FBQztBQWpDRCwwRkFpQ0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQgbm8tcmVkZWNsYXJlOiAwICovXG5pbXBvcnQgeyBUeE91dHB1dCB9IGZyb20gJ2JpdGNvaW5qcy1saWInO1xuXG5pbXBvcnQgeyBuZXR3b3JrcywgTmV0d29yaywgZ2V0TWFpbm5ldCB9IGZyb20gJy4uL25ldHdvcmtzJztcblxuaW1wb3J0IHsgVXR4b1BzYnQsIFBzYnRPcHRzIH0gZnJvbSAnLi9VdHhvUHNidCc7XG5pbXBvcnQgeyBVdHhvVHJhbnNhY3Rpb24gfSBmcm9tICcuL1V0eG9UcmFuc2FjdGlvbic7XG5pbXBvcnQgeyBVdHhvVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi9VdHhvVHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IERhc2hQc2J0IH0gZnJvbSAnLi9kYXNoL0Rhc2hQc2J0JztcbmltcG9ydCB7IERhc2hUcmFuc2FjdGlvbiB9IGZyb20gJy4vZGFzaC9EYXNoVHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgRGFzaFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vZGFzaC9EYXNoVHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IFpjYXNoUHNidCB9IGZyb20gJy4vemNhc2gvWmNhc2hQc2J0JztcbmltcG9ydCB7IFpjYXNoVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi96Y2FzaC9aY2FzaFRyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBaY2FzaE5ldHdvcmssIFpjYXNoVHJhbnNhY3Rpb24gfSBmcm9tICcuL3pjYXNoL1pjYXNoVHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgTGl0ZWNvaW5Qc2J0LCBMaXRlY29pblRyYW5zYWN0aW9uLCBMaXRlY29pblRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vbGl0ZWNvaW4nO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVHJhbnNhY3Rpb25Gcm9tQnVmZmVyKFxuICBidWY6IEJ1ZmZlcixcbiAgbmV0d29yazogTmV0d29yayxcbiAgcGFyYW1zOiB7IHZlcnNpb24/OiBudW1iZXI7IGFtb3VudFR5cGU6ICdiaWdpbnQnIH1cbik6IFV0eG9UcmFuc2FjdGlvbjxiaWdpbnQ+O1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRyYW5zYWN0aW9uRnJvbUJ1ZmZlcjxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50PihcbiAgYnVmOiBCdWZmZXIsXG4gIG5ldHdvcms6IE5ldHdvcmssXG4gIHBhcmFtcz86IHsgdmVyc2lvbj86IG51bWJlcjsgYW1vdW50VHlwZT86ICdudW1iZXInIHwgJ2JpZ2ludCcgfVxuKTogVXR4b1RyYW5zYWN0aW9uPFROdW1iZXI+O1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRyYW5zYWN0aW9uRnJvbUJ1ZmZlcjxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50ID0gbnVtYmVyPihcbiAgYnVmOiBCdWZmZXIsXG4gIG5ldHdvcms6IE5ldHdvcmssXG4gIHsgdmVyc2lvbiwgYW1vdW50VHlwZSB9OiB7IHZlcnNpb24/OiBudW1iZXI7IGFtb3VudFR5cGU/OiAnbnVtYmVyJyB8ICdiaWdpbnQnIH0gPSB7fSxcbiAgZGVwcmVjYXRlZEFtb3VudFR5cGU/OiAnbnVtYmVyJyB8ICdiaWdpbnQnXG4pOiBVdHhvVHJhbnNhY3Rpb248VE51bWJlcj4ge1xuICBpZiAoYW1vdW50VHlwZSkge1xuICAgIGlmIChkZXByZWNhdGVkQW1vdW50VHlwZSAmJiBhbW91bnRUeXBlICE9PSBkZXByZWNhdGVkQW1vdW50VHlwZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIGFyZ3VtZW50c2ApO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBpZiAoZGVwcmVjYXRlZEFtb3VudFR5cGUpIHtcbiAgICAgIGFtb3VudFR5cGUgPSBkZXByZWNhdGVkQW1vdW50VHlwZTtcbiAgICB9IGVsc2Uge1xuICAgICAgYW1vdW50VHlwZSA9ICdudW1iZXInO1xuICAgIH1cbiAgfVxuICBzd2l0Y2ggKGdldE1haW5uZXQobmV0d29yaykpIHtcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW46XG4gICAgY2FzZSBuZXR3b3Jrcy5iaXRjb2luY2FzaDpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5zdjpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5nb2xkOlxuICAgIGNhc2UgbmV0d29ya3MuZG9nZWNvaW46XG4gICAgY2FzZSBuZXR3b3Jrcy5lY2FzaDpcbiAgICAgIHJldHVybiBVdHhvVHJhbnNhY3Rpb24uZnJvbUJ1ZmZlcjxUTnVtYmVyPihidWYsIGZhbHNlLCBhbW91bnRUeXBlLCBuZXR3b3JrKTtcbiAgICBjYXNlIG5ldHdvcmtzLmxpdGVjb2luOlxuICAgICAgcmV0dXJuIExpdGVjb2luVHJhbnNhY3Rpb24uZnJvbUJ1ZmZlcjxUTnVtYmVyPihidWYsIGZhbHNlLCBhbW91bnRUeXBlLCBuZXR3b3JrKTtcbiAgICBjYXNlIG5ldHdvcmtzLmRhc2g6XG4gICAgICByZXR1cm4gRGFzaFRyYW5zYWN0aW9uLmZyb21CdWZmZXI8VE51bWJlcj4oYnVmLCBmYWxzZSwgYW1vdW50VHlwZSwgbmV0d29yayk7XG4gICAgY2FzZSBuZXR3b3Jrcy56Y2FzaDpcbiAgICAgIHJldHVybiBaY2FzaFRyYW5zYWN0aW9uLmZyb21CdWZmZXJXaXRoVmVyc2lvbjxUTnVtYmVyPihidWYsIG5ldHdvcmsgYXMgWmNhc2hOZXR3b3JrLCB2ZXJzaW9uLCBhbW91bnRUeXBlKTtcbiAgfVxuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBuZXR3b3JrYCk7XG59XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4vKiogQGRlcHJlY2F0ZWQgLSB1c2UgY3JlYXRlVHJhbnNhY3Rpb25Gcm9tQnVmZmVyIGluc3RlYWQgKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUcmFuc2FjdGlvbkZyb21IZXgoXG4gIGhleDogc3RyaW5nLFxuICBuZXR3b3JrOiBOZXR3b3JrLFxuICBwOiB7IGFtb3VudFR5cGU6ICdiaWdpbnQnIH1cbik6IFV0eG9UcmFuc2FjdGlvbjxiaWdpbnQ+O1xuLyoqIEBkZXByZWNhdGVkIC0gdXNlIGNyZWF0ZVRyYW5zYWN0aW9uRnJvbUJ1ZmZlciBpbnN0ZWFkICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVHJhbnNhY3Rpb25Gcm9tSGV4KGhleDogc3RyaW5nLCBuZXR3b3JrOiBOZXR3b3JrLCBwOiB7IGFtb3VudFR5cGU6ICdudW1iZXInIH0pOiBVdHhvVHJhbnNhY3Rpb247XG4vKiogQGRlcHJlY2F0ZWQgLSB1c2UgY3JlYXRlVHJhbnNhY3Rpb25Gcm9tQnVmZmVyIGluc3RlYWQgKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUcmFuc2FjdGlvbkZyb21IZXg8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludCA9IG51bWJlcj4oXG4gIGhleDogc3RyaW5nLFxuICBuZXR3b3JrOiBOZXR3b3JrLFxuICBwPzogeyBhbW91bnRUeXBlPzogJ251bWJlcicgfCAnYmlnaW50JyB9IHwgJ251bWJlcicgfCAnYmlnaW50J1xuKTogVXR4b1RyYW5zYWN0aW9uPFROdW1iZXI+O1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRyYW5zYWN0aW9uRnJvbUhleDxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50ID0gbnVtYmVyPihcbiAgaGV4OiBzdHJpbmcsXG4gIG5ldHdvcms6IE5ldHdvcmssXG4gIHA/OiB7IGFtb3VudFR5cGU/OiAnbnVtYmVyJyB8ICdiaWdpbnQnIH0gfCAnbnVtYmVyJyB8ICdiaWdpbnQnXG4pOiBVdHhvVHJhbnNhY3Rpb248VE51bWJlcj4ge1xuICBpZiAodHlwZW9mIHAgPT09ICdzdHJpbmcnKSB7XG4gICAgcCA9IHsgYW1vdW50VHlwZTogcCB9O1xuICB9XG4gIHJldHVybiBjcmVhdGVUcmFuc2FjdGlvbkZyb21CdWZmZXI8VE51bWJlcj4oQnVmZmVyLmZyb20oaGV4LCAnaGV4JyksIG5ldHdvcmssIHApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUHNidEZyb21CdWZmZXIoYnVmOiBCdWZmZXIsIG5ldHdvcms6IE5ldHdvcmssIGJpcDMyUGF0aHNBYnNvbHV0ZSA9IGZhbHNlKTogVXR4b1BzYnQge1xuICBzd2l0Y2ggKGdldE1haW5uZXQobmV0d29yaykpIHtcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW46XG4gICAgY2FzZSBuZXR3b3Jrcy5iaXRjb2luY2FzaDpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5zdjpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5nb2xkOlxuICAgIGNhc2UgbmV0d29ya3MuZG9nZWNvaW46XG4gICAgY2FzZSBuZXR3b3Jrcy5lY2FzaDpcbiAgICAgIHJldHVybiBVdHhvUHNidC5mcm9tQnVmZmVyKGJ1ZiwgeyBuZXR3b3JrLCBiaXAzMlBhdGhzQWJzb2x1dGUgfSk7XG4gICAgY2FzZSBuZXR3b3Jrcy5saXRlY29pbjpcbiAgICAgIHJldHVybiBMaXRlY29pblBzYnQuZnJvbUJ1ZmZlcihidWYsIHsgbmV0d29yaywgYmlwMzJQYXRoc0Fic29sdXRlIH0pO1xuICAgIGNhc2UgbmV0d29ya3MuZGFzaDpcbiAgICAgIHJldHVybiBEYXNoUHNidC5mcm9tQnVmZmVyKGJ1ZiwgeyBuZXR3b3JrLCBiaXAzMlBhdGhzQWJzb2x1dGUgfSk7XG4gICAgY2FzZSBuZXR3b3Jrcy56Y2FzaDpcbiAgICAgIHJldHVybiBaY2FzaFBzYnQuZnJvbUJ1ZmZlcihidWYsIHsgbmV0d29yaywgYmlwMzJQYXRoc0Fic29sdXRlIH0pO1xuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIG5ldHdvcmtgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVBzYnRGcm9tSGV4KGhleDogc3RyaW5nLCBuZXR3b3JrOiBOZXR3b3JrLCBiaXAzMlBhdGhzQWJzb2x1dGUgPSBmYWxzZSk6IFV0eG9Qc2J0IHtcbiAgcmV0dXJuIGNyZWF0ZVBzYnRGcm9tQnVmZmVyKEJ1ZmZlci5mcm9tKGhleCwgJ2hleCcpLCBuZXR3b3JrLCBiaXAzMlBhdGhzQWJzb2x1dGUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUHNidEZyb21UcmFuc2FjdGlvbih0eDogVXR4b1RyYW5zYWN0aW9uPGJpZ2ludD4sIHByZXZPdXRzOiBUeE91dHB1dDxiaWdpbnQ+W10pOiBVdHhvUHNidCB7XG4gIHN3aXRjaCAoZ2V0TWFpbm5ldCh0eC5uZXR3b3JrKSkge1xuICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbjpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5jYXNoOlxuICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbnN2OlxuICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbmdvbGQ6XG4gICAgY2FzZSBuZXR3b3Jrcy5kb2dlY29pbjpcbiAgICBjYXNlIG5ldHdvcmtzLmVjYXNoOlxuICAgICAgcmV0dXJuIFV0eG9Qc2J0LmZyb21UcmFuc2FjdGlvbih0eCwgcHJldk91dHMpO1xuICAgIGNhc2UgbmV0d29ya3MubGl0ZWNvaW46XG4gICAgICByZXR1cm4gTGl0ZWNvaW5Qc2J0LmZyb21UcmFuc2FjdGlvbih0eCwgcHJldk91dHMpO1xuICAgIGNhc2UgbmV0d29ya3MuZGFzaDpcbiAgICAgIHJldHVybiBEYXNoUHNidC5mcm9tVHJhbnNhY3Rpb24odHgsIHByZXZPdXRzKTtcbiAgICBjYXNlIG5ldHdvcmtzLnpjYXNoOlxuICAgICAgcmV0dXJuIFpjYXNoUHNidC5mcm9tVHJhbnNhY3Rpb24odHgsIHByZXZPdXRzKTtcbiAgfVxuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBuZXR3b3JrYCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREZWZhdWx0VHJhbnNhY3Rpb25WZXJzaW9uKG5ldHdvcms6IE5ldHdvcmspOiBudW1iZXIge1xuICBzd2l0Y2ggKGdldE1haW5uZXQobmV0d29yaykpIHtcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5jYXNoOlxuICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbnN2OlxuICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbmdvbGQ6XG4gICAgY2FzZSBuZXR3b3Jrcy5lY2FzaDpcbiAgICAgIHJldHVybiAyO1xuICAgIGNhc2UgbmV0d29ya3MuemNhc2g6XG4gICAgICByZXR1cm4gWmNhc2hUcmFuc2FjdGlvbi5WRVJTSU9ONF9CUkFOQ0hfTlU1O1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gMTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0VHJhbnNhY3Rpb25CdWlsZGVyRGVmYXVsdHM8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludD4oXG4gIHR4YjogVXR4b1RyYW5zYWN0aW9uQnVpbGRlcjxUTnVtYmVyPixcbiAgbmV0d29yazogTmV0d29yayxcbiAgeyB2ZXJzaW9uID0gZ2V0RGVmYXVsdFRyYW5zYWN0aW9uVmVyc2lvbihuZXR3b3JrKSB9OiB7IHZlcnNpb24/OiBudW1iZXIgfSA9IHt9XG4pOiB2b2lkIHtcbiAgc3dpdGNoIChnZXRNYWlubmV0KG5ldHdvcmspKSB7XG4gICAgY2FzZSBuZXR3b3Jrcy5iaXRjb2luY2FzaDpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5zdjpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5nb2xkOlxuICAgIGNhc2UgbmV0d29ya3MuZWNhc2g6XG4gICAgICBpZiAodmVyc2lvbiAhPT0gMikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgdmVyc2lvbmApO1xuICAgICAgfVxuICAgICAgdHhiLnNldFZlcnNpb24odmVyc2lvbik7XG4gICAgICBicmVhaztcbiAgICBjYXNlIG5ldHdvcmtzLnpjYXNoOlxuICAgICAgKHR4YiBhcyBaY2FzaFRyYW5zYWN0aW9uQnVpbGRlcjxUTnVtYmVyPikuc2V0RGVmYXVsdHNGb3JWZXJzaW9uKG5ldHdvcmssIHZlcnNpb24pO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIGlmICh2ZXJzaW9uICE9PSAxKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCB2ZXJzaW9uYCk7XG4gICAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldFBzYnREZWZhdWx0cyhcbiAgcHNidDogVXR4b1BzYnQsXG4gIG5ldHdvcms6IE5ldHdvcmssXG4gIHsgdmVyc2lvbiA9IGdldERlZmF1bHRUcmFuc2FjdGlvblZlcnNpb24obmV0d29yaykgfTogeyB2ZXJzaW9uPzogbnVtYmVyIH0gPSB7fVxuKTogdm9pZCB7XG4gIHN3aXRjaCAoZ2V0TWFpbm5ldChuZXR3b3JrKSkge1xuICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbmNhc2g6XG4gICAgY2FzZSBuZXR3b3Jrcy5iaXRjb2luc3Y6XG4gICAgY2FzZSBuZXR3b3Jrcy5iaXRjb2luZ29sZDpcbiAgICBjYXNlIG5ldHdvcmtzLmVjYXNoOlxuICAgICAgaWYgKHZlcnNpb24gIT09IDIpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIHZlcnNpb25gKTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgbmV0d29ya3MuemNhc2g6XG4gICAgICBpZiAoXG4gICAgICAgICFbXG4gICAgICAgICAgWmNhc2hUcmFuc2FjdGlvbi5WRVJTSU9ONF9CUkFOQ0hfQ0FOT1BZLFxuICAgICAgICAgIFpjYXNoVHJhbnNhY3Rpb24uVkVSU0lPTjRfQlJBTkNIX05VNSxcbiAgICAgICAgICBaY2FzaFRyYW5zYWN0aW9uLlZFUlNJT041X0JSQU5DSF9OVTUsXG4gICAgICAgIF0uaW5jbHVkZXModmVyc2lvbilcbiAgICAgICkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgdmVyc2lvbmApO1xuICAgICAgfVxuICAgICAgKHBzYnQgYXMgWmNhc2hQc2J0KS5zZXREZWZhdWx0c0ZvclZlcnNpb24obmV0d29yaywgdmVyc2lvbik7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgaWYgKHZlcnNpb24gIT09IDEpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIHZlcnNpb25gKTtcbiAgICAgIH1cbiAgICAgIC8vIEZJWE1FOiBzZXQgdmVyc2lvbiBoZXJlLCBiZWNhdXNlIHRoZXJlJ3MgYSBidWcgaW4gdGhlIHVwc3RyZWFtIFBTQlRcbiAgICAgIC8vIHRoYXQgZGVmYXVsdHMgdHJhbnNhY3Rpb25zIHRvIHYyLlxuICAgICAgcHNidC5zZXRWZXJzaW9uKHZlcnNpb24pO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQc2J0Rm9yTmV0d29yayhwc2J0T3B0czogUHNidE9wdHMsIHsgdmVyc2lvbiB9OiB7IHZlcnNpb24/OiBudW1iZXIgfSA9IHt9KTogVXR4b1BzYnQge1xuICBsZXQgcHNidDtcblxuICBzd2l0Y2ggKGdldE1haW5uZXQocHNidE9wdHMubmV0d29yaykpIHtcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW46XG4gICAgY2FzZSBuZXR3b3Jrcy5iaXRjb2luY2FzaDpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5zdjpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5nb2xkOlxuICAgIGNhc2UgbmV0d29ya3MuZG9nZWNvaW46XG4gICAgY2FzZSBuZXR3b3Jrcy5lY2FzaDoge1xuICAgICAgcHNidCA9IFV0eG9Qc2J0LmNyZWF0ZVBzYnQocHNidE9wdHMpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGNhc2UgbmV0d29ya3MubGl0ZWNvaW46IHtcbiAgICAgIHBzYnQgPSBMaXRlY29pblBzYnQuY3JlYXRlUHNidChwc2J0T3B0cyk7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgY2FzZSBuZXR3b3Jrcy5kYXNoOiB7XG4gICAgICBwc2J0ID0gRGFzaFBzYnQuY3JlYXRlUHNidChwc2J0T3B0cyk7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgY2FzZSBuZXR3b3Jrcy56Y2FzaDoge1xuICAgICAgcHNidCA9IFpjYXNoUHNidC5jcmVhdGVQc2J0KHBzYnRPcHRzKTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKGB1bnN1cHBvcnRlZCBuZXR3b3JrYCk7XG4gIH1cblxuICBzZXRQc2J0RGVmYXVsdHMocHNidCwgcHNidE9wdHMubmV0d29yaywgeyB2ZXJzaW9uIH0pO1xuXG4gIHJldHVybiBwc2J0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVHJhbnNhY3Rpb25CdWlsZGVyRm9yTmV0d29yazxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50ID0gbnVtYmVyPihcbiAgbmV0d29yazogTmV0d29yayxcbiAgeyB2ZXJzaW9uIH06IHsgdmVyc2lvbj86IG51bWJlciB9ID0ge31cbik6IFV0eG9UcmFuc2FjdGlvbkJ1aWxkZXI8VE51bWJlcj4ge1xuICBsZXQgdHhiO1xuICBzd2l0Y2ggKGdldE1haW5uZXQobmV0d29yaykpIHtcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW46XG4gICAgY2FzZSBuZXR3b3Jrcy5iaXRjb2luY2FzaDpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5zdjpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5nb2xkOlxuICAgIGNhc2UgbmV0d29ya3MuZG9nZWNvaW46XG4gICAgY2FzZSBuZXR3b3Jrcy5lY2FzaDoge1xuICAgICAgdHhiID0gbmV3IFV0eG9UcmFuc2FjdGlvbkJ1aWxkZXI8VE51bWJlcj4obmV0d29yayk7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgY2FzZSBuZXR3b3Jrcy5saXRlY29pbjoge1xuICAgICAgdHhiID0gbmV3IExpdGVjb2luVHJhbnNhY3Rpb25CdWlsZGVyPFROdW1iZXI+KG5ldHdvcmspO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGNhc2UgbmV0d29ya3MuZGFzaDpcbiAgICAgIHR4YiA9IG5ldyBEYXNoVHJhbnNhY3Rpb25CdWlsZGVyPFROdW1iZXI+KG5ldHdvcmspO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBuZXR3b3Jrcy56Y2FzaDoge1xuICAgICAgdHhiID0gbmV3IFpjYXNoVHJhbnNhY3Rpb25CdWlsZGVyPFROdW1iZXI+KG5ldHdvcmsgYXMgWmNhc2hOZXR3b3JrKTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKGB1bnN1cHBvcnRlZCBuZXR3b3JrYCk7XG4gIH1cblxuICBzZXRUcmFuc2FjdGlvbkJ1aWxkZXJEZWZhdWx0czxUTnVtYmVyPih0eGIsIG5ldHdvcmssIHsgdmVyc2lvbiB9KTtcblxuICByZXR1cm4gdHhiO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVHJhbnNhY3Rpb25CdWlsZGVyRnJvbVRyYW5zYWN0aW9uPFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQ+KFxuICB0eDogVXR4b1RyYW5zYWN0aW9uPFROdW1iZXI+LFxuICBwcmV2T3V0cHV0cz86IFR4T3V0cHV0PFROdW1iZXI+W11cbik6IFV0eG9UcmFuc2FjdGlvbkJ1aWxkZXI8VE51bWJlcj4ge1xuICBzd2l0Y2ggKGdldE1haW5uZXQodHgubmV0d29yaykpIHtcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW46XG4gICAgY2FzZSBuZXR3b3Jrcy5iaXRjb2luY2FzaDpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5zdjpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5nb2xkOlxuICAgIGNhc2UgbmV0d29ya3MuZG9nZWNvaW46XG4gICAgY2FzZSBuZXR3b3Jrcy5lY2FzaDpcbiAgICAgIHJldHVybiBVdHhvVHJhbnNhY3Rpb25CdWlsZGVyLmZyb21UcmFuc2FjdGlvbjxUTnVtYmVyPih0eCwgdW5kZWZpbmVkLCBwcmV2T3V0cHV0cyk7XG4gICAgY2FzZSBuZXR3b3Jrcy5saXRlY29pbjpcbiAgICAgIHJldHVybiBMaXRlY29pblRyYW5zYWN0aW9uQnVpbGRlci5mcm9tVHJhbnNhY3Rpb248VE51bWJlcj4oXG4gICAgICAgIHR4IGFzIExpdGVjb2luVHJhbnNhY3Rpb248VE51bWJlcj4sXG4gICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgcHJldk91dHB1dHMgYXMgVHhPdXRwdXQ8VE51bWJlcj5bXVxuICAgICAgKTtcbiAgICBjYXNlIG5ldHdvcmtzLmRhc2g6XG4gICAgICByZXR1cm4gRGFzaFRyYW5zYWN0aW9uQnVpbGRlci5mcm9tVHJhbnNhY3Rpb248VE51bWJlcj4oXG4gICAgICAgIHR4IGFzIERhc2hUcmFuc2FjdGlvbjxUTnVtYmVyPixcbiAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICBwcmV2T3V0cHV0cyBhcyBUeE91dHB1dDxUTnVtYmVyPltdXG4gICAgICApO1xuICAgIGNhc2UgbmV0d29ya3MuemNhc2g6XG4gICAgICByZXR1cm4gWmNhc2hUcmFuc2FjdGlvbkJ1aWxkZXIuZnJvbVRyYW5zYWN0aW9uPFROdW1iZXI+KFxuICAgICAgICB0eCBhcyBaY2FzaFRyYW5zYWN0aW9uPFROdW1iZXI+LFxuICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgIHByZXZPdXRwdXRzIGFzIFR4T3V0cHV0PFROdW1iZXI+W11cbiAgICAgICk7XG4gIH1cblxuICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgbmV0d29ya2ApO1xufVxuIl19
274
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYml0Z28vdHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUEyQkEsa0VBbUNDO0FBaUJELDREQVNDO0FBT0Qsb0RBc0JDO0FBU0QsNENBRUM7QUFFRCw4Q0FFQztBQUVELDhEQW1CQztBQUVELG9FQWtCQztBQUVELHNFQXVCQztBQUVELDBDQXdDQztBQUVELG9EQWdDQztBQUVELGdGQWlDQztBQUVELDBGQWlDQztBQXJWRCwwQ0FBNEQ7QUFFNUQseUNBQWdEO0FBQ2hELHVEQUFvRDtBQUNwRCxxRUFBa0U7QUFDbEUsOENBQTJDO0FBQzNDLDREQUF5RDtBQUN6RCwwRUFBdUU7QUFDdkUsaURBQThDO0FBQzlDLDZFQUEwRTtBQUMxRSwrREFBMEU7QUFDMUUseUNBQTJGO0FBQzNGLHlDQUFrRDtBQVlsRCxTQUFnQiwyQkFBMkIsQ0FDekMsR0FBVyxFQUNYLE9BQWdCLEVBQ2hCLEVBQUUsT0FBTyxFQUFFLFVBQVUsS0FBNkQsRUFBRSxFQUNwRixvQkFBMEM7SUFFMUMsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNmLElBQUksb0JBQW9CLElBQUksVUFBVSxLQUFLLG9CQUFvQixFQUFFLENBQUM7WUFDaEUsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3ZDLENBQUM7SUFDSCxDQUFDO1NBQU0sQ0FBQztRQUNOLElBQUksb0JBQW9CLEVBQUUsQ0FBQztZQUN6QixVQUFVLEdBQUcsb0JBQW9CLENBQUM7UUFDcEMsQ0FBQzthQUFNLENBQUM7WUFDTixVQUFVLEdBQUcsUUFBUSxDQUFDO1FBQ3hCLENBQUM7SUFDSCxDQUFDO0lBQ0QsUUFBUSxJQUFBLHFCQUFVLEVBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUM1QixLQUFLLG1CQUFRLENBQUMsT0FBTyxDQUFDO1FBQ3RCLEtBQUssbUJBQVEsQ0FBQyxXQUFXLENBQUM7UUFD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QUVELE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztBQUNyQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50IG5vLXJlZGVjbGFyZTogMCAqL1xuaW1wb3J0IHsgVHhPdXRwdXQgfSBmcm9tICdiaXRjb2luanMtbGliJztcblxuaW1wb3J0IHsgbmV0d29ya3MsIE5ldHdvcmssIGdldE1haW5uZXQgfSBmcm9tICcuLi9uZXR3b3Jrcyc7XG5cbmltcG9ydCB7IFV0eG9Qc2J0LCBQc2J0T3B0cyB9IGZyb20gJy4vVXR4b1BzYnQnO1xuaW1wb3J0IHsgVXR4b1RyYW5zYWN0aW9uIH0gZnJvbSAnLi9VdHhvVHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgVXR4b1RyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vVXR4b1RyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBEYXNoUHNidCB9IGZyb20gJy4vZGFzaC9EYXNoUHNidCc7XG5pbXBvcnQgeyBEYXNoVHJhbnNhY3Rpb24gfSBmcm9tICcuL2Rhc2gvRGFzaFRyYW5zYWN0aW9uJztcbmltcG9ydCB7IERhc2hUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL2Rhc2gvRGFzaFRyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBaY2FzaFBzYnQgfSBmcm9tICcuL3pjYXNoL1pjYXNoUHNidCc7XG5pbXBvcnQgeyBaY2FzaFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vemNhc2gvWmNhc2hUcmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgWmNhc2hOZXR3b3JrLCBaY2FzaFRyYW5zYWN0aW9uIH0gZnJvbSAnLi96Y2FzaC9aY2FzaFRyYW5zYWN0aW9uJztcbmltcG9ydCB7IExpdGVjb2luUHNidCwgTGl0ZWNvaW5UcmFuc2FjdGlvbiwgTGl0ZWNvaW5UcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL2xpdGVjb2luJztcbmltcG9ydCB7IGlzUHNidCwgdG9Qc2J0QnVmZmVyIH0gZnJvbSAnLi9Qc2J0VXRpbCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUcmFuc2FjdGlvbkZyb21CdWZmZXIoXG4gIGJ1ZjogQnVmZmVyLFxuICBuZXR3b3JrOiBOZXR3b3JrLFxuICBwYXJhbXM6IHsgdmVyc2lvbj86IG51bWJlcjsgYW1vdW50VHlwZTogJ2JpZ2ludCcgfVxuKTogVXR4b1RyYW5zYWN0aW9uPGJpZ2ludD47XG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVHJhbnNhY3Rpb25Gcm9tQnVmZmVyPFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQ+KFxuICBidWY6IEJ1ZmZlcixcbiAgbmV0d29yazogTmV0d29yayxcbiAgcGFyYW1zPzogeyB2ZXJzaW9uPzogbnVtYmVyOyBhbW91bnRUeXBlPzogJ251bWJlcicgfCAnYmlnaW50JyB9XG4pOiBVdHhvVHJhbnNhY3Rpb248VE51bWJlcj47XG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVHJhbnNhY3Rpb25Gcm9tQnVmZmVyPFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQgPSBudW1iZXI+KFxuICBidWY6IEJ1ZmZlcixcbiAgbmV0d29yazogTmV0d29yayxcbiAgeyB2ZXJzaW9uLCBhbW91bnRUeXBlIH06IHsgdmVyc2lvbj86IG51bWJlcjsgYW1vdW50VHlwZT86ICdudW1iZXInIHwgJ2JpZ2ludCcgfSA9IHt9LFxuICBkZXByZWNhdGVkQW1vdW50VHlwZT86ICdudW1iZXInIHwgJ2JpZ2ludCdcbik6IFV0eG9UcmFuc2FjdGlvbjxUTnVtYmVyPiB7XG4gIGlmIChhbW91bnRUeXBlKSB7XG4gICAgaWYgKGRlcHJlY2F0ZWRBbW91bnRUeXBlICYmIGFtb3VudFR5cGUgIT09IGRlcHJlY2F0ZWRBbW91bnRUeXBlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgYXJndW1lbnRzYCk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGlmIChkZXByZWNhdGVkQW1vdW50VHlwZSkge1xuICAgICAgYW1vdW50VHlwZSA9IGRlcHJlY2F0ZWRBbW91bnRUeXBlO1xuICAgIH0gZWxzZSB7XG4gICAgICBhbW91bnRUeXBlID0gJ251bWJlcic7XG4gICAgfVxuICB9XG4gIHN3aXRjaCAoZ2V0TWFpbm5ldChuZXR3b3JrKSkge1xuICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbjpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5jYXNoOlxuICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbnN2OlxuICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbmdvbGQ6XG4gICAgY2FzZSBuZXR3b3Jrcy5kb2dlY29pbjpcbiAgICBjYXNlIG5ldHdvcmtzLmVjYXNoOlxuICAgICAgcmV0dXJuIFV0eG9UcmFuc2FjdGlvbi5mcm9tQnVmZmVyPFROdW1iZXI+KGJ1ZiwgZmFsc2UsIGFtb3VudFR5cGUsIG5ldHdvcmspO1xuICAgIGNhc2UgbmV0d29ya3MubGl0ZWNvaW46XG4gICAgICByZXR1cm4gTGl0ZWNvaW5UcmFuc2FjdGlvbi5mcm9tQnVmZmVyPFROdW1iZXI+KGJ1ZiwgZmFsc2UsIGFtb3VudFR5cGUsIG5ldHdvcmspO1xuICAgIGNhc2UgbmV0d29ya3MuZGFzaDpcbiAgICAgIHJldHVybiBEYXNoVHJhbnNhY3Rpb24uZnJvbUJ1ZmZlcjxUTnVtYmVyPihidWYsIGZhbHNlLCBhbW91bnRUeXBlLCBuZXR3b3JrKTtcbiAgICBjYXNlIG5ldHdvcmtzLnpjYXNoOlxuICAgICAgcmV0dXJuIFpjYXNoVHJhbnNhY3Rpb24uZnJvbUJ1ZmZlcldpdGhWZXJzaW9uPFROdW1iZXI+KGJ1ZiwgbmV0d29yayBhcyBaY2FzaE5ldHdvcmssIHZlcnNpb24sIGFtb3VudFR5cGUpO1xuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIG5ldHdvcmtgKTtcbn1cblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbi8qKiBAZGVwcmVjYXRlZCAtIHVzZSBjcmVhdGVUcmFuc2FjdGlvbkZyb21CdWZmZXIgaW5zdGVhZCAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRyYW5zYWN0aW9uRnJvbUhleChcbiAgaGV4OiBzdHJpbmcsXG4gIG5ldHdvcms6IE5ldHdvcmssXG4gIHA6IHsgYW1vdW50VHlwZTogJ2JpZ2ludCcgfVxuKTogVXR4b1RyYW5zYWN0aW9uPGJpZ2ludD47XG4vKiogQGRlcHJlY2F0ZWQgLSB1c2UgY3JlYXRlVHJhbnNhY3Rpb25Gcm9tQnVmZmVyIGluc3RlYWQgKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUcmFuc2FjdGlvbkZyb21IZXgoaGV4OiBzdHJpbmcsIG5ldHdvcms6IE5ldHdvcmssIHA6IHsgYW1vdW50VHlwZTogJ251bWJlcicgfSk6IFV0eG9UcmFuc2FjdGlvbjtcbi8qKiBAZGVwcmVjYXRlZCAtIHVzZSBjcmVhdGVUcmFuc2FjdGlvbkZyb21CdWZmZXIgaW5zdGVhZCAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRyYW5zYWN0aW9uRnJvbUhleDxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50ID0gbnVtYmVyPihcbiAgaGV4OiBzdHJpbmcsXG4gIG5ldHdvcms6IE5ldHdvcmssXG4gIHA/OiB7IGFtb3VudFR5cGU/OiAnbnVtYmVyJyB8ICdiaWdpbnQnIH0gfCAnbnVtYmVyJyB8ICdiaWdpbnQnXG4pOiBVdHhvVHJhbnNhY3Rpb248VE51bWJlcj47XG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVHJhbnNhY3Rpb25Gcm9tSGV4PFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQgPSBudW1iZXI+KFxuICBoZXg6IHN0cmluZyxcbiAgbmV0d29yazogTmV0d29yayxcbiAgcD86IHsgYW1vdW50VHlwZT86ICdudW1iZXInIHwgJ2JpZ2ludCcgfSB8ICdudW1iZXInIHwgJ2JpZ2ludCdcbik6IFV0eG9UcmFuc2FjdGlvbjxUTnVtYmVyPiB7XG4gIGlmICh0eXBlb2YgcCA9PT0gJ3N0cmluZycpIHtcbiAgICBwID0geyBhbW91bnRUeXBlOiBwIH07XG4gIH1cbiAgcmV0dXJuIGNyZWF0ZVRyYW5zYWN0aW9uRnJvbUJ1ZmZlcjxUTnVtYmVyPihCdWZmZXIuZnJvbShoZXgsICdoZXgnKSwgbmV0d29yaywgcCk7XG59XG5cbi8qKlxuICogQHBhcmFtIGJ1ZiAtIG11c3Qgc3RhcnQgd2l0aCB0aGUgUFNCVCBtYWdpYyBieXRlc1xuICogQHBhcmFtIG5ldHdvcmtcbiAqIEBwYXJhbSBiaXAzMlBhdGhzQWJzb2x1dGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVBzYnRGcm9tQnVmZmVyKGJ1ZjogQnVmZmVyLCBuZXR3b3JrOiBOZXR3b3JrLCBiaXAzMlBhdGhzQWJzb2x1dGUgPSBmYWxzZSk6IFV0eG9Qc2J0IHtcbiAgaWYgKCFpc1BzYnQoYnVmKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBwc2J0IChkb2VzIG5vdCBzdGFydCB3aXRoICdwc2J0JyBtYWdpYyBieXRlcylgKTtcbiAgfVxuICBzd2l0Y2ggKGdldE1haW5uZXQobmV0d29yaykpIHtcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW46XG4gICAgY2FzZSBuZXR3b3Jrcy5iaXRjb2luY2FzaDpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5zdjpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5nb2xkOlxuICAgIGNhc2UgbmV0d29ya3MuZG9nZWNvaW46XG4gICAgY2FzZSBuZXR3b3Jrcy5lY2FzaDpcbiAgICAgIHJldHVybiBVdHhvUHNidC5mcm9tQnVmZmVyKGJ1ZiwgeyBuZXR3b3JrLCBiaXAzMlBhdGhzQWJzb2x1dGUgfSk7XG4gICAgY2FzZSBuZXR3b3Jrcy5saXRlY29pbjpcbiAgICAgIHJldHVybiBMaXRlY29pblBzYnQuZnJvbUJ1ZmZlcihidWYsIHsgbmV0d29yaywgYmlwMzJQYXRoc0Fic29sdXRlIH0pO1xuICAgIGNhc2UgbmV0d29ya3MuZGFzaDpcbiAgICAgIHJldHVybiBEYXNoUHNidC5mcm9tQnVmZmVyKGJ1ZiwgeyBuZXR3b3JrLCBiaXAzMlBhdGhzQWJzb2x1dGUgfSk7XG4gICAgY2FzZSBuZXR3b3Jrcy56Y2FzaDpcbiAgICAgIHJldHVybiBaY2FzaFBzYnQuZnJvbUJ1ZmZlcihidWYsIHsgbmV0d29yaywgYmlwMzJQYXRoc0Fic29sdXRlIH0pO1xuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIG5ldHdvcmtgKTtcbn1cblxuLyoqXG4gKiBMaWtlIGNyZWF0ZVBzYnRGcm9tQnVmZmVyLCBidXQgYXR0ZW1wdHMgaGV4IGFuZCBiYXNlNjQgZGVjb2RpbmcgYXMgd2VsbC5cbiAqXG4gKiBAcGFyYW0gYnVmXG4gKiBAcGFyYW0gbmV0d29ya1xuICogQHBhcmFtIGJpcDMyUGF0aHNBYnNvbHV0ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUHNidERlY29kZShidWY6IEJ1ZmZlciB8IHN0cmluZywgbmV0d29yazogTmV0d29yaywgYmlwMzJQYXRoc0Fic29sdXRlID0gZmFsc2UpOiBVdHhvUHNidCB7XG4gIHJldHVybiBjcmVhdGVQc2J0RnJvbUJ1ZmZlcih0b1BzYnRCdWZmZXIoYnVmKSwgbmV0d29yaywgYmlwMzJQYXRoc0Fic29sdXRlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVBzYnRGcm9tSGV4KGhleDogc3RyaW5nLCBuZXR3b3JrOiBOZXR3b3JrLCBiaXAzMlBhdGhzQWJzb2x1dGUgPSBmYWxzZSk6IFV0eG9Qc2J0IHtcbiAgcmV0dXJuIGNyZWF0ZVBzYnRGcm9tQnVmZmVyKEJ1ZmZlci5mcm9tKGhleCwgJ2hleCcpLCBuZXR3b3JrLCBiaXAzMlBhdGhzQWJzb2x1dGUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUHNidEZyb21UcmFuc2FjdGlvbih0eDogVXR4b1RyYW5zYWN0aW9uPGJpZ2ludD4sIHByZXZPdXRzOiBUeE91dHB1dDxiaWdpbnQ+W10pOiBVdHhvUHNidCB7XG4gIHN3aXRjaCAoZ2V0TWFpbm5ldCh0eC5uZXR3b3JrKSkge1xuICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbjpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5jYXNoOlxuICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbnN2OlxuICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbmdvbGQ6XG4gICAgY2FzZSBuZXR3b3Jrcy5kb2dlY29pbjpcbiAgICBjYXNlIG5ldHdvcmtzLmVjYXNoOlxuICAgICAgcmV0dXJuIFV0eG9Qc2J0LmZyb21UcmFuc2FjdGlvbih0eCwgcHJldk91dHMpO1xuICAgIGNhc2UgbmV0d29ya3MubGl0ZWNvaW46XG4gICAgICByZXR1cm4gTGl0ZWNvaW5Qc2J0LmZyb21UcmFuc2FjdGlvbih0eCwgcHJldk91dHMpO1xuICAgIGNhc2UgbmV0d29ya3MuZGFzaDpcbiAgICAgIHJldHVybiBEYXNoUHNidC5mcm9tVHJhbnNhY3Rpb24odHgsIHByZXZPdXRzKTtcbiAgICBjYXNlIG5ldHdvcmtzLnpjYXNoOlxuICAgICAgcmV0dXJuIFpjYXNoUHNidC5mcm9tVHJhbnNhY3Rpb24odHgsIHByZXZPdXRzKTtcbiAgfVxuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBuZXR3b3JrYCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREZWZhdWx0VHJhbnNhY3Rpb25WZXJzaW9uKG5ldHdvcms6IE5ldHdvcmspOiBudW1iZXIge1xuICAvLyBNYWlubmV0IGFjdGl2YXRlZCBOVTYuMiBhdCBibG9jayAzMzY0NjAwOyB0ZXN0bmV0IGhhcyBub3QgKGFjdGl2YXRpb24gNDA1MjAwMCksXG4gIC8vIHNvIHRlc3RuZXQgc3RpbGwgYnVpbGRzIE5VNi4xIHRyYW5zYWN0aW9ucy5cbiAgaWYgKG5ldHdvcmsgPT09IG5ldHdvcmtzLnpjYXNoVGVzdCkge1xuICAgIHJldHVybiBaY2FzaFRyYW5zYWN0aW9uLlZFUlNJT040X0JSQU5DSF9OVTZfMTtcbiAgfVxuXG4gIHN3aXRjaCAoZ2V0TWFpbm5ldChuZXR3b3JrKSkge1xuICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbmNhc2g6XG4gICAgY2FzZSBuZXR3b3Jrcy5iaXRjb2luc3Y6XG4gICAgY2FzZSBuZXR3b3Jrcy5iaXRjb2luZ29sZDpcbiAgICBjYXNlIG5ldHdvcmtzLmVjYXNoOlxuICAgICAgcmV0dXJuIDI7XG4gICAgY2FzZSBuZXR3b3Jrcy56Y2FzaDpcbiAgICAgIHJldHVybiBaY2FzaFRyYW5zYWN0aW9uLlZFUlNJT040X0JSQU5DSF9OVTZfMjtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIDE7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldFRyYW5zYWN0aW9uQnVpbGRlckRlZmF1bHRzPFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQ+KFxuICB0eGI6IFV0eG9UcmFuc2FjdGlvbkJ1aWxkZXI8VE51bWJlcj4sXG4gIG5ldHdvcms6IE5ldHdvcmssXG4gIHsgdmVyc2lvbiA9IGdldERlZmF1bHRUcmFuc2FjdGlvblZlcnNpb24obmV0d29yaykgfTogeyB2ZXJzaW9uPzogbnVtYmVyIH0gPSB7fVxuKTogdm9pZCB7XG4gIHN3aXRjaCAoZ2V0TWFpbm5ldChuZXR3b3JrKSkge1xuICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbmNhc2g6XG4gICAgY2FzZSBuZXR3b3Jrcy5iaXRjb2luc3Y6XG4gICAgY2FzZSBuZXR3b3Jrcy5iaXRjb2luZ29sZDpcbiAgICBjYXNlIG5ldHdvcmtzLmVjYXNoOlxuICAgICAgaWYgKHZlcnNpb24gIT09IDIpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIHZlcnNpb25gKTtcbiAgICAgIH1cbiAgICAgIHR4Yi5zZXRWZXJzaW9uKHZlcnNpb24pO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBuZXR3b3Jrcy56Y2FzaDpcbiAgICAgICh0eGIgYXMgWmNhc2hUcmFuc2FjdGlvbkJ1aWxkZXI8VE51bWJlcj4pLnNldERlZmF1bHRzRm9yVmVyc2lvbihuZXR3b3JrLCB2ZXJzaW9uKTtcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICBpZiAodmVyc2lvbiAhPT0gMSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgdmVyc2lvbmApO1xuICAgICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRQc2J0RGVmYXVsdHMoXG4gIHBzYnQ6IFV0eG9Qc2J0LFxuICBuZXR3b3JrOiBOZXR3b3JrLFxuICB7IHZlcnNpb24gPSBnZXREZWZhdWx0VHJhbnNhY3Rpb25WZXJzaW9uKG5ldHdvcmspIH06IHsgdmVyc2lvbj86IG51bWJlciB9ID0ge31cbik6IHZvaWQge1xuICBzd2l0Y2ggKGdldE1haW5uZXQobmV0d29yaykpIHtcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5jYXNoOlxuICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbnN2OlxuICAgIGNhc2UgbmV0d29ya3MuYml0Y29pbmdvbGQ6XG4gICAgY2FzZSBuZXR3b3Jrcy5lY2FzaDpcbiAgICAgIGlmICh2ZXJzaW9uICE9PSAyKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCB2ZXJzaW9uYCk7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlIG5ldHdvcmtzLnpjYXNoOlxuICAgICAgaWYgKFxuICAgICAgICAhW1xuICAgICAgICAgIFpjYXNoVHJhbnNhY3Rpb24uVkVSU0lPTjRfQlJBTkNIX0NBTk9QWSxcbiAgICAgICAgICBaY2FzaFRyYW5zYWN0aW9uLlZFUlNJT040X0JSQU5DSF9OVTUsXG4gICAgICAgICAgWmNhc2hUcmFuc2FjdGlvbi5WRVJTSU9ONF9CUkFOQ0hfTlU2LFxuICAgICAgICAgIFpjYXNoVHJhbnNhY3Rpb24uVkVSU0lPTjRfQlJBTkNIX05VNl8xLFxuICAgICAgICAgIFpjYXNoVHJhbnNhY3Rpb24uVkVSU0lPTjRfQlJBTkNIX05VNl8yLFxuICAgICAgICAgIFpjYXNoVHJhbnNhY3Rpb24uVkVSU0lPTjVfQlJBTkNIX05VNSxcbiAgICAgICAgICBaY2FzaFRyYW5zYWN0aW9uLlZFUlNJT041X0JSQU5DSF9OVTYsXG4gICAgICAgICAgWmNhc2hUcmFuc2FjdGlvbi5WRVJTSU9ONV9CUkFOQ0hfTlU2XzEsXG4gICAgICAgICAgWmNhc2hUcmFuc2FjdGlvbi5WRVJTSU9ONV9CUkFOQ0hfTlU2XzIsXG4gICAgICAgIF0uaW5jbHVkZXModmVyc2lvbilcbiAgICAgICkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgdmVyc2lvbmApO1xuICAgICAgfVxuICAgICAgKHBzYnQgYXMgWmNhc2hQc2J0KS5zZXREZWZhdWx0c0ZvclZlcnNpb24obmV0d29yaywgdmVyc2lvbik7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgaWYgKHZlcnNpb24gIT09IDEpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIHZlcnNpb25gKTtcbiAgICAgIH1cbiAgICAgIC8vIEZJWE1FOiBzZXQgdmVyc2lvbiBoZXJlLCBiZWNhdXNlIHRoZXJlJ3MgYSBidWcgaW4gdGhlIHVwc3RyZWFtIFBTQlRcbiAgICAgIC8vIHRoYXQgZGVmYXVsdHMgdHJhbnNhY3Rpb25zIHRvIHYyLlxuICAgICAgcHNidC5zZXRWZXJzaW9uKHZlcnNpb24pO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQc2J0Rm9yTmV0d29yayhwc2J0T3B0czogUHNidE9wdHMsIHsgdmVyc2lvbiB9OiB7IHZlcnNpb24/OiBudW1iZXIgfSA9IHt9KTogVXR4b1BzYnQge1xuICBsZXQgcHNidDtcblxuICBzd2l0Y2ggKGdldE1haW5uZXQocHNidE9wdHMubmV0d29yaykpIHtcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW46XG4gICAgY2FzZSBuZXR3b3Jrcy5iaXRjb2luY2FzaDpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5zdjpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5nb2xkOlxuICAgIGNhc2UgbmV0d29ya3MuZG9nZWNvaW46XG4gICAgY2FzZSBuZXR3b3Jrcy5lY2FzaDoge1xuICAgICAgcHNidCA9IFV0eG9Qc2J0LmNyZWF0ZVBzYnQocHNidE9wdHMpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGNhc2UgbmV0d29ya3MubGl0ZWNvaW46IHtcbiAgICAgIHBzYnQgPSBMaXRlY29pblBzYnQuY3JlYXRlUHNidChwc2J0T3B0cyk7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgY2FzZSBuZXR3b3Jrcy5kYXNoOiB7XG4gICAgICBwc2J0ID0gRGFzaFBzYnQuY3JlYXRlUHNidChwc2J0T3B0cyk7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgY2FzZSBuZXR3b3Jrcy56Y2FzaDoge1xuICAgICAgcHNidCA9IFpjYXNoUHNidC5jcmVhdGVQc2J0KHBzYnRPcHRzKTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKGB1bnN1cHBvcnRlZCBuZXR3b3JrYCk7XG4gIH1cblxuICBzZXRQc2J0RGVmYXVsdHMocHNidCwgcHNidE9wdHMubmV0d29yaywgeyB2ZXJzaW9uIH0pO1xuXG4gIHJldHVybiBwc2J0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVHJhbnNhY3Rpb25CdWlsZGVyRm9yTmV0d29yazxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50ID0gbnVtYmVyPihcbiAgbmV0d29yazogTmV0d29yayxcbiAgeyB2ZXJzaW9uIH06IHsgdmVyc2lvbj86IG51bWJlciB9ID0ge31cbik6IFV0eG9UcmFuc2FjdGlvbkJ1aWxkZXI8VE51bWJlcj4ge1xuICBsZXQgdHhiO1xuICBzd2l0Y2ggKGdldE1haW5uZXQobmV0d29yaykpIHtcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW46XG4gICAgY2FzZSBuZXR3b3Jrcy5iaXRjb2luY2FzaDpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5zdjpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5nb2xkOlxuICAgIGNhc2UgbmV0d29ya3MuZG9nZWNvaW46XG4gICAgY2FzZSBuZXR3b3Jrcy5lY2FzaDoge1xuICAgICAgdHhiID0gbmV3IFV0eG9UcmFuc2FjdGlvbkJ1aWxkZXI8VE51bWJlcj4obmV0d29yayk7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgY2FzZSBuZXR3b3Jrcy5saXRlY29pbjoge1xuICAgICAgdHhiID0gbmV3IExpdGVjb2luVHJhbnNhY3Rpb25CdWlsZGVyPFROdW1iZXI+KG5ldHdvcmspO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGNhc2UgbmV0d29ya3MuZGFzaDpcbiAgICAgIHR4YiA9IG5ldyBEYXNoVHJhbnNhY3Rpb25CdWlsZGVyPFROdW1iZXI+KG5ldHdvcmspO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBuZXR3b3Jrcy56Y2FzaDoge1xuICAgICAgdHhiID0gbmV3IFpjYXNoVHJhbnNhY3Rpb25CdWlsZGVyPFROdW1iZXI+KG5ldHdvcmsgYXMgWmNhc2hOZXR3b3JrKTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKGB1bnN1cHBvcnRlZCBuZXR3b3JrYCk7XG4gIH1cblxuICBzZXRUcmFuc2FjdGlvbkJ1aWxkZXJEZWZhdWx0czxUTnVtYmVyPih0eGIsIG5ldHdvcmssIHsgdmVyc2lvbiB9KTtcblxuICByZXR1cm4gdHhiO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVHJhbnNhY3Rpb25CdWlsZGVyRnJvbVRyYW5zYWN0aW9uPFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQ+KFxuICB0eDogVXR4b1RyYW5zYWN0aW9uPFROdW1iZXI+LFxuICBwcmV2T3V0cHV0cz86IFR4T3V0cHV0PFROdW1iZXI+W11cbik6IFV0eG9UcmFuc2FjdGlvbkJ1aWxkZXI8VE51bWJlcj4ge1xuICBzd2l0Y2ggKGdldE1haW5uZXQodHgubmV0d29yaykpIHtcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW46XG4gICAgY2FzZSBuZXR3b3Jrcy5iaXRjb2luY2FzaDpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5zdjpcbiAgICBjYXNlIG5ldHdvcmtzLmJpdGNvaW5nb2xkOlxuICAgIGNhc2UgbmV0d29ya3MuZG9nZWNvaW46XG4gICAgY2FzZSBuZXR3b3Jrcy5lY2FzaDpcbiAgICAgIHJldHVybiBVdHhvVHJhbnNhY3Rpb25CdWlsZGVyLmZyb21UcmFuc2FjdGlvbjxUTnVtYmVyPih0eCwgdW5kZWZpbmVkLCBwcmV2T3V0cHV0cyk7XG4gICAgY2FzZSBuZXR3b3Jrcy5saXRlY29pbjpcbiAgICAgIHJldHVybiBMaXRlY29pblRyYW5zYWN0aW9uQnVpbGRlci5mcm9tVHJhbnNhY3Rpb248VE51bWJlcj4oXG4gICAgICAgIHR4IGFzIExpdGVjb2luVHJhbnNhY3Rpb248VE51bWJlcj4sXG4gICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgcHJldk91dHB1dHMgYXMgVHhPdXRwdXQ8VE51bWJlcj5bXVxuICAgICAgKTtcbiAgICBjYXNlIG5ldHdvcmtzLmRhc2g6XG4gICAgICByZXR1cm4gRGFzaFRyYW5zYWN0aW9uQnVpbGRlci5mcm9tVHJhbnNhY3Rpb248VE51bWJlcj4oXG4gICAgICAgIHR4IGFzIERhc2hUcmFuc2FjdGlvbjxUTnVtYmVyPixcbiAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICBwcmV2T3V0cHV0cyBhcyBUeE91dHB1dDxUTnVtYmVyPltdXG4gICAgICApO1xuICAgIGNhc2UgbmV0d29ya3MuemNhc2g6XG4gICAgICByZXR1cm4gWmNhc2hUcmFuc2FjdGlvbkJ1aWxkZXIuZnJvbVRyYW5zYWN0aW9uPFROdW1iZXI+KFxuICAgICAgICB0eCBhcyBaY2FzaFRyYW5zYWN0aW9uPFROdW1iZXI+LFxuICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgIHByZXZPdXRwdXRzIGFzIFR4T3V0cHV0PFROdW1iZXI+W11cbiAgICAgICk7XG4gIH1cblxuICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgbmV0d29ya2ApO1xufVxuIl19
@@ -0,0 +1,9 @@
1
+ import { UtxoPsbt } from './UtxoPsbt';
2
+ export declare function getTransactionAmountsFromPsbt(psbt: UtxoPsbt): {
3
+ inputCount: number;
4
+ outputCount: number;
5
+ inputAmount: bigint;
6
+ outputAmount: bigint;
7
+ fee: bigint;
8
+ };
9
+ //# sourceMappingURL=transactionAmounts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transactionAmounts.d.ts","sourceRoot":"","sources":["../../../src/bitgo/transactionAmounts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,QAAQ,GAAG;IAC7D,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;CACb,CA2BA"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getTransactionAmountsFromPsbt = getTransactionAmountsFromPsbt;
4
+ const transaction_1 = require("./transaction");
5
+ function getTransactionAmountsFromPsbt(psbt) {
6
+ const inputCount = psbt.data.inputs.length;
7
+ const outputCount = psbt.data.outputs.length;
8
+ const txInputs = psbt.txInputs;
9
+ const txOutputs = psbt.txOutputs;
10
+ const inputAmount = psbt.data.inputs.reduce((acc, input, inputIndex) => {
11
+ if (input.witnessUtxo) {
12
+ return acc + BigInt(input.witnessUtxo.value);
13
+ }
14
+ else if (input.nonWitnessUtxo) {
15
+ const tx = (0, transaction_1.createTransactionFromBuffer)(input.nonWitnessUtxo, psbt.network, { amountType: 'bigint' });
16
+ return acc + tx.outs[txInputs[inputIndex].index].value;
17
+ }
18
+ else {
19
+ throw new Error('missing witnessUtxo and nonWitnessUtxo');
20
+ }
21
+ }, BigInt(0));
22
+ const outputAmount = psbt.data.outputs.reduce((acc, output, outputIndex) => acc + txOutputs[outputIndex].value, BigInt(0));
23
+ const fee = inputAmount - outputAmount;
24
+ return {
25
+ inputCount,
26
+ outputCount,
27
+ inputAmount,
28
+ outputAmount,
29
+ fee,
30
+ };
31
+ }
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25BbW91bnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JpdGdvL3RyYW5zYWN0aW9uQW1vdW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUdBLHNFQWlDQztBQW5DRCwrQ0FBNEQ7QUFFNUQsU0FBZ0IsNkJBQTZCLENBQUMsSUFBYztJQU8xRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDM0MsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO0lBQzdDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDL0IsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUNqQyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxFQUFFO1FBQ3JFLElBQUksS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3RCLE9BQU8sR0FBRyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9DLENBQUM7YUFBTSxJQUFJLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNoQyxNQUFNLEVBQUUsR0FBRyxJQUFBLHlDQUEyQixFQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBQ3JHLE9BQU8sR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUN6RCxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMsd0NBQXdDLENBQUMsQ0FBQztRQUM1RCxDQUFDO0lBQ0gsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2QsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUMzQyxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEtBQUssRUFDaEUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUNWLENBQUM7SUFDRixNQUFNLEdBQUcsR0FBRyxXQUFXLEdBQUcsWUFBWSxDQUFDO0lBQ3ZDLE9BQU87UUFDTCxVQUFVO1FBQ1YsV0FBVztRQUNYLFdBQVc7UUFDWCxZQUFZO1FBQ1osR0FBRztLQUNKLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVXR4b1BzYnQgfSBmcm9tICcuL1V0eG9Qc2J0JztcbmltcG9ydCB7IGNyZWF0ZVRyYW5zYWN0aW9uRnJvbUJ1ZmZlciB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VHJhbnNhY3Rpb25BbW91bnRzRnJvbVBzYnQocHNidDogVXR4b1BzYnQpOiB7XG4gIGlucHV0Q291bnQ6IG51bWJlcjtcbiAgb3V0cHV0Q291bnQ6IG51bWJlcjtcbiAgaW5wdXRBbW91bnQ6IGJpZ2ludDtcbiAgb3V0cHV0QW1vdW50OiBiaWdpbnQ7XG4gIGZlZTogYmlnaW50O1xufSB7XG4gIGNvbnN0IGlucHV0Q291bnQgPSBwc2J0LmRhdGEuaW5wdXRzLmxlbmd0aDtcbiAgY29uc3Qgb3V0cHV0Q291bnQgPSBwc2J0LmRhdGEub3V0cHV0cy5sZW5ndGg7XG4gIGNvbnN0IHR4SW5wdXRzID0gcHNidC50eElucHV0cztcbiAgY29uc3QgdHhPdXRwdXRzID0gcHNidC50eE91dHB1dHM7XG4gIGNvbnN0IGlucHV0QW1vdW50ID0gcHNidC5kYXRhLmlucHV0cy5yZWR1Y2UoKGFjYywgaW5wdXQsIGlucHV0SW5kZXgpID0+IHtcbiAgICBpZiAoaW5wdXQud2l0bmVzc1V0eG8pIHtcbiAgICAgIHJldHVybiBhY2MgKyBCaWdJbnQoaW5wdXQud2l0bmVzc1V0eG8udmFsdWUpO1xuICAgIH0gZWxzZSBpZiAoaW5wdXQubm9uV2l0bmVzc1V0eG8pIHtcbiAgICAgIGNvbnN0IHR4ID0gY3JlYXRlVHJhbnNhY3Rpb25Gcm9tQnVmZmVyKGlucHV0Lm5vbldpdG5lc3NVdHhvLCBwc2J0Lm5ldHdvcmssIHsgYW1vdW50VHlwZTogJ2JpZ2ludCcgfSk7XG4gICAgICByZXR1cm4gYWNjICsgdHgub3V0c1t0eElucHV0c1tpbnB1dEluZGV4XS5pbmRleF0udmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignbWlzc2luZyB3aXRuZXNzVXR4byBhbmQgbm9uV2l0bmVzc1V0eG8nKTtcbiAgICB9XG4gIH0sIEJpZ0ludCgwKSk7XG4gIGNvbnN0IG91dHB1dEFtb3VudCA9IHBzYnQuZGF0YS5vdXRwdXRzLnJlZHVjZShcbiAgICAoYWNjLCBvdXRwdXQsIG91dHB1dEluZGV4KSA9PiBhY2MgKyB0eE91dHB1dHNbb3V0cHV0SW5kZXhdLnZhbHVlLFxuICAgIEJpZ0ludCgwKVxuICApO1xuICBjb25zdCBmZWUgPSBpbnB1dEFtb3VudCAtIG91dHB1dEFtb3VudDtcbiAgcmV0dXJuIHtcbiAgICBpbnB1dENvdW50LFxuICAgIG91dHB1dENvdW50LFxuICAgIGlucHV0QW1vdW50LFxuICAgIG91dHB1dEFtb3VudCxcbiAgICBmZWUsXG4gIH07XG59XG4iXX0=
@@ -1,7 +1,13 @@
1
1
  import { TapLeafScript } from 'bip174/src/lib/interfaces';
2
2
  export { TapLeafScript };
3
- export declare type Tuple<T> = [T, T];
3
+ export type Tuple<T> = [T, T];
4
4
  export declare function isTuple<T>(arr: T[]): arr is Tuple<T>;
5
- export declare type Triple<T> = [T, T, T];
5
+ export type Triple<T> = [T, T, T];
6
6
  export declare function isTriple<T>(arr: T[]): arr is Triple<T>;
7
+ /**
8
+ * Checks if the given value is an array of Buffer objects.
9
+ * @param v - The value to check.
10
+ * @returns A boolean indicating whether v is an array of Buffer objects.
11
+ */
12
+ export declare function isBufferArray(v: unknown): v is Buffer[];
7
13
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/bitgo/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,CAAC;AAEzB,oBAAY,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAE9B,wBAAgB,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAEpD;AAED,oBAAY,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAElC,wBAAgB,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,CAEtD"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/bitgo/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,CAAC;AAEzB,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAE9B,wBAAgB,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAEpD;AAED,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAElC,wBAAgB,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,CAEtD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,MAAM,EAAE,CAEvD"}
@@ -1,12 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isTriple = exports.isTuple = void 0;
3
+ exports.isTuple = isTuple;
4
+ exports.isTriple = isTriple;
5
+ exports.isBufferArray = isBufferArray;
4
6
  function isTuple(arr) {
5
7
  return arr.length === 2;
6
8
  }
7
- exports.isTuple = isTuple;
8
9
  function isTriple(arr) {
9
10
  return arr.length === 3;
10
11
  }
11
- exports.isTriple = isTriple;
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYml0Z28vdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBS0EsU0FBZ0IsT0FBTyxDQUFJLEdBQVE7SUFDakMsT0FBTyxHQUFHLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztBQUMxQixDQUFDO0FBRkQsMEJBRUM7QUFJRCxTQUFnQixRQUFRLENBQUksR0FBUTtJQUNsQyxPQUFPLEdBQUcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO0FBQzFCLENBQUM7QUFGRCw0QkFFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRhcExlYWZTY3JpcHQgfSBmcm9tICdiaXAxNzQvc3JjL2xpYi9pbnRlcmZhY2VzJztcbmV4cG9ydCB7IFRhcExlYWZTY3JpcHQgfTtcblxuZXhwb3J0IHR5cGUgVHVwbGU8VD4gPSBbVCwgVF07XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1R1cGxlPFQ+KGFycjogVFtdKTogYXJyIGlzIFR1cGxlPFQ+IHtcbiAgcmV0dXJuIGFyci5sZW5ndGggPT09IDI7XG59XG5cbmV4cG9ydCB0eXBlIFRyaXBsZTxUPiA9IFtULCBULCBUXTtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzVHJpcGxlPFQ+KGFycjogVFtdKTogYXJyIGlzIFRyaXBsZTxUPiB7XG4gIHJldHVybiBhcnIubGVuZ3RoID09PSAzO1xufVxuIl19
12
+ /**
13
+ * Checks if the given value is an array of Buffer objects.
14
+ * @param v - The value to check.
15
+ * @returns A boolean indicating whether v is an array of Buffer objects.
16
+ */
17
+ function isBufferArray(v) {
18
+ return Array.isArray(v) && v.every((e) => Buffer.isBuffer(e));
19
+ }
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYml0Z28vdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFLQSwwQkFFQztBQUlELDRCQUVDO0FBT0Qsc0NBRUM7QUFqQkQsU0FBZ0IsT0FBTyxDQUFJLEdBQVE7SUFDakMsT0FBTyxHQUFHLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztBQUMxQixDQUFDO0FBSUQsU0FBZ0IsUUFBUSxDQUFJLEdBQVE7SUFDbEMsT0FBTyxHQUFHLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztBQUMxQixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLGFBQWEsQ0FBQyxDQUFVO0lBQ3RDLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDaEUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRhcExlYWZTY3JpcHQgfSBmcm9tICdiaXAxNzQvc3JjL2xpYi9pbnRlcmZhY2VzJztcbmV4cG9ydCB7IFRhcExlYWZTY3JpcHQgfTtcblxuZXhwb3J0IHR5cGUgVHVwbGU8VD4gPSBbVCwgVF07XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1R1cGxlPFQ+KGFycjogVFtdKTogYXJyIGlzIFR1cGxlPFQ+IHtcbiAgcmV0dXJuIGFyci5sZW5ndGggPT09IDI7XG59XG5cbmV4cG9ydCB0eXBlIFRyaXBsZTxUPiA9IFtULCBULCBUXTtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzVHJpcGxlPFQ+KGFycjogVFtdKTogYXJyIGlzIFRyaXBsZTxUPiB7XG4gIHJldHVybiBhcnIubGVuZ3RoID09PSAzO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiB0aGUgZ2l2ZW4gdmFsdWUgaXMgYW4gYXJyYXkgb2YgQnVmZmVyIG9iamVjdHMuXG4gKiBAcGFyYW0gdiAtIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIEEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdiBpcyBhbiBhcnJheSBvZiBCdWZmZXIgb2JqZWN0cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQnVmZmVyQXJyYXkodjogdW5rbm93bik6IHYgaXMgQnVmZmVyW10ge1xuICByZXR1cm4gQXJyYXkuaXNBcnJheSh2KSAmJiB2LmV2ZXJ5KChlKSA9PiBCdWZmZXIuaXNCdWZmZXIoZSkpO1xufVxuIl19
@@ -1,57 +1,58 @@
1
- /// <reference types="node" />
2
1
  import { PsbtInput } from 'bip174/src/lib/interfaces';
3
- import { BIP32Interface } from 'bip32';
2
+ import { BIP32Interface } from '@bitgo-beta/secp256k1';
4
3
  import { UtxoPsbt } from '../UtxoPsbt';
4
+ import { Psbt } from '../../';
5
5
  import { UtxoTransaction } from '../UtxoTransaction';
6
+ import { ScriptType2Of3 } from '../outputScripts';
6
7
  import { RootWalletKeys } from './WalletKeys';
7
8
  import { WalletUnspent } from './Unspent';
8
- import { ParsedPubScriptP2ms, ParsedPubScriptTaprootScriptPath, ParsedPubScriptTaprootKeyPath, ParsedPubScriptP2shP2pk, ParsedScriptType } from '../parseInput';
9
+ import { ParsedPubScriptP2ms, ParsedPubScriptTaprootScriptPath, ParsedPubScriptTaprootKeyPath, ParsedPubScriptP2shP2pk, ParsedScriptType, ParsedScriptType2Of3 } from '../parseInput';
9
10
  import { Triple } from '../types';
10
11
  import { TxInput } from 'bitcoinjs-lib';
11
- declare type BaseSignatureContainer<T> = {
12
+ type BaseSignatureContainer<T> = {
12
13
  signatures: T;
13
14
  };
14
- declare type UnsignedSignatureContainer = BaseSignatureContainer<undefined>;
15
- declare type HalfSignedSignatureContainer = BaseSignatureContainer<[Buffer]>;
16
- declare type FullSignedSignatureContainer = BaseSignatureContainer<[Buffer, Buffer]>;
17
- declare type SignatureContainer = UnsignedSignatureContainer | HalfSignedSignatureContainer | FullSignedSignatureContainer;
15
+ type UnsignedSignatureContainer = BaseSignatureContainer<undefined>;
16
+ type HalfSignedSignatureContainer = BaseSignatureContainer<[Buffer]>;
17
+ type FullSignedSignatureContainer = BaseSignatureContainer<[Buffer, Buffer]>;
18
+ type SignatureContainer = UnsignedSignatureContainer | HalfSignedSignatureContainer | FullSignedSignatureContainer;
18
19
  /**
19
20
  * Contents of a pre-finalized PSBT Input for p2trMusig2 key path in the non-finalized state.
20
21
  * T is [Buffer] for first signature, [Buffer, Buffer] for both signatures and `undefined` for no signatures.
21
22
  */
22
- declare type BaseTaprootKeyPathSignatureContainer<T> = {
23
+ type BaseTaprootKeyPathSignatureContainer<T> = {
23
24
  signatures: T;
24
25
  /** Only contains participants that have added a signature */
25
26
  participantPublicKeys: T;
26
27
  };
27
- declare type UnsignedTaprootKeyPathSignatureContainer = BaseTaprootKeyPathSignatureContainer<undefined>;
28
- declare type HalfSignedTaprootKeyPathSignatureContainer = BaseTaprootKeyPathSignatureContainer<[Buffer]>;
29
- declare type FullSignedTaprootKeyPathSignatureContainer = BaseTaprootKeyPathSignatureContainer<[Buffer, Buffer]>;
30
- declare type TaprootKeyPathSignatureContainer = UnsignedTaprootKeyPathSignatureContainer | HalfSignedTaprootKeyPathSignatureContainer | FullSignedTaprootKeyPathSignatureContainer;
28
+ type UnsignedTaprootKeyPathSignatureContainer = BaseTaprootKeyPathSignatureContainer<undefined>;
29
+ type HalfSignedTaprootKeyPathSignatureContainer = BaseTaprootKeyPathSignatureContainer<[Buffer]>;
30
+ type FullSignedTaprootKeyPathSignatureContainer = BaseTaprootKeyPathSignatureContainer<[Buffer, Buffer]>;
31
+ type TaprootKeyPathSignatureContainer = UnsignedTaprootKeyPathSignatureContainer | HalfSignedTaprootKeyPathSignatureContainer | FullSignedTaprootKeyPathSignatureContainer;
31
32
  /**
32
33
  * To hold parsed psbt data for p2ms based script types - p2sh, p2wsh, and p2shP2wsh
33
34
  */
34
- export declare type ParsedPsbtP2ms = ParsedPubScriptP2ms & SignatureContainer;
35
+ export type ParsedPsbtP2ms = ParsedPubScriptP2ms & SignatureContainer;
35
36
  /**
36
37
  * To hold parsed psbt data for TaprootKeyPathSpend script type.
37
38
  */
38
- export declare type ParsedPsbtTaprootKeyPath = ParsedPubScriptTaprootKeyPath & TaprootKeyPathSignatureContainer;
39
+ export type ParsedPsbtTaprootKeyPath = ParsedPubScriptTaprootKeyPath & TaprootKeyPathSignatureContainer;
39
40
  /**
40
41
  * To hold parsed psbt data for TaprootScriptPathSpend script path script type.
41
42
  */
42
- export declare type ParsedPsbtTaprootScriptPath = ParsedPubScriptTaprootScriptPath & SignatureContainer & {
43
+ export type ParsedPsbtTaprootScriptPath = ParsedPubScriptTaprootScriptPath & SignatureContainer & {
43
44
  controlBlock: Buffer;
44
45
  leafVersion: number;
45
46
  /** Indicates the level inside the taptree. */
46
47
  scriptPathLevel: number;
47
48
  };
48
- export declare type ParsedPsbtTaproot = ParsedPsbtTaprootKeyPath | ParsedPsbtTaprootScriptPath;
49
- declare type P2shP2pkSignatureContainer = UnsignedSignatureContainer | HalfSignedSignatureContainer;
50
- export declare type ParsedPsbtP2shP2pk = ParsedPubScriptP2shP2pk & P2shP2pkSignatureContainer;
49
+ export type ParsedPsbtTaproot = ParsedPsbtTaprootKeyPath | ParsedPsbtTaprootScriptPath;
50
+ type P2shP2pkSignatureContainer = UnsignedSignatureContainer | HalfSignedSignatureContainer;
51
+ export type ParsedPsbtP2shP2pk = ParsedPubScriptP2shP2pk & P2shP2pkSignatureContainer;
51
52
  /**
52
53
  * psbt input index and its user, backup, bitgo signatures status
53
54
  */
54
- export declare type SignatureValidation = [index: number, sigTriple: Triple<boolean>];
55
+ export type SignatureValidation = [index: number, sigTriple: Triple<boolean>];
55
56
  /**
56
57
  * @return PSBT filled with metatdata as per input params tx, unspents and rootWalletKeys.
57
58
  * Unsigned PSBT for taproot input with witnessUtxo
@@ -86,6 +87,12 @@ export declare function getPsbtInputScriptType(input: PsbtInput): ParsedScriptTy
86
87
  * public key (tapOutputkey), signatures (partial signer sigs).
87
88
  */
88
89
  export declare function parsePsbtInput(input: PsbtInput): ParsedPsbtP2ms | ParsedPsbtTaproot | ParsedPsbtP2shP2pk;
90
+ /**
91
+ * Converts a parsed script type into an array of script types.
92
+ * @param parsedScriptType - The parsed script type.
93
+ * @returns An array of ScriptType2Of3 values corresponding to the parsed script type.
94
+ */
95
+ export declare function toScriptType2Of3s(parsedScriptType: ParsedScriptType2Of3): ScriptType2Of3[];
89
96
  /**
90
97
  * @returns strictly parse the input and get signature count.
91
98
  * unsigned(0), half-signed(1) or fully-signed(2)
@@ -114,7 +121,7 @@ export declare function isTransactionWithKeyPathSpendInput(data: UtxoPsbt | Utxo
114
121
  * We do all the matching of the (tap)bip32Derivations masterFingerprint to the fingerprint of the
115
122
  * extendedPubkey.
116
123
  */
117
- export declare function addXpubsToPsbt(psbt: UtxoPsbt, rootWalletKeys: RootWalletKeys): void;
124
+ export declare function addXpubsToPsbt(psbt: Psbt, rootWalletKeys: RootWalletKeys): void;
118
125
  /**
119
126
  * validates signatures for each 2 of 3 input against user, backup, bitgo keys derived from rootWalletKeys.
120
127
  * @returns array of input index and its [is valid user sig exist, is valid backup sig exist, is valid user bitgo exist]
@@ -131,6 +138,15 @@ export declare function extractP2msOnlyHalfSignedTx(psbt: UtxoPsbt): UtxoTransac
131
138
  * It is not BIP-174 compliant, so use it carefully.
132
139
  */
133
140
  export declare function clonePsbtWithoutNonWitnessUtxo(psbt: UtxoPsbt): UtxoPsbt;
141
+ /**
142
+ * Returns true if there are non-segwit inputs in the PSBT that do not contain the
143
+ * nonWitnessUtxo.
144
+ *
145
+ * isPsbtLite(clonePsbtWithoutNonWitnessUtxo(psbt)) === true
146
+ *
147
+ * @param psbt
148
+ */
149
+ export declare function isPsbtLite(psbt: UtxoPsbt): boolean;
134
150
  /**
135
151
  * Deletes witnessUtxo for non-segwit inputs to make the PSBT BIP-174 compliant.
136
152
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Psbt.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/wallet/Psbt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Psbt.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/wallet/Psbt.ts"],"names":[],"mappings":"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"}