@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,24 +1,11 @@
1
- import * as utxolib from '@bitgo/utxo-lib';
2
- import { Dimensions } from '@bitgo/unspents';
3
1
  import { fixedScriptWallet, address as wasmAddress } from '@bitgo/wasm-utxo';
4
- import { getNetworkFromCoinName } from '../names';
5
- const { chainCodesP2tr, chainCodesP2trMusig2 } = utxolib.bitgo;
2
+ import { parseOutputId, unspentSum } from '../unspent';
6
3
  /**
7
4
  * Check if a chain code is for a taproot script type
8
5
  */
9
6
  export function isTaprootChain(chain) {
10
- return (chainCodesP2tr.includes(chain) || chainCodesP2trMusig2.includes(chain));
11
- }
12
- /**
13
- * Convert coin name to wasm-utxo network name
14
- */
15
- export function toNetworkName(coinName) {
16
- const network = getNetworkFromCoinName(coinName);
17
- const networkName = utxolib.getNetworkName(network);
18
- if (!networkName) {
19
- throw new Error(`Invalid coinName: ${coinName}`);
20
- }
21
- return networkName;
7
+ const scriptType = fixedScriptWallet.ChainCode.scriptType(chain);
8
+ return scriptType === 'p2trLegacy' || scriptType === 'p2trMusig2';
22
9
  }
23
10
  class InsufficientFundsError extends Error {
24
11
  constructor(totalInputAmount, approximateFee, krsFee, recoveryAmount) {
@@ -33,38 +20,6 @@ class InsufficientFundsError extends Error {
33
20
  this.recoveryAmount = recoveryAmount;
34
21
  }
35
22
  }
36
- /**
37
- * Create a backup key recovery PSBT using utxolib (legacy implementation)
38
- */
39
- function createBackupKeyRecoveryPsbtUtxolib(coinName, rootWalletKeys, unspents, options) {
40
- const network = getNetworkFromCoinName(coinName);
41
- const { feeRateSatVB, recoveryDestination, keyRecoveryServiceFee, keyRecoveryServiceFeeAddress } = options;
42
- const psbt = utxolib.bitgo.createPsbtForNetwork({ network });
43
- utxolib.bitgo.addXpubsToPsbt(psbt, rootWalletKeys);
44
- unspents.forEach((unspent) => {
45
- utxolib.bitgo.addWalletUnspentToPsbt(psbt, unspent, rootWalletKeys, 'user', 'backup');
46
- });
47
- let dimensions = Dimensions.fromPsbt(psbt).plus(Dimensions.fromOutput({ script: utxolib.address.toOutputScript(recoveryDestination, network) }));
48
- if (keyRecoveryServiceFeeAddress) {
49
- dimensions = dimensions.plus(Dimensions.fromOutput({
50
- script: utxolib.address.toOutputScript(keyRecoveryServiceFeeAddress, network),
51
- }));
52
- }
53
- const approximateFee = BigInt(dimensions.getVSize() * feeRateSatVB);
54
- const totalInputAmount = utxolib.bitgo.unspentSum(unspents, 'bigint');
55
- const recoveryAmount = totalInputAmount - approximateFee - keyRecoveryServiceFee;
56
- if (recoveryAmount < BigInt(0)) {
57
- throw new InsufficientFundsError(totalInputAmount, approximateFee, keyRecoveryServiceFee, recoveryAmount);
58
- }
59
- psbt.addOutput({ script: utxolib.address.toOutputScript(recoveryDestination, network), value: recoveryAmount });
60
- if (keyRecoveryServiceFeeAddress) {
61
- psbt.addOutput({
62
- script: utxolib.address.toOutputScript(keyRecoveryServiceFeeAddress, network),
63
- value: keyRecoveryServiceFee,
64
- });
65
- }
66
- return psbt;
67
- }
68
23
  /**
69
24
  * Check if the network is a Zcash network
70
25
  */
@@ -109,7 +64,7 @@ export function createEmptyWasmPsbt(coinName, rootWalletKeys, options) {
109
64
  */
110
65
  export function addWalletInputsToWasmPsbt(wasmPsbt, unspents, rootWalletKeys) {
111
66
  unspents.forEach((unspent) => {
112
- const { txid, vout } = utxolib.bitgo.parseOutputId(unspent.id);
67
+ const { txid, vout } = parseOutputId(unspent.id);
113
68
  const signPath = isTaprootChain(unspent.chain)
114
69
  ? { signer: 'user', cosigner: 'backup' }
115
70
  : undefined;
@@ -139,20 +94,6 @@ export function addOutputToWasmPsbt(wasmPsbt, address, value, coinName) {
139
94
  const script = wasmAddress.toOutputScriptWithCoin(address, coinName);
140
95
  return wasmPsbt.addOutput({ script, value });
141
96
  }
142
- /**
143
- * Convert a wasm-utxo BitGoPsbt to a utxolib UtxoPsbt.
144
- *
145
- * @param wasmPsbt - The wasm-utxo BitGoPsbt to convert
146
- * @param network - The network
147
- * @returns A utxolib UtxoPsbt
148
- */
149
- export function toPsbtToUtxolibPsbt(wasmPsbt, coinName) {
150
- if (wasmPsbt instanceof fixedScriptWallet.BitGoPsbt) {
151
- const network = getNetworkFromCoinName(coinName);
152
- return utxolib.bitgo.createPsbtFromBuffer(Buffer.from(wasmPsbt.serialize()), network);
153
- }
154
- return wasmPsbt;
155
- }
156
97
  /**
157
98
  * Create a backup key recovery PSBT using wasm-utxo
158
99
  */
@@ -167,7 +108,7 @@ function createBackupKeyRecoveryPsbtWasm(coinName, rootWalletKeys, unspents, opt
167
108
  dimensions = dimensions.plus(fixedScriptWallet.Dimensions.fromOutput(keyRecoveryServiceFeeAddress, coinName));
168
109
  }
169
110
  const approximateFee = BigInt(dimensions.getVSize() * feeRateSatVB);
170
- const totalInputAmount = utxolib.bitgo.unspentSum(unspents, 'bigint');
111
+ const totalInputAmount = unspentSum(unspents);
171
112
  const recoveryAmount = totalInputAmount - approximateFee - keyRecoveryServiceFee;
172
113
  if (recoveryAmount < BigInt(0)) {
173
114
  throw new InsufficientFundsError(totalInputAmount, approximateFee, keyRecoveryServiceFee, recoveryAmount);
@@ -177,46 +118,28 @@ function createBackupKeyRecoveryPsbtWasm(coinName, rootWalletKeys, unspents, opt
177
118
  if (keyRecoveryServiceFeeAddress) {
178
119
  addOutputToWasmPsbt(wasmPsbt, keyRecoveryServiceFeeAddress, keyRecoveryServiceFee, coinName);
179
120
  }
180
- // Convert to utxolib PSBT for signing and return
181
121
  return wasmPsbt;
182
122
  }
183
123
  /**
184
124
  * Create a backup key recovery PSBT.
185
125
  *
186
- * @param network - The network for the PSBT
126
+ * @param coinName - The coin name for the PSBT
187
127
  * @param rootWalletKeys - The wallet keys
188
128
  * @param unspents - The unspents to include in the PSBT
189
129
  * @param options - Options for creating the PSBT
190
- * @param backend - Which backend to use for PSBT creation (default: 'wasm-utxo')
191
130
  */
192
- export function createBackupKeyRecoveryPsbt(coinName, rootWalletKeys, unspents, options, backend = 'wasm-utxo') {
131
+ export function createBackupKeyRecoveryPsbt(coinName, rootWalletKeys, unspents, options) {
193
132
  if (options.keyRecoveryServiceFee > 0 && !options.keyRecoveryServiceFeeAddress) {
194
133
  throw new Error('keyRecoveryServiceFeeAddress is required when keyRecoveryServiceFee is provided');
195
134
  }
196
- if (backend === 'wasm-utxo') {
197
- return createBackupKeyRecoveryPsbtWasm(coinName, rootWalletKeys, unspents, options);
198
- }
199
- else {
200
- return createBackupKeyRecoveryPsbtUtxolib(coinName, rootWalletKeys, unspents, options);
201
- }
135
+ return createBackupKeyRecoveryPsbtWasm(coinName, rootWalletKeys, unspents, options);
202
136
  }
203
137
  export function getRecoveryAmount(psbt, walletKeys, address) {
204
- if (psbt instanceof utxolib.bitgo.UtxoPsbt) {
205
- const recoveryOutputScript = utxolib.address.toOutputScript(address, psbt.network);
206
- const output = psbt.txOutputs.find((o) => o.script.equals(recoveryOutputScript));
207
- if (!output) {
208
- throw new Error(`Recovery destination output not found in PSBT: ${address}`);
209
- }
210
- return output.value;
211
- }
212
- if (psbt instanceof fixedScriptWallet.BitGoPsbt) {
213
- const parsedOutputs = psbt.parseOutputsWithWalletKeys(walletKeys);
214
- const recoveryOutput = parsedOutputs.find((o) => o.address === address);
215
- if (!recoveryOutput) {
216
- throw new Error(`Recovery destination output not found in PSBT: ${address}`);
217
- }
218
- return recoveryOutput.value;
138
+ const parsedOutputs = psbt.parseOutputsWithWalletKeys(walletKeys);
139
+ const recoveryOutput = parsedOutputs.find((o) => o.address === address);
140
+ if (!recoveryOutput) {
141
+ throw new Error(`Recovery destination output not found in PSBT: ${address}`);
219
142
  }
220
- throw new Error('Invalid PSBT type');
143
+ return BigInt(recoveryOutput.value);
221
144
  }
222
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHNidC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yZWNvdmVyeS9wc2J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBWSxpQkFBaUIsRUFBaUIsT0FBTyxJQUFJLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXRHLE9BQU8sRUFBRSxzQkFBc0IsRUFBZ0IsTUFBTSxVQUFVLENBQUM7QUFLaEUsTUFBTSxFQUFFLGNBQWMsRUFBRSxvQkFBb0IsRUFBRSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7QUFXL0Q7O0dBRUc7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUFDLEtBQWdCO0lBQzdDLE9BQU8sQ0FDSixjQUFvQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSyxvQkFBMEMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQ3JILENBQUM7QUFDSixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsYUFBYSxDQUFDLFFBQXNCO0lBQ2xELE1BQU0sT0FBTyxHQUFHLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pELE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDcEQsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUNELE9BQU8sV0FBVyxDQUFDO0FBQ3JCLENBQUM7QUFFRCxNQUFNLHNCQUF1QixTQUFRLEtBQUs7SUFDeEMsWUFDUyxnQkFBd0IsRUFDeEIsY0FBc0IsRUFDdEIsTUFBYyxFQUNkLGNBQXNCO1FBRTdCLEtBQUssQ0FDSCxpRkFBaUY7WUFDL0UsK0JBQStC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QUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQztRQUNqRixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDWixNQUFNLElBQUksS0FBSyxDQUFDLGtEQUFrRCxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQy9FLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUNELElBQUksSUFBSSxZQUFZLGlCQUFpQixDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2hELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNsRSxNQUFNLGNBQWMsR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxLQUFLLE9BQU8sQ0FBQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLGtEQUFrRCxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQy9FLENBQUM7UUFDRCxPQUFPLGNBQWMsQ0FBQyxLQUFLLENBQUM7SUFDOUIsQ0FBQztJQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQztBQUN2QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28vdXR4by1saWInO1xuaW1wb3J0IHsgRGltZW5zaW9ucyB9IGZyb20gJ0BiaXRnby91bnNwZW50cyc7XG5pbXBvcnQgeyBDb2luTmFtZSwgZml4ZWRTY3JpcHRXYWxsZXQsIHV0eG9saWJDb21wYXQsIGFkZHJlc3MgYXMgd2FzbUFkZHJlc3MgfSBmcm9tICdAYml0Z28vd2FzbS11dHhvJztcblxuaW1wb3J0IHsgZ2V0TmV0d29ya0Zyb21Db2luTmFtZSwgVXR4b0NvaW5OYW1lIH0gZnJvbSAnLi4vbmFtZXMnO1xuXG50eXBlIFJvb3RXYWxsZXRLZXlzID0gdXR4b2xpYi5iaXRnby5Sb290V2FsbGV0S2V5cztcbnR5cGUgV2FsbGV0VW5zcGVudDxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50PiA9IHV0eG9saWIuYml0Z28uV2FsbGV0VW5zcGVudDxUTnVtYmVyPjtcblxuY29uc3QgeyBjaGFpbkNvZGVzUDJ0ciwgY2hhaW5Db2Rlc1AydHJNdXNpZzIgfSA9IHV0eG9saWIuYml0Z287XG5cbnR5cGUgQ2hhaW5Db2RlID0gdXR4b2xpYi5iaXRnby5DaGFpbkNvZGU7XG5cbi8qKlxuICogQmFja2VuZCB0byB1c2UgZm9yIFBTQlQgY3JlYXRpb24uXG4gKiAtICd3YXNtLXV0eG8nOiBVc2Ugd2FzbS11dHhvIGZvciBQU0JUIGNyZWF0aW9uIChkZWZhdWx0KVxuICogLSAndXR4b2xpYic6IFVzZSB1dHhvbGliIGZvciBQU0JUIGNyZWF0aW9uIChsZWdhY3kpXG4gKi9cbmV4cG9ydCB0eXBlIFBzYnRCYWNrZW5kID0gJ3dhc20tdXR4bycgfCAndXR4b2xpYic7XG5cbi8qKlxuICogQ2hlY2sgaWYgYSBjaGFpbiBjb2RlIGlzIGZvciBhIHRhcHJvb3Qgc2NyaXB0IHR5cGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVGFwcm9vdENoYWluKGNoYWluOiBDaGFpbkNvZGUpOiBib29sZWFuIHtcbiAgcmV0dXJuIChcbiAgICAoY2hhaW5Db2Rlc1AydHIgYXMgcmVhZG9ubHkgbnVtYmVyW10pLmluY2x1ZGVzKGNoYWluKSB8fCAoY2hhaW5Db2Rlc1AydHJNdXNpZzIgYXMgcmVhZG9ubHkgbnVtYmVyW10pLmluY2x1ZGVzKGNoYWluKVxuICApO1xufVxuXG4vKipcbiAqIENvbnZlcnQgY29pbiBuYW1lIHRvIHdhc20tdXR4byBuZXR3b3JrIG5hbWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvTmV0d29ya05hbWUoY29pbk5hbWU6IFV0eG9Db2luTmFtZSk6IHV0eG9saWJDb21wYXQuVXR4b2xpYk5hbWUge1xuICBjb25zdCBuZXR3b3JrID0gZ2V0TmV0d29ya0Zyb21Db2luTmFtZShjb2luTmFtZSk7XG4gIGNvbnN0IG5ldHdvcmtOYW1lID0gdXR4b2xpYi5nZXROZXR3b3JrTmFtZShuZXR3b3JrKTtcbiAgaWYgKCFuZXR3b3JrTmFtZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBjb2luTmFtZTogJHtjb2luTmFtZX1gKTtcbiAgfVxuICByZXR1cm4gbmV0d29ya05hbWU7XG59XG5cbmNsYXNzIEluc3VmZmljaWVudEZ1bmRzRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyB0b3RhbElucHV0QW1vdW50OiBiaWdpbnQsXG4gICAgcHVibGljIGFwcHJveGltYXRlRmVlOiBiaWdpbnQsXG4gICAgcHVibGljIGtyc0ZlZTogYmlnaW50LFxuICAgIHB1YmxpYyByZWNvdmVyeUFtb3VudDogYmlnaW50XG4gICkge1xuICAgIHN1cGVyKFxuICAgICAgYFRoaXMgd2FsbGV0J3MgYmFsYW5jZSBpcyB0b28gbG93IHRvIHBheSB0aGUgZmVlcyBzcGVjaWZpZWQgYnkgdGhlIEtSUyBwcm92aWRlci5gICtcbiAgICAgICAgYEV4aXN0aW5nIGJhbGFuY2Ugb24gd2FsbGV0OiAke3RvdGFsSW5wdXRBbW91bnQudG9TdHJpbmcoKX0uIGAgK1xuICAgICAgICBgRXN0aW1hdGVkIG5ldHdvcmsgZmVlIGZvciB0aGUgcmVjb3ZlcnkgdHJhbnNhY3Rpb246ICR7YXBwcm94aW1hdGVGZWUudG9TdHJpbmcoKX1gICtcbiAgICAgICAgYEtSUyBmZWUgdG8gcGF5OiAke2tyc0ZlZS50b1N0cmluZygpfS4gYCArXG4gICAgICAgIGBBZnRlciBkZWR1Y3RpbmcgZmVlcywgeW91ciB0b3RhbCByZWNvdmVyYWJsZSBiYWxhbmNlIGlzICR7cmVjb3ZlcnlBbW91bnQudG9TdHJpbmcoKX1gXG4gICAgKTtcbiAgfVxufVxuXG5pbnRlcmZhY2UgQ3JlYXRlQmFja3VwS2V5UmVjb3ZlcnlQc2J0T3B0aW9ucyB7XG4gIGZlZVJhdGVTYXRWQjogbnVtYmVyO1xuICByZWNvdmVyeURlc3RpbmF0aW9uOiBzdHJpbmc7XG4gIGtleVJlY292ZXJ5U2VydmljZUZlZTogYmlnaW50O1xuICBrZXlSZWNvdmVyeVNlcnZpY2VGZWVBZGRyZXNzOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIC8qKiBCbG9jayBoZWlnaHQgZm9yIFpjYXNoIG5ldHdvcmtzIChyZXF1aXJlZCB0byBkZXRlcm1pbmUgY29uc2Vuc3VzIGJyYW5jaCBJRCkgKi9cbiAgYmxvY2tIZWlnaHQ/OiBudW1iZXI7XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgYmFja3VwIGtleSByZWNvdmVyeSBQU0JUIHVzaW5nIHV0eG9saWIgKGxlZ2FjeSBpbXBsZW1lbnRhdGlvbilcbiAqL1xuZnVuY3Rpb24gY3JlYXRlQmFja3VwS2V5UmVjb3ZlcnlQc2J0VXR4b2xpYihcbiAgY29pbk5hbWU6IENvaW5OYW1lLFxuICByb290V2FsbGV0S2V5czogUm9vdFdhbGxldEtleXMsXG4gIHVuc3BlbnRzOiBXYWxsZXRVbnNwZW50PGJpZ2ludD5bXSxcbiAgb3B0aW9uczogQ3JlYXRlQmFja3VwS2V5UmVjb3ZlcnlQc2J0T3B0aW9uc1xuKTogdXR4b2xpYi5iaXRnby5VdHhvUHNidCB7XG4gIGNvbnN0IG5ldHdvcmsgPSBnZXROZXR3b3JrRnJvbUNvaW5OYW1lKGNvaW5OYW1lKTtcbiAgY29uc3QgeyBmZWVSYXRlU2F0VkIsIHJlY292ZXJ5RGVzdGluYXRpb24sIGtleVJlY292ZXJ5U2VydmljZUZlZSwga2V5UmVjb3ZlcnlTZXJ2aWNlRmVlQWRkcmVzcyB9ID0gb3B0aW9ucztcblxuICBjb25zdCBwc2J0ID0gdXR4b2xpYi5iaXRnby5jcmVhdGVQc2J0Rm9yTmV0d29yayh7IG5ldHdvcmsgfSk7XG4gIHV0eG9saWIuYml0Z28uYWRkWHB1YnNUb1BzYnQocHNidCwgcm9vdFdhbGxldEtleXMpO1xuICB1bnNwZW50cy5mb3JFYWNoKCh1bnNwZW50KSA9PiB7XG4gICAgdXR4b2xpYi5iaXRnby5hZGRXYWxsZXRVbnNwZW50VG9Qc2J0KHBzYnQsIHVuc3BlbnQsIHJvb3RXYWxsZXRLZXlzLCAndXNlcicsICdiYWNrdXAnKTtcbiAgfSk7XG5cbiAgbGV0IGRpbWVuc2lvbnMgPSBEaW1lbnNpb25zLmZyb21Qc2J0KHBzYnQpLnBsdXMoXG4gICAgRGltZW5zaW9ucy5mcm9tT3V0cHV0KHsgc2NyaXB0OiB1dHhvbGliLmFkZHJlc3MudG9PdXRwdXRTY3JpcHQocmVjb3ZlcnlEZXN0aW5hdGlvbiwgbmV0d29yaykgfSlcbiAgKTtcblxuICBpZiAoa2V5UmVjb3ZlcnlTZXJ2aWNlRmVlQWRkcmVzcykge1xuICAgIGRpbWVuc2lvbnMgPSBkaW1lbnNpb25zLnBsdXMoXG4gICAgICBEaW1lbnNpb25zLmZyb21PdXRwdXQoe1xuICAgICAgICBzY3JpcHQ6IHV0eG9saWIuYWRkcmVzcy50b091dHB1dFNjcmlwdChrZXlSZWNvdmVyeVNlcnZpY2VGZWVBZGRyZXNzLCBuZXR3b3JrKSxcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IGFwcHJveGltYXRlRmVlID0gQmlnSW50KGRpbWVuc2lvbnMuZ2V0VlNpemUoKSAqIGZlZVJhdGVTYXRWQik7XG4gIGNvbnN0IHRvdGFsSW5wdXRBbW91bnQgPSB1dHhvbGliLmJpdGdvLnVuc3BlbnRTdW0odW5zcGVudHMsICdiaWdpbnQnKTtcbiAgY29uc3QgcmVjb3ZlcnlBbW91bnQgPSB0b3RhbElucHV0QW1vdW50IC0gYXBwcm94aW1hdGVGZWUgLSBrZXlSZWNvdmVyeVNlcnZpY2VGZWU7XG5cbiAgaWYgKHJlY292ZXJ5QW1vdW50IDwgQmlnSW50KDApKSB7XG4gICAgdGhyb3cgbmV3IEluc3VmZmljaWVudEZ1bmRzRXJyb3IodG90YWxJbnB1dEFtb3VudCwgYXBwcm94aW1hdGVGZWUsIGtleVJlY292ZXJ5U2VydmljZUZlZSwgcmVjb3ZlcnlBbW91bnQpO1xuICB9XG5cbiAgcHNidC5hZGRPdXRwdXQoeyBzY3JpcHQ6IHV0eG9saWIuYWRkcmVzcy50b091dHB1dFNjcmlwdChyZWNvdmVyeURlc3RpbmF0aW9uLCBuZXR3b3JrKSwgdmFsdWU6IHJlY292ZXJ5QW1vdW50IH0pO1xuXG4gIGlmIChrZXlSZWNvdmVyeVNlcnZpY2VGZWVBZGRyZXNzKSB7XG4gICAgcHNidC5hZGRPdXRwdXQoe1xuICAgICAgc2NyaXB0OiB1dHhvbGliLmFkZHJlc3MudG9PdXRwdXRTY3JpcHQoa2V5UmVjb3ZlcnlTZXJ2aWNlRmVlQWRkcmVzcywgbmV0d29yayksXG4gICAgICB2YWx1ZToga2V5UmVjb3ZlcnlTZXJ2aWNlRmVlLFxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIHBzYnQ7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgdGhlIG5ldHdvcmsgaXMgYSBaY2FzaCBuZXR3b3JrXG4gKi9cbmZ1bmN0aW9uIGlzWmNhc2goY29pbk5hbWU6IENvaW5OYW1lKTogY29pbk5hbWUgaXMgJ3plYycgfCAndHplYycge1xuICByZXR1cm4gY29pbk5hbWUgPT09ICd6ZWMnIHx8IGNvaW5OYW1lID09PSAndHplYyc7XG59XG5cbi8qKlxuICogRGVmYXVsdCBibG9jayBoZWlnaHRzIGZvciBaY2FzaCBuZXR3b3JrcyBpZiBub3QgcHJvdmlkZWQuXG4gKiBUaGVzZSBzaG91bGQgYmUgc2V0IHRvIGEgaGVpZ2h0IGFmdGVyIHRoZSBsYXRlc3QgbmV0d29yayB1cGdyYWRlLlxuICogVE9ETyhCVEMtMjkwMSk6IGdldCB0aGUgaGVpZ2h0IGZyb20gYmxvY2tjaGFpciBBUEkgaW5zdGVhZCBvZiBoYXJkY29kaW5nLlxuICovXG5jb25zdCBaQ0FTSF9ERUZBVUxUX0JMT0NLX0hFSUdIVFM6IFJlY29yZDwnemVjJyB8ICd0emVjJywgbnVtYmVyPiA9IHtcbiAgemVjOiAzMTQ2NDAwLFxuICB0emVjOiAzNTM2NTAwLFxufTtcblxuLyoqXG4gKiBPcHRpb25zIGZvciBjcmVhdGluZyBhbiBlbXB0eSB3YXNtLXV0eG8gUFNCVFxuICovXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZUVtcHR5V2FzbVBzYnRPcHRpb25zIHtcbiAgLyoqIEJsb2NrIGhlaWdodCBmb3IgWmNhc2ggbmV0d29ya3MgKHJlcXVpcmVkIHRvIGRldGVybWluZSBjb25zZW5zdXMgYnJhbmNoIElEKSAqL1xuICBibG9ja0hlaWdodD86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYW4gZW1wdHkgd2FzbS11dHhvIEJpdEdvUHNidCBmb3IgYSBnaXZlbiBuZXR3b3JrLlxuICogSGFuZGxlcyBaY2FzaCBuZXR3b3JrcyBzcGVjaWFsbHkgYnkgdXNpbmcgWmNhc2hCaXRHb1BzYnQuXG4gKlxuICogQHBhcmFtIG5ldHdvcmsgLSBUaGUgbmV0d29yayBmb3IgdGhlIFBTQlRcbiAqIEBwYXJhbSByb290V2FsbGV0S2V5cyAtIFRoZSB3YWxsZXQga2V5c1xuICogQHBhcmFtIG9wdGlvbnMgLSBPcHRpb25hbCBzZXR0aW5ncyAoZS5nLiwgYmxvY2tIZWlnaHQgZm9yIFpjYXNoKVxuICogQHJldHVybnMgQSB3YXNtLXV0eG8gQml0R29Qc2J0IGluc3RhbmNlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVFbXB0eVdhc21Qc2J0KFxuICBjb2luTmFtZTogQ29pbk5hbWUsXG4gIHJvb3RXYWxsZXRLZXlzOiBSb290V2FsbGV0S2V5cyxcbiAgb3B0aW9ucz86IENyZWF0ZUVtcHR5V2FzbVBzYnRPcHRpb25zXG4pOiBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQge1xuICBpZiAoaXNaY2FzaChjb2luTmFtZSkpIHtcbiAgICAvLyBGb3IgWmNhc2gsIHVzZSBaY2FzaEJpdEdvUHNidCB3aGljaCByZXF1aXJlcyBibG9jayBoZWlnaHQgdG8gZGV0ZXJtaW5lIGNvbnNlbnN1cyBicmFuY2ggSURcbiAgICBjb25zdCBibG9ja0hlaWdodCA9IG9wdGlvbnM/LmJsb2NrSGVpZ2h0ID8/IFpDQVNIX0RFRkFVTFRfQkxPQ0tfSEVJR0hUU1tjb2luTmFtZV07XG4gICAgcmV0dXJuIGZpeGVkU2NyaXB0V2FsbGV0LlpjYXNoQml0R29Qc2J0LmNyZWF0ZUVtcHR5KGNvaW5OYW1lLCByb290V2FsbGV0S2V5cywge1xuICAgICAgYmxvY2tIZWlnaHQsXG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0LmNyZWF0ZUVtcHR5KGNvaW5OYW1lLCByb290V2FsbGV0S2V5cyk7XG59XG5cbi8qKlxuICogQWRkIHdhbGxldCBpbnB1dHMgZnJvbSB1bnNwZW50cyB0byBhIHdhc20tdXR4byBCaXRHb1BzYnQuXG4gKiBIYW5kbGVzIHRhcHJvb3QgaW5wdXRzIGJ5IHNldHRpbmcgdGhlIGFwcHJvcHJpYXRlIHNpZ25QYXRoLlxuICpcbiAqIEBwYXJhbSB3YXNtUHNidCAtIFRoZSB3YXNtLXV0eG8gQml0R29Qc2J0IHRvIGFkZCBpbnB1dHMgdG9cbiAqIEBwYXJhbSB1bnNwZW50cyAtIFRoZSB3YWxsZXQgdW5zcGVudHMgdG8gYWRkIGFzIGlucHV0c1xuICogQHBhcmFtIHJvb3RXYWxsZXRLZXlzIC0gVGhlIHdhbGxldCBrZXlzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRXYWxsZXRJbnB1dHNUb1dhc21Qc2J0KFxuICB3YXNtUHNidDogZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0LFxuICB1bnNwZW50czogV2FsbGV0VW5zcGVudDxiaWdpbnQ+W10sXG4gIHJvb3RXYWxsZXRLZXlzOiBSb290V2FsbGV0S2V5c1xuKTogdm9pZCB7XG4gIHVuc3BlbnRzLmZvckVhY2goKHVuc3BlbnQpID0+IHtcbiAgICBjb25zdCB7IHR4aWQsIHZvdXQgfSA9IHV0eG9saWIuYml0Z28ucGFyc2VPdXRwdXRJZCh1bnNwZW50LmlkKTtcbiAgICBjb25zdCBzaWduUGF0aDogZml4ZWRTY3JpcHRXYWxsZXQuU2lnblBhdGggfCB1bmRlZmluZWQgPSBpc1RhcHJvb3RDaGFpbih1bnNwZW50LmNoYWluKVxuICAgICAgPyB7IHNpZ25lcjogJ3VzZXInLCBjb3NpZ25lcjogJ2JhY2t1cCcgfVxuICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICAvLyBwcmV2VHggbWF5IGJlIGFkZGVkIGR5bmFtaWNhbGx5IGluIGJhY2t1cEtleVJlY292ZXJ5IGZvciBub24tc2Vnd2l0IGlucHV0c1xuICAgIGNvbnN0IHByZXZUeCA9ICh1bnNwZW50IGFzIFdhbGxldFVuc3BlbnQ8YmlnaW50PiAmIHsgcHJldlR4PzogQnVmZmVyIH0pLnByZXZUeDtcblxuICAgIHdhc21Qc2J0LmFkZFdhbGxldElucHV0KFxuICAgICAge1xuICAgICAgICB0eGlkLFxuICAgICAgICB2b3V0LFxuICAgICAgICB2YWx1ZTogdW5zcGVudC52YWx1ZSxcbiAgICAgICAgcHJldlR4OiBwcmV2VHgsXG4gICAgICB9LFxuICAgICAgcm9vdFdhbGxldEtleXMsXG4gICAgICB7XG4gICAgICAgIHNjcmlwdElkOiB7IGNoYWluOiB1bnNwZW50LmNoYWluLCBpbmRleDogdW5zcGVudC5pbmRleCB9LFxuICAgICAgICBzaWduUGF0aCxcbiAgICAgIH1cbiAgICApO1xuICB9KTtcbn1cblxuLyoqXG4gKiBBZGQgYW4gb3V0cHV0IHRvIGEgd2FzbS11dHhvIEJpdEdvUHNidC5cbiAqXG4gKiBAcGFyYW0gd2FzbVBzYnQgLSBUaGUgd2FzbS11dHhvIEJpdEdvUHNidCB0byBhZGQgdGhlIG91dHB1dCB0b1xuICogQHBhcmFtIGFkZHJlc3MgLSBUaGUgZGVzdGluYXRpb24gYWRkcmVzc1xuICogQHBhcmFtIHZhbHVlIC0gVGhlIG91dHB1dCB2YWx1ZSBpbiBzYXRvc2hpc1xuICogQHBhcmFtIG5ldHdvcmsgLSBUaGUgbmV0d29yayAodXNlZCB0byBjb252ZXJ0IGFkZHJlc3MgdG8gc2NyaXB0KVxuICogQHJldHVybnMgVGhlIG91dHB1dCBpbmRleFxuICovXG5leHBvcnQgZnVuY3Rpb24gYWRkT3V0cHV0VG9XYXNtUHNidChcbiAgd2FzbVBzYnQ6IGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidCxcbiAgYWRkcmVzczogc3RyaW5nLFxuICB2YWx1ZTogYmlnaW50LFxuICBjb2luTmFtZTogQ29pbk5hbWVcbik6IG51bWJlciB7XG4gIGNvbnN0IHNjcmlwdCA9IHdhc21BZGRyZXNzLnRvT3V0cHV0U2NyaXB0V2l0aENvaW4oYWRkcmVzcywgY29pbk5hbWUpO1xuICByZXR1cm4gd2FzbVBzYnQuYWRkT3V0cHV0KHsgc2NyaXB0LCB2YWx1ZSB9KTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IGEgd2FzbS11dHhvIEJpdEdvUHNidCB0byBhIHV0eG9saWIgVXR4b1BzYnQuXG4gKlxuICogQHBhcmFtIHdhc21Qc2J0IC0gVGhlIHdhc20tdXR4byBCaXRHb1BzYnQgdG8gY29udmVydFxuICogQHBhcmFtIG5ldHdvcmsgLSBUaGUgbmV0d29ya1xuICogQHJldHVybnMgQSB1dHhvbGliIFV0eG9Qc2J0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b1BzYnRUb1V0eG9saWJQc2J0KFxuICB3YXNtUHNidDogZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0IHwgdXR4b2xpYi5iaXRnby5VdHhvUHNidCxcbiAgY29pbk5hbWU6IENvaW5OYW1lXG4pOiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0IHtcbiAgaWYgKHdhc21Qc2J0IGluc3RhbmNlb2YgZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0KSB7XG4gICAgY29uc3QgbmV0d29yayA9IGdldE5ldHdvcmtGcm9tQ29pbk5hbWUoY29pbk5hbWUpO1xuICAgIHJldHVybiB1dHhvbGliLmJpdGdvLmNyZWF0ZVBzYnRGcm9tQnVmZmVyKEJ1ZmZlci5mcm9tKHdhc21Qc2J0LnNlcmlhbGl6ZSgpKSwgbmV0d29yayk7XG4gIH1cbiAgcmV0dXJuIHdhc21Qc2J0O1xufVxuXG4vKipcbiAqIENyZWF0ZSBhIGJhY2t1cCBrZXkgcmVjb3ZlcnkgUFNCVCB1c2luZyB3YXNtLXV0eG9cbiAqL1xuZnVuY3Rpb24gY3JlYXRlQmFja3VwS2V5UmVjb3ZlcnlQc2J0V2FzbShcbiAgY29pbk5hbWU6IENvaW5OYW1lLFxuICByb290V2FsbGV0S2V5czogUm9vdFdhbGxldEtleXMsXG4gIHVuc3BlbnRzOiBXYWxsZXRVbnNwZW50PGJpZ2ludD5bXSxcbiAgb3B0aW9uczogQ3JlYXRlQmFja3VwS2V5UmVjb3ZlcnlQc2J0T3B0aW9uc1xuKTogZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0IHtcbiAgY29uc3QgeyBmZWVSYXRlU2F0VkIsIHJlY292ZXJ5RGVzdGluYXRpb24sIGtleVJlY292ZXJ5U2VydmljZUZlZSwga2V5UmVjb3ZlcnlTZXJ2aWNlRmVlQWRkcmVzcyB9ID0gb3B0aW9ucztcblxuICAvLyBDcmVhdGUgUFNCVCB3aXRoIHdhc20tdXR4byBhbmQgYWRkIHdhbGxldCBpbnB1dHMgdXNpbmcgc2hhcmVkIHV0aWxpdGllc1xuICBjb25zdCB3YXNtUHNidCA9IGNyZWF0ZUVtcHR5V2FzbVBzYnQoY29pbk5hbWUsIHJvb3RXYWxsZXRLZXlzLCB7IGJsb2NrSGVpZ2h0OiBvcHRpb25zLmJsb2NrSGVpZ2h0IH0pO1xuICBhZGRXYWxsZXRJbnB1dHNUb1dhc21Qc2J0KHdhc21Qc2J0LCB1bnNwZW50cywgcm9vdFdhbGxldEtleXMpO1xuXG4gIC8vIENhbGN1bGF0ZSBkaW1lbnNpb25zIHVzaW5nIHdhc20tdXR4byBEaW1lbnNpb25zXG4gIGxldCBkaW1lbnNpb25zID0gZml4ZWRTY3JpcHRXYWxsZXQuRGltZW5zaW9ucy5mcm9tUHNidCh3YXNtUHNidCkucGx1cyhcbiAgICBmaXhlZFNjcmlwdFdhbGxldC5EaW1lbnNpb25zLmZyb21PdXRwdXQocmVjb3ZlcnlEZXN0aW5hdGlvbiwgY29pbk5hbWUpXG4gICk7XG5cbiAgaWYgKGtleVJlY292ZXJ5U2VydmljZUZlZUFkZHJlc3MpIHtcbiAgICBkaW1lbnNpb25zID0gZGltZW5zaW9ucy5wbHVzKGZpeGVkU2NyaXB0V2FsbGV0LkRpbWVuc2lvbnMuZnJvbU91dHB1dChrZXlSZWNvdmVyeVNlcnZpY2VGZWVBZGRyZXNzLCBjb2luTmFtZSkpO1xuICB9XG5cbiAgY29uc3QgYXBwcm94aW1hdGVGZWUgPSBCaWdJbnQoZGltZW5zaW9ucy5nZXRWU2l6ZSgpICogZmVlUmF0ZVNhdFZCKTtcbiAgY29uc3QgdG90YWxJbnB1dEFtb3VudCA9IHV0eG9saWIuYml0Z28udW5zcGVudFN1bSh1bnNwZW50cywgJ2JpZ2ludCcpO1xuICBjb25zdCByZWNvdmVyeUFtb3VudCA9IHRvdGFsSW5wdXRBbW91bnQgLSBhcHByb3hpbWF0ZUZlZSAtIGtleVJlY292ZXJ5U2VydmljZUZlZTtcblxuICBpZiAocmVjb3ZlcnlBbW91bnQgPCBCaWdJbnQoMCkpIHtcbiAgICB0aHJvdyBuZXcgSW5zdWZmaWNpZW50RnVuZHNFcnJvcih0b3RhbElucHV0QW1vdW50LCBhcHByb3hpbWF0ZUZlZSwga2V5UmVjb3ZlcnlTZXJ2aWNlRmVlLCByZWNvdmVyeUFtb3VudCk7XG4gIH1cblxuICAvLyBBZGQgb3V0cHV0cyB0byB3YXNtIFBTQlRcbiAgYWRkT3V0cHV0VG9XYXNtUHNidCh3YXNtUHNidCwgcmVjb3ZlcnlEZXN0aW5hdGlvbiwgcmVjb3ZlcnlBbW91bnQsIGNvaW5OYW1lKTtcblxuICBpZiAoa2V5UmVjb3ZlcnlTZXJ2aWNlRmVlQWRkcmVzcykge1xuICAgIGFkZE91dHB1dFRvV2FzbVBzYnQod2FzbVBzYnQsIGtleVJlY292ZXJ5U2VydmljZUZlZUFkZHJlc3MsIGtleVJlY292ZXJ5U2VydmljZUZlZSwgY29pbk5hbWUpO1xuICB9XG5cbiAgLy8gQ29udmVydCB0byB1dHhvbGliIFBTQlQgZm9yIHNpZ25pbmcgYW5kIHJldHVyblxuICByZXR1cm4gd2FzbVBzYnQ7XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgYmFja3VwIGtleSByZWNvdmVyeSBQU0JULlxuICpcbiAqIEBwYXJhbSBuZXR3b3JrIC0gVGhlIG5ldHdvcmsgZm9yIHRoZSBQU0JUXG4gKiBAcGFyYW0gcm9vdFdhbGxldEtleXMgLSBUaGUgd2FsbGV0IGtleXNcbiAqIEBwYXJhbSB1bnNwZW50cyAtIFRoZSB1bnNwZW50cyB0byBpbmNsdWRlIGluIHRoZSBQU0JUXG4gKiBAcGFyYW0gb3B0aW9ucyAtIE9wdGlvbnMgZm9yIGNyZWF0aW5nIHRoZSBQU0JUXG4gKiBAcGFyYW0gYmFja2VuZCAtIFdoaWNoIGJhY2tlbmQgdG8gdXNlIGZvciBQU0JUIGNyZWF0aW9uIChkZWZhdWx0OiAnd2FzbS11dHhvJylcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUJhY2t1cEtleVJlY292ZXJ5UHNidChcbiAgY29pbk5hbWU6IENvaW5OYW1lLFxuICByb290V2FsbGV0S2V5czogUm9vdFdhbGxldEtleXMsXG4gIHVuc3BlbnRzOiBXYWxsZXRVbnNwZW50PGJpZ2ludD5bXSxcbiAgb3B0aW9uczogQ3JlYXRlQmFja3VwS2V5UmVjb3ZlcnlQc2J0T3B0aW9ucyxcbiAgYmFja2VuZDogUHNidEJhY2tlbmQgPSAnd2FzbS11dHhvJ1xuKTogdXR4b2xpYi5iaXRnby5VdHhvUHNidCB8IGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidCB7XG4gIGlmIChvcHRpb25zLmtleVJlY292ZXJ5U2VydmljZUZlZSA+IDAgJiYgIW9wdGlvbnMua2V5UmVjb3ZlcnlTZXJ2aWNlRmVlQWRkcmVzcykge1xuICAgIHRocm93IG5ldyBFcnJvcigna2V5UmVjb3ZlcnlTZXJ2aWNlRmVlQWRkcmVzcyBpcyByZXF1aXJlZCB3aGVuIGtleVJlY292ZXJ5U2VydmljZUZlZSBpcyBwcm92aWRlZCcpO1xuICB9XG5cbiAgaWYgKGJhY2tlbmQgPT09ICd3YXNtLXV0eG8nKSB7XG4gICAgcmV0dXJuIGNyZWF0ZUJhY2t1cEtleVJlY292ZXJ5UHNidFdhc20oY29pbk5hbWUsIHJvb3RXYWxsZXRLZXlzLCB1bnNwZW50cywgb3B0aW9ucyk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGNyZWF0ZUJhY2t1cEtleVJlY292ZXJ5UHNidFV0eG9saWIoY29pbk5hbWUsIHJvb3RXYWxsZXRLZXlzLCB1bnNwZW50cywgb3B0aW9ucyk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJlY292ZXJ5QW1vdW50KFxuICBwc2J0OiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0IHwgZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0LFxuICB3YWxsZXRLZXlzOiBSb290V2FsbGV0S2V5cyxcbiAgYWRkcmVzczogc3RyaW5nXG4pOiBiaWdpbnQge1xuICBpZiAocHNidCBpbnN0YW5jZW9mIHV0eG9saWIuYml0Z28uVXR4b1BzYnQpIHtcbiAgICBjb25zdCByZWNvdmVyeU91dHB1dFNjcmlwdCA9IHV0eG9saWIuYWRkcmVzcy50b091dHB1dFNjcmlwdChhZGRyZXNzLCBwc2J0Lm5ldHdvcmspO1xuICAgIGNvbnN0IG91dHB1dCA9IHBzYnQudHhPdXRwdXRzLmZpbmQoKG8pID0+IG8uc2NyaXB0LmVxdWFscyhyZWNvdmVyeU91dHB1dFNjcmlwdCkpO1xuICAgIGlmICghb3V0cHV0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFJlY292ZXJ5IGRlc3RpbmF0aW9uIG91dHB1dCBub3QgZm91bmQgaW4gUFNCVDogJHthZGRyZXNzfWApO1xuICAgIH1cbiAgICByZXR1cm4gb3V0cHV0LnZhbHVlO1xuICB9XG4gIGlmIChwc2J0IGluc3RhbmNlb2YgZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0KSB7XG4gICAgY29uc3QgcGFyc2VkT3V0cHV0cyA9IHBzYnQucGFyc2VPdXRwdXRzV2l0aFdhbGxldEtleXMod2FsbGV0S2V5cyk7XG4gICAgY29uc3QgcmVjb3ZlcnlPdXRwdXQgPSBwYXJzZWRPdXRwdXRzLmZpbmQoKG8pID0+IG8uYWRkcmVzcyA9PT0gYWRkcmVzcyk7XG4gICAgaWYgKCFyZWNvdmVyeU91dHB1dCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBSZWNvdmVyeSBkZXN0aW5hdGlvbiBvdXRwdXQgbm90IGZvdW5kIGluIFBTQlQ6ICR7YWRkcmVzc31gKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlY292ZXJ5T3V0cHV0LnZhbHVlO1xuICB9XG4gIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBQU0JUIHR5cGUnKTtcbn1cbiJdfQ==
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHNidC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yZWNvdmVyeS9wc2J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBWSxpQkFBaUIsRUFBRSxPQUFPLElBQUksV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFdkYsT0FBTyxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQXNCLE1BQU0sWUFBWSxDQUFDO0FBRTNFOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBQyxLQUFrQztJQUMvRCxNQUFNLFVBQVUsR0FBRyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pFLE9BQU8sVUFBVSxLQUFLLFlBQVksSUFBSSxVQUFVLEtBQUssWUFBWSxDQUFDO0FBQ3BFLENBQUM7QUFFRCxNQUFNLHNCQUF1QixTQUFRLEtBQUs7SUFDeEMsWUFDUyxnQkFBd0IsRUFDeEIsY0FBc0IsRUFDdEIsTUFBYyxFQUNkLGNBQXNCO1FBRTdCLEtBQUssQ0FDSCxpRkFBaUY7WUFDL0UsK0JBQStCLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxJQUFJO1lBQzlELHVEQUF1RCxjQUFjLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDbEYsbUJBQW1CLE1BQU0sQ0FBQyxRQUFRLEVBQUUsSUFBSTtZQUN4QywyREFBMkQsY0FBYyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQ3pGLENBQUM7UUFYSyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQVE7UUFDeEIsbUJBQWMsR0FBZCxjQUFjLENBQVE7UUFDdEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLG1CQUFjLEdBQWQsY0FBYyxDQUFRO0lBUy9CLENBQUM7Q0FDRjtBQVdEOztHQUVHO0FBQ0gsU0FBUyxPQUFPLENBQUMsUUFBa0I7SUFDakMsT0FBTyxRQUFRLEtBQUssS0FBSyxJQUFJLFFBQVEsS0FBSyxNQUFNLENBQUM7QUFDbkQsQ0FBQztBQUVEOzs7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UUFBUSxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDdEYsQ0FBQztBQUVELE1BQU0sVUFBVSxpQkFBaUIsQ0FDL0IsSUFBaUMsRUFDakMsVUFBNEMsRUFDNUMsT0FBZTtJQUVmLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNsRSxNQUFNLGNBQWMsR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxLQUFLLE9BQU8sQ0FBQyxDQUFDO0lBQ3hFLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLGtEQUFrRCxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFDRCxPQUFPLE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDdEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvaW5OYW1lLCBmaXhlZFNjcmlwdFdhbGxldCwgYWRkcmVzcyBhcyB3YXNtQWRkcmVzcyB9IGZyb20gJ0BiaXRnby93YXNtLXV0eG8nO1xuXG5pbXBvcnQgeyBwYXJzZU91dHB1dElkLCB1bnNwZW50U3VtLCB0eXBlIFdhbGxldFVuc3BlbnQgfSBmcm9tICcuLi91bnNwZW50JztcblxuLyoqXG4gKiBDaGVjayBpZiBhIGNoYWluIGNvZGUgaXMgZm9yIGEgdGFwcm9vdCBzY3JpcHQgdHlwZVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNUYXByb290Q2hhaW4oY2hhaW46IGZpeGVkU2NyaXB0V2FsbGV0LkNoYWluQ29kZSk6IGJvb2xlYW4ge1xuICBjb25zdCBzY3JpcHRUeXBlID0gZml4ZWRTY3JpcHRXYWxsZXQuQ2hhaW5Db2RlLnNjcmlwdFR5cGUoY2hhaW4pO1xuICByZXR1cm4gc2NyaXB0VHlwZSA9PT0gJ3AydHJMZWdhY3knIHx8IHNjcmlwdFR5cGUgPT09ICdwMnRyTXVzaWcyJztcbn1cblxuY2xhc3MgSW5zdWZmaWNpZW50RnVuZHNFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHRvdGFsSW5wdXRBbW91bnQ6IGJpZ2ludCxcbiAgICBwdWJsaWMgYXBwcm94aW1hdGVGZWU6IGJpZ2ludCxcbiAgICBwdWJsaWMga3JzRmVlOiBiaWdpbnQsXG4gICAgcHVibGljIHJlY292ZXJ5QW1vdW50OiBiaWdpbnRcbiAgKSB7XG4gICAgc3VwZXIoXG4gICAgICBgVGhpcyB3YWxsZXQncyBiYWxhbmNlIGlzIHRvbyBsb3cgdG8gcGF5IHRoZSBmZWVzIHNwZWNpZmllZCBieSB0aGUgS1JTIHByb3ZpZGVyLmAgK1xuICAgICAgICBgRXhpc3RpbmcgYmFsYW5jZSBvbiB3YWxsZXQ6ICR7dG90YWxJbnB1dEFtb3VudC50b1N0cmluZygpfS4gYCArXG4gICAgICAgIGBFc3RpbWF0ZWQgbmV0d29yayBmZWUgZm9yIHRoZSByZWNvdmVyeSB0cmFuc2FjdGlvbjogJHthcHByb3hpbWF0ZUZlZS50b1N0cmluZygpfWAgK1xuICAgICAgICBgS1JTIGZlZSB0byBwYXk6ICR7a3JzRmVlLnRvU3RyaW5nKCl9LiBgICtcbiAgICAgICAgYEFmdGVyIGRlZHVjdGluZyBmZWVzLCB5b3VyIHRvdGFsIHJlY292ZXJhYmxlIGJhbGFuY2UgaXMgJHtyZWNvdmVyeUFtb3VudC50b1N0cmluZygpfWBcbiAgICApO1xuICB9XG59XG5cbmludGVyZmFjZSBDcmVhdGVCYWNrdXBLZXlSZWNvdmVyeVBzYnRPcHRpb25zIHtcbiAgZmVlUmF0ZVNhdFZCOiBudW1iZXI7XG4gIHJlY292ZXJ5RGVzdGluYXRpb246IHN0cmluZztcbiAga2V5UmVjb3ZlcnlTZXJ2aWNlRmVlOiBiaWdpbnQ7XG4gIGtleVJlY292ZXJ5U2VydmljZUZlZUFkZHJlc3M6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgLyoqIEJsb2NrIGhlaWdodCBmb3IgWmNhc2ggbmV0d29ya3MgKHJlcXVpcmVkIHRvIGRldGVybWluZSBjb25zZW5zdXMgYnJhbmNoIElEKSAqL1xuICBibG9ja0hlaWdodD86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBDaGVjayBpZiB0aGUgbmV0d29yayBpcyBhIFpjYXNoIG5ldHdvcmtcbiAqL1xuZnVuY3Rpb24gaXNaY2FzaChjb2luTmFtZTogQ29pbk5hbWUpOiBjb2luTmFtZSBpcyAnemVjJyB8ICd0emVjJyB7XG4gIHJldHVybiBjb2luTmFtZSA9PT0gJ3plYycgfHwgY29pbk5hbWUgPT09ICd0emVjJztcbn1cblxuLyoqXG4gKiBEZWZhdWx0IGJsb2NrIGhlaWdodHMgZm9yIFpjYXNoIG5ldHdvcmtzIGlmIG5vdCBwcm92aWRlZC5cbiAqIFRoZXNlIHNob3VsZCBiZSBzZXQgdG8gYSBoZWlnaHQgYWZ0ZXIgdGhlIGxhdGVzdCBuZXR3b3JrIHVwZ3JhZGUuXG4gKiBUT0RPKEJUQy0yOTAxKTogZ2V0IHRoZSBoZWlnaHQgZnJvbSBibG9ja2NoYWlyIEFQSSBpbnN0ZWFkIG9mIGhhcmRjb2RpbmcuXG4gKi9cbmNvbnN0IFpDQVNIX0RFRkFVTFRfQkxPQ0tfSEVJR0hUUzogUmVjb3JkPCd6ZWMnIHwgJ3R6ZWMnLCBudW1iZXI+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,41 +1,37 @@
1
- import * as coreDescriptors from '@bitgo/utxo-core/descriptor';
2
- import { toExtendedAddressFormat } from '../recipient';
3
- import { getCoinName } from '../../names';
1
+ import { descriptorWallet } from '@bitgo/wasm-utxo';
2
+ import { sumValues } from '../../wasmUtil';
4
3
  function toRecipient(output, coinName) {
4
+ const address = output.address ?? `scriptPubKey:${Buffer.from(output.script).toString('hex')}`;
5
5
  return {
6
- address: toExtendedAddressFormat(output.script, coinName),
6
+ address,
7
7
  amount: output.value.toString(),
8
8
  };
9
9
  }
10
- function sumValues(arr) {
11
- return arr.reduce((sum, e) => sum + e.value, BigInt(0));
12
- }
13
10
  function getInputSignaturesForInputIndex(psbt, inputIndex) {
14
- const { partialSig } = psbt.data.inputs[inputIndex];
15
- if (!partialSig) {
11
+ if (!psbt.hasPartialSignatures(inputIndex)) {
16
12
  return 0;
17
13
  }
18
- return partialSig.reduce((agg, p) => {
19
- const valid = psbt.validateSignaturesOfInputCommon(inputIndex, p.pubkey);
14
+ const partialSigs = psbt.getPartialSignatures(inputIndex);
15
+ return partialSigs.reduce((agg, p) => {
16
+ const valid = psbt.validateSignatureAtInput(inputIndex, p.pubkey);
20
17
  return agg + (valid ? 1 : 0);
21
18
  }, 0);
22
19
  }
23
20
  function getInputSignatures(psbt) {
24
- return psbt.data.inputs.map((_, i) => getInputSignaturesForInputIndex(psbt, i));
21
+ return Array.from({ length: psbt.inputCount() }, (_, i) => getInputSignaturesForInputIndex(psbt, i));
25
22
  }
26
- export function explainPsbt(psbt, descriptors) {
27
- const parsedTransaction = coreDescriptors.parse(psbt, descriptors, psbt.network);
23
+ export function explainPsbt(psbt, descriptors, coinName) {
24
+ const parsedTransaction = descriptorWallet.parse(psbt, descriptors, coinName);
28
25
  const { inputs, outputs } = parsedTransaction;
29
26
  const externalOutputs = outputs.filter((o) => o.scriptId === undefined);
30
27
  const changeOutputs = outputs.filter((o) => o.scriptId !== undefined);
31
28
  const fee = sumValues(inputs) - sumValues(outputs);
32
29
  const inputSignatures = getInputSignatures(psbt);
33
- const coinName = getCoinName(psbt.network);
34
30
  return {
35
31
  inputSignatures,
36
32
  signatures: inputSignatures.reduce((a, b) => Math.min(a, b), Infinity),
37
- locktime: psbt.locktime,
38
- id: psbt.getUnsignedTx().getId(),
33
+ locktime: psbt.lockTime(),
34
+ id: psbt.unsignedTxId(),
39
35
  outputs: externalOutputs.map((o) => toRecipient(o, coinName)),
40
36
  outputAmount: sumValues(externalOutputs).toString(),
41
37
  changeOutputs: changeOutputs.map((o) => toRecipient(o, coinName)),
@@ -43,4 +39,4 @@ export function explainPsbt(psbt, descriptors) {
43
39
  fee: fee.toString(),
44
40
  };
45
41
  }
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwbGFpblBzYnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vZGVzY3JpcHRvci9leHBsYWluUHNidC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEtBQUssZUFBZSxNQUFNLDZCQUE2QixDQUFDO0FBRS9ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV2RCxPQUFPLEVBQUUsV0FBVyxFQUFnQixNQUFNLGFBQWEsQ0FBQztBQUV4RCxTQUFTLFdBQVcsQ0FBQyxNQUFvQyxFQUFFLFFBQXNCO0lBQy9FLE9BQU87UUFDTCxPQUFPLEVBQUUsdUJBQXVCLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUM7UUFDekQsTUFBTSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFO0tBQ2hDLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxTQUFTLENBQUMsR0FBd0I7SUFDekMsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDMUQsQ0FBQztBQUVELFNBQVMsK0JBQStCLENBQUMsSUFBNEIsRUFBRSxVQUFrQjtJQUN2RixNQUFNLEVBQUUsVUFBVSxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDcEQsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2hCLE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUNELE9BQU8sVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUNsQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsK0JBQStCLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6RSxPQUFPLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDUixDQUFDO0FBRUQsU0FBUyxrQkFBa0IsQ0FBQyxJQUE0QjtJQUN0RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLCtCQUErQixDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xGLENBQUM7QUFFRCxNQUFNLFVBQVUsV0FBVyxDQUN6QixJQUE0QixFQUM1QixXQUEwQztJQUUxQyxNQUFNLGlCQUFpQixHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakYsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxpQkFBaUIsQ0FBQztJQUM5QyxNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxLQUFLLFNBQVMsQ0FBQyxDQUFDO0lBQ3hFLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEtBQUssU0FBUyxDQUFDLENBQUM7SUFDdEUsTUFBTSxHQUFHLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuRCxNQUFNLGVBQWUsR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqRCxNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzNDLE9BQU87UUFDTCxlQUFlO1FBQ2YsVUFBVSxFQUFFLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUM7UUFDdEUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1FBQ3ZCLEVBQUUsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsS0FBSyxFQUFFO1FBQ2hDLE9BQU8sRUFBRSxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzdELFlBQVksRUFBRSxTQUFTLENBQUMsZUFBZSxDQUFDLENBQUMsUUFBUSxFQUFFO1FBQ25ELGFBQWEsRUFBRSxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ2pFLFlBQVksRUFBRSxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUMsUUFBUSxFQUFFO1FBQ2pELEdBQUcsRUFBRSxHQUFHLENBQUMsUUFBUSxFQUFFO0tBQ3BCLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28vdXR4by1saWInO1xuaW1wb3J0IHsgSVRyYW5zYWN0aW9uUmVjaXBpZW50IH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCAqIGFzIGNvcmVEZXNjcmlwdG9ycyBmcm9tICdAYml0Z28vdXR4by1jb3JlL2Rlc2NyaXB0b3InO1xuXG5pbXBvcnQgeyB0b0V4dGVuZGVkQWRkcmVzc0Zvcm1hdCB9IGZyb20gJy4uL3JlY2lwaWVudCc7XG5pbXBvcnQgdHlwZSB7IFRyYW5zYWN0aW9uRXhwbGFuYXRpb25EZXNjcmlwdG9yIH0gZnJvbSAnLi4vZml4ZWRTY3JpcHQvZXhwbGFpblRyYW5zYWN0aW9uJztcbmltcG9ydCB7IGdldENvaW5OYW1lLCBVdHhvQ29pbk5hbWUgfSBmcm9tICcuLi8uLi9uYW1lcyc7XG5cbmZ1bmN0aW9uIHRvUmVjaXBpZW50KG91dHB1dDogY29yZURlc2NyaXB0b3JzLlBhcnNlZE91dHB1dCwgY29pbk5hbWU6IFV0eG9Db2luTmFtZSk6IElUcmFuc2FjdGlvblJlY2lwaWVudCB7XG4gIHJldHVybiB7XG4gICAgYWRkcmVzczogdG9FeHRlbmRlZEFkZHJlc3NGb3JtYXQob3V0cHV0LnNjcmlwdCwgY29pbk5hbWUpLFxuICAgIGFtb3VudDogb3V0cHV0LnZhbHVlLnRvU3RyaW5nKCksXG4gIH07XG59XG5cbmZ1bmN0aW9uIHN1bVZhbHVlcyhhcnI6IHsgdmFsdWU6IGJpZ2ludCB9W10pOiBiaWdpbnQge1xuICByZXR1cm4gYXJyLnJlZHVjZSgoc3VtLCBlKSA9PiBzdW0gKyBlLnZhbHVlLCBCaWdJbnQoMCkpO1xufVxuXG5mdW5jdGlvbiBnZXRJbnB1dFNpZ25hdHVyZXNGb3JJbnB1dEluZGV4KHBzYnQ6IHV0eG9saWIuYml0Z28uVXR4b1BzYnQsIGlucHV0SW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gIGNvbnN0IHsgcGFydGlhbFNpZyB9ID0gcHNidC5kYXRhLmlucHV0c1tpbnB1dEluZGV4XTtcbiAgaWYgKCFwYXJ0aWFsU2lnKSB7XG4gICAgcmV0dXJuIDA7XG4gIH1cbiAgcmV0dXJuIHBhcnRpYWxTaWcucmVkdWNlKChhZ2csIHApID0+IHtcbiAgICBjb25zdCB2YWxpZCA9IHBzYnQudmFsaWRhdGVTaWduYXR1cmVzT2ZJbnB1dENvbW1vbihpbnB1dEluZGV4LCBwLnB1YmtleSk7XG4gICAgcmV0dXJuIGFnZyArICh2YWxpZCA/IDEgOiAwKTtcbiAgfSwgMCk7XG59XG5cbmZ1bmN0aW9uIGdldElucHV0U2lnbmF0dXJlcyhwc2J0OiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0KTogbnVtYmVyW10ge1xuICByZXR1cm4gcHNidC5kYXRhLmlucHV0cy5tYXAoKF8sIGkpID0+IGdldElucHV0U2lnbmF0dXJlc0ZvcklucHV0SW5kZXgocHNidCwgaSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXhwbGFpblBzYnQoXG4gIHBzYnQ6IHV0eG9saWIuYml0Z28uVXR4b1BzYnQsXG4gIGRlc2NyaXB0b3JzOiBjb3JlRGVzY3JpcHRvcnMuRGVzY3JpcHRvck1hcFxuKTogVHJhbnNhY3Rpb25FeHBsYW5hdGlvbkRlc2NyaXB0b3Ige1xuICBjb25zdCBwYXJzZWRUcmFuc2FjdGlvbiA9IGNvcmVEZXNjcmlwdG9ycy5wYXJzZShwc2J0LCBkZXNjcmlwdG9ycywgcHNidC5uZXR3b3JrKTtcbiAgY29uc3QgeyBpbnB1dHMsIG91dHB1dHMgfSA9IHBhcnNlZFRyYW5zYWN0aW9uO1xuICBjb25zdCBleHRlcm5hbE91dHB1dHMgPSBvdXRwdXRzLmZpbHRlcigobykgPT4gby5zY3JpcHRJZCA9PT0gdW5kZWZpbmVkKTtcbiAgY29uc3QgY2hhbmdlT3V0cHV0cyA9IG91dHB1dHMuZmlsdGVyKChvKSA9PiBvLnNjcmlwdElkICE9PSB1bmRlZmluZWQpO1xuICBjb25zdCBmZWUgPSBzdW1WYWx1ZXMoaW5wdXRzKSAtIHN1bVZhbHVlcyhvdXRwdXRzKTtcbiAgY29uc3QgaW5wdXRTaWduYXR1cmVzID0gZ2V0SW5wdXRTaWduYXR1cmVzKHBzYnQpO1xuICBjb25zdCBjb2luTmFtZSA9IGdldENvaW5OYW1lKHBzYnQubmV0d29yayk7XG4gIHJldHVybiB7XG4gICAgaW5wdXRTaWduYXR1cmVzLFxuICAgIHNpZ25hdHVyZXM6IGlucHV0U2lnbmF0dXJlcy5yZWR1Y2UoKGEsIGIpID0+IE1hdGgubWluKGEsIGIpLCBJbmZpbml0eSksXG4gICAgbG9ja3RpbWU6IHBzYnQubG9ja3RpbWUsXG4gICAgaWQ6IHBzYnQuZ2V0VW5zaWduZWRUeCgpLmdldElkKCksXG4gICAgb3V0cHV0czogZXh0ZXJuYWxPdXRwdXRzLm1hcCgobykgPT4gdG9SZWNpcGllbnQobywgY29pbk5hbWUpKSxcbiAgICBvdXRwdXRBbW91bnQ6IHN1bVZhbHVlcyhleHRlcm5hbE91dHB1dHMpLnRvU3RyaW5nKCksXG4gICAgY2hhbmdlT3V0cHV0czogY2hhbmdlT3V0cHV0cy5tYXAoKG8pID0+IHRvUmVjaXBpZW50KG8sIGNvaW5OYW1lKSksXG4gICAgY2hhbmdlQW1vdW50OiBzdW1WYWx1ZXMoY2hhbmdlT3V0cHV0cykudG9TdHJpbmcoKSxcbiAgICBmZWU6IGZlZS50b1N0cmluZygpLFxuICB9O1xufVxuIl19
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwbGFpblBzYnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vZGVzY3JpcHRvci9leHBsYWluUHNidC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQVEsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUkxRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsU0FBUyxXQUFXLENBQUMsTUFBcUMsRUFBRSxRQUFzQjtJQUNoRixNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxJQUFJLGdCQUFnQixNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztJQUMvRixPQUFPO1FBQ0wsT0FBTztRQUNQLE1BQU0sRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRTtLQUNoQyxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsK0JBQStCLENBQUMsSUFBVSxFQUFFLFVBQWtCO0lBQ3JFLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztRQUMzQyxPQUFPLENBQUMsQ0FBQztJQUNYLENBQUM7SUFDRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDMUQsT0FBTyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQ25DLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xFLE9BQU8sR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQy9CLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNSLENBQUM7QUFFRCxTQUFTLGtCQUFrQixDQUFDLElBQVU7SUFDcEMsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsK0JBQStCLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdkcsQ0FBQztBQUVELE1BQU0sVUFBVSxXQUFXLENBQ3pCLElBQVUsRUFDVixXQUEyQyxFQUMzQyxRQUFzQjtJQUV0QixNQUFNLGlCQUFpQixHQUFHLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzlFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsaUJBQWlCLENBQUM7SUFDOUMsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxTQUFTLENBQUMsQ0FBQztJQUN4RSxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxLQUFLLFNBQVMsQ0FBQyxDQUFDO0lBQ3RFLE1BQU0sR0FBRyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkQsTUFBTSxlQUFlLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakQsT0FBTztRQUNMLGVBQWU7UUFDZixVQUFVLEVBQUUsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQztRQUN0RSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRTtRQUN6QixFQUFFLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRTtRQUN2QixPQUFPLEVBQUUsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUM3RCxZQUFZLEVBQUUsU0FBUyxDQUFDLGVBQWUsQ0FBQyxDQUFDLFFBQVEsRUFBRTtRQUNuRCxhQUFhLEVBQUUsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNqRSxZQUFZLEVBQUUsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDLFFBQVEsRUFBRTtRQUNqRCxHQUFHLEVBQUUsR0FBRyxDQUFDLFFBQVEsRUFBRTtLQUNwQixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElUcmFuc2FjdGlvblJlY2lwaWVudCB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBQc2J0LCBkZXNjcmlwdG9yV2FsbGV0IH0gZnJvbSAnQGJpdGdvL3dhc20tdXR4byc7XG5cbmltcG9ydCB0eXBlIHsgVHJhbnNhY3Rpb25FeHBsYW5hdGlvbkRlc2NyaXB0b3IgfSBmcm9tICcuLi9maXhlZFNjcmlwdC9leHBsYWluVHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgVXR4b0NvaW5OYW1lIH0gZnJvbSAnLi4vLi4vbmFtZXMnO1xuaW1wb3J0IHsgc3VtVmFsdWVzIH0gZnJvbSAnLi4vLi4vd2FzbVV0aWwnO1xuXG5mdW5jdGlvbiB0b1JlY2lwaWVudChvdXRwdXQ6IGRlc2NyaXB0b3JXYWxsZXQuUGFyc2VkT3V0cHV0LCBjb2luTmFtZTogVXR4b0NvaW5OYW1lKTogSVRyYW5zYWN0aW9uUmVjaXBpZW50IHtcbiAgY29uc3QgYWRkcmVzcyA9IG91dHB1dC5hZGRyZXNzID8/IGBzY3JpcHRQdWJLZXk6JHtCdWZmZXIuZnJvbShvdXRwdXQuc2NyaXB0KS50b1N0cmluZygnaGV4Jyl9YDtcbiAgcmV0dXJuIHtcbiAgICBhZGRyZXNzLFxuICAgIGFtb3VudDogb3V0cHV0LnZhbHVlLnRvU3RyaW5nKCksXG4gIH07XG59XG5cbmZ1bmN0aW9uIGdldElucHV0U2lnbmF0dXJlc0ZvcklucHV0SW5kZXgocHNidDogUHNidCwgaW5wdXRJbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgaWYgKCFwc2J0Lmhhc1BhcnRpYWxTaWduYXR1cmVzKGlucHV0SW5kZXgpKSB7XG4gICAgcmV0dXJuIDA7XG4gIH1cbiAgY29uc3QgcGFydGlhbFNpZ3MgPSBwc2J0LmdldFBhcnRpYWxTaWduYXR1cmVzKGlucHV0SW5kZXgpO1xuICByZXR1cm4gcGFydGlhbFNpZ3MucmVkdWNlKChhZ2csIHApID0+IHtcbiAgICBjb25zdCB2YWxpZCA9IHBzYnQudmFsaWRhdGVTaWduYXR1cmVBdElucHV0KGlucHV0SW5kZXgsIHAucHVia2V5KTtcbiAgICByZXR1cm4gYWdnICsgKHZhbGlkID8gMSA6IDApO1xuICB9LCAwKTtcbn1cblxuZnVuY3Rpb24gZ2V0SW5wdXRTaWduYXR1cmVzKHBzYnQ6IFBzYnQpOiBudW1iZXJbXSB7XG4gIHJldHVybiBBcnJheS5mcm9tKHsgbGVuZ3RoOiBwc2J0LmlucHV0Q291bnQoKSB9LCAoXywgaSkgPT4gZ2V0SW5wdXRTaWduYXR1cmVzRm9ySW5wdXRJbmRleChwc2J0LCBpKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleHBsYWluUHNidChcbiAgcHNidDogUHNidCxcbiAgZGVzY3JpcHRvcnM6IGRlc2NyaXB0b3JXYWxsZXQuRGVzY3JpcHRvck1hcCxcbiAgY29pbk5hbWU6IFV0eG9Db2luTmFtZVxuKTogVHJhbnNhY3Rpb25FeHBsYW5hdGlvbkRlc2NyaXB0b3Ige1xuICBjb25zdCBwYXJzZWRUcmFuc2FjdGlvbiA9IGRlc2NyaXB0b3JXYWxsZXQucGFyc2UocHNidCwgZGVzY3JpcHRvcnMsIGNvaW5OYW1lKTtcbiAgY29uc3QgeyBpbnB1dHMsIG91dHB1dHMgfSA9IHBhcnNlZFRyYW5zYWN0aW9uO1xuICBjb25zdCBleHRlcm5hbE91dHB1dHMgPSBvdXRwdXRzLmZpbHRlcigobykgPT4gby5zY3JpcHRJZCA9PT0gdW5kZWZpbmVkKTtcbiAgY29uc3QgY2hhbmdlT3V0cHV0cyA9IG91dHB1dHMuZmlsdGVyKChvKSA9PiBvLnNjcmlwdElkICE9PSB1bmRlZmluZWQpO1xuICBjb25zdCBmZWUgPSBzdW1WYWx1ZXMoaW5wdXRzKSAtIHN1bVZhbHVlcyhvdXRwdXRzKTtcbiAgY29uc3QgaW5wdXRTaWduYXR1cmVzID0gZ2V0SW5wdXRTaWduYXR1cmVzKHBzYnQpO1xuICByZXR1cm4ge1xuICAgIGlucHV0U2lnbmF0dXJlcyxcbiAgICBzaWduYXR1cmVzOiBpbnB1dFNpZ25hdHVyZXMucmVkdWNlKChhLCBiKSA9PiBNYXRoLm1pbihhLCBiKSwgSW5maW5pdHkpLFxuICAgIGxvY2t0aW1lOiBwc2J0LmxvY2tUaW1lKCksXG4gICAgaWQ6IHBzYnQudW5zaWduZWRUeElkKCksXG4gICAgb3V0cHV0czogZXh0ZXJuYWxPdXRwdXRzLm1hcCgobykgPT4gdG9SZWNpcGllbnQobywgY29pbk5hbWUpKSxcbiAgICBvdXRwdXRBbW91bnQ6IHN1bVZhbHVlcyhleHRlcm5hbE91dHB1dHMpLnRvU3RyaW5nKCksXG4gICAgY2hhbmdlT3V0cHV0czogY2hhbmdlT3V0cHV0cy5tYXAoKG8pID0+IHRvUmVjaXBpZW50KG8sIGNvaW5OYW1lKSksXG4gICAgY2hhbmdlQW1vdW50OiBzdW1WYWx1ZXMoY2hhbmdlT3V0cHV0cykudG9TdHJpbmcoKSxcbiAgICBmZWU6IGZlZS50b1N0cmluZygpLFxuICB9O1xufVxuIl19
@@ -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"}
@@ -3,4 +3,4 @@ export { parse } from './parse';
3
3
  export { parseToAmountType } from './parseToAmountType';
4
4
  export { verifyTransaction } from './verifyTransaction';
5
5
  export { signPsbt } from './signPsbt';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vZGVzY3JpcHRvci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDaEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IERlc2NyaXB0b3JNYXAgfSBmcm9tICdAYml0Z28vdXR4by1jb3JlL2Rlc2NyaXB0b3InO1xuZXhwb3J0IHsgZXhwbGFpblBzYnQgfSBmcm9tICcuL2V4cGxhaW5Qc2J0JztcbmV4cG9ydCB7IHBhcnNlIH0gZnJvbSAnLi9wYXJzZSc7XG5leHBvcnQgeyBwYXJzZVRvQW1vdW50VHlwZSB9IGZyb20gJy4vcGFyc2VUb0Ftb3VudFR5cGUnO1xuZXhwb3J0IHsgdmVyaWZ5VHJhbnNhY3Rpb24gfSBmcm9tICcuL3ZlcmlmeVRyYW5zYWN0aW9uJztcbmV4cG9ydCB7IHNpZ25Qc2J0IH0gZnJvbSAnLi9zaWduUHNidCc7XG4iXX0=
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vZGVzY3JpcHRvci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDaEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIHsgRGVzY3JpcHRvck1hcCB9IGZyb20gJy4uLy4uL3dhc21VdGlsJztcbmV4cG9ydCB7IGV4cGxhaW5Qc2J0IH0gZnJvbSAnLi9leHBsYWluUHNidCc7XG5leHBvcnQgeyBwYXJzZSB9IGZyb20gJy4vcGFyc2UnO1xuZXhwb3J0IHsgcGFyc2VUb0Ftb3VudFR5cGUgfSBmcm9tICcuL3BhcnNlVG9BbW91bnRUeXBlJztcbmV4cG9ydCB7IHZlcmlmeVRyYW5zYWN0aW9uIH0gZnJvbSAnLi92ZXJpZnlUcmFuc2FjdGlvbic7XG5leHBvcnQgeyBzaWduUHNidCB9IGZyb20gJy4vc2lnblBzYnQnO1xuIl19
@@ -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"}
@@ -1,29 +1,31 @@
1
- import * as utxolib from '@bitgo/utxo-lib';
2
- import * as coreDescriptors from '@bitgo/utxo-core/descriptor';
1
+ import { descriptorWallet } from '@bitgo/wasm-utxo';
3
2
  import { getKeySignatures, toBip32Triple, UtxoNamedKeychains } from '../../keychains';
4
3
  import { getDescriptorMapFromWallet, getPolicyForEnv } from '../../descriptor';
5
4
  import { fromExtendedAddressFormatToScript, toExtendedAddressFormat } from '../recipient';
6
5
  import { outputDifferencesWithExpected } from '../outputDifference';
6
+ import { sumValues, toWasmPsbt } from '../../wasmUtil';
7
7
  function toRecipientOutput(recipient, coinName) {
8
8
  return {
9
9
  address: recipient.address,
10
10
  value: recipient.amount === 'max' ? 'max' : BigInt(recipient.amount),
11
11
  script: fromExtendedAddressFormatToScript(recipient.address, coinName),
12
+ scriptId: undefined, // Recipients are external outputs
12
13
  };
13
14
  }
14
- function parseOutputsWithPsbt(psbt, descriptorMap, recipientOutputs) {
15
- const parsed = coreDescriptors.parse(psbt, descriptorMap, psbt.network);
16
- const changeOutputs = parsed.outputs.filter((o) => o.scriptId !== undefined);
17
- const outputDiffs = outputDifferencesWithExpected(parsed.outputs, recipientOutputs);
15
+ function parseOutputsWithPsbt(psbt, descriptorMap, recipientOutputs, coinName) {
16
+ const parsed = descriptorWallet.parse(psbt, descriptorMap, coinName);
17
+ const outputs = parsed.outputs.map((output) => ({
18
+ ...output,
19
+ script: Buffer.from(output.script),
20
+ }));
21
+ const changeOutputs = outputs.filter((o) => o.scriptId !== undefined);
22
+ const outputDiffs = outputDifferencesWithExpected(outputs, recipientOutputs);
18
23
  return {
19
- outputs: parsed.outputs,
24
+ outputs,
20
25
  changeOutputs,
21
26
  ...outputDiffs,
22
27
  };
23
28
  }
24
- function sumValues(arr) {
25
- return arr.reduce((sum, e) => sum + e.value, BigInt(0));
26
- }
27
29
  function toBaseOutputs(outputs, coinName) {
28
30
  return outputs.map((o) => ({
29
31
  address: toExtendedAddressFormat(o.script, coinName),
@@ -45,7 +47,8 @@ function toBaseParsedTransactionOutputs({ outputs, changeOutputs, explicitOutput
45
47
  };
46
48
  }
47
49
  export function toBaseParsedTransactionOutputsFromPsbt(psbt, descriptorMap, recipients, coinName) {
48
- return toBaseParsedTransactionOutputs(parseOutputsWithPsbt(psbt, descriptorMap, recipients.map((r) => toRecipientOutput(r, coinName))), coinName);
50
+ const wasmPsbt = toWasmPsbt(psbt);
51
+ return toBaseParsedTransactionOutputs(parseOutputsWithPsbt(wasmPsbt, descriptorMap, recipients.map((r) => toRecipientOutput(r, coinName)), coinName), coinName);
49
52
  }
50
53
  export function parse(coin, wallet, params) {
51
54
  if (params.txParams.allowExternalChangeAddress) {
@@ -63,17 +66,21 @@ export function parse(coin, wallet, params) {
63
66
  throw new Error('recipients is required');
64
67
  }
65
68
  const psbt = coin.decodeTransactionFromPrebuild(params.txPrebuild);
66
- if (!(psbt instanceof utxolib.bitgo.UtxoPsbt)) {
67
- throw new Error('expected psbt to be an instance of UtxoPsbt');
69
+ let wasmPsbt;
70
+ try {
71
+ wasmPsbt = toWasmPsbt(psbt);
72
+ }
73
+ catch (e) {
74
+ throw new Error(`expected psbt to be a wasm-utxo or utxo-lib PSBT: ${e instanceof Error ? e.message : e}`);
68
75
  }
69
76
  const walletKeys = toBip32Triple(keychains);
70
77
  const descriptorMap = getDescriptorMapFromWallet(wallet, walletKeys, getPolicyForEnv(params.wallet.bitgo.env));
71
78
  return {
72
- ...toBaseParsedTransactionOutputsFromPsbt(psbt, descriptorMap, recipients, coin.name),
79
+ ...toBaseParsedTransactionOutputsFromPsbt(wasmPsbt, descriptorMap, recipients, coin.name),
73
80
  keychains,
74
81
  keySignatures: getKeySignatures(wallet) ?? {},
75
82
  customChange: undefined,
76
83
  needsCustomChangeKeySignatureVerification: false,
77
84
  };
78
85
  }
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vZGVzY3JpcHRvci9wYXJzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGlCQUFpQixDQUFDO0FBRTNDLE9BQU8sS0FBSyxlQUFlLE1BQU0sNkJBQTZCLENBQUM7QUFJL0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3RGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUUvRSxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUYsT0FBTyxFQUFFLDZCQUE2QixFQUFnQyxNQUFNLHFCQUFxQixDQUFDO0FBU2xHLFNBQVMsaUJBQWlCLENBQUMsU0FBZ0MsRUFBRSxRQUFzQjtJQUNqRixPQUFPO1FBQ0wsT0FBTyxFQUFFLFNBQVMsQ0FBQyxPQUFPO1FBQzFCLEtBQUssRUFBRSxTQUFTLENBQUMsTUFBTSxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQztRQUNwRSxNQUFNLEVBQUUsaUNBQWlDLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUM7S0FDdkUsQ0FBQztBQUNKLENBQUM7QUFRRCxTQUFTLG9CQUFvQixDQUMzQixJQUE0QixFQUM1QixhQUE0QyxFQUM1QyxnQkFBbUM7SUFFbkMsTUFBTSxNQUFNLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4RSxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFB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S0FDakQsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby91dHhvLWxpYic7XG5pbXBvcnQgeyBJVHJhbnNhY3Rpb25SZWNpcGllbnQgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0ICogYXMgY29yZURlc2NyaXB0b3JzIGZyb20gJ0BiaXRnby91dHhvLWNvcmUvZGVzY3JpcHRvcic7XG5cbmltcG9ydCB7IEFic3RyYWN0VXR4b0NvaW4sIFBhcnNlVHJhbnNhY3Rpb25PcHRpb25zIH0gZnJvbSAnLi4vLi4vYWJzdHJhY3RVdHhvQ29pbic7XG5pbXBvcnQgeyBCYXNlT3V0cHV0LCBCYXNlUGFyc2VkVHJhbnNhY3Rpb24sIEJhc2VQYXJzZWRUcmFuc2FjdGlvbk91dHB1dHMgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBnZXRLZXlTaWduYXR1cmVzLCB0b0JpcDMyVHJpcGxlLCBVdHhvTmFtZWRLZXljaGFpbnMgfSBmcm9tICcuLi8uLi9rZXljaGFpbnMnO1xuaW1wb3J0IHsgZ2V0RGVzY3JpcHRvck1hcEZyb21XYWxsZXQsIGdldFBvbGljeUZvckVudiB9IGZyb20gJy4uLy4uL2Rlc2NyaXB0b3InO1xuaW1wb3J0IHsgSURlc2NyaXB0b3JXYWxsZXQgfSBmcm9tICcuLi8uLi9kZXNjcmlwdG9yL2Rlc2NyaXB0b3JXYWxsZXQnO1xuaW1wb3J0IHsgZnJvbUV4dGVuZGVkQWRkcmVzc0Zvcm1hdFRvU2NyaXB0LCB0b0V4dGVuZGVkQWRkcmVzc0Zvcm1hdCB9IGZyb20gJy4uL3JlY2lwaWVudCc7XG5pbXBvcnQgeyBvdXRwdXREaWZmZXJlbmNlc1dpdGhFeHBlY3RlZCwgT3V0cHV0RGlmZmVyZW5jZVdpdGhFeHBlY3RlZCB9IGZyb20gJy4uL291dHB1dERpZmZlcmVuY2UnO1xuaW1wb3J0IHsgVXR4b0NvaW5OYW1lIH0gZnJvbSAnLi4vLi4vbmFtZXMnO1xuXG50eXBlIFBhcnNlZE91dHB1dCA9IGNvcmVEZXNjcmlwdG9ycy5QYXJzZWRPdXRwdXQ7XG5cbmV4cG9ydCB0eXBlIFJlY2lwaWVudE91dHB1dCA9IE9taXQ8UGFyc2VkT3V0cHV0LCAndmFsdWUnPiAmIHtcbiAgdmFsdWU6IGJpZ2ludCB8ICdtYXgnO1xufTtcblxuZnVuY3Rpb24gdG9SZWNpcGllbnRPdXRwdXQocmVjaXBpZW50OiBJVHJhbnNhY3Rpb25SZWNpcGllbnQsIGNvaW5OYW1lOiBVdHhvQ29pbk5hbWUpOiBSZWNpcGllbnRPdXRwdXQge1xuICByZXR1cm4ge1xuICAgIGFkZHJlc3M6IHJlY2lwaWVudC5hZGRyZXNzLFxuICAgIHZhbHVlOiByZWNpcGllbnQuYW1vdW50ID09PSAnbWF4JyA/ICdtYXgnIDogQmlnSW50KHJlY2lwaWVudC5hbW91bnQpLFxuICAgIHNjcmlwdDogZnJvbUV4dGVuZGVkQWRkcmVzc0Zvcm1hdFRvU2NyaXB0KHJlY2lwaWVudC5hZGRyZXNzLCBjb2luTmFtZSksXG4gIH07XG59XG5cbi8vIFRPRE8oQlRDLTE2OTcpOiBhbGxvdyBvdXRwdXRzIHdpdGggYHZhbHVlOiAnbWF4J2AgaGVyZVxudHlwZSBQYXJzZWRPdXRwdXRzID0gT3V0cHV0RGlmZmVyZW5jZVdpdGhFeHBlY3RlZDxQYXJzZWRPdXRwdXQsIFJlY2lwaWVudE91dHB1dD4gJiB7XG4gIG91dHB1dHM6IFBhcnNlZE91dHB1dFtdO1xuICBjaGFuZ2VPdXRwdXRzOiBQYXJzZWRPdXRwdXRbXTtcbn07XG5cbmZ1bmN0aW9uIHBhcnNlT3V0cHV0c1dpdGhQc2J0KFxuICBwc2J0OiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0LFxuICBkZXNjcmlwdG9yTWFwOiBjb3JlRGVzY3JpcHRvcnMuRGVzY3JpcHRvck1hcCxcbiAgcmVjaXBpZW50T3V0cHV0czogUmVjaXBpZW50T3V0cHV0W11cbik6IFBhcnNlZE91dHB1dHMge1xuICBjb25zdCBwYXJzZWQgPSBjb3JlRGVzY3JpcHRvcnMucGFyc2UocHNidCwgZGVzY3JpcHRvck1hcCwgcHNidC5uZXR3b3JrKTtcbiAgY29uc3QgY2hhbmdlT3V0cHV0cyA9IHBhcnNlZC5vdXRwdXRzLmZpbHRlcigobykgPT4gby5zY3JpcHRJZCAhPT0gdW5kZWZpbmVkKTtcbiAgY29uc3Qgb3V0cHV0RGlmZnMgPSBvdXRwdXREaWZmZXJlbmNlc1dpdGhFeHBlY3RlZChwYXJzZWQub3V0cHV0cywgcmVjaXBpZW50T3V0cHV0cyk7XG4gIHJldHVybiB7XG4gICAgb3V0cHV0czogcGFyc2VkLm91dHB1dHMsXG4gICAgY2hhbmdlT3V0cHV0cyxcbiAgICAuLi5vdXRwdXREaWZmcyxcbiAgfTtcbn1cblxuZnVuY3Rpb24gc3VtVmFsdWVzKGFycjogeyB2YWx1ZTogYmlnaW50IH1bXSk6IGJpZ2ludCB7XG4gIHJldHVybiBhcnIucmVkdWNlKChzdW0sIGUpID0+IHN1bSArIGUudmFsdWUsIEJpZ0ludCgwKSk7XG59XG5cbmZ1bmN0aW9uIHRvQmFzZU91dHB1dHMob3V0cHV0czogUGFyc2VkT3V0cHV0W10sIGNvaW5OYW1lOiBVdHhvQ29pbk5hbWUpOiBCYXNlT3V0cHV0PGJpZ2ludD5bXTtcbmZ1bmN0aW9uIHRvQmFzZU91dHB1dHMob3V0cHV0czogUmVjaXBpZW50T3V0cHV0W10sIGNvaW5OYW1lOiBVdHhvQ29pbk5hbWUpOiBCYXNlT3V0cHV0PGJpZ2ludCB8ICdtYXgnPltdO1xuZnVuY3Rpb24gdG9CYXNlT3V0cHV0cyhcbiAgb3V0cHV0czogKFBhcnNlZE91dHB1dCB8IFJlY2lwaWVudE91dHB1dClbXSxcbiAgY29pbk5hbWU6IFV0eG9Db2luTmFtZVxuKTogQmFzZU91dHB1dDxiaWdpbnQgfCAnbWF4Jz5bXSB7XG4gIHJldHVybiBvdXRwdXRzLm1hcChcbiAgICAobyk6IEJhc2VPdXRwdXQ8YmlnaW50IHwgJ21heCc+ID0+ICh7XG4gICAgICBhZGRyZXNzOiB0b0V4dGVuZGVkQWRkcmVzc0Zvcm1hdChvLnNjcmlwdCwgY29pbk5hbWUpLFxuICAgICAgYW1vdW50OiBvLnZhbHVlID09PSAnbWF4JyA/ICdtYXgnIDogQmlnSW50KG8udmFsdWUpLFxuICAgICAgZXh0ZXJuYWw6IG8uc2NyaXB0SWQgPT09IHVuZGVmaW5lZCxcbiAgICB9KVxuICApO1xufVxuXG5leHBvcnQgdHlwZSBQYXJzZWRPdXRwdXRzQmlnSW50ID0gQmFzZVBhcnNlZFRyYW5zYWN0aW9uT3V0cHV0czxiaWdpbnQsIEJhc2VPdXRwdXQ8YmlnaW50IHwgJ21heCc+PjtcblxuZnVuY3Rpb24gdG9CYXNlUGFyc2VkVHJhbnNhY3Rpb25PdXRwdXRzKFxuICB7IG91dHB1dHMsIGNoYW5nZU91dHB1dHMsIGV4cGxpY2l0T3V0cHV0cywgaW1wbGljaXRPdXRwdXRzLCBtaXNzaW5nT3V0cHV0cyB9OiBQYXJzZWRPdXRwdXRzLFxuICBjb2luTmFtZTogVXR4b0NvaW5OYW1lXG4pOiBQYXJzZWRPdXRwdXRzQmlnSW50IHtcbiAgY29uc3QgZXhwbGljaXRFeHRlcm5hbE91dHB1dHMgPSBleHBsaWNpdE91dHB1dHMuZmlsdGVyKChvKSA9PiBvLnNjcmlwdElkID09PSB1bmRlZmluZWQpO1xuICBjb25zdCBpbXBsaWNpdEV4dGVybmFsT3V0cHV0cyA9IGltcGxpY2l0T3V0cHV0cy5maWx0ZXIoKG8pID0+IG8uc2NyaXB0SWQgPT09IHVuZGVmaW5lZCk7XG4gIHJldHVybiB7XG4gICAgb3V0cHV0czogdG9CYXNlT3V0cHV0cyhvdXRwdXRzLCBjb2luTmFtZSksXG4gICAgY2hhbmdlT3V0cHV0czogdG9CYXNlT3V0cHV0cyhjaGFuZ2VPdXRwdXRzLCBjb2luTmFtZSksXG4gICAgZXhwbGljaXRFeHRlcm5hbE91dHB1dHM6IHRvQmFzZU91dHB1dHMoZXhwbGljaXRFeHRlcm5hbE91dHB1dHMsIGNvaW5OYW1lKSxcbiAgICBleHBsaWNpdEV4dGVybmFsU3BlbmRBbW91bnQ6IHN1bVZhbHVlcyhleHBsaWNpdEV4dGVybmFsT3V0cHV0cyksXG4gICAgaW1wbGljaXRFeHRlcm5hbE91dHB1dHM6IHRvQmFzZU91dHB1dHMoaW1wbGljaXRFeHRlcm5hbE91dHB1dHMsIGNvaW5OYW1lKSxcbiAgICBpbXBsaWNpdEV4dGVybmFsU3BlbmRBbW91bnQ6IHN1bVZhbHVlcyhpbXBsaWNpdEV4dGVybmFsT3V0cHV0cyksXG4gICAgbWlzc2luZ091dHB1dHM6IHRvQmFzZU91dHB1dHMobWlzc2luZ091dHB1dHMsIGNvaW5OYW1lKSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvQmFzZVBhcnNlZFRyYW5zYWN0aW9uT3V0cHV0c0Zyb21Qc2J0KFxuICBwc2J0OiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0LFxuICBkZXNjcmlwdG9yTWFwOiBjb3JlRGVzY3JpcHRvcnMuRGVzY3JpcHRvck1hcCxcbiAgcmVjaXBpZW50czogSVRyYW5zYWN0aW9uUmVjaXBpZW50W10sXG4gIGNvaW5OYW1lOiBVdHhvQ29pbk5hbWVcbik6IFBhcnNlZE91dHB1dHNCaWdJbnQge1xuICByZXR1cm4gdG9CYXNlUGFyc2VkVHJhbnNhY3Rpb25PdXRwdXRzKFxuICAgIHBhcnNlT3V0cHV0c1dpdGhQc2J0KFxuICAgICAgcHNidCxcbiAgICAgIGRlc2NyaXB0b3JNYXAsXG4gICAgICByZWNpcGllbnRzLm1hcCgocikgPT4gdG9SZWNpcGllbnRPdXRwdXQociwgY29pbk5hbWUpKVxuICAgICksXG4gICAgY29pbk5hbWVcbiAgKTtcbn1cblxuZXhwb3J0IHR5cGUgUGFyc2VkRGVzY3JpcHRvclRyYW5zYWN0aW9uPFRBbW91bnQgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQ+ID0gQmFzZVBhcnNlZFRyYW5zYWN0aW9uPFxuICBUQW1vdW50LFxuICBCYXNlT3V0cHV0PFRBbW91bnQgfCAnbWF4Jz5cbj47XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZShcbiAgY29pbjogQWJzdHJhY3RVdHhvQ29pbixcbiAgd2FsbGV0OiBJRGVzY3JpcHRvcldhbGxldCxcbiAgcGFyYW1zOiBQYXJzZVRyYW5zYWN0aW9uT3B0aW9uczxudW1iZXIgfCBiaWdpbnQ+XG4pOiBQYXJzZWREZXNjcmlwdG9yVHJhbnNhY3Rpb248YmlnaW50PiB7XG4gIGlmIChwYXJhbXMudHhQYXJhbXMuYWxsb3dFeHRlcm5hbENoYW5nZUFkZHJlc3MpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2FsbG93RXh0ZXJuYWxDaGFuZ2VBZGRyZXNzIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIGRlc2NyaXB0b3Igd2FsbGV0cycpO1xuICB9XG4gIGlmIChwYXJhbXMudHhQYXJhbXMuY2hhbmdlQWRkcmVzcykge1xuICAgIHRocm93IG5ldyBFcnJvcignY2hhbmdlQWRkcmVzcyBpcyBub3Qgc3VwcG9ydGVkIGZvciBkZXNjcmlwdG9yIHdhbGxldHMnKTtcbiAgfVxuICBjb25zdCBrZXljaGFpbnMgPSBwYXJhbXMudmVyaWZpY2F0aW9uPy5rZXljaGFpbnM7XG4gIGlmICgha2V5Y2hhaW5zIHx8ICFVdHhvTmFtZWRLZXljaGFpbnMuaXMoa2V5Y2hhaW5zKSkge1xuICAgIHRocm93IG5ldyBFcnJvcigna2V5Y2hhaW4gaXMgcmVxdWlyZWQgZm9yIGRlc2NyaXB0b3Igd2FsbGV0cycpO1xuICB9XG4gIGNvbnN0IHsgcmVjaXBpZW50cyB9ID0gcGFyYW1zLnR4UGFyYW1zO1xuICBpZiAoIXJlY2lwaWVudHMpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3JlY2lwaWVudHMgaXMgcmVxdWlyZWQnKTtcbiAgfVxuICBjb25zdCBwc2J0ID0gY29pbi5kZWNvZGVUcmFuc2FjdGlvbkZyb21QcmVidWlsZChwYXJhbXMudHhQcmVidWlsZCk7XG4gIGlmICghKHBzYnQgaW5zdGFuY2VvZiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0KSkge1xuICAgIHRocm93IG5ldyBFcnJvcignZXhwZWN0ZWQgcHNidCB0byBiZSBhbiBpbnN0YW5jZSBvZiBVdHhvUHNidCcpO1xuICB9XG4gIGNvbnN0IHdhbGxldEtleXMgPSB0b0JpcDMyVHJpcGxlKGtleWNoYWlucyk7XG4gIGNvbnN0IGRlc2NyaXB0b3JNYXAgPSBnZXREZXNjcmlwdG9yTWFwRnJvbVdhbGxldCh3YWxsZXQsIHdhbGxldEtleXMsIGdldFBvbGljeUZvckVudihwYXJhbXMud2FsbGV0LmJpdGdvLmVudikpO1xuICByZXR1cm4ge1xuICAgIC4uLnRvQmFzZVBhcnNlZFRyYW5zYWN0aW9uT3V0cHV0c0Zyb21Qc2J0KHBzYnQsIGRlc2NyaXB0b3JNYXAsIHJlY2lwaWVudHMsIGNvaW4ubmFtZSksXG4gICAga2V5Y2hhaW5zLFxuICAgIGtleVNpZ25hdHVyZXM6IGdldEtleVNpZ25hdHVyZXMod2FsbGV0KSA/PyB7fSxcbiAgICBjdXN0b21DaGFuZ2U6IHVuZGVmaW5lZCxcbiAgICBuZWVkc0N1c3RvbUNoYW5nZUtleVNpZ25hdHVyZVZlcmlmaWNhdGlvbjogZmFsc2UsXG4gIH07XG59XG4iXX0=
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vZGVzY3JpcHRvci9wYXJzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQVEsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUkxRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLGVBQWUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRS9FLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxRixPQUFPLEVBQUUsNkJBQTZCLEVBQWdDLE1BQU0scUJBQXFCLENBQUM7QUFFbEcsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQWUsTUFBTSxnQkFBZ0IsQ0FBQztBQVFwRSxTQUFTLGlCQUFpQixDQUFDLFNBQWdDLEVBQUUsUUFBc0I7SUFDakYsT0FBTztRQUNMLE9BQU8sRUFBRSxTQUFTLENBQUMsT0FBTztRQUMxQixLQUFLLEVBQUUsU0FBUyxDQUFDLE1BQU0sS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7UUFDcEUsTUFBTSxFQUFFLGlDQUFpQyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDO1FBQ3RFLFFBQVEsRUFBRSxTQUFTLEVBQUUsa0NBQWtDO0tBQ3hELENBQUM7QUFDSixDQUFDO0FBUUQsU0FBUyxvQkFBb0IsQ0FDM0IsSUFBVSxFQUNWLGFBQTZDLEVBQzdDLGdCQUFtQyxFQUNuQyxRQUFzQjtJQUV0QixNQUFNLE1BQU0sR0FBRyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNyRSxN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QUFDLENBQUM7SUFDL0csT0FBTztRQUNMLEdBQUcsc0NBQXNDLENBQUMsUUFBUSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN6RixTQUFTO1FBQ1QsYUFBYSxFQUFFLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUU7UUFDN0MsWUFBWSxFQUFFLFNBQVM7UUFDdkIseUNBQXlDLEVBQUUsS0FBSztLQUNqRCxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElUcmFuc2FjdGlvblJlY2lwaWVudCB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBQc2J0LCBkZXNjcmlwdG9yV2FsbGV0IH0gZnJvbSAnQGJpdGdvL3dhc20tdXR4byc7XG5cbmltcG9ydCB7IEFic3RyYWN0VXR4b0NvaW4sIFBhcnNlVHJhbnNhY3Rpb25PcHRpb25zIH0gZnJvbSAnLi4vLi4vYWJzdHJhY3RVdHhvQ29pbic7XG5pbXBvcnQgeyBCYXNlT3V0cHV0LCBCYXNlUGFyc2VkVHJhbnNhY3Rpb24sIEJhc2VQYXJzZWRUcmFuc2FjdGlvbk91dHB1dHMgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBnZXRLZXlTaWduYXR1cmVzLCB0b0JpcDMyVHJpcGxlLCBVdHhvTmFtZWRLZXljaGFpbnMgfSBmcm9tICcuLi8uLi9rZXljaGFpbnMnO1xuaW1wb3J0IHsgZ2V0RGVzY3JpcHRvck1hcEZyb21XYWxsZXQsIGdldFBvbGljeUZvckVudiB9IGZyb20gJy4uLy4uL2Rlc2NyaXB0b3InO1xuaW1wb3J0IHsgSURlc2NyaXB0b3JXYWxsZXQgfSBmcm9tICcuLi8uLi9kZXNjcmlwdG9yL2Rlc2NyaXB0b3JXYWxsZXQnO1xuaW1wb3J0IHsgZnJvbUV4dGVuZGVkQWRkcmVzc0Zvcm1hdFRvU2NyaXB0LCB0b0V4dGVuZGVkQWRkcmVzc0Zvcm1hdCB9IGZyb20gJy4uL3JlY2lwaWVudCc7XG5pbXBvcnQgeyBvdXRwdXREaWZmZXJlbmNlc1dpdGhFeHBlY3RlZCwgT3V0cHV0RGlmZmVyZW5jZVdpdGhFeHBlY3RlZCB9IGZyb20gJy4uL291dHB1dERpZmZlcmVuY2UnO1xuaW1wb3J0IHsgVXR4b0NvaW5OYW1lIH0gZnJvbSAnLi4vLi4vbmFtZXMnO1xuaW1wb3J0IHsgc3VtVmFsdWVzLCB0b1dhc21Qc2J0LCBVdHhvTGliUHNidCB9IGZyb20gJy4uLy4uL3dhc21VdGlsJztcblxudHlwZSBQYXJzZWRPdXRwdXQgPSBPbWl0PGRlc2NyaXB0b3JXYWxsZXQuUGFyc2VkT3V0cHV0LCAnc2NyaXB0Jz4gJiB7IHNjcmlwdDogQnVmZmVyIH07XG5cbmV4cG9ydCB0eXBlIFJlY2lwaWVudE91dHB1dCA9IE9taXQ8UGFyc2VkT3V0cHV0LCAndmFsdWUnPiAmIHtcbiAgdmFsdWU6IGJpZ2ludCB8ICdtYXgnO1xufTtcblxuZnVuY3Rpb24gdG9SZWNpcGllbnRPdXRwdXQocmVjaXBpZW50OiBJVHJhbnNhY3Rpb25SZWNpcGllbnQsIGNvaW5OYW1lOiBVdHhvQ29pbk5hbWUpOiBSZWNpcGllbnRPdXRwdXQge1xuICByZXR1cm4ge1xuICAgIGFkZHJlc3M6IHJlY2lwaWVudC5hZGRyZXNzLFxuICAgIHZhbHVlOiByZWNpcGllbnQuYW1vdW50ID09PSAnbWF4JyA/ICdtYXgnIDogQmlnSW50KHJlY2lwaWVudC5hbW91bnQpLFxuICAgIHNjcmlwdDogZnJvbUV4dGVuZGVkQWRkcmVzc0Zvcm1hdFRvU2NyaXB0KHJlY2lwaWVudC5hZGRyZXNzLCBjb2luTmFtZSksXG4gICAgc2NyaXB0SWQ6IHVuZGVmaW5lZCwgLy8gUmVjaXBpZW50cyBhcmUgZXh0ZXJuYWwgb3V0cHV0c1xuICB9O1xufVxuXG4vLyBUT0RPKEJUQy0xNjk3KTogYWxsb3cgb3V0cHV0cyB3aXRoIGB2YWx1ZTogJ21heCdgIGhlcmVcbnR5cGUgUGFyc2VkT3V0cHV0cyA9IE91dHB1dERpZmZlcmVuY2VXaXRoRXhwZWN0ZWQ8UGFyc2VkT3V0cHV0LCBSZWNpcGllbnRPdXRwdXQ+ICYge1xuICBvdXRwdXRzOiBQYXJzZWRPdXRwdXRbXTtcbiAgY2hhbmdlT3V0cHV0czogUGFyc2VkT3V0cHV0W107XG59O1xuXG5mdW5jdGlvbiBwYXJzZU91dHB1dHNXaXRoUHNidChcbiAgcHNidDogUHNidCxcbiAgZGVzY3JpcHRvck1hcDogZGVzY3JpcHRvcldhbGxldC5EZXNjcmlwdG9yTWFwLFxuICByZWNpcGllbnRPdXRwdXRzOiBSZWNpcGllbnRPdXRwdXRbXSxcbiAgY29pbk5hbWU6IFV0eG9Db2luTmFtZVxuKTogUGFyc2VkT3V0cHV0cyB7XG4gIGNvbnN0IHBhcnNlZCA9IGRlc2NyaXB0b3JXYWxsZXQucGFyc2UocHNidCwgZGVzY3JpcHRvck1hcCwgY29pbk5hbWUpO1xuICBjb25zdCBvdXRwdXRzOiBQYXJzZWRPdXRwdXRbXSA9IHBhcnNlZC5vdXRwdXRzLm1hcCgob3V0cHV0KSA9PiAoe1xuICAgIC4uLm91dHB1dCxcbiAgICBzY3JpcHQ6IEJ1ZmZlci5mcm9tKG91dHB1dC5zY3JpcHQpLFxuICB9KSk7XG4gIGNvbnN0IGNoYW5nZU91dHB1dHMgPSBvdXRwdXRzLmZpbHRlcigobykgPT4gby5zY3JpcHRJZCAhPT0gdW5kZWZpbmVkKTtcbiAgY29uc3Qgb3V0cHV0RGlmZnMgPSBvdXRwdXREaWZmZXJlbmNlc1dpdGhFeHBlY3RlZChvdXRwdXRzLCByZWNpcGllbnRPdXRwdXRzKTtcbiAgcmV0dXJuIHtcbiAgICBvdXRwdXRzLFxuICAgIGNoYW5nZU91dHB1dHMsXG4gICAgLi4ub3V0cHV0RGlmZnMsXG4gIH07XG59XG5cbmZ1bmN0aW9uIHRvQmFzZU91dHB1dHMob3V0cHV0czogUGFyc2VkT3V0cHV0W10sIGNvaW5OYW1lOiBVdHhvQ29pbk5hbWUpOiBCYXNlT3V0cHV0PGJpZ2ludD5bXTtcbmZ1bmN0aW9uIHRvQmFzZU91dHB1dHMob3V0cHV0czogUmVjaXBpZW50T3V0cHV0W10sIGNvaW5OYW1lOiBVdHhvQ29pbk5hbWUpOiBCYXNlT3V0cHV0PGJpZ2ludCB8ICdtYXgnPltdO1xuZnVuY3Rpb24gdG9CYXNlT3V0cHV0cyhcbiAgb3V0cHV0czogKFBhcnNlZE91dHB1dCB8IFJlY2lwaWVudE91dHB1dClbXSxcbiAgY29pbk5hbWU6IFV0eG9Db2luTmFtZVxuKTogQmFzZU91dHB1dDxiaWdpbnQgfCAnbWF4Jz5bXSB7XG4gIHJldHVybiBvdXRwdXRzLm1hcChcbiAgICAobyk6IEJhc2VPdXRwdXQ8YmlnaW50IHwgJ21heCc+ID0+ICh7XG4gICAgICBhZGRyZXNzOiB0b0V4dGVuZGVkQWRkcmVzc0Zvcm1hdChvLnNjcmlwdCwgY29pbk5hbWUpLFxuICAgICAgYW1vdW50OiBvLnZhbHVlID09PSAnbWF4JyA/ICdtYXgnIDogQmlnSW50KG8udmFsdWUpLFxuICAgICAgZXh0ZXJuYWw6IG8uc2NyaXB0SWQgPT09IHVuZGVmaW5lZCxcbiAgICB9KVxuICApO1xufVxuXG5leHBvcnQgdHlwZSBQYXJzZWRPdXRwdXRzQmlnSW50ID0gQmFzZVBhcnNlZFRyYW5zYWN0aW9uT3V0cHV0czxiaWdpbnQsIEJhc2VPdXRwdXQ8YmlnaW50IHwgJ21heCc+PjtcblxuZnVuY3Rpb24gdG9CYXNlUGFyc2VkVHJhbnNhY3Rpb25PdXRwdXRzKFxuICB7IG91dHB1dHMsIGNoYW5nZU91dHB1dHMsIGV4cGxpY2l0T3V0cHV0cywgaW1wbGljaXRPdXRwdXRzLCBtaXNzaW5nT3V0cHV0cyB9OiBQYXJzZWRPdXRwdXRzLFxuICBjb2luTmFtZTogVXR4b0NvaW5OYW1lXG4pOiBQYXJzZWRPdXRwdXRzQmlnSW50IHtcbiAgY29uc3QgZXhwbGljaXRFeHRlcm5hbE91dHB1dHMgPSBleHBsaWNpdE91dHB1dHMuZmlsdGVyKChvKSA9PiBvLnNjcmlwdElkID09PSB1bmRlZmluZWQpO1xuICBjb25zdCBpbXBsaWNpdEV4dGVybmFsT3V0cHV0cyA9IGltcGxpY2l0T3V0cHV0cy5maWx0ZXIoKG8pID0+IG8uc2NyaXB0SWQgPT09IHVuZGVmaW5lZCk7XG4gIHJldHVybiB7XG4gICAgb3V0cHV0czogdG9CYXNlT3V0cHV0cyhvdXRwdXRzLCBjb2luTmFtZSksXG4gICAgY2hhbmdlT3V0cHV0czogdG9CYXNlT3V0cHV0cyhjaGFuZ2VPdXRwdXRzLCBjb2luTmFtZSksXG4gICAgZXhwbGljaXRFeHRlcm5hbE91dHB1dHM6IHRvQmFzZU91dHB1dHMoZXhwbGljaXRFeHRlcm5hbE91dHB1dHMsIGNvaW5OYW1lKSxcbiAgICBleHBsaWNpdEV4dGVybmFsU3BlbmRBbW91bnQ6IHN1bVZhbHVlcyhleHBsaWNpdEV4dGVybmFsT3V0cHV0cyksXG4gICAgaW1wbGljaXRFeHRlcm5hbE91dHB1dHM6IHRvQmFzZU91dHB1dHMoaW1wbGljaXRFeHRlcm5hbE91dHB1dHMsIGNvaW5OYW1lKSxcbiAgICBpbXBsaWNpdEV4dGVybmFsU3BlbmRBbW91bnQ6IHN1bVZhbHVlcyhpbXBsaWNpdEV4dGVybmFsT3V0cHV0cyksXG4gICAgbWlzc2luZ091dHB1dHM6IHRvQmFzZU91dHB1dHMobWlzc2luZ091dHB1dHMsIGNvaW5OYW1lKSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvQmFzZVBhcnNlZFRyYW5zYWN0aW9uT3V0cHV0c0Zyb21Qc2J0KFxuICBwc2J0OiBQc2J0IHwgVXR4b0xpYlBzYnQgfCBVaW50OEFycmF5LFxuICBkZXNjcmlwdG9yTWFwOiBkZXNjcmlwdG9yV2FsbGV0LkRlc2NyaXB0b3JNYXAsXG4gIHJlY2lwaWVudHM6IElUcmFuc2FjdGlvblJlY2lwaWVudFtdLFxuICBjb2luTmFtZTogVXR4b0NvaW5OYW1lXG4pOiBQYXJzZWRPdXRwdXRzQmlnSW50IHtcbiAgY29uc3Qgd2FzbVBzYnQgPSB0b1dhc21Qc2J0KHBzYnQpO1xuICByZXR1cm4gdG9CYXNlUGFyc2VkVHJhbnNhY3Rpb25PdXRwdXRzKFxuICAgIHBhcnNlT3V0cHV0c1dpdGhQc2J0KFxuICAgICAgd2FzbVBzYnQsXG4gICAgICBkZXNjcmlwdG9yTWFwLFxuICAgICAgcmVjaXBpZW50cy5tYXAoKHIpID0+IHRvUmVjaXBpZW50T3V0cHV0KHIsIGNvaW5OYW1lKSksXG4gICAgICBjb2luTmFtZVxuICAgICksXG4gICAgY29pbk5hbWVcbiAgKTtcbn1cblxuZXhwb3J0IHR5cGUgUGFyc2VkRGVzY3JpcHRvclRyYW5zYWN0aW9uPFRBbW91bnQgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQ+ID0gQmFzZVBhcnNlZFRyYW5zYWN0aW9uPFxuICBUQW1vdW50LFxuICBCYXNlT3V0cHV0PFRBbW91bnQgfCAnbWF4Jz5cbj47XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZShcbiAgY29pbjogQWJzdHJhY3RVdHhvQ29pbixcbiAgd2FsbGV0OiBJRGVzY3JpcHRvcldhbGxldCxcbiAgcGFyYW1zOiBQYXJzZVRyYW5zYWN0aW9uT3B0aW9uczxudW1iZXIgfCBiaWdpbnQ+XG4pOiBQYXJzZWREZXNjcmlwdG9yVHJhbnNhY3Rpb248YmlnaW50PiB7XG4gIGlmIChwYXJhbXMudHhQYXJhbXMuYWxsb3dFeHRlcm5hbENoYW5nZUFkZHJlc3MpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2FsbG93RXh0ZXJuYWxDaGFuZ2VBZGRyZXNzIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIGRlc2NyaXB0b3Igd2FsbGV0cycpO1xuICB9XG4gIGlmIChwYXJhbXMudHhQYXJhbXMuY2hhbmdlQWRkcmVzcykge1xuICAgIHRocm93IG5ldyBFcnJvcignY2hhbmdlQWRkcmVzcyBpcyBub3Qgc3VwcG9ydGVkIGZvciBkZXNjcmlwdG9yIHdhbGxldHMnKTtcbiAgfVxuICBjb25zdCBrZXljaGFpbnMgPSBwYXJhbXMudmVyaWZpY2F0aW9uPy5rZXljaGFpbnM7XG4gIGlmICgha2V5Y2hhaW5zIHx8ICFVdHhvTmFtZWRLZXljaGFpbnMuaXMoa2V5Y2hhaW5zKSkge1xuICAgIHRocm93IG5ldyBFcnJvcigna2V5Y2hhaW4gaXMgcmVxdWlyZWQgZm9yIGRlc2NyaXB0b3Igd2FsbGV0cycpO1xuICB9XG4gIGNvbnN0IHsgcmVjaXBpZW50cyB9ID0gcGFyYW1zLnR4UGFyYW1zO1xuICBpZiAoIXJlY2lwaWVudHMpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3JlY2lwaWVudHMgaXMgcmVxdWlyZWQnKTtcbiAgfVxuICBjb25zdCBwc2J0ID0gY29pbi5kZWNvZGVUcmFuc2FjdGlvbkZyb21QcmVidWlsZChwYXJhbXMudHhQcmVidWlsZCk7XG4gIGxldCB3YXNtUHNidDogUHNidDtcbiAgdHJ5IHtcbiAgICB3YXNtUHNidCA9IHRvV2FzbVBzYnQocHNidCBhcyBQc2J0IHwgVXR4b0xpYlBzYnQgfCBVaW50OEFycmF5KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgZXhwZWN0ZWQgcHNidCB0byBiZSBhIHdhc20tdXR4byBvciB1dHhvLWxpYiBQU0JUOiAke2UgaW5zdGFuY2VvZiBFcnJvciA/IGUubWVzc2FnZSA6IGV9YCk7XG4gIH1cbiAgY29uc3Qgd2FsbGV0S2V5cyA9IHRvQmlwMzJUcmlwbGUoa2V5Y2hhaW5zKTtcbiAgY29uc3QgZGVzY3JpcHRvck1hcCA9IGdldERlc2NyaXB0b3JNYXBGcm9tV2FsbGV0KHdhbGxldCwgd2FsbGV0S2V5cywgZ2V0UG9saWN5Rm9yRW52KHBhcmFtcy53YWxsZXQuYml0Z28uZW52KSk7XG4gIHJldHVybiB7XG4gICAgLi4udG9CYXNlUGFyc2VkVHJhbnNhY3Rpb25PdXRwdXRzRnJvbVBzYnQod2FzbVBzYnQsIGRlc2NyaXB0b3JNYXAsIHJlY2lwaWVudHMsIGNvaW4ubmFtZSksXG4gICAga2V5Y2hhaW5zLFxuICAgIGtleVNpZ25hdHVyZXM6IGdldEtleVNpZ25hdHVyZXMod2FsbGV0KSA/PyB7fSxcbiAgICBjdXN0b21DaGFuZ2U6IHVuZGVmaW5lZCxcbiAgICBuZWVkc0N1c3RvbUNoYW5nZUtleVNpZ25hdHVyZVZlcmlmaWNhdGlvbjogZmFsc2UsXG4gIH07XG59XG4iXX0=
@@ -1,5 +1,5 @@
1
- import * as utxolib from '@bitgo/utxo-lib';
2
- import { DescriptorMap } from '@bitgo/utxo-core/descriptor';
1
+ import { Psbt, descriptorWallet } from '@bitgo/wasm-utxo';
2
+ import type { SignerKey } from '../../wasmUtil';
3
3
  export declare class ErrorUnknownInput extends Error {
4
4
  vin: number;
5
5
  constructor(vin: number);
@@ -11,15 +11,14 @@ export declare class ErrorUnknownInput extends Error {
11
11
  * found in the descriptor map, the behavior is determined by the `onUnknownInput`
12
12
  * parameter.
13
13
  *
14
- *
15
- * @param tx - psbt to sign
16
- * @param descriptorMap - map of input index to descriptor
17
- * @param signerKeychain - key to sign with
14
+ * @param psbt - psbt to sign
15
+ * @param descriptorMap - map of descriptor name to descriptor
16
+ * @param signerKey - key to sign with (BIP32 or ECPair)
18
17
  * @param params - onUnknownInput: 'throw' | 'skip' | 'sign'.
19
18
  * Determines what to do when an input is not found in the
20
19
  * descriptor map.
21
20
  */
22
- export declare function signPsbt(tx: utxolib.Psbt, descriptorMap: DescriptorMap, signerKeychain: utxolib.BIP32Interface, params: {
21
+ export declare function signPsbt(psbt: Psbt, descriptorMap: descriptorWallet.DescriptorMap, signerKey: SignerKey, params: {
23
22
  onUnknownInput: 'throw' | 'skip' | 'sign';
24
23
  }): void;
25
24
  //# sourceMappingURL=signPsbt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"signPsbt.d.ts","sourceRoot":"","sources":["../../../../src/transaction/descriptor/signPsbt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAA0B,MAAM,6BAA6B,CAAC;AAEpF,qBAAa,iBAAkB,SAAQ,KAAK;IACvB,GAAG,EAAE,MAAM;gBAAX,GAAG,EAAE,MAAM;CAG/B;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,QAAQ,CACtB,EAAE,EAAE,OAAO,CAAC,IAAI,EAChB,aAAa,EAAE,aAAa,EAC5B,cAAc,EAAE,OAAO,CAAC,cAAc,EACtC,MAAM,EAAE;IACN,cAAc,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;CAC3C,GACA,IAAI,CAcN"}
1
+ {"version":3,"file":"signPsbt.d.ts","sourceRoot":"","sources":["../../../../src/transaction/descriptor/signPsbt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,qBAAa,iBAAkB,SAAQ,KAAK;IACvB,GAAG,EAAE,MAAM;gBAAX,GAAG,EAAE,MAAM;CAG/B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,QAAQ,CACtB,IAAI,EAAE,IAAI,EACV,aAAa,EAAE,gBAAgB,CAAC,aAAa,EAC7C,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE;IACN,cAAc,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;CAC3C,GACA,IAAI,CAiBN"}