@bitgo/abstract-utxo 10.16.0 → 10.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (334) hide show
  1. package/dist/cjs/src/abstractUtxoCoin.d.ts +9 -13
  2. package/dist/cjs/src/abstractUtxoCoin.d.ts.map +1 -1
  3. package/dist/cjs/src/abstractUtxoCoin.js +28 -14
  4. package/dist/cjs/src/address/fixedScript.d.ts +4 -9
  5. package/dist/cjs/src/address/fixedScript.d.ts.map +1 -1
  6. package/dist/cjs/src/address/fixedScript.js +18 -50
  7. package/dist/cjs/src/descriptor/NamedDescriptor.d.ts +4 -5
  8. package/dist/cjs/src/descriptor/NamedDescriptor.d.ts.map +1 -1
  9. package/dist/cjs/src/descriptor/NamedDescriptor.js +4 -6
  10. package/dist/cjs/src/descriptor/assertDescriptorWalletAddress.d.ts +2 -2
  11. package/dist/cjs/src/descriptor/assertDescriptorWalletAddress.d.ts.map +1 -1
  12. package/dist/cjs/src/descriptor/assertDescriptorWalletAddress.js +3 -38
  13. package/dist/cjs/src/descriptor/builder/builder.d.ts +2 -3
  14. package/dist/cjs/src/descriptor/builder/builder.d.ts.map +1 -1
  15. package/dist/cjs/src/descriptor/builder/builder.js +1 -1
  16. package/dist/cjs/src/descriptor/builder/parse.d.ts.map +1 -1
  17. package/dist/cjs/src/descriptor/builder/parse.js +3 -3
  18. package/dist/cjs/src/descriptor/createWallet/createDescriptors.d.ts +2 -2
  19. package/dist/cjs/src/descriptor/createWallet/createDescriptors.d.ts.map +1 -1
  20. package/dist/cjs/src/descriptor/createWallet/createDescriptors.js +1 -1
  21. package/dist/cjs/src/descriptor/descriptorWallet.d.ts +1 -1
  22. package/dist/cjs/src/descriptor/descriptorWallet.d.ts.map +1 -1
  23. package/dist/cjs/src/descriptor/descriptorWallet.js +1 -1
  24. package/dist/cjs/src/descriptor/index.d.ts +1 -1
  25. package/dist/cjs/src/descriptor/index.d.ts.map +1 -1
  26. package/dist/cjs/src/descriptor/index.js +1 -1
  27. package/dist/cjs/src/descriptor/validatePolicy.d.ts +3 -3
  28. package/dist/cjs/src/descriptor/validatePolicy.d.ts.map +1 -1
  29. package/dist/cjs/src/descriptor/validatePolicy.js +3 -3
  30. package/dist/cjs/src/impl/bch/bch.d.ts.map +1 -1
  31. package/dist/cjs/src/impl/bch/bch.js +6 -38
  32. package/dist/cjs/src/impl/btc/inscriptionBuilder.d.ts +15 -5
  33. package/dist/cjs/src/impl/btc/inscriptionBuilder.d.ts.map +1 -1
  34. package/dist/cjs/src/impl/btc/inscriptionBuilder.js +43 -55
  35. package/dist/cjs/src/impl/doge/doge.d.ts +2 -1
  36. package/dist/cjs/src/impl/doge/doge.d.ts.map +1 -1
  37. package/dist/cjs/src/impl/doge/doge.js +1 -1
  38. package/dist/cjs/src/impl/ltc/ltc.d.ts +0 -1
  39. package/dist/cjs/src/impl/ltc/ltc.d.ts.map +1 -1
  40. package/dist/cjs/src/impl/ltc/ltc.js +3 -41
  41. package/dist/cjs/src/impl/ltc/tltc.d.ts +0 -1
  42. package/dist/cjs/src/impl/ltc/tltc.d.ts.map +1 -1
  43. package/dist/cjs/src/impl/ltc/tltc.js +3 -40
  44. package/dist/cjs/src/index.d.ts +2 -0
  45. package/dist/cjs/src/index.d.ts.map +1 -1
  46. package/dist/cjs/src/index.js +3 -1
  47. package/dist/cjs/src/keychains.d.ts +5 -0
  48. package/dist/cjs/src/keychains.d.ts.map +1 -1
  49. package/dist/cjs/src/keychains.js +10 -1
  50. package/dist/cjs/src/offlineVault/OfflineVaultHalfSigned.js +2 -2
  51. package/dist/cjs/src/offlineVault/descriptor/transaction.d.ts +3 -2
  52. package/dist/cjs/src/offlineVault/descriptor/transaction.d.ts.map +1 -1
  53. package/dist/cjs/src/offlineVault/descriptor/transaction.js +5 -8
  54. package/dist/cjs/src/recovery/RecoveryProvider.d.ts +1 -3
  55. package/dist/cjs/src/recovery/RecoveryProvider.d.ts.map +1 -1
  56. package/dist/cjs/src/recovery/RecoveryProvider.js +1 -1
  57. package/dist/cjs/src/recovery/backupKeyRecovery.d.ts +73 -4
  58. package/dist/cjs/src/recovery/backupKeyRecovery.d.ts.map +1 -1
  59. package/dist/cjs/src/recovery/backupKeyRecovery.js +163 -129
  60. package/dist/cjs/src/recovery/crossChainRecovery.d.ts +5 -5
  61. package/dist/cjs/src/recovery/crossChainRecovery.d.ts.map +1 -1
  62. package/dist/cjs/src/recovery/crossChainRecovery.js +22 -121
  63. package/dist/cjs/src/recovery/psbt.d.ts +8 -31
  64. package/dist/cjs/src/recovery/psbt.d.ts.map +1 -1
  65. package/dist/cjs/src/recovery/psbt.js +14 -126
  66. package/dist/cjs/src/transaction/descriptor/explainPsbt.d.ts +3 -3
  67. package/dist/cjs/src/transaction/descriptor/explainPsbt.d.ts.map +1 -1
  68. package/dist/cjs/src/transaction/descriptor/explainPsbt.js +17 -54
  69. package/dist/cjs/src/transaction/descriptor/index.d.ts +1 -1
  70. package/dist/cjs/src/transaction/descriptor/index.d.ts.map +1 -1
  71. package/dist/cjs/src/transaction/descriptor/index.js +1 -1
  72. package/dist/cjs/src/transaction/descriptor/parse.d.ts +6 -4
  73. package/dist/cjs/src/transaction/descriptor/parse.d.ts.map +1 -1
  74. package/dist/cjs/src/transaction/descriptor/parse.js +24 -50
  75. package/dist/cjs/src/transaction/descriptor/signPsbt.d.ts +6 -7
  76. package/dist/cjs/src/transaction/descriptor/signPsbt.d.ts.map +1 -1
  77. package/dist/cjs/src/transaction/descriptor/signPsbt.js +19 -18
  78. package/dist/cjs/src/transaction/descriptor/verifyTransaction.d.ts +4 -4
  79. package/dist/cjs/src/transaction/descriptor/verifyTransaction.d.ts.map +1 -1
  80. package/dist/cjs/src/transaction/descriptor/verifyTransaction.js +10 -38
  81. package/dist/cjs/src/transaction/explainTransaction.d.ts +2 -1
  82. package/dist/cjs/src/transaction/explainTransaction.d.ts.map +1 -1
  83. package/dist/cjs/src/transaction/explainTransaction.js +3 -2
  84. package/dist/cjs/src/transaction/fixedScript/SigningError.d.ts +5 -3
  85. package/dist/cjs/src/transaction/fixedScript/SigningError.d.ts.map +1 -1
  86. package/dist/cjs/src/transaction/fixedScript/SigningError.js +10 -2
  87. package/dist/cjs/src/transaction/fixedScript/explainTransaction.d.ts +2 -1
  88. package/dist/cjs/src/transaction/fixedScript/explainTransaction.d.ts.map +1 -1
  89. package/dist/cjs/src/transaction/fixedScript/explainTransaction.js +1 -8
  90. package/dist/cjs/src/transaction/fixedScript/parseOutput.d.ts.map +1 -1
  91. package/dist/cjs/src/transaction/fixedScript/parseOutput.js +8 -12
  92. package/dist/cjs/src/transaction/fixedScript/parseTransaction.d.ts +2 -2
  93. package/dist/cjs/src/transaction/fixedScript/parseTransaction.d.ts.map +1 -1
  94. package/dist/cjs/src/transaction/fixedScript/parseTransaction.js +36 -11
  95. package/dist/cjs/src/transaction/fixedScript/signLegacyTransaction.d.ts +2 -2
  96. package/dist/cjs/src/transaction/fixedScript/signLegacyTransaction.d.ts.map +1 -1
  97. package/dist/cjs/src/transaction/fixedScript/signLegacyTransaction.js +4 -2
  98. package/dist/cjs/src/transaction/fixedScript/signPsbtUtxolib.d.ts +1 -1
  99. package/dist/cjs/src/transaction/fixedScript/signPsbtUtxolib.d.ts.map +1 -1
  100. package/dist/cjs/src/transaction/fixedScript/signPsbtUtxolib.js +1 -1
  101. package/dist/cjs/src/transaction/fixedScript/signPsbtWasm.d.ts +3 -2
  102. package/dist/cjs/src/transaction/fixedScript/signPsbtWasm.d.ts.map +1 -1
  103. package/dist/cjs/src/transaction/fixedScript/signPsbtWasm.js +15 -25
  104. package/dist/cjs/src/transaction/fixedScript/signTransaction.d.ts +6 -5
  105. package/dist/cjs/src/transaction/fixedScript/signTransaction.d.ts.map +1 -1
  106. package/dist/cjs/src/transaction/fixedScript/signTransaction.js +42 -7
  107. package/dist/cjs/src/transaction/outputDifference.d.ts +5 -1
  108. package/dist/cjs/src/transaction/outputDifference.d.ts.map +1 -1
  109. package/dist/cjs/src/transaction/outputDifference.js +6 -2
  110. package/dist/cjs/src/transaction/recipient.d.ts +5 -0
  111. package/dist/cjs/src/transaction/recipient.d.ts.map +1 -1
  112. package/dist/cjs/src/transaction/recipient.js +14 -1
  113. package/dist/cjs/src/transaction/signTransaction.d.ts.map +1 -1
  114. package/dist/cjs/src/transaction/signTransaction.js +10 -10
  115. package/dist/cjs/src/unspent.d.ts +55 -0
  116. package/dist/cjs/src/unspent.d.ts.map +1 -0
  117. package/dist/cjs/src/unspent.js +12 -0
  118. package/dist/cjs/src/wasmUtil.d.ts +29 -0
  119. package/dist/cjs/src/wasmUtil.d.ts.map +1 -0
  120. package/dist/cjs/src/wasmUtil.js +87 -0
  121. package/dist/cjs/test/unit/address.d.ts +1 -1
  122. package/dist/cjs/test/unit/address.d.ts.map +1 -1
  123. package/dist/cjs/test/unit/address.js +107 -137
  124. package/dist/cjs/test/unit/bip322.js +50 -1
  125. package/dist/cjs/test/unit/coins.js +7 -2
  126. package/dist/cjs/test/unit/customSigner.js +5 -4
  127. package/dist/cjs/test/unit/descriptor/NamedDescriptor.js +37 -4
  128. package/dist/cjs/test/unit/descriptor/builder.js +10 -4
  129. package/dist/cjs/test/unit/descriptor/createWallet/createDescriptors.js +37 -4
  130. package/dist/cjs/test/unit/descriptor/descriptorWallet.js +40 -6
  131. package/dist/cjs/test/unit/descriptorAddress.d.ts +2 -2
  132. package/dist/cjs/test/unit/descriptorAddress.d.ts.map +1 -1
  133. package/dist/cjs/test/unit/descriptorAddress.js +10 -9
  134. package/dist/cjs/test/unit/explainTransaction.js +26 -3
  135. package/dist/cjs/test/unit/keychains.js +40 -1
  136. package/dist/cjs/test/unit/postProcessPrebuild.d.ts +2 -0
  137. package/dist/cjs/test/unit/postProcessPrebuild.d.ts.map +1 -0
  138. package/dist/cjs/test/unit/postProcessPrebuild.js +62 -0
  139. package/dist/cjs/test/unit/prebuildAndSign.d.ts +0 -4
  140. package/dist/cjs/test/unit/prebuildAndSign.d.ts.map +1 -1
  141. package/dist/cjs/test/unit/prebuildAndSign.js +12 -31
  142. package/dist/cjs/test/unit/recovery/backupKeyRecovery.js +82 -258
  143. package/dist/cjs/test/unit/recovery/backupKeyRecoveryUnspentGathering.d.ts +2 -0
  144. package/dist/cjs/test/unit/recovery/backupKeyRecoveryUnspentGathering.d.ts.map +1 -0
  145. package/dist/cjs/test/unit/recovery/backupKeyRecoveryUnspentGathering.js +144 -0
  146. package/dist/cjs/test/unit/recovery/crossChainRecovery.js +41 -37
  147. package/dist/cjs/test/unit/recovery/formatBackupKeyRecoveryResult.d.ts +2 -0
  148. package/dist/cjs/test/unit/recovery/formatBackupKeyRecoveryResult.d.ts.map +1 -0
  149. package/dist/cjs/test/unit/recovery/formatBackupKeyRecoveryResult.js +186 -0
  150. package/dist/cjs/test/unit/recovery/mock.d.ts +15 -8
  151. package/dist/cjs/test/unit/recovery/mock.d.ts.map +1 -1
  152. package/dist/cjs/test/unit/recovery/mock.js +50 -77
  153. package/dist/cjs/test/unit/signTransaction.d.ts +2 -0
  154. package/dist/cjs/test/unit/signTransaction.d.ts.map +1 -0
  155. package/dist/cjs/test/unit/signTransaction.js +244 -0
  156. package/dist/cjs/test/unit/testSpoofTransaction.d.ts +2 -0
  157. package/dist/cjs/test/unit/testSpoofTransaction.d.ts.map +1 -0
  158. package/dist/cjs/test/unit/testSpoofTransaction.js +114 -0
  159. package/dist/cjs/test/unit/transaction/descriptor/explainPsbt.js +46 -12
  160. package/dist/cjs/test/unit/transaction/descriptor/fixtures.utils.d.ts.map +1 -1
  161. package/dist/cjs/test/unit/transaction/descriptor/fixtures.utils.js +38 -4
  162. package/dist/cjs/test/unit/transaction/descriptor/parse.js +22 -19
  163. package/dist/cjs/test/unit/transaction/descriptor/sign.js +60 -16
  164. package/dist/cjs/test/unit/transaction/descriptor/validatePolicy.js +43 -10
  165. package/dist/cjs/test/unit/transaction/fixedScript/parsePsbt.js +2 -2
  166. package/dist/cjs/test/unit/transaction/outputDifference.d.ts.map +1 -0
  167. package/dist/cjs/test/unit/transaction/outputDifference.js +117 -0
  168. package/dist/cjs/test/unit/transaction.js +8 -226
  169. package/dist/cjs/test/unit/txFormat.d.ts.map +1 -1
  170. package/dist/cjs/test/unit/txFormat.js +9 -9
  171. package/dist/cjs/test/unit/util/address.d.ts +13 -0
  172. package/dist/cjs/test/unit/util/address.d.ts.map +1 -0
  173. package/dist/cjs/test/unit/util/address.js +15 -0
  174. package/dist/cjs/test/unit/util/index.d.ts +3 -0
  175. package/dist/cjs/test/unit/util/index.d.ts.map +1 -1
  176. package/dist/cjs/test/unit/util/index.js +4 -1
  177. package/dist/cjs/test/unit/util/keychains.d.ts +29 -0
  178. package/dist/cjs/test/unit/util/keychains.d.ts.map +1 -1
  179. package/dist/cjs/test/unit/util/keychains.js +51 -1
  180. package/dist/cjs/test/unit/util/nockBitGo.d.ts +8 -1
  181. package/dist/cjs/test/unit/util/nockBitGo.d.ts.map +1 -1
  182. package/dist/cjs/test/unit/util/nockBitGo.js +17 -1
  183. package/dist/cjs/test/unit/util/nockIndexerAPI.d.ts.map +1 -1
  184. package/dist/cjs/test/unit/util/nockIndexerAPI.js +4 -37
  185. package/dist/cjs/test/unit/util/psbt.d.ts +19 -0
  186. package/dist/cjs/test/unit/util/psbt.d.ts.map +1 -0
  187. package/dist/cjs/test/unit/util/psbt.js +21 -0
  188. package/dist/cjs/test/unit/util/transaction.d.ts +8 -4
  189. package/dist/cjs/test/unit/util/transaction.d.ts.map +1 -1
  190. package/dist/cjs/test/unit/util/transaction.js +22 -2
  191. package/dist/cjs/test/unit/util/unspents.d.ts +66 -8
  192. package/dist/cjs/test/unit/util/unspents.d.ts.map +1 -1
  193. package/dist/cjs/test/unit/util/unspents.js +130 -15
  194. package/dist/cjs/test/unit/util/utxoCoins.d.ts +13 -0
  195. package/dist/cjs/test/unit/util/utxoCoins.d.ts.map +1 -1
  196. package/dist/cjs/test/unit/util/utxoCoins.js +33 -2
  197. package/dist/cjs/test/unit/wallet.js +4 -4
  198. package/dist/cjs/tsconfig.tsbuildinfo +1 -1
  199. package/dist/esm/abstractUtxoCoin.d.ts +9 -13
  200. package/dist/esm/abstractUtxoCoin.d.ts.map +1 -1
  201. package/dist/esm/abstractUtxoCoin.js +30 -16
  202. package/dist/esm/address/fixedScript.d.ts +4 -9
  203. package/dist/esm/address/fixedScript.d.ts.map +1 -1
  204. package/dist/esm/address/fixedScript.js +18 -17
  205. package/dist/esm/descriptor/NamedDescriptor.d.ts +4 -5
  206. package/dist/esm/descriptor/NamedDescriptor.d.ts.map +1 -1
  207. package/dist/esm/descriptor/NamedDescriptor.js +5 -7
  208. package/dist/esm/descriptor/assertDescriptorWalletAddress.d.ts +2 -2
  209. package/dist/esm/descriptor/assertDescriptorWalletAddress.d.ts.map +1 -1
  210. package/dist/esm/descriptor/assertDescriptorWalletAddress.js +3 -5
  211. package/dist/esm/descriptor/builder/builder.d.ts +2 -3
  212. package/dist/esm/descriptor/builder/builder.d.ts.map +1 -1
  213. package/dist/esm/descriptor/builder/builder.js +1 -1
  214. package/dist/esm/descriptor/builder/parse.d.ts.map +1 -1
  215. package/dist/esm/descriptor/builder/parse.js +3 -3
  216. package/dist/esm/descriptor/createWallet/createDescriptors.d.ts +2 -2
  217. package/dist/esm/descriptor/createWallet/createDescriptors.d.ts.map +1 -1
  218. package/dist/esm/descriptor/createWallet/createDescriptors.js +1 -1
  219. package/dist/esm/descriptor/descriptorWallet.d.ts +1 -1
  220. package/dist/esm/descriptor/descriptorWallet.d.ts.map +1 -1
  221. package/dist/esm/descriptor/descriptorWallet.js +1 -1
  222. package/dist/esm/descriptor/index.d.ts +1 -1
  223. package/dist/esm/descriptor/index.d.ts.map +1 -1
  224. package/dist/esm/descriptor/index.js +1 -1
  225. package/dist/esm/descriptor/validatePolicy.d.ts +3 -3
  226. package/dist/esm/descriptor/validatePolicy.d.ts.map +1 -1
  227. package/dist/esm/descriptor/validatePolicy.js +3 -3
  228. package/dist/esm/impl/bch/bch.d.ts.map +1 -1
  229. package/dist/esm/impl/bch/bch.js +6 -5
  230. package/dist/esm/impl/btc/inscriptionBuilder.d.ts +15 -5
  231. package/dist/esm/impl/btc/inscriptionBuilder.d.ts.map +1 -1
  232. package/dist/esm/impl/btc/inscriptionBuilder.js +44 -23
  233. package/dist/esm/impl/doge/doge.d.ts +2 -1
  234. package/dist/esm/impl/doge/doge.d.ts.map +1 -1
  235. package/dist/esm/impl/doge/doge.js +1 -1
  236. package/dist/esm/impl/ltc/ltc.d.ts +0 -1
  237. package/dist/esm/impl/ltc/ltc.d.ts.map +1 -1
  238. package/dist/esm/impl/ltc/ltc.js +3 -8
  239. package/dist/esm/impl/ltc/tltc.d.ts +0 -1
  240. package/dist/esm/impl/ltc/tltc.d.ts.map +1 -1
  241. package/dist/esm/impl/ltc/tltc.js +3 -7
  242. package/dist/esm/index.d.ts +2 -0
  243. package/dist/esm/index.d.ts.map +1 -1
  244. package/dist/esm/index.js +3 -1
  245. package/dist/esm/keychains.d.ts +5 -0
  246. package/dist/esm/keychains.d.ts.map +1 -1
  247. package/dist/esm/keychains.js +9 -1
  248. package/dist/esm/offlineVault/OfflineVaultHalfSigned.js +2 -2
  249. package/dist/esm/offlineVault/descriptor/transaction.d.ts +3 -2
  250. package/dist/esm/offlineVault/descriptor/transaction.d.ts.map +1 -1
  251. package/dist/esm/offlineVault/descriptor/transaction.js +5 -8
  252. package/dist/esm/recovery/RecoveryProvider.d.ts +1 -3
  253. package/dist/esm/recovery/RecoveryProvider.d.ts.map +1 -1
  254. package/dist/esm/recovery/RecoveryProvider.js +1 -1
  255. package/dist/esm/recovery/backupKeyRecovery.d.ts +73 -4
  256. package/dist/esm/recovery/backupKeyRecovery.d.ts.map +1 -1
  257. package/dist/esm/recovery/backupKeyRecovery.js +165 -100
  258. package/dist/esm/recovery/crossChainRecovery.d.ts +5 -5
  259. package/dist/esm/recovery/crossChainRecovery.d.ts.map +1 -1
  260. package/dist/esm/recovery/crossChainRecovery.js +24 -90
  261. package/dist/esm/recovery/psbt.d.ts +8 -31
  262. package/dist/esm/recovery/psbt.d.ts.map +1 -1
  263. package/dist/esm/recovery/psbt.js +14 -91
  264. package/dist/esm/transaction/descriptor/explainPsbt.d.ts +3 -3
  265. package/dist/esm/transaction/descriptor/explainPsbt.d.ts.map +1 -1
  266. package/dist/esm/transaction/descriptor/explainPsbt.js +14 -18
  267. package/dist/esm/transaction/descriptor/index.d.ts +1 -1
  268. package/dist/esm/transaction/descriptor/index.d.ts.map +1 -1
  269. package/dist/esm/transaction/descriptor/index.js +1 -1
  270. package/dist/esm/transaction/descriptor/parse.d.ts +6 -4
  271. package/dist/esm/transaction/descriptor/parse.d.ts.map +1 -1
  272. package/dist/esm/transaction/descriptor/parse.js +22 -15
  273. package/dist/esm/transaction/descriptor/signPsbt.d.ts +6 -7
  274. package/dist/esm/transaction/descriptor/signPsbt.d.ts.map +1 -1
  275. package/dist/esm/transaction/descriptor/signPsbt.js +19 -18
  276. package/dist/esm/transaction/descriptor/verifyTransaction.d.ts +4 -4
  277. package/dist/esm/transaction/descriptor/verifyTransaction.d.ts.map +1 -1
  278. package/dist/esm/transaction/descriptor/verifyTransaction.js +10 -5
  279. package/dist/esm/transaction/explainTransaction.d.ts +2 -1
  280. package/dist/esm/transaction/explainTransaction.d.ts.map +1 -1
  281. package/dist/esm/transaction/explainTransaction.js +3 -2
  282. package/dist/esm/transaction/fixedScript/SigningError.d.ts +5 -3
  283. package/dist/esm/transaction/fixedScript/SigningError.d.ts.map +1 -1
  284. package/dist/esm/transaction/fixedScript/SigningError.js +8 -1
  285. package/dist/esm/transaction/fixedScript/explainTransaction.d.ts +2 -1
  286. package/dist/esm/transaction/fixedScript/explainTransaction.d.ts.map +1 -1
  287. package/dist/esm/transaction/fixedScript/explainTransaction.js +1 -8
  288. package/dist/esm/transaction/fixedScript/parseOutput.d.ts.map +1 -1
  289. package/dist/esm/transaction/fixedScript/parseOutput.js +8 -12
  290. package/dist/esm/transaction/fixedScript/parseTransaction.d.ts +2 -2
  291. package/dist/esm/transaction/fixedScript/parseTransaction.d.ts.map +1 -1
  292. package/dist/esm/transaction/fixedScript/parseTransaction.js +36 -11
  293. package/dist/esm/transaction/fixedScript/signLegacyTransaction.d.ts +2 -2
  294. package/dist/esm/transaction/fixedScript/signLegacyTransaction.d.ts.map +1 -1
  295. package/dist/esm/transaction/fixedScript/signLegacyTransaction.js +4 -2
  296. package/dist/esm/transaction/fixedScript/signPsbtUtxolib.d.ts +1 -1
  297. package/dist/esm/transaction/fixedScript/signPsbtUtxolib.d.ts.map +1 -1
  298. package/dist/esm/transaction/fixedScript/signPsbtUtxolib.js +1 -1
  299. package/dist/esm/transaction/fixedScript/signPsbtWasm.d.ts +3 -2
  300. package/dist/esm/transaction/fixedScript/signPsbtWasm.d.ts.map +1 -1
  301. package/dist/esm/transaction/fixedScript/signPsbtWasm.js +14 -24
  302. package/dist/esm/transaction/fixedScript/signTransaction.d.ts +6 -5
  303. package/dist/esm/transaction/fixedScript/signTransaction.d.ts.map +1 -1
  304. package/dist/esm/transaction/fixedScript/signTransaction.js +10 -8
  305. package/dist/esm/transaction/outputDifference.d.ts +5 -1
  306. package/dist/esm/transaction/outputDifference.d.ts.map +1 -1
  307. package/dist/esm/transaction/outputDifference.js +5 -2
  308. package/dist/esm/transaction/recipient.d.ts +5 -0
  309. package/dist/esm/transaction/recipient.d.ts.map +1 -1
  310. package/dist/esm/transaction/recipient.js +13 -1
  311. package/dist/esm/transaction/signTransaction.d.ts.map +1 -1
  312. package/dist/esm/transaction/signTransaction.js +10 -10
  313. package/dist/esm/unspent.d.ts +55 -0
  314. package/dist/esm/unspent.d.ts.map +1 -0
  315. package/dist/esm/unspent.js +8 -0
  316. package/dist/esm/wasmUtil.d.ts +29 -0
  317. package/dist/esm/wasmUtil.d.ts.map +1 -0
  318. package/dist/esm/wasmUtil.js +47 -0
  319. package/package.json +13 -14
  320. package/dist/cjs/test/unit/impl/btc/unit/btc.d.ts +0 -2
  321. package/dist/cjs/test/unit/impl/btc/unit/btc.d.ts.map +0 -1
  322. package/dist/cjs/test/unit/impl/btc/unit/btc.js +0 -220
  323. package/dist/cjs/test/unit/impl/btc/unit/fixtures/btcBackupKey.d.ts +0 -4
  324. package/dist/cjs/test/unit/impl/btc/unit/fixtures/btcBackupKey.d.ts.map +0 -1
  325. package/dist/cjs/test/unit/impl/btc/unit/fixtures/btcBackupKey.js +0 -10
  326. package/dist/cjs/test/unit/impl/btc/unit/fixtures/index.d.ts +0 -2
  327. package/dist/cjs/test/unit/impl/btc/unit/fixtures/index.d.ts.map +0 -1
  328. package/dist/cjs/test/unit/impl/btc/unit/fixtures/index.js +0 -18
  329. package/dist/cjs/test/unit/impl/ltc/unit/index.d.ts +0 -2
  330. package/dist/cjs/test/unit/impl/ltc/unit/index.d.ts.map +0 -1
  331. package/dist/cjs/test/unit/impl/ltc/unit/index.js +0 -39
  332. package/dist/cjs/test/unit/transaction/descriptor/outputDifference.d.ts.map +0 -1
  333. package/dist/cjs/test/unit/transaction/descriptor/outputDifference.js +0 -76
  334. /package/dist/cjs/test/unit/transaction/{descriptor/outputDifference.d.ts → outputDifference.d.ts} +0 -0
@@ -1,67 +1,19 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
2
  Object.defineProperty(exports, "__esModule", { value: true });
36
3
  exports.isTaprootChain = isTaprootChain;
37
- exports.toNetworkName = toNetworkName;
38
4
  exports.createEmptyWasmPsbt = createEmptyWasmPsbt;
39
5
  exports.addWalletInputsToWasmPsbt = addWalletInputsToWasmPsbt;
40
6
  exports.addOutputToWasmPsbt = addOutputToWasmPsbt;
41
- exports.toPsbtToUtxolibPsbt = toPsbtToUtxolibPsbt;
42
7
  exports.createBackupKeyRecoveryPsbt = createBackupKeyRecoveryPsbt;
43
8
  exports.getRecoveryAmount = getRecoveryAmount;
44
- const utxolib = __importStar(require("@bitgo/utxo-lib"));
45
- const unspents_1 = require("@bitgo/unspents");
46
9
  const wasm_utxo_1 = require("@bitgo/wasm-utxo");
47
- const names_1 = require("../names");
48
- const { chainCodesP2tr, chainCodesP2trMusig2 } = utxolib.bitgo;
10
+ const unspent_1 = require("../unspent");
49
11
  /**
50
12
  * Check if a chain code is for a taproot script type
51
13
  */
52
14
  function isTaprootChain(chain) {
53
- return (chainCodesP2tr.includes(chain) || chainCodesP2trMusig2.includes(chain));
54
- }
55
- /**
56
- * Convert coin name to wasm-utxo network name
57
- */
58
- function toNetworkName(coinName) {
59
- const network = (0, names_1.getNetworkFromCoinName)(coinName);
60
- const networkName = utxolib.getNetworkName(network);
61
- if (!networkName) {
62
- throw new Error(`Invalid coinName: ${coinName}`);
63
- }
64
- return networkName;
15
+ const scriptType = wasm_utxo_1.fixedScriptWallet.ChainCode.scriptType(chain);
16
+ return scriptType === 'p2trLegacy' || scriptType === 'p2trMusig2';
65
17
  }
66
18
  class InsufficientFundsError extends Error {
67
19
  constructor(totalInputAmount, approximateFee, krsFee, recoveryAmount) {
@@ -76,38 +28,6 @@ class InsufficientFundsError extends Error {
76
28
  this.recoveryAmount = recoveryAmount;
77
29
  }
78
30
  }
79
- /**
80
- * Create a backup key recovery PSBT using utxolib (legacy implementation)
81
- */
82
- function createBackupKeyRecoveryPsbtUtxolib(coinName, rootWalletKeys, unspents, options) {
83
- const network = (0, names_1.getNetworkFromCoinName)(coinName);
84
- const { feeRateSatVB, recoveryDestination, keyRecoveryServiceFee, keyRecoveryServiceFeeAddress } = options;
85
- const psbt = utxolib.bitgo.createPsbtForNetwork({ network });
86
- utxolib.bitgo.addXpubsToPsbt(psbt, rootWalletKeys);
87
- unspents.forEach((unspent) => {
88
- utxolib.bitgo.addWalletUnspentToPsbt(psbt, unspent, rootWalletKeys, 'user', 'backup');
89
- });
90
- let dimensions = unspents_1.Dimensions.fromPsbt(psbt).plus(unspents_1.Dimensions.fromOutput({ script: utxolib.address.toOutputScript(recoveryDestination, network) }));
91
- if (keyRecoveryServiceFeeAddress) {
92
- dimensions = dimensions.plus(unspents_1.Dimensions.fromOutput({
93
- script: utxolib.address.toOutputScript(keyRecoveryServiceFeeAddress, network),
94
- }));
95
- }
96
- const approximateFee = BigInt(dimensions.getVSize() * feeRateSatVB);
97
- const totalInputAmount = utxolib.bitgo.unspentSum(unspents, 'bigint');
98
- const recoveryAmount = totalInputAmount - approximateFee - keyRecoveryServiceFee;
99
- if (recoveryAmount < BigInt(0)) {
100
- throw new InsufficientFundsError(totalInputAmount, approximateFee, keyRecoveryServiceFee, recoveryAmount);
101
- }
102
- psbt.addOutput({ script: utxolib.address.toOutputScript(recoveryDestination, network), value: recoveryAmount });
103
- if (keyRecoveryServiceFeeAddress) {
104
- psbt.addOutput({
105
- script: utxolib.address.toOutputScript(keyRecoveryServiceFeeAddress, network),
106
- value: keyRecoveryServiceFee,
107
- });
108
- }
109
- return psbt;
110
- }
111
31
  /**
112
32
  * Check if the network is a Zcash network
113
33
  */
@@ -152,7 +72,7 @@ function createEmptyWasmPsbt(coinName, rootWalletKeys, options) {
152
72
  */
153
73
  function addWalletInputsToWasmPsbt(wasmPsbt, unspents, rootWalletKeys) {
154
74
  unspents.forEach((unspent) => {
155
- const { txid, vout } = utxolib.bitgo.parseOutputId(unspent.id);
75
+ const { txid, vout } = (0, unspent_1.parseOutputId)(unspent.id);
156
76
  const signPath = isTaprootChain(unspent.chain)
157
77
  ? { signer: 'user', cosigner: 'backup' }
158
78
  : undefined;
@@ -182,20 +102,6 @@ function addOutputToWasmPsbt(wasmPsbt, address, value, coinName) {
182
102
  const script = wasm_utxo_1.address.toOutputScriptWithCoin(address, coinName);
183
103
  return wasmPsbt.addOutput({ script, value });
184
104
  }
185
- /**
186
- * Convert a wasm-utxo BitGoPsbt to a utxolib UtxoPsbt.
187
- *
188
- * @param wasmPsbt - The wasm-utxo BitGoPsbt to convert
189
- * @param network - The network
190
- * @returns A utxolib UtxoPsbt
191
- */
192
- function toPsbtToUtxolibPsbt(wasmPsbt, coinName) {
193
- if (wasmPsbt instanceof wasm_utxo_1.fixedScriptWallet.BitGoPsbt) {
194
- const network = (0, names_1.getNetworkFromCoinName)(coinName);
195
- return utxolib.bitgo.createPsbtFromBuffer(Buffer.from(wasmPsbt.serialize()), network);
196
- }
197
- return wasmPsbt;
198
- }
199
105
  /**
200
106
  * Create a backup key recovery PSBT using wasm-utxo
201
107
  */
@@ -210,7 +116,7 @@ function createBackupKeyRecoveryPsbtWasm(coinName, rootWalletKeys, unspents, opt
210
116
  dimensions = dimensions.plus(wasm_utxo_1.fixedScriptWallet.Dimensions.fromOutput(keyRecoveryServiceFeeAddress, coinName));
211
117
  }
212
118
  const approximateFee = BigInt(dimensions.getVSize() * feeRateSatVB);
213
- const totalInputAmount = utxolib.bitgo.unspentSum(unspents, 'bigint');
119
+ const totalInputAmount = (0, unspent_1.unspentSum)(unspents);
214
120
  const recoveryAmount = totalInputAmount - approximateFee - keyRecoveryServiceFee;
215
121
  if (recoveryAmount < BigInt(0)) {
216
122
  throw new InsufficientFundsError(totalInputAmount, approximateFee, keyRecoveryServiceFee, recoveryAmount);
@@ -220,46 +126,28 @@ function createBackupKeyRecoveryPsbtWasm(coinName, rootWalletKeys, unspents, opt
220
126
  if (keyRecoveryServiceFeeAddress) {
221
127
  addOutputToWasmPsbt(wasmPsbt, keyRecoveryServiceFeeAddress, keyRecoveryServiceFee, coinName);
222
128
  }
223
- // Convert to utxolib PSBT for signing and return
224
129
  return wasmPsbt;
225
130
  }
226
131
  /**
227
132
  * Create a backup key recovery PSBT.
228
133
  *
229
- * @param network - The network for the PSBT
134
+ * @param coinName - The coin name for the PSBT
230
135
  * @param rootWalletKeys - The wallet keys
231
136
  * @param unspents - The unspents to include in the PSBT
232
137
  * @param options - Options for creating the PSBT
233
- * @param backend - Which backend to use for PSBT creation (default: 'wasm-utxo')
234
138
  */
235
- function createBackupKeyRecoveryPsbt(coinName, rootWalletKeys, unspents, options, backend = 'wasm-utxo') {
139
+ function createBackupKeyRecoveryPsbt(coinName, rootWalletKeys, unspents, options) {
236
140
  if (options.keyRecoveryServiceFee > 0 && !options.keyRecoveryServiceFeeAddress) {
237
141
  throw new Error('keyRecoveryServiceFeeAddress is required when keyRecoveryServiceFee is provided');
238
142
  }
239
- if (backend === 'wasm-utxo') {
240
- return createBackupKeyRecoveryPsbtWasm(coinName, rootWalletKeys, unspents, options);
241
- }
242
- else {
243
- return createBackupKeyRecoveryPsbtUtxolib(coinName, rootWalletKeys, unspents, options);
244
- }
143
+ return createBackupKeyRecoveryPsbtWasm(coinName, rootWalletKeys, unspents, options);
245
144
  }
246
145
  function getRecoveryAmount(psbt, walletKeys, address) {
247
- if (psbt instanceof utxolib.bitgo.UtxoPsbt) {
248
- const recoveryOutputScript = utxolib.address.toOutputScript(address, psbt.network);
249
- const output = psbt.txOutputs.find((o) => o.script.equals(recoveryOutputScript));
250
- if (!output) {
251
- throw new Error(`Recovery destination output not found in PSBT: ${address}`);
252
- }
253
- return output.value;
254
- }
255
- if (psbt instanceof wasm_utxo_1.fixedScriptWallet.BitGoPsbt) {
256
- const parsedOutputs = psbt.parseOutputsWithWalletKeys(walletKeys);
257
- const recoveryOutput = parsedOutputs.find((o) => o.address === address);
258
- if (!recoveryOutput) {
259
- throw new Error(`Recovery destination output not found in PSBT: ${address}`);
260
- }
261
- return recoveryOutput.value;
146
+ const parsedOutputs = psbt.parseOutputsWithWalletKeys(walletKeys);
147
+ const recoveryOutput = parsedOutputs.find((o) => o.address === address);
148
+ if (!recoveryOutput) {
149
+ throw new Error(`Recovery destination output not found in PSBT: ${address}`);
262
150
  }
263
- throw new Error('Invalid PSBT type');
151
+ return BigInt(recoveryOutput.value);
264
152
  }
265
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHNidC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9yZWNvdmVyeS9wc2J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBdUJBLHdDQUlDO0FBS0Qsc0NBT0M7QUFnSEQsa0RBY0M7QUFVRCw4REE0QkM7QUFXRCxrREFRQztBQVNELGtEQVNDO0FBc0RELGtFQWdCQztBQUVELDhDQXNCQztBQTlVRCx5REFBMkM7QUFDM0MsOENBQTZDO0FBQzdDLGdEQUFzRztBQUV0RyxvQ0FBZ0U7QUFLaEUsTUFBTSxFQUFFLGNBQWMsRUFBRSxvQkFBb0IsRUFBRSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7QUFXL0Q7O0dBRUc7QUFDSCxTQUFnQixjQUFjLENBQUMsS0FBZ0I7SUFDN0MsT0FBTyxDQUNKLGNBQW9DLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFLLG9CQUEwQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FDckgsQ0FBQztBQUNKLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLGFBQWEsQ0FBQyxRQUFzQjtJQUNsRCxNQUFNLE9BQU8sR0FBRyxJQUFBLDhCQUFzQixFQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pELE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDcEQsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUNELE9BQU8sV0FBVyxDQUFDO0FBQ3JCLENBQUM7QUFFRCxNQUFNLHNCQUF1QixTQUFRLEtBQUs7SUFDeEMsWUFDUyxnQkFBd0IsRUFDeEIsY0FBc0IsRUFDdEIsTUFBYyxFQUNkLGNBQXNCO1FBRTdCLEtBQUssQ0FDSCxpRkFBaUY7WUFDL0UsK0JBQStCLGdCQUFnQixD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U0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDO1FBQ2pGLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNaLE1BQU0sSUFBSSxLQUFLLENBQUMsa0RBQWtELE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDL0UsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBQ0QsSUFBSSxJQUFJLFlBQVksNkJBQWlCLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDaEQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2xFLE1BQU0sY0FBYyxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEtBQUssT0FBTyxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsa0RBQWtELE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDL0UsQ0FBQztRQUNELE9BQU8sY0FBYyxDQUFDLEtBQUssQ0FBQztJQUM5QixDQUFDO0lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0FBQ3ZDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby91dHhvLWxpYic7XG5pbXBvcnQgeyBEaW1lbnNpb25zIH0gZnJvbSAnQGJpdGdvL3Vuc3BlbnRzJztcbmltcG9ydCB7IENvaW5OYW1lLCBmaXhlZFNjcmlwdFdhbGxldCwgdXR4b2xpYkNvbXBhdCwgYWRkcmVzcyBhcyB3YXNtQWRkcmVzcyB9IGZyb20gJ0BiaXRnby93YXNtLXV0eG8nO1xuXG5pbXBvcnQgeyBnZXROZXR3b3JrRnJvbUNvaW5OYW1lLCBVdHhvQ29pbk5hbWUgfSBmcm9tICcuLi9uYW1lcyc7XG5cbnR5cGUgUm9vdFdhbGxldEtleXMgPSB1dHhvbGliLmJpdGdvLlJvb3RXYWxsZXRLZXlzO1xudHlwZSBXYWxsZXRVbnNwZW50PFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQ+ID0gdXR4b2xpYi5iaXRnby5XYWxsZXRVbnNwZW50PFROdW1iZXI+O1xuXG5jb25zdCB7IGNoYWluQ29kZXNQMnRyLCBjaGFpbkNvZGVzUDJ0ck11c2lnMiB9ID0gdXR4b2xpYi5iaXRnbztcblxudHlwZSBDaGFpbkNvZGUgPSB1dHhvbGliLmJpdGdvLkNoYWluQ29kZTtcblxuLyoqXG4gKiBCYWNrZW5kIHRvIHVzZSBmb3IgUFNCVCBjcmVhdGlvbi5cbiAqIC0gJ3dhc20tdXR4byc6IFVzZSB3YXNtLXV0eG8gZm9yIFBTQlQgY3JlYXRpb24gKGRlZmF1bHQpXG4gKiAtICd1dHhvbGliJzogVXNlIHV0eG9saWIgZm9yIFBTQlQgY3JlYXRpb24gKGxlZ2FjeSlcbiAqL1xuZXhwb3J0IHR5cGUgUHNidEJhY2tlbmQgPSAnd2FzbS11dHhvJyB8ICd1dHhvbGliJztcblxuLyoqXG4gKiBDaGVjayBpZiBhIGNoYWluIGNvZGUgaXMgZm9yIGEgdGFwcm9vdCBzY3JpcHQgdHlwZVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNUYXByb290Q2hhaW4oY2hhaW46IENoYWluQ29kZSk6IGJvb2xlYW4ge1xuICByZXR1cm4gKFxuICAgIChjaGFpbkNvZGVzUDJ0ciBhcyByZWFkb25seSBudW1iZXJbXSkuaW5jbHVkZXMoY2hhaW4pIHx8IChjaGFpbkNvZGVzUDJ0ck11c2lnMiBhcyByZWFkb25seSBudW1iZXJbXSkuaW5jbHVkZXMoY2hhaW4pXG4gICk7XG59XG5cbi8qKlxuICogQ29udmVydCBjb2luIG5hbWUgdG8gd2FzbS11dHhvIG5ldHdvcmsgbmFtZVxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9OZXR3b3JrTmFtZShjb2luTmFtZTogVXR4b0NvaW5OYW1lKTogdXR4b2xpYkNvbXBhdC5VdHhvbGliTmFtZSB7XG4gIGNvbnN0IG5ldHdvcmsgPSBnZXROZXR3b3JrRnJvbUNvaW5OYW1lKGNvaW5OYW1lKTtcbiAgY29uc3QgbmV0d29ya05hbWUgPSB1dHhvbGliLmdldE5ldHdvcmtOYW1lKG5ldHdvcmspO1xuICBpZiAoIW5ldHdvcmtOYW1lKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGNvaW5OYW1lOiAke2NvaW5OYW1lfWApO1xuICB9XG4gIHJldHVybiBuZXR3b3JrTmFtZTtcbn1cblxuY2xhc3MgSW5zdWZmaWNpZW50RnVuZHNFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHRvdGFsSW5wdXRBbW91bnQ6IGJpZ2ludCxcbiAgICBwdWJsaWMgYXBwcm94aW1hdGVGZWU6IGJpZ2ludCxcbiAgICBwdWJsaWMga3JzRmVlOiBiaWdpbnQsXG4gICAgcHVibGljIHJlY292ZXJ5QW1vdW50OiBiaWdpbnRcbiAgKSB7XG4gICAgc3VwZXIoXG4gICAgICBgVGhpcyB3YWxsZXQncyBiYWxhbmNlIGlzIHRvbyBsb3cgdG8gcGF5IHRoZSBmZWVzIHNwZWNpZmllZCBieSB0aGUgS1JTIHByb3ZpZGVyLmAgK1xuICAgICAgICBgRXhpc3RpbmcgYmFsYW5jZSBvbiB3YWxsZXQ6ICR7dG90YWxJbnB1dEFtb3VudC50b1N0cmluZygpfS4gYCArXG4gICAgICAgIGBFc3RpbWF0ZWQgbmV0d29yayBmZWUgZm9yIHRoZSByZWNvdmVyeSB0cmFuc2FjdGlvbjogJHthcHByb3hpbWF0ZUZlZS50b1N0cmluZygpfWAgK1xuICAgICAgICBgS1JTIGZlZSB0byBwYXk6ICR7a3JzRmVlLnRvU3RyaW5nKCl9LiBgICtcbiAgICAgICAgYEFmdGVyIGRlZHVjdGluZyBmZWVzLCB5b3VyIHRvdGFsIHJlY292ZXJhYmxlIGJhbGFuY2UgaXMgJHtyZWNvdmVyeUFtb3VudC50b1N0cmluZygpfWBcbiAgICApO1xuICB9XG59XG5cbmludGVyZmFjZSBDcmVhdGVCYWNrdXBLZXlSZWNvdmVyeVBzYnRPcHRpb25zIHtcbiAgZmVlUmF0ZVNhdFZCOiBudW1iZXI7XG4gIHJlY292ZXJ5RGVzdGluYXRpb246IHN0cmluZztcbiAga2V5UmVjb3ZlcnlTZXJ2aWNlRmVlOiBiaWdpbnQ7XG4gIGtleVJlY292ZXJ5U2VydmljZUZlZUFkZHJlc3M6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgLyoqIEJsb2NrIGhlaWdodCBmb3IgWmNhc2ggbmV0d29ya3MgKHJlcXVpcmVkIHRvIGRldGVybWluZSBjb25zZW5zdXMgYnJhbmNoIElEKSAqL1xuICBibG9ja0hlaWdodD86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBiYWNrdXAga2V5IHJlY292ZXJ5IFBTQlQgdXNpbmcgdXR4b2xpYiAobGVnYWN5IGltcGxlbWVudGF0aW9uKVxuICovXG5mdW5jdGlvbiBjcmVhdGVCYWNrdXBLZXlSZWNvdmVyeVBzYnRVdHhvbGliKFxuICBjb2luTmFtZTogQ29pbk5hbWUsXG4gIHJvb3RXYWxsZXRLZXlzOiBSb290V2FsbGV0S2V5cyxcbiAgdW5zcGVudHM6IFdhbGxldFVuc3BlbnQ8YmlnaW50PltdLFxuICBvcHRpb25zOiBDcmVhdGVCYWNrdXBLZXlSZWNvdmVyeVBzYnRPcHRpb25zXG4pOiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0IHtcbiAgY29uc3QgbmV0d29yayA9IGdldE5ldHdvcmtGcm9tQ29pbk5hbWUoY29pbk5hbWUpO1xuICBjb25zdCB7IGZlZVJhdGVTYXRWQiwgcmVjb3ZlcnlEZXN0aW5hdGlvbiwga2V5UmVjb3ZlcnlTZXJ2aWNlRmVlLCBrZXlSZWNvdmVyeVNlcnZpY2VGZWVBZGRyZXNzIH0gPSBvcHRpb25zO1xuXG4gIGNvbnN0IHBzYnQgPSB1dHhvbGliLmJpdGdvLmNyZWF0ZVBzYnRGb3JOZXR3b3JrKHsgbmV0d29yayB9KTtcbiAgdXR4b2xpYi5iaXRnby5hZGRYcHVic1RvUHNidChwc2J0LCByb290V2FsbGV0S2V5cyk7XG4gIHVuc3BlbnRzLmZvckVhY2goKHVuc3BlbnQpID0+IHtcbiAgICB1dHhvbGliLmJpdGdvLmFkZFdhbGxldFVuc3BlbnRUb1BzYnQocHNidCwgdW5zcGVudCwgcm9vdFdhbGxldEtleXMsICd1c2VyJywgJ2JhY2t1cCcpO1xuICB9KTtcblxuICBsZXQgZGltZW5zaW9ucyA9IERpbWVuc2lvbnMuZnJvbVBzYnQocHNidCkucGx1cyhcbiAgICBEaW1lbnNpb25zLmZyb21PdXRwdXQoeyBzY3JpcHQ6IHV0eG9saWIuYWRkcmVzcy50b091dHB1dFNjcmlwdChyZWNvdmVyeURlc3RpbmF0aW9uLCBuZXR3b3JrKSB9KVxuICApO1xuXG4gIGlmIChrZXlSZWNvdmVyeVNlcnZpY2VGZWVBZGRyZXNzKSB7XG4gICAgZGltZW5zaW9ucyA9IGRpbWVuc2lvbnMucGx1cyhcbiAgICAgIERpbWVuc2lvbnMuZnJvbU91dHB1dCh7XG4gICAgICAgIHNjcmlwdDogdXR4b2xpYi5hZGRyZXNzLnRvT3V0cHV0U2NyaXB0KGtleVJlY292ZXJ5U2VydmljZUZlZUFkZHJlc3MsIG5ldHdvcmspLFxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgY29uc3QgYXBwcm94aW1hdGVGZWUgPSBCaWdJbnQoZGltZW5zaW9ucy5nZXRWU2l6ZSgpICogZmVlUmF0ZVNhdFZCKTtcbiAgY29uc3QgdG90YWxJbnB1dEFtb3VudCA9IHV0eG9saWIuYml0Z28udW5zcGVudFN1bSh1bnNwZW50cywgJ2JpZ2ludCcpO1xuICBjb25zdCByZWNvdmVyeUFtb3VudCA9IHRvdGFsSW5wdXRBbW91bnQgLSBhcHByb3hpbWF0ZUZlZSAtIGtleVJlY292ZXJ5U2VydmljZUZlZTtcblxuICBpZiAocmVjb3ZlcnlBbW91bnQgPCBCaWdJbnQoMCkpIHtcbiAgICB0aHJvdyBuZXcgSW5zdWZmaWNpZW50RnVuZHNFcnJvcih0b3RhbElucHV0QW1vdW50LCBhcHByb3hpbWF0ZUZlZSwga2V5UmVjb3ZlcnlTZXJ2aWNlRmVlLCByZWNvdmVyeUFtb3VudCk7XG4gIH1cblxuICBwc2J0LmFkZE91dHB1dCh7IHNjcmlwdDogdXR4b2xpYi5hZGRyZXNzLnRvT3V0cHV0U2NyaXB0KHJlY292ZXJ5RGVzdGluYXRpb24sIG5ldHdvcmspLCB2YWx1ZTogcmVjb3ZlcnlBbW91bnQgfSk7XG5cbiAgaWYgKGtleVJlY292ZXJ5U2VydmljZUZlZUFkZHJlc3MpIHtcbiAgICBwc2J0LmFkZE91dHB1dCh7XG4gICAgICBzY3JpcHQ6IHV0eG9saWIuYWRkcmVzcy50b091dHB1dFNjcmlwdChrZXlSZWNvdmVyeVNlcnZpY2VGZWVBZGRyZXNzLCBuZXR3b3JrKSxcbiAgICAgIHZhbHVlOiBrZXlSZWNvdmVyeVNlcnZpY2VGZWUsXG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gcHNidDtcbn1cblxuLyoqXG4gKiBDaGVjayBpZiB0aGUgbmV0d29yayBpcyBhIFpjYXNoIG5ldHdvcmtcbiAqL1xuZnVuY3Rpb24gaXNaY2FzaChjb2luTmFtZTogQ29pbk5hbWUpOiBjb2luTmFtZSBpcyAnemVjJyB8ICd0emVjJyB7XG4gIHJldHVybiBjb2luTmFtZSA9PT0gJ3plYycgfHwgY29pbk5hbWUgPT09ICd0emVjJztcbn1cblxuLyoqXG4gKiBEZWZhdWx0IGJsb2NrIGhlaWdodHMgZm9yIFpjYXNoIG5ldHdvcmtzIGlmIG5vdCBwcm92aWRlZC5cbiAqIFRoZXNlIHNob3VsZCBiZSBzZXQgdG8gYSBoZWlnaHQgYWZ0ZXIgdGhlIGxhdGVzdCBuZXR3b3JrIHVwZ3JhZGUuXG4gKiBUT0RPKEJUQy0yOTAxKTogZ2V0IHRoZSBoZWlnaHQgZnJvbSBibG9ja2NoYWlyIEFQSSBpbnN0ZWFkIG9mIGhhcmRjb2RpbmcuXG4gKi9cbmNvbnN0IFpDQVNIX0RFRkFVTFRfQkxPQ0tfSEVJR0hUUzogUmVjb3JkPCd6ZWMnIHwgJ3R6ZWMnLCBudW1iZXI+ID0ge1xuICB6ZWM6IDMxNDY0MDAsXG4gIHR6ZWM6IDM1MzY1MDAsXG59O1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGNyZWF0aW5nIGFuIGVtcHR5IHdhc20tdXR4byBQU0JUXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlRW1wdHlXYXNtUHNidE9wdGlvbnMge1xuICAvKiogQmxvY2sgaGVpZ2h0IGZvciBaY2FzaCBuZXR3b3JrcyAocmVxdWlyZWQgdG8gZGV0ZXJtaW5lIGNvbnNlbnN1cyBicmFuY2ggSUQpICovXG4gIGJsb2NrSGVpZ2h0PzogbnVtYmVyO1xufVxuXG4vKipcbiAqIENyZWF0ZSBhbiBlbXB0eSB3YXNtLXV0eG8gQml0R29Qc2J0IGZvciBhIGdpdmVuIG5ldHdvcmsuXG4gKiBIYW5kbGVzIFpjYXNoIG5ldHdvcmtzIHNwZWNpYWxseSBieSB1c2luZyBaY2FzaEJpdEdvUHNidC5cbiAqXG4gKiBAcGFyYW0gbmV0d29yayAtIFRoZSBuZXR3b3JrIGZvciB0aGUgUFNCVFxuICogQHBhcmFtIHJvb3RXYWxsZXRLZXlzIC0gVGhlIHdhbGxldCBrZXlzXG4gKiBAcGFyYW0gb3B0aW9ucyAtIE9wdGlvbmFsIHNldHRpbmdzIChlLmcuLCBibG9ja0hlaWdodCBmb3IgWmNhc2gpXG4gKiBAcmV0dXJucyBBIHdhc20tdXR4byBCaXRHb1BzYnQgaW5zdGFuY2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUVtcHR5V2FzbVBzYnQoXG4gIGNvaW5OYW1lOiBDb2luTmFtZSxcbiAgcm9vdFdhbGxldEtleXM6IFJvb3RXYWxsZXRLZXlzLFxuICBvcHRpb25zPzogQ3JlYXRlRW1wdHlXYXNtUHNidE9wdGlvbnNcbik6IGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidCB7XG4gIGlmIChpc1pjYXNoKGNvaW5OYW1lKSkge1xuICAgIC8vIEZvciBaY2FzaCwgdXNlIFpjYXNoQml0R29Qc2J0IHdoaWNoIHJlcXVpcmVzIGJsb2NrIGhlaWdodCB0byBkZXRlcm1pbmUgY29uc2Vuc3VzIGJyYW5jaCBJRFxuICAgIGNvbnN0IGJsb2NrSGVpZ2h0ID0gb3B0aW9ucz8uYmxvY2tIZWlnaHQgPz8gWkNBU0hfREVGQVVMVF9CTE9DS19IRUlHSFRTW2NvaW5OYW1lXTtcbiAgICByZXR1cm4gZml4ZWRTY3JpcHRXYWxsZXQuWmNhc2hCaXRHb1BzYnQuY3JlYXRlRW1wdHkoY29pbk5hbWUsIHJvb3RXYWxsZXRLZXlzLCB7XG4gICAgICBibG9ja0hlaWdodCxcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQuY3JlYXRlRW1wdHkoY29pbk5hbWUsIHJvb3RXYWxsZXRLZXlzKTtcbn1cblxuLyoqXG4gKiBBZGQgd2FsbGV0IGlucHV0cyBmcm9tIHVuc3BlbnRzIHRvIGEgd2FzbS11dHhvIEJpdEdvUHNidC5cbiAqIEhhbmRsZXMgdGFwcm9vdCBpbnB1dHMgYnkgc2V0dGluZyB0aGUgYXBwcm9wcmlhdGUgc2lnblBhdGguXG4gKlxuICogQHBhcmFtIHdhc21Qc2J0IC0gVGhlIHdhc20tdXR4byBCaXRHb1BzYnQgdG8gYWRkIGlucHV0cyB0b1xuICogQHBhcmFtIHVuc3BlbnRzIC0gVGhlIHdhbGxldCB1bnNwZW50cyB0byBhZGQgYXMgaW5wdXRzXG4gKiBAcGFyYW0gcm9vdFdhbGxldEtleXMgLSBUaGUgd2FsbGV0IGtleXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZFdhbGxldElucHV0c1RvV2FzbVBzYnQoXG4gIHdhc21Qc2J0OiBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQsXG4gIHVuc3BlbnRzOiBXYWxsZXRVbnNwZW50PGJpZ2ludD5bXSxcbiAgcm9vdFdhbGxldEtleXM6IFJvb3RXYWxsZXRLZXlzXG4pOiB2b2lkIHtcbiAgdW5zcGVudHMuZm9yRWFjaCgodW5zcGVudCkgPT4ge1xuICAgIGNvbnN0IHsgdHhpZCwgdm91dCB9ID0gdXR4b2xpYi5iaXRnby5wYXJzZU91dHB1dElkKHVuc3BlbnQuaWQpO1xuICAgIGNvbnN0IHNpZ25QYXRoOiBmaXhlZFNjcmlwdFdhbGxldC5TaWduUGF0aCB8IHVuZGVmaW5lZCA9IGlzVGFwcm9vdENoYWluKHVuc3BlbnQuY2hhaW4pXG4gICAgICA/IHsgc2lnbmVyOiAndXNlcicsIGNvc2lnbmVyOiAnYmFja3VwJyB9XG4gICAgICA6IHVuZGVmaW5lZDtcblxuICAgIC8vIHByZXZUeCBtYXkgYmUgYWRkZWQgZHluYW1pY2FsbHkgaW4gYmFja3VwS2V5UmVjb3ZlcnkgZm9yIG5vbi1zZWd3aXQgaW5wdXRzXG4gICAgY29uc3QgcHJldlR4ID0gKHVuc3BlbnQgYXMgV2FsbGV0VW5zcGVudDxiaWdpbnQ+ICYgeyBwcmV2VHg/OiBCdWZmZXIgfSkucHJldlR4O1xuXG4gICAgd2FzbVBzYnQuYWRkV2FsbGV0SW5wdXQoXG4gICAgICB7XG4gICAgICAgIHR4aWQsXG4gICAgICAgIHZvdXQsXG4gICAgICAgIHZhbHVlOiB1bnNwZW50LnZhbHVlLFxuICAgICAgICBwcmV2VHg6IHByZXZUeCxcbiAgICAgIH0sXG4gICAgICByb290V2FsbGV0S2V5cyxcbiAgICAgIHtcbiAgICAgICAgc2NyaXB0SWQ6IHsgY2hhaW46IHVuc3BlbnQuY2hhaW4sIGluZGV4OiB1bnNwZW50LmluZGV4IH0sXG4gICAgICAgIHNpZ25QYXRoLFxuICAgICAgfVxuICAgICk7XG4gIH0pO1xufVxuXG4vKipcbiAqIEFkZCBhbiBvdXRwdXQgdG8gYSB3YXNtLXV0eG8gQml0R29Qc2J0LlxuICpcbiAqIEBwYXJhbSB3YXNtUHNidCAtIFRoZSB3YXNtLXV0eG8gQml0R29Qc2J0IHRvIGFkZCB0aGUgb3V0cHV0IHRvXG4gKiBAcGFyYW0gYWRkcmVzcyAtIFRoZSBkZXN0aW5hdGlvbiBhZGRyZXNzXG4gKiBAcGFyYW0gdmFsdWUgLSBUaGUgb3V0cHV0IHZhbHVlIGluIHNhdG9zaGlzXG4gKiBAcGFyYW0gbmV0d29yayAtIFRoZSBuZXR3b3JrICh1c2VkIHRvIGNvbnZlcnQgYWRkcmVzcyB0byBzY3JpcHQpXG4gKiBAcmV0dXJucyBUaGUgb3V0cHV0IGluZGV4XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRPdXRwdXRUb1dhc21Qc2J0KFxuICB3YXNtUHNidDogZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0LFxuICBhZGRyZXNzOiBzdHJpbmcsXG4gIHZhbHVlOiBiaWdpbnQsXG4gIGNvaW5OYW1lOiBDb2luTmFtZVxuKTogbnVtYmVyIHtcbiAgY29uc3Qgc2NyaXB0ID0gd2FzbUFkZHJlc3MudG9PdXRwdXRTY3JpcHRXaXRoQ29pbihhZGRyZXNzLCBjb2luTmFtZSk7XG4gIHJldHVybiB3YXNtUHNidC5hZGRPdXRwdXQoeyBzY3JpcHQsIHZhbHVlIH0pO1xufVxuXG4vKipcbiAqIENvbnZlcnQgYSB3YXNtLXV0eG8gQml0R29Qc2J0IHRvIGEgdXR4b2xpYiBVdHhvUHNidC5cbiAqXG4gKiBAcGFyYW0gd2FzbVBzYnQgLSBUaGUgd2FzbS11dHhvIEJpdEdvUHNidCB0byBjb252ZXJ0XG4gKiBAcGFyYW0gbmV0d29yayAtIFRoZSBuZXR3b3JrXG4gKiBAcmV0dXJucyBBIHV0eG9saWIgVXR4b1BzYnRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvUHNidFRvVXR4b2xpYlBzYnQoXG4gIHdhc21Qc2J0OiBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQgfCB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0LFxuICBjb2luTmFtZTogQ29pbk5hbWVcbik6IHV0eG9saWIuYml0Z28uVXR4b1BzYnQge1xuICBpZiAod2FzbVBzYnQgaW5zdGFuY2VvZiBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQpIHtcbiAgICBjb25zdCBuZXR3b3JrID0gZ2V0TmV0d29ya0Zyb21Db2luTmFtZShjb2luTmFtZSk7XG4gICAgcmV0dXJuIHV0eG9saWIuYml0Z28uY3JlYXRlUHNidEZyb21CdWZmZXIoQnVmZmVyLmZyb20od2FzbVBzYnQuc2VyaWFsaXplKCkpLCBuZXR3b3JrKTtcbiAgfVxuICByZXR1cm4gd2FzbVBzYnQ7XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgYmFja3VwIGtleSByZWNvdmVyeSBQU0JUIHVzaW5nIHdhc20tdXR4b1xuICovXG5mdW5jdGlvbiBjcmVhdGVCYWNrdXBLZXlSZWNvdmVyeVBzYnRXYXNtKFxuICBjb2luTmFtZTogQ29pbk5hbWUsXG4gIHJvb3RXYWxsZXRLZXlzOiBSb290V2FsbGV0S2V5cyxcbiAgdW5zcGVudHM6IFdhbGxldFVuc3BlbnQ8YmlnaW50PltdLFxuICBvcHRpb25zOiBDcmVhdGVCYWNrdXBLZXlSZWNvdmVyeVBzYnRPcHRpb25zXG4pOiBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQge1xuICBjb25zdCB7IGZlZVJhdGVTYXRWQiwgcmVjb3ZlcnlEZXN0aW5hdGlvbiwga2V5UmVjb3ZlcnlTZXJ2aWNlRmVlLCBrZXlSZWNvdmVyeVNlcnZpY2VGZWVBZGRyZXNzIH0gPSBvcHRpb25zO1xuXG4gIC8vIENyZWF0ZSBQU0JUIHdpdGggd2FzbS11dHhvIGFuZCBhZGQgd2FsbGV0IGlucHV0cyB1c2luZyBzaGFyZWQgdXRpbGl0aWVzXG4gIGNvbnN0IHdhc21Qc2J0ID0gY3JlYXRlRW1wdHlXYXNtUHNidChjb2luTmFtZSwgcm9vdFdhbGxldEtleXMsIHsgYmxvY2tIZWlnaHQ6IG9wdGlvbnMuYmxvY2tIZWlnaHQgfSk7XG4gIGFkZFdhbGxldElucHV0c1RvV2FzbVBzYnQod2FzbVBzYnQsIHVuc3BlbnRzLCByb290V2FsbGV0S2V5cyk7XG5cbiAgLy8gQ2FsY3VsYXRlIGRpbWVuc2lvbnMgdXNpbmcgd2FzbS11dHhvIERpbWVuc2lvbnNcbiAgbGV0IGRpbWVuc2lvbnMgPSBmaXhlZFNjcmlwdFdhbGxldC5EaW1lbnNpb25zLmZyb21Qc2J0KHdhc21Qc2J0KS5wbHVzKFxuICAgIGZpeGVkU2NyaXB0V2FsbGV0LkRpbWVuc2lvbnMuZnJvbU91dHB1dChyZWNvdmVyeURlc3RpbmF0aW9uLCBjb2luTmFtZSlcbiAgKTtcblxuICBpZiAoa2V5UmVjb3ZlcnlTZXJ2aWNlRmVlQWRkcmVzcykge1xuICAgIGRpbWVuc2lvbnMgPSBkaW1lbnNpb25zLnBsdXMoZml4ZWRTY3JpcHRXYWxsZXQuRGltZW5zaW9ucy5mcm9tT3V0cHV0KGtleVJlY292ZXJ5U2VydmljZUZlZUFkZHJlc3MsIGNvaW5OYW1lKSk7XG4gIH1cblxuICBjb25zdCBhcHByb3hpbWF0ZUZlZSA9IEJpZ0ludChkaW1lbnNpb25zLmdldFZTaXplKCkgKiBmZWVSYXRlU2F0VkIpO1xuICBjb25zdCB0b3RhbElucHV0QW1vdW50ID0gdXR4b2xpYi5iaXRnby51bnNwZW50U3VtKHVuc3BlbnRzLCAnYmlnaW50Jyk7XG4gIGNvbnN0IHJlY292ZXJ5QW1vdW50ID0gdG90YWxJbnB1dEFtb3VudCAtIGFwcHJveGltYXRlRmVlIC0ga2V5UmVjb3ZlcnlTZXJ2aWNlRmVlO1xuXG4gIGlmIChyZWNvdmVyeUFtb3VudCA8IEJpZ0ludCgwKSkge1xuICAgIHRocm93IG5ldyBJbnN1ZmZpY2llbnRGdW5kc0Vycm9yKHRvdGFsSW5wdXRBbW91bnQsIGFwcHJveGltYXRlRmVlLCBrZXlSZWNvdmVyeVNlcnZpY2VGZWUsIHJlY292ZXJ5QW1vdW50KTtcbiAgfVxuXG4gIC8vIEFkZCBvdXRwdXRzIHRvIHdhc20gUFNCVFxuICBhZGRPdXRwdXRUb1dhc21Qc2J0KHdhc21Qc2J0LCByZWNvdmVyeURlc3RpbmF0aW9uLCByZWNvdmVyeUFtb3VudCwgY29pbk5hbWUpO1xuXG4gIGlmIChrZXlSZWNvdmVyeVNlcnZpY2VGZWVBZGRyZXNzKSB7XG4gICAgYWRkT3V0cHV0VG9XYXNtUHNidCh3YXNtUHNidCwga2V5UmVjb3ZlcnlTZXJ2aWNlRmVlQWRkcmVzcywga2V5UmVjb3ZlcnlTZXJ2aWNlRmVlLCBjb2luTmFtZSk7XG4gIH1cblxuICAvLyBDb252ZXJ0IHRvIHV0eG9saWIgUFNCVCBmb3Igc2lnbmluZyBhbmQgcmV0dXJuXG4gIHJldHVybiB3YXNtUHNidDtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBiYWNrdXAga2V5IHJlY292ZXJ5IFBTQlQuXG4gKlxuICogQHBhcmFtIG5ldHdvcmsgLSBUaGUgbmV0d29yayBmb3IgdGhlIFBTQlRcbiAqIEBwYXJhbSByb290V2FsbGV0S2V5cyAtIFRoZSB3YWxsZXQga2V5c1xuICogQHBhcmFtIHVuc3BlbnRzIC0gVGhlIHVuc3BlbnRzIHRvIGluY2x1ZGUgaW4gdGhlIFBTQlRcbiAqIEBwYXJhbSBvcHRpb25zIC0gT3B0aW9ucyBmb3IgY3JlYXRpbmcgdGhlIFBTQlRcbiAqIEBwYXJhbSBiYWNrZW5kIC0gV2hpY2ggYmFja2VuZCB0byB1c2UgZm9yIFBTQlQgY3JlYXRpb24gKGRlZmF1bHQ6ICd3YXNtLXV0eG8nKVxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQmFja3VwS2V5UmVjb3ZlcnlQc2J0KFxuICBjb2luTmFtZTogQ29pbk5hbWUsXG4gIHJvb3RXYWxsZXRLZXlzOiBSb290V2FsbGV0S2V5cyxcbiAgdW5zcGVudHM6IFdhbGxldFVuc3BlbnQ8YmlnaW50PltdLFxuICBvcHRpb25zOiBDcmVhdGVCYWNrdXBLZXlSZWNvdmVyeVBzYnRPcHRpb25zLFxuICBiYWNrZW5kOiBQc2J0QmFja2VuZCA9ICd3YXNtLXV0eG8nXG4pOiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0IHwgZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0IHtcbiAgaWYgKG9wdGlvbnMua2V5UmVjb3ZlcnlTZXJ2aWNlRmVlID4gMCAmJiAhb3B0aW9ucy5rZXlSZWNvdmVyeVNlcnZpY2VGZWVBZGRyZXNzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdrZXlSZWNvdmVyeVNlcnZpY2VGZWVBZGRyZXNzIGlzIHJlcXVpcmVkIHdoZW4ga2V5UmVjb3ZlcnlTZXJ2aWNlRmVlIGlzIHByb3ZpZGVkJyk7XG4gIH1cblxuICBpZiAoYmFja2VuZCA9PT0gJ3dhc20tdXR4bycpIHtcbiAgICByZXR1cm4gY3JlYXRlQmFja3VwS2V5UmVjb3ZlcnlQc2J0V2FzbShjb2luTmFtZSwgcm9vdFdhbGxldEtleXMsIHVuc3BlbnRzLCBvcHRpb25zKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gY3JlYXRlQmFja3VwS2V5UmVjb3ZlcnlQc2J0VXR4b2xpYihjb2luTmFtZSwgcm9vdFdhbGxldEtleXMsIHVuc3BlbnRzLCBvcHRpb25zKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVjb3ZlcnlBbW91bnQoXG4gIHBzYnQ6IHV0eG9saWIuYml0Z28uVXR4b1BzYnQgfCBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQsXG4gIHdhbGxldEtleXM6IFJvb3RXYWxsZXRLZXlzLFxuICBhZGRyZXNzOiBzdHJpbmdcbik6IGJpZ2ludCB7XG4gIGlmIChwc2J0IGluc3RhbmNlb2YgdXR4b2xpYi5iaXRnby5VdHhvUHNidCkge1xuICAgIGNvbnN0IHJlY292ZXJ5T3V0cHV0U2NyaXB0ID0gdXR4b2xpYi5hZGRyZXNzLnRvT3V0cHV0U2NyaXB0KGFkZHJlc3MsIHBzYnQubmV0d29yayk7XG4gICAgY29uc3Qgb3V0cHV0ID0gcHNidC50eE91dHB1dHMuZmluZCgobykgPT4gby5zY3JpcHQuZXF1YWxzKHJlY292ZXJ5T3V0cHV0U2NyaXB0KSk7XG4gICAgaWYgKCFvdXRwdXQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgUmVjb3ZlcnkgZGVzdGluYXRpb24gb3V0cHV0IG5vdCBmb3VuZCBpbiBQU0JUOiAke2FkZHJlc3N9YCk7XG4gICAgfVxuICAgIHJldHVybiBvdXRwdXQudmFsdWU7XG4gIH1cbiAgaWYgKHBzYnQgaW5zdGFuY2VvZiBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQpIHtcbiAgICBjb25zdCBwYXJzZWRPdXRwdXRzID0gcHNidC5wYXJzZU91dHB1dHNXaXRoV2FsbGV0S2V5cyh3YWxsZXRLZXlzKTtcbiAgICBjb25zdCByZWNvdmVyeU91dHB1dCA9IHBhcnNlZE91dHB1dHMuZmluZCgobykgPT4gby5hZGRyZXNzID09PSBhZGRyZXNzKTtcbiAgICBpZiAoIXJlY292ZXJ5T3V0cHV0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFJlY292ZXJ5IGRlc3RpbmF0aW9uIG91dHB1dCBub3QgZm91bmQgaW4gUFNCVDogJHthZGRyZXNzfWApO1xuICAgIH1cbiAgICByZXR1cm4gcmVjb3ZlcnlPdXRwdXQudmFsdWU7XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIFBTQlQgdHlwZScpO1xufVxuIl19
153
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHNidC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9yZWNvdmVyeS9wc2J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBT0Esd0NBR0M7QUE4REQsa0RBY0M7QUFVRCw4REE0QkM7QUFXRCxrREFRQztBQW9ERCxrRUFXQztBQUVELDhDQVdDO0FBM05ELGdEQUF1RjtBQUV2Rix3Q0FBMkU7QUFFM0U7O0dBRUc7QUFDSCxTQUFnQixjQUFjLENBQUMsS0FBa0M7SUFDL0QsTUFBTSxVQUFVLEdBQUcsNkJBQWlCLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqRSxPQUFPLFVBQVUsS0FBSyxZQUFZLElBQUksVUFBVSxLQUFLLFlBQVksQ0FBQztBQUNwRSxDQUFDO0FBRUQsTUFBTSxzQkFBdUIsU0FBUSxLQUFLO0lBQ3hDLFlBQ1MsZ0JBQXdCLEVBQ3hCLGNBQXNCLEVBQ3RCLE1BQWMsRUFDZCxjQUFzQjtRQUU3QixLQUFLLENBQ0gsaUZBQWlGO1lBQy9FLCtCQUErQixnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsSUFBSTtZQUM5RCx1REFBdUQsY0FBYyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ2xGLG1CQUFtQixNQUFNLENBQUMsUUFBUSxFQUFFLElBQUk7WUFDeEMsMkRBQTJELGNBQWMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUN6RixDQUFDO1FBWEsscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFRO1FBQ3hCLG1CQUFjLEdBQWQsY0FBYyxDQUFRO1FBQ3RCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxtQkFBYyxHQUFkLGNBQWMsQ0FBUTtJQVMvQixDQUFDO0NBQ0Y7QUFXRDs7R0FFRztBQUNILFNBQVMsT0FBTyxDQUFDLFFBQWtCO0lBQ2pDLE9BQU8sUUFBUSxLQUFLLEtBQUssSUFBSSxRQUFRLEtBQUssTUFBTSxDQUFDO0FBQ25ELENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSwyQkFB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USxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3RGLENBQUM7QUFFRCxTQUFnQixpQkFBaUIsQ0FDL0IsSUFBaUMsRUFDakMsVUFBNEMsRUFDNUMsT0FBZTtJQUVmLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNsRSxNQUFNLGNBQWMsR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxLQUFLLE9BQU8sQ0FBQyxDQUFDO0lBQ3hFLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLGtEQUFrRCxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFDRCxPQUFPLE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDdEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvaW5OYW1lLCBmaXhlZFNjcmlwdFdhbGxldCwgYWRkcmVzcyBhcyB3YXNtQWRkcmVzcyB9IGZyb20gJ0BiaXRnby93YXNtLXV0eG8nO1xuXG5pbXBvcnQgeyBwYXJzZU91dHB1dElkLCB1bnNwZW50U3VtLCB0eXBlIFdhbGxldFVuc3BlbnQgfSBmcm9tICcuLi91bnNwZW50JztcblxuLyoqXG4gKiBDaGVjayBpZiBhIGNoYWluIGNvZGUgaXMgZm9yIGEgdGFwcm9vdCBzY3JpcHQgdHlwZVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNUYXByb290Q2hhaW4oY2hhaW46IGZpeGVkU2NyaXB0V2FsbGV0LkNoYWluQ29kZSk6IGJvb2xlYW4ge1xuICBjb25zdCBzY3JpcHRUeXBlID0gZml4ZWRTY3JpcHRXYWxsZXQuQ2hhaW5Db2RlLnNjcmlwdFR5cGUoY2hhaW4pO1xuICByZXR1cm4gc2NyaXB0VHlwZSA9PT0gJ3AydHJMZWdhY3knIHx8IHNjcmlwdFR5cGUgPT09ICdwMnRyTXVzaWcyJztcbn1cblxuY2xhc3MgSW5zdWZmaWNpZW50RnVuZHNFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHRvdGFsSW5wdXRBbW91bnQ6IGJpZ2ludCxcbiAgICBwdWJsaWMgYXBwcm94aW1hdGVGZWU6IGJpZ2ludCxcbiAgICBwdWJsaWMga3JzRmVlOiBiaWdpbnQsXG4gICAgcHVibGljIHJlY292ZXJ5QW1vdW50OiBiaWdpbnRcbiAgKSB7XG4gICAgc3VwZXIoXG4gICAgICBgVGhpcyB3YWxsZXQncyBiYWxhbmNlIGlzIHRvbyBsb3cgdG8gcGF5IHRoZSBmZWVzIHNwZWNpZmllZCBieSB0aGUgS1JTIHByb3ZpZGVyLmAgK1xuICAgICAgICBgRXhpc3RpbmcgYmFsYW5jZSBvbiB3YWxsZXQ6ICR7dG90YWxJbnB1dEFtb3VudC50b1N0cmluZygpfS4gYCArXG4gICAgICAgIGBFc3RpbWF0ZWQgbmV0d29yayBmZWUgZm9yIHRoZSByZWNvdmVyeSB0cmFuc2FjdGlvbjogJHthcHByb3hpbWF0ZUZlZS50b1N0cmluZygpfWAgK1xuICAgICAgICBgS1JTIGZlZSB0byBwYXk6ICR7a3JzRmVlLnRvU3RyaW5nKCl9LiBgICtcbiAgICAgICAgYEFmdGVyIGRlZHVjdGluZyBmZWVzLCB5b3VyIHRvdGFsIHJlY292ZXJhYmxlIGJhbGFuY2UgaXMgJHtyZWNvdmVyeUFtb3VudC50b1N0cmluZygpfWBcbiAgICApO1xuICB9XG59XG5cbmludGVyZmFjZSBDcmVhdGVCYWNrdXBLZXlSZWNvdmVyeVBzYnRPcHRpb25zIHtcbiAgZmVlUmF0ZVNhdFZCOiBudW1iZXI7XG4gIHJlY292ZXJ5RGVzdGluYXRpb246IHN0cmluZztcbiAga2V5UmVjb3ZlcnlTZXJ2aWNlRmVlOiBiaWdpbnQ7XG4gIGtleVJlY292ZXJ5U2VydmljZUZlZUFkZHJlc3M6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgLyoqIEJsb2NrIGhlaWdodCBmb3IgWmNhc2ggbmV0d29ya3MgKHJlcXVpcmVkIHRvIGRldGVybWluZSBjb25zZW5zdXMgYnJhbmNoIElEKSAqL1xuICBibG9ja0hlaWdodD86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBDaGVjayBpZiB0aGUgbmV0d29yayBpcyBhIFpjYXNoIG5ldHdvcmtcbiAqL1xuZnVuY3Rpb24gaXNaY2FzaChjb2luTmFtZTogQ29pbk5hbWUpOiBjb2luTmFtZSBpcyAnemVjJyB8ICd0emVjJyB7XG4gIHJldHVybiBjb2luTmFtZSA9PT0gJ3plYycgfHwgY29pbk5hbWUgPT09ICd0emVjJztcbn1cblxuLyoqXG4gKiBEZWZhdWx0IGJsb2NrIGhlaWdodHMgZm9yIFpjYXNoIG5ldHdvcmtzIGlmIG5vdCBwcm92aWRlZC5cbiAqIFRoZXNlIHNob3VsZCBiZSBzZXQgdG8gYSBoZWlnaHQgYWZ0ZXIgdGhlIGxhdGVzdCBuZXR3b3JrIHVwZ3JhZGUuXG4gKiBUT0RPKEJUQy0yOTAxKTogZ2V0IHRoZSBoZWlnaHQgZnJvbSBibG9ja2NoYWlyIEFQSSBpbnN0ZWFkIG9mIGhhcmRjb2RpbmcuXG4gKi9cbmNvbnN0IFpDQVNIX0RFRkFVTFRfQkxPQ0tfSEVJR0hUUzogUmVjb3JkPCd6ZWMnIHwgJ3R6ZWMnLCBudW1iZXI+ID0ge1xuICB6ZWM6IDMxNDY0MDAsXG4gIHR6ZWM6IDM1MzY1MDAsXG59O1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGNyZWF0aW5nIGFuIGVtcHR5IHdhc20tdXR4byBQU0JUXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlRW1wdHlXYXNtUHNidE9wdGlvbnMge1xuICAvKiogQmxvY2sgaGVpZ2h0IGZvciBaY2FzaCBuZXR3b3JrcyAocmVxdWlyZWQgdG8gZGV0ZXJtaW5lIGNvbnNlbnN1cyBicmFuY2ggSUQpICovXG4gIGJsb2NrSGVpZ2h0PzogbnVtYmVyO1xufVxuXG4vKipcbiAqIENyZWF0ZSBhbiBlbXB0eSB3YXNtLXV0eG8gQml0R29Qc2J0IGZvciBhIGdpdmVuIG5ldHdvcmsuXG4gKiBIYW5kbGVzIFpjYXNoIG5ldHdvcmtzIHNwZWNpYWxseSBieSB1c2luZyBaY2FzaEJpdEdvUHNidC5cbiAqXG4gKiBAcGFyYW0gbmV0d29yayAtIFRoZSBuZXR3b3JrIGZvciB0aGUgUFNCVFxuICogQHBhcmFtIHJvb3RXYWxsZXRLZXlzIC0gVGhlIHdhbGxldCBrZXlzXG4gKiBAcGFyYW0gb3B0aW9ucyAtIE9wdGlvbmFsIHNldHRpbmdzIChlLmcuLCBibG9ja0hlaWdodCBmb3IgWmNhc2gpXG4gKiBAcmV0dXJucyBBIHdhc20tdXR4byBCaXRHb1BzYnQgaW5zdGFuY2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUVtcHR5V2FzbVBzYnQoXG4gIGNvaW5OYW1lOiBDb2luTmFtZSxcbiAgcm9vdFdhbGxldEtleXM6IGZpeGVkU2NyaXB0V2FsbGV0LlJvb3RXYWxsZXRLZXlzLFxuICBvcHRpb25zPzogQ3JlYXRlRW1wdHlXYXNtUHNidE9wdGlvbnNcbik6IGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidCB7XG4gIGlmIChpc1pjYXNoKGNvaW5OYW1lKSkge1xuICAgIC8vIEZvciBaY2FzaCwgdXNlIFpjYXNoQml0R29Qc2J0IHdoaWNoIHJlcXVpcmVzIGJsb2NrIGhlaWdodCB0byBkZXRlcm1pbmUgY29uc2Vuc3VzIGJyYW5jaCBJRFxuICAgIGNvbnN0IGJsb2NrSGVpZ2h0ID0gb3B0aW9ucz8uYmxvY2tIZWlnaHQgPz8gWkNBU0hfREVGQVVMVF9CTE9DS19IRUlHSFRTW2NvaW5OYW1lXTtcbiAgICByZXR1cm4gZml4ZWRTY3JpcHRXYWxsZXQuWmNhc2hCaXRHb1BzYnQuY3JlYXRlRW1wdHkoY29pbk5hbWUsIHJvb3RXYWxsZXRLZXlzLCB7XG4gICAgICBibG9ja0hlaWdodCxcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQuY3JlYXRlRW1wdHkoY29pbk5hbWUsIHJvb3RXYWxsZXRLZXlzKTtcbn1cblxuLyoqXG4gKiBBZGQgd2FsbGV0IGlucHV0cyBmcm9tIHVuc3BlbnRzIHRvIGEgd2FzbS11dHhvIEJpdEdvUHNidC5cbiAqIEhhbmRsZXMgdGFwcm9vdCBpbnB1dHMgYnkgc2V0dGluZyB0aGUgYXBwcm9wcmlhdGUgc2lnblBhdGguXG4gKlxuICogQHBhcmFtIHdhc21Qc2J0IC0gVGhlIHdhc20tdXR4byBCaXRHb1BzYnQgdG8gYWRkIGlucHV0cyB0b1xuICogQHBhcmFtIHVuc3BlbnRzIC0gVGhlIHdhbGxldCB1bnNwZW50cyB0byBhZGQgYXMgaW5wdXRzXG4gKiBAcGFyYW0gcm9vdFdhbGxldEtleXMgLSBUaGUgd2FsbGV0IGtleXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZFdhbGxldElucHV0c1RvV2FzbVBzYnQoXG4gIHdhc21Qc2J0OiBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQsXG4gIHVuc3BlbnRzOiBXYWxsZXRVbnNwZW50PGJpZ2ludD5bXSxcbiAgcm9vdFdhbGxldEtleXM6IGZpeGVkU2NyaXB0V2FsbGV0LlJvb3RXYWxsZXRLZXlzXG4pOiB2b2lkIHtcbiAgdW5zcGVudHMuZm9yRWFjaCgodW5zcGVudCkgPT4ge1xuICAgIGNvbnN0IHsgdHhpZCwgdm91dCB9ID0gcGFyc2VPdXRwdXRJZCh1bnNwZW50LmlkKTtcbiAgICBjb25zdCBzaWduUGF0aDogZml4ZWRTY3JpcHRXYWxsZXQuU2lnblBhdGggfCB1bmRlZmluZWQgPSBpc1RhcHJvb3RDaGFpbih1bnNwZW50LmNoYWluKVxuICAgICAgPyB7IHNpZ25lcjogJ3VzZXInLCBjb3NpZ25lcjogJ2JhY2t1cCcgfVxuICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICAvLyBwcmV2VHggbWF5IGJlIGFkZGVkIGR5bmFtaWNhbGx5IGluIGJhY2t1cEtleVJlY292ZXJ5IGZvciBub24tc2Vnd2l0IGlucHV0c1xuICAgIGNvbnN0IHByZXZUeCA9ICh1bnNwZW50IGFzIFdhbGxldFVuc3BlbnQ8YmlnaW50PiAmIHsgcHJldlR4PzogQnVmZmVyIH0pLnByZXZUeDtcblxuICAgIHdhc21Qc2J0LmFkZFdhbGxldElucHV0KFxuICAgICAge1xuICAgICAgICB0eGlkLFxuICAgICAgICB2b3V0LFxuICAgICAgICB2YWx1ZTogdW5zcGVudC52YWx1ZSxcbiAgICAgICAgcHJldlR4OiBwcmV2VHgsXG4gICAgICB9LFxuICAgICAgcm9vdFdhbGxldEtleXMsXG4gICAgICB7XG4gICAgICAgIHNjcmlwdElkOiB7IGNoYWluOiB1bnNwZW50LmNoYWluLCBpbmRleDogdW5zcGVudC5pbmRleCB9LFxuICAgICAgICBzaWduUGF0aCxcbiAgICAgIH1cbiAgICApO1xuICB9KTtcbn1cblxuLyoqXG4gKiBBZGQgYW4gb3V0cHV0IHRvIGEgd2FzbS11dHhvIEJpdEdvUHNidC5cbiAqXG4gKiBAcGFyYW0gd2FzbVBzYnQgLSBUaGUgd2FzbS11dHhvIEJpdEdvUHNidCB0byBhZGQgdGhlIG91dHB1dCB0b1xuICogQHBhcmFtIGFkZHJlc3MgLSBUaGUgZGVzdGluYXRpb24gYWRkcmVzc1xuICogQHBhcmFtIHZhbHVlIC0gVGhlIG91dHB1dCB2YWx1ZSBpbiBzYXRvc2hpc1xuICogQHBhcmFtIG5ldHdvcmsgLSBUaGUgbmV0d29yayAodXNlZCB0byBjb252ZXJ0IGFkZHJlc3MgdG8gc2NyaXB0KVxuICogQHJldHVybnMgVGhlIG91dHB1dCBpbmRleFxuICovXG5leHBvcnQgZnVuY3Rpb24gYWRkT3V0cHV0VG9XYXNtUHNidChcbiAgd2FzbVBzYnQ6IGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidCxcbiAgYWRkcmVzczogc3RyaW5nLFxuICB2YWx1ZTogYmlnaW50LFxuICBjb2luTmFtZTogQ29pbk5hbWVcbik6IG51bWJlciB7XG4gIGNvbnN0IHNjcmlwdCA9IHdhc21BZGRyZXNzLnRvT3V0cHV0U2NyaXB0V2l0aENvaW4oYWRkcmVzcywgY29pbk5hbWUpO1xuICByZXR1cm4gd2FzbVBzYnQuYWRkT3V0cHV0KHsgc2NyaXB0LCB2YWx1ZSB9KTtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBiYWNrdXAga2V5IHJlY292ZXJ5IFBTQlQgdXNpbmcgd2FzbS11dHhvXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUJhY2t1cEtleVJlY292ZXJ5UHNidFdhc20oXG4gIGNvaW5OYW1lOiBDb2luTmFtZSxcbiAgcm9vdFdhbGxldEtleXM6IGZpeGVkU2NyaXB0V2FsbGV0LlJvb3RXYWxsZXRLZXlzLFxuICB1bnNwZW50czogV2FsbGV0VW5zcGVudDxiaWdpbnQ+W10sXG4gIG9wdGlvbnM6IENyZWF0ZUJhY2t1cEtleVJlY292ZXJ5UHNidE9wdGlvbnNcbik6IGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidCB7XG4gIGNvbnN0IHsgZmVlUmF0ZVNhdFZCLCByZWNvdmVyeURlc3RpbmF0aW9uLCBrZXlSZWNvdmVyeVNlcnZpY2VGZWUsIGtleVJlY292ZXJ5U2VydmljZUZlZUFkZHJlc3MgfSA9IG9wdGlvbnM7XG5cbiAgLy8gQ3JlYXRlIFBTQlQgd2l0aCB3YXNtLXV0eG8gYW5kIGFkZCB3YWxsZXQgaW5wdXRzIHVzaW5nIHNoYXJlZCB1dGlsaXRpZXNcbiAgY29uc3Qgd2FzbVBzYnQgPSBjcmVhdGVFbXB0eVdhc21Qc2J0KGNvaW5OYW1lLCByb290V2FsbGV0S2V5cywgeyBibG9ja0hlaWdodDogb3B0aW9ucy5ibG9ja0hlaWdodCB9KTtcbiAgYWRkV2FsbGV0SW5wdXRzVG9XYXNtUHNidCh3YXNtUHNidCwgdW5zcGVudHMsIHJvb3RXYWxsZXRLZXlzKTtcblxuICAvLyBDYWxjdWxhdGUgZGltZW5zaW9ucyB1c2luZyB3YXNtLXV0eG8gRGltZW5zaW9uc1xuICBsZXQgZGltZW5zaW9ucyA9IGZpeGVkU2NyaXB0V2FsbGV0LkRpbWVuc2lvbnMuZnJvbVBzYnQod2FzbVBzYnQpLnBsdXMoXG4gICAgZml4ZWRTY3JpcHRXYWxsZXQuRGltZW5zaW9ucy5mcm9tT3V0cHV0KHJlY292ZXJ5RGVzdGluYXRpb24sIGNvaW5OYW1lKVxuICApO1xuXG4gIGlmIChrZXlSZWNvdmVyeVNlcnZpY2VGZWVBZGRyZXNzKSB7XG4gICAgZGltZW5zaW9ucyA9IGRpbWVuc2lvbnMucGx1cyhmaXhlZFNjcmlwdFdhbGxldC5EaW1lbnNpb25zLmZyb21PdXRwdXQoa2V5UmVjb3ZlcnlTZXJ2aWNlRmVlQWRkcmVzcywgY29pbk5hbWUpKTtcbiAgfVxuXG4gIGNvbnN0IGFwcHJveGltYXRlRmVlID0gQmlnSW50KGRpbWVuc2lvbnMuZ2V0VlNpemUoKSAqIGZlZVJhdGVTYXRWQik7XG4gIGNvbnN0IHRvdGFsSW5wdXRBbW91bnQgPSB1bnNwZW50U3VtKHVuc3BlbnRzKTtcbiAgY29uc3QgcmVjb3ZlcnlBbW91bnQgPSB0b3RhbElucHV0QW1vdW50IC0gYXBwcm94aW1hdGVGZWUgLSBrZXlSZWNvdmVyeVNlcnZpY2VGZWU7XG5cbiAgaWYgKHJlY292ZXJ5QW1vdW50IDwgQmlnSW50KDApKSB7XG4gICAgdGhyb3cgbmV3IEluc3VmZmljaWVudEZ1bmRzRXJyb3IodG90YWxJbnB1dEFtb3VudCwgYXBwcm94aW1hdGVGZWUsIGtleVJlY292ZXJ5U2VydmljZUZlZSwgcmVjb3ZlcnlBbW91bnQpO1xuICB9XG5cbiAgLy8gQWRkIG91dHB1dHMgdG8gd2FzbSBQU0JUXG4gIGFkZE91dHB1dFRvV2FzbVBzYnQod2FzbVBzYnQsIHJlY292ZXJ5RGVzdGluYXRpb24sIHJlY292ZXJ5QW1vdW50LCBjb2luTmFtZSk7XG5cbiAgaWYgKGtleVJlY292ZXJ5U2VydmljZUZlZUFkZHJlc3MpIHtcbiAgICBhZGRPdXRwdXRUb1dhc21Qc2J0KHdhc21Qc2J0LCBrZXlSZWNvdmVyeVNlcnZpY2VGZWVBZGRyZXNzLCBrZXlSZWNvdmVyeVNlcnZpY2VGZWUsIGNvaW5OYW1lKTtcbiAgfVxuXG4gIHJldHVybiB3YXNtUHNidDtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBiYWNrdXAga2V5IHJlY292ZXJ5IFBTQlQuXG4gKlxuICogQHBhcmFtIGNvaW5OYW1lIC0gVGhlIGNvaW4gbmFtZSBmb3IgdGhlIFBTQlRcbiAqIEBwYXJhbSByb290V2FsbGV0S2V5cyAtIFRoZSB3YWxsZXQga2V5c1xuICogQHBhcmFtIHVuc3BlbnRzIC0gVGhlIHVuc3BlbnRzIHRvIGluY2x1ZGUgaW4gdGhlIFBTQlRcbiAqIEBwYXJhbSBvcHRpb25zIC0gT3B0aW9ucyBmb3IgY3JlYXRpbmcgdGhlIFBTQlRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUJhY2t1cEtleVJlY292ZXJ5UHNidChcbiAgY29pbk5hbWU6IENvaW5OYW1lLFxuICByb290V2FsbGV0S2V5czogZml4ZWRTY3JpcHRXYWxsZXQuUm9vdFdhbGxldEtleXMsXG4gIHVuc3BlbnRzOiBXYWxsZXRVbnNwZW50PGJpZ2ludD5bXSxcbiAgb3B0aW9uczogQ3JlYXRlQmFja3VwS2V5UmVjb3ZlcnlQc2J0T3B0aW9uc1xuKTogZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0IHtcbiAgaWYgKG9wdGlvbnMua2V5UmVjb3ZlcnlTZXJ2aWNlRmVlID4gMCAmJiAhb3B0aW9ucy5rZXlSZWNvdmVyeVNlcnZpY2VGZWVBZGRyZXNzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdrZXlSZWNvdmVyeVNlcnZpY2VGZWVBZGRyZXNzIGlzIHJlcXVpcmVkIHdoZW4ga2V5UmVjb3ZlcnlTZXJ2aWNlRmVlIGlzIHByb3ZpZGVkJyk7XG4gIH1cblxuICByZXR1cm4gY3JlYXRlQmFja3VwS2V5UmVjb3ZlcnlQc2J0V2FzbShjb2luTmFtZSwgcm9vdFdhbGxldEtleXMsIHVuc3BlbnRzLCBvcHRpb25zKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJlY292ZXJ5QW1vdW50KFxuICBwc2J0OiBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQsXG4gIHdhbGxldEtleXM6IGZpeGVkU2NyaXB0V2FsbGV0LlJvb3RXYWxsZXRLZXlzLFxuICBhZGRyZXNzOiBzdHJpbmdcbik6IGJpZ2ludCB7XG4gIGNvbnN0IHBhcnNlZE91dHB1dHMgPSBwc2J0LnBhcnNlT3V0cHV0c1dpdGhXYWxsZXRLZXlzKHdhbGxldEtleXMpO1xuICBjb25zdCByZWNvdmVyeU91dHB1dCA9IHBhcnNlZE91dHB1dHMuZmluZCgobykgPT4gby5hZGRyZXNzID09PSBhZGRyZXNzKTtcbiAgaWYgKCFyZWNvdmVyeU91dHB1dCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgUmVjb3ZlcnkgZGVzdGluYXRpb24gb3V0cHV0IG5vdCBmb3VuZCBpbiBQU0JUOiAke2FkZHJlc3N9YCk7XG4gIH1cbiAgcmV0dXJuIEJpZ0ludChyZWNvdmVyeU91dHB1dC52YWx1ZSk7XG59XG4iXX0=
@@ -1,5 +1,5 @@
1
- import * as utxolib from '@bitgo/utxo-lib';
2
- import * as coreDescriptors from '@bitgo/utxo-core/descriptor';
1
+ import { Psbt, descriptorWallet } from '@bitgo/wasm-utxo';
3
2
  import type { TransactionExplanationDescriptor } from '../fixedScript/explainTransaction';
4
- export declare function explainPsbt(psbt: utxolib.bitgo.UtxoPsbt, descriptors: coreDescriptors.DescriptorMap): TransactionExplanationDescriptor;
3
+ import { UtxoCoinName } from '../../names';
4
+ export declare function explainPsbt(psbt: Psbt, descriptors: descriptorWallet.DescriptorMap, coinName: UtxoCoinName): TransactionExplanationDescriptor;
5
5
  //# sourceMappingURL=explainPsbt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"explainPsbt.d.ts","sourceRoot":"","sources":["../../../../../src/transaction/descriptor/explainPsbt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAE3C,OAAO,KAAK,eAAe,MAAM,6BAA6B,CAAC;AAG/D,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,mCAAmC,CAAC;AA6B1F,wBAAgB,WAAW,CACzB,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,EAC5B,WAAW,EAAE,eAAe,CAAC,aAAa,GACzC,gCAAgC,CAmBlC"}
1
+ {"version":3,"file":"explainPsbt.d.ts","sourceRoot":"","sources":["../../../../../src/transaction/descriptor/explainPsbt.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,mCAAmC,CAAC;AAC1F,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AA0B3C,wBAAgB,WAAW,CACzB,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,gBAAgB,CAAC,aAAa,EAC3C,QAAQ,EAAE,YAAY,GACrB,gCAAgC,CAkBlC"}
@@ -1,82 +1,45 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
2
  Object.defineProperty(exports, "__esModule", { value: true });
36
3
  exports.explainPsbt = explainPsbt;
37
- const coreDescriptors = __importStar(require("@bitgo/utxo-core/descriptor"));
38
- const recipient_1 = require("../recipient");
39
- const names_1 = require("../../names");
4
+ const wasm_utxo_1 = require("@bitgo/wasm-utxo");
5
+ const wasmUtil_1 = require("../../wasmUtil");
40
6
  function toRecipient(output, coinName) {
7
+ const address = output.address ?? `scriptPubKey:${Buffer.from(output.script).toString('hex')}`;
41
8
  return {
42
- address: (0, recipient_1.toExtendedAddressFormat)(output.script, coinName),
9
+ address,
43
10
  amount: output.value.toString(),
44
11
  };
45
12
  }
46
- function sumValues(arr) {
47
- return arr.reduce((sum, e) => sum + e.value, BigInt(0));
48
- }
49
13
  function getInputSignaturesForInputIndex(psbt, inputIndex) {
50
- const { partialSig } = psbt.data.inputs[inputIndex];
51
- if (!partialSig) {
14
+ if (!psbt.hasPartialSignatures(inputIndex)) {
52
15
  return 0;
53
16
  }
54
- return partialSig.reduce((agg, p) => {
55
- const valid = psbt.validateSignaturesOfInputCommon(inputIndex, p.pubkey);
17
+ const partialSigs = psbt.getPartialSignatures(inputIndex);
18
+ return partialSigs.reduce((agg, p) => {
19
+ const valid = psbt.validateSignatureAtInput(inputIndex, p.pubkey);
56
20
  return agg + (valid ? 1 : 0);
57
21
  }, 0);
58
22
  }
59
23
  function getInputSignatures(psbt) {
60
- return psbt.data.inputs.map((_, i) => getInputSignaturesForInputIndex(psbt, i));
24
+ return Array.from({ length: psbt.inputCount() }, (_, i) => getInputSignaturesForInputIndex(psbt, i));
61
25
  }
62
- function explainPsbt(psbt, descriptors) {
63
- const parsedTransaction = coreDescriptors.parse(psbt, descriptors, psbt.network);
26
+ function explainPsbt(psbt, descriptors, coinName) {
27
+ const parsedTransaction = wasm_utxo_1.descriptorWallet.parse(psbt, descriptors, coinName);
64
28
  const { inputs, outputs } = parsedTransaction;
65
29
  const externalOutputs = outputs.filter((o) => o.scriptId === undefined);
66
30
  const changeOutputs = outputs.filter((o) => o.scriptId !== undefined);
67
- const fee = sumValues(inputs) - sumValues(outputs);
31
+ const fee = (0, wasmUtil_1.sumValues)(inputs) - (0, wasmUtil_1.sumValues)(outputs);
68
32
  const inputSignatures = getInputSignatures(psbt);
69
- const coinName = (0, names_1.getCoinName)(psbt.network);
70
33
  return {
71
34
  inputSignatures,
72
35
  signatures: inputSignatures.reduce((a, b) => Math.min(a, b), Infinity),
73
- locktime: psbt.locktime,
74
- id: psbt.getUnsignedTx().getId(),
36
+ locktime: psbt.lockTime(),
37
+ id: psbt.unsignedTxId(),
75
38
  outputs: externalOutputs.map((o) => toRecipient(o, coinName)),
76
- outputAmount: sumValues(externalOutputs).toString(),
39
+ outputAmount: (0, wasmUtil_1.sumValues)(externalOutputs).toString(),
77
40
  changeOutputs: changeOutputs.map((o) => toRecipient(o, coinName)),
78
- changeAmount: sumValues(changeOutputs).toString(),
41
+ changeAmount: (0, wasmUtil_1.sumValues)(changeOutputs).toString(),
79
42
  fee: fee.toString(),
80
43
  };
81
44
  }
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwbGFpblBzYnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vZGVzY3JpcHRvci9leHBsYWluUHNidC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWtDQSxrQ0FzQkM7QUF0REQsNkVBQStEO0FBRS9ELDRDQUF1RDtBQUV2RCx1Q0FBd0Q7QUFFeEQsU0FBUyxXQUFXLENBQUMsTUFBb0MsRUFBRSxRQUFzQjtJQUMvRSxPQUFPO1FBQ0wsT0FBTyxFQUFFLElBQUEsbUNBQXVCLEVBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUM7UUFDekQsTUFBTSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFO0tBQ2hDLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxTQUFTLENBQUMsR0FBd0I7SUFDekMsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDMUQsQ0FBQztBQUVELFNBQVMsK0JBQStCLENBQUMsSUFBNEIsRUFBRSxVQUFrQjtJQUN2RixNQUFNLEVBQUUsVUFBVSxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDcEQsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2hCLE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUNELE9BQU8sVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUNsQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsK0JBQStCLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6RSxPQUFPLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDUixDQUFDO0FBRUQsU0FBUyxrQkFBa0IsQ0FBQyxJQUE0QjtJQUN0RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLCtCQUErQixDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xGLENBQUM7QUFFRCxTQUFnQixXQUFXLENBQ3pCLElBQTRCLEVBQzVCLFdBQTBDO0lBRTFDLE1BQU0saUJBQWlCLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqRixNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLGlCQUFpQixDQUFDO0lBQzlDLE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEtBQUssU0FBUyxDQUFDLENBQUM7SUFDeEUsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxTQUFTLENBQUMsQ0FBQztJQUN0RSxNQUFNLEdBQUcsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ25ELE1BQU0sZUFBZSxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pELE1BQU0sUUFBUSxHQUFHLElBQUEsbUJBQVcsRUFBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDM0MsT0FBTztRQUNMLGVBQWU7UUFDZixVQUFVLEVBQUUsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQztRQUN0RSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7UUFDdkIsRUFBRSxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxLQUFLLEVBQUU7UUFDaEMsT0FBTyxFQUFFLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDN0QsWUFBWSxFQUFFLFNBQVMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxRQUFRLEVBQUU7UUFDbkQsYUFBYSxFQUFFLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDakUsWUFBWSxFQUFFLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxRQUFRLEVBQUU7UUFDakQsR0FBRyxFQUFFLEdBQUcsQ0FBQyxRQUFRLEVBQUU7S0FDcEIsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby91dHhvLWxpYic7XG5pbXBvcnQgeyBJVHJhbnNhY3Rpb25SZWNpcGllbnQgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0ICogYXMgY29yZURlc2NyaXB0b3JzIGZyb20gJ0BiaXRnby91dHhvLWNvcmUvZGVzY3JpcHRvcic7XG5cbmltcG9ydCB7IHRvRXh0ZW5kZWRBZGRyZXNzRm9ybWF0IH0gZnJvbSAnLi4vcmVjaXBpZW50JztcbmltcG9ydCB0eXBlIHsgVHJhbnNhY3Rpb25FeHBsYW5hdGlvbkRlc2NyaXB0b3IgfSBmcm9tICcuLi9maXhlZFNjcmlwdC9leHBsYWluVHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgZ2V0Q29pbk5hbWUsIFV0eG9Db2luTmFtZSB9IGZyb20gJy4uLy4uL25hbWVzJztcblxuZnVuY3Rpb24gdG9SZWNpcGllbnQob3V0cHV0OiBjb3JlRGVzY3JpcHRvcnMuUGFyc2VkT3V0cHV0LCBjb2luTmFtZTogVXR4b0NvaW5OYW1lKTogSVRyYW5zYWN0aW9uUmVjaXBpZW50IHtcbiAgcmV0dXJuIHtcbiAgICBhZGRyZXNzOiB0b0V4dGVuZGVkQWRkcmVzc0Zvcm1hdChvdXRwdXQuc2NyaXB0LCBjb2luTmFtZSksXG4gICAgYW1vdW50OiBvdXRwdXQudmFsdWUudG9TdHJpbmcoKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gc3VtVmFsdWVzKGFycjogeyB2YWx1ZTogYmlnaW50IH1bXSk6IGJpZ2ludCB7XG4gIHJldHVybiBhcnIucmVkdWNlKChzdW0sIGUpID0+IHN1bSArIGUudmFsdWUsIEJpZ0ludCgwKSk7XG59XG5cbmZ1bmN0aW9uIGdldElucHV0U2lnbmF0dXJlc0ZvcklucHV0SW5kZXgocHNidDogdXR4b2xpYi5iaXRnby5VdHhvUHNidCwgaW5wdXRJbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgY29uc3QgeyBwYXJ0aWFsU2lnIH0gPSBwc2J0LmRhdGEuaW5wdXRzW2lucHV0SW5kZXhdO1xuICBpZiAoIXBhcnRpYWxTaWcpIHtcbiAgICByZXR1cm4gMDtcbiAgfVxuICByZXR1cm4gcGFydGlhbFNpZy5yZWR1Y2UoKGFnZywgcCkgPT4ge1xuICAgIGNvbnN0IHZhbGlkID0gcHNidC52YWxpZGF0ZVNpZ25hdHVyZXNPZklucHV0Q29tbW9uKGlucHV0SW5kZXgsIHAucHVia2V5KTtcbiAgICByZXR1cm4gYWdnICsgKHZhbGlkID8gMSA6IDApO1xuICB9LCAwKTtcbn1cblxuZnVuY3Rpb24gZ2V0SW5wdXRTaWduYXR1cmVzKHBzYnQ6IHV0eG9saWIuYml0Z28uVXR4b1BzYnQpOiBudW1iZXJbXSB7XG4gIHJldHVybiBwc2J0LmRhdGEuaW5wdXRzLm1hcCgoXywgaSkgPT4gZ2V0SW5wdXRTaWduYXR1cmVzRm9ySW5wdXRJbmRleChwc2J0LCBpKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleHBsYWluUHNidChcbiAgcHNidDogdXR4b2xpYi5iaXRnby5VdHhvUHNidCxcbiAgZGVzY3JpcHRvcnM6IGNvcmVEZXNjcmlwdG9ycy5EZXNjcmlwdG9yTWFwXG4pOiBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uRGVzY3JpcHRvciB7XG4gIGNvbnN0IHBhcnNlZFRyYW5zYWN0aW9uID0gY29yZURlc2NyaXB0b3JzLnBhcnNlKHBzYnQsIGRlc2NyaXB0b3JzLCBwc2J0Lm5ldHdvcmspO1xuICBjb25zdCB7IGlucHV0cywgb3V0cHV0cyB9ID0gcGFyc2VkVHJhbnNhY3Rpb247XG4gIGNvbnN0IGV4dGVybmFsT3V0cHV0cyA9IG91dHB1dHMuZmlsdGVyKChvKSA9PiBvLnNjcmlwdElkID09PSB1bmRlZmluZWQpO1xuICBjb25zdCBjaGFuZ2VPdXRwdXRzID0gb3V0cHV0cy5maWx0ZXIoKG8pID0+IG8uc2NyaXB0SWQgIT09IHVuZGVmaW5lZCk7XG4gIGNvbnN0IGZlZSA9IHN1bVZhbHVlcyhpbnB1dHMpIC0gc3VtVmFsdWVzKG91dHB1dHMpO1xuICBjb25zdCBpbnB1dFNpZ25hdHVyZXMgPSBnZXRJbnB1dFNpZ25hdHVyZXMocHNidCk7XG4gIGNvbnN0IGNvaW5OYW1lID0gZ2V0Q29pbk5hbWUocHNidC5uZXR3b3JrKTtcbiAgcmV0dXJuIHtcbiAgICBpbnB1dFNpZ25hdHVyZXMsXG4gICAgc2lnbmF0dXJlczogaW5wdXRTaWduYXR1cmVzLnJlZHVjZSgoYSwgYikgPT4gTWF0aC5taW4oYSwgYiksIEluZmluaXR5KSxcbiAgICBsb2NrdGltZTogcHNidC5sb2NrdGltZSxcbiAgICBpZDogcHNidC5nZXRVbnNpZ25lZFR4KCkuZ2V0SWQoKSxcbiAgICBvdXRwdXRzOiBleHRlcm5hbE91dHB1dHMubWFwKChvKSA9PiB0b1JlY2lwaWVudChvLCBjb2luTmFtZSkpLFxuICAgIG91dHB1dEFtb3VudDogc3VtVmFsdWVzKGV4dGVybmFsT3V0cHV0cykudG9TdHJpbmcoKSxcbiAgICBjaGFuZ2VPdXRwdXRzOiBjaGFuZ2VPdXRwdXRzLm1hcCgobykgPT4gdG9SZWNpcGllbnQobywgY29pbk5hbWUpKSxcbiAgICBjaGFuZ2VBbW91bnQ6IHN1bVZhbHVlcyhjaGFuZ2VPdXRwdXRzKS50b1N0cmluZygpLFxuICAgIGZlZTogZmVlLnRvU3RyaW5nKCksXG4gIH07XG59XG4iXX0=
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwbGFpblBzYnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vZGVzY3JpcHRvci9leHBsYWluUHNidC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQThCQSxrQ0FzQkM7QUFuREQsZ0RBQTBEO0FBSTFELDZDQUEyQztBQUUzQyxTQUFTLFdBQVcsQ0FBQyxNQUFxQyxFQUFFLFFBQXNCO0lBQ2hGLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLElBQUksZ0JBQWdCLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO0lBQy9GLE9BQU87UUFDTCxPQUFPO1FBQ1AsTUFBTSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFO0tBQ2hDLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUywrQkFBK0IsQ0FBQyxJQUFVLEVBQUUsVUFBa0I7SUFDckUsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1FBQzNDLE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUNELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMxRCxPQUFPLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDbkMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEUsT0FBTyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0IsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ1IsQ0FBQztBQUVELFNBQVMsa0JBQWtCLENBQUMsSUFBVTtJQUNwQyxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQywrQkFBK0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN2RyxDQUFDO0FBRUQsU0FBZ0IsV0FBVyxDQUN6QixJQUFVLEVBQ1YsV0FBMkMsRUFDM0MsUUFBc0I7SUFFdEIsTUFBTSxpQkFBaUIsR0FBRyw0QkFBZ0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUM5RSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLGlCQUFpQixDQUFDO0lBQzlDLE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEtBQUssU0FBUyxDQUFDLENBQUM7SUFDeEUsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxTQUFTLENBQUMsQ0FBQztJQUN0RSxNQUFNLEdBQUcsR0FBRyxJQUFBLG9CQUFTLEVBQUMsTUFBTSxDQUFDLEdBQUcsSUFBQSxvQkFBUyxFQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ25ELE1BQU0sZUFBZSxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pELE9BQU87UUFDTCxlQUFlO1FBQ2YsVUFBVSxFQUFFLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUM7UUFDdEUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUU7UUFDekIsRUFBRSxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUU7UUFDdkIsT0FBTyxFQUFFLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDN0QsWUFBWSxFQUFFLElBQUEsb0JBQVMsRUFBQyxlQUFlLENBQUMsQ0FBQyxRQUFRLEVBQUU7UUFDbkQsYUFBYSxFQUFFLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDakUsWUFBWSxFQUFFLElBQUEsb0JBQVMsRUFBQyxhQUFhLENBQUMsQ0FBQyxRQUFRLEVBQUU7UUFDakQsR0FBRyxFQUFFLEdBQUcsQ0FBQyxRQUFRLEVBQUU7S0FDcEIsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJVHJhbnNhY3Rpb25SZWNpcGllbnQgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgUHNidCwgZGVzY3JpcHRvcldhbGxldCB9IGZyb20gJ0BiaXRnby93YXNtLXV0eG8nO1xuXG5pbXBvcnQgdHlwZSB7IFRyYW5zYWN0aW9uRXhwbGFuYXRpb25EZXNjcmlwdG9yIH0gZnJvbSAnLi4vZml4ZWRTY3JpcHQvZXhwbGFpblRyYW5zYWN0aW9uJztcbmltcG9ydCB7IFV0eG9Db2luTmFtZSB9IGZyb20gJy4uLy4uL25hbWVzJztcbmltcG9ydCB7IHN1bVZhbHVlcyB9IGZyb20gJy4uLy4uL3dhc21VdGlsJztcblxuZnVuY3Rpb24gdG9SZWNpcGllbnQob3V0cHV0OiBkZXNjcmlwdG9yV2FsbGV0LlBhcnNlZE91dHB1dCwgY29pbk5hbWU6IFV0eG9Db2luTmFtZSk6IElUcmFuc2FjdGlvblJlY2lwaWVudCB7XG4gIGNvbnN0IGFkZHJlc3MgPSBvdXRwdXQuYWRkcmVzcyA/PyBgc2NyaXB0UHViS2V5OiR7QnVmZmVyLmZyb20ob3V0cHV0LnNjcmlwdCkudG9TdHJpbmcoJ2hleCcpfWA7XG4gIHJldHVybiB7XG4gICAgYWRkcmVzcyxcbiAgICBhbW91bnQ6IG91dHB1dC52YWx1ZS50b1N0cmluZygpLFxuICB9O1xufVxuXG5mdW5jdGlvbiBnZXRJbnB1dFNpZ25hdHVyZXNGb3JJbnB1dEluZGV4KHBzYnQ6IFBzYnQsIGlucHV0SW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gIGlmICghcHNidC5oYXNQYXJ0aWFsU2lnbmF0dXJlcyhpbnB1dEluZGV4KSkge1xuICAgIHJldHVybiAwO1xuICB9XG4gIGNvbnN0IHBhcnRpYWxTaWdzID0gcHNidC5nZXRQYXJ0aWFsU2lnbmF0dXJlcyhpbnB1dEluZGV4KTtcbiAgcmV0dXJuIHBhcnRpYWxTaWdzLnJlZHVjZSgoYWdnLCBwKSA9PiB7XG4gICAgY29uc3QgdmFsaWQgPSBwc2J0LnZhbGlkYXRlU2lnbmF0dXJlQXRJbnB1dChpbnB1dEluZGV4LCBwLnB1YmtleSk7XG4gICAgcmV0dXJuIGFnZyArICh2YWxpZCA/IDEgOiAwKTtcbiAgfSwgMCk7XG59XG5cbmZ1bmN0aW9uIGdldElucHV0U2lnbmF0dXJlcyhwc2J0OiBQc2J0KTogbnVtYmVyW10ge1xuICByZXR1cm4gQXJyYXkuZnJvbSh7IGxlbmd0aDogcHNidC5pbnB1dENvdW50KCkgfSwgKF8sIGkpID0+IGdldElucHV0U2lnbmF0dXJlc0ZvcklucHV0SW5kZXgocHNidCwgaSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXhwbGFpblBzYnQoXG4gIHBzYnQ6IFBzYnQsXG4gIGRlc2NyaXB0b3JzOiBkZXNjcmlwdG9yV2FsbGV0LkRlc2NyaXB0b3JNYXAsXG4gIGNvaW5OYW1lOiBVdHhvQ29pbk5hbWVcbik6IFRyYW5zYWN0aW9uRXhwbGFuYXRpb25EZXNjcmlwdG9yIHtcbiAgY29uc3QgcGFyc2VkVHJhbnNhY3Rpb24gPSBkZXNjcmlwdG9yV2FsbGV0LnBhcnNlKHBzYnQsIGRlc2NyaXB0b3JzLCBjb2luTmFtZSk7XG4gIGNvbnN0IHsgaW5wdXRzLCBvdXRwdXRzIH0gPSBwYXJzZWRUcmFuc2FjdGlvbjtcbiAgY29uc3QgZXh0ZXJuYWxPdXRwdXRzID0gb3V0cHV0cy5maWx0ZXIoKG8pID0+IG8uc2NyaXB0SWQgPT09IHVuZGVmaW5lZCk7XG4gIGNvbnN0IGNoYW5nZU91dHB1dHMgPSBvdXRwdXRzLmZpbHRlcigobykgPT4gby5zY3JpcHRJZCAhPT0gdW5kZWZpbmVkKTtcbiAgY29uc3QgZmVlID0gc3VtVmFsdWVzKGlucHV0cykgLSBzdW1WYWx1ZXMob3V0cHV0cyk7XG4gIGNvbnN0IGlucHV0U2lnbmF0dXJlcyA9IGdldElucHV0U2lnbmF0dXJlcyhwc2J0KTtcbiAgcmV0dXJuIHtcbiAgICBpbnB1dFNpZ25hdHVyZXMsXG4gICAgc2lnbmF0dXJlczogaW5wdXRTaWduYXR1cmVzLnJlZHVjZSgoYSwgYikgPT4gTWF0aC5taW4oYSwgYiksIEluZmluaXR5KSxcbiAgICBsb2NrdGltZTogcHNidC5sb2NrVGltZSgpLFxuICAgIGlkOiBwc2J0LnVuc2lnbmVkVHhJZCgpLFxuICAgIG91dHB1dHM6IGV4dGVybmFsT3V0cHV0cy5tYXAoKG8pID0+IHRvUmVjaXBpZW50KG8sIGNvaW5OYW1lKSksXG4gICAgb3V0cHV0QW1vdW50OiBzdW1WYWx1ZXMoZXh0ZXJuYWxPdXRwdXRzKS50b1N0cmluZygpLFxuICAgIGNoYW5nZU91dHB1dHM6IGNoYW5nZU91dHB1dHMubWFwKChvKSA9PiB0b1JlY2lwaWVudChvLCBjb2luTmFtZSkpLFxuICAgIGNoYW5nZUFtb3VudDogc3VtVmFsdWVzKGNoYW5nZU91dHB1dHMpLnRvU3RyaW5nKCksXG4gICAgZmVlOiBmZWUudG9TdHJpbmcoKSxcbiAgfTtcbn1cbiJdfQ==
@@ -1,4 +1,4 @@
1
- export { DescriptorMap } from '@bitgo/utxo-core/descriptor';
1
+ export type { DescriptorMap } from '../../wasmUtil';
2
2
  export { explainPsbt } from './explainPsbt';
3
3
  export { parse } from './parse';
4
4
  export { parseToAmountType } from './parseToAmountType';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/transaction/descriptor/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/transaction/descriptor/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC"}
@@ -11,4 +11,4 @@ var verifyTransaction_1 = require("./verifyTransaction");
11
11
  Object.defineProperty(exports, "verifyTransaction", { enumerable: true, get: function () { return verifyTransaction_1.verifyTransaction; } });
12
12
  var signPsbt_1 = require("./signPsbt");
13
13
  Object.defineProperty(exports, "signPsbt", { enumerable: true, get: function () { return signPsbt_1.signPsbt; } });
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vZGVzY3JpcHRvci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSw2Q0FBNEM7QUFBbkMsMEdBQUEsV0FBVyxPQUFBO0FBQ3BCLGlDQUFnQztBQUF2Qiw4RkFBQSxLQUFLLE9BQUE7QUFDZCx5REFBd0Q7QUFBL0Msc0hBQUEsaUJBQWlCLE9BQUE7QUFDMUIseURBQXdEO0FBQS9DLHNIQUFBLGlCQUFpQixPQUFBO0FBQzFCLHVDQUFzQztBQUE3QixvR0FBQSxRQUFRLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBEZXNjcmlwdG9yTWFwIH0gZnJvbSAnQGJpdGdvL3V0eG8tY29yZS9kZXNjcmlwdG9yJztcbmV4cG9ydCB7IGV4cGxhaW5Qc2J0IH0gZnJvbSAnLi9leHBsYWluUHNidCc7XG5leHBvcnQgeyBwYXJzZSB9IGZyb20gJy4vcGFyc2UnO1xuZXhwb3J0IHsgcGFyc2VUb0Ftb3VudFR5cGUgfSBmcm9tICcuL3BhcnNlVG9BbW91bnRUeXBlJztcbmV4cG9ydCB7IHZlcmlmeVRyYW5zYWN0aW9uIH0gZnJvbSAnLi92ZXJpZnlUcmFuc2FjdGlvbic7XG5leHBvcnQgeyBzaWduUHNidCB9IGZyb20gJy4vc2lnblBzYnQnO1xuIl19
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vZGVzY3JpcHRvci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSw2Q0FBNEM7QUFBbkMsMEdBQUEsV0FBVyxPQUFBO0FBQ3BCLGlDQUFnQztBQUF2Qiw4RkFBQSxLQUFLLE9BQUE7QUFDZCx5REFBd0Q7QUFBL0Msc0hBQUEsaUJBQWlCLE9BQUE7QUFDMUIseURBQXdEO0FBQS9DLHNIQUFBLGlCQUFpQixPQUFBO0FBQzFCLHVDQUFzQztBQUE3QixvR0FBQSxRQUFRLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSB7IERlc2NyaXB0b3JNYXAgfSBmcm9tICcuLi8uLi93YXNtVXRpbCc7XG5leHBvcnQgeyBleHBsYWluUHNidCB9IGZyb20gJy4vZXhwbGFpblBzYnQnO1xuZXhwb3J0IHsgcGFyc2UgfSBmcm9tICcuL3BhcnNlJztcbmV4cG9ydCB7IHBhcnNlVG9BbW91bnRUeXBlIH0gZnJvbSAnLi9wYXJzZVRvQW1vdW50VHlwZSc7XG5leHBvcnQgeyB2ZXJpZnlUcmFuc2FjdGlvbiB9IGZyb20gJy4vdmVyaWZ5VHJhbnNhY3Rpb24nO1xuZXhwb3J0IHsgc2lnblBzYnQgfSBmcm9tICcuL3NpZ25Qc2J0JztcbiJdfQ==
@@ -1,16 +1,18 @@
1
- import * as utxolib from '@bitgo/utxo-lib';
2
1
  import { ITransactionRecipient } from '@bitgo/sdk-core';
3
- import * as coreDescriptors from '@bitgo/utxo-core/descriptor';
2
+ import { Psbt, descriptorWallet } from '@bitgo/wasm-utxo';
4
3
  import { AbstractUtxoCoin, ParseTransactionOptions } from '../../abstractUtxoCoin';
5
4
  import { BaseOutput, BaseParsedTransaction, BaseParsedTransactionOutputs } from '../types';
6
5
  import { IDescriptorWallet } from '../../descriptor/descriptorWallet';
7
6
  import { UtxoCoinName } from '../../names';
8
- type ParsedOutput = coreDescriptors.ParsedOutput;
7
+ import { UtxoLibPsbt } from '../../wasmUtil';
8
+ type ParsedOutput = Omit<descriptorWallet.ParsedOutput, 'script'> & {
9
+ script: Buffer;
10
+ };
9
11
  export type RecipientOutput = Omit<ParsedOutput, 'value'> & {
10
12
  value: bigint | 'max';
11
13
  };
12
14
  export type ParsedOutputsBigInt = BaseParsedTransactionOutputs<bigint, BaseOutput<bigint | 'max'>>;
13
- export declare function toBaseParsedTransactionOutputsFromPsbt(psbt: utxolib.bitgo.UtxoPsbt, descriptorMap: coreDescriptors.DescriptorMap, recipients: ITransactionRecipient[], coinName: UtxoCoinName): ParsedOutputsBigInt;
15
+ export declare function toBaseParsedTransactionOutputsFromPsbt(psbt: Psbt | UtxoLibPsbt | Uint8Array, descriptorMap: descriptorWallet.DescriptorMap, recipients: ITransactionRecipient[], coinName: UtxoCoinName): ParsedOutputsBigInt;
14
16
  export type ParsedDescriptorTransaction<TAmount extends number | bigint> = BaseParsedTransaction<TAmount, BaseOutput<TAmount | 'max'>>;
15
17
  export declare function parse(coin: AbstractUtxoCoin, wallet: IDescriptorWallet, params: ParseTransactionOptions<number | bigint>): ParsedDescriptorTransaction<bigint>;
16
18
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../../../src/transaction/descriptor/parse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,eAAe,MAAM,6BAA6B,CAAC;AAE/D,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,4BAA4B,EAAE,MAAM,UAAU,CAAC;AAG3F,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAGtE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,KAAK,YAAY,GAAG,eAAe,CAAC,YAAY,CAAC;AAEjD,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,GAAG;IAC1D,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC;CACvB,CAAC;AAkDF,MAAM,MAAM,mBAAmB,GAAG,4BAA4B,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC;AAmBnG,wBAAgB,sCAAsC,CACpD,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,EAC5B,aAAa,EAAE,eAAe,CAAC,aAAa,EAC5C,UAAU,EAAE,qBAAqB,EAAE,EACnC,QAAQ,EAAE,YAAY,GACrB,mBAAmB,CASrB;AAED,MAAM,MAAM,2BAA2B,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,IAAI,qBAAqB,CAC9F,OAAO,EACP,UAAU,CAAC,OAAO,GAAG,KAAK,CAAC,CAC5B,CAAC;AAEF,wBAAgB,KAAK,CACnB,IAAI,EAAE,gBAAgB,EACtB,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,uBAAuB,CAAC,MAAM,GAAG,MAAM,CAAC,GAC/C,2BAA2B,CAAC,MAAM,CAAC,CA4BrC"}
1
+ {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../../../src/transaction/descriptor/parse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,4BAA4B,EAAE,MAAM,UAAU,CAAC;AAG3F,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAGtE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAyB,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAEpE,KAAK,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,QAAQ,CAAC,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvF,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,GAAG;IAC1D,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC;CACvB,CAAC;AAoDF,MAAM,MAAM,mBAAmB,GAAG,4BAA4B,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC;AAmBnG,wBAAgB,sCAAsC,CACpD,IAAI,EAAE,IAAI,GAAG,WAAW,GAAG,UAAU,EACrC,aAAa,EAAE,gBAAgB,CAAC,aAAa,EAC7C,UAAU,EAAE,qBAAqB,EAAE,EACnC,QAAQ,EAAE,YAAY,GACrB,mBAAmB,CAWrB;AAED,MAAM,MAAM,2BAA2B,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,IAAI,qBAAqB,CAC9F,OAAO,EACP,UAAU,CAAC,OAAO,GAAG,KAAK,CAAC,CAC5B,CAAC;AAEF,wBAAgB,KAAK,CACnB,IAAI,EAAE,gBAAgB,EACtB,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,uBAAuB,CAAC,MAAM,GAAG,MAAM,CAAC,GAC/C,2BAA2B,CAAC,MAAM,CAAC,CA+BrC"}