@bitgo-beta/abstract-utxo 1.1.1-beta.232 → 1.1.1-beta.2321

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 (928) hide show
  1. package/README.md +76 -0
  2. package/dist/cjs/src/abstractUtxoCoin.d.ts +466 -0
  3. package/dist/cjs/src/abstractUtxoCoin.d.ts.map +1 -0
  4. package/dist/cjs/src/abstractUtxoCoin.js +644 -0
  5. package/dist/cjs/src/address/fixedScript.d.ts +44 -0
  6. package/dist/cjs/src/address/fixedScript.d.ts.map +1 -0
  7. package/dist/cjs/src/address/fixedScript.js +109 -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/deriveKeyWithSeed.d.ts +12 -0
  14. package/dist/cjs/src/deriveKeyWithSeed.d.ts.map +1 -0
  15. package/dist/cjs/src/deriveKeyWithSeed.js +17 -0
  16. package/dist/cjs/src/descriptor/NamedDescriptor.d.ts +19 -0
  17. package/dist/cjs/src/descriptor/NamedDescriptor.d.ts.map +1 -0
  18. package/dist/cjs/src/descriptor/NamedDescriptor.js +77 -0
  19. package/dist/cjs/src/descriptor/assertDescriptorWalletAddress.d.ts +5 -0
  20. package/dist/cjs/src/descriptor/assertDescriptorWalletAddress.d.ts.map +1 -0
  21. package/dist/cjs/src/descriptor/assertDescriptorWalletAddress.js +32 -0
  22. package/dist/cjs/src/descriptor/builder/builder.d.ts +17 -0
  23. package/dist/cjs/src/descriptor/builder/builder.d.ts.map +1 -0
  24. package/dist/cjs/src/descriptor/builder/builder.js +54 -0
  25. package/dist/cjs/src/descriptor/builder/index.d.ts +3 -0
  26. package/dist/cjs/src/descriptor/builder/index.d.ts.map +1 -0
  27. package/dist/cjs/src/descriptor/builder/index.js +8 -0
  28. package/dist/cjs/src/descriptor/builder/parse.d.ts +5 -0
  29. package/dist/cjs/src/descriptor/builder/parse.d.ts.map +1 -0
  30. package/dist/cjs/src/descriptor/builder/parse.js +148 -0
  31. package/dist/cjs/src/descriptor/createWallet/createDescriptorWallet.d.ts +20 -0
  32. package/dist/cjs/src/descriptor/createWallet/createDescriptorWallet.d.ts.map +1 -0
  33. package/dist/cjs/src/descriptor/createWallet/createDescriptorWallet.js +41 -0
  34. package/dist/cjs/src/descriptor/createWallet/createDescriptors.d.ts +12 -0
  35. package/dist/cjs/src/descriptor/createWallet/createDescriptors.d.ts.map +1 -0
  36. package/dist/cjs/src/descriptor/createWallet/createDescriptors.js +33 -0
  37. package/dist/cjs/src/descriptor/createWallet/index.d.ts +3 -0
  38. package/dist/cjs/src/descriptor/createWallet/index.d.ts.map +1 -0
  39. package/dist/cjs/src/descriptor/createWallet/index.js +19 -0
  40. package/dist/cjs/src/descriptor/descriptorWallet.d.ts +19 -0
  41. package/dist/cjs/src/descriptor/descriptorWallet.d.ts.map +1 -0
  42. package/dist/cjs/src/descriptor/descriptorWallet.js +54 -0
  43. package/dist/cjs/src/descriptor/index.d.ts +9 -0
  44. package/dist/cjs/src/descriptor/index.d.ts.map +1 -0
  45. package/dist/cjs/src/descriptor/index.js +53 -0
  46. package/dist/cjs/src/descriptor/validatePolicy.d.ts +22 -0
  47. package/dist/cjs/src/descriptor/validatePolicy.d.ts.map +1 -0
  48. package/dist/cjs/src/descriptor/validatePolicy.js +94 -0
  49. package/dist/cjs/src/impl/bch/bch.d.ts +36 -0
  50. package/dist/cjs/src/impl/bch/bch.d.ts.map +1 -0
  51. package/dist/cjs/src/impl/bch/bch.js +67 -0
  52. package/dist/cjs/src/impl/bch/index.d.ts +3 -0
  53. package/dist/cjs/src/impl/bch/index.d.ts.map +1 -0
  54. package/dist/cjs/src/impl/bch/index.js +19 -0
  55. package/dist/cjs/src/impl/bch/tbch.d.ts +12 -0
  56. package/dist/cjs/src/impl/bch/tbch.d.ts.map +1 -0
  57. package/dist/cjs/src/impl/bch/tbch.js +15 -0
  58. package/dist/cjs/src/impl/bcha/bcha.d.ts +9 -0
  59. package/dist/cjs/src/impl/bcha/bcha.d.ts.map +1 -0
  60. package/dist/cjs/src/impl/bcha/bcha.js +15 -0
  61. package/dist/cjs/src/impl/bcha/index.d.ts +3 -0
  62. package/dist/cjs/src/impl/bcha/index.d.ts.map +1 -0
  63. package/dist/cjs/src/impl/bcha/index.js +19 -0
  64. package/dist/cjs/src/impl/bcha/tbcha.d.ts +12 -0
  65. package/dist/cjs/src/impl/bcha/tbcha.d.ts.map +1 -0
  66. package/dist/cjs/src/impl/bcha/tbcha.js +15 -0
  67. package/dist/cjs/src/impl/bsv/bsv.d.ts +9 -0
  68. package/dist/cjs/src/impl/bsv/bsv.d.ts.map +1 -0
  69. package/dist/cjs/src/impl/bsv/bsv.js +15 -0
  70. package/dist/cjs/src/impl/bsv/index.d.ts +3 -0
  71. package/dist/cjs/src/impl/bsv/index.d.ts.map +1 -0
  72. package/dist/cjs/src/impl/bsv/index.js +19 -0
  73. package/dist/cjs/src/impl/bsv/tbsv.d.ts +12 -0
  74. package/dist/cjs/src/impl/bsv/tbsv.d.ts.map +1 -0
  75. package/dist/cjs/src/impl/bsv/tbsv.js +15 -0
  76. package/dist/cjs/src/impl/btc/btc.d.ts +15 -0
  77. package/dist/cjs/src/impl/btc/btc.d.ts.map +1 -0
  78. package/dist/cjs/src/impl/btc/btc.js +22 -0
  79. package/dist/cjs/src/impl/btc/index.d.ts +10 -0
  80. package/dist/cjs/src/impl/btc/index.d.ts.map +1 -0
  81. package/dist/cjs/src/impl/btc/index.js +26 -0
  82. package/dist/cjs/src/impl/btc/inscriptionBuilder.d.ts +61 -0
  83. package/dist/cjs/src/impl/btc/inscriptionBuilder.d.ts.map +1 -0
  84. package/dist/cjs/src/impl/btc/inscriptionBuilder.js +170 -0
  85. package/dist/cjs/src/impl/btc/tbtc.d.ts +12 -0
  86. package/dist/cjs/src/impl/btc/tbtc.d.ts.map +1 -0
  87. package/dist/cjs/src/impl/btc/tbtc.js +15 -0
  88. package/dist/cjs/src/impl/btc/tbtc4.d.ts +12 -0
  89. package/dist/cjs/src/impl/btc/tbtc4.d.ts.map +1 -0
  90. package/dist/cjs/src/impl/btc/tbtc4.js +15 -0
  91. package/dist/cjs/src/impl/btc/tbtcbgsig.d.ts +12 -0
  92. package/dist/cjs/src/impl/btc/tbtcbgsig.d.ts.map +1 -0
  93. package/dist/cjs/src/impl/btc/tbtcbgsig.js +15 -0
  94. package/dist/cjs/src/impl/btc/tbtcsig.d.ts +12 -0
  95. package/dist/cjs/src/impl/btc/tbtcsig.d.ts.map +1 -0
  96. package/dist/cjs/src/impl/btc/tbtcsig.js +15 -0
  97. package/dist/cjs/src/impl/btc/tbtcstx.d.ts +10 -0
  98. package/dist/cjs/src/impl/btc/tbtcstx.d.ts.map +1 -0
  99. package/dist/cjs/src/impl/btc/tbtcstx.js +18 -0
  100. package/dist/cjs/src/impl/btc/tbtcstxprivate1.d.ts +9 -0
  101. package/dist/cjs/src/impl/btc/tbtcstxprivate1.d.ts.map +1 -0
  102. package/dist/cjs/src/impl/btc/tbtcstxprivate1.js +15 -0
  103. package/dist/cjs/src/impl/btc/tbtcstxsignet.d.ts +10 -0
  104. package/dist/cjs/src/impl/btc/tbtcstxsignet.d.ts.map +1 -0
  105. package/dist/cjs/src/impl/btc/tbtcstxsignet.js +18 -0
  106. package/dist/cjs/src/impl/btg/btg.d.ts +9 -0
  107. package/dist/cjs/src/impl/btg/btg.d.ts.map +1 -0
  108. package/dist/cjs/src/impl/btg/btg.js +15 -0
  109. package/dist/cjs/src/impl/btg/index.d.ts +2 -0
  110. package/dist/cjs/src/impl/btg/index.d.ts.map +1 -0
  111. package/dist/cjs/src/impl/btg/index.js +18 -0
  112. package/dist/cjs/src/impl/dash/dash.d.ts +9 -0
  113. package/dist/cjs/src/impl/dash/dash.d.ts.map +1 -0
  114. package/dist/cjs/src/impl/dash/dash.js +15 -0
  115. package/dist/cjs/src/impl/dash/index.d.ts +3 -0
  116. package/dist/cjs/src/impl/dash/index.d.ts.map +1 -0
  117. package/dist/cjs/src/impl/dash/index.js +19 -0
  118. package/dist/cjs/src/impl/dash/tdash.d.ts +12 -0
  119. package/dist/cjs/src/impl/dash/tdash.d.ts.map +1 -0
  120. package/dist/cjs/src/impl/dash/tdash.js +15 -0
  121. package/dist/cjs/src/impl/doge/doge.d.ts +33 -0
  122. package/dist/cjs/src/impl/doge/doge.d.ts.map +1 -0
  123. package/dist/cjs/src/impl/doge/doge.js +76 -0
  124. package/dist/cjs/src/impl/doge/index.d.ts +3 -0
  125. package/dist/cjs/src/impl/doge/index.d.ts.map +1 -0
  126. package/dist/cjs/src/impl/doge/index.js +19 -0
  127. package/dist/cjs/src/impl/doge/tdoge.d.ts +12 -0
  128. package/dist/cjs/src/impl/doge/tdoge.d.ts.map +1 -0
  129. package/dist/cjs/src/impl/doge/tdoge.js +15 -0
  130. package/dist/cjs/src/impl/index.d.ts +11 -0
  131. package/dist/cjs/src/impl/index.d.ts.map +1 -0
  132. package/dist/cjs/src/impl/index.js +47 -0
  133. package/dist/cjs/src/impl/ltc/index.d.ts +3 -0
  134. package/dist/cjs/src/impl/ltc/index.d.ts.map +1 -0
  135. package/dist/cjs/src/impl/ltc/index.js +19 -0
  136. package/dist/cjs/src/impl/ltc/ltc.d.ts +8 -0
  137. package/dist/cjs/src/impl/ltc/ltc.d.ts.map +1 -0
  138. package/dist/cjs/src/impl/ltc/ltc.js +15 -0
  139. package/dist/cjs/src/impl/ltc/tltc.d.ts +8 -0
  140. package/dist/cjs/src/impl/ltc/tltc.d.ts.map +1 -0
  141. package/dist/cjs/src/impl/ltc/tltc.js +15 -0
  142. package/dist/cjs/src/impl/pearl/index.d.ts +3 -0
  143. package/dist/cjs/src/impl/pearl/index.d.ts.map +1 -0
  144. package/dist/cjs/src/impl/pearl/index.js +19 -0
  145. package/dist/cjs/src/impl/pearl/pearl.d.ts +17 -0
  146. package/dist/cjs/src/impl/pearl/pearl.d.ts.map +1 -0
  147. package/dist/cjs/src/impl/pearl/pearl.js +24 -0
  148. package/dist/cjs/src/impl/pearl/tpearl.d.ts +8 -0
  149. package/dist/cjs/src/impl/pearl/tpearl.d.ts.map +1 -0
  150. package/dist/cjs/src/impl/pearl/tpearl.js +15 -0
  151. package/dist/cjs/src/impl/zec/address.d.ts +79 -0
  152. package/dist/cjs/src/impl/zec/address.d.ts.map +1 -0
  153. package/dist/cjs/src/impl/zec/address.js +157 -0
  154. package/dist/cjs/src/impl/zec/index.d.ts +7 -0
  155. package/dist/cjs/src/impl/zec/index.d.ts.map +1 -0
  156. package/dist/cjs/src/impl/zec/index.js +23 -0
  157. package/dist/cjs/src/impl/zec/recipients.d.ts +86 -0
  158. package/dist/cjs/src/impl/zec/recipients.d.ts.map +1 -0
  159. package/dist/cjs/src/impl/zec/recipients.js +98 -0
  160. package/dist/cjs/src/impl/zec/shieldedAddress.d.ts +36 -0
  161. package/dist/cjs/src/impl/zec/shieldedAddress.d.ts.map +1 -0
  162. package/dist/cjs/src/impl/zec/shieldedAddress.js +51 -0
  163. package/dist/cjs/src/impl/zec/signIronwoodTransaction.d.ts +29 -0
  164. package/dist/cjs/src/impl/zec/signIronwoodTransaction.d.ts.map +1 -0
  165. package/dist/cjs/src/impl/zec/signIronwoodTransaction.js +57 -0
  166. package/dist/cjs/src/impl/zec/types.d.ts +8 -0
  167. package/dist/cjs/src/impl/zec/types.d.ts.map +1 -0
  168. package/dist/cjs/src/impl/zec/types.js +3 -0
  169. package/dist/cjs/src/impl/zec/tzec.d.ts +9 -0
  170. package/dist/cjs/src/impl/zec/tzec.d.ts.map +1 -0
  171. package/dist/cjs/src/impl/zec/tzec.js +15 -0
  172. package/dist/cjs/src/impl/zec/zec.d.ts +58 -0
  173. package/dist/cjs/src/impl/zec/zec.d.ts.map +1 -0
  174. package/dist/cjs/src/impl/zec/zec.js +124 -0
  175. package/dist/cjs/src/index.d.ts +23 -0
  176. package/dist/cjs/src/index.d.ts.map +1 -0
  177. package/dist/cjs/src/index.js +62 -0
  178. package/dist/cjs/src/keychains.d.ts +55 -0
  179. package/dist/cjs/src/keychains.d.ts.map +1 -0
  180. package/dist/cjs/src/keychains.js +143 -0
  181. package/dist/cjs/src/names.d.ts +16 -0
  182. package/dist/cjs/src/names.d.ts.map +1 -0
  183. package/dist/cjs/src/names.js +119 -0
  184. package/dist/cjs/src/offlineVault/OfflineVaultHalfSigned.d.ts +9 -0
  185. package/dist/cjs/src/offlineVault/OfflineVaultHalfSigned.d.ts.map +1 -0
  186. package/dist/cjs/src/offlineVault/OfflineVaultHalfSigned.js +22 -0
  187. package/dist/cjs/src/offlineVault/OfflineVaultSignable.d.ts +46 -0
  188. package/dist/cjs/src/offlineVault/OfflineVaultSignable.d.ts.map +1 -0
  189. package/dist/cjs/src/offlineVault/OfflineVaultSignable.js +55 -0
  190. package/dist/cjs/src/offlineVault/TransactionExplanation.d.ts +16 -0
  191. package/dist/cjs/src/offlineVault/TransactionExplanation.d.ts.map +1 -0
  192. package/dist/cjs/src/offlineVault/TransactionExplanation.js +15 -0
  193. package/dist/cjs/src/offlineVault/descriptor/index.d.ts +2 -0
  194. package/dist/cjs/src/offlineVault/descriptor/index.d.ts.map +1 -0
  195. package/dist/cjs/src/offlineVault/descriptor/index.js +18 -0
  196. package/dist/cjs/src/offlineVault/descriptor/transaction.d.ts +39 -0
  197. package/dist/cjs/src/offlineVault/descriptor/transaction.d.ts.map +1 -0
  198. package/dist/cjs/src/offlineVault/descriptor/transaction.js +80 -0
  199. package/dist/cjs/src/offlineVault/index.d.ts +6 -0
  200. package/dist/cjs/src/offlineVault/index.d.ts.map +1 -0
  201. package/dist/cjs/src/offlineVault/index.js +44 -0
  202. package/dist/{src → cjs/src}/recovery/RecoveryProvider.d.ts +1 -3
  203. package/dist/cjs/src/recovery/RecoveryProvider.d.ts.map +1 -0
  204. package/dist/cjs/src/recovery/RecoveryProvider.js +22 -0
  205. package/dist/cjs/src/recovery/backupKeyRecovery.d.ts +176 -0
  206. package/dist/cjs/src/recovery/backupKeyRecovery.d.ts.map +1 -0
  207. package/dist/cjs/src/recovery/backupKeyRecovery.js +417 -0
  208. package/dist/{src → cjs/src}/recovery/baseApi.d.ts +3 -6
  209. package/dist/cjs/src/recovery/baseApi.d.ts.map +1 -0
  210. package/dist/cjs/src/recovery/baseApi.js +73 -0
  211. package/dist/{src → cjs/src}/recovery/coingeckoApi.d.ts +0 -3
  212. package/dist/cjs/src/recovery/coingeckoApi.d.ts.map +1 -0
  213. package/dist/cjs/src/recovery/coingeckoApi.js +44 -0
  214. package/dist/{src → cjs/src}/recovery/crossChainRecovery.d.ts +21 -9
  215. package/dist/cjs/src/recovery/crossChainRecovery.d.ts.map +1 -0
  216. package/dist/cjs/src/recovery/crossChainRecovery.js +302 -0
  217. package/dist/{src → cjs/src}/recovery/index.d.ts +0 -1
  218. package/dist/cjs/src/recovery/index.d.ts.map +1 -0
  219. package/dist/{src → cjs/src}/recovery/index.js +6 -3
  220. package/dist/cjs/src/recovery/mempoolApi.d.ts.map +1 -0
  221. package/dist/cjs/src/recovery/mempoolApi.js +36 -0
  222. package/dist/cjs/src/recovery/psbt.d.ts +68 -0
  223. package/dist/cjs/src/recovery/psbt.d.ts.map +1 -0
  224. package/dist/cjs/src/recovery/psbt.js +160 -0
  225. package/dist/cjs/src/tnumber.d.ts +4 -0
  226. package/dist/cjs/src/tnumber.d.ts.map +1 -0
  227. package/dist/cjs/src/tnumber.js +12 -0
  228. package/dist/cjs/src/transaction/bip322.d.ts +27 -0
  229. package/dist/cjs/src/transaction/bip322.d.ts.map +1 -0
  230. package/dist/cjs/src/transaction/bip322.js +139 -0
  231. package/dist/cjs/src/transaction/common/verifyPayGoAmount.d.ts +2 -0
  232. package/dist/cjs/src/transaction/common/verifyPayGoAmount.d.ts.map +1 -0
  233. package/dist/cjs/src/transaction/common/verifyPayGoAmount.js +3 -0
  234. package/dist/cjs/src/transaction/decode.d.ts +21 -0
  235. package/dist/cjs/src/transaction/decode.d.ts.map +1 -0
  236. package/dist/cjs/src/transaction/decode.js +46 -0
  237. package/dist/cjs/src/transaction/descriptor/explainPsbt.d.ts +5 -0
  238. package/dist/cjs/src/transaction/descriptor/explainPsbt.d.ts.map +1 -0
  239. package/dist/cjs/src/transaction/descriptor/explainPsbt.js +48 -0
  240. package/dist/cjs/src/transaction/descriptor/index.d.ts +7 -0
  241. package/dist/cjs/src/transaction/descriptor/index.d.ts.map +1 -0
  242. package/dist/cjs/src/transaction/descriptor/index.js +14 -0
  243. package/dist/cjs/src/transaction/descriptor/parse.d.ts +18 -0
  244. package/dist/cjs/src/transaction/descriptor/parse.d.ts.map +1 -0
  245. package/dist/cjs/src/transaction/descriptor/parse.js +85 -0
  246. package/dist/cjs/src/transaction/descriptor/parseToAmountType.d.ts +15 -0
  247. package/dist/cjs/src/transaction/descriptor/parseToAmountType.d.ts.map +1 -0
  248. package/dist/cjs/src/transaction/descriptor/parseToAmountType.js +60 -0
  249. package/dist/cjs/src/transaction/descriptor/recipient.d.ts +5 -0
  250. package/dist/cjs/src/transaction/descriptor/recipient.d.ts.map +1 -0
  251. package/dist/cjs/src/transaction/descriptor/recipient.js +3 -0
  252. package/dist/cjs/src/transaction/descriptor/signPsbt.d.ts +25 -0
  253. package/dist/cjs/src/transaction/descriptor/signPsbt.d.ts.map +1 -0
  254. package/dist/cjs/src/transaction/descriptor/signPsbt.js +44 -0
  255. package/dist/cjs/src/transaction/descriptor/verifyTransaction.d.ts +36 -0
  256. package/dist/cjs/src/transaction/descriptor/verifyTransaction.d.ts.map +1 -0
  257. package/dist/cjs/src/transaction/descriptor/verifyTransaction.js +90 -0
  258. package/dist/cjs/src/transaction/explainTransaction.d.ts +19 -0
  259. package/dist/cjs/src/transaction/explainTransaction.d.ts.map +1 -0
  260. package/dist/cjs/src/transaction/explainTransaction.js +85 -0
  261. package/dist/cjs/src/transaction/fixedScript/SigningError.d.ts +24 -0
  262. package/dist/cjs/src/transaction/fixedScript/SigningError.d.ts.map +1 -0
  263. package/dist/cjs/src/transaction/fixedScript/SigningError.js +32 -0
  264. package/dist/cjs/src/transaction/fixedScript/explainPsbtWasm.d.ts +47 -0
  265. package/dist/cjs/src/transaction/fixedScript/explainPsbtWasm.d.ts.map +1 -0
  266. package/dist/cjs/src/transaction/fixedScript/explainPsbtWasm.js +152 -0
  267. package/dist/cjs/src/transaction/fixedScript/explainTransaction.d.ts +47 -0
  268. package/dist/cjs/src/transaction/fixedScript/explainTransaction.d.ts.map +1 -0
  269. package/dist/cjs/src/transaction/fixedScript/explainTransaction.js +3 -0
  270. package/dist/cjs/src/transaction/fixedScript/index.d.ts +8 -0
  271. package/dist/cjs/src/transaction/fixedScript/index.d.ts.map +1 -0
  272. package/dist/cjs/src/transaction/fixedScript/index.js +30 -0
  273. package/dist/cjs/src/transaction/fixedScript/musig2.d.ts +4 -0
  274. package/dist/cjs/src/transaction/fixedScript/musig2.d.ts.map +1 -0
  275. package/dist/cjs/src/transaction/fixedScript/musig2.js +3 -0
  276. package/dist/cjs/src/transaction/fixedScript/parseOutput.d.ts +30 -0
  277. package/dist/cjs/src/transaction/fixedScript/parseOutput.d.ts.map +1 -0
  278. package/dist/cjs/src/transaction/fixedScript/parseOutput.js +217 -0
  279. package/dist/cjs/src/transaction/fixedScript/parseTransaction.d.ts +9 -0
  280. package/dist/cjs/src/transaction/fixedScript/parseTransaction.d.ts.map +1 -0
  281. package/dist/cjs/src/transaction/fixedScript/parseTransaction.js +234 -0
  282. package/dist/cjs/src/transaction/fixedScript/replayProtection.d.ts +10 -0
  283. package/dist/cjs/src/transaction/fixedScript/replayProtection.d.ts.map +1 -0
  284. package/dist/cjs/src/transaction/fixedScript/replayProtection.js +44 -0
  285. package/dist/cjs/src/transaction/fixedScript/signPsbtWasm.d.ts +27 -0
  286. package/dist/cjs/src/transaction/fixedScript/signPsbtWasm.d.ts.map +1 -0
  287. package/dist/cjs/src/transaction/fixedScript/signPsbtWasm.js +130 -0
  288. package/dist/cjs/src/transaction/fixedScript/signTransaction.d.ts +31 -0
  289. package/dist/cjs/src/transaction/fixedScript/signTransaction.d.ts.map +1 -0
  290. package/dist/cjs/src/transaction/fixedScript/signTransaction.js +55 -0
  291. package/dist/cjs/src/transaction/fixedScript/verifyTransaction.d.ts +21 -0
  292. package/dist/cjs/src/transaction/fixedScript/verifyTransaction.d.ts.map +1 -0
  293. package/dist/cjs/src/transaction/fixedScript/verifyTransaction.js +182 -0
  294. package/dist/cjs/src/transaction/getPayGoVerificationPubkey.d.ts +9 -0
  295. package/dist/cjs/src/transaction/getPayGoVerificationPubkey.d.ts.map +1 -0
  296. package/dist/cjs/src/transaction/getPayGoVerificationPubkey.js +20 -0
  297. package/dist/cjs/src/transaction/index.d.ts +9 -0
  298. package/dist/cjs/src/transaction/index.d.ts.map +1 -0
  299. package/dist/cjs/src/transaction/index.js +52 -0
  300. package/dist/cjs/src/transaction/outputDifference.d.ts +44 -0
  301. package/dist/cjs/src/transaction/outputDifference.d.ts.map +1 -0
  302. package/dist/cjs/src/transaction/outputDifference.js +51 -0
  303. package/dist/cjs/src/transaction/parseTransaction.d.ts +5 -0
  304. package/dist/cjs/src/transaction/parseTransaction.d.ts.map +1 -0
  305. package/dist/cjs/src/transaction/parseTransaction.js +48 -0
  306. package/dist/cjs/src/transaction/recipient.d.ts +76 -0
  307. package/dist/cjs/src/transaction/recipient.d.ts.map +1 -0
  308. package/dist/cjs/src/transaction/recipient.js +130 -0
  309. package/dist/cjs/src/transaction/signTransaction.d.ts +18 -0
  310. package/dist/cjs/src/transaction/signTransaction.d.ts.map +1 -0
  311. package/dist/cjs/src/transaction/signTransaction.js +114 -0
  312. package/dist/cjs/src/transaction/types.d.ts +47 -0
  313. package/dist/cjs/src/transaction/types.d.ts.map +1 -0
  314. package/dist/cjs/src/transaction/types.js +3 -0
  315. package/dist/cjs/src/transaction/verifyTransaction.d.ts +5 -0
  316. package/dist/cjs/src/transaction/verifyTransaction.d.ts.map +1 -0
  317. package/dist/cjs/src/transaction/verifyTransaction.js +50 -0
  318. package/dist/cjs/src/unspent.d.ts +59 -0
  319. package/dist/cjs/src/unspent.d.ts.map +1 -0
  320. package/dist/cjs/src/unspent.js +20 -0
  321. package/dist/cjs/src/verifyKey.d.ts +22 -0
  322. package/dist/cjs/src/verifyKey.d.ts.map +1 -0
  323. package/dist/cjs/src/verifyKey.js +110 -0
  324. package/dist/cjs/src/wallet.d.ts +15 -0
  325. package/dist/cjs/src/wallet.d.ts.map +1 -0
  326. package/dist/cjs/src/wallet.js +8 -0
  327. package/dist/cjs/test/integration/impl/bch/bch.d.ts +2 -0
  328. package/dist/cjs/test/integration/impl/bch/bch.d.ts.map +1 -0
  329. package/dist/cjs/test/integration/impl/bch/bch.js +76 -0
  330. package/dist/cjs/test/unit/address.d.ts +2 -0
  331. package/dist/cjs/test/unit/address.d.ts.map +1 -0
  332. package/dist/cjs/test/unit/address.js +201 -0
  333. package/dist/cjs/test/unit/bip322.d.ts +2 -0
  334. package/dist/cjs/test/unit/bip322.d.ts.map +1 -0
  335. package/dist/cjs/test/unit/bip322.js +491 -0
  336. package/dist/cjs/test/unit/buildSignSendLegacyFormat.d.ts +2 -0
  337. package/dist/cjs/test/unit/buildSignSendLegacyFormat.d.ts.map +1 -0
  338. package/dist/cjs/test/unit/buildSignSendLegacyFormat.js +102 -0
  339. package/dist/cjs/test/unit/coins.d.ts +2 -0
  340. package/dist/cjs/test/unit/coins.d.ts.map +1 -0
  341. package/dist/cjs/test/unit/coins.js +161 -0
  342. package/dist/cjs/test/unit/customChangeWallet.d.ts +2 -0
  343. package/dist/cjs/test/unit/customChangeWallet.d.ts.map +1 -0
  344. package/dist/cjs/test/unit/customChangeWallet.js +206 -0
  345. package/dist/cjs/test/unit/customChangeWalletFixtures.d.ts +2 -0
  346. package/dist/cjs/test/unit/customChangeWalletFixtures.d.ts.map +1 -0
  347. package/dist/cjs/test/unit/customChangeWalletFixtures.js +53 -0
  348. package/dist/cjs/test/unit/customSigner.d.ts +2 -0
  349. package/dist/cjs/test/unit/customSigner.d.ts.map +1 -0
  350. package/dist/cjs/test/unit/customSigner.js +99 -0
  351. package/dist/cjs/test/unit/deriveKeyWithSeed.d.ts +2 -0
  352. package/dist/cjs/test/unit/deriveKeyWithSeed.d.ts.map +1 -0
  353. package/dist/cjs/test/unit/deriveKeyWithSeed.js +56 -0
  354. package/dist/cjs/test/unit/descriptor/NamedDescriptor.d.ts +2 -0
  355. package/dist/cjs/test/unit/descriptor/NamedDescriptor.d.ts.map +1 -0
  356. package/dist/cjs/test/unit/descriptor/NamedDescriptor.js +51 -0
  357. package/dist/cjs/test/unit/descriptor/builder.d.ts +2 -0
  358. package/dist/cjs/test/unit/descriptor/builder.d.ts.map +1 -0
  359. package/dist/cjs/test/unit/descriptor/builder.js +92 -0
  360. package/dist/cjs/test/unit/descriptor/createWallet/createDescriptors.d.ts +2 -0
  361. package/dist/cjs/test/unit/descriptor/createWallet/createDescriptors.d.ts.map +1 -0
  362. package/dist/cjs/test/unit/descriptor/createWallet/createDescriptors.js +53 -0
  363. package/dist/cjs/test/unit/descriptor/descriptorWallet.d.ts +2 -0
  364. package/dist/cjs/test/unit/descriptor/descriptorWallet.d.ts.map +1 -0
  365. package/dist/cjs/test/unit/descriptor/descriptorWallet.js +62 -0
  366. package/dist/cjs/test/unit/descriptorAddress.d.ts +3 -0
  367. package/dist/cjs/test/unit/descriptorAddress.d.ts.map +1 -0
  368. package/dist/cjs/test/unit/descriptorAddress.js +123 -0
  369. package/dist/cjs/test/unit/explainTransaction.d.ts +2 -0
  370. package/dist/cjs/test/unit/explainTransaction.d.ts.map +1 -0
  371. package/dist/cjs/test/unit/explainTransaction.js +37 -0
  372. package/dist/cjs/test/unit/fixtures/psbtHexProof.d.ts +4 -0
  373. package/dist/cjs/test/unit/fixtures/psbtHexProof.d.ts.map +1 -0
  374. package/dist/cjs/test/unit/fixtures/psbtHexProof.js +9 -0
  375. package/dist/cjs/test/unit/impl/bch/unit/bch.d.ts +2 -0
  376. package/dist/cjs/test/unit/impl/bch/unit/bch.d.ts.map +1 -0
  377. package/dist/cjs/test/unit/impl/bch/unit/bch.js +79 -0
  378. package/dist/cjs/test/unit/impl/bcha/unit/index.d.ts +2 -0
  379. package/dist/cjs/test/unit/impl/bcha/unit/index.d.ts.map +1 -0
  380. package/dist/cjs/test/unit/impl/bcha/unit/index.js +41 -0
  381. package/dist/cjs/test/unit/impl/bsv/unit/index.d.ts +2 -0
  382. package/dist/cjs/test/unit/impl/bsv/unit/index.d.ts.map +1 -0
  383. package/dist/cjs/test/unit/impl/bsv/unit/index.js +34 -0
  384. package/dist/cjs/test/unit/impl/btg/unit/index.d.ts +2 -0
  385. package/dist/cjs/test/unit/impl/btg/unit/index.d.ts.map +1 -0
  386. package/dist/cjs/test/unit/impl/btg/unit/index.js +33 -0
  387. package/dist/cjs/test/unit/impl/dash/unit/index.d.ts +2 -0
  388. package/dist/cjs/test/unit/impl/dash/unit/index.d.ts.map +1 -0
  389. package/dist/cjs/test/unit/impl/dash/unit/index.js +34 -0
  390. package/dist/cjs/test/unit/impl/doge/unit/index.d.ts +2 -0
  391. package/dist/cjs/test/unit/impl/doge/unit/index.d.ts.map +1 -0
  392. package/dist/cjs/test/unit/impl/doge/unit/index.js +34 -0
  393. package/dist/cjs/test/unit/impl/pearl/unit/index.d.ts +2 -0
  394. package/dist/cjs/test/unit/impl/pearl/unit/index.d.ts.map +1 -0
  395. package/dist/cjs/test/unit/impl/pearl/unit/index.js +111 -0
  396. package/dist/cjs/test/unit/impl/zec/psbtDecode.d.ts +2 -0
  397. package/dist/cjs/test/unit/impl/zec/psbtDecode.d.ts.map +1 -0
  398. package/dist/cjs/test/unit/impl/zec/psbtDecode.js +69 -0
  399. package/dist/cjs/test/unit/impl/zec/shieldedPrebuildAndSign.d.ts +2 -0
  400. package/dist/cjs/test/unit/impl/zec/shieldedPrebuildAndSign.d.ts.map +1 -0
  401. package/dist/cjs/test/unit/impl/zec/shieldedPrebuildAndSign.js +470 -0
  402. package/dist/cjs/test/unit/impl/zec/unit/address.d.ts +2 -0
  403. package/dist/cjs/test/unit/impl/zec/unit/address.d.ts.map +1 -0
  404. package/dist/cjs/test/unit/impl/zec/unit/address.js +227 -0
  405. package/dist/cjs/test/unit/impl/zec/unit/index.d.ts +2 -0
  406. package/dist/cjs/test/unit/impl/zec/unit/index.d.ts.map +1 -0
  407. package/dist/cjs/test/unit/impl/zec/unit/index.js +30 -0
  408. package/dist/cjs/test/unit/impl/zec/unit/resolvePsbtRecipients.d.ts +2 -0
  409. package/dist/cjs/test/unit/impl/zec/unit/resolvePsbtRecipients.d.ts.map +1 -0
  410. package/dist/cjs/test/unit/impl/zec/unit/resolvePsbtRecipients.js +91 -0
  411. package/dist/cjs/test/unit/impl/zec/unit/shieldedAddress.d.ts +2 -0
  412. package/dist/cjs/test/unit/impl/zec/unit/shieldedAddress.d.ts.map +1 -0
  413. package/dist/cjs/test/unit/impl/zec/unit/shieldedAddress.js +57 -0
  414. package/dist/cjs/test/unit/impl/zec/unit/unifiedRecipientPreference.d.ts +2 -0
  415. package/dist/cjs/test/unit/impl/zec/unit/unifiedRecipientPreference.d.ts.map +1 -0
  416. package/dist/cjs/test/unit/impl/zec/unit/unifiedRecipientPreference.js +57 -0
  417. package/dist/cjs/test/unit/keySignatures.d.ts +2 -0
  418. package/dist/cjs/test/unit/keySignatures.d.ts.map +1 -0
  419. package/dist/cjs/test/unit/keySignatures.js +54 -0
  420. package/dist/cjs/test/unit/keychains.d.ts +2 -0
  421. package/dist/cjs/test/unit/keychains.d.ts.map +1 -0
  422. package/dist/cjs/test/unit/keychains.js +87 -0
  423. package/dist/cjs/test/unit/offlineVault/halfSigned.d.ts +2 -0
  424. package/dist/cjs/test/unit/offlineVault/halfSigned.d.ts.map +1 -0
  425. package/dist/cjs/test/unit/offlineVault/halfSigned.js +124 -0
  426. package/dist/cjs/test/unit/parseTransaction.d.ts +2 -0
  427. package/dist/cjs/test/unit/parseTransaction.d.ts.map +1 -0
  428. package/dist/cjs/test/unit/parseTransaction.js +155 -0
  429. package/dist/cjs/test/unit/pendingApprovalTxHexPsbt.d.ts +2 -0
  430. package/dist/cjs/test/unit/pendingApprovalTxHexPsbt.d.ts.map +1 -0
  431. package/dist/cjs/test/unit/pendingApprovalTxHexPsbt.js +99 -0
  432. package/dist/cjs/test/unit/postProcessPrebuild.d.ts +2 -0
  433. package/dist/cjs/test/unit/postProcessPrebuild.d.ts.map +1 -0
  434. package/dist/cjs/test/unit/postProcessPrebuild.js +65 -0
  435. package/dist/cjs/test/unit/prebuildAndSign.d.ts +2 -0
  436. package/dist/cjs/test/unit/prebuildAndSign.d.ts.map +1 -0
  437. package/dist/cjs/test/unit/prebuildAndSign.js +218 -0
  438. package/dist/cjs/test/unit/recovery/backupKeyRecovery.d.ts +2 -0
  439. package/dist/cjs/test/unit/recovery/backupKeyRecovery.d.ts.map +1 -0
  440. package/dist/cjs/test/unit/recovery/backupKeyRecovery.js +149 -0
  441. package/dist/cjs/test/unit/recovery/backupKeyRecoveryUnspentGathering.d.ts +2 -0
  442. package/dist/cjs/test/unit/recovery/backupKeyRecoveryUnspentGathering.d.ts.map +1 -0
  443. package/dist/cjs/test/unit/recovery/backupKeyRecoveryUnspentGathering.js +147 -0
  444. package/dist/cjs/test/unit/recovery/crossChainRecovery.d.ts +2 -0
  445. package/dist/cjs/test/unit/recovery/crossChainRecovery.d.ts.map +1 -0
  446. package/dist/cjs/test/unit/recovery/crossChainRecovery.js +352 -0
  447. package/dist/cjs/test/unit/recovery/formatBackupKeyRecoveryResult.d.ts +2 -0
  448. package/dist/cjs/test/unit/recovery/formatBackupKeyRecoveryResult.d.ts.map +1 -0
  449. package/dist/cjs/test/unit/recovery/formatBackupKeyRecoveryResult.js +189 -0
  450. package/dist/cjs/test/unit/recovery/mock.d.ts +37 -0
  451. package/dist/cjs/test/unit/recovery/mock.d.ts.map +1 -0
  452. package/dist/cjs/test/unit/recovery/mock.js +113 -0
  453. package/dist/cjs/test/unit/signTransaction.d.ts +2 -0
  454. package/dist/cjs/test/unit/signTransaction.d.ts.map +1 -0
  455. package/dist/cjs/test/unit/signTransaction.js +223 -0
  456. package/dist/cjs/test/unit/tbtcstx.d.ts +2 -0
  457. package/dist/cjs/test/unit/tbtcstx.d.ts.map +1 -0
  458. package/dist/cjs/test/unit/tbtcstx.js +60 -0
  459. package/dist/cjs/test/unit/tbtcstxprivate1.d.ts +2 -0
  460. package/dist/cjs/test/unit/tbtcstxprivate1.d.ts.map +1 -0
  461. package/dist/cjs/test/unit/tbtcstxprivate1.js +61 -0
  462. package/dist/cjs/test/unit/tbtcstxsignet.d.ts +2 -0
  463. package/dist/cjs/test/unit/tbtcstxsignet.d.ts.map +1 -0
  464. package/dist/cjs/test/unit/tbtcstxsignet.js +61 -0
  465. package/dist/cjs/test/unit/testSpoofTransaction.d.ts +2 -0
  466. package/dist/cjs/test/unit/testSpoofTransaction.d.ts.map +1 -0
  467. package/dist/cjs/test/unit/testSpoofTransaction.js +114 -0
  468. package/dist/cjs/test/unit/transaction/addressCodec.d.ts +2 -0
  469. package/dist/cjs/test/unit/transaction/addressCodec.d.ts.map +1 -0
  470. package/dist/cjs/test/unit/transaction/addressCodec.js +30 -0
  471. package/dist/cjs/test/unit/transaction/descriptor/explainPsbt.d.ts +2 -0
  472. package/dist/cjs/test/unit/transaction/descriptor/explainPsbt.d.ts.map +1 -0
  473. package/dist/cjs/test/unit/transaction/descriptor/explainPsbt.js +64 -0
  474. package/dist/cjs/test/unit/transaction/descriptor/fixtures.utils.d.ts +6 -0
  475. package/dist/cjs/test/unit/transaction/descriptor/fixtures.utils.d.ts.map +1 -0
  476. package/dist/cjs/test/unit/transaction/descriptor/fixtures.utils.js +51 -0
  477. package/dist/cjs/test/unit/transaction/descriptor/parse.d.ts +2 -0
  478. package/dist/cjs/test/unit/transaction/descriptor/parse.d.ts.map +1 -0
  479. package/dist/cjs/test/unit/transaction/descriptor/parse.js +140 -0
  480. package/dist/cjs/test/unit/transaction/descriptor/sign.d.ts +2 -0
  481. package/dist/cjs/test/unit/transaction/descriptor/sign.d.ts.map +1 -0
  482. package/dist/cjs/test/unit/transaction/descriptor/sign.js +76 -0
  483. package/dist/cjs/test/unit/transaction/descriptor/signTransactionE2E.d.ts +2 -0
  484. package/dist/cjs/test/unit/transaction/descriptor/signTransactionE2E.d.ts.map +1 -0
  485. package/dist/cjs/test/unit/transaction/descriptor/signTransactionE2E.js +100 -0
  486. package/dist/cjs/test/unit/transaction/descriptor/signTransactionGuard.d.ts +2 -0
  487. package/dist/cjs/test/unit/transaction/descriptor/signTransactionGuard.d.ts.map +1 -0
  488. package/dist/cjs/test/unit/transaction/descriptor/signTransactionGuard.js +84 -0
  489. package/dist/cjs/test/unit/transaction/descriptor/validatePolicy.d.ts +2 -0
  490. package/dist/cjs/test/unit/transaction/descriptor/validatePolicy.d.ts.map +1 -0
  491. package/dist/cjs/test/unit/transaction/descriptor/validatePolicy.js +81 -0
  492. package/dist/cjs/test/unit/transaction/descriptor/verifyTransactionQr.d.ts +2 -0
  493. package/dist/cjs/test/unit/transaction/descriptor/verifyTransactionQr.d.ts.map +1 -0
  494. package/dist/cjs/test/unit/transaction/descriptor/verifyTransactionQr.js +103 -0
  495. package/dist/cjs/test/unit/transaction/fixedScript/explainPsbt.d.ts +2 -0
  496. package/dist/cjs/test/unit/transaction/fixedScript/explainPsbt.d.ts.map +1 -0
  497. package/dist/cjs/test/unit/transaction/fixedScript/explainPsbt.js +179 -0
  498. package/dist/cjs/test/unit/transaction/fixedScript/parsePsbt.d.ts +2 -0
  499. package/dist/cjs/test/unit/transaction/fixedScript/parsePsbt.d.ts.map +1 -0
  500. package/dist/cjs/test/unit/transaction/fixedScript/parsePsbt.js +223 -0
  501. package/dist/cjs/test/unit/transaction/fixedScript/replayProtection.d.ts +2 -0
  502. package/dist/cjs/test/unit/transaction/fixedScript/replayProtection.d.ts.map +1 -0
  503. package/dist/cjs/test/unit/transaction/fixedScript/replayProtection.js +60 -0
  504. package/dist/cjs/test/unit/transaction/fixedScript/signPsbt.d.ts +2 -0
  505. package/dist/cjs/test/unit/transaction/fixedScript/signPsbt.d.ts.map +1 -0
  506. package/dist/cjs/test/unit/transaction/fixedScript/signPsbt.js +98 -0
  507. package/dist/cjs/test/unit/transaction/outputDifference.d.ts +2 -0
  508. package/dist/cjs/test/unit/transaction/outputDifference.d.ts.map +1 -0
  509. package/dist/cjs/test/unit/transaction/outputDifference.js +117 -0
  510. package/dist/cjs/test/unit/transaction/recipient.d.ts +2 -0
  511. package/dist/cjs/test/unit/transaction/recipient.d.ts.map +1 -0
  512. package/dist/cjs/test/unit/transaction/recipient.js +52 -0
  513. package/dist/cjs/test/unit/transaction.d.ts +2 -0
  514. package/dist/cjs/test/unit/transaction.d.ts.map +1 -0
  515. package/dist/cjs/test/unit/transaction.js +301 -0
  516. package/dist/cjs/test/unit/txFormat.d.ts +30 -0
  517. package/dist/cjs/test/unit/txFormat.d.ts.map +1 -0
  518. package/dist/cjs/test/unit/txFormat.js +161 -0
  519. package/dist/cjs/test/unit/util/address.d.ts +14 -0
  520. package/dist/cjs/test/unit/util/address.d.ts.map +1 -0
  521. package/dist/cjs/test/unit/util/address.js +16 -0
  522. package/dist/cjs/test/unit/util/assert.d.ts +3 -0
  523. package/dist/cjs/test/unit/util/assert.d.ts.map +1 -0
  524. package/dist/cjs/test/unit/util/assert.js +24 -0
  525. package/dist/cjs/test/unit/util/fixtures.d.ts +13 -0
  526. package/dist/cjs/test/unit/util/fixtures.d.ts.map +1 -0
  527. package/dist/cjs/test/unit/util/fixtures.js +105 -0
  528. package/dist/cjs/test/unit/util/index.d.ts +11 -0
  529. package/dist/cjs/test/unit/util/index.d.ts.map +1 -0
  530. package/dist/cjs/test/unit/util/index.js +27 -0
  531. package/dist/cjs/test/unit/util/keychains.d.ts +55 -0
  532. package/dist/cjs/test/unit/util/keychains.d.ts.map +1 -0
  533. package/dist/cjs/test/unit/util/keychains.js +122 -0
  534. package/dist/cjs/test/unit/util/nockBitGo.d.ts +10 -0
  535. package/dist/cjs/test/unit/util/nockBitGo.d.ts.map +1 -0
  536. package/dist/cjs/test/unit/util/nockBitGo.js +27 -0
  537. package/dist/cjs/test/unit/util/nockIndexerAPI.d.ts +8 -0
  538. package/dist/cjs/test/unit/util/nockIndexerAPI.d.ts.map +1 -0
  539. package/dist/cjs/test/unit/util/nockIndexerAPI.js +22 -0
  540. package/dist/cjs/test/unit/util/psbt.d.ts +19 -0
  541. package/dist/cjs/test/unit/util/psbt.d.ts.map +1 -0
  542. package/dist/cjs/test/unit/util/psbt.js +21 -0
  543. package/dist/cjs/test/unit/util/transaction.d.ts +28 -0
  544. package/dist/cjs/test/unit/util/transaction.d.ts.map +1 -0
  545. package/dist/cjs/test/unit/util/transaction.js +132 -0
  546. package/dist/cjs/test/unit/util/unspents.d.ts +71 -0
  547. package/dist/cjs/test/unit/util/unspents.d.ts.map +1 -0
  548. package/dist/cjs/test/unit/util/unspents.js +224 -0
  549. package/dist/cjs/test/unit/util/utxoCoins.d.ts +30 -0
  550. package/dist/cjs/test/unit/util/utxoCoins.d.ts.map +1 -0
  551. package/dist/cjs/test/unit/util/utxoCoins.js +159 -0
  552. package/dist/cjs/test/unit/util/wallet.d.ts +4 -0
  553. package/dist/cjs/test/unit/util/wallet.d.ts.map +1 -0
  554. package/dist/cjs/test/unit/util/wallet.js +9 -0
  555. package/dist/cjs/test/unit/verifyTransaction.d.ts +2 -0
  556. package/dist/cjs/test/unit/verifyTransaction.d.ts.map +1 -0
  557. package/dist/cjs/test/unit/verifyTransaction.js +539 -0
  558. package/dist/cjs/test/unit/wallet.d.ts +2 -0
  559. package/dist/cjs/test/unit/wallet.d.ts.map +1 -0
  560. package/dist/cjs/test/unit/wallet.js +251 -0
  561. package/dist/cjs/test/unit/webauthn.d.ts +2 -0
  562. package/dist/cjs/test/unit/webauthn.d.ts.map +1 -0
  563. package/dist/cjs/test/unit/webauthn.js +77 -0
  564. package/dist/cjs/tsconfig.tsbuildinfo +1 -0
  565. package/dist/esm/abstractUtxoCoin.d.ts +466 -0
  566. package/dist/esm/abstractUtxoCoin.d.ts.map +1 -0
  567. package/dist/esm/abstractUtxoCoin.js +636 -0
  568. package/dist/esm/address/fixedScript.d.ts +44 -0
  569. package/dist/esm/address/fixedScript.d.ts.map +1 -0
  570. package/dist/esm/address/fixedScript.js +101 -0
  571. package/dist/esm/address/index.d.ts +2 -0
  572. package/dist/esm/address/index.d.ts.map +1 -0
  573. package/dist/esm/address/index.js +2 -0
  574. package/dist/esm/config.d.ts +9 -0
  575. package/dist/esm/config.js +11 -0
  576. package/dist/esm/deriveKeyWithSeed.d.ts +12 -0
  577. package/dist/esm/deriveKeyWithSeed.d.ts.map +1 -0
  578. package/dist/esm/deriveKeyWithSeed.js +14 -0
  579. package/dist/esm/descriptor/NamedDescriptor.d.ts +19 -0
  580. package/dist/esm/descriptor/NamedDescriptor.d.ts.map +1 -0
  581. package/dist/esm/descriptor/NamedDescriptor.js +37 -0
  582. package/dist/esm/descriptor/assertDescriptorWalletAddress.d.ts +5 -0
  583. package/dist/esm/descriptor/assertDescriptorWalletAddress.d.ts.map +1 -0
  584. package/dist/esm/descriptor/assertDescriptorWalletAddress.js +26 -0
  585. package/dist/esm/descriptor/builder/builder.d.ts +17 -0
  586. package/dist/esm/descriptor/builder/builder.d.ts.map +1 -0
  587. package/dist/esm/descriptor/builder/builder.js +51 -0
  588. package/dist/esm/descriptor/builder/index.d.ts +3 -0
  589. package/dist/esm/descriptor/builder/index.d.ts.map +1 -0
  590. package/dist/esm/descriptor/builder/index.js +3 -0
  591. package/dist/esm/descriptor/builder/parse.d.ts +5 -0
  592. package/dist/esm/descriptor/builder/parse.d.ts.map +1 -0
  593. package/dist/esm/descriptor/builder/parse.js +144 -0
  594. package/dist/esm/descriptor/createWallet/createDescriptorWallet.d.ts +20 -0
  595. package/dist/esm/descriptor/createWallet/createDescriptorWallet.d.ts.map +1 -0
  596. package/dist/esm/descriptor/createWallet/createDescriptorWallet.js +37 -0
  597. package/dist/esm/descriptor/createWallet/createDescriptors.d.ts +12 -0
  598. package/dist/esm/descriptor/createWallet/createDescriptors.d.ts.map +1 -0
  599. package/dist/esm/descriptor/createWallet/createDescriptors.js +29 -0
  600. package/dist/esm/descriptor/createWallet/index.d.ts +3 -0
  601. package/dist/esm/descriptor/createWallet/index.d.ts.map +1 -0
  602. package/dist/esm/descriptor/createWallet/index.js +3 -0
  603. package/dist/esm/descriptor/descriptorWallet.d.ts +19 -0
  604. package/dist/esm/descriptor/descriptorWallet.d.ts.map +1 -0
  605. package/dist/esm/descriptor/descriptorWallet.js +16 -0
  606. package/dist/esm/descriptor/index.d.ts +9 -0
  607. package/dist/esm/descriptor/index.d.ts.map +1 -0
  608. package/dist/esm/descriptor/index.js +7 -0
  609. package/dist/esm/descriptor/validatePolicy.d.ts +22 -0
  610. package/dist/esm/descriptor/validatePolicy.d.ts.map +1 -0
  611. package/dist/esm/descriptor/validatePolicy.js +82 -0
  612. package/dist/esm/impl/bch/bch.d.ts +36 -0
  613. package/dist/esm/impl/bch/bch.d.ts.map +1 -0
  614. package/dist/esm/impl/bch/bch.js +63 -0
  615. package/dist/esm/impl/bch/index.d.ts +3 -0
  616. package/dist/esm/impl/bch/index.d.ts.map +1 -0
  617. package/dist/esm/impl/bch/index.js +3 -0
  618. package/dist/esm/impl/bch/tbch.d.ts +12 -0
  619. package/dist/esm/impl/bch/tbch.d.ts.map +1 -0
  620. package/dist/esm/impl/bch/tbch.js +11 -0
  621. package/dist/esm/impl/bcha/bcha.d.ts +9 -0
  622. package/dist/esm/impl/bcha/bcha.d.ts.map +1 -0
  623. package/dist/esm/impl/bcha/bcha.js +11 -0
  624. package/dist/esm/impl/bcha/index.d.ts +3 -0
  625. package/dist/esm/impl/bcha/index.d.ts.map +1 -0
  626. package/dist/esm/impl/bcha/index.js +3 -0
  627. package/dist/esm/impl/bcha/tbcha.d.ts +12 -0
  628. package/dist/esm/impl/bcha/tbcha.d.ts.map +1 -0
  629. package/dist/esm/impl/bcha/tbcha.js +11 -0
  630. package/dist/esm/impl/bsv/bsv.d.ts +9 -0
  631. package/dist/esm/impl/bsv/bsv.d.ts.map +1 -0
  632. package/dist/esm/impl/bsv/bsv.js +11 -0
  633. package/dist/esm/impl/bsv/index.d.ts +3 -0
  634. package/dist/esm/impl/bsv/index.d.ts.map +1 -0
  635. package/dist/esm/impl/bsv/index.js +3 -0
  636. package/dist/esm/impl/bsv/tbsv.d.ts +12 -0
  637. package/dist/esm/impl/bsv/tbsv.d.ts.map +1 -0
  638. package/dist/esm/impl/bsv/tbsv.js +11 -0
  639. package/dist/esm/impl/btc/btc.d.ts +15 -0
  640. package/dist/esm/impl/btc/btc.d.ts.map +1 -0
  641. package/dist/esm/impl/btc/btc.js +18 -0
  642. package/dist/esm/impl/btc/index.d.ts +10 -0
  643. package/dist/esm/impl/btc/index.d.ts.map +1 -0
  644. package/dist/esm/impl/btc/index.js +10 -0
  645. package/dist/esm/impl/btc/inscriptionBuilder.d.ts +61 -0
  646. package/dist/esm/impl/btc/inscriptionBuilder.d.ts.map +1 -0
  647. package/dist/esm/impl/btc/inscriptionBuilder.js +163 -0
  648. package/dist/esm/impl/btc/tbtc.d.ts +12 -0
  649. package/dist/esm/impl/btc/tbtc.d.ts.map +1 -0
  650. package/dist/esm/impl/btc/tbtc.js +11 -0
  651. package/dist/esm/impl/btc/tbtc4.d.ts +12 -0
  652. package/dist/esm/impl/btc/tbtc4.d.ts.map +1 -0
  653. package/dist/esm/impl/btc/tbtc4.js +11 -0
  654. package/dist/esm/impl/btc/tbtcbgsig.d.ts +12 -0
  655. package/dist/esm/impl/btc/tbtcbgsig.d.ts.map +1 -0
  656. package/dist/esm/impl/btc/tbtcbgsig.js +11 -0
  657. package/dist/esm/impl/btc/tbtcsig.d.ts +12 -0
  658. package/dist/esm/impl/btc/tbtcsig.d.ts.map +1 -0
  659. package/dist/esm/impl/btc/tbtcsig.js +11 -0
  660. package/dist/esm/impl/btc/tbtcstx.d.ts +10 -0
  661. package/dist/esm/impl/btc/tbtcstx.d.ts.map +1 -0
  662. package/dist/esm/impl/btc/tbtcstx.js +14 -0
  663. package/dist/esm/impl/btc/tbtcstxprivate1.d.ts +9 -0
  664. package/dist/esm/impl/btc/tbtcstxprivate1.d.ts.map +1 -0
  665. package/dist/esm/impl/btc/tbtcstxprivate1.js +11 -0
  666. package/dist/esm/impl/btc/tbtcstxsignet.d.ts +10 -0
  667. package/dist/esm/impl/btc/tbtcstxsignet.d.ts.map +1 -0
  668. package/dist/esm/impl/btc/tbtcstxsignet.js +14 -0
  669. package/dist/esm/impl/btg/btg.d.ts +9 -0
  670. package/dist/esm/impl/btg/btg.d.ts.map +1 -0
  671. package/dist/esm/impl/btg/btg.js +11 -0
  672. package/dist/esm/impl/btg/index.d.ts +2 -0
  673. package/dist/esm/impl/btg/index.d.ts.map +1 -0
  674. package/dist/esm/impl/btg/index.js +2 -0
  675. package/dist/esm/impl/dash/dash.d.ts +9 -0
  676. package/dist/esm/impl/dash/dash.d.ts.map +1 -0
  677. package/dist/esm/impl/dash/dash.js +11 -0
  678. package/dist/esm/impl/dash/index.d.ts +3 -0
  679. package/dist/esm/impl/dash/index.d.ts.map +1 -0
  680. package/dist/esm/impl/dash/index.js +3 -0
  681. package/dist/esm/impl/dash/tdash.d.ts +12 -0
  682. package/dist/esm/impl/dash/tdash.d.ts.map +1 -0
  683. package/dist/esm/impl/dash/tdash.js +11 -0
  684. package/dist/esm/impl/doge/doge.d.ts +33 -0
  685. package/dist/esm/impl/doge/doge.d.ts.map +1 -0
  686. package/dist/esm/impl/doge/doge.js +72 -0
  687. package/dist/esm/impl/doge/index.d.ts +3 -0
  688. package/dist/esm/impl/doge/index.d.ts.map +1 -0
  689. package/dist/esm/impl/doge/index.js +3 -0
  690. package/dist/esm/impl/doge/tdoge.d.ts +12 -0
  691. package/dist/esm/impl/doge/tdoge.d.ts.map +1 -0
  692. package/dist/esm/impl/doge/tdoge.js +11 -0
  693. package/dist/esm/impl/index.d.ts +11 -0
  694. package/dist/esm/impl/index.d.ts.map +1 -0
  695. package/dist/esm/impl/index.js +11 -0
  696. package/dist/esm/impl/ltc/index.d.ts +3 -0
  697. package/dist/esm/impl/ltc/index.d.ts.map +1 -0
  698. package/dist/esm/impl/ltc/index.js +3 -0
  699. package/dist/esm/impl/ltc/ltc.d.ts +8 -0
  700. package/dist/esm/impl/ltc/ltc.d.ts.map +1 -0
  701. package/dist/esm/impl/ltc/ltc.js +11 -0
  702. package/dist/esm/impl/ltc/tltc.d.ts +8 -0
  703. package/dist/esm/impl/ltc/tltc.d.ts.map +1 -0
  704. package/dist/esm/impl/ltc/tltc.js +11 -0
  705. package/dist/esm/impl/pearl/index.d.ts +3 -0
  706. package/dist/esm/impl/pearl/index.d.ts.map +1 -0
  707. package/dist/esm/impl/pearl/index.js +3 -0
  708. package/dist/esm/impl/pearl/pearl.d.ts +17 -0
  709. package/dist/esm/impl/pearl/pearl.d.ts.map +1 -0
  710. package/dist/esm/impl/pearl/pearl.js +20 -0
  711. package/dist/esm/impl/pearl/tpearl.d.ts +8 -0
  712. package/dist/esm/impl/pearl/tpearl.d.ts.map +1 -0
  713. package/dist/esm/impl/pearl/tpearl.js +11 -0
  714. package/dist/esm/impl/zec/address.d.ts +79 -0
  715. package/dist/esm/impl/zec/address.d.ts.map +1 -0
  716. package/dist/esm/impl/zec/address.js +150 -0
  717. package/dist/esm/impl/zec/index.d.ts +7 -0
  718. package/dist/esm/impl/zec/index.d.ts.map +1 -0
  719. package/dist/esm/impl/zec/index.js +7 -0
  720. package/dist/esm/impl/zec/recipients.d.ts +86 -0
  721. package/dist/esm/impl/zec/recipients.d.ts.map +1 -0
  722. package/dist/esm/impl/zec/recipients.js +94 -0
  723. package/dist/esm/impl/zec/shieldedAddress.d.ts +36 -0
  724. package/dist/esm/impl/zec/shieldedAddress.d.ts.map +1 -0
  725. package/dist/esm/impl/zec/shieldedAddress.js +48 -0
  726. package/dist/esm/impl/zec/signIronwoodTransaction.d.ts +29 -0
  727. package/dist/esm/impl/zec/signIronwoodTransaction.d.ts.map +1 -0
  728. package/dist/esm/impl/zec/signIronwoodTransaction.js +50 -0
  729. package/dist/esm/impl/zec/types.d.ts +8 -0
  730. package/dist/esm/impl/zec/types.d.ts.map +1 -0
  731. package/dist/esm/impl/zec/types.js +2 -0
  732. package/dist/esm/impl/zec/tzec.d.ts +9 -0
  733. package/dist/esm/impl/zec/tzec.d.ts.map +1 -0
  734. package/dist/esm/impl/zec/tzec.js +11 -0
  735. package/dist/esm/impl/zec/zec.d.ts +58 -0
  736. package/dist/esm/impl/zec/zec.d.ts.map +1 -0
  737. package/dist/esm/impl/zec/zec.js +117 -0
  738. package/dist/esm/index.d.ts +23 -0
  739. package/dist/esm/index.d.ts.map +1 -0
  740. package/dist/esm/index.js +23 -0
  741. package/dist/esm/keychains.d.ts +55 -0
  742. package/dist/esm/keychains.d.ts.map +1 -0
  743. package/dist/esm/keychains.js +98 -0
  744. package/dist/esm/names.d.ts +16 -0
  745. package/dist/esm/names.d.ts.map +1 -0
  746. package/dist/esm/names.js +108 -0
  747. package/dist/esm/offlineVault/OfflineVaultHalfSigned.d.ts +9 -0
  748. package/dist/esm/offlineVault/OfflineVaultHalfSigned.d.ts.map +1 -0
  749. package/dist/esm/offlineVault/OfflineVaultHalfSigned.js +19 -0
  750. package/dist/esm/offlineVault/OfflineVaultSignable.d.ts +46 -0
  751. package/dist/esm/offlineVault/OfflineVaultSignable.d.ts.map +1 -0
  752. package/dist/esm/offlineVault/OfflineVaultSignable.js +18 -0
  753. package/dist/esm/offlineVault/TransactionExplanation.d.ts +16 -0
  754. package/dist/esm/offlineVault/TransactionExplanation.d.ts.map +1 -0
  755. package/dist/esm/offlineVault/TransactionExplanation.js +12 -0
  756. package/dist/esm/offlineVault/descriptor/index.d.ts +2 -0
  757. package/dist/esm/offlineVault/descriptor/index.d.ts.map +1 -0
  758. package/dist/esm/offlineVault/descriptor/index.js +2 -0
  759. package/dist/esm/offlineVault/descriptor/transaction.d.ts +39 -0
  760. package/dist/esm/offlineVault/descriptor/transaction.d.ts.map +1 -0
  761. package/dist/esm/offlineVault/descriptor/transaction.js +41 -0
  762. package/dist/esm/offlineVault/index.d.ts +6 -0
  763. package/dist/esm/offlineVault/index.d.ts.map +1 -0
  764. package/dist/esm/offlineVault/index.js +4 -0
  765. package/dist/esm/recovery/RecoveryProvider.d.ts +20 -0
  766. package/dist/esm/recovery/RecoveryProvider.d.ts.map +1 -0
  767. package/dist/esm/recovery/RecoveryProvider.js +19 -0
  768. package/dist/esm/recovery/backupKeyRecovery.d.ts +176 -0
  769. package/dist/esm/recovery/backupKeyRecovery.d.ts.map +1 -0
  770. package/dist/esm/recovery/backupKeyRecovery.js +406 -0
  771. package/dist/esm/recovery/baseApi.d.ts +24 -0
  772. package/dist/esm/recovery/baseApi.d.ts.map +1 -0
  773. package/dist/esm/recovery/baseApi.js +64 -0
  774. package/dist/esm/recovery/coingeckoApi.d.ts +6 -0
  775. package/dist/esm/recovery/coingeckoApi.d.ts.map +1 -0
  776. package/dist/esm/recovery/coingeckoApi.js +40 -0
  777. package/dist/esm/recovery/crossChainRecovery.d.ts +97 -0
  778. package/dist/esm/recovery/crossChainRecovery.d.ts.map +1 -0
  779. package/dist/esm/recovery/crossChainRecovery.js +295 -0
  780. package/dist/esm/recovery/index.d.ts +7 -0
  781. package/dist/{src → esm}/recovery/index.d.ts.map +1 -1
  782. package/dist/esm/recovery/index.js +7 -0
  783. package/dist/esm/recovery/mempoolApi.d.ts +7 -0
  784. package/dist/{src → esm}/recovery/mempoolApi.d.ts.map +1 -1
  785. package/dist/esm/recovery/mempoolApi.js +29 -0
  786. package/dist/esm/recovery/psbt.d.ts +68 -0
  787. package/dist/esm/recovery/psbt.d.ts.map +1 -0
  788. package/dist/esm/recovery/psbt.js +152 -0
  789. package/dist/esm/tnumber.d.ts +4 -0
  790. package/dist/esm/tnumber.d.ts.map +1 -0
  791. package/dist/esm/tnumber.js +9 -0
  792. package/dist/esm/transaction/bip322.d.ts +27 -0
  793. package/dist/esm/transaction/bip322.d.ts.map +1 -0
  794. package/dist/esm/transaction/bip322.js +100 -0
  795. package/dist/esm/transaction/common/verifyPayGoAmount.d.ts +1 -0
  796. package/dist/esm/transaction/common/verifyPayGoAmount.d.ts.map +1 -0
  797. package/dist/esm/transaction/common/verifyPayGoAmount.js +1 -0
  798. package/dist/esm/transaction/decode.d.ts +21 -0
  799. package/dist/esm/transaction/decode.d.ts.map +1 -0
  800. package/dist/esm/transaction/decode.js +40 -0
  801. package/dist/esm/transaction/descriptor/explainPsbt.d.ts +5 -0
  802. package/dist/esm/transaction/descriptor/explainPsbt.d.ts.map +1 -0
  803. package/dist/esm/transaction/descriptor/explainPsbt.js +45 -0
  804. package/dist/esm/transaction/descriptor/index.d.ts +7 -0
  805. package/dist/esm/transaction/descriptor/index.d.ts.map +1 -0
  806. package/dist/esm/transaction/descriptor/index.js +6 -0
  807. package/dist/esm/transaction/descriptor/parse.d.ts +18 -0
  808. package/dist/esm/transaction/descriptor/parse.d.ts.map +1 -0
  809. package/dist/esm/transaction/descriptor/parse.js +81 -0
  810. package/dist/esm/transaction/descriptor/parseToAmountType.d.ts +15 -0
  811. package/dist/esm/transaction/descriptor/parseToAmountType.d.ts.map +1 -0
  812. package/dist/esm/transaction/descriptor/parseToAmountType.js +55 -0
  813. package/dist/esm/transaction/descriptor/recipient.d.ts +5 -0
  814. package/dist/esm/transaction/descriptor/recipient.d.ts.map +1 -0
  815. package/dist/esm/transaction/descriptor/recipient.js +2 -0
  816. package/dist/esm/transaction/descriptor/signPsbt.d.ts +25 -0
  817. package/dist/esm/transaction/descriptor/signPsbt.d.ts.map +1 -0
  818. package/dist/esm/transaction/descriptor/signPsbt.js +39 -0
  819. package/dist/esm/transaction/descriptor/verifyTransaction.d.ts +36 -0
  820. package/dist/esm/transaction/descriptor/verifyTransaction.d.ts.map +1 -0
  821. package/dist/esm/transaction/descriptor/verifyTransaction.js +80 -0
  822. package/dist/esm/transaction/explainTransaction.d.ts +19 -0
  823. package/dist/esm/transaction/explainTransaction.d.ts.map +1 -0
  824. package/dist/esm/transaction/explainTransaction.js +49 -0
  825. package/dist/esm/transaction/fixedScript/SigningError.d.ts +24 -0
  826. package/dist/esm/transaction/fixedScript/SigningError.d.ts.map +1 -0
  827. package/dist/esm/transaction/fixedScript/SigningError.js +26 -0
  828. package/dist/esm/transaction/fixedScript/explainPsbtWasm.d.ts +47 -0
  829. package/dist/esm/transaction/fixedScript/explainPsbtWasm.d.ts.map +1 -0
  830. package/dist/esm/transaction/fixedScript/explainPsbtWasm.js +147 -0
  831. package/dist/esm/transaction/fixedScript/explainTransaction.d.ts +47 -0
  832. package/dist/esm/transaction/fixedScript/explainTransaction.d.ts.map +1 -0
  833. package/dist/esm/transaction/fixedScript/explainTransaction.js +2 -0
  834. package/dist/esm/transaction/fixedScript/index.d.ts +8 -0
  835. package/dist/esm/transaction/fixedScript/index.d.ts.map +1 -0
  836. package/dist/esm/transaction/fixedScript/index.js +7 -0
  837. package/dist/esm/transaction/fixedScript/musig2.d.ts +4 -0
  838. package/dist/esm/transaction/fixedScript/musig2.d.ts.map +1 -0
  839. package/dist/esm/transaction/fixedScript/musig2.js +2 -0
  840. package/dist/esm/transaction/fixedScript/parseOutput.d.ts +30 -0
  841. package/dist/esm/transaction/fixedScript/parseOutput.d.ts.map +1 -0
  842. package/dist/esm/transaction/fixedScript/parseOutput.js +210 -0
  843. package/dist/esm/transaction/fixedScript/parseTransaction.d.ts +9 -0
  844. package/dist/esm/transaction/fixedScript/parseTransaction.d.ts.map +1 -0
  845. package/dist/esm/transaction/fixedScript/parseTransaction.js +228 -0
  846. package/dist/esm/transaction/fixedScript/replayProtection.d.ts +10 -0
  847. package/dist/esm/transaction/fixedScript/replayProtection.d.ts.map +1 -0
  848. package/dist/esm/transaction/fixedScript/replayProtection.js +38 -0
  849. package/dist/esm/transaction/fixedScript/signPsbtWasm.d.ts +27 -0
  850. package/dist/esm/transaction/fixedScript/signPsbtWasm.d.ts.map +1 -0
  851. package/dist/esm/transaction/fixedScript/signPsbtWasm.js +121 -0
  852. package/dist/esm/transaction/fixedScript/signTransaction.d.ts +31 -0
  853. package/dist/esm/transaction/fixedScript/signTransaction.d.ts.map +1 -0
  854. package/dist/esm/transaction/fixedScript/signTransaction.js +47 -0
  855. package/dist/esm/transaction/fixedScript/verifyTransaction.d.ts +21 -0
  856. package/dist/esm/transaction/fixedScript/verifyTransaction.d.ts.map +1 -0
  857. package/dist/esm/transaction/fixedScript/verifyTransaction.js +176 -0
  858. package/dist/esm/transaction/getPayGoVerificationPubkey.d.ts +9 -0
  859. package/dist/esm/transaction/getPayGoVerificationPubkey.d.ts.map +1 -0
  860. package/dist/esm/transaction/getPayGoVerificationPubkey.js +17 -0
  861. package/dist/esm/transaction/index.d.ts +9 -0
  862. package/dist/esm/transaction/index.d.ts.map +1 -0
  863. package/dist/esm/transaction/index.js +9 -0
  864. package/dist/esm/transaction/outputDifference.d.ts +44 -0
  865. package/dist/esm/transaction/outputDifference.d.ts.map +1 -0
  866. package/dist/esm/transaction/outputDifference.js +45 -0
  867. package/dist/esm/transaction/parseTransaction.d.ts +5 -0
  868. package/dist/esm/transaction/parseTransaction.d.ts.map +1 -0
  869. package/dist/esm/transaction/parseTransaction.js +12 -0
  870. package/dist/esm/transaction/recipient.d.ts +76 -0
  871. package/dist/esm/transaction/recipient.d.ts.map +1 -0
  872. package/dist/esm/transaction/recipient.js +120 -0
  873. package/dist/esm/transaction/signTransaction.d.ts +18 -0
  874. package/dist/esm/transaction/signTransaction.d.ts.map +1 -0
  875. package/dist/esm/transaction/signTransaction.js +73 -0
  876. package/dist/esm/transaction/types.d.ts +47 -0
  877. package/dist/esm/transaction/types.d.ts.map +1 -0
  878. package/dist/esm/transaction/types.js +2 -0
  879. package/dist/esm/transaction/verifyTransaction.d.ts +5 -0
  880. package/dist/esm/transaction/verifyTransaction.d.ts.map +1 -0
  881. package/dist/esm/transaction/verifyTransaction.js +14 -0
  882. package/dist/esm/unspent.d.ts +59 -0
  883. package/dist/esm/unspent.d.ts.map +1 -0
  884. package/dist/esm/unspent.js +15 -0
  885. package/dist/esm/verifyKey.d.ts +22 -0
  886. package/dist/esm/verifyKey.d.ts.map +1 -0
  887. package/dist/esm/verifyKey.js +102 -0
  888. package/dist/esm/wallet.d.ts +15 -0
  889. package/dist/esm/wallet.d.ts.map +1 -0
  890. package/dist/esm/wallet.js +5 -0
  891. package/package.json +49 -20
  892. package/.eslintignore +0 -5
  893. package/CHANGELOG.md +0 -253
  894. package/dist/src/abstractUtxoCoin.d.ts +0 -392
  895. package/dist/src/abstractUtxoCoin.d.ts.map +0 -1
  896. package/dist/src/abstractUtxoCoin.js +0 -931
  897. package/dist/src/config.js +0 -14
  898. package/dist/src/index.d.ts +0 -6
  899. package/dist/src/index.d.ts.map +0 -1
  900. package/dist/src/index.js +0 -18
  901. package/dist/src/parseOutput.d.ts +0 -22
  902. package/dist/src/parseOutput.d.ts.map +0 -1
  903. package/dist/src/parseOutput.js +0 -181
  904. package/dist/src/recovery/RecoveryProvider.d.ts.map +0 -1
  905. package/dist/src/recovery/RecoveryProvider.js +0 -24
  906. package/dist/src/recovery/backupKeyRecovery.d.ts +0 -62
  907. package/dist/src/recovery/backupKeyRecovery.d.ts.map +0 -1
  908. package/dist/src/recovery/backupKeyRecovery.js +0 -293
  909. package/dist/src/recovery/baseApi.d.ts.map +0 -1
  910. package/dist/src/recovery/baseApi.js +0 -73
  911. package/dist/src/recovery/coingeckoApi.d.ts.map +0 -1
  912. package/dist/src/recovery/coingeckoApi.js +0 -47
  913. package/dist/src/recovery/crossChainRecovery.d.ts.map +0 -1
  914. package/dist/src/recovery/crossChainRecovery.js +0 -294
  915. package/dist/src/recovery/mempoolApi.js +0 -33
  916. package/dist/src/recovery/smartbitApi.d.ts +0 -11
  917. package/dist/src/recovery/smartbitApi.d.ts.map +0 -1
  918. package/dist/src/recovery/smartbitApi.js +0 -36
  919. package/dist/src/replayProtection.d.ts +0 -4
  920. package/dist/src/replayProtection.d.ts.map +0 -1
  921. package/dist/src/replayProtection.js +0 -21
  922. package/dist/src/sign.d.ts +0 -31
  923. package/dist/src/sign.d.ts.map +0 -1
  924. package/dist/src/sign.js +0 -104
  925. package/dist/tsconfig.tsbuildinfo +0 -8213
  926. /package/dist/{src → cjs/src}/config.d.ts +0 -0
  927. /package/dist/{src → cjs/src}/recovery/mempoolApi.d.ts +0 -0
  928. /package/dist/{src → esm}/config.d.ts.map +0 -0
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.pubkeyTestnet = exports.pubkeyProd = void 0;
4
+ exports.getReplayProtectionPubkeys = getReplayProtectionPubkeys;
5
+ exports.getReplayProtectionAddresses = getReplayProtectionAddresses;
6
+ exports.isReplayProtectionUnspent = isReplayProtectionUnspent;
7
+ const wasm_utxo_1 = require("@bitgo/wasm-utxo");
8
+ exports.pubkeyProd = Buffer.from('0255b9f71ac2c78fffd83e3e37b9e17ae70d5437b7f56d0ed2e93b7de08015aa59', 'hex');
9
+ exports.pubkeyTestnet = Buffer.from('0219da48412c2268865fe8c126327d1b12eee350a3b69eb09e3323cc9a11828945', 'hex');
10
+ function getReplayProtectionPubkeys(coinName) {
11
+ switch (coinName) {
12
+ case 'bch':
13
+ case 'bsv':
14
+ return [exports.pubkeyProd];
15
+ case 'tbsv':
16
+ case 'tbch':
17
+ return [exports.pubkeyTestnet];
18
+ }
19
+ return [];
20
+ }
21
+ // sh(pk(pubkeyProd))
22
+ // 33p1q7mTGyeM5UnZERGiMcVUkY12SCsatA
23
+ // bitcoincash:pqt5x9w0m6z0f3znjkkx79wl3l7ywrszesemp8xgpf
24
+ const replayProtectionScriptsProd = [Buffer.from('a914174315cfde84f4c45395ac6f15df8ffc470e02cc87', 'hex')];
25
+ // sh(pk(pubkeyTestnet))
26
+ // 2MuMnPoSDgWEpNWH28X2nLtYMXQJCyT61eY
27
+ // bchtest:pqtjmnzwqffkrk2349g3cecfwwjwxusvnq87n07cal
28
+ const replayProtectionScriptsTestnet = [Buffer.from('a914172dcc4e025361d951a9511c670973a4e3720c9887', 'hex')];
29
+ function getReplayProtectionAddresses(coinName, format = 'default') {
30
+ switch (coinName) {
31
+ case 'bch':
32
+ case 'bsv':
33
+ return replayProtectionScriptsProd.map((script) => wasm_utxo_1.address.fromOutputScriptWithCoin(script, coinName, format));
34
+ case 'tbsv':
35
+ case 'tbch':
36
+ return replayProtectionScriptsTestnet.map((script) => wasm_utxo_1.address.fromOutputScriptWithCoin(script, coinName, format));
37
+ default:
38
+ return [];
39
+ }
40
+ }
41
+ function isReplayProtectionUnspent(u, coinName) {
42
+ return getReplayProtectionAddresses(coinName).includes(u.address);
43
+ }
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwbGF5UHJvdGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy90cmFuc2FjdGlvbi9maXhlZFNjcmlwdC9yZXBsYXlQcm90ZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQVFBLGdFQVVDO0FBV0Qsb0VBY0M7QUFFRCw4REFFQztBQS9DRCxnREFBK0Q7QUFJbEQsUUFBQSxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxvRUFBb0UsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUV0RyxRQUFBLGFBQWEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLG9FQUFvRSxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBRXRILFNBQWdCLDBCQUEwQixDQUFDLFFBQXlDO0lBQ2xGLFFBQVEsUUFBUSxFQUFFLENBQUM7UUFDakIsS0FBSyxLQUFLLENBQUM7UUFDWCxLQUFLLEtBQUs7WUFDUixPQUFPLENBQUMsa0JBQVUsQ0FBQyxDQUFDO1FBQ3RCLEtBQUssTUFBTSxDQUFDO1FBQ1osS0FBSyxNQUFNO1lBQ1QsT0FBTyxDQUFDLHFCQUFhLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBQ0QsT0FBTyxFQUFFLENBQUM7QUFDWixDQUFDO0FBRUQscUJBQXFCO0FBQ3JCLHFDQUFxQztBQUNyQyx5REFBeUQ7QUFDekQsTUFBTSwyQkFBMkIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0RBQWdELEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUMzRyx3QkFBd0I7QUFDeEIsc0NBQXNDO0FBQ3RDLHFEQUFxRDtBQUNyRCxNQUFNLDhCQUE4QixHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxnREFBZ0QsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBRTlHLFNBQWdCLDRCQUE0QixDQUMxQyxRQUF5QyxFQUN6QyxTQUF3QixTQUFTO0lBRWpDLFFBQVEsUUFBUSxFQUFFLENBQUM7UUFDakIsS0FBSyxLQUFLLENBQUM7UUFDWCxLQUFLLEtBQUs7WUFDUixPQUFPLDJCQUEyQixDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsbUJBQU8sQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDakgsS0FBSyxNQUFNLENBQUM7UUFDWixLQUFLLE1BQU07WUFDVCxPQUFPLDhCQUE4QixDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsbUJBQU8sQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDcEg7WUFDRSxPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBZ0IseUJBQXlCLENBQUMsQ0FBc0IsRUFBRSxRQUF5QztJQUN6RyxPQUFPLDRCQUE0QixDQUFDLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDcEUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFkZHJlc3MsIHR5cGUgQWRkcmVzc0Zvcm1hdCB9IGZyb20gJ0BiaXRnby93YXNtLXV0eG8nO1xuXG5pbXBvcnQgeyBVdHhvQ29pbk5hbWUsIFdhc21VdHhvQ29pbk5hbWUgfSBmcm9tICcuLi8uLi9uYW1lcyc7XG5cbmV4cG9ydCBjb25zdCBwdWJrZXlQcm9kID0gQnVmZmVyLmZyb20oJzAyNTViOWY3MWFjMmM3OGZmZmQ4M2UzZTM3YjllMTdhZTcwZDU0MzdiN2Y1NmQwZWQyZTkzYjdkZTA4MDE1YWE1OScsICdoZXgnKTtcblxuZXhwb3J0IGNvbnN0IHB1YmtleVRlc3RuZXQgPSBCdWZmZXIuZnJvbSgnMDIxOWRhNDg0MTJjMjI2ODg2NWZlOGMxMjYzMjdkMWIxMmVlZTM1MGEzYjY5ZWIwOWUzMzIzY2M5YTExODI4OTQ1JywgJ2hleCcpO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVwbGF5UHJvdGVjdGlvblB1YmtleXMoY29pbk5hbWU6IFV0eG9Db2luTmFtZSB8IFdhc21VdHhvQ29pbk5hbWUpOiBCdWZmZXJbXSB7XG4gIHN3aXRjaCAoY29pbk5hbWUpIHtcbiAgICBjYXNlICdiY2gnOlxuICAgIGNhc2UgJ2Jzdic6XG4gICAgICByZXR1cm4gW3B1YmtleVByb2RdO1xuICAgIGNhc2UgJ3Ric3YnOlxuICAgIGNhc2UgJ3RiY2gnOlxuICAgICAgcmV0dXJuIFtwdWJrZXlUZXN0bmV0XTtcbiAgfVxuICByZXR1cm4gW107XG59XG5cbi8vIHNoKHBrKHB1YmtleVByb2QpKVxuLy8gMzNwMXE3bVRHeWVNNVVuWkVSR2lNY1ZVa1kxMlNDc2F0QVxuLy8gYml0Y29pbmNhc2g6cHF0NXg5dzBtNnowZjN6bmpra3g3OXdsM2w3eXdyc3plc2VtcDh4Z3BmXG5jb25zdCByZXBsYXlQcm90ZWN0aW9uU2NyaXB0c1Byb2QgPSBbQnVmZmVyLmZyb20oJ2E5MTQxNzQzMTVjZmRlODRmNGM0NTM5NWFjNmYxNWRmOGZmYzQ3MGUwMmNjODcnLCAnaGV4JyldO1xuLy8gc2gocGsocHVia2V5VGVzdG5ldCkpXG4vLyAyTXVNblBvU0RnV0VwTldIMjhYMm5MdFlNWFFKQ3lUNjFlWVxuLy8gYmNodGVzdDpwcXRqbW56d3FmZmtyazIzNDlnM2NlY2Z3d2p3eHVzdm5xODduMDdjYWxcbmNvbnN0IHJlcGxheVByb3RlY3Rpb25TY3JpcHRzVGVzdG5ldCA9IFtCdWZmZXIuZnJvbSgnYTkxNDE3MmRjYzRlMDI1MzYxZDk1MWE5NTExYzY3MDk3M2E0ZTM3MjBjOTg4NycsICdoZXgnKV07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXBsYXlQcm90ZWN0aW9uQWRkcmVzc2VzKFxuICBjb2luTmFtZTogVXR4b0NvaW5OYW1lIHwgV2FzbVV0eG9Db2luTmFtZSxcbiAgZm9ybWF0OiBBZGRyZXNzRm9ybWF0ID0gJ2RlZmF1bHQnXG4pOiBzdHJpbmdbXSB7XG4gIHN3aXRjaCAoY29pbk5hbWUpIHtcbiAgICBjYXNlICdiY2gnOlxuICAgIGNhc2UgJ2Jzdic6XG4gICAgICByZXR1cm4gcmVwbGF5UHJvdGVjdGlvblNjcmlwdHNQcm9kLm1hcCgoc2NyaXB0KSA9PiBhZGRyZXNzLmZyb21PdXRwdXRTY3JpcHRXaXRoQ29pbihzY3JpcHQsIGNvaW5OYW1lLCBmb3JtYXQpKTtcbiAgICBjYXNlICd0YnN2JzpcbiAgICBjYXNlICd0YmNoJzpcbiAgICAgIHJldHVybiByZXBsYXlQcm90ZWN0aW9uU2NyaXB0c1Rlc3RuZXQubWFwKChzY3JpcHQpID0+IGFkZHJlc3MuZnJvbU91dHB1dFNjcmlwdFdpdGhDb2luKHNjcmlwdCwgY29pbk5hbWUsIGZvcm1hdCkpO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gW107XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzUmVwbGF5UHJvdGVjdGlvblVuc3BlbnQodTogeyBhZGRyZXNzOiBzdHJpbmcgfSwgY29pbk5hbWU6IFV0eG9Db2luTmFtZSB8IFdhc21VdHhvQ29pbk5hbWUpOiBib29sZWFuIHtcbiAgcmV0dXJuIGdldFJlcGxheVByb3RlY3Rpb25BZGRyZXNzZXMoY29pbk5hbWUpLmluY2x1ZGVzKHUuYWRkcmVzcyk7XG59XG4iXX0=
@@ -0,0 +1,27 @@
1
+ import { BIP32, bip32, ECPair, fixedScriptWallet } from '@bitgo/wasm-utxo';
2
+ import { Musig2Participant } from './musig2';
3
+ export type ReplayProtectionKeys = {
4
+ publicKeys: (Uint8Array | ECPair)[];
5
+ };
6
+ /**
7
+ * Verify signatures on all signed inputs, per-input for granular error reporting.
8
+ * Shared by the generic wasm signing path and Zec's Ironwood (v6) signing path.
9
+ */
10
+ export declare function verifyPsbtSignaturesWasm(tx: fixedScriptWallet.BitGoPsbt, wasmSigner: BIP32, rootWalletKeys: fixedScriptWallet.RootWalletKeys, replayProtection: ReplayProtectionKeys): void;
11
+ /** Embed the wasm-utxo version metadata into the signed PSBT. Shared by all wasm signing paths. */
12
+ export declare function writeWasmUtxoSignedWithKv(tx: fixedScriptWallet.BitGoPsbt): void;
13
+ /**
14
+ * Sign all inputs of a PSBT and verify signatures after signing.
15
+ * Uses bulk signing for performance (signs all matching inputs in one pass).
16
+ * Collects and logs signing errors and verification errors, throws error in the end if any of them failed.
17
+ */
18
+ export declare function signAndVerifyPsbtWasm(tx: fixedScriptWallet.BitGoPsbt, signerKeychain: bip32.BIP32Interface | BIP32, rootWalletKeys: fixedScriptWallet.RootWalletKeys, replayProtection: ReplayProtectionKeys, { writeSignedWith }?: {
19
+ writeSignedWith?: boolean;
20
+ }): fixedScriptWallet.BitGoPsbt;
21
+ export declare function signPsbtWithMusig2ParticipantWasm(coin: Musig2Participant<fixedScriptWallet.BitGoPsbt>, tx: fixedScriptWallet.BitGoPsbt, signerKeychain: bip32.BIP32Interface | undefined, rootWalletKeys: fixedScriptWallet.RootWalletKeys, params: {
22
+ replayProtection: ReplayProtectionKeys;
23
+ signingStep: 'signerNonce' | 'cosignerNonce' | 'signerSignature' | undefined;
24
+ walletId: string | undefined;
25
+ writeSignedWith?: boolean;
26
+ }): Promise<fixedScriptWallet.BitGoPsbt>;
27
+ //# sourceMappingURL=signPsbtWasm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signPsbtWasm.d.ts","sourceRoot":"","sources":["../../../../../src/transaction/fixedScript/signPsbtWasm.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAsB,MAAM,kBAAkB,CAAC;AAG/F,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAM7C,MAAM,MAAM,oBAAoB,GAAG;IACjC,UAAU,EAAE,CAAC,UAAU,GAAG,MAAM,CAAC,EAAE,CAAC;CACrC,CAAC;AAmBF;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,EAAE,EAAE,iBAAiB,CAAC,SAAS,EAC/B,UAAU,EAAE,KAAK,EACjB,cAAc,EAAE,iBAAiB,CAAC,cAAc,EAChD,gBAAgB,EAAE,oBAAoB,GACrC,IAAI,CAyBN;AAED,mGAAmG;AACnG,wBAAgB,yBAAyB,CAAC,EAAE,EAAE,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAS/E;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,iBAAiB,CAAC,SAAS,EAC/B,cAAc,EAAE,KAAK,CAAC,cAAc,GAAG,KAAK,EAC5C,cAAc,EAAE,iBAAiB,CAAC,cAAc,EAChD,gBAAgB,EAAE,oBAAoB,EACtC,EAAE,eAAuB,EAAE,GAAE;IAAE,eAAe,CAAC,EAAE,OAAO,CAAA;CAAO,GAC9D,iBAAiB,CAAC,SAAS,CAiB7B;AAED,wBAAsB,iCAAiC,CACrD,IAAI,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,SAAS,CAAC,EACpD,EAAE,EAAE,iBAAiB,CAAC,SAAS,EAC/B,cAAc,EAAE,KAAK,CAAC,cAAc,GAAG,SAAS,EAChD,cAAc,EAAE,iBAAiB,CAAC,cAAc,EAChD,MAAM,EAAE;IACN,gBAAgB,EAAE,oBAAoB,CAAC;IACvC,WAAW,EAAE,aAAa,GAAG,eAAe,GAAG,iBAAiB,GAAG,SAAS,CAAC;IAC7E,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,GACA,OAAO,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAmDtC"}
@@ -0,0 +1,130 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.verifyPsbtSignaturesWasm = verifyPsbtSignaturesWasm;
7
+ exports.writeWasmUtxoSignedWithKv = writeWasmUtxoSignedWithKv;
8
+ exports.signAndVerifyPsbtWasm = signAndVerifyPsbtWasm;
9
+ exports.signPsbtWithMusig2ParticipantWasm = signPsbtWithMusig2ParticipantWasm;
10
+ const assert_1 = __importDefault(require("assert"));
11
+ const wasm_utxo_1 = require("@bitgo/wasm-utxo");
12
+ const SigningError_1 = require("./SigningError");
13
+ function toWasmBIP32(key) {
14
+ return key instanceof wasm_utxo_1.BIP32 ? key : wasm_utxo_1.BIP32.fromBase58(key.toBase58());
15
+ }
16
+ /**
17
+ * Key Value: Unsigned tx id => PSBT
18
+ * It is used to cache PSBTs with taproot key path (MuSig2) inputs during external express signer is activated.
19
+ * Reason: MuSig2 signer secure nonce is cached in the BitGoPsbt object. It will be required during the signing step.
20
+ * For more info, check SignTransactionOptions.signingStep
21
+ */
22
+ const PSBT_CACHE_WASM = new Map();
23
+ function hasKeyPathSpendInput(tx, rootWalletKeys, replayProtection) {
24
+ const parsed = tx.parseTransactionWithWalletKeys(rootWalletKeys, { replayProtection });
25
+ return parsed.inputs.some((input) => input.scriptType === 'p2trMusig2KeyPath');
26
+ }
27
+ /**
28
+ * Verify signatures on all signed inputs, per-input for granular error reporting.
29
+ * Shared by the generic wasm signing path and Zec's Ironwood (v6) signing path.
30
+ */
31
+ function verifyPsbtSignaturesWasm(tx, wasmSigner, rootWalletKeys, replayProtection) {
32
+ const parsed = tx.parseTransactionWithWalletKeys(rootWalletKeys, { replayProtection });
33
+ const verifyErrors = [];
34
+ parsed.inputs.forEach((input, inputIndex) => {
35
+ if (input.scriptType === 'p2shP2pk') {
36
+ // Skip replay protection inputs - they are platform signed only
37
+ return;
38
+ }
39
+ const outputId = `${input.previousOutput.txid}:${input.previousOutput.vout}`;
40
+ try {
41
+ if (!tx.verifySignature(inputIndex, wasmSigner)) {
42
+ verifyErrors.push(new SigningError_1.InputSigningError(inputIndex, input.scriptType, { id: outputId }, new Error('invalid signature')));
43
+ }
44
+ }
45
+ catch (e) {
46
+ verifyErrors.push(new SigningError_1.InputSigningError(inputIndex, input.scriptType, { id: outputId }, e));
47
+ }
48
+ });
49
+ if (verifyErrors.length) {
50
+ throw new SigningError_1.TransactionSigningError([], verifyErrors);
51
+ }
52
+ }
53
+ /** Embed the wasm-utxo version metadata into the signed PSBT. Shared by all wasm signing paths. */
54
+ function writeWasmUtxoSignedWithKv(tx) {
55
+ const versionInfo = (0, wasm_utxo_1.getWasmUtxoVersion)();
56
+ const versionPayload = new TextEncoder().encode(JSON.stringify({
57
+ version: versionInfo.version,
58
+ gitHash: versionInfo.gitHash,
59
+ }));
60
+ tx.setKV({ type: 'bitgo', subtype: wasm_utxo_1.fixedScriptWallet.BitGoKeySubtype.WasmUtxoSignedWith }, versionPayload);
61
+ }
62
+ /**
63
+ * Sign all inputs of a PSBT and verify signatures after signing.
64
+ * Uses bulk signing for performance (signs all matching inputs in one pass).
65
+ * Collects and logs signing errors and verification errors, throws error in the end if any of them failed.
66
+ */
67
+ function signAndVerifyPsbtWasm(tx, signerKeychain, rootWalletKeys, replayProtection, { writeSignedWith = false } = {}) {
68
+ const wasmSigner = toWasmBIP32(signerKeychain);
69
+ // Bulk sign all wallet inputs (ECDSA + MuSig2) - much faster than per-input signing
70
+ try {
71
+ tx.sign(wasmSigner);
72
+ }
73
+ catch (e) {
74
+ throw new SigningError_1.BulkSigningError(e);
75
+ }
76
+ verifyPsbtSignaturesWasm(tx, wasmSigner, rootWalletKeys, replayProtection);
77
+ if (writeSignedWith) {
78
+ writeWasmUtxoSignedWithKv(tx);
79
+ }
80
+ return tx;
81
+ }
82
+ async function signPsbtWithMusig2ParticipantWasm(coin, tx, signerKeychain, rootWalletKeys, params) {
83
+ const wasmSigner = signerKeychain ? toWasmBIP32(signerKeychain) : undefined;
84
+ if (hasKeyPathSpendInput(tx, rootWalletKeys, params.replayProtection)) {
85
+ switch (params.signingStep) {
86
+ case 'signerNonce':
87
+ (0, assert_1.default)(wasmSigner);
88
+ tx.generateMusig2Nonces(wasmSigner);
89
+ PSBT_CACHE_WASM.set(tx.unsignedTxId(), tx);
90
+ return tx;
91
+ case 'cosignerNonce':
92
+ (0, assert_1.default)(params.walletId, 'walletId is required for MuSig2 bitgo nonce');
93
+ return await coin.getMusig2Nonces(tx, params.walletId);
94
+ case 'signerSignature': {
95
+ const txId = tx.unsignedTxId();
96
+ const cachedPsbt = PSBT_CACHE_WASM.get(txId);
97
+ (0, assert_1.default)(cachedPsbt, `Psbt is missing from txCache (cache size ${PSBT_CACHE_WASM.size}).
98
+ This may be due to the request being routed to a different BitGo-Express instance that for signing step 'signerNonce'.`);
99
+ PSBT_CACHE_WASM.delete(txId);
100
+ cachedPsbt.combineMusig2Nonces(tx);
101
+ tx = cachedPsbt;
102
+ break;
103
+ }
104
+ default:
105
+ // this instance is not an external signer
106
+ (0, assert_1.default)(params.walletId, 'walletId is required for MuSig2 bitgo nonce');
107
+ (0, assert_1.default)(wasmSigner);
108
+ tx.generateMusig2Nonces(wasmSigner);
109
+ const response = await coin.getMusig2Nonces(tx, params.walletId);
110
+ tx.combineMusig2Nonces(response);
111
+ break;
112
+ }
113
+ }
114
+ else {
115
+ switch (params.signingStep) {
116
+ case 'signerNonce':
117
+ case 'cosignerNonce':
118
+ /**
119
+ * In certain cases, the caller of this method may not know whether the txHex contains a psbt with taproot key path spend input(s).
120
+ * Instead of throwing error, no-op and return the txHex. So that the caller can call this method in the same sequence.
121
+ */
122
+ return tx;
123
+ }
124
+ }
125
+ (0, assert_1.default)(signerKeychain);
126
+ return signAndVerifyPsbtWasm(tx, signerKeychain, rootWalletKeys, params.replayProtection, {
127
+ writeSignedWith: params.writeSignedWith,
128
+ });
129
+ }
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnblBzYnRXYXNtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL2ZpeGVkU2NyaXB0L3NpZ25Qc2J0V2FzbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQW9DQSw0REE4QkM7QUFHRCw4REFTQztBQU9ELHNEQXVCQztBQUVELDhFQThEQztBQTVLRCxvREFBNEI7QUFFNUIsZ0RBQStGO0FBRS9GLGlEQUE4RjtBQUc5RixTQUFTLFdBQVcsQ0FBQyxHQUFpQztJQUNwRCxPQUFPLEdBQUcsWUFBWSxpQkFBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLGlCQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0FBQ3ZFLENBQUM7QUFNRDs7Ozs7R0FLRztBQUNILE1BQU0sZUFBZSxHQUFHLElBQUksR0FBRyxFQUF1QyxDQUFDO0FBRXZFLFNBQVMsb0JBQW9CLENBQzNCLEVBQStCLEVBQy9CLGNBQWdELEVBQ2hELGdCQUFzQztJQUV0QyxNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUMsOEJBQThCLENBQUMsY0FBYyxFQUFFLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZGLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxVQUFVLEtBQUssbUJBQW1CLENBQUMsQ0FBQztBQUNqRixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBZ0Isd0JBQXdCLENBQ3RDLEVBQStCLEVBQy9CLFVBQWlCLEVBQ2pCLGNBQWdELEVBQ2hELGdCQUFzQztJQUV0QyxNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUMsOEJBQThCLENBQUMsY0FBYyxFQUFFLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZGLE1BQU0sWUFBWSxHQUFnQyxFQUFFLENBQUM7SUFFckQsTUFBTSxD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b0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDcEMsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ2pFLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDakMsTUFBTTtRQUNWLENBQUM7SUFDSCxDQUFDO1NBQU0sQ0FBQztRQUNOLFFBQVEsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzNCLEtBQUssYUFBYSxDQUFDO1lBQ25CLEtBQUssZUFBZTtnQkFDbEI7OzttQkFHRztnQkFDSCxPQUFPLEVBQUUsQ0FBQztRQUNkLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBQSxnQkFBTSxFQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3ZCLE9BQU8scUJBQXFCLENBQUMsRUFBRSxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixFQUFFO1FBQ3hGLGVBQWUsRUFBRSxNQUFNLENBQUMsZUFBZTtLQUN4QyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuXG5pbXBvcnQgeyBCSVAzMiwgYmlwMzIsIEVDUGFpciwgZml4ZWRTY3JpcHRXYWxsZXQsIGdldFdhc21VdHhvVmVyc2lvbiB9IGZyb20gJ0BiaXRnby93YXNtLXV0eG8nO1xuXG5pbXBvcnQgeyBCdWxrU2lnbmluZ0Vycm9yLCBJbnB1dFNpZ25pbmdFcnJvciwgVHJhbnNhY3Rpb25TaWduaW5nRXJyb3IgfSBmcm9tICcuL1NpZ25pbmdFcnJvcic7XG5pbXBvcnQgeyBNdXNpZzJQYXJ0aWNpcGFudCB9IGZyb20gJy4vbXVzaWcyJztcblxuZnVuY3Rpb24gdG9XYXNtQklQMzIoa2V5OiBiaXAzMi5CSVAzMkludGVyZmFjZSB8IEJJUDMyKTogQklQMzIge1xuICByZXR1cm4ga2V5IGluc3RhbmNlb2YgQklQMzIgPyBrZXkgOiBCSVAzMi5mcm9tQmFzZTU4KGtleS50b0Jhc2U1OCgpKTtcbn1cblxuZXhwb3J0IHR5cGUgUmVwbGF5UHJvdGVjdGlvbktleXMgPSB7XG4gIHB1YmxpY0tleXM6IChVaW50OEFycmF5IHwgRUNQYWlyKVtdO1xufTtcblxuLyoqXG4gKiBLZXkgVmFsdWU6IFVuc2lnbmVkIHR4IGlkID0+IFBTQlRcbiAqIEl0IGlzIHVzZWQgdG8gY2FjaGUgUFNCVHMgd2l0aCB0YXByb290IGtleSBwYXRoIChNdVNpZzIpIGlucHV0cyBkdXJpbmcgZXh0ZXJuYWwgZXhwcmVzcyBzaWduZXIgaXMgYWN0aXZhdGVkLlxuICogUmVhc29uOiBNdVNpZzIgc2lnbmVyIHNlY3VyZSBub25jZSBpcyBjYWNoZWQgaW4gdGhlIEJpdEdvUHNidCBvYmplY3QuIEl0IHdpbGwgYmUgcmVxdWlyZWQgZHVyaW5nIHRoZSBzaWduaW5nIHN0ZXAuXG4gKiBGb3IgbW9yZSBpbmZvLCBjaGVjayBTaWduVHJhbnNhY3Rpb25PcHRpb25zLnNpZ25pbmdTdGVwXG4gKi9cbmNvbnN0IFBTQlRfQ0FDSEVfV0FTTSA9IG5ldyBNYXA8c3RyaW5nLCBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQ+KCk7XG5cbmZ1bmN0aW9uIGhhc0tleVBhdGhTcGVuZElucHV0KFxuICB0eDogZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0LFxuICByb290V2FsbGV0S2V5czogZml4ZWRTY3JpcHRXYWxsZXQuUm9vdFdhbGxldEtleXMsXG4gIHJlcGxheVByb3RlY3Rpb246IFJlcGxheVByb3RlY3Rpb25LZXlzXG4pOiBib29sZWFuIHtcbiAgY29uc3QgcGFyc2VkID0gdHgucGFyc2VUcmFuc2FjdGlvbldpdGhXYWxsZXRLZXlzKHJvb3RXYWxsZXRLZXlzLCB7IHJlcGxheVByb3RlY3Rpb24gfSk7XG4gIHJldHVybiBwYXJzZWQuaW5wdXRzLnNvbWUoKGlucHV0KSA9PiBpbnB1dC5zY3JpcHRUeXBlID09PSAncDJ0ck11c2lnMktleVBhdGgnKTtcbn1cblxuLyoqXG4gKiBWZXJpZnkgc2lnbmF0dXJlcyBvbiBhbGwgc2lnbmVkIGlucHV0cywgcGVyLWlucHV0IGZvciBncmFudWxhciBlcnJvciByZXBvcnRpbmcuXG4gKiBTaGFyZWQgYnkgdGhlIGdlbmVyaWMgd2FzbSBzaWduaW5nIHBhdGggYW5kIFplYydzIElyb253b29kICh2Nikgc2lnbmluZyBwYXRoLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdmVyaWZ5UHNidFNpZ25hdHVyZXNXYXNtKFxuICB0eDogZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0LFxuICB3YXNtU2lnbmVyOiBCSVAzMixcbiAgcm9vdFdhbGxldEtleXM6IGZpeGVkU2NyaXB0V2FsbGV0LlJvb3RXYWxsZXRLZXlzLFxuICByZXBsYXlQcm90ZWN0aW9uOiBSZXBsYXlQcm90ZWN0aW9uS2V5c1xuKTogdm9pZCB7XG4gIGNvbnN0IHBhcnNlZCA9IHR4LnBhcnNlVHJhbnNhY3Rpb25XaXRoV2FsbGV0S2V5cyhyb290V2FsbGV0S2V5cywgeyByZXBsYXlQcm90ZWN0aW9uIH0pO1xuICBjb25zdCB2ZXJpZnlFcnJvcnM6IElucHV0U2lnbmluZ0Vycm9yPGJpZ2ludD5bXSA9IFtdO1xuXG4gIHBhcnNlZC5pbnB1dHMuZm9yRWFjaCgoaW5wdXQsIGlucHV0SW5kZXgpID0+IHtcbiAgICBpZiAoaW5wdXQuc2NyaXB0VHlwZSA9PT0gJ3Ayc2hQMnBrJykge1xuICAgICAgLy8gU2tpcCByZXBsYXkgcHJvdGVjdGlvbiBpbnB1dHMgLSB0aGV5IGFyZSBwbGF0Zm9ybSBzaWduZWQgb25seVxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG91dHB1dElkID0gYCR7aW5wdXQucHJldmlvdXNPdXRwdXQudHhpZH06JHtpbnB1dC5wcmV2aW91c091dHB1dC52b3V0fWA7XG4gICAgdHJ5IHtcbiAgICAgIGlmICghdHgudmVyaWZ5U2lnbmF0dXJlKGlucHV0SW5kZXgsIHdhc21TaWduZXIpKSB7XG4gICAgICAgIHZlcmlmeUVycm9ycy5wdXNoKFxuICAgICAgICAgIG5ldyBJbnB1dFNpZ25pbmdFcnJvcihpbnB1dEluZGV4LCBpbnB1dC5zY3JpcHRUeXBlLCB7IGlkOiBvdXRwdXRJZCB9LCBuZXcgRXJyb3IoJ2ludmFsaWQgc2lnbmF0dXJlJykpXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdmVyaWZ5RXJyb3JzLnB1c2gobmV3IElucHV0U2lnbmluZ0Vycm9yPGJpZ2ludD4oaW5wdXRJbmRleCwgaW5wdXQuc2NyaXB0VHlwZSwgeyBpZDogb3V0cHV0SWQgfSwgZSkpO1xuICAgIH1cbiAgfSk7XG5cbiAgaWYgKHZlcmlmeUVycm9ycy5sZW5ndGgpIHtcbiAgICB0aHJvdyBuZXcgVHJhbnNhY3Rpb25TaWduaW5nRXJyb3IoW10sIHZlcmlmeUVycm9ycyk7XG4gIH1cbn1cblxuLyoqIEVtYmVkIHRoZSB3YXNtLXV0eG8gdmVyc2lvbiBtZXRhZGF0YSBpbnRvIHRoZSBzaWduZWQgUFNCVC4gU2hhcmVkIGJ5IGFsbCB3YXNtIHNpZ25pbmcgcGF0aHMuICovXG5leHBvcnQgZnVuY3Rpb24gd3JpdGVXYXNtVXR4b1NpZ25lZFdpdGhLdih0eDogZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0KTogdm9pZCB7XG4gIGNvbnN0IHZlcnNpb25JbmZvID0gZ2V0V2FzbVV0eG9WZXJzaW9uKCk7XG4gIGNvbnN0IHZlcnNpb25QYXlsb2FkID0gbmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKFxuICAgIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgIHZlcnNpb246IHZlcnNpb25JbmZvLnZlcnNpb24sXG4gICAgICBnaXRIYXNoOiB2ZXJzaW9uSW5mby5naXRIYXNoLFxuICAgIH0pXG4gICk7XG4gIHR4LnNldEtWKHsgdHlwZTogJ2JpdGdvJywgc3VidHlwZTogZml4ZWRTY3JpcHRXYWxsZXQuQml0R29LZXlTdWJ0eXBlLldhc21VdHhvU2lnbmVkV2l0aCB9LCB2ZXJzaW9uUGF5bG9hZCk7XG59XG5cbi8qKlxuICogU2lnbiBhbGwgaW5wdXRzIG9mIGEgUFNCVCBhbmQgdmVyaWZ5IHNpZ25hdHVyZXMgYWZ0ZXIgc2lnbmluZy5cbiAqIFVzZXMgYnVsayBzaWduaW5nIGZvciBwZXJmb3JtYW5jZSAoc2lnbnMgYWxsIG1hdGNoaW5nIGlucHV0cyBpbiBvbmUgcGFzcykuXG4gKiBDb2xsZWN0cyBhbmQgbG9ncyBzaWduaW5nIGVycm9ycyBhbmQgdmVyaWZpY2F0aW9uIGVycm9ycywgdGhyb3dzIGVycm9yIGluIHRoZSBlbmQgaWYgYW55IG9mIHRoZW0gZmFpbGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2lnbkFuZFZlcmlmeVBzYnRXYXNtKFxuICB0eDogZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0LFxuICBzaWduZXJLZXljaGFpbjogYmlwMzIuQklQMzJJbnRlcmZhY2UgfCBCSVAzMixcbiAgcm9vdFdhbGxldEtleXM6IGZpeGVkU2NyaXB0V2FsbGV0LlJvb3RXYWxsZXRLZXlzLFxuICByZXBsYXlQcm90ZWN0aW9uOiBSZXBsYXlQcm90ZWN0aW9uS2V5cyxcbiAgeyB3cml0ZVNpZ25lZFdpdGggPSBmYWxzZSB9OiB7IHdyaXRlU2lnbmVkV2l0aD86IGJvb2xlYW4gfSA9IHt9XG4pOiBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQge1xuICBjb25zdCB3YXNtU2lnbmVyID0gdG9XYXNtQklQMzIoc2lnbmVyS2V5Y2hhaW4pO1xuXG4gIC8vIEJ1bGsgc2lnbiBhbGwgd2FsbGV0IGlucHV0cyAoRUNEU0EgKyBNdVNpZzIpIC0gbXVjaCBmYXN0ZXIgdGhhbiBwZXItaW5wdXQgc2lnbmluZ1xuICB0cnkge1xuICAgIHR4LnNpZ24od2FzbVNpZ25lcik7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICB0aHJvdyBuZXcgQnVsa1NpZ25pbmdFcnJvcihlKTtcbiAgfVxuXG4gIHZlcmlmeVBzYnRTaWduYXR1cmVzV2FzbSh0eCwgd2FzbVNpZ25lciwgcm9vdFdhbGxldEtleXMsIHJlcGxheVByb3RlY3Rpb24pO1xuXG4gIGlmICh3cml0ZVNpZ25lZFdpdGgpIHtcbiAgICB3cml0ZVdhc21VdHhvU2lnbmVkV2l0aEt2KHR4KTtcbiAgfVxuXG4gIHJldHVybiB0eDtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNpZ25Qc2J0V2l0aE11c2lnMlBhcnRpY2lwYW50V2FzbShcbiAgY29pbjogTXVzaWcyUGFydGljaXBhbnQ8Zml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0PixcbiAgdHg6IGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidCxcbiAgc2lnbmVyS2V5Y2hhaW46IGJpcDMyLkJJUDMySW50ZXJmYWNlIHwgdW5kZWZpbmVkLFxuICByb290V2FsbGV0S2V5czogZml4ZWRTY3JpcHRXYWxsZXQuUm9vdFdhbGxldEtleXMsXG4gIHBhcmFtczoge1xuICAgIHJlcGxheVByb3RlY3Rpb246IFJlcGxheVByb3RlY3Rpb25LZXlzO1xuICAgIHNpZ25pbmdTdGVwOiAnc2lnbmVyTm9uY2UnIHwgJ2Nvc2lnbmVyTm9uY2UnIHwgJ3NpZ25lclNpZ25hdHVyZScgfCB1bmRlZmluZWQ7XG4gICAgd2FsbGV0SWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICB3cml0ZVNpZ25lZFdpdGg/OiBib29sZWFuO1xuICB9XG4pOiBQcm9taXNlPGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidD4ge1xuICBjb25zdCB3YXNtU2lnbmVyID0gc2lnbmVyS2V5Y2hhaW4gPyB0b1dhc21CSVAzMihzaWduZXJLZXljaGFpbikgOiB1bmRlZmluZWQ7XG5cbiAgaWYgKGhhc0tleVBhdGhTcGVuZElucHV0KHR4LCByb290V2FsbGV0S2V5cywgcGFyYW1zLnJlcGxheVByb3RlY3Rpb24pKSB7XG4gICAgc3dpdGNoIChwYXJhbXMuc2lnbmluZ1N0ZXApIHtcbiAgICAgIGNhc2UgJ3NpZ25lck5vbmNlJzpcbiAgICAgICAgYXNzZXJ0KHdhc21TaWduZXIpO1xuICAgICAgICB0eC5nZW5lcmF0ZU11c2lnMk5vbmNlcyh3YXNtU2lnbmVyKTtcbiAgICAgICAgUFNCVF9DQUNIRV9XQVNNLnNldCh0eC51bnNpZ25lZFR4SWQoKSwgdHgpO1xuICAgICAgICByZXR1cm4gdHg7XG4gICAgICBjYXNlICdjb3NpZ25lck5vbmNlJzpcbiAgICAgICAgYXNzZXJ0KHBhcmFtcy53YWxsZXRJZCwgJ3dhbGxldElkIGlzIHJlcXVpcmVkIGZvciBNdVNpZzIgYml0Z28gbm9uY2UnKTtcbiAgICAgICAgcmV0dXJuIGF3YWl0IGNvaW4uZ2V0TXVzaWcyTm9uY2VzKHR4LCBwYXJhbXMud2FsbGV0SWQpO1xuICAgICAgY2FzZSAnc2lnbmVyU2lnbmF0dXJlJzoge1xuICAgICAgICBjb25zdCB0eElkID0gdHgudW5zaWduZWRUeElkKCk7XG4gICAgICAgIGNvbnN0IGNhY2hlZFBzYnQgPSBQU0JUX0NBQ0hFX1dBU00uZ2V0KHR4SWQpO1xuICAgICAgICBhc3NlcnQoXG4gICAgICAgICAgY2FjaGVkUHNidCxcbiAgICAgICAgICBgUHNidCBpcyBtaXNzaW5nIGZyb20gdHhDYWNoZSAoY2FjaGUgc2l6ZSAke1BTQlRfQ0FDSEVfV0FTTS5zaXplfSkuXG4gICAgICAgICAgICBUaGlzIG1heSBiZSBkdWUgdG8gdGhlIHJlcXVlc3QgYmVpbmcgcm91dGVkIHRvIGEgZGlmZmVyZW50IEJpdEdvLUV4cHJlc3MgaW5zdGFuY2UgdGhhdCBmb3Igc2lnbmluZyBzdGVwICdzaWduZXJOb25jZScuYFxuICAgICAgICApO1xuICAgICAgICBQU0JUX0NBQ0hFX1dBU00uZGVsZXRlKHR4SWQpO1xuICAgICAgICBjYWNoZWRQc2J0LmNvbWJpbmVNdXNpZzJOb25jZXModHgpO1xuICAgICAgICB0eCA9IGNhY2hlZFBzYnQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgLy8gdGhpcyBpbnN0YW5jZSBpcyBub3QgYW4gZXh0ZXJuYWwgc2lnbmVyXG4gICAgICAgIGFzc2VydChwYXJhbXMud2FsbGV0SWQsICd3YWxsZXRJZCBpcyByZXF1aXJlZCBmb3IgTXVTaWcyIGJpdGdvIG5vbmNlJyk7XG4gICAgICAgIGFzc2VydCh3YXNtU2lnbmVyKTtcbiAgICAgICAgdHguZ2VuZXJhdGVNdXNpZzJOb25jZXMod2FzbVNpZ25lcik7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY29pbi5nZXRNdXNpZzJOb25jZXModHgsIHBhcmFtcy53YWxsZXRJZCk7XG4gICAgICAgIHR4LmNvbWJpbmVNdXNpZzJOb25jZXMocmVzcG9uc2UpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgc3dpdGNoIChwYXJhbXMuc2lnbmluZ1N0ZXApIHtcbiAgICAgIGNhc2UgJ3NpZ25lck5vbmNlJzpcbiAgICAgIGNhc2UgJ2Nvc2lnbmVyTm9uY2UnOlxuICAgICAgICAvKipcbiAgICAgICAgICogSW4gY2VydGFpbiBjYXNlcywgdGhlIGNhbGxlciBvZiB0aGlzIG1ldGhvZCBtYXkgbm90IGtub3cgd2hldGhlciB0aGUgdHhIZXggY29udGFpbnMgYSBwc2J0IHdpdGggdGFwcm9vdCBrZXkgcGF0aCBzcGVuZCBpbnB1dChzKS5cbiAgICAgICAgICogSW5zdGVhZCBvZiB0aHJvd2luZyBlcnJvciwgbm8tb3AgYW5kIHJldHVybiB0aGUgdHhIZXguIFNvIHRoYXQgdGhlIGNhbGxlciBjYW4gY2FsbCB0aGlzIG1ldGhvZCBpbiB0aGUgc2FtZSBzZXF1ZW5jZS5cbiAgICAgICAgICovXG4gICAgICAgIHJldHVybiB0eDtcbiAgICB9XG4gIH1cblxuICBhc3NlcnQoc2lnbmVyS2V5Y2hhaW4pO1xuICByZXR1cm4gc2lnbkFuZFZlcmlmeVBzYnRXYXNtKHR4LCBzaWduZXJLZXljaGFpbiwgcm9vdFdhbGxldEtleXMsIHBhcmFtcy5yZXBsYXlQcm90ZWN0aW9uLCB7XG4gICAgd3JpdGVTaWduZWRXaXRoOiBwYXJhbXMud3JpdGVTaWduZWRXaXRoLFxuICB9KTtcbn1cbiJdfQ==
@@ -0,0 +1,31 @@
1
+ import { BIP32, bip32, fixedScriptWallet } from '@bitgo/wasm-utxo';
2
+ import { UtxoCoinName, WasmUtxoCoinName } from '../../names';
3
+ import type { Unspent } from '../../unspent';
4
+ import { Musig2Participant } from './musig2';
5
+ import { ReplayProtectionKeys } from './signPsbtWasm';
6
+ export declare function signAndVerifyPsbt(psbt: fixedScriptWallet.BitGoPsbt, signerKeychain: bip32.BIP32Interface | BIP32, rootWalletKeys: fixedScriptWallet.RootWalletKeys, replayProtection: ReplayProtectionKeys, options?: {
7
+ writeSignedWith?: boolean;
8
+ }): fixedScriptWallet.BitGoPsbt;
9
+ /**
10
+ * Finalize a signed PSBT into its final form: the extracted transaction bytes on the last
11
+ * signature round (unless the caller asked to keep the PSBT), otherwise the signed PSBT itself.
12
+ * Shared by the generic signing path and Zec's Ironwood (v6) signing path.
13
+ */
14
+ export declare function finalizeSignedPsbt(signedPsbt: fixedScriptWallet.BitGoPsbt, { isLastSignature, extractTransaction }: {
15
+ isLastSignature?: boolean;
16
+ extractTransaction?: boolean;
17
+ }): fixedScriptWallet.BitGoPsbt | Buffer;
18
+ export declare function signTransaction(coin: Musig2Participant<fixedScriptWallet.BitGoPsbt>, tx: fixedScriptWallet.BitGoPsbt, signerKeychain: bip32.BIP32Interface | undefined, coinName: UtxoCoinName | WasmUtxoCoinName, params: {
19
+ walletId: string | undefined;
20
+ txInfo: {
21
+ unspents?: Unspent<bigint | number>[];
22
+ } | undefined;
23
+ isLastSignature: boolean;
24
+ signingStep: 'signerNonce' | 'cosignerNonce' | 'signerSignature' | undefined;
25
+ pubs: string[] | undefined;
26
+ cosignerPub: string | undefined;
27
+ /** When true (default), extract finalized PSBT to legacy transaction format. When false, return finalized PSBT. */
28
+ extractTransaction?: boolean;
29
+ writeSignedWith?: boolean;
30
+ }): Promise<fixedScriptWallet.BitGoPsbt | Buffer>;
31
+ //# sourceMappingURL=signTransaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signTransaction.d.ts","sourceRoot":"","sources":["../../../../../src/transaction/fixedScript/signTransaction.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAEnE,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAA4D,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAGhH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,iBAAiB,CAAC,SAAS,EACjC,cAAc,EAAE,KAAK,CAAC,cAAc,GAAG,KAAK,EAC5C,cAAc,EAAE,iBAAiB,CAAC,cAAc,EAChD,gBAAgB,EAAE,oBAAoB,EACtC,OAAO,GAAE;IAAE,eAAe,CAAC,EAAE,OAAO,CAAA;CAAO,GAC1C,iBAAiB,CAAC,SAAS,CAI7B;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,iBAAiB,CAAC,SAAS,EACvC,EAAE,eAAuB,EAAE,kBAAyB,EAAE,EAAE;IAAE,eAAe,CAAC,EAAE,OAAO,CAAC;IAAC,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAAE,GAClH,iBAAiB,CAAC,SAAS,GAAG,MAAM,CAStC;AAED,wBAAsB,eAAe,CACnC,IAAI,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,SAAS,CAAC,EACpD,EAAE,EAAE,iBAAiB,CAAC,SAAS,EAC/B,cAAc,EAAE,KAAK,CAAC,cAAc,GAAG,SAAS,EAChD,QAAQ,EAAE,YAAY,GAAG,gBAAgB,EACzC,MAAM,EAAE;IACN,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,MAAM,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;KAAE,GAAG,SAAS,CAAC;IAC9D,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,aAAa,GAAG,eAAe,GAAG,iBAAiB,GAAG,SAAS,CAAC;IAC7E,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC3B,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,mHAAmH;IACnH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,GACA,OAAO,CAAC,iBAAiB,CAAC,SAAS,GAAG,MAAM,CAAC,CAqB/C"}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.signAndVerifyPsbt = signAndVerifyPsbt;
7
+ exports.finalizeSignedPsbt = finalizeSignedPsbt;
8
+ exports.signTransaction = signTransaction;
9
+ const assert_1 = __importDefault(require("assert"));
10
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
11
+ const lodash_1 = __importDefault(require("lodash"));
12
+ const wasm_utxo_1 = require("@bitgo/wasm-utxo");
13
+ const signPsbtWasm_1 = require("./signPsbtWasm");
14
+ const replayProtection_1 = require("./replayProtection");
15
+ function signAndVerifyPsbt(psbt, signerKeychain, rootWalletKeys, replayProtection, options = {}) {
16
+ (0, assert_1.default)(rootWalletKeys, 'rootWalletKeys required for wasm-utxo signing');
17
+ (0, assert_1.default)(replayProtection, 'replayProtection required for wasm-utxo signing');
18
+ return (0, signPsbtWasm_1.signAndVerifyPsbtWasm)(psbt, signerKeychain, rootWalletKeys, replayProtection, options);
19
+ }
20
+ /**
21
+ * Finalize a signed PSBT into its final form: the extracted transaction bytes on the last
22
+ * signature round (unless the caller asked to keep the PSBT), otherwise the signed PSBT itself.
23
+ * Shared by the generic signing path and Zec's Ironwood (v6) signing path.
24
+ */
25
+ function finalizeSignedPsbt(signedPsbt, { isLastSignature = false, extractTransaction = true }) {
26
+ if (!isLastSignature) {
27
+ return signedPsbt;
28
+ }
29
+ if (extractTransaction) {
30
+ signedPsbt.finalizeAllInputs();
31
+ return Buffer.from(signedPsbt.extractTransaction().toBytes());
32
+ }
33
+ return signedPsbt;
34
+ }
35
+ async function signTransaction(coin, tx, signerKeychain, coinName, params) {
36
+ let isLastSignature = false;
37
+ if (lodash_1.default.isBoolean(params.isLastSignature)) {
38
+ // if build is called instead of buildIncomplete, no signature placeholders are left in the sig script
39
+ isLastSignature = params.isLastSignature;
40
+ }
41
+ const { extractTransaction = true } = params;
42
+ (0, assert_1.default)(params.pubs, 'pubs are required for fixed script signing');
43
+ (0, assert_1.default)((0, sdk_core_1.isTriple)(params.pubs), 'pubs must be a triple');
44
+ const rootWalletKeys = wasm_utxo_1.fixedScriptWallet.RootWalletKeys.fromXpubs(params.pubs);
45
+ const signedPsbt = await (0, signPsbtWasm_1.signPsbtWithMusig2ParticipantWasm)(coin, tx, signerKeychain, rootWalletKeys, {
46
+ replayProtection: {
47
+ publicKeys: (0, replayProtection_1.getReplayProtectionPubkeys)(coinName),
48
+ },
49
+ signingStep: params.signingStep,
50
+ walletId: params.walletId,
51
+ writeSignedWith: params.writeSignedWith,
52
+ });
53
+ return finalizeSignedPsbt(signedPsbt, { isLastSignature, extractTransaction });
54
+ }
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnblRyYW5zYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL2ZpeGVkU2NyaXB0L3NpZ25UcmFuc2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQWFBLDhDQVVDO0FBT0QsZ0RBWUM7QUFFRCwwQ0FxQ0M7QUFqRkQsb0RBQTRCO0FBRTVCLG1EQUFnRDtBQUNoRCxvREFBdUI7QUFDdkIsZ0RBQW1FO0FBTW5FLGlEQUFnSDtBQUNoSCx5REFBZ0U7QUFFaEUsU0FBZ0IsaUJBQWlCLENBQy9CLElBQWlDLEVBQ2pDLGNBQTRDLEVBQzVDLGNBQWdELEVBQ2hELGdCQUFzQyxFQUN0QyxVQUF5QyxFQUFFO0lBRTNDLElBQUEsZ0JBQU0sRUFBQyxjQUFjLEVBQUUsK0NBQStDLENBQUMsQ0FBQztJQUN4RSxJQUFBLGdCQUFNLEVBQUMsZ0JBQWdCLEVBQUUsaURBQWlELENBQUMsQ0FBQztJQUM1RSxPQUFPLElBQUEsb0NBQXFCLEVBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDaEcsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixrQkFBa0IsQ0FDaEMsVUFBdUMsRUFDdkMsRUFBRSxlQUFlLEdBQUcsS0FBSyxFQUFFLGtCQUFrQixHQUFHLElBQUksRUFBK0Q7SUFFbkgsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3JCLE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7SUFDRCxJQUFJLGtCQUFrQixFQUFFLENBQUM7UUFDdkIsVUFBVSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDL0IsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUNELE9BQU8sVUFBVSxDQUFDO0FBQ3BCLENBQUM7QUFFTSxLQUFLLFVBQVUsZUFBZSxDQUNuQyxJQUFvRCxFQUNwRCxFQUErQixFQUMvQixjQUFnRCxFQUNoRCxRQUF5QyxFQUN6QyxNQVVDO0lBRUQsSUFBSSxlQUFlLEdBQUcsS0FBSyxDQUFDO0lBQzVCLElBQUksZ0JBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7UUFDeEMsc0dBQXNHO1FBQ3RHLGVBQWUsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDO0lBQzNDLENBQUM7SUFFRCxNQUFNLEVBQUUsa0JBQWtCLEdBQUcsSUFBSSxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBRTdDLElBQUEsZ0JBQU0sRUFBQyxNQUFNLENBQUMsSUFBSSxFQUFFLDRDQUE0QyxDQUFDLENBQUM7SUFDbEUsSUFBQSxnQkFBTSxFQUFDLElBQUEsbUJBQVEsRUFBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztJQUN2RCxNQUFNLGNBQWMsR0FBRyw2QkFBaUIsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvRSxNQUFNLFVBQVUsR0FBRyxNQUFNLElBQUEsZ0RBQWlDLEVBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFO1FBQ25HLGdCQUFnQixFQUFFO1lBQ2hCLFVBQVUsRUFBRSxJQUFBLDZDQUEwQixFQUFDLFFBQVEsQ0FBQztTQUNqRDtRQUNELFdBQVcsRUFBRSxNQUFNLENBQUMsV0FBVztRQUMvQixRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVE7UUFDekIsZUFBZSxFQUFFLE1BQU0sQ0FBQyxlQUFlO0tBQ3hDLENBQUMsQ0FBQztJQUNILE9BQU8sa0JBQWtCLENBQUMsVUFBVSxFQUFFLEVBQUUsZUFBZSxFQUFFLGtCQUFrQixFQUFFLENBQUMsQ0FBQztBQUNqRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuXG5pbXBvcnQgeyBpc1RyaXBsZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBCSVAzMiwgYmlwMzIsIGZpeGVkU2NyaXB0V2FsbGV0IH0gZnJvbSAnQGJpdGdvL3dhc20tdXR4byc7XG5cbmltcG9ydCB7IFV0eG9Db2luTmFtZSwgV2FzbVV0eG9Db2luTmFtZSB9IGZyb20gJy4uLy4uL25hbWVzJztcbmltcG9ydCB0eXBlIHsgVW5zcGVudCB9IGZyb20gJy4uLy4uL3Vuc3BlbnQnO1xuXG5pbXBvcnQgeyBNdXNpZzJQYXJ0aWNpcGFudCB9IGZyb20gJy4vbXVzaWcyJztcbmltcG9ydCB7IHNpZ25Qc2J0V2l0aE11c2lnMlBhcnRpY2lwYW50V2FzbSwgc2lnbkFuZFZlcmlmeVBzYnRXYXNtLCBSZXBsYXlQcm90ZWN0aW9uS2V5cyB9IGZyb20gJy4vc2lnblBzYnRXYXNtJztcbmltcG9ydCB7IGdldFJlcGxheVByb3RlY3Rpb25QdWJrZXlzIH0gZnJvbSAnLi9yZXBsYXlQcm90ZWN0aW9uJztcblxuZXhwb3J0IGZ1bmN0aW9uIHNpZ25BbmRWZXJpZnlQc2J0KFxuICBwc2J0OiBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQsXG4gIHNpZ25lcktleWNoYWluOiBiaXAzMi5CSVAzMkludGVyZmFjZSB8IEJJUDMyLFxuICByb290V2FsbGV0S2V5czogZml4ZWRTY3JpcHRXYWxsZXQuUm9vdFdhbGxldEtleXMsXG4gIHJlcGxheVByb3RlY3Rpb246IFJlcGxheVByb3RlY3Rpb25LZXlzLFxuICBvcHRpb25zOiB7IHdyaXRlU2lnbmVkV2l0aD86IGJvb2xlYW4gfSA9IHt9XG4pOiBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQge1xuICBhc3NlcnQocm9vdFdhbGxldEtleXMsICdyb290V2FsbGV0S2V5cyByZXF1aXJlZCBmb3Igd2FzbS11dHhvIHNpZ25pbmcnKTtcbiAgYXNzZXJ0KHJlcGxheVByb3RlY3Rpb24sICdyZXBsYXlQcm90ZWN0aW9uIHJlcXVpcmVkIGZvciB3YXNtLXV0eG8gc2lnbmluZycpO1xuICByZXR1cm4gc2lnbkFuZFZlcmlmeVBzYnRXYXNtKHBzYnQsIHNpZ25lcktleWNoYWluLCByb290V2FsbGV0S2V5cywgcmVwbGF5UHJvdGVjdGlvbiwgb3B0aW9ucyk7XG59XG5cbi8qKlxuICogRmluYWxpemUgYSBzaWduZWQgUFNCVCBpbnRvIGl0cyBmaW5hbCBmb3JtOiB0aGUgZXh0cmFjdGVkIHRyYW5zYWN0aW9uIGJ5dGVzIG9uIHRoZSBsYXN0XG4gKiBzaWduYXR1cmUgcm91bmQgKHVubGVzcyB0aGUgY2FsbGVyIGFza2VkIHRvIGtlZXAgdGhlIFBTQlQpLCBvdGhlcndpc2UgdGhlIHNpZ25lZCBQU0JUIGl0c2VsZi5cbiAqIFNoYXJlZCBieSB0aGUgZ2VuZXJpYyBzaWduaW5nIHBhdGggYW5kIFplYydzIElyb253b29kICh2Nikgc2lnbmluZyBwYXRoLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZmluYWxpemVTaWduZWRQc2J0KFxuICBzaWduZWRQc2J0OiBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQsXG4gIHsgaXNMYXN0U2lnbmF0dXJlID0gZmFsc2UsIGV4dHJhY3RUcmFuc2FjdGlvbiA9IHRydWUgfTogeyBpc0xhc3RTaWduYXR1cmU/OiBib29sZWFuOyBleHRyYWN0VHJhbnNhY3Rpb24/OiBib29sZWFuIH1cbik6IGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidCB8IEJ1ZmZlciB7XG4gIGlmICghaXNMYXN0U2lnbmF0dXJlKSB7XG4gICAgcmV0dXJuIHNpZ25lZFBzYnQ7XG4gIH1cbiAgaWYgKGV4dHJhY3RUcmFuc2FjdGlvbikge1xuICAgIHNpZ25lZFBzYnQuZmluYWxpemVBbGxJbnB1dHMoKTtcbiAgICByZXR1cm4gQnVmZmVyLmZyb20oc2lnbmVkUHNidC5leHRyYWN0VHJhbnNhY3Rpb24oKS50b0J5dGVzKCkpO1xuICB9XG4gIHJldHVybiBzaWduZWRQc2J0O1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2lnblRyYW5zYWN0aW9uKFxuICBjb2luOiBNdXNpZzJQYXJ0aWNpcGFudDxmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQ+LFxuICB0eDogZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0LFxuICBzaWduZXJLZXljaGFpbjogYmlwMzIuQklQMzJJbnRlcmZhY2UgfCB1bmRlZmluZWQsXG4gIGNvaW5OYW1lOiBVdHhvQ29pbk5hbWUgfCBXYXNtVXR4b0NvaW5OYW1lLFxuICBwYXJhbXM6IHtcbiAgICB3YWxsZXRJZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIHR4SW5mbzogeyB1bnNwZW50cz86IFVuc3BlbnQ8YmlnaW50IHwgbnVtYmVyPltdIH0gfCB1bmRlZmluZWQ7XG4gICAgaXNMYXN0U2lnbmF0dXJlOiBib29sZWFuO1xuICAgIHNpZ25pbmdTdGVwOiAnc2lnbmVyTm9uY2UnIHwgJ2Nvc2lnbmVyTm9uY2UnIHwgJ3NpZ25lclNpZ25hdHVyZScgfCB1bmRlZmluZWQ7XG4gICAgcHViczogc3RyaW5nW10gfCB1bmRlZmluZWQ7XG4gICAgY29zaWduZXJQdWI6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogV2hlbiB0cnVlIChkZWZhdWx0KSwgZXh0cmFjdCBmaW5hbGl6ZWQgUFNCVCB0byBsZWdhY3kgdHJhbnNhY3Rpb24gZm9ybWF0LiBXaGVuIGZhbHNlLCByZXR1cm4gZmluYWxpemVkIFBTQlQuICovXG4gICAgZXh0cmFjdFRyYW5zYWN0aW9uPzogYm9vbGVhbjtcbiAgICB3cml0ZVNpZ25lZFdpdGg/OiBib29sZWFuO1xuICB9XG4pOiBQcm9taXNlPGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidCB8IEJ1ZmZlcj4ge1xuICBsZXQgaXNMYXN0U2lnbmF0dXJlID0gZmFsc2U7XG4gIGlmIChfLmlzQm9vbGVhbihwYXJhbXMuaXNMYXN0U2lnbmF0dXJlKSkge1xuICAgIC8vIGlmIGJ1aWxkIGlzIGNhbGxlZCBpbnN0ZWFkIG9mIGJ1aWxkSW5jb21wbGV0ZSwgbm8gc2lnbmF0dXJlIHBsYWNlaG9sZGVycyBhcmUgbGVmdCBpbiB0aGUgc2lnIHNjcmlwdFxuICAgIGlzTGFzdFNpZ25hdHVyZSA9IHBhcmFtcy5pc0xhc3RTaWduYXR1cmU7XG4gIH1cblxuICBjb25zdCB7IGV4dHJhY3RUcmFuc2FjdGlvbiA9IHRydWUgfSA9IHBhcmFtcztcblxuICBhc3NlcnQocGFyYW1zLnB1YnMsICdwdWJzIGFyZSByZXF1aXJlZCBmb3IgZml4ZWQgc2NyaXB0IHNpZ25pbmcnKTtcbiAgYXNzZXJ0KGlzVHJpcGxlKHBhcmFtcy5wdWJzKSwgJ3B1YnMgbXVzdCBiZSBhIHRyaXBsZScpO1xuICBjb25zdCByb290V2FsbGV0S2V5cyA9IGZpeGVkU2NyaXB0V2FsbGV0LlJvb3RXYWxsZXRLZXlzLmZyb21YcHVicyhwYXJhbXMucHVicyk7XG4gIGNvbnN0IHNpZ25lZFBzYnQgPSBhd2FpdCBzaWduUHNidFdpdGhNdXNpZzJQYXJ0aWNpcGFudFdhc20oY29pbiwgdHgsIHNpZ25lcktleWNoYWluLCByb290V2FsbGV0S2V5cywge1xuICAgIHJlcGxheVByb3RlY3Rpb246IHtcbiAgICAgIHB1YmxpY0tleXM6IGdldFJlcGxheVByb3RlY3Rpb25QdWJrZXlzKGNvaW5OYW1lKSxcbiAgICB9LFxuICAgIHNpZ25pbmdTdGVwOiBwYXJhbXMuc2lnbmluZ1N0ZXAsXG4gICAgd2FsbGV0SWQ6IHBhcmFtcy53YWxsZXRJZCxcbiAgICB3cml0ZVNpZ25lZFdpdGg6IHBhcmFtcy53cml0ZVNpZ25lZFdpdGgsXG4gIH0pO1xuICByZXR1cm4gZmluYWxpemVTaWduZWRQc2J0KHNpZ25lZFBzYnQsIHsgaXNMYXN0U2lnbmF0dXJlLCBleHRyYWN0VHJhbnNhY3Rpb24gfSk7XG59XG4iXX0=
@@ -0,0 +1,21 @@
1
+ import { BitGoBase } from '@bitgo-beta/sdk-core';
2
+ import { AbstractUtxoCoin, VerifyTransactionOptions } from '../../abstractUtxoCoin';
3
+ /**
4
+ * Verify that a transaction prebuild complies with the original intention for fixed-script wallets
5
+ *
6
+ * This implementation handles transaction verification for traditional UTXO coins using fixed scripts
7
+ * (non-descriptor wallets). It validates keychains, signatures, outputs, and amounts.
8
+ *
9
+ * @param coin - The UTXO coin instance
10
+ * @param bitgo - BitGo API instance for network calls
11
+ * @param params - Verification parameters
12
+ * @param params.txParams - Transaction parameters passed to send
13
+ * @param params.txPrebuild - Prebuild object returned by server
14
+ * @param params.wallet - Wallet object to obtain keys to verify against
15
+ * @param params.verification - Verification options (disableNetworking, keychains, addresses)
16
+ * @param params.reqId - Optional request ID for logging
17
+ * @returns {boolean} True if verification passes
18
+ * @throws {TxIntentMismatchError} if transaction validation fails
19
+ */
20
+ export declare function verifyTransaction<TNumber extends bigint | number>(coin: AbstractUtxoCoin, bitgo: BitGoBase, params: VerifyTransactionOptions<TNumber>): Promise<boolean>;
21
+ //# sourceMappingURL=verifyTransaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verifyTransaction.d.ts","sourceRoot":"","sources":["../../../../../src/transaction/fixedScript/verifyTransaction.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAoC,MAAM,sBAAsB,CAAC;AAGnF,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAsBpF;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EACrE,IAAI,EAAE,gBAAgB,EACtB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,wBAAwB,CAAC,OAAO,CAAC,GACxC,OAAO,CAAC,OAAO,CAAC,CA6JlB"}
@@ -0,0 +1,182 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.verifyTransaction = verifyTransaction;
7
+ const debug_1 = __importDefault(require("debug"));
8
+ const lodash_1 = __importDefault(require("lodash"));
9
+ const bignumber_js_1 = __importDefault(require("bignumber.js"));
10
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
11
+ const wasm_utxo_1 = require("@bitgo/wasm-utxo");
12
+ const decode_1 = require("../decode");
13
+ const verifyKey_1 = require("../../verifyKey");
14
+ const debug = (0, debug_1.default)('bitgo:abstract-utxo:verifyTransaction');
15
+ /**
16
+ * Get the maximum percentage limit for pay-as-you-go outputs
17
+ *
18
+ * @protected
19
+ */
20
+ function getPayGoLimit(allowPaygoOutput) {
21
+ // allowing paygo outputs needs to be the default behavior, so only disallow paygo outputs if the
22
+ // relevant verification option is both set and false
23
+ if (!lodash_1.default.isNil(allowPaygoOutput) && !allowPaygoOutput) {
24
+ return 0;
25
+ }
26
+ // 150 basis points is the absolute permitted maximum if paygo outputs are allowed
27
+ return 0.015;
28
+ }
29
+ /**
30
+ * Verify that a transaction prebuild complies with the original intention for fixed-script wallets
31
+ *
32
+ * This implementation handles transaction verification for traditional UTXO coins using fixed scripts
33
+ * (non-descriptor wallets). It validates keychains, signatures, outputs, and amounts.
34
+ *
35
+ * @param coin - The UTXO coin instance
36
+ * @param bitgo - BitGo API instance for network calls
37
+ * @param params - Verification parameters
38
+ * @param params.txParams - Transaction parameters passed to send
39
+ * @param params.txPrebuild - Prebuild object returned by server
40
+ * @param params.wallet - Wallet object to obtain keys to verify against
41
+ * @param params.verification - Verification options (disableNetworking, keychains, addresses)
42
+ * @param params.reqId - Optional request ID for logging
43
+ * @returns {boolean} True if verification passes
44
+ * @throws {TxIntentMismatchError} if transaction validation fails
45
+ */
46
+ async function verifyTransaction(coin, bitgo, params) {
47
+ const { txParams, txPrebuild, wallet, verification = {}, reqId } = params;
48
+ const txExplanation = await sdk_core_1.TxIntentMismatchError.tryGetTxExplanation(coin, txPrebuild);
49
+ // Helper to throw TxIntentMismatchError with consistent context
50
+ const throwTxMismatch = (message) => {
51
+ throw new sdk_core_1.TxIntentMismatchError(message, reqId, [txParams], txPrebuild.txHex, txExplanation);
52
+ };
53
+ if (!lodash_1.default.isUndefined(verification.disableNetworking) && !lodash_1.default.isBoolean(verification.disableNetworking)) {
54
+ throw new TypeError('verification.disableNetworking must be a boolean');
55
+ }
56
+ const isPsbt = txPrebuild.txHex && (0, wasm_utxo_1.hasPsbtMagic)((0, decode_1.stringToBufferTryFormats)(txPrebuild.txHex, ['hex', 'base64']));
57
+ if (isPsbt && txPrebuild.txInfo?.unspents) {
58
+ throw new Error('should not have unspents in txInfo for psbt');
59
+ }
60
+ const disableNetworking = !!verification.disableNetworking;
61
+ const isBridging = txParams.type === 'bridging';
62
+ const parsedTransaction = await coin.parseTransaction({
63
+ txParams,
64
+ txPrebuild,
65
+ wallet,
66
+ verification,
67
+ reqId,
68
+ });
69
+ const keychains = parsedTransaction.keychains;
70
+ // verify that the claimed user public key corresponds to the wallet's user private key
71
+ let userPublicKeyVerified = false;
72
+ try {
73
+ // verify the user public key matches the private key - this will throw if there is no match
74
+ userPublicKeyVerified = await (0, verifyKey_1.verifyUserPublicKey)(bitgo, {
75
+ userKeychain: keychains.user,
76
+ disableNetworking,
77
+ txParams,
78
+ });
79
+ }
80
+ catch (e) {
81
+ debug('failed to verify user public key!', e);
82
+ }
83
+ // let's verify these keychains
84
+ const keySignatures = parsedTransaction.keySignatures;
85
+ if (!lodash_1.default.isEmpty(keySignatures)) {
86
+ const verify = (key, pub) => {
87
+ if (!keychains.user || !keychains.user.pub) {
88
+ throwTxMismatch('missing user keychain');
89
+ }
90
+ return (0, verifyKey_1.verifyKeySignature)({
91
+ userKeychain: keychains.user,
92
+ keychainToVerify: key,
93
+ keySignature: pub,
94
+ });
95
+ };
96
+ const isBackupKeySignatureValid = verify(keychains.backup, keySignatures.backupPub);
97
+ const isBitgoKeySignatureValid = verify(keychains.bitgo, keySignatures.bitgoPub);
98
+ if (!isBackupKeySignatureValid || !isBitgoKeySignatureValid) {
99
+ throw new Error('secondary public key signatures invalid');
100
+ }
101
+ debug('successfully verified backup and bitgo key signatures');
102
+ }
103
+ else if (!disableNetworking) {
104
+ // these keys were obtained online and their signatures were not verified
105
+ // this could be dangerous
106
+ console.log('unsigned keys obtained online are being used for address verification');
107
+ }
108
+ if (parsedTransaction.needsCustomChangeKeySignatureVerification) {
109
+ if (!keychains.user || !userPublicKeyVerified) {
110
+ throw new Error('transaction requires verification of user public key, but it was unable to be verified');
111
+ }
112
+ const customChangeKeySignaturesVerified = (0, verifyKey_1.verifyCustomChangeKeySignatures)(parsedTransaction, keychains.user);
113
+ if (!customChangeKeySignaturesVerified) {
114
+ throw new Error('transaction requires verification of custom change key signatures, but they were unable to be verified');
115
+ }
116
+ debug('successfully verified user public key and custom change key signatures');
117
+ }
118
+ if (txParams.qr) {
119
+ const allExternalOutputs = [
120
+ ...parsedTransaction.explicitExternalOutputs,
121
+ ...parsedTransaction.implicitExternalOutputs,
122
+ ];
123
+ if (allExternalOutputs.length > 0) {
124
+ throwTxMismatch('quantum-resistant sweep transactions must only contain wallet-internal outputs');
125
+ }
126
+ return true;
127
+ }
128
+ const missingOutputs = parsedTransaction.missingOutputs;
129
+ if (missingOutputs.length !== 0) {
130
+ // there are some outputs in the recipients list that have not made it into the actual transaction
131
+ throwTxMismatch('expected outputs missing in transaction prebuild');
132
+ }
133
+ const intendedExternalSpend = parsedTransaction.explicitExternalSpendAmount;
134
+ // this is a limit we impose for the total value that is amended to the transaction beyond what was originally intended
135
+ const payAsYouGoLimit = new bignumber_js_1.default(getPayGoLimit(verification.allowPaygoOutput)).multipliedBy(intendedExternalSpend.toString());
136
+ /*
137
+ Some explanation for why we're doing what we're doing:
138
+ Some customers will have an output to BitGo's PAYGo wallet added to their transaction, and we need to account for
139
+ it here. To protect someone tampering with the output to make it send more than it should to BitGo, we define a
140
+ threshold for the output's value above which we'll throw an error, because the paygo output should never be that
141
+ high.
142
+ */
143
+ // make sure that all the extra addresses are change addresses
144
+ // get all the additional external outputs the server added and calculate their values
145
+ const nonChangeAmount = new bignumber_js_1.default(parsedTransaction.implicitExternalSpendAmount.toString());
146
+ debug('Intended spend is %s, Non-change amount is %s, paygo limit is %s', intendedExternalSpend.toString(), nonChangeAmount.toString(), payAsYouGoLimit.toString());
147
+ // There are two instances where we will get into this point here
148
+ if (nonChangeAmount.gt(payAsYouGoLimit)) {
149
+ if (isBridging) {
150
+ // The implicit external output is the bridge deposit address (see note above); it has no
151
+ // recipient to match against, so instead verify the total implicit external spend equals the
152
+ // intended bridge amount from bridgingParams.
153
+ const bridgeAmount = txParams.bridgingParams?.sbtc?.amount;
154
+ if (bridgeAmount === undefined) {
155
+ throwTxMismatch('bridging transaction is missing bridgingParams.sbtc.amount');
156
+ }
157
+ else if (!nonChangeAmount.eq(bridgeAmount.toString())) {
158
+ throwTxMismatch(`bridging output amount (${nonChangeAmount.toString()}) does not match intended bridge amount (${bridgeAmount})`);
159
+ }
160
+ else {
161
+ debug('verified bridging output amount matches bridgingParams.sbtc.amount');
162
+ }
163
+ }
164
+ else if (isPsbt && parsedTransaction.customChange) {
165
+ // In the case that we have a custom change address on a wallet and we are building the transaction
166
+ // with a PSBT, we do not have the metadata to verify the address from the custom change wallet, nor
167
+ // can we fetch that information from the other wallet because we may not have the credentials. Therefore,
168
+ // we will not throw an error here, but we will log a warning.
169
+ debug(`cannot verify some of the addresses because it belongs to a separate wallet`);
170
+ }
171
+ else {
172
+ // the additional external outputs can only be BitGo's pay-as-you-go fee, but we cannot verify the wallet address
173
+ // there are some addresses that are outside the scope of intended recipients that are not change addresses
174
+ throwTxMismatch('prebuild attempts to spend to unintended external recipients');
175
+ }
176
+ }
177
+ if (!txPrebuild.txHex) {
178
+ throw new Error(`txPrebuild.txHex not set`);
179
+ }
180
+ return true;
181
+ }
182
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZ5VHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vZml4ZWRTY3JpcHQvdmVyaWZ5VHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUE2Q0EsOENBaUtDO0FBOU1ELGtEQUErQjtBQUMvQixvREFBdUI7QUFDdkIsZ0VBQXFDO0FBQ3JDLG1EQUFtRjtBQUNuRixnREFBZ0Q7QUFJaEQsc0NBQXFEO0FBQ3JELCtDQUEyRztBQUUzRyxNQUFNLEtBQUssR0FBRyxJQUFBLGVBQVUsRUFBQyx1Q0FBdUMsQ0FBQyxDQUFDO0FBRWxFOzs7O0dBSUc7QUFDSCxTQUFTLGFBQWEsQ0FBQyxnQkFBMEI7SUFDL0MsaUdBQWlHO0lBQ2pHLHFEQUFxRDtJQUNyRCxJQUFJLENBQUMsZ0JBQUMsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDcEQsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBQ0Qsa0ZBQWtGO0lBQ2xGLE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBQ0ksS0FBSyxVQUFVLGlCQUFpQixDQUNyQyxJQUFzQixFQUN0QixLQUFnQixFQUNoQixNQUF5QztJQUV6QyxNQUFNLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsWUFBWSxHQUFHLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFFMUUsTUFBTSxhQUFhLEdBQUcsTUFBTSxnQ0FBcUIsQ0FBQyxtQkFBbUIsQ0FBQyxJQUE0QixFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBRWhILGdFQUFnRTtJQUNoRSxNQUFNLGVBQWUsR0FBRyxDQUFDLE9BQWUsRUFBUyxFQUFFO1FBQ2pELE1BQU0sSUFBSSxnQ0FBcUIsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsUUFB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QTBHO1lBQzFHLDhEQUE4RDtZQUM5RCxLQUFLLENBQUMsNkVBQTZFLENBQUMsQ0FBQztRQUN2RixDQUFDO2FBQU0sQ0FBQztZQUNOLGlIQUFpSDtZQUNqSCwyR0FBMkc7WUFDM0csZUFBZSxDQUFDLDhEQUE4RCxDQUFDLENBQUM7UUFDbEYsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3RCLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGJ1aWxkRGVidWcgZnJvbSAnZGVidWcnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCB7IEJpdEdvQmFzZSwgVHhJbnRlbnRNaXNtYXRjaEVycm9yLCBJQmFzZUNvaW4gfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBoYXNQc2J0TWFnaWMgfSBmcm9tICdAYml0Z28vd2FzbS11dHhvJztcblxuaW1wb3J0IHsgQWJzdHJhY3RVdHhvQ29pbiwgVmVyaWZ5VHJhbnNhY3Rpb25PcHRpb25zIH0gZnJvbSAnLi4vLi4vYWJzdHJhY3RVdHhvQ29pbic7XG5pbXBvcnQgeyBQYXJzZWRUcmFuc2FjdGlvbiB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IHN0cmluZ1RvQnVmZmVyVHJ5Rm9ybWF0cyB9IGZyb20gJy4uL2RlY29kZSc7XG5pbXBvcnQgeyB2ZXJpZnlDdXN0b21DaGFuZ2VLZXlTaWduYXR1cmVzLCB2ZXJpZnlLZXlTaWduYXR1cmUsIHZlcmlmeVVzZXJQdWJsaWNLZXkgfSBmcm9tICcuLi8uLi92ZXJpZnlLZXknO1xuXG5jb25zdCBkZWJ1ZyA9IGJ1aWxkRGVidWcoJ2JpdGdvOmFic3RyYWN0LXV0eG86dmVyaWZ5VHJhbnNhY3Rpb24nKTtcblxuLyoqXG4gKiBHZXQgdGhlIG1heGltdW0gcGVyY2VudGFnZSBsaW1pdCBmb3IgcGF5LWFzLXlvdS1nbyBvdXRwdXRzXG4gKlxuICogQHByb3RlY3RlZFxuICovXG5mdW5jdGlvbiBnZXRQYXlHb0xpbWl0KGFsbG93UGF5Z29PdXRwdXQ/OiBib29sZWFuKTogbnVtYmVyIHtcbiAgLy8gYWxsb3dpbmcgcGF5Z28gb3V0cHV0cyBuZWVkcyB0byBiZSB0aGUgZGVmYXVsdCBiZWhhdmlvciwgc28gb25seSBkaXNhbGxvdyBwYXlnbyBvdXRwdXRzIGlmIHRoZVxuICAvLyByZWxldmFudCB2ZXJpZmljYXRpb24gb3B0aW9uIGlzIGJvdGggc2V0IGFuZCBmYWxzZVxuICBpZiAoIV8uaXNOaWwoYWxsb3dQYXlnb091dHB1dCkgJiYgIWFsbG93UGF5Z29PdXRwdXQpIHtcbiAgICByZXR1cm4gMDtcbiAgfVxuICAvLyAxNTAgYmFzaXMgcG9pbnRzIGlzIHRoZSBhYnNvbHV0ZSBwZXJtaXR0ZWQgbWF4aW11bSBpZiBwYXlnbyBvdXRwdXRzIGFyZSBhbGxvd2VkXG4gIHJldHVybiAwLjAxNTtcbn1cblxuLyoqXG4gKiBWZXJpZnkgdGhhdCBhIHRyYW5zYWN0aW9uIHByZWJ1aWxkIGNvbXBsaWVzIHdpdGggdGhlIG9yaWdpbmFsIGludGVudGlvbiBmb3IgZml4ZWQtc2NyaXB0IHdhbGxldHNcbiAqXG4gKiBUaGlzIGltcGxlbWVudGF0aW9uIGhhbmRsZXMgdHJhbnNhY3Rpb24gdmVyaWZpY2F0aW9uIGZvciB0cmFkaXRpb25hbCBVVFhPIGNvaW5zIHVzaW5nIGZpeGVkIHNjcmlwdHNcbiAqIChub24tZGVzY3JpcHRvciB3YWxsZXRzKS4gSXQgdmFsaWRhdGVzIGtleWNoYWlucywgc2lnbmF0dXJlcywgb3V0cHV0cywgYW5kIGFtb3VudHMuXG4gKlxuICogQHBhcmFtIGNvaW4gLSBUaGUgVVRYTyBjb2luIGluc3RhbmNlXG4gKiBAcGFyYW0gYml0Z28gLSBCaXRHbyBBUEkgaW5zdGFuY2UgZm9yIG5ldHdvcmsgY2FsbHNcbiAqIEBwYXJhbSBwYXJhbXMgLSBWZXJpZmljYXRpb24gcGFyYW1ldGVyc1xuICogQHBhcmFtIHBhcmFtcy50eFBhcmFtcyAtIFRyYW5zYWN0aW9uIHBhcmFtZXRlcnMgcGFzc2VkIHRvIHNlbmRcbiAqIEBwYXJhbSBwYXJhbXMudHhQcmVidWlsZCAtIFByZWJ1aWxkIG9iamVjdCByZXR1cm5lZCBieSBzZXJ2ZXJcbiAqIEBwYXJhbSBwYXJhbXMud2FsbGV0IC0gV2FsbGV0IG9iamVjdCB0byBvYnRhaW4ga2V5cyB0byB2ZXJpZnkgYWdhaW5zdFxuICogQHBhcmFtIHBhcmFtcy52ZXJpZmljYXRpb24gLSBWZXJpZmljYXRpb24gb3B0aW9ucyAoZGlzYWJsZU5ldHdvcmtpbmcsIGtleWNoYWlucywgYWRkcmVzc2VzKVxuICogQHBhcmFtIHBhcmFtcy5yZXFJZCAtIE9wdGlvbmFsIHJlcXVlc3QgSUQgZm9yIGxvZ2dpbmdcbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHZlcmlmaWNhdGlvbiBwYXNzZXNcbiAqIEB0aHJvd3Mge1R4SW50ZW50TWlzbWF0Y2hFcnJvcn0gaWYgdHJhbnNhY3Rpb24gdmFsaWRhdGlvbiBmYWlsc1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdmVyaWZ5VHJhbnNhY3Rpb248VE51bWJlciBleHRlbmRzIGJpZ2ludCB8IG51bWJlcj4oXG4gIGNvaW46IEFic3RyYWN0VXR4b0NvaW4sXG4gIGJpdGdvOiBCaXRHb0Jhc2UsXG4gIHBhcmFtczogVmVyaWZ5VHJhbnNhY3Rpb25PcHRpb25zPFROdW1iZXI+XG4pOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgY29uc3QgeyB0eFBhcmFtcywgdHhQcmVidWlsZCwgd2FsbGV0LCB2ZXJpZmljYXRpb24gPSB7fSwgcmVxSWQgfSA9IHBhcmFtcztcblxuICBjb25zdCB0eEV4cGxhbmF0aW9uID0gYXdhaXQgVHhJbnRlbnRNaXNtYXRjaEVycm9yLnRyeUdldFR4RXhwbGFuYXRpb24oY29pbiBhcyB1bmtub3duIGFzIElCYXNlQ29pbiwgdHhQcmVidWlsZCk7XG5cbiAgLy8gSGVscGVyIHRvIHRocm93IFR4SW50ZW50TWlzbWF0Y2hFcnJvciB3aXRoIGNvbnNpc3RlbnQgY29udGV4dFxuICBjb25zdCB0aHJvd1R4TWlzbWF0Y2ggPSAobWVzc2FnZTogc3RyaW5nKTogbmV2ZXIgPT4ge1xuICAgIHRocm93IG5ldyBUeEludGVudE1pc21hdGNoRXJyb3IobWVzc2FnZSwgcmVxSWQsIFt0eFBhcmFtc10sIHR4UHJlYnVpbGQudHhIZXgsIHR4RXhwbGFuYXRpb24pO1xuICB9O1xuXG4gIGlmICghXy5pc1VuZGVmaW5lZCh2ZXJpZmljYXRpb24uZGlzYWJsZU5ldHdvcmtpbmcpICYmICFfLmlzQm9vbGVhbih2ZXJpZmljYXRpb24uZGlzYWJsZU5ldHdvcmtpbmcpKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcigndmVyaWZpY2F0aW9uLmRpc2FibGVOZXR3b3JraW5nIG11c3QgYmUgYSBib29sZWFuJyk7XG4gIH1cbiAgY29uc3QgaXNQc2J0ID0gdHhQcmVidWlsZC50eEhleCAmJiBoYXNQc2J0TWFnaWMoc3RyaW5nVG9CdWZmZXJUcnlGb3JtYXRzKHR4UHJlYnVpbGQudHhIZXgsIFsnaGV4JywgJ2Jhc2U2NCddKSk7XG4gIGlmIChpc1BzYnQgJiYgdHhQcmVidWlsZC50eEluZm8/LnVuc3BlbnRzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdzaG91bGQgbm90IGhhdmUgdW5zcGVudHMgaW4gdHhJbmZvIGZvciBwc2J0Jyk7XG4gIH1cbiAgY29uc3QgZGlzYWJsZU5ldHdvcmtpbmcgPSAhIXZlcmlmaWNhdGlvbi5kaXNhYmxlTmV0d29ya2luZztcbiAgY29uc3QgaXNCcmlkZ2luZyA9IHR4UGFyYW1zLnR5cGUgPT09ICdicmlkZ2luZyc7XG4gIGNvbnN0IHBhcnNlZFRyYW5zYWN0aW9uOiBQYXJzZWRUcmFuc2FjdGlvbjxUTnVtYmVyPiA9IGF3YWl0IGNvaW4ucGFyc2VUcmFuc2FjdGlvbjxUTnVtYmVyPih7XG4gICAgdHhQYXJhbXMsXG4gICAgdHhQcmVidWlsZCxcbiAgICB3YWxsZXQsXG4gICAgdmVyaWZpY2F0aW9uLFxuICAgIHJlcUlkLFxuICB9KTtcblxuICBjb25zdCBrZXljaGFpbnMgPSBwYXJzZWRUcmFuc2FjdGlvbi5rZXljaGFpbnM7XG5cbiAgLy8gdmVyaWZ5IHRoYXQgdGhlIGNsYWltZWQgdXNlciBwdWJsaWMga2V5IGNvcnJlc3BvbmRzIHRvIHRoZSB3YWxsZXQncyB1c2VyIHByaXZhdGUga2V5XG4gIGxldCB1c2VyUHVibGljS2V5VmVyaWZpZWQgPSBmYWxzZTtcbiAgdHJ5IHtcbiAgICAvLyB2ZXJpZnkgdGhlIHVzZXIgcHVibGljIGtleSBtYXRjaGVzIHRoZSBwcml2YXRlIGtleSAtIHRoaXMgd2lsbCB0aHJvdyBpZiB0aGVyZSBpcyBubyBtYXRjaFxuICAgIHVzZXJQdWJsaWNLZXlWZXJpZmllZCA9IGF3YWl0IHZlcmlmeVVzZXJQdWJsaWNLZXkoYml0Z28sIHtcbiAgICAgIHVzZXJLZXljaGFpbjoga2V5Y2hhaW5zLnVzZXIsXG4gICAgICBkaXNhYmxlTmV0d29ya2luZyxcbiAgICAgIHR4UGFyYW1zLFxuICAgIH0pO1xuICB9IGNhdGNoIChlKSB7XG4gICAgZGVidWcoJ2ZhaWxlZCB0byB2ZXJpZnkgdXNlciBwdWJsaWMga2V5IScsIGUpO1xuICB9XG5cbiAgLy8gbGV0J3MgdmVyaWZ5IHRoZXNlIGtleWNoYWluc1xuICBjb25zdCBrZXlTaWduYXR1cmVzID0gcGFyc2VkVHJhbnNhY3Rpb24ua2V5U2lnbmF0dXJlcztcbiAgaWYgKCFfLmlzRW1wdHkoa2V5U2lnbmF0dXJlcykpIHtcbiAgICBjb25zdCB2ZXJpZnkgPSAoa2V5LCBwdWIpID0+IHtcbiAgICAgIGlmICgha2V5Y2hhaW5zLnVzZXIgfHwgIWtleWNoYWlucy51c2VyLnB1Yikge1xuICAgICAgICB0aHJvd1R4TWlzbWF0Y2goJ21pc3NpbmcgdXNlciBrZXljaGFpbicpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHZlcmlmeUtleVNpZ25hdHVyZSh7XG4gICAgICAgIHVzZXJLZXljaGFpbjoga2V5Y2hhaW5zLnVzZXIgYXMgeyBwdWI6IHN0cmluZyB9LFxuICAgICAgICBrZXljaGFpblRvVmVyaWZ5OiBrZXksXG4gICAgICAgIGtleVNpZ25hdHVyZTogcHViLFxuICAgICAgfSk7XG4gICAgfTtcbiAgICBjb25zdCBpc0JhY2t1cEtleVNpZ25hdHVyZVZhbGlkID0gdmVyaWZ5KGtleWNoYWlucy5iYWNrdXAsIGtleVNpZ25hdHVyZXMuYmFja3VwUHViKTtcbiAgICBjb25zdCBpc0JpdGdvS2V5U2lnbmF0dXJlVmFsaWQgPSB2ZXJpZnkoa2V5Y2hhaW5zLmJpdGdvLCBrZXlTaWduYXR1cmVzLmJpdGdvUHViKTtcbiAgICBpZiAoIWlzQmFja3VwS2V5U2lnbmF0dXJlVmFsaWQgfHwgIWlzQml0Z29LZXlTaWduYXR1cmVWYWxpZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdzZWNvbmRhcnkgcHVibGljIGtleSBzaWduYXR1cmVzIGludmFsaWQnKTtcbiAgICB9XG4gICAgZGVidWcoJ3N1Y2Nlc3NmdWxseSB2ZXJpZmllZCBiYWNrdXAgYW5kIGJpdGdvIGtleSBzaWduYXR1cmVzJyk7XG4gIH0gZWxzZSBpZiAoIWRpc2FibGVOZXR3b3JraW5nKSB7XG4gICAgLy8gdGhlc2Uga2V5cyB3ZXJlIG9idGFpbmVkIG9ubGluZSBhbmQgdGhlaXIgc2lnbmF0dXJlcyB3ZXJlIG5vdCB2ZXJpZmllZFxuICAgIC8vIHRoaXMgY291bGQgYmUgZGFuZ2Vyb3VzXG4gICAgY29uc29sZS5sb2coJ3Vuc2lnbmVkIGtleXMgb2J0YWluZWQgb25saW5lIGFyZSBiZWluZyB1c2VkIGZvciBhZGRyZXNzIHZlcmlmaWNhdGlvbicpO1xuICB9XG5cbiAgaWYgKHBhcnNlZFRyYW5zYWN0aW9uLm5lZWRzQ3VzdG9tQ2hhbmdlS2V5U2lnbmF0dXJlVmVyaWZpY2F0aW9uKSB7XG4gICAgaWYgKCFrZXljaGFpbnMudXNlciB8fCAhdXNlclB1YmxpY0tleVZlcmlmaWVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3RyYW5zYWN0aW9uIHJlcXVpcmVzIHZlcmlmaWNhdGlvbiBvZiB1c2VyIHB1YmxpYyBrZXksIGJ1dCBpdCB3YXMgdW5hYmxlIHRvIGJlIHZlcmlmaWVkJyk7XG4gICAgfVxuICAgIGNvbnN0IGN1c3RvbUNoYW5nZUtleVNpZ25hdHVyZXNWZXJpZmllZCA9IHZlcmlmeUN1c3RvbUNoYW5nZUtleVNpZ25hdHVyZXMocGFyc2VkVHJhbnNhY3Rpb24sIGtleWNoYWlucy51c2VyKTtcbiAgICBpZiAoIWN1c3RvbUNoYW5nZUtleVNpZ25hdHVyZXNWZXJpZmllZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAndHJhbnNhY3Rpb24gcmVxdWlyZXMgdmVyaWZpY2F0aW9uIG9mIGN1c3RvbSBjaGFuZ2Uga2V5IHNpZ25hdHVyZXMsIGJ1dCB0aGV5IHdlcmUgdW5hYmxlIHRvIGJlIHZlcmlmaWVkJ1xuICAgICAgKTtcbiAgICB9XG4gICAgZGVidWcoJ3N1Y2Nlc3NmdWxseSB2ZXJpZmllZCB1c2VyIHB1YmxpYyBrZXkgYW5kIGN1c3RvbSBjaGFuZ2Uga2V5IHNpZ25hdHVyZXMnKTtcbiAgfVxuXG4gIGlmICh0eFBhcmFtcy5xcikge1xuICAgIGNvbnN0IGFsbEV4dGVybmFsT3V0cHV0cyA9IFtcbiAgICAgIC4uLnBhcnNlZFRyYW5zYWN0aW9uLmV4cGxpY2l0RXh0ZXJuYWxPdXRwdXRzLFxuICAgICAgLi4ucGFyc2VkVHJhbnNhY3Rpb24uaW1wbGljaXRFeHRlcm5hbE91dHB1dHMsXG4gICAgXTtcbiAgICBpZiAoYWxsRXh0ZXJuYWxPdXRwdXRzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRocm93VHhNaXNtYXRjaCgncXVhbnR1bS1yZXNpc3RhbnQgc3dlZXAgdHJhbnNhY3Rpb25zIG11c3Qgb25seSBjb250YWluIHdhbGxldC1pbnRlcm5hbCBvdXRwdXRzJyk7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgY29uc3QgbWlzc2luZ091dHB1dHMgPSBwYXJzZWRUcmFuc2FjdGlvbi5taXNzaW5nT3V0cHV0cztcbiAgaWYgKG1pc3NpbmdPdXRwdXRzLmxlbmd0aCAhPT0gMCkge1xuICAgIC8vIHRoZXJlIGFyZSBzb21lIG91dHB1dHMgaW4gdGhlIHJlY2lwaWVudHMgbGlzdCB0aGF0IGhhdmUgbm90IG1hZGUgaXQgaW50byB0aGUgYWN0dWFsIHRyYW5zYWN0aW9uXG4gICAgdGhyb3dUeE1pc21hdGNoKCdleHBlY3RlZCBvdXRwdXRzIG1pc3NpbmcgaW4gdHJhbnNhY3Rpb24gcHJlYnVpbGQnKTtcbiAgfVxuXG4gIGNvbnN0IGludGVuZGVkRXh0ZXJuYWxTcGVuZCA9IHBhcnNlZFRyYW5zYWN0aW9uLmV4cGxpY2l0RXh0ZXJuYWxTcGVuZEFtb3VudDtcblxuICAvLyB0aGlzIGlzIGEgbGltaXQgd2UgaW1wb3NlIGZvciB0aGUgdG90YWwgdmFsdWUgdGhhdCBpcyBhbWVuZGVkIHRvIHRoZSB0cmFuc2FjdGlvbiBiZXlvbmQgd2hhdCB3YXMgb3JpZ2luYWxseSBpbnRlbmRlZFxuICBjb25zdCBwYXlBc1lvdUdvTGltaXQgPSBuZXcgQmlnTnVtYmVyKGdldFBheUdvTGltaXQodmVyaWZpY2F0aW9uLmFsbG93UGF5Z29PdXRwdXQpKS5tdWx0aXBsaWVkQnkoXG4gICAgaW50ZW5kZWRFeHRlcm5hbFNwZW5kLnRvU3RyaW5nKClcbiAgKTtcblxuICAvKlxuICBTb21lIGV4cGxhbmF0aW9uIGZvciB3aHkgd2UncmUgZG9pbmcgd2hhdCB3ZSdyZSBkb2luZzpcbiAgU29tZSBjdXN0b21lcnMgd2lsbCBoYXZlIGFuIG91dHB1dCB0byBCaXRHbydzIFBBWUdvIHdhbGxldCBhZGRlZCB0byB0aGVpciB0cmFuc2FjdGlvbiwgYW5kIHdlIG5lZWQgdG8gYWNjb3VudCBmb3JcbiAgaXQgaGVyZS4gVG8gcHJvdGVjdCBzb21lb25lIHRhbXBlcmluZyB3aXRoIHRoZSBvdXRwdXQgdG8gbWFrZSBpdCBzZW5kIG1vcmUgdGhhbiBpdCBzaG91bGQgdG8gQml0R28sIHdlIGRlZmluZSBhXG4gIHRocmVzaG9sZCBmb3IgdGhlIG91dHB1dCdzIHZhbHVlIGFib3ZlIHdoaWNoIHdlJ2xsIHRocm93IGFuIGVycm9yLCBiZWNhdXNlIHRoZSBwYXlnbyBvdXRwdXQgc2hvdWxkIG5ldmVyIGJlIHRoYXRcbiAgaGlnaC5cbiAgICovXG5cbiAgLy8gbWFrZSBzdXJlIHRoYXQgYWxsIHRoZSBleHRyYSBhZGRyZXNzZXMgYXJlIGNoYW5nZSBhZGRyZXNzZXNcbiAgLy8gZ2V0IGFsbCB0aGUgYWRkaXRpb25hbCBleHRlcm5hbCBvdXRwdXRzIHRoZSBzZXJ2ZXIgYWRkZWQgYW5kIGNhbGN1bGF0ZSB0aGVpciB2YWx1ZXNcbiAgY29uc3Qgbm9uQ2hhbmdlQW1vdW50ID0gbmV3IEJpZ051bWJlcihwYXJzZWRUcmFuc2FjdGlvbi5pbXBsaWNpdEV4dGVybmFsU3BlbmRBbW91bnQudG9TdHJpbmcoKSk7XG5cbiAgZGVidWcoXG4gICAgJ0ludGVuZGVkIHNwZW5kIGlzICVzLCBOb24tY2hhbmdlIGFtb3VudCBpcyAlcywgcGF5Z28gbGltaXQgaXMgJXMnLFxuICAgIGludGVuZGVkRXh0ZXJuYWxTcGVuZC50b1N0cmluZygpLFxuICAgIG5vbkNoYW5nZUFtb3VudC50b1N0cmluZygpLFxuICAgIHBheUFzWW91R29MaW1pdC50b1N0cmluZygpXG4gICk7XG5cbiAgLy8gVGhlcmUgYXJlIHR3byBpbnN0YW5jZXMgd2hlcmUgd2Ugd2lsbCBnZXQgaW50byB0aGlzIHBvaW50IGhlcmVcbiAgaWYgKG5vbkNoYW5nZUFtb3VudC5ndChwYXlBc1lvdUdvTGltaXQpKSB7XG4gICAgaWYgKGlzQnJpZGdpbmcpIHtcbiAgICAgIC8vIFRoZSBpbXBsaWNpdCBleHRlcm5hbCBvdXRwdXQgaXMgdGhlIGJyaWRnZSBkZXBvc2l0IGFkZHJlc3MgKHNlZSBub3RlIGFib3ZlKTsgaXQgaGFzIG5vXG4gICAgICAvLyByZWNpcGllbnQgdG8gbWF0Y2ggYWdhaW5zdCwgc28gaW5zdGVhZCB2ZXJpZnkgdGhlIHRvdGFsIGltcGxpY2l0IGV4dGVybmFsIHNwZW5kIGVxdWFscyB0aGVcbiAgICAgIC8vIGludGVuZGVkIGJyaWRnZSBhbW91bnQgZnJvbSBicmlkZ2luZ1BhcmFtcy5cbiAgICAgIGNvbnN0IGJyaWRnZUFtb3VudCA9IHR4UGFyYW1zLmJyaWRnaW5nUGFyYW1zPy5zYnRjPy5hbW91bnQ7XG4gICAgICBpZiAoYnJpZGdlQW1vdW50ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhyb3dUeE1pc21hdGNoKCdicmlkZ2luZyB0cmFuc2FjdGlvbiBpcyBtaXNzaW5nIGJyaWRnaW5nUGFyYW1zLnNidGMuYW1vdW50Jyk7XG4gICAgICB9IGVsc2UgaWYgKCFub25DaGFuZ2VBbW91bnQuZXEoYnJpZGdlQW1vdW50LnRvU3RyaW5nKCkpKSB7XG4gICAgICAgIHRocm93VHhNaXNtYXRjaChcbiAgICAgICAgICBgYnJpZGdpbmcgb3V0cHV0IGFtb3VudCAoJHtub25DaGFuZ2VBbW91bnQudG9TdHJpbmcoKX0pIGRvZXMgbm90IG1hdGNoIGludGVuZGVkIGJyaWRnZSBhbW91bnQgKCR7YnJpZGdlQW1vdW50fSlgXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkZWJ1ZygndmVyaWZpZWQgYnJpZGdpbmcgb3V0cHV0IGFtb3VudCBtYXRjaGVzIGJyaWRnaW5nUGFyYW1zLnNidGMuYW1vdW50Jyk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChpc1BzYnQgJiYgcGFyc2VkVHJhbnNhY3Rpb24uY3VzdG9tQ2hhbmdlKSB7XG4gICAgICAvLyBJbiB0aGUgY2FzZSB0aGF0IHdlIGhhdmUgYSBjdXN0b20gY2hhbmdlIGFkZHJlc3Mgb24gYSB3YWxsZXQgYW5kIHdlIGFyZSBidWlsZGluZyB0aGUgdHJhbnNhY3Rpb25cbiAgICAgIC8vIHdpdGggYSBQU0JULCB3ZSBkbyBub3QgaGF2ZSB0aGUgbWV0YWRhdGEgdG8gdmVyaWZ5IHRoZSBhZGRyZXNzIGZyb20gdGhlIGN1c3RvbSBjaGFuZ2Ugd2FsbGV0LCBub3JcbiAgICAgIC8vIGNhbiB3ZSBmZXRjaCB0aGF0IGluZm9ybWF0aW9uIGZyb20gdGhlIG90aGVyIHdhbGxldCBiZWNhdXNlIHdlIG1heSBub3QgaGF2ZSB0aGUgY3JlZGVudGlhbHMuIFRoZXJlZm9yZSxcbiAgICAgIC8vIHdlIHdpbGwgbm90IHRocm93IGFuIGVycm9yIGhlcmUsIGJ1dCB3ZSB3aWxsIGxvZyBhIHdhcm5pbmcuXG4gICAgICBkZWJ1ZyhgY2Fubm90IHZlcmlmeSBzb21lIG9mIHRoZSBhZGRyZXNzZXMgYmVjYXVzZSBpdCBiZWxvbmdzIHRvIGEgc2VwYXJhdGUgd2FsbGV0YCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIHRoZSBhZGRpdGlvbmFsIGV4dGVybmFsIG91dHB1dHMgY2FuIG9ubHkgYmUgQml0R28ncyBwYXktYXMteW91LWdvIGZlZSwgYnV0IHdlIGNhbm5vdCB2ZXJpZnkgdGhlIHdhbGxldCBhZGRyZXNzXG4gICAgICAvLyB0aGVyZSBhcmUgc29tZSBhZGRyZXNzZXMgdGhhdCBhcmUgb3V0c2lkZSB0aGUgc2NvcGUgb2YgaW50ZW5kZWQgcmVjaXBpZW50cyB0aGF0IGFyZSBub3QgY2hhbmdlIGFkZHJlc3Nlc1xuICAgICAgdGhyb3dUeE1pc21hdGNoKCdwcmVidWlsZCBhdHRlbXB0cyB0byBzcGVuZCB0byB1bmludGVuZGVkIGV4dGVybmFsIHJlY2lwaWVudHMnKTtcbiAgICB9XG4gIH1cblxuICBpZiAoIXR4UHJlYnVpbGQudHhIZXgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYHR4UHJlYnVpbGQudHhIZXggbm90IHNldGApO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59XG4iXX0=
@@ -0,0 +1,9 @@
1
+ import { UtxoCoinName } from '../names';
2
+ /**
3
+ * We want to return the verification pubkey from our statics that has our
4
+ * verification pubkey.
5
+ * @param coinName
6
+ * @returns
7
+ */
8
+ export declare function getPayGoVerificationPubkey(coinName: UtxoCoinName): string | undefined;
9
+ //# sourceMappingURL=getPayGoVerificationPubkey.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getPayGoVerificationPubkey.d.ts","sourceRoot":"","sources":["../../../../src/transaction/getPayGoVerificationPubkey.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,YAAY,EAAE,MAAM,UAAU,CAAC;AAKvD;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,GAAG,SAAS,CAMrF"}