@bitgo-beta/abstract-utxo 1.6.1-alpha.43 → 1.6.1-alpha.430

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 (788) hide show
  1. package/README.md +76 -0
  2. package/dist/cjs/src/abstractUtxoCoin.d.ts +435 -0
  3. package/dist/cjs/src/abstractUtxoCoin.d.ts.map +1 -0
  4. package/dist/cjs/src/abstractUtxoCoin.js +657 -0
  5. package/dist/cjs/src/address/fixedScript.d.ts +49 -0
  6. package/dist/cjs/src/address/fixedScript.d.ts.map +1 -0
  7. package/dist/cjs/src/address/fixedScript.js +155 -0
  8. package/dist/cjs/src/address/index.d.ts +2 -0
  9. package/dist/cjs/src/address/index.d.ts.map +1 -0
  10. package/dist/cjs/src/address/index.js +8 -0
  11. package/dist/cjs/src/config.d.ts.map +1 -0
  12. package/dist/cjs/src/config.js +14 -0
  13. package/dist/cjs/src/descriptor/NamedDescriptor.d.ts +20 -0
  14. package/dist/cjs/src/descriptor/NamedDescriptor.d.ts.map +1 -0
  15. package/dist/cjs/src/descriptor/NamedDescriptor.js +79 -0
  16. package/dist/cjs/src/descriptor/assertDescriptorWalletAddress.d.ts +5 -0
  17. package/dist/cjs/src/descriptor/assertDescriptorWalletAddress.d.ts.map +1 -0
  18. package/dist/cjs/src/descriptor/assertDescriptorWalletAddress.js +66 -0
  19. package/dist/cjs/src/descriptor/builder/builder.d.ts +13 -0
  20. package/dist/cjs/src/descriptor/builder/builder.d.ts.map +1 -0
  21. package/dist/cjs/src/descriptor/builder/builder.js +37 -0
  22. package/dist/cjs/src/descriptor/builder/index.d.ts +3 -0
  23. package/dist/cjs/src/descriptor/builder/index.d.ts.map +1 -0
  24. package/dist/cjs/src/descriptor/builder/index.js +8 -0
  25. package/dist/cjs/src/descriptor/builder/parse.d.ts +5 -0
  26. package/dist/cjs/src/descriptor/builder/parse.d.ts.map +1 -0
  27. package/dist/cjs/src/descriptor/builder/parse.js +116 -0
  28. package/dist/cjs/src/descriptor/createWallet/createDescriptorWallet.d.ts +20 -0
  29. package/dist/cjs/src/descriptor/createWallet/createDescriptorWallet.d.ts.map +1 -0
  30. package/dist/cjs/src/descriptor/createWallet/createDescriptorWallet.js +41 -0
  31. package/dist/cjs/src/descriptor/createWallet/createDescriptors.d.ts +12 -0
  32. package/dist/cjs/src/descriptor/createWallet/createDescriptors.d.ts.map +1 -0
  33. package/dist/cjs/src/descriptor/createWallet/createDescriptors.js +33 -0
  34. package/dist/cjs/src/descriptor/createWallet/index.d.ts +3 -0
  35. package/dist/cjs/src/descriptor/createWallet/index.d.ts.map +1 -0
  36. package/dist/cjs/src/descriptor/createWallet/index.js +19 -0
  37. package/dist/cjs/src/descriptor/descriptorWallet.d.ts +19 -0
  38. package/dist/cjs/src/descriptor/descriptorWallet.d.ts.map +1 -0
  39. package/dist/cjs/src/descriptor/descriptorWallet.js +54 -0
  40. package/dist/cjs/src/descriptor/index.d.ts +8 -0
  41. package/dist/cjs/src/descriptor/index.d.ts.map +1 -0
  42. package/dist/cjs/src/descriptor/index.js +53 -0
  43. package/dist/cjs/src/descriptor/validatePolicy.d.ts +22 -0
  44. package/dist/cjs/src/descriptor/validatePolicy.d.ts.map +1 -0
  45. package/dist/cjs/src/descriptor/validatePolicy.js +92 -0
  46. package/dist/cjs/src/impl/bch/bch.d.ts +20 -0
  47. package/dist/cjs/src/impl/bch/bch.d.ts.map +1 -0
  48. package/dist/cjs/src/impl/bch/bch.js +74 -0
  49. package/dist/cjs/src/impl/bch/index.d.ts +3 -0
  50. package/dist/cjs/src/impl/bch/index.d.ts.map +1 -0
  51. package/dist/cjs/src/impl/bch/index.js +19 -0
  52. package/dist/cjs/src/impl/bch/tbch.d.ts +10 -0
  53. package/dist/cjs/src/impl/bch/tbch.d.ts.map +1 -0
  54. package/dist/cjs/src/impl/bch/tbch.js +48 -0
  55. package/dist/cjs/src/impl/bcha/bcha.d.ts +8 -0
  56. package/dist/cjs/src/impl/bcha/bcha.d.ts.map +1 -0
  57. package/dist/cjs/src/impl/bcha/bcha.js +48 -0
  58. package/dist/cjs/src/impl/bcha/index.d.ts +3 -0
  59. package/dist/cjs/src/impl/bcha/index.d.ts.map +1 -0
  60. package/dist/cjs/src/impl/bcha/index.js +19 -0
  61. package/dist/cjs/src/impl/bcha/tbcha.d.ts +10 -0
  62. package/dist/cjs/src/impl/bcha/tbcha.d.ts.map +1 -0
  63. package/dist/cjs/src/impl/bcha/tbcha.js +48 -0
  64. package/dist/cjs/src/impl/bsv/bsv.d.ts +8 -0
  65. package/dist/cjs/src/impl/bsv/bsv.d.ts.map +1 -0
  66. package/dist/cjs/src/impl/bsv/bsv.js +48 -0
  67. package/dist/cjs/src/impl/bsv/index.d.ts +3 -0
  68. package/dist/cjs/src/impl/bsv/index.d.ts.map +1 -0
  69. package/dist/cjs/src/impl/bsv/index.js +19 -0
  70. package/dist/cjs/src/impl/bsv/tbsv.d.ts +10 -0
  71. package/dist/cjs/src/impl/bsv/tbsv.d.ts.map +1 -0
  72. package/dist/cjs/src/impl/bsv/tbsv.js +48 -0
  73. package/dist/cjs/src/impl/btc/btc.d.ts +13 -0
  74. package/dist/cjs/src/impl/btc/btc.d.ts.map +1 -0
  75. package/dist/cjs/src/impl/btc/btc.js +55 -0
  76. package/dist/cjs/src/impl/btc/index.d.ts +7 -0
  77. package/dist/cjs/src/impl/btc/index.d.ts.map +1 -0
  78. package/dist/cjs/src/impl/btc/index.js +23 -0
  79. package/dist/cjs/src/impl/btc/inscriptionBuilder.d.ts +51 -0
  80. package/dist/cjs/src/impl/btc/inscriptionBuilder.d.ts.map +1 -0
  81. package/dist/cjs/src/impl/btc/inscriptionBuilder.js +183 -0
  82. package/dist/cjs/src/impl/btc/tbtc.d.ts +10 -0
  83. package/dist/cjs/src/impl/btc/tbtc.d.ts.map +1 -0
  84. package/dist/cjs/src/impl/btc/tbtc.js +48 -0
  85. package/dist/cjs/src/impl/btc/tbtc4.d.ts +10 -0
  86. package/dist/cjs/src/impl/btc/tbtc4.d.ts.map +1 -0
  87. package/dist/cjs/src/impl/btc/tbtc4.js +48 -0
  88. package/dist/cjs/src/impl/btc/tbtcbgsig.d.ts +10 -0
  89. package/dist/cjs/src/impl/btc/tbtcbgsig.d.ts.map +1 -0
  90. package/dist/cjs/src/impl/btc/tbtcbgsig.js +48 -0
  91. package/dist/cjs/src/impl/btc/tbtcsig.d.ts +10 -0
  92. package/dist/cjs/src/impl/btc/tbtcsig.d.ts.map +1 -0
  93. package/dist/cjs/src/impl/btc/tbtcsig.js +48 -0
  94. package/dist/cjs/src/impl/btg/btg.d.ts +7 -0
  95. package/dist/cjs/src/impl/btg/btg.d.ts.map +1 -0
  96. package/dist/cjs/src/impl/btg/btg.js +48 -0
  97. package/dist/cjs/src/impl/btg/index.d.ts +2 -0
  98. package/dist/cjs/src/impl/btg/index.d.ts.map +1 -0
  99. package/dist/cjs/src/impl/btg/index.js +18 -0
  100. package/dist/cjs/src/impl/dash/dash.d.ts +7 -0
  101. package/dist/cjs/src/impl/dash/dash.d.ts.map +1 -0
  102. package/dist/cjs/src/impl/dash/dash.js +48 -0
  103. package/dist/cjs/src/impl/dash/index.d.ts +3 -0
  104. package/dist/cjs/src/impl/dash/index.d.ts.map +1 -0
  105. package/dist/cjs/src/impl/dash/index.js +19 -0
  106. package/dist/cjs/src/impl/dash/tdash.d.ts +10 -0
  107. package/dist/cjs/src/impl/dash/tdash.d.ts.map +1 -0
  108. package/dist/cjs/src/impl/dash/tdash.js +48 -0
  109. package/dist/cjs/src/impl/doge/doge.d.ts +32 -0
  110. package/dist/cjs/src/impl/doge/doge.d.ts.map +1 -0
  111. package/dist/cjs/src/impl/doge/doge.js +79 -0
  112. package/dist/cjs/src/impl/doge/index.d.ts +3 -0
  113. package/dist/cjs/src/impl/doge/index.d.ts.map +1 -0
  114. package/dist/cjs/src/impl/doge/index.js +19 -0
  115. package/dist/cjs/src/impl/doge/tdoge.d.ts +10 -0
  116. package/dist/cjs/src/impl/doge/tdoge.d.ts.map +1 -0
  117. package/dist/cjs/src/impl/doge/tdoge.js +48 -0
  118. package/dist/cjs/src/impl/index.d.ts +10 -0
  119. package/dist/cjs/src/impl/index.d.ts.map +1 -0
  120. package/dist/cjs/src/impl/index.js +46 -0
  121. package/dist/cjs/src/impl/ltc/index.d.ts +3 -0
  122. package/dist/cjs/src/impl/ltc/index.d.ts.map +1 -0
  123. package/dist/cjs/src/impl/ltc/index.js +19 -0
  124. package/dist/cjs/src/impl/ltc/ltc.d.ts +7 -0
  125. package/dist/cjs/src/impl/ltc/ltc.d.ts.map +1 -0
  126. package/dist/cjs/src/impl/ltc/ltc.js +52 -0
  127. package/dist/cjs/src/impl/ltc/tltc.d.ts +7 -0
  128. package/dist/cjs/src/impl/ltc/tltc.d.ts.map +1 -0
  129. package/dist/cjs/src/impl/ltc/tltc.js +51 -0
  130. package/dist/cjs/src/impl/zec/index.d.ts +3 -0
  131. package/dist/cjs/src/impl/zec/index.d.ts.map +1 -0
  132. package/dist/cjs/src/impl/zec/index.js +19 -0
  133. package/dist/cjs/src/impl/zec/tzec.d.ts +7 -0
  134. package/dist/cjs/src/impl/zec/tzec.d.ts.map +1 -0
  135. package/dist/cjs/src/impl/zec/tzec.js +48 -0
  136. package/dist/cjs/src/impl/zec/zec.d.ts +10 -0
  137. package/dist/cjs/src/impl/zec/zec.d.ts.map +1 -0
  138. package/dist/cjs/src/impl/zec/zec.js +48 -0
  139. package/dist/cjs/src/index.d.ts +21 -0
  140. package/dist/cjs/src/index.d.ts.map +1 -0
  141. package/dist/cjs/src/index.js +60 -0
  142. package/dist/cjs/src/keychains.d.ts +52 -0
  143. package/dist/cjs/src/keychains.d.ts.map +1 -0
  144. package/dist/cjs/src/keychains.js +136 -0
  145. package/dist/cjs/src/names.d.ts +26 -0
  146. package/dist/cjs/src/names.d.ts.map +1 -0
  147. package/dist/cjs/src/names.js +214 -0
  148. package/dist/cjs/src/offlineVault/OfflineVaultHalfSigned.d.ts +8 -0
  149. package/dist/cjs/src/offlineVault/OfflineVaultHalfSigned.d.ts.map +1 -0
  150. package/dist/cjs/src/offlineVault/OfflineVaultHalfSigned.js +26 -0
  151. package/dist/cjs/src/offlineVault/OfflineVaultSignable.d.ts +46 -0
  152. package/dist/cjs/src/offlineVault/OfflineVaultSignable.d.ts.map +1 -0
  153. package/dist/cjs/src/offlineVault/OfflineVaultSignable.js +55 -0
  154. package/dist/cjs/src/offlineVault/TransactionExplanation.d.ts +15 -0
  155. package/dist/cjs/src/offlineVault/TransactionExplanation.d.ts.map +1 -0
  156. package/dist/cjs/src/offlineVault/TransactionExplanation.js +16 -0
  157. package/dist/cjs/src/offlineVault/descriptor/index.d.ts +2 -0
  158. package/dist/cjs/src/offlineVault/descriptor/index.d.ts.map +1 -0
  159. package/dist/cjs/src/offlineVault/descriptor/index.js +18 -0
  160. package/dist/cjs/src/offlineVault/descriptor/transaction.d.ts +38 -0
  161. package/dist/cjs/src/offlineVault/descriptor/transaction.d.ts.map +1 -0
  162. package/dist/cjs/src/offlineVault/descriptor/transaction.js +80 -0
  163. package/dist/cjs/src/offlineVault/index.d.ts +6 -0
  164. package/dist/cjs/src/offlineVault/index.d.ts.map +1 -0
  165. package/dist/cjs/src/offlineVault/index.js +44 -0
  166. package/dist/{src → cjs/src}/recovery/RecoveryProvider.d.ts +1 -1
  167. package/dist/cjs/src/recovery/RecoveryProvider.d.ts.map +1 -0
  168. package/dist/cjs/src/recovery/RecoveryProvider.js +22 -0
  169. package/dist/cjs/src/recovery/backupKeyRecovery.d.ts +88 -0
  170. package/dist/cjs/src/recovery/backupKeyRecovery.d.ts.map +1 -0
  171. package/dist/cjs/src/recovery/backupKeyRecovery.js +377 -0
  172. package/dist/{src → cjs/src}/recovery/baseApi.d.ts +3 -6
  173. package/dist/cjs/src/recovery/baseApi.d.ts.map +1 -0
  174. package/dist/cjs/src/recovery/baseApi.js +73 -0
  175. package/dist/{src → cjs/src}/recovery/coingeckoApi.d.ts +0 -3
  176. package/dist/cjs/src/recovery/coingeckoApi.d.ts.map +1 -0
  177. package/dist/cjs/src/recovery/coingeckoApi.js +44 -0
  178. package/dist/{src → cjs/src}/recovery/crossChainRecovery.d.ts +15 -4
  179. package/dist/cjs/src/recovery/crossChainRecovery.d.ts.map +1 -0
  180. package/dist/cjs/src/recovery/crossChainRecovery.js +408 -0
  181. package/dist/{src → cjs/src}/recovery/index.d.ts +0 -1
  182. package/dist/cjs/src/recovery/index.d.ts.map +1 -0
  183. package/dist/{src → cjs/src}/recovery/index.js +6 -3
  184. package/dist/cjs/src/recovery/mempoolApi.d.ts.map +1 -0
  185. package/dist/cjs/src/recovery/mempoolApi.js +36 -0
  186. package/dist/cjs/src/transaction/bip322.d.ts +27 -0
  187. package/dist/cjs/src/transaction/bip322.d.ts.map +1 -0
  188. package/dist/cjs/src/transaction/bip322.js +125 -0
  189. package/dist/cjs/src/transaction/common/verifyPayGoAmount.d.ts +2 -0
  190. package/dist/cjs/src/transaction/common/verifyPayGoAmount.d.ts.map +1 -0
  191. package/dist/cjs/src/transaction/common/verifyPayGoAmount.js +3 -0
  192. package/dist/cjs/src/transaction/decode.d.ts +11 -0
  193. package/dist/cjs/src/transaction/decode.d.ts.map +1 -0
  194. package/dist/cjs/src/transaction/decode.js +81 -0
  195. package/dist/cjs/src/transaction/descriptor/explainPsbt.d.ts +5 -0
  196. package/dist/cjs/src/transaction/descriptor/explainPsbt.d.ts.map +1 -0
  197. package/dist/cjs/src/transaction/descriptor/explainPsbt.js +80 -0
  198. package/dist/cjs/src/transaction/descriptor/index.d.ts +7 -0
  199. package/dist/cjs/src/transaction/descriptor/index.d.ts.map +1 -0
  200. package/dist/cjs/src/transaction/descriptor/index.js +14 -0
  201. package/dist/cjs/src/transaction/descriptor/parse.d.ts +16 -0
  202. package/dist/cjs/src/transaction/descriptor/parse.d.ts.map +1 -0
  203. package/dist/cjs/src/transaction/descriptor/parse.js +116 -0
  204. package/dist/cjs/src/transaction/descriptor/parseToAmountType.d.ts +14 -0
  205. package/dist/cjs/src/transaction/descriptor/parseToAmountType.d.ts.map +1 -0
  206. package/dist/cjs/src/transaction/descriptor/parseToAmountType.js +60 -0
  207. package/dist/cjs/src/transaction/descriptor/recipient.d.ts +5 -0
  208. package/dist/cjs/src/transaction/descriptor/recipient.d.ts.map +1 -0
  209. package/dist/cjs/src/transaction/descriptor/recipient.js +3 -0
  210. package/dist/cjs/src/transaction/descriptor/signPsbt.d.ts +25 -0
  211. package/dist/cjs/src/transaction/descriptor/signPsbt.d.ts.map +1 -0
  212. package/dist/cjs/src/transaction/descriptor/signPsbt.js +43 -0
  213. package/dist/cjs/src/transaction/descriptor/verifyTransaction.d.ts +36 -0
  214. package/dist/cjs/src/transaction/descriptor/verifyTransaction.d.ts.map +1 -0
  215. package/dist/cjs/src/transaction/descriptor/verifyTransaction.js +109 -0
  216. package/dist/cjs/src/transaction/explainTransaction.d.ts +18 -0
  217. package/dist/cjs/src/transaction/explainTransaction.d.ts.map +1 -0
  218. package/dist/cjs/src/transaction/explainTransaction.js +88 -0
  219. package/dist/cjs/src/transaction/fetchInputs.d.ts +26 -0
  220. package/dist/cjs/src/transaction/fetchInputs.d.ts.map +1 -0
  221. package/dist/cjs/src/transaction/fetchInputs.js +109 -0
  222. package/dist/cjs/src/transaction/fixedScript/SigningError.d.ts +24 -0
  223. package/dist/cjs/src/transaction/fixedScript/SigningError.d.ts.map +1 -0
  224. package/dist/cjs/src/transaction/fixedScript/SigningError.js +26 -0
  225. package/dist/cjs/src/transaction/fixedScript/explainPsbtWasm.d.ts +11 -0
  226. package/dist/cjs/src/transaction/fixedScript/explainPsbtWasm.d.ts.map +1 -0
  227. package/dist/cjs/src/transaction/fixedScript/explainPsbtWasm.js +67 -0
  228. package/dist/cjs/src/transaction/fixedScript/explainTransaction.d.ts +73 -0
  229. package/dist/cjs/src/transaction/fixedScript/explainTransaction.d.ts.map +1 -0
  230. package/dist/cjs/src/transaction/fixedScript/explainTransaction.js +344 -0
  231. package/dist/cjs/src/transaction/fixedScript/index.d.ts +10 -0
  232. package/dist/cjs/src/transaction/fixedScript/index.d.ts.map +1 -0
  233. package/dist/cjs/src/transaction/fixedScript/index.js +32 -0
  234. package/dist/cjs/src/transaction/fixedScript/musig2.d.ts +4 -0
  235. package/dist/cjs/src/transaction/fixedScript/musig2.d.ts.map +1 -0
  236. package/dist/cjs/src/transaction/fixedScript/musig2.js +3 -0
  237. package/dist/cjs/src/transaction/fixedScript/parseOutput.d.ts +28 -0
  238. package/dist/cjs/src/transaction/fixedScript/parseOutput.d.ts.map +1 -0
  239. package/dist/cjs/src/transaction/fixedScript/parseOutput.js +220 -0
  240. package/dist/cjs/src/transaction/fixedScript/parseTransaction.d.ts +8 -0
  241. package/dist/cjs/src/transaction/fixedScript/parseTransaction.d.ts.map +1 -0
  242. package/dist/cjs/src/transaction/fixedScript/parseTransaction.js +215 -0
  243. package/dist/cjs/src/transaction/fixedScript/replayProtection.d.ts +7 -0
  244. package/dist/cjs/src/transaction/fixedScript/replayProtection.d.ts.map +1 -0
  245. package/dist/cjs/src/transaction/fixedScript/replayProtection.js +78 -0
  246. package/dist/cjs/src/transaction/fixedScript/signLegacyTransaction.d.ts +30 -0
  247. package/dist/cjs/src/transaction/fixedScript/signLegacyTransaction.d.ts.map +1 -0
  248. package/dist/cjs/src/transaction/fixedScript/signLegacyTransaction.js +152 -0
  249. package/dist/cjs/src/transaction/fixedScript/signPsbt.d.ts +30 -0
  250. package/dist/cjs/src/transaction/fixedScript/signPsbt.d.ts.map +1 -0
  251. package/dist/cjs/src/transaction/fixedScript/signPsbt.js +174 -0
  252. package/dist/cjs/src/transaction/fixedScript/signPsbtWasm.d.ts +22 -0
  253. package/dist/cjs/src/transaction/fixedScript/signPsbtWasm.d.ts.map +1 -0
  254. package/dist/cjs/src/transaction/fixedScript/signPsbtWasm.js +129 -0
  255. package/dist/cjs/src/transaction/fixedScript/signTransaction.d.ts +17 -0
  256. package/dist/cjs/src/transaction/fixedScript/signTransaction.d.ts.map +1 -0
  257. package/dist/cjs/src/transaction/fixedScript/signTransaction.js +50 -0
  258. package/dist/cjs/src/transaction/fixedScript/verifyTransaction.d.ts +21 -0
  259. package/dist/cjs/src/transaction/fixedScript/verifyTransaction.d.ts.map +1 -0
  260. package/dist/cjs/src/transaction/fixedScript/verifyTransaction.js +199 -0
  261. package/dist/cjs/src/transaction/getPayGoVerificationPubkey.d.ts +9 -0
  262. package/dist/cjs/src/transaction/getPayGoVerificationPubkey.d.ts.map +1 -0
  263. package/dist/cjs/src/transaction/getPayGoVerificationPubkey.js +53 -0
  264. package/dist/cjs/src/transaction/index.d.ts +8 -0
  265. package/dist/cjs/src/transaction/index.d.ts.map +1 -0
  266. package/dist/cjs/src/transaction/index.js +50 -0
  267. package/dist/cjs/src/transaction/outputDifference.d.ts +40 -0
  268. package/dist/cjs/src/transaction/outputDifference.d.ts.map +1 -0
  269. package/dist/cjs/src/transaction/outputDifference.js +47 -0
  270. package/dist/cjs/src/transaction/parseTransaction.d.ts +4 -0
  271. package/dist/cjs/src/transaction/parseTransaction.d.ts.map +1 -0
  272. package/dist/cjs/src/transaction/parseTransaction.js +48 -0
  273. package/dist/cjs/src/transaction/recipient.d.ts +29 -0
  274. package/dist/cjs/src/transaction/recipient.d.ts.map +1 -0
  275. package/dist/cjs/src/transaction/recipient.js +88 -0
  276. package/dist/cjs/src/transaction/signTransaction.d.ts +6 -0
  277. package/dist/cjs/src/transaction/signTransaction.d.ts.map +1 -0
  278. package/dist/cjs/src/transaction/signTransaction.js +105 -0
  279. package/dist/cjs/src/transaction/types.d.ts +49 -0
  280. package/dist/cjs/src/transaction/types.d.ts.map +1 -0
  281. package/dist/cjs/src/transaction/types.js +7 -0
  282. package/dist/cjs/src/transaction/verifyTransaction.d.ts +4 -0
  283. package/dist/cjs/src/transaction/verifyTransaction.d.ts.map +1 -0
  284. package/dist/cjs/src/transaction/verifyTransaction.js +50 -0
  285. package/dist/cjs/src/verifyKey.d.ts +29 -0
  286. package/dist/cjs/src/verifyKey.d.ts.map +1 -0
  287. package/dist/cjs/src/verifyKey.js +164 -0
  288. package/dist/cjs/src/wallet.d.ts +15 -0
  289. package/dist/cjs/src/wallet.d.ts.map +1 -0
  290. package/dist/cjs/src/wallet.js +8 -0
  291. package/dist/cjs/test/integration/impl/bch/bch.d.ts +2 -0
  292. package/dist/cjs/test/integration/impl/bch/bch.d.ts.map +1 -0
  293. package/dist/cjs/test/integration/impl/bch/bch.js +74 -0
  294. package/dist/cjs/test/unit/address.d.ts +2 -0
  295. package/dist/cjs/test/unit/address.d.ts.map +1 -0
  296. package/dist/cjs/test/unit/address.js +182 -0
  297. package/dist/cjs/test/unit/bip322.d.ts +2 -0
  298. package/dist/cjs/test/unit/bip322.d.ts.map +1 -0
  299. package/dist/cjs/test/unit/bip322.js +45 -0
  300. package/dist/cjs/test/unit/coins.d.ts +2 -0
  301. package/dist/cjs/test/unit/coins.d.ts.map +1 -0
  302. package/dist/cjs/test/unit/coins.js +97 -0
  303. package/dist/cjs/test/unit/customChangeWallet.d.ts +2 -0
  304. package/dist/cjs/test/unit/customChangeWallet.d.ts.map +1 -0
  305. package/dist/cjs/test/unit/customChangeWallet.js +154 -0
  306. package/dist/cjs/test/unit/customSigner.d.ts +3 -0
  307. package/dist/cjs/test/unit/customSigner.d.ts.map +1 -0
  308. package/dist/cjs/test/unit/customSigner.js +108 -0
  309. package/dist/cjs/test/unit/descriptor/NamedDescriptor.d.ts +2 -0
  310. package/dist/cjs/test/unit/descriptor/NamedDescriptor.d.ts.map +1 -0
  311. package/dist/cjs/test/unit/descriptor/NamedDescriptor.js +18 -0
  312. package/dist/cjs/test/unit/descriptor/builder.d.ts +2 -0
  313. package/dist/cjs/test/unit/descriptor/builder.d.ts.map +1 -0
  314. package/dist/cjs/test/unit/descriptor/builder.js +72 -0
  315. package/dist/cjs/test/unit/descriptor/createWallet/createDescriptors.d.ts +2 -0
  316. package/dist/cjs/test/unit/descriptor/createWallet/createDescriptors.d.ts.map +1 -0
  317. package/dist/cjs/test/unit/descriptor/createWallet/createDescriptors.js +20 -0
  318. package/dist/cjs/test/unit/descriptor/descriptorWallet.d.ts +2 -0
  319. package/dist/cjs/test/unit/descriptor/descriptorWallet.d.ts.map +1 -0
  320. package/dist/cjs/test/unit/descriptor/descriptorWallet.js +28 -0
  321. package/dist/cjs/test/unit/descriptorAddress.d.ts +3 -0
  322. package/dist/cjs/test/unit/descriptorAddress.d.ts.map +1 -0
  323. package/dist/cjs/test/unit/descriptorAddress.js +102 -0
  324. package/dist/cjs/test/unit/explainTransaction.d.ts +2 -0
  325. package/dist/cjs/test/unit/explainTransaction.d.ts.map +1 -0
  326. package/dist/cjs/test/unit/explainTransaction.js +74 -0
  327. package/dist/cjs/test/unit/fixtures/bip322/fixtures.d.ts +15 -0
  328. package/dist/cjs/test/unit/fixtures/bip322/fixtures.d.ts.map +1 -0
  329. package/dist/cjs/test/unit/fixtures/bip322/fixtures.js +51 -0
  330. package/dist/cjs/test/unit/fixtures/psbtHexProof.d.ts +4 -0
  331. package/dist/cjs/test/unit/fixtures/psbtHexProof.d.ts.map +1 -0
  332. package/dist/cjs/test/unit/fixtures/psbtHexProof.js +9 -0
  333. package/dist/cjs/test/unit/impl/bch/unit/bch.d.ts +2 -0
  334. package/dist/cjs/test/unit/impl/bch/unit/bch.d.ts.map +1 -0
  335. package/dist/cjs/test/unit/impl/bch/unit/bch.js +138 -0
  336. package/dist/cjs/test/unit/impl/bcha/unit/index.d.ts +2 -0
  337. package/dist/cjs/test/unit/impl/bcha/unit/index.d.ts.map +1 -0
  338. package/dist/cjs/test/unit/impl/bcha/unit/index.js +47 -0
  339. package/dist/cjs/test/unit/impl/bsv/unit/index.d.ts +2 -0
  340. package/dist/cjs/test/unit/impl/bsv/unit/index.d.ts.map +1 -0
  341. package/dist/cjs/test/unit/impl/bsv/unit/index.js +32 -0
  342. package/dist/cjs/test/unit/impl/btc/unit/btc.d.ts +2 -0
  343. package/dist/cjs/test/unit/impl/btc/unit/btc.d.ts.map +1 -0
  344. package/dist/cjs/test/unit/impl/btc/unit/btc.js +220 -0
  345. package/dist/cjs/test/unit/impl/btc/unit/fixtures/btcBackupKey.d.ts +4 -0
  346. package/dist/cjs/test/unit/impl/btc/unit/fixtures/btcBackupKey.d.ts.map +1 -0
  347. package/dist/cjs/test/unit/impl/btc/unit/fixtures/btcBackupKey.js +10 -0
  348. package/dist/cjs/test/unit/impl/btc/unit/fixtures/index.d.ts +2 -0
  349. package/dist/cjs/test/unit/impl/btc/unit/fixtures/index.d.ts.map +1 -0
  350. package/dist/cjs/test/unit/impl/btc/unit/fixtures/index.js +18 -0
  351. package/dist/cjs/test/unit/impl/btg/unit/index.d.ts +2 -0
  352. package/dist/cjs/test/unit/impl/btg/unit/index.d.ts.map +1 -0
  353. package/dist/cjs/test/unit/impl/btg/unit/index.js +29 -0
  354. package/dist/cjs/test/unit/impl/dash/unit/index.d.ts +2 -0
  355. package/dist/cjs/test/unit/impl/dash/unit/index.d.ts.map +1 -0
  356. package/dist/cjs/test/unit/impl/dash/unit/index.js +32 -0
  357. package/dist/cjs/test/unit/impl/doge/unit/index.d.ts +2 -0
  358. package/dist/cjs/test/unit/impl/doge/unit/index.d.ts.map +1 -0
  359. package/dist/cjs/test/unit/impl/doge/unit/index.js +32 -0
  360. package/dist/cjs/test/unit/impl/ltc/unit/index.d.ts +2 -0
  361. package/dist/cjs/test/unit/impl/ltc/unit/index.d.ts.map +1 -0
  362. package/dist/cjs/test/unit/impl/ltc/unit/index.js +39 -0
  363. package/dist/cjs/test/unit/impl/zec/unit/index.d.ts +2 -0
  364. package/dist/cjs/test/unit/impl/zec/unit/index.d.ts.map +1 -0
  365. package/dist/cjs/test/unit/impl/zec/unit/index.js +29 -0
  366. package/dist/cjs/test/unit/keySignatures.d.ts +2 -0
  367. package/dist/cjs/test/unit/keySignatures.d.ts.map +1 -0
  368. package/dist/cjs/test/unit/keySignatures.js +54 -0
  369. package/dist/cjs/test/unit/keychains.d.ts +2 -0
  370. package/dist/cjs/test/unit/keychains.d.ts.map +1 -0
  371. package/dist/cjs/test/unit/keychains.js +49 -0
  372. package/dist/cjs/test/unit/offlineVault/halfSigned.d.ts +2 -0
  373. package/dist/cjs/test/unit/offlineVault/halfSigned.d.ts.map +1 -0
  374. package/dist/cjs/test/unit/offlineVault/halfSigned.js +124 -0
  375. package/dist/cjs/test/unit/parseTransaction.d.ts +2 -0
  376. package/dist/cjs/test/unit/parseTransaction.d.ts.map +1 -0
  377. package/dist/cjs/test/unit/parseTransaction.js +125 -0
  378. package/dist/cjs/test/unit/prebuildAndSign.d.ts +6 -0
  379. package/dist/cjs/test/unit/prebuildAndSign.d.ts.map +1 -0
  380. package/dist/cjs/test/unit/prebuildAndSign.js +270 -0
  381. package/dist/cjs/test/unit/recovery/backupKeyRecovery.d.ts +2 -0
  382. package/dist/cjs/test/unit/recovery/backupKeyRecovery.d.ts.map +1 -0
  383. package/dist/cjs/test/unit/recovery/backupKeyRecovery.js +286 -0
  384. package/dist/cjs/test/unit/recovery/crossChainRecovery.d.ts +2 -0
  385. package/dist/cjs/test/unit/recovery/crossChainRecovery.d.ts.map +1 -0
  386. package/dist/cjs/test/unit/recovery/crossChainRecovery.js +306 -0
  387. package/dist/cjs/test/unit/recovery/mock.d.ts +30 -0
  388. package/dist/cjs/test/unit/recovery/mock.d.ts.map +1 -0
  389. package/dist/cjs/test/unit/recovery/mock.js +138 -0
  390. package/dist/cjs/test/unit/transaction/descriptor/explainPsbt.d.ts +2 -0
  391. package/dist/cjs/test/unit/transaction/descriptor/explainPsbt.d.ts.map +1 -0
  392. package/dist/cjs/test/unit/transaction/descriptor/explainPsbt.js +30 -0
  393. package/dist/cjs/test/unit/transaction/descriptor/fixtures.utils.d.ts +6 -0
  394. package/dist/cjs/test/unit/transaction/descriptor/fixtures.utils.d.ts.map +1 -0
  395. package/dist/cjs/test/unit/transaction/descriptor/fixtures.utils.js +17 -0
  396. package/dist/cjs/test/unit/transaction/descriptor/outputDifference.d.ts +2 -0
  397. package/dist/cjs/test/unit/transaction/descriptor/outputDifference.d.ts.map +1 -0
  398. package/dist/cjs/test/unit/transaction/descriptor/outputDifference.js +76 -0
  399. package/dist/cjs/test/unit/transaction/descriptor/parse.d.ts +2 -0
  400. package/dist/cjs/test/unit/transaction/descriptor/parse.d.ts.map +1 -0
  401. package/dist/cjs/test/unit/transaction/descriptor/parse.js +135 -0
  402. package/dist/cjs/test/unit/transaction/descriptor/sign.d.ts +2 -0
  403. package/dist/cjs/test/unit/transaction/descriptor/sign.d.ts.map +1 -0
  404. package/dist/cjs/test/unit/transaction/descriptor/sign.js +32 -0
  405. package/dist/cjs/test/unit/transaction/descriptor/validatePolicy.d.ts +2 -0
  406. package/dist/cjs/test/unit/transaction/descriptor/validatePolicy.d.ts.map +1 -0
  407. package/dist/cjs/test/unit/transaction/descriptor/validatePolicy.js +48 -0
  408. package/dist/cjs/test/unit/transaction/fixedScript/explainPsbt.d.ts +2 -0
  409. package/dist/cjs/test/unit/transaction/fixedScript/explainPsbt.d.ts.map +1 -0
  410. package/dist/cjs/test/unit/transaction/fixedScript/explainPsbt.js +132 -0
  411. package/dist/cjs/test/unit/transaction/fixedScript/parsePsbt.d.ts +2 -0
  412. package/dist/cjs/test/unit/transaction/fixedScript/parsePsbt.d.ts.map +1 -0
  413. package/dist/cjs/test/unit/transaction/fixedScript/parsePsbt.js +288 -0
  414. package/dist/cjs/test/unit/transaction/fixedScript/replayProtection.d.ts +2 -0
  415. package/dist/cjs/test/unit/transaction/fixedScript/replayProtection.d.ts.map +1 -0
  416. package/dist/cjs/test/unit/transaction/fixedScript/replayProtection.js +59 -0
  417. package/dist/cjs/test/unit/transaction/fixedScript/signPsbt.d.ts +2 -0
  418. package/dist/cjs/test/unit/transaction/fixedScript/signPsbt.d.ts.map +1 -0
  419. package/dist/cjs/test/unit/transaction/fixedScript/signPsbt.js +157 -0
  420. package/dist/cjs/test/unit/transaction/fixedScript/util.d.ts +3 -0
  421. package/dist/cjs/test/unit/transaction/fixedScript/util.d.ts.map +1 -0
  422. package/dist/cjs/test/unit/transaction/fixedScript/util.js +47 -0
  423. package/dist/cjs/test/unit/transaction.d.ts +2 -0
  424. package/dist/cjs/test/unit/transaction.d.ts.map +1 -0
  425. package/dist/cjs/test/unit/transaction.js +524 -0
  426. package/dist/cjs/test/unit/txFormat.d.ts +30 -0
  427. package/dist/cjs/test/unit/txFormat.d.ts.map +1 -0
  428. package/dist/cjs/test/unit/txFormat.js +174 -0
  429. package/dist/cjs/test/unit/util/fixtures.d.ts +14 -0
  430. package/dist/cjs/test/unit/util/fixtures.d.ts.map +1 -0
  431. package/dist/cjs/test/unit/util/fixtures.js +102 -0
  432. package/dist/cjs/test/unit/util/index.d.ts +7 -0
  433. package/dist/cjs/test/unit/util/index.d.ts.map +1 -0
  434. package/dist/cjs/test/unit/util/index.js +23 -0
  435. package/dist/cjs/test/unit/util/keychains.d.ts +26 -0
  436. package/dist/cjs/test/unit/util/keychains.d.ts.map +1 -0
  437. package/dist/cjs/test/unit/util/keychains.js +72 -0
  438. package/dist/cjs/test/unit/util/nockBitGo.d.ts +3 -0
  439. package/dist/cjs/test/unit/util/nockBitGo.d.ts.map +1 -0
  440. package/dist/cjs/test/unit/util/nockBitGo.js +11 -0
  441. package/dist/cjs/test/unit/util/nockIndexerAPI.d.ts +8 -0
  442. package/dist/cjs/test/unit/util/nockIndexerAPI.d.ts.map +1 -0
  443. package/dist/cjs/test/unit/util/nockIndexerAPI.js +56 -0
  444. package/dist/cjs/test/unit/util/transaction.d.ts +24 -0
  445. package/dist/cjs/test/unit/util/transaction.d.ts.map +1 -0
  446. package/dist/cjs/test/unit/util/transaction.js +107 -0
  447. package/dist/cjs/test/unit/util/unspents.d.ts +13 -0
  448. package/dist/cjs/test/unit/util/unspents.d.ts.map +1 -0
  449. package/dist/cjs/test/unit/util/unspents.js +106 -0
  450. package/dist/cjs/test/unit/util/utxoCoins.d.ts +8 -0
  451. package/dist/cjs/test/unit/util/utxoCoins.d.ts.map +1 -0
  452. package/dist/cjs/test/unit/util/utxoCoins.js +95 -0
  453. package/dist/cjs/test/unit/util/wallet.d.ts +4 -0
  454. package/dist/cjs/test/unit/util/wallet.d.ts.map +1 -0
  455. package/dist/cjs/test/unit/util/wallet.js +9 -0
  456. package/dist/cjs/test/unit/verifyTransaction.d.ts +2 -0
  457. package/dist/cjs/test/unit/verifyTransaction.d.ts.map +1 -0
  458. package/dist/cjs/test/unit/verifyTransaction.js +327 -0
  459. package/dist/cjs/test/unit/wallet.d.ts +2 -0
  460. package/dist/cjs/test/unit/wallet.d.ts.map +1 -0
  461. package/dist/cjs/test/unit/wallet.js +248 -0
  462. package/dist/cjs/tsconfig.tsbuildinfo +1 -0
  463. package/dist/esm/abstractUtxoCoin.d.ts +435 -0
  464. package/dist/esm/abstractUtxoCoin.d.ts.map +1 -0
  465. package/dist/esm/abstractUtxoCoin.js +616 -0
  466. package/dist/esm/address/fixedScript.d.ts +49 -0
  467. package/dist/esm/address/fixedScript.d.ts.map +1 -0
  468. package/dist/esm/address/fixedScript.js +114 -0
  469. package/dist/esm/address/index.d.ts +2 -0
  470. package/dist/esm/address/index.d.ts.map +1 -0
  471. package/dist/esm/address/index.js +2 -0
  472. package/dist/esm/config.d.ts +9 -0
  473. package/dist/esm/config.js +11 -0
  474. package/dist/esm/descriptor/NamedDescriptor.d.ts +20 -0
  475. package/dist/esm/descriptor/NamedDescriptor.d.ts.map +1 -0
  476. package/dist/esm/descriptor/NamedDescriptor.js +39 -0
  477. package/dist/esm/descriptor/assertDescriptorWalletAddress.d.ts +5 -0
  478. package/dist/esm/descriptor/assertDescriptorWalletAddress.d.ts.map +1 -0
  479. package/dist/esm/descriptor/assertDescriptorWalletAddress.js +27 -0
  480. package/dist/esm/descriptor/builder/builder.d.ts +13 -0
  481. package/dist/esm/descriptor/builder/builder.d.ts.map +1 -0
  482. package/dist/esm/descriptor/builder/builder.js +34 -0
  483. package/dist/esm/descriptor/builder/index.d.ts +3 -0
  484. package/dist/esm/descriptor/builder/index.d.ts.map +1 -0
  485. package/dist/esm/descriptor/builder/index.js +3 -0
  486. package/dist/esm/descriptor/builder/parse.d.ts +5 -0
  487. package/dist/esm/descriptor/builder/parse.d.ts.map +1 -0
  488. package/dist/esm/descriptor/builder/parse.js +112 -0
  489. package/dist/esm/descriptor/createWallet/createDescriptorWallet.d.ts +20 -0
  490. package/dist/esm/descriptor/createWallet/createDescriptorWallet.d.ts.map +1 -0
  491. package/dist/esm/descriptor/createWallet/createDescriptorWallet.js +37 -0
  492. package/dist/esm/descriptor/createWallet/createDescriptors.d.ts +12 -0
  493. package/dist/esm/descriptor/createWallet/createDescriptors.d.ts.map +1 -0
  494. package/dist/esm/descriptor/createWallet/createDescriptors.js +29 -0
  495. package/dist/esm/descriptor/createWallet/index.d.ts +3 -0
  496. package/dist/esm/descriptor/createWallet/index.d.ts.map +1 -0
  497. package/dist/esm/descriptor/createWallet/index.js +3 -0
  498. package/dist/esm/descriptor/descriptorWallet.d.ts +19 -0
  499. package/dist/esm/descriptor/descriptorWallet.d.ts.map +1 -0
  500. package/dist/esm/descriptor/descriptorWallet.js +16 -0
  501. package/dist/esm/descriptor/index.d.ts +8 -0
  502. package/dist/esm/descriptor/index.d.ts.map +1 -0
  503. package/dist/esm/descriptor/index.js +7 -0
  504. package/dist/esm/descriptor/validatePolicy.d.ts +22 -0
  505. package/dist/esm/descriptor/validatePolicy.d.ts.map +1 -0
  506. package/dist/esm/descriptor/validatePolicy.js +80 -0
  507. package/dist/esm/impl/bch/bch.d.ts +20 -0
  508. package/dist/esm/impl/bch/bch.d.ts.map +1 -0
  509. package/dist/esm/impl/bch/bch.js +37 -0
  510. package/dist/esm/impl/bch/index.d.ts +3 -0
  511. package/dist/esm/impl/bch/index.d.ts.map +1 -0
  512. package/dist/esm/impl/bch/index.js +3 -0
  513. package/dist/esm/impl/bch/tbch.d.ts +10 -0
  514. package/dist/esm/impl/bch/tbch.d.ts.map +1 -0
  515. package/dist/esm/impl/bch/tbch.js +11 -0
  516. package/dist/esm/impl/bcha/bcha.d.ts +8 -0
  517. package/dist/esm/impl/bcha/bcha.d.ts.map +1 -0
  518. package/dist/esm/impl/bcha/bcha.js +11 -0
  519. package/dist/esm/impl/bcha/index.d.ts +3 -0
  520. package/dist/esm/impl/bcha/index.d.ts.map +1 -0
  521. package/dist/esm/impl/bcha/index.js +3 -0
  522. package/dist/esm/impl/bcha/tbcha.d.ts +10 -0
  523. package/dist/esm/impl/bcha/tbcha.d.ts.map +1 -0
  524. package/dist/esm/impl/bcha/tbcha.js +11 -0
  525. package/dist/esm/impl/bsv/bsv.d.ts +8 -0
  526. package/dist/esm/impl/bsv/bsv.d.ts.map +1 -0
  527. package/dist/esm/impl/bsv/bsv.js +11 -0
  528. package/dist/esm/impl/bsv/index.d.ts +3 -0
  529. package/dist/esm/impl/bsv/index.d.ts.map +1 -0
  530. package/dist/esm/impl/bsv/index.js +3 -0
  531. package/dist/esm/impl/bsv/tbsv.d.ts +10 -0
  532. package/dist/esm/impl/bsv/tbsv.d.ts.map +1 -0
  533. package/dist/esm/impl/bsv/tbsv.js +11 -0
  534. package/dist/esm/impl/btc/btc.d.ts +13 -0
  535. package/dist/esm/impl/btc/btc.d.ts.map +1 -0
  536. package/dist/esm/impl/btc/btc.js +18 -0
  537. package/dist/esm/impl/btc/index.d.ts +7 -0
  538. package/dist/esm/impl/btc/index.d.ts.map +1 -0
  539. package/dist/esm/impl/btc/index.js +7 -0
  540. package/dist/esm/impl/btc/inscriptionBuilder.d.ts +51 -0
  541. package/dist/esm/impl/btc/inscriptionBuilder.d.ts.map +1 -0
  542. package/dist/esm/impl/btc/inscriptionBuilder.js +143 -0
  543. package/dist/esm/impl/btc/tbtc.d.ts +10 -0
  544. package/dist/esm/impl/btc/tbtc.d.ts.map +1 -0
  545. package/dist/esm/impl/btc/tbtc.js +11 -0
  546. package/dist/esm/impl/btc/tbtc4.d.ts +10 -0
  547. package/dist/esm/impl/btc/tbtc4.d.ts.map +1 -0
  548. package/dist/esm/impl/btc/tbtc4.js +11 -0
  549. package/dist/esm/impl/btc/tbtcbgsig.d.ts +10 -0
  550. package/dist/esm/impl/btc/tbtcbgsig.d.ts.map +1 -0
  551. package/dist/esm/impl/btc/tbtcbgsig.js +11 -0
  552. package/dist/esm/impl/btc/tbtcsig.d.ts +10 -0
  553. package/dist/esm/impl/btc/tbtcsig.d.ts.map +1 -0
  554. package/dist/esm/impl/btc/tbtcsig.js +11 -0
  555. package/dist/esm/impl/btg/btg.d.ts +7 -0
  556. package/dist/esm/impl/btg/btg.d.ts.map +1 -0
  557. package/dist/esm/impl/btg/btg.js +11 -0
  558. package/dist/esm/impl/btg/index.d.ts +2 -0
  559. package/dist/esm/impl/btg/index.d.ts.map +1 -0
  560. package/dist/esm/impl/btg/index.js +2 -0
  561. package/dist/esm/impl/dash/dash.d.ts +7 -0
  562. package/dist/esm/impl/dash/dash.d.ts.map +1 -0
  563. package/dist/esm/impl/dash/dash.js +11 -0
  564. package/dist/esm/impl/dash/index.d.ts +3 -0
  565. package/dist/esm/impl/dash/index.d.ts.map +1 -0
  566. package/dist/esm/impl/dash/index.js +3 -0
  567. package/dist/esm/impl/dash/tdash.d.ts +10 -0
  568. package/dist/esm/impl/dash/tdash.d.ts.map +1 -0
  569. package/dist/esm/impl/dash/tdash.js +11 -0
  570. package/dist/esm/impl/doge/doge.d.ts +32 -0
  571. package/dist/esm/impl/doge/doge.d.ts.map +1 -0
  572. package/dist/esm/impl/doge/doge.js +75 -0
  573. package/dist/esm/impl/doge/index.d.ts +3 -0
  574. package/dist/esm/impl/doge/index.d.ts.map +1 -0
  575. package/dist/esm/impl/doge/index.js +3 -0
  576. package/dist/esm/impl/doge/tdoge.d.ts +10 -0
  577. package/dist/esm/impl/doge/tdoge.d.ts.map +1 -0
  578. package/dist/esm/impl/doge/tdoge.js +11 -0
  579. package/dist/esm/impl/index.d.ts +10 -0
  580. package/dist/esm/impl/index.d.ts.map +1 -0
  581. package/dist/esm/impl/index.js +10 -0
  582. package/dist/esm/impl/ltc/index.d.ts +3 -0
  583. package/dist/esm/impl/ltc/index.d.ts.map +1 -0
  584. package/dist/esm/impl/ltc/index.js +3 -0
  585. package/dist/esm/impl/ltc/ltc.d.ts +7 -0
  586. package/dist/esm/impl/ltc/ltc.d.ts.map +1 -0
  587. package/dist/esm/impl/ltc/ltc.js +15 -0
  588. package/dist/esm/impl/ltc/tltc.d.ts +7 -0
  589. package/dist/esm/impl/ltc/tltc.d.ts.map +1 -0
  590. package/dist/esm/impl/ltc/tltc.js +14 -0
  591. package/dist/esm/impl/zec/index.d.ts +3 -0
  592. package/dist/esm/impl/zec/index.d.ts.map +1 -0
  593. package/dist/esm/impl/zec/index.js +3 -0
  594. package/dist/esm/impl/zec/tzec.d.ts +7 -0
  595. package/dist/esm/impl/zec/tzec.d.ts.map +1 -0
  596. package/dist/esm/impl/zec/tzec.js +11 -0
  597. package/dist/esm/impl/zec/zec.d.ts +10 -0
  598. package/dist/esm/impl/zec/zec.d.ts.map +1 -0
  599. package/dist/esm/impl/zec/zec.js +11 -0
  600. package/dist/esm/index.d.ts +21 -0
  601. package/dist/esm/index.d.ts.map +1 -0
  602. package/dist/esm/index.js +21 -0
  603. package/dist/esm/keychains.d.ts +52 -0
  604. package/dist/esm/keychains.d.ts.map +1 -0
  605. package/dist/esm/keychains.js +92 -0
  606. package/dist/esm/names.d.ts +26 -0
  607. package/dist/esm/names.d.ts.map +1 -0
  608. package/dist/esm/names.js +171 -0
  609. package/dist/esm/offlineVault/OfflineVaultHalfSigned.d.ts +8 -0
  610. package/dist/esm/offlineVault/OfflineVaultHalfSigned.d.ts.map +1 -0
  611. package/dist/esm/offlineVault/OfflineVaultHalfSigned.js +23 -0
  612. package/dist/esm/offlineVault/OfflineVaultSignable.d.ts +46 -0
  613. package/dist/esm/offlineVault/OfflineVaultSignable.d.ts.map +1 -0
  614. package/dist/esm/offlineVault/OfflineVaultSignable.js +18 -0
  615. package/dist/esm/offlineVault/TransactionExplanation.d.ts +15 -0
  616. package/dist/esm/offlineVault/TransactionExplanation.d.ts.map +1 -0
  617. package/dist/esm/offlineVault/TransactionExplanation.js +13 -0
  618. package/dist/esm/offlineVault/descriptor/index.d.ts +2 -0
  619. package/dist/esm/offlineVault/descriptor/index.d.ts.map +1 -0
  620. package/dist/esm/offlineVault/descriptor/index.js +2 -0
  621. package/dist/esm/offlineVault/descriptor/transaction.d.ts +38 -0
  622. package/dist/esm/offlineVault/descriptor/transaction.d.ts.map +1 -0
  623. package/dist/esm/offlineVault/descriptor/transaction.js +41 -0
  624. package/dist/esm/offlineVault/index.d.ts +6 -0
  625. package/dist/esm/offlineVault/index.d.ts.map +1 -0
  626. package/dist/esm/offlineVault/index.js +4 -0
  627. package/dist/esm/recovery/RecoveryProvider.d.ts +22 -0
  628. package/dist/{src → esm}/recovery/RecoveryProvider.d.ts.map +1 -1
  629. package/dist/esm/recovery/RecoveryProvider.js +19 -0
  630. package/dist/esm/recovery/backupKeyRecovery.d.ts +88 -0
  631. package/dist/esm/recovery/backupKeyRecovery.d.ts.map +1 -0
  632. package/dist/esm/recovery/backupKeyRecovery.js +336 -0
  633. package/dist/esm/recovery/baseApi.d.ts +24 -0
  634. package/dist/esm/recovery/baseApi.d.ts.map +1 -0
  635. package/dist/esm/recovery/baseApi.js +64 -0
  636. package/dist/esm/recovery/coingeckoApi.d.ts +6 -0
  637. package/dist/esm/recovery/coingeckoApi.d.ts.map +1 -0
  638. package/dist/esm/recovery/coingeckoApi.js +40 -0
  639. package/dist/esm/recovery/crossChainRecovery.d.ts +96 -0
  640. package/dist/{src → esm}/recovery/crossChainRecovery.d.ts.map +1 -1
  641. package/dist/esm/recovery/crossChainRecovery.js +368 -0
  642. package/dist/esm/recovery/index.d.ts +7 -0
  643. package/dist/{src → esm}/recovery/index.d.ts.map +1 -1
  644. package/dist/esm/recovery/index.js +7 -0
  645. package/dist/esm/recovery/mempoolApi.d.ts +7 -0
  646. package/dist/{src → esm}/recovery/mempoolApi.d.ts.map +1 -1
  647. package/dist/esm/recovery/mempoolApi.js +29 -0
  648. package/dist/esm/transaction/bip322.d.ts +27 -0
  649. package/dist/esm/transaction/bip322.d.ts.map +1 -0
  650. package/dist/esm/transaction/bip322.js +86 -0
  651. package/dist/esm/transaction/common/verifyPayGoAmount.d.ts +1 -0
  652. package/dist/esm/transaction/common/verifyPayGoAmount.d.ts.map +1 -0
  653. package/dist/esm/transaction/common/verifyPayGoAmount.js +1 -0
  654. package/dist/esm/transaction/decode.d.ts +11 -0
  655. package/dist/esm/transaction/decode.d.ts.map +1 -0
  656. package/dist/esm/transaction/decode.js +43 -0
  657. package/dist/esm/transaction/descriptor/explainPsbt.d.ts +5 -0
  658. package/dist/esm/transaction/descriptor/explainPsbt.d.ts.map +1 -0
  659. package/dist/esm/transaction/descriptor/explainPsbt.js +44 -0
  660. package/dist/esm/transaction/descriptor/index.d.ts +7 -0
  661. package/dist/esm/transaction/descriptor/index.d.ts.map +1 -0
  662. package/dist/esm/transaction/descriptor/index.js +6 -0
  663. package/dist/esm/transaction/descriptor/parse.d.ts +16 -0
  664. package/dist/esm/transaction/descriptor/parse.d.ts.map +1 -0
  665. package/dist/esm/transaction/descriptor/parse.js +79 -0
  666. package/dist/esm/transaction/descriptor/parseToAmountType.d.ts +14 -0
  667. package/dist/esm/transaction/descriptor/parseToAmountType.d.ts.map +1 -0
  668. package/dist/esm/transaction/descriptor/parseToAmountType.js +55 -0
  669. package/dist/esm/transaction/descriptor/recipient.d.ts +5 -0
  670. package/dist/esm/transaction/descriptor/recipient.d.ts.map +1 -0
  671. package/dist/esm/transaction/descriptor/recipient.js +2 -0
  672. package/dist/esm/transaction/descriptor/signPsbt.d.ts +25 -0
  673. package/dist/esm/transaction/descriptor/signPsbt.d.ts.map +1 -0
  674. package/dist/esm/transaction/descriptor/signPsbt.js +38 -0
  675. package/dist/esm/transaction/descriptor/verifyTransaction.d.ts +36 -0
  676. package/dist/esm/transaction/descriptor/verifyTransaction.d.ts.map +1 -0
  677. package/dist/esm/transaction/descriptor/verifyTransaction.js +66 -0
  678. package/dist/esm/transaction/explainTransaction.d.ts +18 -0
  679. package/dist/esm/transaction/explainTransaction.d.ts.map +1 -0
  680. package/dist/esm/transaction/explainTransaction.js +52 -0
  681. package/dist/esm/transaction/fetchInputs.d.ts +26 -0
  682. package/dist/esm/transaction/fetchInputs.d.ts.map +1 -0
  683. package/dist/esm/transaction/fetchInputs.js +72 -0
  684. package/dist/esm/transaction/fixedScript/SigningError.d.ts +24 -0
  685. package/dist/esm/transaction/fixedScript/SigningError.d.ts.map +1 -0
  686. package/dist/esm/transaction/fixedScript/SigningError.js +21 -0
  687. package/dist/esm/transaction/fixedScript/explainPsbtWasm.d.ts +11 -0
  688. package/dist/esm/transaction/fixedScript/explainPsbtWasm.d.ts.map +1 -0
  689. package/dist/esm/transaction/fixedScript/explainPsbtWasm.js +64 -0
  690. package/dist/esm/transaction/fixedScript/explainTransaction.d.ts +73 -0
  691. package/dist/esm/transaction/fixedScript/explainTransaction.d.ts.map +1 -0
  692. package/dist/esm/transaction/fixedScript/explainTransaction.js +307 -0
  693. package/dist/esm/transaction/fixedScript/index.d.ts +10 -0
  694. package/dist/esm/transaction/fixedScript/index.d.ts.map +1 -0
  695. package/dist/esm/transaction/fixedScript/index.js +9 -0
  696. package/dist/esm/transaction/fixedScript/musig2.d.ts +4 -0
  697. package/dist/esm/transaction/fixedScript/musig2.d.ts.map +1 -0
  698. package/dist/esm/transaction/fixedScript/musig2.js +2 -0
  699. package/dist/esm/transaction/fixedScript/parseOutput.d.ts +28 -0
  700. package/dist/esm/transaction/fixedScript/parseOutput.d.ts.map +1 -0
  701. package/dist/esm/transaction/fixedScript/parseOutput.js +213 -0
  702. package/dist/esm/transaction/fixedScript/parseTransaction.d.ts +8 -0
  703. package/dist/esm/transaction/fixedScript/parseTransaction.d.ts.map +1 -0
  704. package/dist/esm/transaction/fixedScript/parseTransaction.js +176 -0
  705. package/dist/esm/transaction/fixedScript/replayProtection.d.ts +7 -0
  706. package/dist/esm/transaction/fixedScript/replayProtection.d.ts.map +1 -0
  707. package/dist/esm/transaction/fixedScript/replayProtection.js +39 -0
  708. package/dist/esm/transaction/fixedScript/signLegacyTransaction.d.ts +30 -0
  709. package/dist/esm/transaction/fixedScript/signLegacyTransaction.d.ts.map +1 -0
  710. package/dist/esm/transaction/fixedScript/signLegacyTransaction.js +112 -0
  711. package/dist/esm/transaction/fixedScript/signPsbt.d.ts +30 -0
  712. package/dist/esm/transaction/fixedScript/signPsbt.d.ts.map +1 -0
  713. package/dist/esm/transaction/fixedScript/signPsbt.js +134 -0
  714. package/dist/esm/transaction/fixedScript/signPsbtWasm.d.ts +22 -0
  715. package/dist/esm/transaction/fixedScript/signPsbtWasm.d.ts.map +1 -0
  716. package/dist/esm/transaction/fixedScript/signPsbtWasm.js +122 -0
  717. package/dist/esm/transaction/fixedScript/signTransaction.d.ts +17 -0
  718. package/dist/esm/transaction/fixedScript/signTransaction.d.ts.map +1 -0
  719. package/dist/esm/transaction/fixedScript/signTransaction.js +44 -0
  720. package/dist/esm/transaction/fixedScript/verifyTransaction.d.ts +21 -0
  721. package/dist/esm/transaction/fixedScript/verifyTransaction.d.ts.map +1 -0
  722. package/dist/esm/transaction/fixedScript/verifyTransaction.js +160 -0
  723. package/dist/esm/transaction/getPayGoVerificationPubkey.d.ts +9 -0
  724. package/dist/esm/transaction/getPayGoVerificationPubkey.d.ts.map +1 -0
  725. package/dist/esm/transaction/getPayGoVerificationPubkey.js +17 -0
  726. package/dist/esm/transaction/index.d.ts +8 -0
  727. package/dist/esm/transaction/index.d.ts.map +1 -0
  728. package/dist/esm/transaction/index.js +8 -0
  729. package/dist/esm/transaction/outputDifference.d.ts +40 -0
  730. package/dist/esm/transaction/outputDifference.d.ts.map +1 -0
  731. package/dist/esm/transaction/outputDifference.js +42 -0
  732. package/dist/esm/transaction/parseTransaction.d.ts +4 -0
  733. package/dist/esm/transaction/parseTransaction.d.ts.map +1 -0
  734. package/dist/esm/transaction/parseTransaction.js +12 -0
  735. package/dist/esm/transaction/recipient.d.ts +29 -0
  736. package/dist/esm/transaction/recipient.d.ts.map +1 -0
  737. package/dist/esm/transaction/recipient.js +48 -0
  738. package/dist/esm/transaction/signTransaction.d.ts +6 -0
  739. package/dist/esm/transaction/signTransaction.d.ts.map +1 -0
  740. package/dist/esm/transaction/signTransaction.js +66 -0
  741. package/dist/esm/transaction/types.d.ts +49 -0
  742. package/dist/esm/transaction/types.d.ts.map +1 -0
  743. package/dist/esm/transaction/types.js +4 -0
  744. package/dist/esm/transaction/verifyTransaction.d.ts +4 -0
  745. package/dist/esm/transaction/verifyTransaction.d.ts.map +1 -0
  746. package/dist/esm/transaction/verifyTransaction.js +14 -0
  747. package/dist/esm/verifyKey.d.ts +29 -0
  748. package/dist/esm/verifyKey.d.ts.map +1 -0
  749. package/dist/esm/verifyKey.js +123 -0
  750. package/dist/esm/wallet.d.ts +15 -0
  751. package/dist/esm/wallet.d.ts.map +1 -0
  752. package/dist/esm/wallet.js +5 -0
  753. package/package.json +48 -18
  754. package/.eslintignore +0 -5
  755. package/CHANGELOG.md +0 -253
  756. package/dist/src/abstractUtxoCoin.d.ts +0 -392
  757. package/dist/src/abstractUtxoCoin.d.ts.map +0 -1
  758. package/dist/src/abstractUtxoCoin.js +0 -931
  759. package/dist/src/config.js +0 -14
  760. package/dist/src/index.d.ts +0 -6
  761. package/dist/src/index.d.ts.map +0 -1
  762. package/dist/src/index.js +0 -18
  763. package/dist/src/parseOutput.d.ts +0 -22
  764. package/dist/src/parseOutput.d.ts.map +0 -1
  765. package/dist/src/parseOutput.js +0 -181
  766. package/dist/src/recovery/RecoveryProvider.js +0 -24
  767. package/dist/src/recovery/backupKeyRecovery.d.ts +0 -62
  768. package/dist/src/recovery/backupKeyRecovery.d.ts.map +0 -1
  769. package/dist/src/recovery/backupKeyRecovery.js +0 -293
  770. package/dist/src/recovery/baseApi.d.ts.map +0 -1
  771. package/dist/src/recovery/baseApi.js +0 -73
  772. package/dist/src/recovery/coingeckoApi.d.ts.map +0 -1
  773. package/dist/src/recovery/coingeckoApi.js +0 -47
  774. package/dist/src/recovery/crossChainRecovery.js +0 -294
  775. package/dist/src/recovery/mempoolApi.js +0 -33
  776. package/dist/src/recovery/smartbitApi.d.ts +0 -11
  777. package/dist/src/recovery/smartbitApi.d.ts.map +0 -1
  778. package/dist/src/recovery/smartbitApi.js +0 -36
  779. package/dist/src/replayProtection.d.ts +0 -4
  780. package/dist/src/replayProtection.d.ts.map +0 -1
  781. package/dist/src/replayProtection.js +0 -21
  782. package/dist/src/sign.d.ts +0 -31
  783. package/dist/src/sign.d.ts.map +0 -1
  784. package/dist/src/sign.js +0 -104
  785. package/dist/tsconfig.tsbuildinfo +0 -8179
  786. /package/dist/{src → cjs/src}/config.d.ts +0 -0
  787. /package/dist/{src → cjs/src}/recovery/mempoolApi.d.ts +0 -0
  788. /package/dist/{src → esm}/config.d.ts.map +0 -0
@@ -0,0 +1,27 @@
1
+ import * as t from 'io-ts';
2
+ declare const BIP322MessageInfo: t.TypeC<{
3
+ address: t.StringC;
4
+ message: t.StringC;
5
+ pubkeys: t.ArrayC<t.StringC>;
6
+ scriptType: t.UnionC<[t.LiteralC<"p2sh">, t.LiteralC<"p2shP2wsh">, t.LiteralC<"p2wsh">, t.LiteralC<"p2tr">, t.LiteralC<"p2trMusig2">]>;
7
+ }>;
8
+ export type BIP322MessageInfo = t.TypeOf<typeof BIP322MessageInfo>;
9
+ declare const BIP322MessageBroadcastable: t.TypeC<{
10
+ txHex: t.StringC;
11
+ messageInfo: t.ArrayC<t.TypeC<{
12
+ address: t.StringC;
13
+ message: t.StringC;
14
+ pubkeys: t.ArrayC<t.StringC>;
15
+ scriptType: t.UnionC<[t.LiteralC<"p2sh">, t.LiteralC<"p2shP2wsh">, t.LiteralC<"p2wsh">, t.LiteralC<"p2tr">, t.LiteralC<"p2trMusig2">]>;
16
+ }>>;
17
+ }>;
18
+ export type BIP322MessageBroadcastable = t.TypeOf<typeof BIP322MessageBroadcastable>;
19
+ export declare function serializeBIP322BroadcastableMessage(message: BIP322MessageBroadcastable): string;
20
+ export declare function deserializeBIP322BroadcastableMessage(hex: string): BIP322MessageBroadcastable;
21
+ export declare function verifyTransactionFromBroadcastableMessage(message: BIP322MessageBroadcastable, coinName: string): boolean;
22
+ export declare function generateBIP322MessageListAndVerifyFromMessageBroadcastable(messageBroadcastables: BIP322MessageBroadcastable[], coinName: string): {
23
+ address: string;
24
+ message: string;
25
+ }[];
26
+ export {};
27
+ //# sourceMappingURL=bip322.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bip322.d.ts","sourceRoot":"","sources":["../../../src/transaction/bip322.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,CAAC,MAAM,OAAO,CAAC;AAE3B,QAAA,MAAM,iBAAiB;;;;;EAWrB,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAEnE,QAAA,MAAM,0BAA0B;;;;;;;;EAG9B,CAAC;AAEH,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAErF,wBAAgB,mCAAmC,CAAC,OAAO,EAAE,0BAA0B,GAAG,MAAM,CAE/F;AAED,wBAAgB,qCAAqC,CAAC,GAAG,EAAE,MAAM,GAAG,0BAA0B,CAK7F;AAED,wBAAgB,yCAAyC,CACvD,OAAO,EAAE,0BAA0B,EACnC,QAAQ,EAAE,MAAM,GACf,OAAO,CAwBT;AAED,wBAAgB,0DAA0D,CACxE,qBAAqB,EAAE,0BAA0B,EAAE,EACnD,QAAQ,EAAE,MAAM,GACf;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,CA0BxC"}
@@ -0,0 +1,86 @@
1
+ import { decodeOrElse } from '@bitgo-beta/sdk-core';
2
+ import { bip322 } from '@bitgo-beta/utxo-core';
3
+ import { bitgo, networks } from '@bitgo-beta/utxo-lib';
4
+ import * as t from 'io-ts';
5
+ const BIP322MessageInfo = t.type({
6
+ address: t.string,
7
+ message: t.string,
8
+ pubkeys: t.array(t.string),
9
+ scriptType: t.union([
10
+ t.literal('p2sh'),
11
+ t.literal('p2shP2wsh'),
12
+ t.literal('p2wsh'),
13
+ t.literal('p2tr'),
14
+ t.literal('p2trMusig2'),
15
+ ]),
16
+ });
17
+ const BIP322MessageBroadcastable = t.type({
18
+ txHex: t.string,
19
+ messageInfo: t.array(BIP322MessageInfo),
20
+ });
21
+ export function serializeBIP322BroadcastableMessage(message) {
22
+ return Buffer.from(JSON.stringify(message), 'utf8').toString('hex');
23
+ }
24
+ export function deserializeBIP322BroadcastableMessage(hex) {
25
+ const json = JSON.parse(Buffer.from(hex, 'hex').toString('utf8'));
26
+ return decodeOrElse(BIP322MessageBroadcastable.name, BIP322MessageBroadcastable, json, (error) => {
27
+ throw new Error(`Failed to decode ${BIP322MessageBroadcastable.name}: ${error}`);
28
+ });
29
+ }
30
+ export function verifyTransactionFromBroadcastableMessage(message, coinName) {
31
+ let network = networks.bitcoin;
32
+ if (coinName === 'tbtc4') {
33
+ network = networks.bitcoinTestnet4;
34
+ }
35
+ else if (coinName !== 'btc') {
36
+ throw new Error('Only tbtc4 or btc coinNames are supported.');
37
+ }
38
+ if (bitgo.isPsbt(message.txHex)) {
39
+ const psbt = bitgo.createPsbtFromBuffer(Buffer.from(message.txHex, 'hex'), network);
40
+ try {
41
+ bip322.assertBip322PsbtProof(psbt, message.messageInfo);
42
+ return true;
43
+ }
44
+ catch (error) {
45
+ return false;
46
+ }
47
+ }
48
+ else {
49
+ const tx = bitgo.createTransactionFromBuffer(Buffer.from(message.txHex, 'hex'), network, { amountType: 'bigint' });
50
+ try {
51
+ bip322.assertBip322TxProof(tx, message.messageInfo);
52
+ return true;
53
+ }
54
+ catch (error) {
55
+ return false;
56
+ }
57
+ }
58
+ }
59
+ export function generateBIP322MessageListAndVerifyFromMessageBroadcastable(messageBroadcastables, coinName) {
60
+ // Map from the address to the message. If there are duplicates of the address, make sure that the
61
+ // message is the same. If there are duplicate addresses and the messages are not the same, throw an error.
62
+ const addressMap = new Map();
63
+ messageBroadcastables.forEach((message, index) => {
64
+ if (verifyTransactionFromBroadcastableMessage(message, coinName)) {
65
+ message.messageInfo.forEach((info) => {
66
+ const { address, message: msg } = info;
67
+ if (addressMap.has(address)) {
68
+ if (addressMap.get(address) !== msg) {
69
+ throw new Error(`Duplicate address ${address} has different messages`);
70
+ }
71
+ }
72
+ else {
73
+ addressMap.set(address, msg);
74
+ }
75
+ });
76
+ }
77
+ else {
78
+ throw new Error(`Message Broadcastable ${index} did not have a successful validation`);
79
+ }
80
+ });
81
+ return Array.from(addressMap.entries()).map(([address, message]) => ({
82
+ address,
83
+ message,
84
+ }));
85
+ }
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmlwMzIyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL2JpcDMyMi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQy9DLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFXLE1BQU0sc0JBQXNCLENBQUM7QUFDaEUsT0FBTyxLQUFLLENBQUMsTUFBTSxPQUFPLENBQUM7QUFFM0IsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQy9CLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTTtJQUNqQixPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU07SUFDakIsT0FBTyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUMxQixVQUFVLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUNsQixDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUNqQixDQUFDLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztRQUN0QixDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztRQUNsQixDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUNqQixDQUFDLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQztLQUN4QixDQUFDO0NBQ0gsQ0FBQyxDQUFDO0FBSUgsTUFBTSwwQkFBMEIsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3hDLEtBQUssRUFBRSxDQUFDLENBQUMsTUFBTTtJQUNmLFdBQVcsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDO0NBQ3hDLENBQUMsQ0FBQztBQUlILE1BQU0sVUFBVSxtQ0FBbUMsQ0FBQyxPQUFtQztJQUNyRixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFB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QyxLQUFLLEdBQUcsRUFBRSxDQUFDO3dCQUNwQyxNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixPQUFPLHlCQUF5QixDQUFDLENBQUM7b0JBQ3pFLENBQUM7Z0JBQ0gsQ0FBQztxQkFBTSxDQUFDO29CQUNOLFVBQVUsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2dCQUMvQixDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLEtBQUssdUNBQXVDLENBQUMsQ0FBQztRQUN6RixDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDbkUsT0FBTztRQUNQLE9BQU87S0FDUixDQUFDLENBQUMsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkZWNvZGVPckVsc2UgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBiaXAzMjIgfSBmcm9tICdAYml0Z28tYmV0YS91dHhvLWNvcmUnO1xuaW1wb3J0IHsgYml0Z28sIG5ldHdvcmtzLCBOZXR3b3JrIH0gZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuaW1wb3J0ICogYXMgdCBmcm9tICdpby10cyc7XG5cbmNvbnN0IEJJUDMyMk1lc3NhZ2VJbmZvID0gdC50eXBlKHtcbiAgYWRkcmVzczogdC5zdHJpbmcsXG4gIG1lc3NhZ2U6IHQuc3RyaW5nLFxuICBwdWJrZXlzOiB0LmFycmF5KHQuc3RyaW5nKSxcbiAgc2NyaXB0VHlwZTogdC51bmlvbihbXG4gICAgdC5saXRlcmFsKCdwMnNoJyksXG4gICAgdC5saXRlcmFsKCdwMnNoUDJ3c2gnKSxcbiAgICB0LmxpdGVyYWwoJ3Ayd3NoJyksXG4gICAgdC5saXRlcmFsKCdwMnRyJyksXG4gICAgdC5saXRlcmFsKCdwMnRyTXVzaWcyJyksXG4gIF0pLFxufSk7XG5cbmV4cG9ydCB0eXBlIEJJUDMyMk1lc3NhZ2VJbmZvID0gdC5UeXBlT2Y8dHlwZW9mIEJJUDMyMk1lc3NhZ2VJbmZvPjtcblxuY29uc3QgQklQMzIyTWVzc2FnZUJyb2FkY2FzdGFibGUgPSB0LnR5cGUoe1xuICB0eEhleDogdC5zdHJpbmcsXG4gIG1lc3NhZ2VJbmZvOiB0LmFycmF5KEJJUDMyMk1lc3NhZ2VJbmZvKSxcbn0pO1xuXG5leHBvcnQgdHlwZSBCSVAzMjJNZXNzYWdlQnJvYWRjYXN0YWJsZSA9IHQuVHlwZU9mPHR5cGVvZiBCSVAzMjJNZXNzYWdlQnJvYWRjYXN0YWJsZT47XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXJpYWxpemVCSVAzMjJCcm9hZGNhc3RhYmxlTWVzc2FnZShtZXNzYWdlOiBCSVAzMjJNZXNzYWdlQnJvYWRjYXN0YWJsZSk6IHN0cmluZyB7XG4gIHJldHVybiBCdWZmZXIuZnJvbShKU09OLnN0cmluZ2lmeShtZXNzYWdlKSwgJ3V0ZjgnKS50b1N0cmluZygnaGV4Jyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZXNlcmlhbGl6ZUJJUDMyMkJyb2FkY2FzdGFibGVNZXNzYWdlKGhleDogc3RyaW5nKTogQklQMzIyTWVzc2FnZUJyb2FkY2FzdGFibGUge1xuICBjb25zdCBqc29uID0gSlNPTi5wYXJzZShCdWZmZXIuZnJvbShoZXgsICdoZXgnKS50b1N0cmluZygndXRmOCcpKTtcbiAgcmV0dXJuIGRlY29kZU9yRWxzZShCSVAzMjJNZXNzYWdlQnJvYWRjYXN0YWJsZS5uYW1lLCBCSVAzMjJNZXNzYWdlQnJvYWRjYXN0YWJsZSwganNvbiwgKGVycm9yKSA9PiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gZGVjb2RlICR7QklQMzIyTWVzc2FnZUJyb2FkY2FzdGFibGUubmFtZX06ICR7ZXJyb3J9YCk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdmVyaWZ5VHJhbnNhY3Rpb25Gcm9tQnJvYWRjYXN0YWJsZU1lc3NhZ2UoXG4gIG1lc3NhZ2U6IEJJUDMyMk1lc3NhZ2VCcm9hZGNhc3RhYmxlLFxuICBjb2luTmFtZTogc3RyaW5nXG4pOiBib29sZWFuIHtcbiAgbGV0IG5ldHdvcms6IE5ldHdvcmsgPSBuZXR3b3Jrcy5iaXRjb2luO1xuICBpZiAoY29pbk5hbWUgPT09ICd0YnRjNCcpIHtcbiAgICBuZXR3b3JrID0gbmV0d29ya3MuYml0Y29pblRlc3RuZXQ0O1xuICB9IGVsc2UgaWYgKGNvaW5OYW1lICE9PSAnYnRjJykge1xuICAgIHRocm93IG5ldyBFcnJvcignT25seSB0YnRjNCBvciBidGMgY29pbk5hbWVzIGFyZSBzdXBwb3J0ZWQuJyk7XG4gIH1cbiAgaWYgKGJpdGdvLmlzUHNidChtZXNzYWdlLnR4SGV4KSkge1xuICAgIGNvbnN0IHBzYnQgPSBiaXRnby5jcmVhdGVQc2J0RnJvbUJ1ZmZlcihCdWZmZXIuZnJvbShtZXNzYWdlLnR4SGV4LCAnaGV4JyksIG5ldHdvcmspO1xuICAgIHRyeSB7XG4gICAgICBiaXAzMjIuYXNzZXJ0QmlwMzIyUHNidFByb29mKHBzYnQsIG1lc3NhZ2UubWVzc2FnZUluZm8pO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgdHggPSBiaXRnby5jcmVhdGVUcmFuc2FjdGlvbkZyb21CdWZmZXIoQnVmZmVyLmZyb20obWVzc2FnZS50eEhleCwgJ2hleCcpLCBuZXR3b3JrLCB7IGFtb3VudFR5cGU6ICdiaWdpbnQnIH0pO1xuICAgIHRyeSB7XG4gICAgICBiaXAzMjIuYXNzZXJ0QmlwMzIyVHhQcm9vZih0eCwgbWVzc2FnZS5tZXNzYWdlSW5mbyk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVCSVAzMjJNZXNzYWdlTGlzdEFuZFZlcmlmeUZyb21NZXNzYWdlQnJvYWRjYXN0YWJsZShcbiAgbWVzc2FnZUJyb2FkY2FzdGFibGVzOiBCSVAzMjJNZXNzYWdlQnJvYWRjYXN0YWJsZVtdLFxuICBjb2luTmFtZTogc3RyaW5nXG4pOiB7IGFkZHJlc3M6IHN0cmluZzsgbWVzc2FnZTogc3RyaW5nIH1bXSB7XG4gIC8vIE1hcCBmcm9tIHRoZSBhZGRyZXNzIHRvIHRoZSBtZXNzYWdlLiBJZiB0aGVyZSBhcmUgZHVwbGljYXRlcyBvZiB0aGUgYWRkcmVzcywgbWFrZSBzdXJlIHRoYXQgdGhlXG4gIC8vIG1lc3NhZ2UgaXMgdGhlIHNhbWUuIElmIHRoZXJlIGFyZSBkdXBsaWNhdGUgYWRkcmVzc2VzIGFuZCB0aGUgbWVzc2FnZXMgYXJlIG5vdCB0aGUgc2FtZSwgdGhyb3cgYW4gZXJyb3IuXG4gIGNvbnN0IGFkZHJlc3NNYXAgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xuXG4gIG1lc3NhZ2VCcm9hZGNhc3RhYmxlcy5mb3JFYWNoKChtZXNzYWdlLCBpbmRleCkgPT4ge1xuICAgIGlmICh2ZXJpZnlUcmFuc2FjdGlvbkZyb21Ccm9hZGNhc3RhYmxlTWVzc2FnZShtZXNzYWdlLCBjb2luTmFtZSkpIHtcbiAgICAgIG1lc3NhZ2UubWVzc2FnZUluZm8uZm9yRWFjaCgoaW5mbykgPT4ge1xuICAgICAgICBjb25zdCB7IGFkZHJlc3MsIG1lc3NhZ2U6IG1zZyB9ID0gaW5mbztcbiAgICAgICAgaWYgKGFkZHJlc3NNYXAuaGFzKGFkZHJlc3MpKSB7XG4gICAgICAgICAgaWYgKGFkZHJlc3NNYXAuZ2V0KGFkZHJlc3MpICE9PSBtc2cpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRHVwbGljYXRlIGFkZHJlc3MgJHthZGRyZXNzfSBoYXMgZGlmZmVyZW50IG1lc3NhZ2VzYCk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGFkZHJlc3NNYXAuc2V0KGFkZHJlc3MsIG1zZyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE1lc3NhZ2UgQnJvYWRjYXN0YWJsZSAke2luZGV4fSBkaWQgbm90IGhhdmUgYSBzdWNjZXNzZnVsIHZhbGlkYXRpb25gKTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBBcnJheS5mcm9tKGFkZHJlc3NNYXAuZW50cmllcygpKS5tYXAoKFthZGRyZXNzLCBtZXNzYWdlXSkgPT4gKHtcbiAgICBhZGRyZXNzLFxuICAgIG1lc3NhZ2UsXG4gIH0pKTtcbn1cbiJdfQ==
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=verifyPayGoAmount.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verifyPayGoAmount.d.ts","sourceRoot":"","sources":["../../../../src/transaction/common/verifyPayGoAmount.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZ5UGF5R29BbW91bnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vY29tbW9uL3ZlcmlmeVBheUdvQW1vdW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIiXX0=
@@ -0,0 +1,11 @@
1
+ import * as utxolib from '@bitgo-beta/utxo-lib';
2
+ import { fixedScriptWallet } from '@bitgo/wasm-utxo';
3
+ import { SdkBackend } from './types';
4
+ type BufferEncoding = 'hex' | 'base64';
5
+ export declare function stringToBufferTryFormats(input: string, formats?: BufferEncoding[]): Buffer;
6
+ export declare function decodePsbtWith(psbt: string | Buffer, network: utxolib.Network, backend: 'utxolib'): utxolib.bitgo.UtxoPsbt;
7
+ export declare function decodePsbtWith(psbt: string | Buffer, network: utxolib.Network, backend: 'wasm-utxo'): fixedScriptWallet.BitGoPsbt;
8
+ export declare function decodePsbtWith(psbt: string | Buffer, network: utxolib.Network, backend: SdkBackend): utxolib.bitgo.UtxoPsbt | fixedScriptWallet.BitGoPsbt;
9
+ export declare function encodeTransaction(transaction: utxolib.bitgo.UtxoTransaction<bigint | number> | utxolib.bitgo.UtxoPsbt | fixedScriptWallet.BitGoPsbt): Buffer;
10
+ export {};
11
+ //# sourceMappingURL=decode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decode.d.ts","sourceRoot":"","sources":["../../../src/transaction/decode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAiB,MAAM,kBAAkB,CAAC;AAEpE,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,KAAK,cAAc,GAAG,KAAK,GAAG,QAAQ,CAAC;AAEvC,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,cAAc,EAAsB,GAAG,MAAM,CAa7G;AAUD,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,GAAG,MAAM,EACrB,OAAO,EAAE,OAAO,CAAC,OAAO,EACxB,OAAO,EAAE,SAAS,GACjB,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;AAC1B,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,GAAG,MAAM,EACrB,OAAO,EAAE,OAAO,CAAC,OAAO,EACxB,OAAO,EAAE,WAAW,GACnB,iBAAiB,CAAC,SAAS,CAAC;AAC/B,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,GAAG,MAAM,EACrB,OAAO,EAAE,OAAO,CAAC,OAAO,EACxB,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,iBAAiB,CAAC,SAAS,CAAC;AAgBxD,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,iBAAiB,CAAC,SAAS,GACjH,MAAM,CAQR"}
@@ -0,0 +1,43 @@
1
+ import * as utxolib from '@bitgo-beta/utxo-lib';
2
+ import { fixedScriptWallet } from '@bitgo/wasm-utxo';
3
+ export function stringToBufferTryFormats(input, formats = ['hex', 'base64']) {
4
+ for (const format of formats) {
5
+ const buffer = Buffer.from(input, format);
6
+ const bufferToString = buffer.toString(format);
7
+ if ((format === 'base64' && bufferToString === input) ||
8
+ (format === 'hex' && bufferToString === input.toLowerCase())) {
9
+ return buffer;
10
+ }
11
+ }
12
+ throw new Error('input must be a valid hex or base64 string');
13
+ }
14
+ function toNetworkName(network) {
15
+ const networkName = utxolib.getNetworkName(network);
16
+ if (!networkName) {
17
+ throw new Error(`Invalid network: ${network}`);
18
+ }
19
+ return networkName;
20
+ }
21
+ export function decodePsbtWith(psbt, network, backend) {
22
+ if (typeof psbt === 'string') {
23
+ psbt = Buffer.from(psbt, 'hex');
24
+ }
25
+ if (backend === 'utxolib') {
26
+ return utxolib.bitgo.createPsbtFromBuffer(psbt, network);
27
+ }
28
+ else {
29
+ return fixedScriptWallet.BitGoPsbt.fromBytes(psbt, toNetworkName(network));
30
+ }
31
+ }
32
+ export function encodeTransaction(transaction) {
33
+ if (transaction instanceof utxolib.bitgo.UtxoTransaction) {
34
+ return transaction.toBuffer();
35
+ }
36
+ else if (transaction instanceof utxolib.bitgo.UtxoPsbt) {
37
+ return transaction.toBuffer();
38
+ }
39
+ else {
40
+ return Buffer.from(transaction.serialize());
41
+ }
42
+ }
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb2RlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL2RlY29kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLHNCQUFzQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxpQkFBaUIsRUFBaUIsTUFBTSxrQkFBa0IsQ0FBQztBQU1wRSxNQUFNLFVBQVUsd0JBQXdCLENBQUMsS0FBYSxFQUFFLFVBQTRCLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQztJQUNuRyxLQUFLLE1BQU0sTUFBTSxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQzdCLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzFDLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDL0MsSUFDRSxDQUFDLE1BQU0sS0FBSyxRQUFRLElBQUksY0FBYyxLQUFLLEtBQUssQ0FBQztZQUNqRCxDQUFDLE1BQU0sS0FBSyxLQUFLLElBQUksY0FBYyxLQUFLLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxFQUM1RCxDQUFDO1lBQ0QsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQztJQUNILENBQUM7SUFFRCxNQUFNLElBQUksS0FBSyxDQUFDLDRDQUE0QyxDQUFDLENBQUM7QUFDaEUsQ0FBQztBQUVELFNBQVMsYUFBYSxDQUFDLE9BQXdCO0lBQzdDLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDcEQsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMsb0JBQW9CLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUNELE9BQU8sV0FBVyxDQUFDO0FBQ3JCLENBQUM7QUFpQkQsTUFBTSxVQUFVLGNBQWMsQ0FDNUIsSUFBcUIsRUFDckIsT0FBd0IsRUFDeEIsT0FBbUI7SUFFbkIsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUM3QixJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUNELElBQUksT0FBTyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQzFCLE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDM0QsQ0FBQztTQUFNLENBQUM7UUFDTixPQUFPLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQzdFLENBQUM7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLGlCQUFpQixDQUMvQixXQUFrSDtJQUVsSCxJQUFJLFdBQVcsWUFBWSxPQUFPLENBQUMsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3pELE9BQU8sV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2hDLENBQUM7U0FBTSxJQUFJLFdBQVcsWUFBWSxPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3pELE9BQU8sV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2hDLENBQUM7U0FBTSxDQUFDO1FBQ04sT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQzlDLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5pbXBvcnQgeyBmaXhlZFNjcmlwdFdhbGxldCwgdXR4b2xpYkNvbXBhdCB9IGZyb20gJ0BiaXRnby93YXNtLXV0eG8nO1xuXG5pbXBvcnQgeyBTZGtCYWNrZW5kIH0gZnJvbSAnLi90eXBlcyc7XG5cbnR5cGUgQnVmZmVyRW5jb2RpbmcgPSAnaGV4JyB8ICdiYXNlNjQnO1xuXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5nVG9CdWZmZXJUcnlGb3JtYXRzKGlucHV0OiBzdHJpbmcsIGZvcm1hdHM6IEJ1ZmZlckVuY29kaW5nW10gPSBbJ2hleCcsICdiYXNlNjQnXSk6IEJ1ZmZlciB7XG4gIGZvciAoY29uc3QgZm9ybWF0IG9mIGZvcm1hdHMpIHtcbiAgICBjb25zdCBidWZmZXIgPSBCdWZmZXIuZnJvbShpbnB1dCwgZm9ybWF0KTtcbiAgICBjb25zdCBidWZmZXJUb1N0cmluZyA9IGJ1ZmZlci50b1N0cmluZyhmb3JtYXQpO1xuICAgIGlmIChcbiAgICAgIChmb3JtYXQgPT09ICdiYXNlNjQnICYmIGJ1ZmZlclRvU3RyaW5nID09PSBpbnB1dCkgfHxcbiAgICAgIChmb3JtYXQgPT09ICdoZXgnICYmIGJ1ZmZlclRvU3RyaW5nID09PSBpbnB1dC50b0xvd2VyQ2FzZSgpKVxuICAgICkge1xuICAgICAgcmV0dXJuIGJ1ZmZlcjtcbiAgICB9XG4gIH1cblxuICB0aHJvdyBuZXcgRXJyb3IoJ2lucHV0IG11c3QgYmUgYSB2YWxpZCBoZXggb3IgYmFzZTY0IHN0cmluZycpO1xufVxuXG5mdW5jdGlvbiB0b05ldHdvcmtOYW1lKG5ldHdvcms6IHV0eG9saWIuTmV0d29yayk6IHV0eG9saWJDb21wYXQuVXR4b2xpYk5hbWUge1xuICBjb25zdCBuZXR3b3JrTmFtZSA9IHV0eG9saWIuZ2V0TmV0d29ya05hbWUobmV0d29yayk7XG4gIGlmICghbmV0d29ya05hbWUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgbmV0d29yazogJHtuZXR3b3JrfWApO1xuICB9XG4gIHJldHVybiBuZXR3b3JrTmFtZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlY29kZVBzYnRXaXRoKFxuICBwc2J0OiBzdHJpbmcgfCBCdWZmZXIsXG4gIG5ldHdvcms6IHV0eG9saWIuTmV0d29yayxcbiAgYmFja2VuZDogJ3V0eG9saWInXG4pOiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0O1xuZXhwb3J0IGZ1bmN0aW9uIGRlY29kZVBzYnRXaXRoKFxuICBwc2J0OiBzdHJpbmcgfCBCdWZmZXIsXG4gIG5ldHdvcms6IHV0eG9saWIuTmV0d29yayxcbiAgYmFja2VuZDogJ3dhc20tdXR4bydcbik6IGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidDtcbmV4cG9ydCBmdW5jdGlvbiBkZWNvZGVQc2J0V2l0aChcbiAgcHNidDogc3RyaW5nIHwgQnVmZmVyLFxuICBuZXR3b3JrOiB1dHhvbGliLk5ldHdvcmssXG4gIGJhY2tlbmQ6IFNka0JhY2tlbmRcbik6IHV0eG9saWIuYml0Z28uVXR4b1BzYnQgfCBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQ7XG5leHBvcnQgZnVuY3Rpb24gZGVjb2RlUHNidFdpdGgoXG4gIHBzYnQ6IHN0cmluZyB8IEJ1ZmZlcixcbiAgbmV0d29yazogdXR4b2xpYi5OZXR3b3JrLFxuICBiYWNrZW5kOiBTZGtCYWNrZW5kXG4pOiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0IHwgZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0IHtcbiAgaWYgKHR5cGVvZiBwc2J0ID09PSAnc3RyaW5nJykge1xuICAgIHBzYnQgPSBCdWZmZXIuZnJvbShwc2J0LCAnaGV4Jyk7XG4gIH1cbiAgaWYgKGJhY2tlbmQgPT09ICd1dHhvbGliJykge1xuICAgIHJldHVybiB1dHhvbGliLmJpdGdvLmNyZWF0ZVBzYnRGcm9tQnVmZmVyKHBzYnQsIG5ldHdvcmspO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQuZnJvbUJ5dGVzKHBzYnQsIHRvTmV0d29ya05hbWUobmV0d29yaykpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbmNvZGVUcmFuc2FjdGlvbihcbiAgdHJhbnNhY3Rpb246IHV0eG9saWIuYml0Z28uVXR4b1RyYW5zYWN0aW9uPGJpZ2ludCB8IG51bWJlcj4gfCB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0IHwgZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0XG4pOiBCdWZmZXIge1xuICBpZiAodHJhbnNhY3Rpb24gaW5zdGFuY2VvZiB1dHhvbGliLmJpdGdvLlV0eG9UcmFuc2FjdGlvbikge1xuICAgIHJldHVybiB0cmFuc2FjdGlvbi50b0J1ZmZlcigpO1xuICB9IGVsc2UgaWYgKHRyYW5zYWN0aW9uIGluc3RhbmNlb2YgdXR4b2xpYi5iaXRnby5VdHhvUHNidCkge1xuICAgIHJldHVybiB0cmFuc2FjdGlvbi50b0J1ZmZlcigpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBCdWZmZXIuZnJvbSh0cmFuc2FjdGlvbi5zZXJpYWxpemUoKSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,5 @@
1
+ import * as utxolib from '@bitgo-beta/utxo-lib';
2
+ import * as coreDescriptors from '@bitgo-beta/utxo-core/descriptor';
3
+ import type { TransactionExplanationDescriptor } from '../fixedScript/explainTransaction';
4
+ export declare function explainPsbt(psbt: utxolib.bitgo.UtxoPsbt, descriptors: coreDescriptors.DescriptorMap): TransactionExplanationDescriptor;
5
+ //# sourceMappingURL=explainPsbt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"explainPsbt.d.ts","sourceRoot":"","sources":["../../../../src/transaction/descriptor/explainPsbt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAEhD,OAAO,KAAK,eAAe,MAAM,kCAAkC,CAAC;AAGpE,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,mCAAmC,CAAC;AA4B1F,wBAAgB,WAAW,CACzB,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,EAC5B,WAAW,EAAE,eAAe,CAAC,aAAa,GACzC,gCAAgC,CAkBlC"}
@@ -0,0 +1,44 @@
1
+ import * as coreDescriptors from '@bitgo-beta/utxo-core/descriptor';
2
+ import { toExtendedAddressFormat } from '../recipient';
3
+ function toRecipient(output, network) {
4
+ return {
5
+ address: toExtendedAddressFormat(output.script, network),
6
+ amount: output.value.toString(),
7
+ };
8
+ }
9
+ function sumValues(arr) {
10
+ return arr.reduce((sum, e) => sum + e.value, BigInt(0));
11
+ }
12
+ function getInputSignaturesForInputIndex(psbt, inputIndex) {
13
+ const { partialSig } = psbt.data.inputs[inputIndex];
14
+ if (!partialSig) {
15
+ return 0;
16
+ }
17
+ return partialSig.reduce((agg, p) => {
18
+ const valid = psbt.validateSignaturesOfInputCommon(inputIndex, p.pubkey);
19
+ return agg + (valid ? 1 : 0);
20
+ }, 0);
21
+ }
22
+ function getInputSignatures(psbt) {
23
+ return psbt.data.inputs.map((_, i) => getInputSignaturesForInputIndex(psbt, i));
24
+ }
25
+ export function explainPsbt(psbt, descriptors) {
26
+ const parsedTransaction = coreDescriptors.parse(psbt, descriptors, psbt.network);
27
+ const { inputs, outputs } = parsedTransaction;
28
+ const externalOutputs = outputs.filter((o) => o.scriptId === undefined);
29
+ const changeOutputs = outputs.filter((o) => o.scriptId !== undefined);
30
+ const fee = sumValues(inputs) - sumValues(outputs);
31
+ const inputSignatures = getInputSignatures(psbt);
32
+ return {
33
+ inputSignatures,
34
+ signatures: inputSignatures.reduce((a, b) => Math.min(a, b), Infinity),
35
+ locktime: psbt.locktime,
36
+ id: psbt.getUnsignedTx().getId(),
37
+ outputs: externalOutputs.map((o) => toRecipient(o, psbt.network)),
38
+ outputAmount: sumValues(externalOutputs).toString(),
39
+ changeOutputs: changeOutputs.map((o) => toRecipient(o, psbt.network)),
40
+ changeAmount: sumValues(changeOutputs).toString(),
41
+ fee: fee.toString(),
42
+ };
43
+ }
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwbGFpblBzYnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vZGVzY3JpcHRvci9leHBsYWluUHNidC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEtBQUssZUFBZSxNQUFNLGtDQUFrQyxDQUFDO0FBRXBFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUd2RCxTQUFTLFdBQVcsQ0FBQyxNQUFvQyxFQUFFLE9BQXdCO0lBQ2pGLE9BQU87UUFDTCxPQUFPLEVBQUUsdUJBQXVCLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUM7UUFDeEQsTUFBTSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFO0tBQ2hDLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxTQUFTLENBQUMsR0FBd0I7SUFDekMsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDMUQsQ0FBQztBQUVELFNBQVMsK0JBQStCLENBQUMsSUFBNEIsRUFBRSxVQUFrQjtJQUN2RixNQUFNLEVBQUUsVUFBVSxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDcEQsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2hCLE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUNELE9BQU8sVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUNsQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsK0JBQStCLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6RSxPQUFPLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDUixDQUFDO0FBRUQsU0FBUyxrQkFBa0IsQ0FBQyxJQUE0QjtJQUN0RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLCtCQUErQixDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xGLENBQUM7QUFFRCxNQUFNLFVBQVUsV0FBVyxDQUN6QixJQUE0QixFQUM1QixXQUEwQztJQUUxQyxNQUFNLGlCQUFpQixHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakYsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxpQkFBaUIsQ0FBQztJQUM5QyxNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxLQUFLLFNBQVMsQ0FBQyxDQUFDO0lBQ3hFLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEtBQUssU0FBUyxDQUFDLENBQUM7SUFDdEUsTUFBTSxHQUFHLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuRCxNQUFNLGVBQWUsR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqRCxPQUFPO1FBQ0wsZUFBZTtRQUNmLFVBQVUsRUFBRSxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDO1FBQ3RFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtRQUN2QixFQUFFLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLEtBQUssRUFBRTtRQUNoQyxPQUFPLEVBQUUsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakUsWUFBWSxFQUFFLFNBQVMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxRQUFRLEVBQUU7UUFDbkQsYUFBYSxFQUFFLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JFLFlBQVksRUFBRSxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUMsUUFBUSxFQUFFO1FBQ2pELEdBQUcsRUFBRSxHQUFHLENBQUMsUUFBUSxFQUFFO0tBQ3BCLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5pbXBvcnQgeyBJVHJhbnNhY3Rpb25SZWNpcGllbnQgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgKiBhcyBjb3JlRGVzY3JpcHRvcnMgZnJvbSAnQGJpdGdvLWJldGEvdXR4by1jb3JlL2Rlc2NyaXB0b3InO1xuXG5pbXBvcnQgeyB0b0V4dGVuZGVkQWRkcmVzc0Zvcm1hdCB9IGZyb20gJy4uL3JlY2lwaWVudCc7XG5pbXBvcnQgdHlwZSB7IFRyYW5zYWN0aW9uRXhwbGFuYXRpb25EZXNjcmlwdG9yIH0gZnJvbSAnLi4vZml4ZWRTY3JpcHQvZXhwbGFpblRyYW5zYWN0aW9uJztcblxuZnVuY3Rpb24gdG9SZWNpcGllbnQob3V0cHV0OiBjb3JlRGVzY3JpcHRvcnMuUGFyc2VkT3V0cHV0LCBuZXR3b3JrOiB1dHhvbGliLk5ldHdvcmspOiBJVHJhbnNhY3Rpb25SZWNpcGllbnQge1xuICByZXR1cm4ge1xuICAgIGFkZHJlc3M6IHRvRXh0ZW5kZWRBZGRyZXNzRm9ybWF0KG91dHB1dC5zY3JpcHQsIG5ldHdvcmspLFxuICAgIGFtb3VudDogb3V0cHV0LnZhbHVlLnRvU3RyaW5nKCksXG4gIH07XG59XG5cbmZ1bmN0aW9uIHN1bVZhbHVlcyhhcnI6IHsgdmFsdWU6IGJpZ2ludCB9W10pOiBiaWdpbnQge1xuICByZXR1cm4gYXJyLnJlZHVjZSgoc3VtLCBlKSA9PiBzdW0gKyBlLnZhbHVlLCBCaWdJbnQoMCkpO1xufVxuXG5mdW5jdGlvbiBnZXRJbnB1dFNpZ25hdHVyZXNGb3JJbnB1dEluZGV4KHBzYnQ6IHV0eG9saWIuYml0Z28uVXR4b1BzYnQsIGlucHV0SW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gIGNvbnN0IHsgcGFydGlhbFNpZyB9ID0gcHNidC5kYXRhLmlucHV0c1tpbnB1dEluZGV4XTtcbiAgaWYgKCFwYXJ0aWFsU2lnKSB7XG4gICAgcmV0dXJuIDA7XG4gIH1cbiAgcmV0dXJuIHBhcnRpYWxTaWcucmVkdWNlKChhZ2csIHApID0+IHtcbiAgICBjb25zdCB2YWxpZCA9IHBzYnQudmFsaWRhdGVTaWduYXR1cmVzT2ZJbnB1dENvbW1vbihpbnB1dEluZGV4LCBwLnB1YmtleSk7XG4gICAgcmV0dXJuIGFnZyArICh2YWxpZCA/IDEgOiAwKTtcbiAgfSwgMCk7XG59XG5cbmZ1bmN0aW9uIGdldElucHV0U2lnbmF0dXJlcyhwc2J0OiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0KTogbnVtYmVyW10ge1xuICByZXR1cm4gcHNidC5kYXRhLmlucHV0cy5tYXAoKF8sIGkpID0+IGdldElucHV0U2lnbmF0dXJlc0ZvcklucHV0SW5kZXgocHNidCwgaSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXhwbGFpblBzYnQoXG4gIHBzYnQ6IHV0eG9saWIuYml0Z28uVXR4b1BzYnQsXG4gIGRlc2NyaXB0b3JzOiBjb3JlRGVzY3JpcHRvcnMuRGVzY3JpcHRvck1hcFxuKTogVHJhbnNhY3Rpb25FeHBsYW5hdGlvbkRlc2NyaXB0b3Ige1xuICBjb25zdCBwYXJzZWRUcmFuc2FjdGlvbiA9IGNvcmVEZXNjcmlwdG9ycy5wYXJzZShwc2J0LCBkZXNjcmlwdG9ycywgcHNidC5uZXR3b3JrKTtcbiAgY29uc3QgeyBpbnB1dHMsIG91dHB1dHMgfSA9IHBhcnNlZFRyYW5zYWN0aW9uO1xuICBjb25zdCBleHRlcm5hbE91dHB1dHMgPSBvdXRwdXRzLmZpbHRlcigobykgPT4gby5zY3JpcHRJZCA9PT0gdW5kZWZpbmVkKTtcbiAgY29uc3QgY2hhbmdlT3V0cHV0cyA9IG91dHB1dHMuZmlsdGVyKChvKSA9PiBvLnNjcmlwdElkICE9PSB1bmRlZmluZWQpO1xuICBjb25zdCBmZWUgPSBzdW1WYWx1ZXMoaW5wdXRzKSAtIHN1bVZhbHVlcyhvdXRwdXRzKTtcbiAgY29uc3QgaW5wdXRTaWduYXR1cmVzID0gZ2V0SW5wdXRTaWduYXR1cmVzKHBzYnQpO1xuICByZXR1cm4ge1xuICAgIGlucHV0U2lnbmF0dXJlcyxcbiAgICBzaWduYXR1cmVzOiBpbnB1dFNpZ25hdHVyZXMucmVkdWNlKChhLCBiKSA9PiBNYXRoLm1pbihhLCBiKSwgSW5maW5pdHkpLFxuICAgIGxvY2t0aW1lOiBwc2J0LmxvY2t0aW1lLFxuICAgIGlkOiBwc2J0LmdldFVuc2lnbmVkVHgoKS5nZXRJZCgpLFxuICAgIG91dHB1dHM6IGV4dGVybmFsT3V0cHV0cy5tYXAoKG8pID0+IHRvUmVjaXBpZW50KG8sIHBzYnQubmV0d29yaykpLFxuICAgIG91dHB1dEFtb3VudDogc3VtVmFsdWVzKGV4dGVybmFsT3V0cHV0cykudG9TdHJpbmcoKSxcbiAgICBjaGFuZ2VPdXRwdXRzOiBjaGFuZ2VPdXRwdXRzLm1hcCgobykgPT4gdG9SZWNpcGllbnQobywgcHNidC5uZXR3b3JrKSksXG4gICAgY2hhbmdlQW1vdW50OiBzdW1WYWx1ZXMoY2hhbmdlT3V0cHV0cykudG9TdHJpbmcoKSxcbiAgICBmZWU6IGZlZS50b1N0cmluZygpLFxuICB9O1xufVxuIl19
@@ -0,0 +1,7 @@
1
+ export { DescriptorMap } from '@bitgo-beta/utxo-core/descriptor';
2
+ export { explainPsbt } from './explainPsbt';
3
+ export { parse } from './parse';
4
+ export { parseToAmountType } from './parseToAmountType';
5
+ export { verifyTransaction } from './verifyTransaction';
6
+ export { signPsbt } from './signPsbt';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/transaction/descriptor/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,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"}
@@ -0,0 +1,6 @@
1
+ export { explainPsbt } from './explainPsbt';
2
+ export { parse } from './parse';
3
+ export { parseToAmountType } from './parseToAmountType';
4
+ export { verifyTransaction } from './verifyTransaction';
5
+ export { signPsbt } from './signPsbt';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vZGVzY3JpcHRvci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDaEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IERlc2NyaXB0b3JNYXAgfSBmcm9tICdAYml0Z28tYmV0YS91dHhvLWNvcmUvZGVzY3JpcHRvcic7XG5leHBvcnQgeyBleHBsYWluUHNidCB9IGZyb20gJy4vZXhwbGFpblBzYnQnO1xuZXhwb3J0IHsgcGFyc2UgfSBmcm9tICcuL3BhcnNlJztcbmV4cG9ydCB7IHBhcnNlVG9BbW91bnRUeXBlIH0gZnJvbSAnLi9wYXJzZVRvQW1vdW50VHlwZSc7XG5leHBvcnQgeyB2ZXJpZnlUcmFuc2FjdGlvbiB9IGZyb20gJy4vdmVyaWZ5VHJhbnNhY3Rpb24nO1xuZXhwb3J0IHsgc2lnblBzYnQgfSBmcm9tICcuL3NpZ25Qc2J0JztcbiJdfQ==
@@ -0,0 +1,16 @@
1
+ import * as utxolib from '@bitgo-beta/utxo-lib';
2
+ import { ITransactionRecipient } from '@bitgo-beta/sdk-core';
3
+ import * as coreDescriptors from '@bitgo-beta/utxo-core/descriptor';
4
+ import { AbstractUtxoCoin, ParseTransactionOptions } from '../../abstractUtxoCoin';
5
+ import { BaseOutput, BaseParsedTransaction, BaseParsedTransactionOutputs } from '../types';
6
+ import { IDescriptorWallet } from '../../descriptor/descriptorWallet';
7
+ type ParsedOutput = coreDescriptors.ParsedOutput;
8
+ export type RecipientOutput = Omit<ParsedOutput, 'value'> & {
9
+ value: bigint | 'max';
10
+ };
11
+ export type ParsedOutputsBigInt = BaseParsedTransactionOutputs<bigint, BaseOutput<bigint | 'max'>>;
12
+ export declare function toBaseParsedTransactionOutputsFromPsbt(psbt: utxolib.bitgo.UtxoPsbt, descriptorMap: coreDescriptors.DescriptorMap, recipients: ITransactionRecipient[], network: utxolib.Network): ParsedOutputsBigInt;
13
+ export type ParsedDescriptorTransaction<TAmount extends number | bigint> = BaseParsedTransaction<TAmount, BaseOutput<TAmount | 'max'>>;
14
+ export declare function parse(coin: AbstractUtxoCoin, wallet: IDescriptorWallet, params: ParseTransactionOptions<number | bigint>): ParsedDescriptorTransaction<bigint>;
15
+ export {};
16
+ //# sourceMappingURL=parse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../../src/transaction/descriptor/parse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,eAAe,MAAM,kCAAkC,CAAC;AAEpE,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;AAItE,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,OAAO,EAAE,OAAO,CAAC,OAAO,GACvB,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"}
@@ -0,0 +1,79 @@
1
+ import * as utxolib from '@bitgo-beta/utxo-lib';
2
+ import * as coreDescriptors from '@bitgo-beta/utxo-core/descriptor';
3
+ import { getKeySignatures, toBip32Triple, UtxoNamedKeychains } from '../../keychains';
4
+ import { getDescriptorMapFromWallet, getPolicyForEnv } from '../../descriptor';
5
+ import { fromExtendedAddressFormatToScript, toExtendedAddressFormat } from '../recipient';
6
+ import { outputDifferencesWithExpected } from '../outputDifference';
7
+ function toRecipientOutput(recipient, network) {
8
+ return {
9
+ address: recipient.address,
10
+ value: recipient.amount === 'max' ? 'max' : BigInt(recipient.amount),
11
+ script: fromExtendedAddressFormatToScript(recipient.address, network),
12
+ };
13
+ }
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);
18
+ return {
19
+ outputs: parsed.outputs,
20
+ changeOutputs,
21
+ ...outputDiffs,
22
+ };
23
+ }
24
+ function sumValues(arr) {
25
+ return arr.reduce((sum, e) => sum + e.value, BigInt(0));
26
+ }
27
+ function toBaseOutputs(outputs, network) {
28
+ return outputs.map((o) => ({
29
+ address: toExtendedAddressFormat(o.script, network),
30
+ amount: o.value === 'max' ? 'max' : BigInt(o.value),
31
+ external: o.scriptId === undefined,
32
+ }));
33
+ }
34
+ function toBaseParsedTransactionOutputs({ outputs, changeOutputs, explicitOutputs, implicitOutputs, missingOutputs }, network) {
35
+ const explicitExternalOutputs = explicitOutputs.filter((o) => o.scriptId === undefined);
36
+ const implicitExternalOutputs = implicitOutputs.filter((o) => o.scriptId === undefined);
37
+ return {
38
+ outputs: toBaseOutputs(outputs, network),
39
+ changeOutputs: toBaseOutputs(changeOutputs, network),
40
+ explicitExternalOutputs: toBaseOutputs(explicitExternalOutputs, network),
41
+ explicitExternalSpendAmount: sumValues(explicitExternalOutputs),
42
+ implicitExternalOutputs: toBaseOutputs(implicitExternalOutputs, network),
43
+ implicitExternalSpendAmount: sumValues(implicitExternalOutputs),
44
+ missingOutputs: toBaseOutputs(missingOutputs, network),
45
+ };
46
+ }
47
+ export function toBaseParsedTransactionOutputsFromPsbt(psbt, descriptorMap, recipients, network) {
48
+ return toBaseParsedTransactionOutputs(parseOutputsWithPsbt(psbt, descriptorMap, recipients.map((r) => toRecipientOutput(r, psbt.network))), network);
49
+ }
50
+ export function parse(coin, wallet, params) {
51
+ if (params.txParams.allowExternalChangeAddress) {
52
+ throw new Error('allowExternalChangeAddress is not supported for descriptor wallets');
53
+ }
54
+ if (params.txParams.changeAddress) {
55
+ throw new Error('changeAddress is not supported for descriptor wallets');
56
+ }
57
+ const keychains = params.verification?.keychains;
58
+ if (!keychains || !UtxoNamedKeychains.is(keychains)) {
59
+ throw new Error('keychain is required for descriptor wallets');
60
+ }
61
+ const { recipients } = params.txParams;
62
+ if (!recipients) {
63
+ throw new Error('recipients is required');
64
+ }
65
+ 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');
68
+ }
69
+ const walletKeys = toBip32Triple(keychains);
70
+ const descriptorMap = getDescriptorMapFromWallet(wallet, walletKeys, getPolicyForEnv(params.wallet.bitgo.env));
71
+ return {
72
+ ...toBaseParsedTransactionOutputsFromPsbt(psbt, descriptorMap, recipients, psbt.network),
73
+ keychains,
74
+ keySignatures: getKeySignatures(wallet) ?? {},
75
+ customChange: undefined,
76
+ needsCustomChangeKeySignatureVerification: false,
77
+ };
78
+ }
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vZGVzY3JpcHRvci9wYXJzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLHNCQUFzQixDQUFDO0FBRWhELE9BQU8sS0FBSyxlQUFlLE1BQU0sa0NBQWtDLENBQUM7QUFJcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3RGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUUvRSxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUYsT0FBTyxFQUFFLDZCQUE2QixFQUFnQyxNQUFNLHFCQUFxQixDQUFDO0FBUWxHLFNBQVMsaUJBQWlCLENBQUMsU0FBZ0MsRUFBRSxPQUF3QjtJQUNuRixPQUFPO1FBQ0wsT0FBTyxFQUFFLFNBQVMsQ0FBQyxPQUFPO1FBQzFCLEtBQUssRUFBRSxTQUFTLENBQUMsTUFBTSxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQztRQUNwRSxNQUFNLEVBQUUsaUNBQWlDLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUM7S0FDdEUsQ0FBQztBQUNKLENBQUM7QUFRRCxTQUFTLG9CQUFvQixDQUMzQixJQUE0QixFQUM1QixhQUE0QyxFQUM1QyxnQkFBbUM7SUFFbkMsTUFBTSxNQUFNLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4RSxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFB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RUFBRSxLQUFLO0tBQ2pELENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5pbXBvcnQgeyBJVHJhbnNhY3Rpb25SZWNpcGllbnQgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgKiBhcyBjb3JlRGVzY3JpcHRvcnMgZnJvbSAnQGJpdGdvLWJldGEvdXR4by1jb3JlL2Rlc2NyaXB0b3InO1xuXG5pbXBvcnQgeyBBYnN0cmFjdFV0eG9Db2luLCBQYXJzZVRyYW5zYWN0aW9uT3B0aW9ucyB9IGZyb20gJy4uLy4uL2Fic3RyYWN0VXR4b0NvaW4nO1xuaW1wb3J0IHsgQmFzZU91dHB1dCwgQmFzZVBhcnNlZFRyYW5zYWN0aW9uLCBCYXNlUGFyc2VkVHJhbnNhY3Rpb25PdXRwdXRzIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgZ2V0S2V5U2lnbmF0dXJlcywgdG9CaXAzMlRyaXBsZSwgVXR4b05hbWVkS2V5Y2hhaW5zIH0gZnJvbSAnLi4vLi4va2V5Y2hhaW5zJztcbmltcG9ydCB7IGdldERlc2NyaXB0b3JNYXBGcm9tV2FsbGV0LCBnZXRQb2xpY3lGb3JFbnYgfSBmcm9tICcuLi8uLi9kZXNjcmlwdG9yJztcbmltcG9ydCB7IElEZXNjcmlwdG9yV2FsbGV0IH0gZnJvbSAnLi4vLi4vZGVzY3JpcHRvci9kZXNjcmlwdG9yV2FsbGV0JztcbmltcG9ydCB7IGZyb21FeHRlbmRlZEFkZHJlc3NGb3JtYXRUb1NjcmlwdCwgdG9FeHRlbmRlZEFkZHJlc3NGb3JtYXQgfSBmcm9tICcuLi9yZWNpcGllbnQnO1xuaW1wb3J0IHsgb3V0cHV0RGlmZmVyZW5jZXNXaXRoRXhwZWN0ZWQsIE91dHB1dERpZmZlcmVuY2VXaXRoRXhwZWN0ZWQgfSBmcm9tICcuLi9vdXRwdXREaWZmZXJlbmNlJztcblxudHlwZSBQYXJzZWRPdXRwdXQgPSBjb3JlRGVzY3JpcHRvcnMuUGFyc2VkT3V0cHV0O1xuXG5leHBvcnQgdHlwZSBSZWNpcGllbnRPdXRwdXQgPSBPbWl0PFBhcnNlZE91dHB1dCwgJ3ZhbHVlJz4gJiB7XG4gIHZhbHVlOiBiaWdpbnQgfCAnbWF4Jztcbn07XG5cbmZ1bmN0aW9uIHRvUmVjaXBpZW50T3V0cHV0KHJlY2lwaWVudDogSVRyYW5zYWN0aW9uUmVjaXBpZW50LCBuZXR3b3JrOiB1dHhvbGliLk5ldHdvcmspOiBSZWNpcGllbnRPdXRwdXQge1xuICByZXR1cm4ge1xuICAgIGFkZHJlc3M6IHJlY2lwaWVudC5hZGRyZXNzLFxuICAgIHZhbHVlOiByZWNpcGllbnQuYW1vdW50ID09PSAnbWF4JyA/ICdtYXgnIDogQmlnSW50KHJlY2lwaWVudC5hbW91bnQpLFxuICAgIHNjcmlwdDogZnJvbUV4dGVuZGVkQWRkcmVzc0Zvcm1hdFRvU2NyaXB0KHJlY2lwaWVudC5hZGRyZXNzLCBuZXR3b3JrKSxcbiAgfTtcbn1cblxuLy8gVE9ETyhCVEMtMTY5Nyk6IGFsbG93IG91dHB1dHMgd2l0aCBgdmFsdWU6ICdtYXgnYCBoZXJlXG50eXBlIFBhcnNlZE91dHB1dHMgPSBPdXRwdXREaWZmZXJlbmNlV2l0aEV4cGVjdGVkPFBhcnNlZE91dHB1dCwgUmVjaXBpZW50T3V0cHV0PiAmIHtcbiAgb3V0cHV0czogUGFyc2VkT3V0cHV0W107XG4gIGNoYW5nZU91dHB1dHM6IFBhcnNlZE91dHB1dFtdO1xufTtcblxuZnVuY3Rpb24gcGFyc2VPdXRwdXRzV2l0aFBzYnQoXG4gIHBzYnQ6IHV0eG9saWIuYml0Z28uVXR4b1BzYnQsXG4gIGRlc2NyaXB0b3JNYXA6IGNvcmVEZXNjcmlwdG9ycy5EZXNjcmlwdG9yTWFwLFxuICByZWNpcGllbnRPdXRwdXRzOiBSZWNpcGllbnRPdXRwdXRbXVxuKTogUGFyc2VkT3V0cHV0cyB7XG4gIGNvbnN0IHBhcnNlZCA9IGNvcmVEZXNjcmlwdG9ycy5wYXJzZShwc2J0LCBkZXNjcmlwdG9yTWFwLCBwc2J0Lm5ldHdvcmspO1xuICBjb25zdCBjaGFuZ2VPdXRwdXRzID0gcGFyc2VkLm91dHB1dHMuZmlsdGVyKChvKSA9PiBvLnNjcmlwdElkICE9PSB1bmRlZmluZWQpO1xuICBjb25zdCBvdXRwdXREaWZmcyA9IG91dHB1dERpZmZlcmVuY2VzV2l0aEV4cGVjdGVkKHBhcnNlZC5vdXRwdXRzLCByZWNpcGllbnRPdXRwdXRzKTtcbiAgcmV0dXJuIHtcbiAgICBvdXRwdXRzOiBwYXJzZWQub3V0cHV0cyxcbiAgICBjaGFuZ2VPdXRwdXRzLFxuICAgIC4uLm91dHB1dERpZmZzLFxuICB9O1xufVxuXG5mdW5jdGlvbiBzdW1WYWx1ZXMoYXJyOiB7IHZhbHVlOiBiaWdpbnQgfVtdKTogYmlnaW50IHtcbiAgcmV0dXJuIGFyci5yZWR1Y2UoKHN1bSwgZSkgPT4gc3VtICsgZS52YWx1ZSwgQmlnSW50KDApKTtcbn1cblxuZnVuY3Rpb24gdG9CYXNlT3V0cHV0cyhvdXRwdXRzOiBQYXJzZWRPdXRwdXRbXSwgbmV0d29yazogdXR4b2xpYi5OZXR3b3JrKTogQmFzZU91dHB1dDxiaWdpbnQ+W107XG5mdW5jdGlvbiB0b0Jhc2VPdXRwdXRzKG91dHB1dHM6IFJlY2lwaWVudE91dHB1dFtdLCBuZXR3b3JrOiB1dHhvbGliLk5ldHdvcmspOiBCYXNlT3V0cHV0PGJpZ2ludCB8ICdtYXgnPltdO1xuZnVuY3Rpb24gdG9CYXNlT3V0cHV0cyhcbiAgb3V0cHV0czogKFBhcnNlZE91dHB1dCB8IFJlY2lwaWVudE91dHB1dClbXSxcbiAgbmV0d29yazogdXR4b2xpYi5OZXR3b3JrXG4pOiBCYXNlT3V0cHV0PGJpZ2ludCB8ICdtYXgnPltdIHtcbiAgcmV0dXJuIG91dHB1dHMubWFwKFxuICAgIChvKTogQmFzZU91dHB1dDxiaWdpbnQgfCAnbWF4Jz4gPT4gKHtcbiAgICAgIGFkZHJlc3M6IHRvRXh0ZW5kZWRBZGRyZXNzRm9ybWF0KG8uc2NyaXB0LCBuZXR3b3JrKSxcbiAgICAgIGFtb3VudDogby52YWx1ZSA9PT0gJ21heCcgPyAnbWF4JyA6IEJpZ0ludChvLnZhbHVlKSxcbiAgICAgIGV4dGVybmFsOiBvLnNjcmlwdElkID09PSB1bmRlZmluZWQsXG4gICAgfSlcbiAgKTtcbn1cblxuZXhwb3J0IHR5cGUgUGFyc2VkT3V0cHV0c0JpZ0ludCA9IEJhc2VQYXJzZWRUcmFuc2FjdGlvbk91dHB1dHM8YmlnaW50LCBCYXNlT3V0cHV0PGJpZ2ludCB8ICdtYXgnPj47XG5cbmZ1bmN0aW9uIHRvQmFzZVBhcnNlZFRyYW5zYWN0aW9uT3V0cHV0cyhcbiAgeyBvdXRwdXRzLCBjaGFuZ2VPdXRwdXRzLCBleHBsaWNpdE91dHB1dHMsIGltcGxpY2l0T3V0cHV0cywgbWlzc2luZ091dHB1dHMgfTogUGFyc2VkT3V0cHV0cyxcbiAgbmV0d29yazogdXR4b2xpYi5OZXR3b3JrXG4pOiBQYXJzZWRPdXRwdXRzQmlnSW50IHtcbiAgY29uc3QgZXhwbGljaXRFeHRlcm5hbE91dHB1dHMgPSBleHBsaWNpdE91dHB1dHMuZmlsdGVyKChvKSA9PiBvLnNjcmlwdElkID09PSB1bmRlZmluZWQpO1xuICBjb25zdCBpbXBsaWNpdEV4dGVybmFsT3V0cHV0cyA9IGltcGxpY2l0T3V0cHV0cy5maWx0ZXIoKG8pID0+IG8uc2NyaXB0SWQgPT09IHVuZGVmaW5lZCk7XG4gIHJldHVybiB7XG4gICAgb3V0cHV0czogdG9CYXNlT3V0cHV0cyhvdXRwdXRzLCBuZXR3b3JrKSxcbiAgICBjaGFuZ2VPdXRwdXRzOiB0b0Jhc2VPdXRwdXRzKGNoYW5nZU91dHB1dHMsIG5ldHdvcmspLFxuICAgIGV4cGxpY2l0RXh0ZXJuYWxPdXRwdXRzOiB0b0Jhc2VPdXRwdXRzKGV4cGxpY2l0RXh0ZXJuYWxPdXRwdXRzLCBuZXR3b3JrKSxcbiAgICBleHBsaWNpdEV4dGVybmFsU3BlbmRBbW91bnQ6IHN1bVZhbHVlcyhleHBsaWNpdEV4dGVybmFsT3V0cHV0cyksXG4gICAgaW1wbGljaXRFeHRlcm5hbE91dHB1dHM6IHRvQmFzZU91dHB1dHMoaW1wbGljaXRFeHRlcm5hbE91dHB1dHMsIG5ldHdvcmspLFxuICAgIGltcGxpY2l0RXh0ZXJuYWxTcGVuZEFtb3VudDogc3VtVmFsdWVzKGltcGxpY2l0RXh0ZXJuYWxPdXRwdXRzKSxcbiAgICBtaXNzaW5nT3V0cHV0czogdG9CYXNlT3V0cHV0cyhtaXNzaW5nT3V0cHV0cywgbmV0d29yayksXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b0Jhc2VQYXJzZWRUcmFuc2FjdGlvbk91dHB1dHNGcm9tUHNidChcbiAgcHNidDogdXR4b2xpYi5iaXRnby5VdHhvUHNidCxcbiAgZGVzY3JpcHRvck1hcDogY29yZURlc2NyaXB0b3JzLkRlc2NyaXB0b3JNYXAsXG4gIHJlY2lwaWVudHM6IElUcmFuc2FjdGlvblJlY2lwaWVudFtdLFxuICBuZXR3b3JrOiB1dHhvbGliLk5ldHdvcmtcbik6IFBhcnNlZE91dHB1dHNCaWdJbnQge1xuICByZXR1cm4gdG9CYXNlUGFyc2VkVHJhbnNhY3Rpb25PdXRwdXRzKFxuICAgIHBhcnNlT3V0cHV0c1dpdGhQc2J0KFxuICAgICAgcHNidCxcbiAgICAgIGRlc2NyaXB0b3JNYXAsXG4gICAgICByZWNpcGllbnRzLm1hcCgocikgPT4gdG9SZWNpcGllbnRPdXRwdXQociwgcHNidC5uZXR3b3JrKSlcbiAgICApLFxuICAgIG5ldHdvcmtcbiAgKTtcbn1cblxuZXhwb3J0IHR5cGUgUGFyc2VkRGVzY3JpcHRvclRyYW5zYWN0aW9uPFRBbW91bnQgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQ+ID0gQmFzZVBhcnNlZFRyYW5zYWN0aW9uPFxuICBUQW1vdW50LFxuICBCYXNlT3V0cHV0PFRBbW91bnQgfCAnbWF4Jz5cbj47XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZShcbiAgY29pbjogQWJzdHJhY3RVdHhvQ29pbixcbiAgd2FsbGV0OiBJRGVzY3JpcHRvcldhbGxldCxcbiAgcGFyYW1zOiBQYXJzZVRyYW5zYWN0aW9uT3B0aW9uczxudW1iZXIgfCBiaWdpbnQ+XG4pOiBQYXJzZWREZXNjcmlwdG9yVHJhbnNhY3Rpb248YmlnaW50PiB7XG4gIGlmIChwYXJhbXMudHhQYXJhbXMuYWxsb3dFeHRlcm5hbENoYW5nZUFkZHJlc3MpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2FsbG93RXh0ZXJuYWxDaGFuZ2VBZGRyZXNzIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIGRlc2NyaXB0b3Igd2FsbGV0cycpO1xuICB9XG4gIGlmIChwYXJhbXMudHhQYXJhbXMuY2hhbmdlQWRkcmVzcykge1xuICAgIHRocm93IG5ldyBFcnJvcignY2hhbmdlQWRkcmVzcyBpcyBub3Qgc3VwcG9ydGVkIGZvciBkZXNjcmlwdG9yIHdhbGxldHMnKTtcbiAgfVxuICBjb25zdCBrZXljaGFpbnMgPSBwYXJhbXMudmVyaWZpY2F0aW9uPy5rZXljaGFpbnM7XG4gIGlmICgha2V5Y2hhaW5zIHx8ICFVdHhvTmFtZWRLZXljaGFpbnMuaXMoa2V5Y2hhaW5zKSkge1xuICAgIHRocm93IG5ldyBFcnJvcigna2V5Y2hhaW4gaXMgcmVxdWlyZWQgZm9yIGRlc2NyaXB0b3Igd2FsbGV0cycpO1xuICB9XG4gIGNvbnN0IHsgcmVjaXBpZW50cyB9ID0gcGFyYW1zLnR4UGFyYW1zO1xuICBpZiAoIXJlY2lwaWVudHMpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3JlY2lwaWVudHMgaXMgcmVxdWlyZWQnKTtcbiAgfVxuICBjb25zdCBwc2J0ID0gY29pbi5kZWNvZGVUcmFuc2FjdGlvbkZyb21QcmVidWlsZChwYXJhbXMudHhQcmVidWlsZCk7XG4gIGlmICghKHBzYnQgaW5zdGFuY2VvZiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0KSkge1xuICAgIHRocm93IG5ldyBFcnJvcignZXhwZWN0ZWQgcHNidCB0byBiZSBhbiBpbnN0YW5jZSBvZiBVdHhvUHNidCcpO1xuICB9XG4gIGNvbnN0IHdhbGxldEtleXMgPSB0b0JpcDMyVHJpcGxlKGtleWNoYWlucyk7XG4gIGNvbnN0IGRlc2NyaXB0b3JNYXAgPSBnZXREZXNjcmlwdG9yTWFwRnJvbVdhbGxldCh3YWxsZXQsIHdhbGxldEtleXMsIGdldFBvbGljeUZvckVudihwYXJhbXMud2FsbGV0LmJpdGdvLmVudikpO1xuICByZXR1cm4ge1xuICAgIC4uLnRvQmFzZVBhcnNlZFRyYW5zYWN0aW9uT3V0cHV0c0Zyb21Qc2J0KHBzYnQsIGRlc2NyaXB0b3JNYXAsIHJlY2lwaWVudHMsIHBzYnQubmV0d29yayksXG4gICAga2V5Y2hhaW5zLFxuICAgIGtleVNpZ25hdHVyZXM6IGdldEtleVNpZ25hdHVyZXMod2FsbGV0KSA/PyB7fSxcbiAgICBjdXN0b21DaGFuZ2U6IHVuZGVmaW5lZCxcbiAgICBuZWVkc0N1c3RvbUNoYW5nZUtleVNpZ25hdHVyZVZlcmlmaWNhdGlvbjogZmFsc2UsXG4gIH07XG59XG4iXX0=
@@ -0,0 +1,14 @@
1
+ import { AbstractUtxoCoin, ParseTransactionOptions } from '../../abstractUtxoCoin';
2
+ import { BaseOutput, BaseParsedTransaction } from '../types';
3
+ import { IDescriptorWallet } from '../../descriptor/descriptorWallet';
4
+ import { ParsedDescriptorTransaction } from './parse';
5
+ type AmountType = 'number' | 'bigint' | 'string';
6
+ export declare function toAmountType(v: number | bigint | string, t: AmountType): number | bigint | string;
7
+ type AmountTypeOptions = {
8
+ amountTypeBaseOutput: AmountType;
9
+ amountTypeAggregate: AmountType;
10
+ };
11
+ export declare function parsedDescriptorTransactionToTNumber<TAmount extends number | bigint, TOutput>(obj: ParsedDescriptorTransaction<bigint>, params: AmountTypeOptions): BaseParsedTransaction<TAmount, TOutput>;
12
+ export declare function parseToAmountType<TAmount extends number | bigint>(coin: AbstractUtxoCoin, wallet: IDescriptorWallet, params: ParseTransactionOptions<TAmount>): BaseParsedTransaction<TAmount, BaseOutput<string>>;
13
+ export {};
14
+ //# sourceMappingURL=parseToAmountType.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseToAmountType.d.ts","sourceRoot":"","sources":["../../../../src/transaction/descriptor/parseToAmountType.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE,OAAO,EAAS,2BAA2B,EAAE,MAAM,SAAS,CAAC;AAE7D,KAAK,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEjD,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAYjG;AAED,KAAK,iBAAiB,GAAG;IACvB,oBAAoB,EAAE,UAAU,CAAC;IACjC,mBAAmB,EAAE,UAAU,CAAC;CACjC,CAAC;AAyCF,wBAAgB,oCAAoC,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EAAE,OAAO,EAC3F,GAAG,EAAE,2BAA2B,CAAC,MAAM,CAAC,EACxC,MAAM,EAAE,iBAAiB,GACxB,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,CAIzC;AAED,wBAAgB,iBAAiB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EAC/D,IAAI,EAAE,gBAAgB,EACtB,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,uBAAuB,CAAC,OAAO,CAAC,GACvC,qBAAqB,CAAC,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAKpD"}
@@ -0,0 +1,55 @@
1
+ import { parse } from './parse';
2
+ export function toAmountType(v, t) {
3
+ if (v === 'max') {
4
+ return v;
5
+ }
6
+ switch (t) {
7
+ case 'number':
8
+ return Number(v);
9
+ case 'bigint':
10
+ return BigInt(v);
11
+ case 'string':
12
+ return String(v);
13
+ }
14
+ }
15
+ function baseOutputToTNumber(output, amountType) {
16
+ return {
17
+ address: output.address,
18
+ amount: toAmountType(output.amount, amountType),
19
+ external: output.external,
20
+ };
21
+ }
22
+ function entryToTNumber(k, v, params) {
23
+ switch (k) {
24
+ case 'outputs':
25
+ case 'changeOutputs':
26
+ case 'explicitExternalOutputs':
27
+ case 'implicitExternalOutputs':
28
+ case 'missingOutputs':
29
+ if (v === undefined) {
30
+ return [k, v];
31
+ }
32
+ if (Array.isArray(v)) {
33
+ return [k, v.map((o) => baseOutputToTNumber(o, params.amountTypeBaseOutput))];
34
+ }
35
+ throw new Error('expected array');
36
+ case 'explicitExternalSpendAmount':
37
+ case 'implicitExternalSpendAmount':
38
+ if (typeof v !== 'bigint') {
39
+ throw new Error('expected bigint');
40
+ }
41
+ return [k, toAmountType(v, params.amountTypeAggregate)];
42
+ default:
43
+ return [k, v];
44
+ }
45
+ }
46
+ export function parsedDescriptorTransactionToTNumber(obj, params) {
47
+ return Object.fromEntries(Object.entries(obj).map(([k, v]) => entryToTNumber(k, v, params)));
48
+ }
49
+ export function parseToAmountType(coin, wallet, params) {
50
+ return parsedDescriptorTransactionToTNumber(parse(coin, wallet, params), {
51
+ amountTypeAggregate: coin.amountType,
52
+ amountTypeBaseOutput: 'string',
53
+ });
54
+ }
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VUb0Ftb3VudFR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vZGVzY3JpcHRvci9wYXJzZVRvQW1vdW50VHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUUsS0FBSyxFQUErQixNQUFNLFNBQVMsQ0FBQztBQUk3RCxNQUFNLFVBQVUsWUFBWSxDQUFDLENBQTJCLEVBQUUsQ0FBYTtJQUNyRSxJQUFJLENBQUMsS0FBSyxLQUFLLEVBQUUsQ0FBQztRQUNoQixPQUFPLENBQUMsQ0FBQztJQUNYLENBQUM7SUFDRCxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ1YsS0FBSyxRQUFRO1lBQ1gsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkIsS0FBSyxRQUFRO1lBQ1gsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkIsS0FBSyxRQUFRO1lBQ1gsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckIsQ0FBQztBQUNILENBQUM7QUFPRCxTQUFTLG1CQUFtQixDQUMxQixNQUFrQyxFQUNsQyxVQUFzQjtJQUV0QixPQUFPO1FBQ0wsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPO1FBQ3ZCLE1BQU0sRUFBRSxZQUFZLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQVk7UUFDMUQsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRO0tBQzFCLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxjQUFjLENBR3JCLENBQUksRUFBRSxDQUFJLEVBQUUsTUFBeUI7SUFDckMsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUNWLEtBQUssU0FBUyxDQUFDO1FBQ2YsS0FBSyxlQUFlLENBQUM7UUFDckIsS0FBSyx5QkFBeUIsQ0FBQztRQUMvQixLQUFLLHlCQUF5QixDQUFDO1FBQy9CLEtBQUssZ0JBQWdCO1lBQ25CLElBQUksQ0FBQyxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUNwQixPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2hCLENBQUM7WUFDRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDckIsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQU0sQ0FBQyxDQUFDO1lBQ3JGLENBQUM7WUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDcEMsS0FBSyw2QkFBNkIsQ0FBQztRQUNuQyxLQUFLLDZCQUE2QjtZQUNoQyxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUMxQixNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDckMsQ0FBQztZQUNELE9BQU8sQ0FBQyxDQUFDLEVBQUUsWUFBWSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsbUJBQW1CLENBQU0sQ0FBQyxDQUFDO1FBQy9EO1lBQ0UsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxvQ0FBb0MsQ0FDbEQsR0FBd0MsRUFDeEMsTUFBeUI7SUFFekIsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUN2QixNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxjQUFjLENBQUMsQ0FBOEMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FDcEUsQ0FBQztBQUMvQyxDQUFDO0FBRUQsTUFBTSxVQUFVLGlCQUFpQixDQUMvQixJQUFzQixFQUN0QixNQUF5QixFQUN6QixNQUF3QztJQUV4QyxPQUFPLG9DQUFvQyxDQUE4QixLQUFLLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsRUFBRTtRQUNwRyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsVUFBVTtRQUNwQyxvQkFBb0IsRUFBRSxRQUFRO0tBQy9CLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdFV0eG9Db2luLCBQYXJzZVRyYW5zYWN0aW9uT3B0aW9ucyB9IGZyb20gJy4uLy4uL2Fic3RyYWN0VXR4b0NvaW4nO1xuaW1wb3J0IHsgQmFzZU91dHB1dCwgQmFzZVBhcnNlZFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgSURlc2NyaXB0b3JXYWxsZXQgfSBmcm9tICcuLi8uLi9kZXNjcmlwdG9yL2Rlc2NyaXB0b3JXYWxsZXQnO1xuXG5pbXBvcnQgeyBwYXJzZSwgUGFyc2VkRGVzY3JpcHRvclRyYW5zYWN0aW9uIH0gZnJvbSAnLi9wYXJzZSc7XG5cbnR5cGUgQW1vdW50VHlwZSA9ICdudW1iZXInIHwgJ2JpZ2ludCcgfCAnc3RyaW5nJztcblxuZXhwb3J0IGZ1bmN0aW9uIHRvQW1vdW50VHlwZSh2OiBudW1iZXIgfCBiaWdpbnQgfCBzdHJpbmcsIHQ6IEFtb3VudFR5cGUpOiBudW1iZXIgfCBiaWdpbnQgfCBzdHJpbmcge1xuICBpZiAodiA9PT0gJ21heCcpIHtcbiAgICByZXR1cm4gdjtcbiAgfVxuICBzd2l0Y2ggKHQpIHtcbiAgICBjYXNlICdudW1iZXInOlxuICAgICAgcmV0dXJuIE51bWJlcih2KTtcbiAgICBjYXNlICdiaWdpbnQnOlxuICAgICAgcmV0dXJuIEJpZ0ludCh2KTtcbiAgICBjYXNlICdzdHJpbmcnOlxuICAgICAgcmV0dXJuIFN0cmluZyh2KTtcbiAgfVxufVxuXG50eXBlIEFtb3VudFR5cGVPcHRpb25zID0ge1xuICBhbW91bnRUeXBlQmFzZU91dHB1dDogQW1vdW50VHlwZTtcbiAgYW1vdW50VHlwZUFnZ3JlZ2F0ZTogQW1vdW50VHlwZTtcbn07XG5cbmZ1bmN0aW9uIGJhc2VPdXRwdXRUb1ROdW1iZXI8VEFtb3VudCBleHRlbmRzIG51bWJlciB8IGJpZ2ludD4oXG4gIG91dHB1dDogQmFzZU91dHB1dDxiaWdpbnQgfCAnbWF4Jz4sXG4gIGFtb3VudFR5cGU6IEFtb3VudFR5cGVcbik6IEJhc2VPdXRwdXQ8VEFtb3VudD4ge1xuICByZXR1cm4ge1xuICAgIGFkZHJlc3M6IG91dHB1dC5hZGRyZXNzLFxuICAgIGFtb3VudDogdG9BbW91bnRUeXBlKG91dHB1dC5hbW91bnQsIGFtb3VudFR5cGUpIGFzIFRBbW91bnQsXG4gICAgZXh0ZXJuYWw6IG91dHB1dC5leHRlcm5hbCxcbiAgfTtcbn1cblxuZnVuY3Rpb24gZW50cnlUb1ROdW1iZXI8XG4gIEsgZXh0ZW5kcyBrZXlvZiBQYXJzZWREZXNjcmlwdG9yVHJhbnNhY3Rpb248YmlnaW50PixcbiAgViBleHRlbmRzIFBhcnNlZERlc2NyaXB0b3JUcmFuc2FjdGlvbjxiaWdpbnQ+W0tdXG4+KGs6IEssIHY6IFYsIHBhcmFtczogQW1vdW50VHlwZU9wdGlvbnMpOiBbSywgVl0ge1xuICBzd2l0Y2ggKGspIHtcbiAgICBjYXNlICdvdXRwdXRzJzpcbiAgICBjYXNlICdjaGFuZ2VPdXRwdXRzJzpcbiAgICBjYXNlICdleHBsaWNpdEV4dGVybmFsT3V0cHV0cyc6XG4gICAgY2FzZSAnaW1wbGljaXRFeHRlcm5hbE91dHB1dHMnOlxuICAgIGNhc2UgJ21pc3NpbmdPdXRwdXRzJzpcbiAgICAgIGlmICh2ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIFtrLCB2XTtcbiAgICAgIH1cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHYpKSB7XG4gICAgICAgIHJldHVybiBbaywgdi5tYXAoKG8pID0+IGJhc2VPdXRwdXRUb1ROdW1iZXIobywgcGFyYW1zLmFtb3VudFR5cGVCYXNlT3V0cHV0KSkgYXMgVl07XG4gICAgICB9XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2V4cGVjdGVkIGFycmF5Jyk7XG4gICAgY2FzZSAnZXhwbGljaXRFeHRlcm5hbFNwZW5kQW1vdW50JzpcbiAgICBjYXNlICdpbXBsaWNpdEV4dGVybmFsU3BlbmRBbW91bnQnOlxuICAgICAgaWYgKHR5cGVvZiB2ICE9PSAnYmlnaW50Jykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2V4cGVjdGVkIGJpZ2ludCcpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIFtrLCB0b0Ftb3VudFR5cGUodiwgcGFyYW1zLmFtb3VudFR5cGVBZ2dyZWdhdGUpIGFzIFZdO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gW2ssIHZdO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZWREZXNjcmlwdG9yVHJhbnNhY3Rpb25Ub1ROdW1iZXI8VEFtb3VudCBleHRlbmRzIG51bWJlciB8IGJpZ2ludCwgVE91dHB1dD4oXG4gIG9iajogUGFyc2VkRGVzY3JpcHRvclRyYW5zYWN0aW9uPGJpZ2ludD4sXG4gIHBhcmFtczogQW1vdW50VHlwZU9wdGlvbnNcbik6IEJhc2VQYXJzZWRUcmFuc2FjdGlvbjxUQW1vdW50LCBUT3V0cHV0PiB7XG4gIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgT2JqZWN0LmVudHJpZXMob2JqKS5tYXAoKFtrLCB2XSkgPT4gZW50cnlUb1ROdW1iZXIoayBhcyBrZXlvZiBQYXJzZWREZXNjcmlwdG9yVHJhbnNhY3Rpb248YmlnaW50PiwgdiwgcGFyYW1zKSlcbiAgKSBhcyBCYXNlUGFyc2VkVHJhbnNhY3Rpb248VEFtb3VudCwgVE91dHB1dD47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVRvQW1vdW50VHlwZTxUQW1vdW50IGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50PihcbiAgY29pbjogQWJzdHJhY3RVdHhvQ29pbixcbiAgd2FsbGV0OiBJRGVzY3JpcHRvcldhbGxldCxcbiAgcGFyYW1zOiBQYXJzZVRyYW5zYWN0aW9uT3B0aW9uczxUQW1vdW50PlxuKTogQmFzZVBhcnNlZFRyYW5zYWN0aW9uPFRBbW91bnQsIEJhc2VPdXRwdXQ8c3RyaW5nPj4ge1xuICByZXR1cm4gcGFyc2VkRGVzY3JpcHRvclRyYW5zYWN0aW9uVG9UTnVtYmVyPFRBbW91bnQsIEJhc2VPdXRwdXQ8c3RyaW5nPj4ocGFyc2UoY29pbiwgd2FsbGV0LCBwYXJhbXMpLCB7XG4gICAgYW1vdW50VHlwZUFnZ3JlZ2F0ZTogY29pbi5hbW91bnRUeXBlLFxuICAgIGFtb3VudFR5cGVCYXNlT3V0cHV0OiAnc3RyaW5nJyxcbiAgfSk7XG59XG4iXX0=
@@ -0,0 +1,5 @@
1
+ export type Recipient = {
2
+ address: string;
3
+ amount: bigint;
4
+ };
5
+ //# sourceMappingURL=recipient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recipient.d.ts","sourceRoot":"","sources":["../../../../src/transaction/descriptor/recipient.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjaXBpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL2Rlc2NyaXB0b3IvcmVjaXBpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBSZWNpcGllbnQgPSB7XG4gIGFkZHJlc3M6IHN0cmluZztcbiAgYW1vdW50OiBiaWdpbnQ7XG59O1xuIl19
@@ -0,0 +1,25 @@
1
+ import * as utxolib from '@bitgo-beta/utxo-lib';
2
+ import { DescriptorMap } from '@bitgo-beta/utxo-core/descriptor';
3
+ export declare class ErrorUnknownInput extends Error {
4
+ vin: number;
5
+ constructor(vin: number);
6
+ }
7
+ /**
8
+ * Sign a PSBT with the given keychain.
9
+ *
10
+ * Checks the descriptor map for each input in the PSBT. If the input is not
11
+ * found in the descriptor map, the behavior is determined by the `onUnknownInput`
12
+ * parameter.
13
+ *
14
+ *
15
+ * @param tx - psbt to sign
16
+ * @param descriptorMap - map of input index to descriptor
17
+ * @param signerKeychain - key to sign with
18
+ * @param params - onUnknownInput: 'throw' | 'skip' | 'sign'.
19
+ * Determines what to do when an input is not found in the
20
+ * descriptor map.
21
+ */
22
+ export declare function signPsbt(tx: utxolib.Psbt, descriptorMap: DescriptorMap, signerKeychain: utxolib.BIP32Interface, params: {
23
+ onUnknownInput: 'throw' | 'skip' | 'sign';
24
+ }): void;
25
+ //# sourceMappingURL=signPsbt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signPsbt.d.ts","sourceRoot":"","sources":["../../../../src/transaction/descriptor/signPsbt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,aAAa,EAA0B,MAAM,kCAAkC,CAAC;AAEzF,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"}
@@ -0,0 +1,38 @@
1
+ import { findDescriptorForInput } from '@bitgo-beta/utxo-core/descriptor';
2
+ export class ErrorUnknownInput extends Error {
3
+ constructor(vin) {
4
+ super(`missing descriptor for input ${vin}`);
5
+ this.vin = vin;
6
+ }
7
+ }
8
+ /**
9
+ * Sign a PSBT with the given keychain.
10
+ *
11
+ * Checks the descriptor map for each input in the PSBT. If the input is not
12
+ * found in the descriptor map, the behavior is determined by the `onUnknownInput`
13
+ * parameter.
14
+ *
15
+ *
16
+ * @param tx - psbt to sign
17
+ * @param descriptorMap - map of input index to descriptor
18
+ * @param signerKeychain - key to sign with
19
+ * @param params - onUnknownInput: 'throw' | 'skip' | 'sign'.
20
+ * Determines what to do when an input is not found in the
21
+ * descriptor map.
22
+ */
23
+ export function signPsbt(tx, descriptorMap, signerKeychain, params) {
24
+ for (const [vin, input] of tx.data.inputs.entries()) {
25
+ if (!findDescriptorForInput(input, descriptorMap)) {
26
+ switch (params.onUnknownInput) {
27
+ case 'skip':
28
+ continue;
29
+ case 'throw':
30
+ throw new ErrorUnknownInput(vin);
31
+ case 'sign':
32
+ break;
33
+ }
34
+ }
35
+ tx.signInputHD(vin, signerKeychain);
36
+ }
37
+ }
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnblBzYnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vZGVzY3JpcHRvci9zaWduUHNidC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQWlCLHNCQUFzQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFekYsTUFBTSxPQUFPLGlCQUFrQixTQUFRLEtBQUs7SUFDMUMsWUFBbUIsR0FBVztRQUM1QixLQUFLLENBQUMsZ0NBQWdDLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFENUIsUUFBRyxHQUFILEdBQUcsQ0FBUTtJQUU5QixDQUFDO0NBQ0Y7QUFFRDs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE1BQU0sVUFBVSxRQUFRLENBQ3RCLEVBQWdCLEVBQ2hCLGFBQTRCLEVBQzVCLGNBQXNDLEVBQ3RDLE1BRUM7SUFFRCxLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztRQUNwRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxFQUFFLGFBQWEsQ0FBQyxFQUFFLENBQUM7WUFDbEQsUUFBUSxNQUFNLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQzlCLEtBQUssTUFBTTtvQkFDVCxTQUFTO2dCQUNYLEtBQUssT0FBTztvQkFDVixNQUFNLElBQUksaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ25DLEtBQUssTUFBTTtvQkFDVCxNQUFNO1lBQ1YsQ0FBQztRQUNILENBQUM7UUFDRCxFQUFFLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUN0QyxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuaW1wb3J0IHsgRGVzY3JpcHRvck1hcCwgZmluZERlc2NyaXB0b3JGb3JJbnB1dCB9IGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tY29yZS9kZXNjcmlwdG9yJztcblxuZXhwb3J0IGNsYXNzIEVycm9yVW5rbm93bklucHV0IGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgdmluOiBudW1iZXIpIHtcbiAgICBzdXBlcihgbWlzc2luZyBkZXNjcmlwdG9yIGZvciBpbnB1dCAke3Zpbn1gKTtcbiAgfVxufVxuXG4vKipcbiAqIFNpZ24gYSBQU0JUIHdpdGggdGhlIGdpdmVuIGtleWNoYWluLlxuICpcbiAqIENoZWNrcyB0aGUgZGVzY3JpcHRvciBtYXAgZm9yIGVhY2ggaW5wdXQgaW4gdGhlIFBTQlQuIElmIHRoZSBpbnB1dCBpcyBub3RcbiAqIGZvdW5kIGluIHRoZSBkZXNjcmlwdG9yIG1hcCwgdGhlIGJlaGF2aW9yIGlzIGRldGVybWluZWQgYnkgdGhlIGBvblVua25vd25JbnB1dGBcbiAqIHBhcmFtZXRlci5cbiAqXG4gKlxuICogQHBhcmFtIHR4IC0gcHNidCB0byBzaWduXG4gKiBAcGFyYW0gZGVzY3JpcHRvck1hcCAtIG1hcCBvZiBpbnB1dCBpbmRleCB0byBkZXNjcmlwdG9yXG4gKiBAcGFyYW0gc2lnbmVyS2V5Y2hhaW4gLSBrZXkgdG8gc2lnbiB3aXRoXG4gKiBAcGFyYW0gcGFyYW1zIC0gb25Vbmtub3duSW5wdXQ6ICd0aHJvdycgfCAnc2tpcCcgfCAnc2lnbicuXG4gKiAgICAgICAgICAgICAgICAgRGV0ZXJtaW5lcyB3aGF0IHRvIGRvIHdoZW4gYW4gaW5wdXQgaXMgbm90IGZvdW5kIGluIHRoZVxuICogICAgICAgICAgICAgICAgIGRlc2NyaXB0b3IgbWFwLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2lnblBzYnQoXG4gIHR4OiB1dHhvbGliLlBzYnQsXG4gIGRlc2NyaXB0b3JNYXA6IERlc2NyaXB0b3JNYXAsXG4gIHNpZ25lcktleWNoYWluOiB1dHhvbGliLkJJUDMySW50ZXJmYWNlLFxuICBwYXJhbXM6IHtcbiAgICBvblVua25vd25JbnB1dDogJ3Rocm93JyB8ICdza2lwJyB8ICdzaWduJztcbiAgfVxuKTogdm9pZCB7XG4gIGZvciAoY29uc3QgW3ZpbiwgaW5wdXRdIG9mIHR4LmRhdGEuaW5wdXRzLmVudHJpZXMoKSkge1xuICAgIGlmICghZmluZERlc2NyaXB0b3JGb3JJbnB1dChpbnB1dCwgZGVzY3JpcHRvck1hcCkpIHtcbiAgICAgIHN3aXRjaCAocGFyYW1zLm9uVW5rbm93bklucHV0KSB7XG4gICAgICAgIGNhc2UgJ3NraXAnOlxuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBjYXNlICd0aHJvdyc6XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yVW5rbm93bklucHV0KHZpbik7XG4gICAgICAgIGNhc2UgJ3NpZ24nOlxuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICB0eC5zaWduSW5wdXRIRCh2aW4sIHNpZ25lcktleWNoYWluKTtcbiAgfVxufVxuIl19