@bitgo/abstract-utxo 10.16.0 → 10.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (334) hide show
  1. package/dist/cjs/src/abstractUtxoCoin.d.ts +9 -13
  2. package/dist/cjs/src/abstractUtxoCoin.d.ts.map +1 -1
  3. package/dist/cjs/src/abstractUtxoCoin.js +28 -14
  4. package/dist/cjs/src/address/fixedScript.d.ts +4 -9
  5. package/dist/cjs/src/address/fixedScript.d.ts.map +1 -1
  6. package/dist/cjs/src/address/fixedScript.js +18 -50
  7. package/dist/cjs/src/descriptor/NamedDescriptor.d.ts +4 -5
  8. package/dist/cjs/src/descriptor/NamedDescriptor.d.ts.map +1 -1
  9. package/dist/cjs/src/descriptor/NamedDescriptor.js +4 -6
  10. package/dist/cjs/src/descriptor/assertDescriptorWalletAddress.d.ts +2 -2
  11. package/dist/cjs/src/descriptor/assertDescriptorWalletAddress.d.ts.map +1 -1
  12. package/dist/cjs/src/descriptor/assertDescriptorWalletAddress.js +3 -38
  13. package/dist/cjs/src/descriptor/builder/builder.d.ts +2 -3
  14. package/dist/cjs/src/descriptor/builder/builder.d.ts.map +1 -1
  15. package/dist/cjs/src/descriptor/builder/builder.js +1 -1
  16. package/dist/cjs/src/descriptor/builder/parse.d.ts.map +1 -1
  17. package/dist/cjs/src/descriptor/builder/parse.js +3 -3
  18. package/dist/cjs/src/descriptor/createWallet/createDescriptors.d.ts +2 -2
  19. package/dist/cjs/src/descriptor/createWallet/createDescriptors.d.ts.map +1 -1
  20. package/dist/cjs/src/descriptor/createWallet/createDescriptors.js +1 -1
  21. package/dist/cjs/src/descriptor/descriptorWallet.d.ts +1 -1
  22. package/dist/cjs/src/descriptor/descriptorWallet.d.ts.map +1 -1
  23. package/dist/cjs/src/descriptor/descriptorWallet.js +1 -1
  24. package/dist/cjs/src/descriptor/index.d.ts +1 -1
  25. package/dist/cjs/src/descriptor/index.d.ts.map +1 -1
  26. package/dist/cjs/src/descriptor/index.js +1 -1
  27. package/dist/cjs/src/descriptor/validatePolicy.d.ts +3 -3
  28. package/dist/cjs/src/descriptor/validatePolicy.d.ts.map +1 -1
  29. package/dist/cjs/src/descriptor/validatePolicy.js +3 -3
  30. package/dist/cjs/src/impl/bch/bch.d.ts.map +1 -1
  31. package/dist/cjs/src/impl/bch/bch.js +6 -38
  32. package/dist/cjs/src/impl/btc/inscriptionBuilder.d.ts +15 -5
  33. package/dist/cjs/src/impl/btc/inscriptionBuilder.d.ts.map +1 -1
  34. package/dist/cjs/src/impl/btc/inscriptionBuilder.js +43 -55
  35. package/dist/cjs/src/impl/doge/doge.d.ts +2 -1
  36. package/dist/cjs/src/impl/doge/doge.d.ts.map +1 -1
  37. package/dist/cjs/src/impl/doge/doge.js +1 -1
  38. package/dist/cjs/src/impl/ltc/ltc.d.ts +0 -1
  39. package/dist/cjs/src/impl/ltc/ltc.d.ts.map +1 -1
  40. package/dist/cjs/src/impl/ltc/ltc.js +3 -41
  41. package/dist/cjs/src/impl/ltc/tltc.d.ts +0 -1
  42. package/dist/cjs/src/impl/ltc/tltc.d.ts.map +1 -1
  43. package/dist/cjs/src/impl/ltc/tltc.js +3 -40
  44. package/dist/cjs/src/index.d.ts +2 -0
  45. package/dist/cjs/src/index.d.ts.map +1 -1
  46. package/dist/cjs/src/index.js +3 -1
  47. package/dist/cjs/src/keychains.d.ts +5 -0
  48. package/dist/cjs/src/keychains.d.ts.map +1 -1
  49. package/dist/cjs/src/keychains.js +10 -1
  50. package/dist/cjs/src/offlineVault/OfflineVaultHalfSigned.js +2 -2
  51. package/dist/cjs/src/offlineVault/descriptor/transaction.d.ts +3 -2
  52. package/dist/cjs/src/offlineVault/descriptor/transaction.d.ts.map +1 -1
  53. package/dist/cjs/src/offlineVault/descriptor/transaction.js +5 -8
  54. package/dist/cjs/src/recovery/RecoveryProvider.d.ts +1 -3
  55. package/dist/cjs/src/recovery/RecoveryProvider.d.ts.map +1 -1
  56. package/dist/cjs/src/recovery/RecoveryProvider.js +1 -1
  57. package/dist/cjs/src/recovery/backupKeyRecovery.d.ts +73 -4
  58. package/dist/cjs/src/recovery/backupKeyRecovery.d.ts.map +1 -1
  59. package/dist/cjs/src/recovery/backupKeyRecovery.js +163 -129
  60. package/dist/cjs/src/recovery/crossChainRecovery.d.ts +5 -5
  61. package/dist/cjs/src/recovery/crossChainRecovery.d.ts.map +1 -1
  62. package/dist/cjs/src/recovery/crossChainRecovery.js +22 -121
  63. package/dist/cjs/src/recovery/psbt.d.ts +8 -31
  64. package/dist/cjs/src/recovery/psbt.d.ts.map +1 -1
  65. package/dist/cjs/src/recovery/psbt.js +14 -126
  66. package/dist/cjs/src/transaction/descriptor/explainPsbt.d.ts +3 -3
  67. package/dist/cjs/src/transaction/descriptor/explainPsbt.d.ts.map +1 -1
  68. package/dist/cjs/src/transaction/descriptor/explainPsbt.js +17 -54
  69. package/dist/cjs/src/transaction/descriptor/index.d.ts +1 -1
  70. package/dist/cjs/src/transaction/descriptor/index.d.ts.map +1 -1
  71. package/dist/cjs/src/transaction/descriptor/index.js +1 -1
  72. package/dist/cjs/src/transaction/descriptor/parse.d.ts +6 -4
  73. package/dist/cjs/src/transaction/descriptor/parse.d.ts.map +1 -1
  74. package/dist/cjs/src/transaction/descriptor/parse.js +24 -50
  75. package/dist/cjs/src/transaction/descriptor/signPsbt.d.ts +6 -7
  76. package/dist/cjs/src/transaction/descriptor/signPsbt.d.ts.map +1 -1
  77. package/dist/cjs/src/transaction/descriptor/signPsbt.js +19 -18
  78. package/dist/cjs/src/transaction/descriptor/verifyTransaction.d.ts +4 -4
  79. package/dist/cjs/src/transaction/descriptor/verifyTransaction.d.ts.map +1 -1
  80. package/dist/cjs/src/transaction/descriptor/verifyTransaction.js +10 -38
  81. package/dist/cjs/src/transaction/explainTransaction.d.ts +2 -1
  82. package/dist/cjs/src/transaction/explainTransaction.d.ts.map +1 -1
  83. package/dist/cjs/src/transaction/explainTransaction.js +3 -2
  84. package/dist/cjs/src/transaction/fixedScript/SigningError.d.ts +5 -3
  85. package/dist/cjs/src/transaction/fixedScript/SigningError.d.ts.map +1 -1
  86. package/dist/cjs/src/transaction/fixedScript/SigningError.js +10 -2
  87. package/dist/cjs/src/transaction/fixedScript/explainTransaction.d.ts +2 -1
  88. package/dist/cjs/src/transaction/fixedScript/explainTransaction.d.ts.map +1 -1
  89. package/dist/cjs/src/transaction/fixedScript/explainTransaction.js +1 -8
  90. package/dist/cjs/src/transaction/fixedScript/parseOutput.d.ts.map +1 -1
  91. package/dist/cjs/src/transaction/fixedScript/parseOutput.js +8 -12
  92. package/dist/cjs/src/transaction/fixedScript/parseTransaction.d.ts +2 -2
  93. package/dist/cjs/src/transaction/fixedScript/parseTransaction.d.ts.map +1 -1
  94. package/dist/cjs/src/transaction/fixedScript/parseTransaction.js +36 -11
  95. package/dist/cjs/src/transaction/fixedScript/signLegacyTransaction.d.ts +2 -2
  96. package/dist/cjs/src/transaction/fixedScript/signLegacyTransaction.d.ts.map +1 -1
  97. package/dist/cjs/src/transaction/fixedScript/signLegacyTransaction.js +4 -2
  98. package/dist/cjs/src/transaction/fixedScript/signPsbtUtxolib.d.ts +1 -1
  99. package/dist/cjs/src/transaction/fixedScript/signPsbtUtxolib.d.ts.map +1 -1
  100. package/dist/cjs/src/transaction/fixedScript/signPsbtUtxolib.js +1 -1
  101. package/dist/cjs/src/transaction/fixedScript/signPsbtWasm.d.ts +3 -2
  102. package/dist/cjs/src/transaction/fixedScript/signPsbtWasm.d.ts.map +1 -1
  103. package/dist/cjs/src/transaction/fixedScript/signPsbtWasm.js +15 -25
  104. package/dist/cjs/src/transaction/fixedScript/signTransaction.d.ts +6 -5
  105. package/dist/cjs/src/transaction/fixedScript/signTransaction.d.ts.map +1 -1
  106. package/dist/cjs/src/transaction/fixedScript/signTransaction.js +42 -7
  107. package/dist/cjs/src/transaction/outputDifference.d.ts +5 -1
  108. package/dist/cjs/src/transaction/outputDifference.d.ts.map +1 -1
  109. package/dist/cjs/src/transaction/outputDifference.js +6 -2
  110. package/dist/cjs/src/transaction/recipient.d.ts +5 -0
  111. package/dist/cjs/src/transaction/recipient.d.ts.map +1 -1
  112. package/dist/cjs/src/transaction/recipient.js +14 -1
  113. package/dist/cjs/src/transaction/signTransaction.d.ts.map +1 -1
  114. package/dist/cjs/src/transaction/signTransaction.js +10 -10
  115. package/dist/cjs/src/unspent.d.ts +55 -0
  116. package/dist/cjs/src/unspent.d.ts.map +1 -0
  117. package/dist/cjs/src/unspent.js +12 -0
  118. package/dist/cjs/src/wasmUtil.d.ts +29 -0
  119. package/dist/cjs/src/wasmUtil.d.ts.map +1 -0
  120. package/dist/cjs/src/wasmUtil.js +87 -0
  121. package/dist/cjs/test/unit/address.d.ts +1 -1
  122. package/dist/cjs/test/unit/address.d.ts.map +1 -1
  123. package/dist/cjs/test/unit/address.js +107 -137
  124. package/dist/cjs/test/unit/bip322.js +50 -1
  125. package/dist/cjs/test/unit/coins.js +7 -2
  126. package/dist/cjs/test/unit/customSigner.js +5 -4
  127. package/dist/cjs/test/unit/descriptor/NamedDescriptor.js +37 -4
  128. package/dist/cjs/test/unit/descriptor/builder.js +10 -4
  129. package/dist/cjs/test/unit/descriptor/createWallet/createDescriptors.js +37 -4
  130. package/dist/cjs/test/unit/descriptor/descriptorWallet.js +40 -6
  131. package/dist/cjs/test/unit/descriptorAddress.d.ts +2 -2
  132. package/dist/cjs/test/unit/descriptorAddress.d.ts.map +1 -1
  133. package/dist/cjs/test/unit/descriptorAddress.js +10 -9
  134. package/dist/cjs/test/unit/explainTransaction.js +26 -3
  135. package/dist/cjs/test/unit/keychains.js +40 -1
  136. package/dist/cjs/test/unit/postProcessPrebuild.d.ts +2 -0
  137. package/dist/cjs/test/unit/postProcessPrebuild.d.ts.map +1 -0
  138. package/dist/cjs/test/unit/postProcessPrebuild.js +62 -0
  139. package/dist/cjs/test/unit/prebuildAndSign.d.ts +0 -4
  140. package/dist/cjs/test/unit/prebuildAndSign.d.ts.map +1 -1
  141. package/dist/cjs/test/unit/prebuildAndSign.js +12 -31
  142. package/dist/cjs/test/unit/recovery/backupKeyRecovery.js +82 -258
  143. package/dist/cjs/test/unit/recovery/backupKeyRecoveryUnspentGathering.d.ts +2 -0
  144. package/dist/cjs/test/unit/recovery/backupKeyRecoveryUnspentGathering.d.ts.map +1 -0
  145. package/dist/cjs/test/unit/recovery/backupKeyRecoveryUnspentGathering.js +144 -0
  146. package/dist/cjs/test/unit/recovery/crossChainRecovery.js +41 -37
  147. package/dist/cjs/test/unit/recovery/formatBackupKeyRecoveryResult.d.ts +2 -0
  148. package/dist/cjs/test/unit/recovery/formatBackupKeyRecoveryResult.d.ts.map +1 -0
  149. package/dist/cjs/test/unit/recovery/formatBackupKeyRecoveryResult.js +186 -0
  150. package/dist/cjs/test/unit/recovery/mock.d.ts +15 -8
  151. package/dist/cjs/test/unit/recovery/mock.d.ts.map +1 -1
  152. package/dist/cjs/test/unit/recovery/mock.js +50 -77
  153. package/dist/cjs/test/unit/signTransaction.d.ts +2 -0
  154. package/dist/cjs/test/unit/signTransaction.d.ts.map +1 -0
  155. package/dist/cjs/test/unit/signTransaction.js +244 -0
  156. package/dist/cjs/test/unit/testSpoofTransaction.d.ts +2 -0
  157. package/dist/cjs/test/unit/testSpoofTransaction.d.ts.map +1 -0
  158. package/dist/cjs/test/unit/testSpoofTransaction.js +114 -0
  159. package/dist/cjs/test/unit/transaction/descriptor/explainPsbt.js +46 -12
  160. package/dist/cjs/test/unit/transaction/descriptor/fixtures.utils.d.ts.map +1 -1
  161. package/dist/cjs/test/unit/transaction/descriptor/fixtures.utils.js +38 -4
  162. package/dist/cjs/test/unit/transaction/descriptor/parse.js +22 -19
  163. package/dist/cjs/test/unit/transaction/descriptor/sign.js +60 -16
  164. package/dist/cjs/test/unit/transaction/descriptor/validatePolicy.js +43 -10
  165. package/dist/cjs/test/unit/transaction/fixedScript/parsePsbt.js +2 -2
  166. package/dist/cjs/test/unit/transaction/outputDifference.d.ts.map +1 -0
  167. package/dist/cjs/test/unit/transaction/outputDifference.js +117 -0
  168. package/dist/cjs/test/unit/transaction.js +8 -226
  169. package/dist/cjs/test/unit/txFormat.d.ts.map +1 -1
  170. package/dist/cjs/test/unit/txFormat.js +9 -9
  171. package/dist/cjs/test/unit/util/address.d.ts +13 -0
  172. package/dist/cjs/test/unit/util/address.d.ts.map +1 -0
  173. package/dist/cjs/test/unit/util/address.js +15 -0
  174. package/dist/cjs/test/unit/util/index.d.ts +3 -0
  175. package/dist/cjs/test/unit/util/index.d.ts.map +1 -1
  176. package/dist/cjs/test/unit/util/index.js +4 -1
  177. package/dist/cjs/test/unit/util/keychains.d.ts +29 -0
  178. package/dist/cjs/test/unit/util/keychains.d.ts.map +1 -1
  179. package/dist/cjs/test/unit/util/keychains.js +51 -1
  180. package/dist/cjs/test/unit/util/nockBitGo.d.ts +8 -1
  181. package/dist/cjs/test/unit/util/nockBitGo.d.ts.map +1 -1
  182. package/dist/cjs/test/unit/util/nockBitGo.js +17 -1
  183. package/dist/cjs/test/unit/util/nockIndexerAPI.d.ts.map +1 -1
  184. package/dist/cjs/test/unit/util/nockIndexerAPI.js +4 -37
  185. package/dist/cjs/test/unit/util/psbt.d.ts +19 -0
  186. package/dist/cjs/test/unit/util/psbt.d.ts.map +1 -0
  187. package/dist/cjs/test/unit/util/psbt.js +21 -0
  188. package/dist/cjs/test/unit/util/transaction.d.ts +8 -4
  189. package/dist/cjs/test/unit/util/transaction.d.ts.map +1 -1
  190. package/dist/cjs/test/unit/util/transaction.js +22 -2
  191. package/dist/cjs/test/unit/util/unspents.d.ts +66 -8
  192. package/dist/cjs/test/unit/util/unspents.d.ts.map +1 -1
  193. package/dist/cjs/test/unit/util/unspents.js +130 -15
  194. package/dist/cjs/test/unit/util/utxoCoins.d.ts +13 -0
  195. package/dist/cjs/test/unit/util/utxoCoins.d.ts.map +1 -1
  196. package/dist/cjs/test/unit/util/utxoCoins.js +33 -2
  197. package/dist/cjs/test/unit/wallet.js +4 -4
  198. package/dist/cjs/tsconfig.tsbuildinfo +1 -1
  199. package/dist/esm/abstractUtxoCoin.d.ts +9 -13
  200. package/dist/esm/abstractUtxoCoin.d.ts.map +1 -1
  201. package/dist/esm/abstractUtxoCoin.js +30 -16
  202. package/dist/esm/address/fixedScript.d.ts +4 -9
  203. package/dist/esm/address/fixedScript.d.ts.map +1 -1
  204. package/dist/esm/address/fixedScript.js +18 -17
  205. package/dist/esm/descriptor/NamedDescriptor.d.ts +4 -5
  206. package/dist/esm/descriptor/NamedDescriptor.d.ts.map +1 -1
  207. package/dist/esm/descriptor/NamedDescriptor.js +5 -7
  208. package/dist/esm/descriptor/assertDescriptorWalletAddress.d.ts +2 -2
  209. package/dist/esm/descriptor/assertDescriptorWalletAddress.d.ts.map +1 -1
  210. package/dist/esm/descriptor/assertDescriptorWalletAddress.js +3 -5
  211. package/dist/esm/descriptor/builder/builder.d.ts +2 -3
  212. package/dist/esm/descriptor/builder/builder.d.ts.map +1 -1
  213. package/dist/esm/descriptor/builder/builder.js +1 -1
  214. package/dist/esm/descriptor/builder/parse.d.ts.map +1 -1
  215. package/dist/esm/descriptor/builder/parse.js +3 -3
  216. package/dist/esm/descriptor/createWallet/createDescriptors.d.ts +2 -2
  217. package/dist/esm/descriptor/createWallet/createDescriptors.d.ts.map +1 -1
  218. package/dist/esm/descriptor/createWallet/createDescriptors.js +1 -1
  219. package/dist/esm/descriptor/descriptorWallet.d.ts +1 -1
  220. package/dist/esm/descriptor/descriptorWallet.d.ts.map +1 -1
  221. package/dist/esm/descriptor/descriptorWallet.js +1 -1
  222. package/dist/esm/descriptor/index.d.ts +1 -1
  223. package/dist/esm/descriptor/index.d.ts.map +1 -1
  224. package/dist/esm/descriptor/index.js +1 -1
  225. package/dist/esm/descriptor/validatePolicy.d.ts +3 -3
  226. package/dist/esm/descriptor/validatePolicy.d.ts.map +1 -1
  227. package/dist/esm/descriptor/validatePolicy.js +3 -3
  228. package/dist/esm/impl/bch/bch.d.ts.map +1 -1
  229. package/dist/esm/impl/bch/bch.js +6 -5
  230. package/dist/esm/impl/btc/inscriptionBuilder.d.ts +15 -5
  231. package/dist/esm/impl/btc/inscriptionBuilder.d.ts.map +1 -1
  232. package/dist/esm/impl/btc/inscriptionBuilder.js +44 -23
  233. package/dist/esm/impl/doge/doge.d.ts +2 -1
  234. package/dist/esm/impl/doge/doge.d.ts.map +1 -1
  235. package/dist/esm/impl/doge/doge.js +1 -1
  236. package/dist/esm/impl/ltc/ltc.d.ts +0 -1
  237. package/dist/esm/impl/ltc/ltc.d.ts.map +1 -1
  238. package/dist/esm/impl/ltc/ltc.js +3 -8
  239. package/dist/esm/impl/ltc/tltc.d.ts +0 -1
  240. package/dist/esm/impl/ltc/tltc.d.ts.map +1 -1
  241. package/dist/esm/impl/ltc/tltc.js +3 -7
  242. package/dist/esm/index.d.ts +2 -0
  243. package/dist/esm/index.d.ts.map +1 -1
  244. package/dist/esm/index.js +3 -1
  245. package/dist/esm/keychains.d.ts +5 -0
  246. package/dist/esm/keychains.d.ts.map +1 -1
  247. package/dist/esm/keychains.js +9 -1
  248. package/dist/esm/offlineVault/OfflineVaultHalfSigned.js +2 -2
  249. package/dist/esm/offlineVault/descriptor/transaction.d.ts +3 -2
  250. package/dist/esm/offlineVault/descriptor/transaction.d.ts.map +1 -1
  251. package/dist/esm/offlineVault/descriptor/transaction.js +5 -8
  252. package/dist/esm/recovery/RecoveryProvider.d.ts +1 -3
  253. package/dist/esm/recovery/RecoveryProvider.d.ts.map +1 -1
  254. package/dist/esm/recovery/RecoveryProvider.js +1 -1
  255. package/dist/esm/recovery/backupKeyRecovery.d.ts +73 -4
  256. package/dist/esm/recovery/backupKeyRecovery.d.ts.map +1 -1
  257. package/dist/esm/recovery/backupKeyRecovery.js +165 -100
  258. package/dist/esm/recovery/crossChainRecovery.d.ts +5 -5
  259. package/dist/esm/recovery/crossChainRecovery.d.ts.map +1 -1
  260. package/dist/esm/recovery/crossChainRecovery.js +24 -90
  261. package/dist/esm/recovery/psbt.d.ts +8 -31
  262. package/dist/esm/recovery/psbt.d.ts.map +1 -1
  263. package/dist/esm/recovery/psbt.js +14 -91
  264. package/dist/esm/transaction/descriptor/explainPsbt.d.ts +3 -3
  265. package/dist/esm/transaction/descriptor/explainPsbt.d.ts.map +1 -1
  266. package/dist/esm/transaction/descriptor/explainPsbt.js +14 -18
  267. package/dist/esm/transaction/descriptor/index.d.ts +1 -1
  268. package/dist/esm/transaction/descriptor/index.d.ts.map +1 -1
  269. package/dist/esm/transaction/descriptor/index.js +1 -1
  270. package/dist/esm/transaction/descriptor/parse.d.ts +6 -4
  271. package/dist/esm/transaction/descriptor/parse.d.ts.map +1 -1
  272. package/dist/esm/transaction/descriptor/parse.js +22 -15
  273. package/dist/esm/transaction/descriptor/signPsbt.d.ts +6 -7
  274. package/dist/esm/transaction/descriptor/signPsbt.d.ts.map +1 -1
  275. package/dist/esm/transaction/descriptor/signPsbt.js +19 -18
  276. package/dist/esm/transaction/descriptor/verifyTransaction.d.ts +4 -4
  277. package/dist/esm/transaction/descriptor/verifyTransaction.d.ts.map +1 -1
  278. package/dist/esm/transaction/descriptor/verifyTransaction.js +10 -5
  279. package/dist/esm/transaction/explainTransaction.d.ts +2 -1
  280. package/dist/esm/transaction/explainTransaction.d.ts.map +1 -1
  281. package/dist/esm/transaction/explainTransaction.js +3 -2
  282. package/dist/esm/transaction/fixedScript/SigningError.d.ts +5 -3
  283. package/dist/esm/transaction/fixedScript/SigningError.d.ts.map +1 -1
  284. package/dist/esm/transaction/fixedScript/SigningError.js +8 -1
  285. package/dist/esm/transaction/fixedScript/explainTransaction.d.ts +2 -1
  286. package/dist/esm/transaction/fixedScript/explainTransaction.d.ts.map +1 -1
  287. package/dist/esm/transaction/fixedScript/explainTransaction.js +1 -8
  288. package/dist/esm/transaction/fixedScript/parseOutput.d.ts.map +1 -1
  289. package/dist/esm/transaction/fixedScript/parseOutput.js +8 -12
  290. package/dist/esm/transaction/fixedScript/parseTransaction.d.ts +2 -2
  291. package/dist/esm/transaction/fixedScript/parseTransaction.d.ts.map +1 -1
  292. package/dist/esm/transaction/fixedScript/parseTransaction.js +36 -11
  293. package/dist/esm/transaction/fixedScript/signLegacyTransaction.d.ts +2 -2
  294. package/dist/esm/transaction/fixedScript/signLegacyTransaction.d.ts.map +1 -1
  295. package/dist/esm/transaction/fixedScript/signLegacyTransaction.js +4 -2
  296. package/dist/esm/transaction/fixedScript/signPsbtUtxolib.d.ts +1 -1
  297. package/dist/esm/transaction/fixedScript/signPsbtUtxolib.d.ts.map +1 -1
  298. package/dist/esm/transaction/fixedScript/signPsbtUtxolib.js +1 -1
  299. package/dist/esm/transaction/fixedScript/signPsbtWasm.d.ts +3 -2
  300. package/dist/esm/transaction/fixedScript/signPsbtWasm.d.ts.map +1 -1
  301. package/dist/esm/transaction/fixedScript/signPsbtWasm.js +14 -24
  302. package/dist/esm/transaction/fixedScript/signTransaction.d.ts +6 -5
  303. package/dist/esm/transaction/fixedScript/signTransaction.d.ts.map +1 -1
  304. package/dist/esm/transaction/fixedScript/signTransaction.js +10 -8
  305. package/dist/esm/transaction/outputDifference.d.ts +5 -1
  306. package/dist/esm/transaction/outputDifference.d.ts.map +1 -1
  307. package/dist/esm/transaction/outputDifference.js +5 -2
  308. package/dist/esm/transaction/recipient.d.ts +5 -0
  309. package/dist/esm/transaction/recipient.d.ts.map +1 -1
  310. package/dist/esm/transaction/recipient.js +13 -1
  311. package/dist/esm/transaction/signTransaction.d.ts.map +1 -1
  312. package/dist/esm/transaction/signTransaction.js +10 -10
  313. package/dist/esm/unspent.d.ts +55 -0
  314. package/dist/esm/unspent.d.ts.map +1 -0
  315. package/dist/esm/unspent.js +8 -0
  316. package/dist/esm/wasmUtil.d.ts +29 -0
  317. package/dist/esm/wasmUtil.d.ts.map +1 -0
  318. package/dist/esm/wasmUtil.js +47 -0
  319. package/package.json +13 -14
  320. package/dist/cjs/test/unit/impl/btc/unit/btc.d.ts +0 -2
  321. package/dist/cjs/test/unit/impl/btc/unit/btc.d.ts.map +0 -1
  322. package/dist/cjs/test/unit/impl/btc/unit/btc.js +0 -220
  323. package/dist/cjs/test/unit/impl/btc/unit/fixtures/btcBackupKey.d.ts +0 -4
  324. package/dist/cjs/test/unit/impl/btc/unit/fixtures/btcBackupKey.d.ts.map +0 -1
  325. package/dist/cjs/test/unit/impl/btc/unit/fixtures/btcBackupKey.js +0 -10
  326. package/dist/cjs/test/unit/impl/btc/unit/fixtures/index.d.ts +0 -2
  327. package/dist/cjs/test/unit/impl/btc/unit/fixtures/index.d.ts.map +0 -1
  328. package/dist/cjs/test/unit/impl/btc/unit/fixtures/index.js +0 -18
  329. package/dist/cjs/test/unit/impl/ltc/unit/index.d.ts +0 -2
  330. package/dist/cjs/test/unit/impl/ltc/unit/index.d.ts.map +0 -1
  331. package/dist/cjs/test/unit/impl/ltc/unit/index.js +0 -39
  332. package/dist/cjs/test/unit/transaction/descriptor/outputDifference.d.ts.map +0 -1
  333. package/dist/cjs/test/unit/transaction/descriptor/outputDifference.js +0 -76
  334. /package/dist/cjs/test/unit/transaction/{descriptor/outputDifference.d.ts → outputDifference.d.ts} +0 -0
@@ -37,9 +37,9 @@ exports.getWalletConfigurations = getWalletConfigurations;
37
37
  exports.createMockWallet = createMockWallet;
38
38
  exports.getTxFormat = getTxFormat;
39
39
  const assert = __importStar(require("assert"));
40
- const utxolib = __importStar(require("@bitgo/utxo-lib"));
41
40
  const sdk_core_1 = require("@bitgo/sdk-core");
42
41
  const src_1 = require("../../src");
42
+ const names_1 = require("../../src/names");
43
43
  const util_1 = require("./util");
44
44
  /**
45
45
  * Enumerates common wallet configurations for testing
@@ -105,34 +105,34 @@ describe('txFormat', function () {
105
105
  // All testnet wallets default to PSBT-lite
106
106
  runTest({
107
107
  description: 'should always return psbt-lite for testnet',
108
- coinFilter: (coin) => utxolib.isTestnet(coin.network),
108
+ coinFilter: (coin) => (0, names_1.isTestnetCoin)(coin.name),
109
109
  expectedTxFormat: 'psbt-lite',
110
110
  });
111
111
  // DistributedCustody wallets default to PSBT (mainnet only, testnet already covered)
112
112
  runTest({
113
113
  description: 'should return psbt for distributedCustody wallets on mainnet',
114
- coinFilter: (coin) => utxolib.isMainnet(coin.network),
114
+ coinFilter: (coin) => (0, names_1.isMainnetCoin)(coin.name),
115
115
  walletFilter: (w) => w.options.subType === 'distributedCustody',
116
116
  expectedTxFormat: 'psbt',
117
117
  });
118
118
  // MuSig2 wallets default to PSBT (mainnet only, testnet already covered)
119
119
  runTest({
120
120
  description: 'should return psbt for wallets with musigKp flag on mainnet',
121
- coinFilter: (coin) => utxolib.isMainnet(coin.network),
121
+ coinFilter: (coin) => (0, names_1.isMainnetCoin)(coin.name),
122
122
  walletFilter: (w) => Boolean(w.options.walletFlags?.some((f) => f.name === 'musigKp' && f.value === 'true')),
123
123
  expectedTxFormat: 'psbt',
124
124
  });
125
125
  // Mainnet Bitcoin hot wallets default to PSBT
126
126
  runTest({
127
127
  description: 'should return psbt for mainnet bitcoin hot wallets',
128
- coinFilter: (coin) => utxolib.isMainnet(coin.network) && utxolib.getMainnet(coin.network) === utxolib.networks.bitcoin,
128
+ coinFilter: (coin) => (0, names_1.isMainnetCoin)(coin.name) && (0, names_1.getMainnetCoinName)(coin.name) === 'btc',
129
129
  walletFilter: (w) => w.options.type === 'hot',
130
130
  expectedTxFormat: 'psbt',
131
131
  });
132
132
  // Other mainnet wallets do NOT default to PSBT
133
133
  runTest({
134
134
  description: 'should return undefined for other mainnet wallets',
135
- coinFilter: (coin) => utxolib.isMainnet(coin.network),
135
+ coinFilter: (coin) => (0, names_1.isMainnetCoin)(coin.name),
136
136
  walletFilter: (w) => {
137
137
  const isHotBitcoin = w.options.type === 'hot'; // This will be bitcoin hot wallets
138
138
  const isDistributedCustody = w.options.subType === 'distributedCustody';
@@ -145,7 +145,7 @@ describe('txFormat', function () {
145
145
  // Test explicitly requested formats
146
146
  runTest({
147
147
  description: 'should respect explicitly requested legacy format on mainnet',
148
- coinFilter: (coin) => utxolib.isMainnet(coin.network),
148
+ coinFilter: (coin) => (0, names_1.isMainnetCoin)(coin.name),
149
149
  expectedTxFormat: 'legacy',
150
150
  requestedTxFormat: 'legacy',
151
151
  });
@@ -162,7 +162,7 @@ describe('txFormat', function () {
162
162
  // Test that legacy format is prohibited on testnet
163
163
  it('should throw ErrorDeprecatedTxFormat when legacy format is requested on testnet', function () {
164
164
  for (const coin of util_1.utxoCoins) {
165
- if (!utxolib.isTestnet(coin.network)) {
165
+ if (!(0, names_1.isTestnetCoin)(coin.name)) {
166
166
  continue;
167
167
  }
168
168
  const wallet = createMockWallet(coin, { type: 'hot' });
@@ -171,4 +171,4 @@ describe('txFormat', function () {
171
171
  });
172
172
  });
173
173
  });
174
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhGb3JtYXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90ZXN0L3VuaXQvdHhGb3JtYXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFzQkEsMERBU0M7QUFLRCw0Q0FTQztBQUtELGtDQUVDO0FBcERELCtDQUFpQztBQUVqQyx5REFBMkM7QUFDM0MsOENBQXlDO0FBRXpDLG1DQUFnRjtBQUVoRixpQ0FBaUQ7QUFZakQ7O0dBRUc7QUFDSCxTQUFnQix1QkFBdUI7SUFDckMsT0FBTztRQUNMLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDaEQsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUNsRCxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEVBQUU7UUFDNUQsRUFBRSxJQUFJLEVBQUUsMkJBQTJCLEVBQUUsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsRUFBRTtRQUMvRixFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQ3hHLEVBQUUsSUFBSSxFQUFFLG9CQUFvQixFQUFFLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7S0FDNUcsQ0FB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QUFXO1NBQy9CLENBQUMsQ0FBQztRQUVILG1EQUFtRDtRQUNuRCxFQUFFLENBQUMsaUZBQWlGLEVBQUU7WUFDcEYsS0FBSyxNQUFNLElBQUksSUFBSSxnQkFBUyxFQUFFLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO29CQUNyQyxTQUFTO2dCQUNYLENBQUM7Z0JBRUQsTUFBTSxNQUFNLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7Z0JBQ3ZELE1BQU0sQ0FBQyxNQUFNLENBQ1gsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLEVBQ3pDLDZCQUF1QixFQUN2Qix3Q0FBd0MsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQzFELENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvL3V0eG8tbGliJztcbmltcG9ydCB7IFdhbGxldCB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5cbmltcG9ydCB7IEFic3RyYWN0VXR4b0NvaW4sIEVycm9yRGVwcmVjYXRlZFR4Rm9ybWF0LCBUeEZvcm1hdCB9IGZyb20gJy4uLy4uL3NyYyc7XG5cbmltcG9ydCB7IHV0eG9Db2lucywgZGVmYXVsdEJpdEdvIH0gZnJvbSAnLi91dGlsJztcblxudHlwZSBXYWxsZXRUeXBlID0gJ2hvdCcgfCAnY29sZCcgfCAnY3VzdG9kaWFsJyB8ICdjdXN0b2RpYWxQYWlyZWQnIHwgJ3RyYWRpbmcnO1xudHlwZSBXYWxsZXRTdWJUeXBlID0gJ2Rpc3RyaWJ1dGVkQ3VzdG9keSc7XG50eXBlIFdhbGxldEZsYWcgPSB7IG5hbWU6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9O1xuXG50eXBlIFdhbGxldE9wdGlvbnMgPSB7XG4gIHR5cGU/OiBXYWxsZXRUeXBlO1xuICBzdWJUeXBlPzogV2FsbGV0U3ViVHlwZTtcbiAgd2FsbGV0RmxhZ3M/OiBXYWxsZXRGbGFnW107XG59O1xuXG4vKipcbiAqIEVudW1lcmF0ZXMgY29tbW9uIHdhbGxldCBjb25maWd1cmF0aW9ucyBmb3IgdGVzdGluZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0V2FsbGV0Q29uZmlndXJhdGlvbnMoKTogQXJyYXk8eyBuYW1lOiBzdHJpbmc7IG9wdGlvbnM6IFdhbGxldE9wdGlvbnMgfT4ge1xuICByZXR1cm4gW1xuICAgIHsgbmFtZTogJ2hvdCB3YWxsZXQnLCBvcHRpb25zOiB7IHR5cGU6ICdob3QnIH0gfSxcbiAgICB7IG5hbWU6ICdjb2xkIHdhbGxldCcsIG9wdGlvbnM6IHsgdHlwZTogJ2NvbGQnIH0gfSxcbiAgICB7IG5hbWU6ICdjdXN0b2RpYWwgd2FsbGV0Jywgb3B0aW9uczogeyB0eXBlOiAnY3VzdG9kaWFsJyB9IH0sXG4gICAgeyBuYW1lOiAnZGlzdHJpYnV0ZWRDdXN0b2R5IHdhbGxldCcsIG9wdGlvbnM6IHsgdHlwZTogJ2NvbGQnLCBzdWJUeXBlOiAnZGlzdHJpYnV0ZWRDdXN0b2R5JyB9IH0sXG4gICAgeyBuYW1lOiAnbXVzaWdLcCB3YWxsZXQnLCBvcHRpb25zOiB7IHR5cGU6ICdjb2xkJywgd2FsbGV0RmxhZ3M6IFt7IG5hbWU6ICdtdXNpZ0twJywgdmFsdWU6ICd0cnVlJyB9XSB9IH0sXG4gICAgeyBuYW1lOiAnaG90IG11c2lnS3Agd2FsbGV0Jywgb3B0aW9uczogeyB0eXBlOiAnaG90Jywgd2FsbGV0RmxhZ3M6IFt7IG5hbWU6ICdtdXNpZ0twJywgdmFsdWU6ICd0cnVlJyB9XSB9IH0sXG4gIF07XG59XG5cbi8qKlxuICogSGVscGVyIGZ1bmN0aW9uIHRvIGNyZWF0ZSBhIG1vY2sgd2FsbGV0IGZvciB0ZXN0aW5nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVNb2NrV2FsbGV0KGNvaW46IEFic3RyYWN0VXR4b0NvaW4sIG9wdGlvbnM6IFdhbGxldE9wdGlvbnMgPSB7fSk6IFdhbGxldCB7XG4gIGNvbnN0IHdhbGxldERhdGEgPSB7XG4gICAgaWQ6ICc1YjM0MjUyZjFiZjM0OTkzMGUzNDAyMGEnLFxuICAgIGNvaW46IGNvaW4uZ2V0Q2hhaW4oKSxcbiAgICB0eXBlOiBvcHRpb25zLnR5cGUgfHwgJ2hvdCcsXG4gICAgLi4uKG9wdGlvbnMuc3ViVHlwZSAmJiB7IHN1YlR5cGU6IG9wdGlvbnMuc3ViVHlwZSB9KSxcbiAgICAuLi4ob3B0aW9ucy53YWxsZXRGbGFncyAmJiB7IHdhbGxldEZsYWdzOiBvcHRpb25zLndhbGxldEZsYWdzIH0pLFxuICB9O1xuICByZXR1cm4gbmV3IFdhbGxldChkZWZhdWx0Qml0R28sIGNvaW4sIHdhbGxldERhdGEpO1xufVxuXG4vKipcbiAqIEhlbHBlciBmdW5jdGlvbiB0byBnZXQgdGhlIHR4Rm9ybWF0IGZyb20gYSBjb2luJ3MgZ2V0RGVmYXVsdFR4Rm9ybWF0IG1ldGhvZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VHhGb3JtYXQoY29pbjogQWJzdHJhY3RVdHhvQ29pbiwgd2FsbGV0OiBXYWxsZXQsIHJlcXVlc3RlZEZvcm1hdD86IFR4Rm9ybWF0KTogVHhGb3JtYXQgfCB1bmRlZmluZWQge1xuICByZXR1cm4gY29pbi5nZXREZWZhdWx0VHhGb3JtYXQod2FsbGV0LCByZXF1ZXN0ZWRGb3JtYXQpO1xufVxuXG4vKipcbiAqIEhlbHBlciBmdW5jdGlvbiB0byBydW4gYSB0eEZvcm1hdCB0ZXN0IHdpdGggbmFtZWQgYXJndW1lbnRzLlxuICogQnkgZGVmYXVsdCwgaXRlcmF0ZXMgb3ZlciBhbGwgd2FsbGV0IGNvbmZpZ3VyYXRpb25zIGFuZCBhbGwgY29pbnMuXG4gKi9cbmZ1bmN0aW9uIHJ1blRlc3QocGFyYW1zOiB7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIGV4cGVjdGVkVHhGb3JtYXQ6XG4gICAgfCBUeEZvcm1hdFxuICAgIHwgdW5kZWZpbmVkXG4gICAgfCAoKGNvaW46IEFic3RyYWN0VXR4b0NvaW4sIHdhbGxldENvbmZpZzogV2FsbGV0T3B0aW9ucykgPT4gVHhGb3JtYXQgfCB1bmRlZmluZWQpO1xuICBjb2luRmlsdGVyPzogKGNvaW46IEFic3RyYWN0VXR4b0NvaW4pID0+IGJvb2xlYW47XG4gIHdhbGxldEZpbHRlcj86ICh3YWxsZXRDb25maWc6IHsgbmFtZTogc3RyaW5nOyBvcHRpb25zOiBXYWxsZXRPcHRpb25zIH0pID0+IGJvb2xlYW47XG4gIHJlcXVlc3RlZFR4Rm9ybWF0PzogVHhGb3JtYXQ7XG59KTogdm9pZCB7XG4gIGl0KHBhcmFtcy5kZXNjcmlwdGlvbiwgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IHdhbGxldENvbmZpZ3MgPSBnZXRXYWxsZXRDb25maWd1cmF0aW9ucygpO1xuXG4gICAgZm9yIChjb25zdCB3YWxsZXRDb25maWcgb2Ygd2FsbGV0Q29uZmlncykge1xuICAgICAgLy8gU2tpcCB3YWxsZXQgY29uZmlndXJhdGlvbnMgdGhhdCBkb24ndCBtYXRjaCB0aGUgZmlsdGVyXG4gICAgICBpZiAocGFyYW1zLndhbGxldEZpbHRlciAmJiAhcGFyYW1zLndhbGxldEZpbHRlcih3YWxsZXRDb25maWcpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBmb3IgKGNvbnN0IGNvaW4gb2YgdXR4b0NvaW5zKSB7XG4gICAgICAgIC8vIFNraXAgY29pbnMgdGhhdCBkb24ndCBtYXRjaCB0aGUgZmlsdGVyXG4gICAgICAgIGlmIChwYXJhbXMuY29pbkZpbHRlciAmJiAhcGFyYW1zLmNvaW5GaWx0ZXIoY29pbikpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHdhbGxldCA9IGNyZWF0ZU1vY2tXYWxsZXQoY29pbiwgd2FsbGV0Q29uZmlnLm9wdGlvbnMpO1xuICAgICAgICBjb25zdCB0eEZvcm1hdCA9IGdldFR4Rm9ybWF0KGNvaW4sIHdhbGxldCwgcGFyYW1zLnJlcXVlc3RlZFR4Rm9ybWF0KTtcblxuICAgICAgICBjb25zdCBleHBlY3RlZFR4Rm9ybWF0ID1cbiAgICAgICAgICB0eXBlb2YgcGFyYW1zLmV4cGVjdGVkVHhGb3JtYXQgPT09ICdmdW5jdGlvbidcbiAgICAgICAgICAgID8gcGFyYW1zLmV4cGVjdGVkVHhGb3JtYXQoY29pbiwgd2FsbGV0Q29uZmlnLm9wdGlvbnMpXG4gICAgICAgICAgICA6IHBhcmFtcy5leHBlY3RlZFR4Rm9ybWF0O1xuXG4gICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChcbiAgICAgICAgICB0eEZvcm1hdCxcbiAgICAgICAgICBleHBlY3RlZFR4Rm9ybWF0LFxuICAgICAgICAgIGAke3BhcmFtcy5kZXNjcmlwdGlvbn0gLSAke1xuICAgICAgICAgICAgd2FsbGV0Q29uZmlnLm5hbWVcbiAgICAgICAgICB9IC0gJHtjb2luLmdldENoYWluKCl9OiBleHBlY3RlZCAke2V4cGVjdGVkVHhGb3JtYXR9LCBnb3QgJHt0eEZvcm1hdH1gXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9KTtcbn1cblxuZGVzY3JpYmUoJ3R4Rm9ybWF0JywgZnVuY3Rpb24gKCkge1xuICBkZXNjcmliZSgnZ2V0RGVmYXVsdFR4Rm9ybWF0JywgZnVuY3Rpb24gKCkge1xuICAgIC8vIEFsbCB0ZXN0bmV0IHdhbGxldHMgZGVmYXVsdCB0byBQU0JULWxpdGVcbiAgICBydW5UZXN0KHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnc2hvdWxkIGFsd2F5cyByZXR1cm4gcHNidC1saXRlIGZvciB0ZXN0bmV0JyxcbiAgICAgIGNvaW5GaWx0ZXI6IChjb2luKSA9PiB1dHhvbGliLmlzVGVzdG5ldChjb2luLm5ldHdvcmspLFxuICAgICAgZXhwZWN0ZWRUeEZvcm1hdDogJ3BzYnQtbGl0ZScsXG4gICAgfSk7XG5cbiAgICAvLyBEaXN0cmlidXRlZEN1c3RvZHkgd2FsbGV0cyBkZWZhdWx0IHRvIFBTQlQgKG1haW5uZXQgb25seSwgdGVzdG5ldCBhbHJlYWR5IGNvdmVyZWQpXG4gICAgcnVuVGVzdCh7XG4gICAgICBkZXNjcmlwdGlvbjogJ3Nob3VsZCByZXR1cm4gcHNidCBmb3IgZGlzdHJpYnV0ZWRDdXN0b2R5IHdhbGxldHMgb24gbWFpbm5ldCcsXG4gICAgICBjb2luRmlsdGVyOiAoY29pbikgPT4gdXR4b2xpYi5pc01haW5uZXQoY29pbi5uZXR3b3JrKSxcbiAgICAgIHdhbGxldEZpbHRlcjogKHcpID0+IHcub3B0aW9ucy5zdWJUeXBlID09PSAnZGlzdHJpYnV0ZWRDdXN0b2R5JyxcbiAgICAgIGV4cGVjdGVkVHhGb3JtYXQ6ICdwc2J0JyxcbiAgICB9KTtcblxuICAgIC8vIE11U2lnMiB3YWxsZXRzIGRlZmF1bHQgdG8gUFNCVCAobWFpbm5ldCBvbmx5LCB0ZXN0bmV0IGFscmVhZHkgY292ZXJlZClcbiAgICBydW5UZXN0KHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnc2hvdWxkIHJldHVybiBwc2J0IGZvciB3YWxsZXRzIHdpdGggbXVzaWdLcCBmbGFnIG9uIG1haW5uZXQnLFxuICAgICAgY29pbkZpbHRlcjogKGNvaW4pID0+IHV0eG9saWIuaXNNYWlubmV0KGNvaW4ubmV0d29yayksXG4gICAgICB3YWxsZXRGaWx0ZXI6ICh3KSA9PiBCb29sZWFuKHcub3B0aW9ucy53YWxsZXRGbGFncz8uc29tZSgoZikgPT4gZi5uYW1lID09PSAnbXVzaWdLcCcgJiYgZi52YWx1ZSA9PT0gJ3RydWUnKSksXG4gICAgICBleHBlY3RlZFR4Rm9ybWF0OiAncHNidCcsXG4gICAgfSk7XG5cbiAgICAvLyBNYWlubmV0IEJpdGNvaW4gaG90IHdhbGxldHMgZGVmYXVsdCB0byBQU0JUXG4gICAgcnVuVGVzdCh7XG4gICAgICBkZXNjcmlwdGlvbjogJ3Nob3VsZCByZXR1cm4gcHNidCBmb3IgbWFpbm5ldCBiaXRjb2luIGhvdCB3YWxsZXRzJyxcbiAgICAgIGNvaW5GaWx0ZXI6IChjb2luKSA9PlxuICAgICAgICB1dHhvbGliLmlzTWFpbm5ldChjb2luLm5ldHdvcmspICYmIHV0eG9saWIuZ2V0TWFpbm5ldChjb2luLm5ldHdvcmspID09PSB1dHhvbGliLm5ldHdvcmtzLmJpdGNvaW4sXG4gICAgICB3YWxsZXRGaWx0ZXI6ICh3KSA9PiB3Lm9wdGlvbnMudHlwZSA9PT0gJ2hvdCcsXG4gICAgICBleHBlY3RlZFR4Rm9ybWF0OiAncHNidCcsXG4gICAgfSk7XG5cbiAgICAvLyBPdGhlciBtYWlubmV0IHdhbGxldHMgZG8gTk9UIGRlZmF1bHQgdG8gUFNCVFxuICAgIHJ1blRlc3Qoe1xuICAgICAgZGVzY3JpcHRpb246ICdzaG91bGQgcmV0dXJuIHVuZGVmaW5lZCBmb3Igb3RoZXIgbWFpbm5ldCB3YWxsZXRzJyxcbiAgICAgIGNvaW5GaWx0ZXI6IChjb2luKSA9PiB1dHhvbGliLmlzTWFpbm5ldChjb2luLm5ldHdvcmspLFxuICAgICAgd2FsbGV0RmlsdGVyOiAodykgPT4ge1xuICAgICAgICBjb25zdCBpc0hvdEJpdGNvaW4gPSB3Lm9wdGlvbnMudHlwZSA9PT0gJ2hvdCc7IC8vIFRoaXMgd2lsbCBiZSBiaXRjb2luIGhvdCB3YWxsZXRzXG4gICAgICAgIGNvbnN0IGlzRGlzdHJpYnV0ZWRDdXN0b2R5ID0gdy5vcHRpb25zLnN1YlR5cGUgPT09ICdkaXN0cmlidXRlZEN1c3RvZHknO1xuICAgICAgICBjb25zdCBoYXNNdXNpZ0twRmxhZyA9IEJvb2xlYW4ody5vcHRpb25zLndhbGxldEZsYWdzPy5zb21lKChmKSA9PiBmLm5hbWUgPT09ICdtdXNpZ0twJyAmJiBmLnZhbHVlID09PSAndHJ1ZScpKTtcbiAgICAgICAgLy8gT25seSB0ZXN0IFwib3RoZXJcIiB3YWxsZXRzIC0gZXhjbHVkZSB0aGUgc3BlY2lhbCBjYXNlc1xuICAgICAgICByZXR1cm4gIWlzSG90Qml0Y29pbiAmJiAhaXNEaXN0cmlidXRlZEN1c3RvZHkgJiYgIWhhc011c2lnS3BGbGFnO1xuICAgICAgfSxcbiAgICAgIGV4cGVjdGVkVHhGb3JtYXQ6IHVuZGVmaW5lZCxcbiAgICB9KTtcblxuICAgIC8vIFRlc3QgZXhwbGljaXRseSByZXF1ZXN0ZWQgZm9ybWF0c1xuICAgIHJ1blRlc3Qoe1xuICAgICAgZGVzY3JpcHRpb246ICdzaG91bGQgcmVzcGVjdCBleHBsaWNpdGx5IHJlcXVlc3RlZCBsZWdhY3kgZm9ybWF0IG9uIG1haW5uZXQnLFxuICAgICAgY29pbkZpbHRlcjogKGNvaW4pID0+IHV0eG9saWIuaXNNYWlubmV0KGNvaW4ubmV0d29yayksXG4gICAgICBleHBlY3RlZFR4Rm9ybWF0OiAnbGVnYWN5JyxcbiAgICAgIHJlcXVlc3RlZFR4Rm9ybWF0OiAnbGVnYWN5JyxcbiAgICB9KTtcblxuICAgIHJ1blRlc3Qoe1xuICAgICAgZGVzY3JpcHRpb246ICdzaG91bGQgcmVzcGVjdCBleHBsaWNpdGx5IHJlcXVlc3RlZCBwc2J0IGZvcm1hdCcsXG4gICAgICBleHBlY3RlZFR4Rm9ybWF0OiAncHNidCcsXG4gICAgICByZXF1ZXN0ZWRUeEZvcm1hdDogJ3BzYnQnLFxuICAgIH0pO1xuXG4gICAgcnVuVGVzdCh7XG4gICAgICBkZXNjcmlwdGlvbjogJ3Nob3VsZCByZXNwZWN0IGV4cGxpY2l0bHkgcmVxdWVzdGVkIHBzYnQtbGl0ZSBmb3JtYXQnLFxuICAgICAgZXhwZWN0ZWRUeEZvcm1hdDogJ3BzYnQtbGl0ZScsXG4gICAgICByZXF1ZXN0ZWRUeEZvcm1hdDogJ3BzYnQtbGl0ZScsXG4gICAgfSk7XG5cbiAgICAvLyBUZXN0IHRoYXQgbGVnYWN5IGZvcm1hdCBpcyBwcm9oaWJpdGVkIG9uIHRlc3RuZXRcbiAgICBpdCgnc2hvdWxkIHRocm93IEVycm9yRGVwcmVjYXRlZFR4Rm9ybWF0IHdoZW4gbGVnYWN5IGZvcm1hdCBpcyByZXF1ZXN0ZWQgb24gdGVzdG5ldCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGZvciAoY29uc3QgY29pbiBvZiB1dHhvQ29pbnMpIHtcbiAgICAgICAgaWYgKCF1dHhvbGliLmlzVGVzdG5ldChjb2luLm5ldHdvcmspKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB3YWxsZXQgPSBjcmVhdGVNb2NrV2FsbGV0KGNvaW4sIHsgdHlwZTogJ2hvdCcgfSk7XG4gICAgICAgIGFzc2VydC50aHJvd3MoXG4gICAgICAgICAgKCkgPT4gZ2V0VHhGb3JtYXQoY29pbiwgd2FsbGV0LCAnbGVnYWN5JyksXG4gICAgICAgICAgRXJyb3JEZXByZWNhdGVkVHhGb3JtYXQsXG4gICAgICAgICAgYEV4cGVjdGVkIEVycm9yRGVwcmVjYXRlZFR4Rm9ybWF0IGZvciAke2NvaW4uZ2V0Q2hhaW4oKX1gXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
174
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhGb3JtYXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90ZXN0L3VuaXQvdHhGb3JtYXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFzQkEsMERBU0M7QUFLRCw0Q0FTQztBQUtELGtDQUVDO0FBcERELCtDQUFpQztBQUVqQyw4Q0FBeUM7QUFFekMsbUNBQWdGO0FBQ2hGLDJDQUFtRjtBQUVuRixpQ0FBaUQ7QUFZakQ7O0dBRUc7QUFDSCxTQUFnQix1QkFBdUI7SUFDckMsT0FBTztRQUNMLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDaEQsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUNsRCxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEVBQUU7UUFDNUQsRUFBRSxJQUFJLEVBQUUsMkJBQTJCLEVBQUUsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsRUFBRTtRQUMvRixFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQ3hHLEVBQUUsSUFBSSxFQUFFLG9CQUFvQixFQUFFLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7S0FDNUcsQ0FB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aUZBQWlGLEVBQUU7WUFDcEYsS0FBSyxNQUFNLElBQUksSUFBSSxnQkFBUyxFQUFFLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxJQUFBLHFCQUFhLEVBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7b0JBQzlCLFNBQVM7Z0JBQ1gsQ0FBQztnQkFFRCxNQUFNLE1BQU0sR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztnQkFDdkQsTUFBTSxDQUFDLE1BQU0sQ0FDWCxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFDekMsNkJBQXVCLEVBQ3ZCLHdDQUF3QyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FDMUQsQ0FBQztZQUNKLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcblxuaW1wb3J0IHsgV2FsbGV0IH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcblxuaW1wb3J0IHsgQWJzdHJhY3RVdHhvQ29pbiwgRXJyb3JEZXByZWNhdGVkVHhGb3JtYXQsIFR4Rm9ybWF0IH0gZnJvbSAnLi4vLi4vc3JjJztcbmltcG9ydCB7IGdldE1haW5uZXRDb2luTmFtZSwgaXNNYWlubmV0Q29pbiwgaXNUZXN0bmV0Q29pbiB9IGZyb20gJy4uLy4uL3NyYy9uYW1lcyc7XG5cbmltcG9ydCB7IHV0eG9Db2lucywgZGVmYXVsdEJpdEdvIH0gZnJvbSAnLi91dGlsJztcblxudHlwZSBXYWxsZXRUeXBlID0gJ2hvdCcgfCAnY29sZCcgfCAnY3VzdG9kaWFsJyB8ICdjdXN0b2RpYWxQYWlyZWQnIHwgJ3RyYWRpbmcnO1xudHlwZSBXYWxsZXRTdWJUeXBlID0gJ2Rpc3RyaWJ1dGVkQ3VzdG9keSc7XG50eXBlIFdhbGxldEZsYWcgPSB7IG5hbWU6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9O1xuXG50eXBlIFdhbGxldE9wdGlvbnMgPSB7XG4gIHR5cGU/OiBXYWxsZXRUeXBlO1xuICBzdWJUeXBlPzogV2FsbGV0U3ViVHlwZTtcbiAgd2FsbGV0RmxhZ3M/OiBXYWxsZXRGbGFnW107XG59O1xuXG4vKipcbiAqIEVudW1lcmF0ZXMgY29tbW9uIHdhbGxldCBjb25maWd1cmF0aW9ucyBmb3IgdGVzdGluZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0V2FsbGV0Q29uZmlndXJhdGlvbnMoKTogQXJyYXk8eyBuYW1lOiBzdHJpbmc7IG9wdGlvbnM6IFdhbGxldE9wdGlvbnMgfT4ge1xuICByZXR1cm4gW1xuICAgIHsgbmFtZTogJ2hvdCB3YWxsZXQnLCBvcHRpb25zOiB7IHR5cGU6ICdob3QnIH0gfSxcbiAgICB7IG5hbWU6ICdjb2xkIHdhbGxldCcsIG9wdGlvbnM6IHsgdHlwZTogJ2NvbGQnIH0gfSxcbiAgICB7IG5hbWU6ICdjdXN0b2RpYWwgd2FsbGV0Jywgb3B0aW9uczogeyB0eXBlOiAnY3VzdG9kaWFsJyB9IH0sXG4gICAgeyBuYW1lOiAnZGlzdHJpYnV0ZWRDdXN0b2R5IHdhbGxldCcsIG9wdGlvbnM6IHsgdHlwZTogJ2NvbGQnLCBzdWJUeXBlOiAnZGlzdHJpYnV0ZWRDdXN0b2R5JyB9IH0sXG4gICAgeyBuYW1lOiAnbXVzaWdLcCB3YWxsZXQnLCBvcHRpb25zOiB7IHR5cGU6ICdjb2xkJywgd2FsbGV0RmxhZ3M6IFt7IG5hbWU6ICdtdXNpZ0twJywgdmFsdWU6ICd0cnVlJyB9XSB9IH0sXG4gICAgeyBuYW1lOiAnaG90IG11c2lnS3Agd2FsbGV0Jywgb3B0aW9uczogeyB0eXBlOiAnaG90Jywgd2FsbGV0RmxhZ3M6IFt7IG5hbWU6ICdtdXNpZ0twJywgdmFsdWU6ICd0cnVlJyB9XSB9IH0sXG4gIF07XG59XG5cbi8qKlxuICogSGVscGVyIGZ1bmN0aW9uIHRvIGNyZWF0ZSBhIG1vY2sgd2FsbGV0IGZvciB0ZXN0aW5nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVNb2NrV2FsbGV0KGNvaW46IEFic3RyYWN0VXR4b0NvaW4sIG9wdGlvbnM6IFdhbGxldE9wdGlvbnMgPSB7fSk6IFdhbGxldCB7XG4gIGNvbnN0IHdhbGxldERhdGEgPSB7XG4gICAgaWQ6ICc1YjM0MjUyZjFiZjM0OTkzMGUzNDAyMGEnLFxuICAgIGNvaW46IGNvaW4uZ2V0Q2hhaW4oKSxcbiAgICB0eXBlOiBvcHRpb25zLnR5cGUgfHwgJ2hvdCcsXG4gICAgLi4uKG9wdGlvbnMuc3ViVHlwZSAmJiB7IHN1YlR5cGU6IG9wdGlvbnMuc3ViVHlwZSB9KSxcbiAgICAuLi4ob3B0aW9ucy53YWxsZXRGbGFncyAmJiB7IHdhbGxldEZsYWdzOiBvcHRpb25zLndhbGxldEZsYWdzIH0pLFxuICB9O1xuICByZXR1cm4gbmV3IFdhbGxldChkZWZhdWx0Qml0R28sIGNvaW4sIHdhbGxldERhdGEpO1xufVxuXG4vKipcbiAqIEhlbHBlciBmdW5jdGlvbiB0byBnZXQgdGhlIHR4Rm9ybWF0IGZyb20gYSBjb2luJ3MgZ2V0RGVmYXVsdFR4Rm9ybWF0IG1ldGhvZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VHhGb3JtYXQoY29pbjogQWJzdHJhY3RVdHhvQ29pbiwgd2FsbGV0OiBXYWxsZXQsIHJlcXVlc3RlZEZvcm1hdD86IFR4Rm9ybWF0KTogVHhGb3JtYXQgfCB1bmRlZmluZWQge1xuICByZXR1cm4gY29pbi5nZXREZWZhdWx0VHhGb3JtYXQod2FsbGV0LCByZXF1ZXN0ZWRGb3JtYXQpO1xufVxuXG4vKipcbiAqIEhlbHBlciBmdW5jdGlvbiB0byBydW4gYSB0eEZvcm1hdCB0ZXN0IHdpdGggbmFtZWQgYXJndW1lbnRzLlxuICogQnkgZGVmYXVsdCwgaXRlcmF0ZXMgb3ZlciBhbGwgd2FsbGV0IGNvbmZpZ3VyYXRpb25zIGFuZCBhbGwgY29pbnMuXG4gKi9cbmZ1bmN0aW9uIHJ1blRlc3QocGFyYW1zOiB7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIGV4cGVjdGVkVHhGb3JtYXQ6XG4gICAgfCBUeEZvcm1hdFxuICAgIHwgdW5kZWZpbmVkXG4gICAgfCAoKGNvaW46IEFic3RyYWN0VXR4b0NvaW4sIHdhbGxldENvbmZpZzogV2FsbGV0T3B0aW9ucykgPT4gVHhGb3JtYXQgfCB1bmRlZmluZWQpO1xuICBjb2luRmlsdGVyPzogKGNvaW46IEFic3RyYWN0VXR4b0NvaW4pID0+IGJvb2xlYW47XG4gIHdhbGxldEZpbHRlcj86ICh3YWxsZXRDb25maWc6IHsgbmFtZTogc3RyaW5nOyBvcHRpb25zOiBXYWxsZXRPcHRpb25zIH0pID0+IGJvb2xlYW47XG4gIHJlcXVlc3RlZFR4Rm9ybWF0PzogVHhGb3JtYXQ7XG59KTogdm9pZCB7XG4gIGl0KHBhcmFtcy5kZXNjcmlwdGlvbiwgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IHdhbGxldENvbmZpZ3MgPSBnZXRXYWxsZXRDb25maWd1cmF0aW9ucygpO1xuXG4gICAgZm9yIChjb25zdCB3YWxsZXRDb25maWcgb2Ygd2FsbGV0Q29uZmlncykge1xuICAgICAgLy8gU2tpcCB3YWxsZXQgY29uZmlndXJhdGlvbnMgdGhhdCBkb24ndCBtYXRjaCB0aGUgZmlsdGVyXG4gICAgICBpZiAocGFyYW1zLndhbGxldEZpbHRlciAmJiAhcGFyYW1zLndhbGxldEZpbHRlcih3YWxsZXRDb25maWcpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBmb3IgKGNvbnN0IGNvaW4gb2YgdXR4b0NvaW5zKSB7XG4gICAgICAgIC8vIFNraXAgY29pbnMgdGhhdCBkb24ndCBtYXRjaCB0aGUgZmlsdGVyXG4gICAgICAgIGlmIChwYXJhbXMuY29pbkZpbHRlciAmJiAhcGFyYW1zLmNvaW5GaWx0ZXIoY29pbikpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHdhbGxldCA9IGNyZWF0ZU1vY2tXYWxsZXQoY29pbiwgd2FsbGV0Q29uZmlnLm9wdGlvbnMpO1xuICAgICAgICBjb25zdCB0eEZvcm1hdCA9IGdldFR4Rm9ybWF0KGNvaW4sIHdhbGxldCwgcGFyYW1zLnJlcXVlc3RlZFR4Rm9ybWF0KTtcblxuICAgICAgICBjb25zdCBleHBlY3RlZFR4Rm9ybWF0ID1cbiAgICAgICAgICB0eXBlb2YgcGFyYW1zLmV4cGVjdGVkVHhGb3JtYXQgPT09ICdmdW5jdGlvbidcbiAgICAgICAgICAgID8gcGFyYW1zLmV4cGVjdGVkVHhGb3JtYXQoY29pbiwgd2FsbGV0Q29uZmlnLm9wdGlvbnMpXG4gICAgICAgICAgICA6IHBhcmFtcy5leHBlY3RlZFR4Rm9ybWF0O1xuXG4gICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChcbiAgICAgICAgICB0eEZvcm1hdCxcbiAgICAgICAgICBleHBlY3RlZFR4Rm9ybWF0LFxuICAgICAgICAgIGAke3BhcmFtcy5kZXNjcmlwdGlvbn0gLSAke1xuICAgICAgICAgICAgd2FsbGV0Q29uZmlnLm5hbWVcbiAgICAgICAgICB9IC0gJHtjb2luLmdldENoYWluKCl9OiBleHBlY3RlZCAke2V4cGVjdGVkVHhGb3JtYXR9LCBnb3QgJHt0eEZvcm1hdH1gXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9KTtcbn1cblxuZGVzY3JpYmUoJ3R4Rm9ybWF0JywgZnVuY3Rpb24gKCkge1xuICBkZXNjcmliZSgnZ2V0RGVmYXVsdFR4Rm9ybWF0JywgZnVuY3Rpb24gKCkge1xuICAgIC8vIEFsbCB0ZXN0bmV0IHdhbGxldHMgZGVmYXVsdCB0byBQU0JULWxpdGVcbiAgICBydW5UZXN0KHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnc2hvdWxkIGFsd2F5cyByZXR1cm4gcHNidC1saXRlIGZvciB0ZXN0bmV0JyxcbiAgICAgIGNvaW5GaWx0ZXI6IChjb2luKSA9PiBpc1Rlc3RuZXRDb2luKGNvaW4ubmFtZSksXG4gICAgICBleHBlY3RlZFR4Rm9ybWF0OiAncHNidC1saXRlJyxcbiAgICB9KTtcblxuICAgIC8vIERpc3RyaWJ1dGVkQ3VzdG9keSB3YWxsZXRzIGRlZmF1bHQgdG8gUFNCVCAobWFpbm5ldCBvbmx5LCB0ZXN0bmV0IGFscmVhZHkgY292ZXJlZClcbiAgICBydW5UZXN0KHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnc2hvdWxkIHJldHVybiBwc2J0IGZvciBkaXN0cmlidXRlZEN1c3RvZHkgd2FsbGV0cyBvbiBtYWlubmV0JyxcbiAgICAgIGNvaW5GaWx0ZXI6IChjb2luKSA9PiBpc01haW5uZXRDb2luKGNvaW4ubmFtZSksXG4gICAgICB3YWxsZXRGaWx0ZXI6ICh3KSA9PiB3Lm9wdGlvbnMuc3ViVHlwZSA9PT0gJ2Rpc3RyaWJ1dGVkQ3VzdG9keScsXG4gICAgICBleHBlY3RlZFR4Rm9ybWF0OiAncHNidCcsXG4gICAgfSk7XG5cbiAgICAvLyBNdVNpZzIgd2FsbGV0cyBkZWZhdWx0IHRvIFBTQlQgKG1haW5uZXQgb25seSwgdGVzdG5ldCBhbHJlYWR5IGNvdmVyZWQpXG4gICAgcnVuVGVzdCh7XG4gICAgICBkZXNjcmlwdGlvbjogJ3Nob3VsZCByZXR1cm4gcHNidCBmb3Igd2FsbGV0cyB3aXRoIG11c2lnS3AgZmxhZyBvbiBtYWlubmV0JyxcbiAgICAgIGNvaW5GaWx0ZXI6IChjb2luKSA9PiBpc01haW5uZXRDb2luKGNvaW4ubmFtZSksXG4gICAgICB3YWxsZXRGaWx0ZXI6ICh3KSA9PiBCb29sZWFuKHcub3B0aW9ucy53YWxsZXRGbGFncz8uc29tZSgoZikgPT4gZi5uYW1lID09PSAnbXVzaWdLcCcgJiYgZi52YWx1ZSA9PT0gJ3RydWUnKSksXG4gICAgICBleHBlY3RlZFR4Rm9ybWF0OiAncHNidCcsXG4gICAgfSk7XG5cbiAgICAvLyBNYWlubmV0IEJpdGNvaW4gaG90IHdhbGxldHMgZGVmYXVsdCB0byBQU0JUXG4gICAgcnVuVGVzdCh7XG4gICAgICBkZXNjcmlwdGlvbjogJ3Nob3VsZCByZXR1cm4gcHNidCBmb3IgbWFpbm5ldCBiaXRjb2luIGhvdCB3YWxsZXRzJyxcbiAgICAgIGNvaW5GaWx0ZXI6IChjb2luKSA9PiBpc01haW5uZXRDb2luKGNvaW4ubmFtZSkgJiYgZ2V0TWFpbm5ldENvaW5OYW1lKGNvaW4ubmFtZSkgPT09ICdidGMnLFxuICAgICAgd2FsbGV0RmlsdGVyOiAodykgPT4gdy5vcHRpb25zLnR5cGUgPT09ICdob3QnLFxuICAgICAgZXhwZWN0ZWRUeEZvcm1hdDogJ3BzYnQnLFxuICAgIH0pO1xuXG4gICAgLy8gT3RoZXIgbWFpbm5ldCB3YWxsZXRzIGRvIE5PVCBkZWZhdWx0IHRvIFBTQlRcbiAgICBydW5UZXN0KHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnc2hvdWxkIHJldHVybiB1bmRlZmluZWQgZm9yIG90aGVyIG1haW5uZXQgd2FsbGV0cycsXG4gICAgICBjb2luRmlsdGVyOiAoY29pbikgPT4gaXNNYWlubmV0Q29pbihjb2luLm5hbWUpLFxuICAgICAgd2FsbGV0RmlsdGVyOiAodykgPT4ge1xuICAgICAgICBjb25zdCBpc0hvdEJpdGNvaW4gPSB3Lm9wdGlvbnMudHlwZSA9PT0gJ2hvdCc7IC8vIFRoaXMgd2lsbCBiZSBiaXRjb2luIGhvdCB3YWxsZXRzXG4gICAgICAgIGNvbnN0IGlzRGlzdHJpYnV0ZWRDdXN0b2R5ID0gdy5vcHRpb25zLnN1YlR5cGUgPT09ICdkaXN0cmlidXRlZEN1c3RvZHknO1xuICAgICAgICBjb25zdCBoYXNNdXNpZ0twRmxhZyA9IEJvb2xlYW4ody5vcHRpb25zLndhbGxldEZsYWdzPy5zb21lKChmKSA9PiBmLm5hbWUgPT09ICdtdXNpZ0twJyAmJiBmLnZhbHVlID09PSAndHJ1ZScpKTtcbiAgICAgICAgLy8gT25seSB0ZXN0IFwib3RoZXJcIiB3YWxsZXRzIC0gZXhjbHVkZSB0aGUgc3BlY2lhbCBjYXNlc1xuICAgICAgICByZXR1cm4gIWlzSG90Qml0Y29pbiAmJiAhaXNEaXN0cmlidXRlZEN1c3RvZHkgJiYgIWhhc011c2lnS3BGbGFnO1xuICAgICAgfSxcbiAgICAgIGV4cGVjdGVkVHhGb3JtYXQ6IHVuZGVmaW5lZCxcbiAgICB9KTtcblxuICAgIC8vIFRlc3QgZXhwbGljaXRseSByZXF1ZXN0ZWQgZm9ybWF0c1xuICAgIHJ1blRlc3Qoe1xuICAgICAgZGVzY3JpcHRpb246ICdzaG91bGQgcmVzcGVjdCBleHBsaWNpdGx5IHJlcXVlc3RlZCBsZWdhY3kgZm9ybWF0IG9uIG1haW5uZXQnLFxuICAgICAgY29pbkZpbHRlcjogKGNvaW4pID0+IGlzTWFpbm5ldENvaW4oY29pbi5uYW1lKSxcbiAgICAgIGV4cGVjdGVkVHhGb3JtYXQ6ICdsZWdhY3knLFxuICAgICAgcmVxdWVzdGVkVHhGb3JtYXQ6ICdsZWdhY3knLFxuICAgIH0pO1xuXG4gICAgcnVuVGVzdCh7XG4gICAgICBkZXNjcmlwdGlvbjogJ3Nob3VsZCByZXNwZWN0IGV4cGxpY2l0bHkgcmVxdWVzdGVkIHBzYnQgZm9ybWF0JyxcbiAgICAgIGV4cGVjdGVkVHhGb3JtYXQ6ICdwc2J0JyxcbiAgICAgIHJlcXVlc3RlZFR4Rm9ybWF0OiAncHNidCcsXG4gICAgfSk7XG5cbiAgICBydW5UZXN0KHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnc2hvdWxkIHJlc3BlY3QgZXhwbGljaXRseSByZXF1ZXN0ZWQgcHNidC1saXRlIGZvcm1hdCcsXG4gICAgICBleHBlY3RlZFR4Rm9ybWF0OiAncHNidC1saXRlJyxcbiAgICAgIHJlcXVlc3RlZFR4Rm9ybWF0OiAncHNidC1saXRlJyxcbiAgICB9KTtcblxuICAgIC8vIFRlc3QgdGhhdCBsZWdhY3kgZm9ybWF0IGlzIHByb2hpYml0ZWQgb24gdGVzdG5ldFxuICAgIGl0KCdzaG91bGQgdGhyb3cgRXJyb3JEZXByZWNhdGVkVHhGb3JtYXQgd2hlbiBsZWdhY3kgZm9ybWF0IGlzIHJlcXVlc3RlZCBvbiB0ZXN0bmV0JywgZnVuY3Rpb24gKCkge1xuICAgICAgZm9yIChjb25zdCBjb2luIG9mIHV0eG9Db2lucykge1xuICAgICAgICBpZiAoIWlzVGVzdG5ldENvaW4oY29pbi5uYW1lKSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgd2FsbGV0ID0gY3JlYXRlTW9ja1dhbGxldChjb2luLCB7IHR5cGU6ICdob3QnIH0pO1xuICAgICAgICBhc3NlcnQudGhyb3dzKFxuICAgICAgICAgICgpID0+IGdldFR4Rm9ybWF0KGNvaW4sIHdhbGxldCwgJ2xlZ2FjeScpLFxuICAgICAgICAgIEVycm9yRGVwcmVjYXRlZFR4Rm9ybWF0LFxuICAgICAgICAgIGBFeHBlY3RlZCBFcnJvckRlcHJlY2F0ZWRUeEZvcm1hdCBmb3IgJHtjb2luLmdldENoYWluKCl9YFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
@@ -0,0 +1,13 @@
1
+ import * as utxolib from '@bitgo/utxo-lib';
2
+ import { fixedScriptWallet, type CoinName } from '@bitgo/wasm-utxo';
3
+ type UtxolibRootWalletKeys = utxolib.bitgo.RootWalletKeys;
4
+ type WasmRootWalletKeys = fixedScriptWallet.RootWalletKeys;
5
+ type RootWalletKeys = UtxolibRootWalletKeys | WasmRootWalletKeys;
6
+ /**
7
+ * Generate a wallet address from RootWalletKeys.
8
+ * Supports both utxolib and wasm-utxo RootWalletKeys.
9
+ * Utxolib keys are converted to wasm-utxo keys for address generation.
10
+ */
11
+ export declare function getWalletAddress(coinName: CoinName, walletKeys: RootWalletKeys, chain?: 0 | 30 | 1 | 10 | 11 | 20 | 21 | 31 | 40 | 41, index?: number): string;
12
+ export {};
13
+ //# sourceMappingURL=address.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../../../../../test/unit/util/address.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAIpE,KAAK,qBAAqB,GAAG,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC;AAC1D,KAAK,kBAAkB,GAAG,iBAAiB,CAAC,cAAc,CAAC;AAC3D,KAAK,cAAc,GAAG,qBAAqB,GAAG,kBAAkB,CAAC;AAIjE;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,cAAc,EAC1B,KAAK,gDAAe,EACpB,KAAK,SAAI,GACR,MAAM,CAER"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getWalletAddress = getWalletAddress;
4
+ const wasm_utxo_1 = require("@bitgo/wasm-utxo");
5
+ const { ChainCode } = wasm_utxo_1.fixedScriptWallet;
6
+ const defaultChain = ChainCode.value('p2sh', 'external');
7
+ /**
8
+ * Generate a wallet address from RootWalletKeys.
9
+ * Supports both utxolib and wasm-utxo RootWalletKeys.
10
+ * Utxolib keys are converted to wasm-utxo keys for address generation.
11
+ */
12
+ function getWalletAddress(coinName, walletKeys, chain = defaultChain, index = 0) {
13
+ return wasm_utxo_1.fixedScriptWallet.address(walletKeys, chain, index, coinName);
14
+ }
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Rlc3QvdW5pdC91dGlsL2FkZHJlc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFnQkEsNENBT0M7QUF0QkQsZ0RBQW9FO0FBRXBFLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyw2QkFBaUIsQ0FBQztBQU14QyxNQUFNLFlBQVksR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQztBQUV6RDs7OztHQUlHO0FBQ0gsU0FBZ0IsZ0JBQWdCLENBQzlCLFFBQWtCLEVBQ2xCLFVBQTBCLEVBQzFCLEtBQUssR0FBRyxZQUFZLEVBQ3BCLEtBQUssR0FBRyxDQUFDO0lBRVQsT0FBTyw2QkFBaUIsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDdkUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvL3V0eG8tbGliJztcbmltcG9ydCB7IGZpeGVkU2NyaXB0V2FsbGV0LCB0eXBlIENvaW5OYW1lIH0gZnJvbSAnQGJpdGdvL3dhc20tdXR4byc7XG5cbmNvbnN0IHsgQ2hhaW5Db2RlIH0gPSBmaXhlZFNjcmlwdFdhbGxldDtcblxudHlwZSBVdHhvbGliUm9vdFdhbGxldEtleXMgPSB1dHhvbGliLmJpdGdvLlJvb3RXYWxsZXRLZXlzO1xudHlwZSBXYXNtUm9vdFdhbGxldEtleXMgPSBmaXhlZFNjcmlwdFdhbGxldC5Sb290V2FsbGV0S2V5cztcbnR5cGUgUm9vdFdhbGxldEtleXMgPSBVdHhvbGliUm9vdFdhbGxldEtleXMgfCBXYXNtUm9vdFdhbGxldEtleXM7XG5cbmNvbnN0IGRlZmF1bHRDaGFpbiA9IENoYWluQ29kZS52YWx1ZSgncDJzaCcsICdleHRlcm5hbCcpO1xuXG4vKipcbiAqIEdlbmVyYXRlIGEgd2FsbGV0IGFkZHJlc3MgZnJvbSBSb290V2FsbGV0S2V5cy5cbiAqIFN1cHBvcnRzIGJvdGggdXR4b2xpYiBhbmQgd2FzbS11dHhvIFJvb3RXYWxsZXRLZXlzLlxuICogVXR4b2xpYiBrZXlzIGFyZSBjb252ZXJ0ZWQgdG8gd2FzbS11dHhvIGtleXMgZm9yIGFkZHJlc3MgZ2VuZXJhdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFdhbGxldEFkZHJlc3MoXG4gIGNvaW5OYW1lOiBDb2luTmFtZSxcbiAgd2FsbGV0S2V5czogUm9vdFdhbGxldEtleXMsXG4gIGNoYWluID0gZGVmYXVsdENoYWluLFxuICBpbmRleCA9IDBcbik6IHN0cmluZyB7XG4gIHJldHVybiBmaXhlZFNjcmlwdFdhbGxldC5hZGRyZXNzKHdhbGxldEtleXMsIGNoYWluLCBpbmRleCwgY29pbk5hbWUpO1xufVxuIl19
@@ -4,4 +4,7 @@ export * from './keychains';
4
4
  export * from './wallet';
5
5
  export * from './unspents';
6
6
  export * from './transaction';
7
+ export * from './psbt';
8
+ export * from './address';
9
+ export * from './nockBitGo';
7
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../test/unit/util/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../test/unit/util/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC"}
@@ -20,4 +20,7 @@ __exportStar(require("./keychains"), exports);
20
20
  __exportStar(require("./wallet"), exports);
21
21
  __exportStar(require("./unspents"), exports);
22
22
  __exportStar(require("./transaction"), exports);
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90ZXN0L3VuaXQvdXRpbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsOENBQTRCO0FBQzVCLDZDQUEyQjtBQUMzQiw4Q0FBNEI7QUFDNUIsMkNBQXlCO0FBQ3pCLDZDQUEyQjtBQUMzQixnREFBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3V0eG9Db2lucyc7XG5leHBvcnQgKiBmcm9tICcuL2ZpeHR1cmVzJztcbmV4cG9ydCAqIGZyb20gJy4va2V5Y2hhaW5zJztcbmV4cG9ydCAqIGZyb20gJy4vd2FsbGV0JztcbmV4cG9ydCAqIGZyb20gJy4vdW5zcGVudHMnO1xuZXhwb3J0ICogZnJvbSAnLi90cmFuc2FjdGlvbic7XG4iXX0=
23
+ __exportStar(require("./psbt"), exports);
24
+ __exportStar(require("./address"), exports);
25
+ __exportStar(require("./nockBitGo"), exports);
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90ZXN0L3VuaXQvdXRpbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsOENBQTRCO0FBQzVCLDZDQUEyQjtBQUMzQiw4Q0FBNEI7QUFDNUIsMkNBQXlCO0FBQ3pCLDZDQUEyQjtBQUMzQixnREFBOEI7QUFDOUIseUNBQXVCO0FBQ3ZCLDRDQUEwQjtBQUMxQiw4Q0FBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3V0eG9Db2lucyc7XG5leHBvcnQgKiBmcm9tICcuL2ZpeHR1cmVzJztcbmV4cG9ydCAqIGZyb20gJy4va2V5Y2hhaW5zJztcbmV4cG9ydCAqIGZyb20gJy4vd2FsbGV0JztcbmV4cG9ydCAqIGZyb20gJy4vdW5zcGVudHMnO1xuZXhwb3J0ICogZnJvbSAnLi90cmFuc2FjdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL3BzYnQnO1xuZXhwb3J0ICogZnJvbSAnLi9hZGRyZXNzJztcbmV4cG9ydCAqIGZyb20gJy4vbm9ja0JpdEdvJztcbiJdfQ==
@@ -1,5 +1,6 @@
1
1
  import { Triple } from '@bitgo/sdk-core';
2
2
  import { BIP32Interface, bitgo } from '@bitgo/utxo-lib';
3
+ import { BIP32 as WasmBIP32, fixedScriptWallet } from '@bitgo/wasm-utxo';
3
4
  type RootWalletKeys = bitgo.RootWalletKeys;
4
5
  export type KeychainBase58 = {
5
6
  pub: string;
@@ -22,5 +23,33 @@ export declare function getDefaultWalletKeys(): RootWalletKeys;
22
23
  export declare function getDefaultWalletUnspentSigner(): bitgo.WalletUnspentSigner<RootWalletKeys>;
23
24
  export declare function encryptKeychain(password: string, keychain: KeychainBase58): string;
24
25
  export declare function getWalletKeys(seed: string): RootWalletKeys;
26
+ /**
27
+ * Create test wallet keys from a seed string.
28
+ * Uses the same seed generation as getWalletKeys (getSeed('seed/i'))
29
+ * to ensure compatibility with existing test fixtures.
30
+ */
31
+ export declare function createTestWalletKeys(seed: string): {
32
+ xpubs: Triple<string>;
33
+ xprivs: Triple<string>;
34
+ };
35
+ /**
36
+ * Create wasm-utxo RootWalletKeys from a seed string.
37
+ * Optionally specify custom derivation prefixes.
38
+ */
39
+ export declare function createWasmWalletKeys(seed: string, derivationPrefixes?: Triple<string>): {
40
+ walletKeys: fixedScriptWallet.RootWalletKeys;
41
+ xpubs: Triple<WasmBIP32>;
42
+ xprivs: Triple<WasmBIP32>;
43
+ };
44
+ /**
45
+ * Get wasm-utxo RootWalletKeys from the default hardcoded keychains.
46
+ * Use this when you need wallet keys that match existing test fixtures.
47
+ * Optionally specify custom derivation prefixes.
48
+ */
49
+ export declare function getDefaultWasmWalletKeys(derivationPrefixes?: Triple<string>): {
50
+ walletKeys: fixedScriptWallet.RootWalletKeys;
51
+ xpubs: Triple<WasmBIP32>;
52
+ xprivs: Triple<WasmBIP32>;
53
+ };
25
54
  export {};
26
55
  //# sourceMappingURL=keychains.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"keychains.d.ts","sourceRoot":"","sources":["../../../../../test/unit/util/keychains.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAGzC,OAAO,EAAS,cAAc,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAE/D,KAAK,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC;AAE3C,MAAM,MAAM,cAAc,GAAG;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,GAAG,CAAC;CACnB,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,cAAc,GAAG,cAAc,CAQlE;AAED,wBAAgB,iBAAiB,CAAC,cAAc,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,GAAG,MAAM,EAAE,CAWpG;AAED,eAAO,MAAM,QAAQ,UAA8B,CAAC;AAEpD,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,cAAc,CAalD,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,cAAc,CAMjB,CAAC;AAE7B,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,MAAM,CAAC,cAAc,CAAC,GAC3B,KAAK,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAE3C;AAED,wBAAgB,oBAAoB,IAAI,cAAc,CAErD;AAED,wBAAgB,6BAA6B,IAAI,KAAK,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAEzF;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,GAAG,MAAM,CAElF;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAI1D"}
1
+ {"version":3,"file":"keychains.d.ts","sourceRoot":"","sources":["../../../../../test/unit/util/keychains.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAGzC,OAAO,EAAS,cAAc,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAEzE,KAAK,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC;AAE3C,MAAM,MAAM,cAAc,GAAG;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,GAAG,CAAC;CACnB,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,cAAc,GAAG,cAAc,CAQlE;AAED,wBAAgB,iBAAiB,CAAC,cAAc,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,GAAG,MAAM,EAAE,CAWpG;AAED,eAAO,MAAM,QAAQ,UAA8B,CAAC;AAEpD,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,cAAc,CAalD,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,cAAc,CAMjB,CAAC;AAE7B,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,MAAM,CAAC,cAAc,CAAC,GAC3B,KAAK,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAE3C;AAED,wBAAgB,oBAAoB,IAAI,cAAc,CAErD;AAED,wBAAgB,6BAA6B,IAAI,KAAK,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAEzF;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,GAAG,MAAM,CAElF;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAI1D;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG;IAClD,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;CACxB,CAQA;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,kBAAkB,GAAE,MAAM,CAAC,MAAM,CAA+B,GAC/D;IACD,UAAU,EAAE,iBAAiB,CAAC,cAAc,CAAC;IAC7C,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;CAC3B,CAYA;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,kBAAkB,GAAE,MAAM,CAAC,MAAM,CAA+B,GAAG;IAC1G,UAAU,EAAE,iBAAiB,CAAC,cAAc,CAAC;IAC7C,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;CAC3B,CAWA"}
@@ -8,9 +8,13 @@ exports.getDefaultWalletKeys = getDefaultWalletKeys;
8
8
  exports.getDefaultWalletUnspentSigner = getDefaultWalletUnspentSigner;
9
9
  exports.encryptKeychain = encryptKeychain;
10
10
  exports.getWalletKeys = getWalletKeys;
11
+ exports.createTestWalletKeys = createTestWalletKeys;
12
+ exports.createWasmWalletKeys = createWasmWalletKeys;
13
+ exports.getDefaultWasmWalletKeys = getDefaultWasmWalletKeys;
11
14
  const sdk_api_1 = require("@bitgo/sdk-api");
12
15
  const sdk_test_1 = require("@bitgo/sdk-test");
13
16
  const utxo_lib_1 = require("@bitgo/utxo-lib");
17
+ const wasm_utxo_1 = require("@bitgo/wasm-utxo");
14
18
  function toKeychainBase58(k) {
15
19
  if (k.isNeutered()) {
16
20
  throw new Error(`must provide private key`);
@@ -69,4 +73,50 @@ function encryptKeychain(password, keychain) {
69
73
  function getWalletKeys(seed) {
70
74
  return new utxo_lib_1.bitgo.RootWalletKeys(Array.from({ length: 3 }).map((_, i) => utxo_lib_1.bip32.fromSeed((0, sdk_test_1.getSeed)(`${seed}/${i}`))));
71
75
  }
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Y2hhaW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdGVzdC91bml0L3V0aWwva2V5Y2hhaW5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQW9CQSw0Q0FRQztBQUVELDhDQVdDO0FBMkJELDBFQUlDO0FBRUQsb0RBRUM7QUFFRCxzRUFFQztBQUVELDBDQUVDO0FBRUQsc0NBSUM7QUF6RkQsNENBQXlDO0FBQ3pDLDhDQUEwQztBQUMxQyw4Q0FBK0Q7QUFpQi9ELFNBQWdCLGdCQUFnQixDQUFDLENBQWlCO0lBQ2hELElBQUksQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUM7UUFDbkIsTUFBTSxJQUFJLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFDRCxPQUFPO1FBQ0wsR0FBRyxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUU7UUFDakIsR0FBRyxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUU7S0FDN0IsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFnQixpQkFBaUIsQ0FBQyxjQUE4QixFQUFFLGdCQUF3QjtJQUN4RixPQUFPLGNBQWMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQ2pELE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN4QyxPQUFPO1lBQ0wsRUFBRSxFQUFFLElBQUEsa0JBQU8sRUFBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO1lBQ2hDLEdBQUc7WUFDSCxNQUFNLEVBQUUsZ0JBQVEsQ0FBQyxNQUFNLENBQUM7WUFDeEIsWUFBWSxFQUFFLElBQUEsaUJBQU8sRUFBQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDekQsWUFBWSxFQUFFLEVBQUU7U0FDakIsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVZLFFBQUEsUUFBUSxHQUFHLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUV2QyxRQUFBLGVBQWUsR0FBMkI7SUFDckQ7UUFDRSxHQUFHLEVBQUUsaUhBQWlIO1FBQ3RILEdBQUcsRUFBRSxpSEFBaUg7S0FDdkg7SUFDRDtRQUNFLEdBQUcsRUFBRSxpSEFBaUg7UUFDdEgsR0FBRyxFQUFFLGlIQUFpSDtLQUN2SDtJQUNEO1FBQ0UsR0FBRyxFQUFFLGlIQUFpSDtRQUN0SCxHQUFHLEVBQUUsaUhBQWlIO0tBQ3ZIO0NBQ0YsQ0FBQztBQUVXLFFBQUEsU0FBUyxHQUEyQix1QkFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUU7SUFDcEYsTUFBTSxDQUFDLEdBQUcsZ0JBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDaEMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDcEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBQ0QsT0FBTyxDQUFDLENBQUM7QUFDWCxDQUFDLENBQTJCLENBQUM7QUFFN0IsU0FBZ0IsK0JBQStCLENBQzdDLElBQTRCO0lBRTVCLE9BQU8sSUFBSSxnQkFBSyxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDL0QsQ0FBQztBQUVELFNBQWdCLG9CQUFvQjtJQUNsQyxPQUFPLElBQUksZ0JBQUssQ0FBQyxjQUFjLENBQUMsaUJBQVMsQ0FBQyxDQUFDO0FBQzdDLENBQUM7QUFFRCxTQUFnQiw2QkFBNkI7SUFDM0MsT0FBTywrQkFBK0IsQ0FBQyxpQkFBUyxDQUFDLENBQUM7QUFDcEQsQ0FBQztBQUVELFNBQWdCLGVBQWUsQ0FBQyxRQUFnQixFQUFFLFFBQXdCO0lBQ3hFLE9BQU8sSUFBQSxpQkFBTyxFQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDekMsQ0FBQztBQUVELFNBQWdCLGFBQWEsQ0FBQyxJQUFZO0lBQ3hDLE9BQU8sSUFBSSxnQkFBSyxDQUFDLGNBQWMsQ0FDN0IsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLGdCQUFLLENBQUMsUUFBUSxDQUFDLElBQUEsa0JBQU8sRUFBQyxHQUFHLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQTJCLENBQzNHLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJpcGxlIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IGVuY3J5cHQgfSBmcm9tICdAYml0Z28vc2RrLWFwaSc7XG5pbXBvcnQgeyBnZXRTZWVkIH0gZnJvbSAnQGJpdGdvL3Nkay10ZXN0JztcbmltcG9ydCB7IGJpcDMyLCBCSVAzMkludGVyZmFjZSwgYml0Z28gfSBmcm9tICdAYml0Z28vdXR4by1saWInO1xuXG50eXBlIFJvb3RXYWxsZXRLZXlzID0gYml0Z28uUm9vdFdhbGxldEtleXM7XG5cbmV4cG9ydCB0eXBlIEtleWNoYWluQmFzZTU4ID0ge1xuICBwdWI6IHN0cmluZztcbiAgcHJ2OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBLZXlEb2MgPSB7XG4gIGlkOiBzdHJpbmc7XG4gIHB1Yjogc3RyaW5nO1xuICBzb3VyY2U6IHN0cmluZztcbiAgZW5jcnlwdGVkUHJ2OiBzdHJpbmc7XG4gIGNvaW5TcGVjaWZpYzogYW55O1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHRvS2V5Y2hhaW5CYXNlNTgoazogQklQMzJJbnRlcmZhY2UpOiBLZXljaGFpbkJhc2U1OCB7XG4gIGlmIChrLmlzTmV1dGVyZWQoKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgbXVzdCBwcm92aWRlIHByaXZhdGUga2V5YCk7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBwcnY6IGsudG9CYXNlNTgoKSxcbiAgICBwdWI6IGsubmV1dGVyZWQoKS50b0Jhc2U1OCgpLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdG9LZXljaGFpbk9iamVjdHMocm9vdFdhbGxldEtleXM6IFJvb3RXYWxsZXRLZXlzLCB3YWxsZXRQYXNzcGhyYXNlOiBzdHJpbmcpOiBLZXlEb2NbXSB7XG4gIHJldHVybiByb290V2FsbGV0S2V5cy50cmlwbGUubWFwKChiaXAzMiwga2V5SWR4KSA9PiB7XG4gICAgY29uc3QgcHViID0gYmlwMzIubmV1dGVyZWQoKS50b0Jhc2U1OCgpO1xuICAgIHJldHVybiB7XG4gICAgICBpZDogZ2V0U2VlZChwdWIpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgIHB1YixcbiAgICAgIHNvdXJjZTogS2V5TmFtZXNba2V5SWR4XSxcbiAgICAgIGVuY3J5cHRlZFBydjogZW5jcnlwdCh3YWxsZXRQYXNzcGhyYXNlLCBiaXAzMi50b0Jhc2U1OCgpKSxcbiAgICAgIGNvaW5TcGVjaWZpYzoge30sXG4gICAgfTtcbiAgfSk7XG59XG5cbmV4cG9ydCBjb25zdCBLZXlOYW1lcyA9IFsndXNlcicsICdiYWNrdXAnLCAnYml0Z28nXTtcblxuZXhwb3J0IGNvbnN0IGtleWNoYWluc0Jhc2U1ODogVHJpcGxlPEtleWNoYWluQmFzZTU4PiA9IFtcbiAge1xuICAgIHB1YjogJ3hwdWI2NjFNeU13QXFSYmNHaVFoVmsxSjdjRDFZb2RGOXRjNVkxQjh2cFRqakIxcGNCMUoxbTFRWDhmTXRZUDJzWXFGbVc2SjJyYTY5dE5vQVJLanZUR285Y0dVcmJQYkpkandyU3pHR3pQeldXUycsXG4gICAgcHJ2OiAneHBydjlzMjFaclFIMTQzSzRFTEVQaVVIa1VHR3ptbmtrUnRFQW5GWThTNDhBcVVxak5nOVVEaDl5TEx0M0ZjZkFUeUNqYnNNQjlKQ0dIQUQ4TWVCVEFLMVA3dHJGcHBrb3N3dTVaQXNIWUFTZmJrJyxcbiAgfSxcbiAge1xuICAgIHB1YjogJ3hwdWI2NjFNeU13QXFSYmNGekxYdWdhbm9nUXZkN01yZWZRUXFDY0pQMlpEdW1uQ2RRZWNmNWN3MVAxbkQ1cUJ6OFNOUzF5Q0xTQzlWcXBOVVduUVUzVjZxbW5QdDJyMjFvWGhpY1FGelBBNkxieScsXG4gICAgcHJ2OiAneHBydjlzMjFaclFIMTQzSzNXRzRvZjNuU1lVQzU1WE5GQ2daVHlnaGFlOWNNU0ZEa2NLVTdZSmdUYWhKTXBkVFk5Q2pDY2pnU28yVEo2MzV1VVZ4MTc2QnVmVU1CRnBpZUtZVkpEOUozVnZyR1JtJyxcbiAgfSxcbiAge1xuICAgIHB1YjogJ3hwdWI2NjFNeU13QXFSYmNGSHB3V3J6UEI2MVUyQ2dCbWREMjFXTlZNMUpLVW45ckVFeGtvR0U0eWFmVVZGYlBTZDc4dmRYOHRXY0VVUVdhQUxGa1U5ZlViVU00Q2M0OURLRUpTQ1lHUm5iekN5bScsXG4gICAgcHJ2OiAneHBydjlzMjFaclFIMTQzSzJva1VRcVROb3g0alVBcWhOQVZBZUhTdFljdGh2U2NzTVNkY0ZpdXBSbkx6ZHh6ZkppdGhhazVaczkyRlFKZWVKOUppeWE2M0tmVU54YXd1TVpEQ3AyY0dUOWNkTUtzJyxcbiAgfSxcbl07XG5cbmV4cG9ydCBjb25zdCBrZXljaGFpbnM6IFRyaXBsZTxCSVAzMkludGVyZmFjZT4gPSBrZXljaGFpbnNCYXNlNTgubWFwKCh7IHB1YiwgcHJ2IH0pID0+IHtcbiAgY29uc3QgayA9IGJpcDMyLmZyb21CYXNlNTgocHJ2KTtcbiAgaWYgKGsubmV1dGVyZWQoKS50b0Jhc2U1OCgpICE9PSBwdWIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYG1pc21hdGNoYCk7XG4gIH1cbiAgcmV0dXJuIGs7XG59KSBhcyBUcmlwbGU8QklQMzJJbnRlcmZhY2U+O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0V2FsbGV0VW5zcGVudFNpZ25lclVzZXJCaXRHbyhcbiAga2V5czogVHJpcGxlPEJJUDMySW50ZXJmYWNlPlxuKTogYml0Z28uV2FsbGV0VW5zcGVudFNpZ25lcjxSb290V2FsbGV0S2V5cz4ge1xuICByZXR1cm4gbmV3IGJpdGdvLldhbGxldFVuc3BlbnRTaWduZXIoa2V5cywga2V5c1swXSwga2V5c1syXSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREZWZhdWx0V2FsbGV0S2V5cygpOiBSb290V2FsbGV0S2V5cyB7XG4gIHJldHVybiBuZXcgYml0Z28uUm9vdFdhbGxldEtleXMoa2V5Y2hhaW5zKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlZmF1bHRXYWxsZXRVbnNwZW50U2lnbmVyKCk6IGJpdGdvLldhbGxldFVuc3BlbnRTaWduZXI8Um9vdFdhbGxldEtleXM+IHtcbiAgcmV0dXJuIGdldFdhbGxldFVuc3BlbnRTaWduZXJVc2VyQml0R28oa2V5Y2hhaW5zKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVuY3J5cHRLZXljaGFpbihwYXNzd29yZDogc3RyaW5nLCBrZXljaGFpbjogS2V5Y2hhaW5CYXNlNTgpOiBzdHJpbmcge1xuICByZXR1cm4gZW5jcnlwdChwYXNzd29yZCwga2V5Y2hhaW4ucHJ2KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFdhbGxldEtleXMoc2VlZDogc3RyaW5nKTogUm9vdFdhbGxldEtleXMge1xuICByZXR1cm4gbmV3IGJpdGdvLlJvb3RXYWxsZXRLZXlzKFxuICAgIEFycmF5LmZyb20oeyBsZW5ndGg6IDMgfSkubWFwKChfLCBpKSA9PiBiaXAzMi5mcm9tU2VlZChnZXRTZWVkKGAke3NlZWR9LyR7aX1gKSkpIGFzIFRyaXBsZTxCSVAzMkludGVyZmFjZT5cbiAgKTtcbn1cbiJdfQ==
76
+ /**
77
+ * Create test wallet keys from a seed string.
78
+ * Uses the same seed generation as getWalletKeys (getSeed('seed/i'))
79
+ * to ensure compatibility with existing test fixtures.
80
+ */
81
+ function createTestWalletKeys(seed) {
82
+ const keys = Array.from({ length: 3 }).map((_, i) => utxo_lib_1.bip32.fromSeed((0, sdk_test_1.getSeed)(`${seed}/${i}`)));
83
+ return {
84
+ xpubs: keys.map((k) => k.neutered().toBase58()),
85
+ xprivs: keys.map((k) => k.toBase58()),
86
+ };
87
+ }
88
+ /**
89
+ * Create wasm-utxo RootWalletKeys from a seed string.
90
+ * Optionally specify custom derivation prefixes.
91
+ */
92
+ function createWasmWalletKeys(seed, derivationPrefixes = ['m/0/0', 'm/0/0', 'm/0/0']) {
93
+ const { xpubs: xpubStrs, xprivs: xprivStrs } = createTestWalletKeys(seed);
94
+ const xpubs = xpubStrs.map((xpub) => wasm_utxo_1.BIP32.from(xpub));
95
+ const xprivs = xprivStrs.map((xpriv) => wasm_utxo_1.BIP32.from(xpriv));
96
+ return {
97
+ walletKeys: wasm_utxo_1.fixedScriptWallet.RootWalletKeys.from({
98
+ triple: xpubs,
99
+ derivationPrefixes,
100
+ }),
101
+ xpubs,
102
+ xprivs,
103
+ };
104
+ }
105
+ /**
106
+ * Get wasm-utxo RootWalletKeys from the default hardcoded keychains.
107
+ * Use this when you need wallet keys that match existing test fixtures.
108
+ * Optionally specify custom derivation prefixes.
109
+ */
110
+ function getDefaultWasmWalletKeys(derivationPrefixes = ['m/0/0', 'm/0/0', 'm/0/0']) {
111
+ const xpubs = exports.keychainsBase58.map((k) => wasm_utxo_1.BIP32.from(k.pub));
112
+ const xprivs = exports.keychainsBase58.map((k) => wasm_utxo_1.BIP32.from(k.prv));
113
+ return {
114
+ walletKeys: wasm_utxo_1.fixedScriptWallet.RootWalletKeys.from({
115
+ triple: xpubs,
116
+ derivationPrefixes,
117
+ }),
118
+ xpubs,
119
+ xprivs,
120
+ };
121
+ }
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Y2hhaW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdGVzdC91bml0L3V0aWwva2V5Y2hhaW5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQXFCQSw0Q0FRQztBQUVELDhDQVdDO0FBMkJELDBFQUlDO0FBRUQsb0RBRUM7QUFFRCxzRUFFQztBQUVELDBDQUVDO0FBRUQsc0NBSUM7QUFPRCxvREFXQztBQU1ELG9EQW1CQztBQU9ELDREQWVDO0FBM0pELDRDQUF5QztBQUN6Qyw4Q0FBMEM7QUFDMUMsOENBQStEO0FBQy9ELGdEQUF5RTtBQWlCekUsU0FBZ0IsZ0JBQWdCLENBQUMsQ0FBaUI7SUFDaEQsSUFBSSxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQztRQUNuQixNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUNELE9BQU87UUFDTCxHQUFHLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRTtRQUNqQixHQUFHLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRTtLQUM3QixDQUFDO0FBQ0osQ0FBQztBQUVELFNBQWdCLGlCQUFpQixDQUFDLGNBQThCLEVBQUUsZ0JBQXdCO0lBQ3hGLE9BQU8sY0FBYyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUU7UUFDakQsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3hDLE9BQU87WUFDTCxFQUFFLEVBQUUsSUFBQSxrQkFBTyxFQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7WUFDaEMsR0FBRztZQUNILE1BQU0sRUFBRSxnQkFBUSxDQUFDLE1BQU0sQ0FBQztZQUN4QixZQUFZLEVBQUUsSUFBQSxpQkFBTyxFQUFDLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxRQUFRLEVB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QUFrQjtTQUNuQixDQUFDO1FBQ0YsS0FBSztRQUNMLE1BQU07S0FDUCxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyaXBsZSB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBlbmNyeXB0IH0gZnJvbSAnQGJpdGdvL3Nkay1hcGknO1xuaW1wb3J0IHsgZ2V0U2VlZCB9IGZyb20gJ0BiaXRnby9zZGstdGVzdCc7XG5pbXBvcnQgeyBiaXAzMiwgQklQMzJJbnRlcmZhY2UsIGJpdGdvIH0gZnJvbSAnQGJpdGdvL3V0eG8tbGliJztcbmltcG9ydCB7IEJJUDMyIGFzIFdhc21CSVAzMiwgZml4ZWRTY3JpcHRXYWxsZXQgfSBmcm9tICdAYml0Z28vd2FzbS11dHhvJztcblxudHlwZSBSb290V2FsbGV0S2V5cyA9IGJpdGdvLlJvb3RXYWxsZXRLZXlzO1xuXG5leHBvcnQgdHlwZSBLZXljaGFpbkJhc2U1OCA9IHtcbiAgcHViOiBzdHJpbmc7XG4gIHBydjogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgS2V5RG9jID0ge1xuICBpZDogc3RyaW5nO1xuICBwdWI6IHN0cmluZztcbiAgc291cmNlOiBzdHJpbmc7XG4gIGVuY3J5cHRlZFBydjogc3RyaW5nO1xuICBjb2luU3BlY2lmaWM6IGFueTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiB0b0tleWNoYWluQmFzZTU4KGs6IEJJUDMySW50ZXJmYWNlKTogS2V5Y2hhaW5CYXNlNTgge1xuICBpZiAoay5pc05ldXRlcmVkKCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYG11c3QgcHJvdmlkZSBwcml2YXRlIGtleWApO1xuICB9XG4gIHJldHVybiB7XG4gICAgcHJ2OiBrLnRvQmFzZTU4KCksXG4gICAgcHViOiBrLm5ldXRlcmVkKCkudG9CYXNlNTgoKSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvS2V5Y2hhaW5PYmplY3RzKHJvb3RXYWxsZXRLZXlzOiBSb290V2FsbGV0S2V5cywgd2FsbGV0UGFzc3BocmFzZTogc3RyaW5nKTogS2V5RG9jW10ge1xuICByZXR1cm4gcm9vdFdhbGxldEtleXMudHJpcGxlLm1hcCgoYmlwMzIsIGtleUlkeCkgPT4ge1xuICAgIGNvbnN0IHB1YiA9IGJpcDMyLm5ldXRlcmVkKCkudG9CYXNlNTgoKTtcbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IGdldFNlZWQocHViKS50b1N0cmluZygnaGV4JyksXG4gICAgICBwdWIsXG4gICAgICBzb3VyY2U6IEtleU5hbWVzW2tleUlkeF0sXG4gICAgICBlbmNyeXB0ZWRQcnY6IGVuY3J5cHQod2FsbGV0UGFzc3BocmFzZSwgYmlwMzIudG9CYXNlNTgoKSksXG4gICAgICBjb2luU3BlY2lmaWM6IHt9LFxuICAgIH07XG4gIH0pO1xufVxuXG5leHBvcnQgY29uc3QgS2V5TmFtZXMgPSBbJ3VzZXInLCAnYmFja3VwJywgJ2JpdGdvJ107XG5cbmV4cG9ydCBjb25zdCBrZXljaGFpbnNCYXNlNTg6IFRyaXBsZTxLZXljaGFpbkJhc2U1OD4gPSBbXG4gIHtcbiAgICBwdWI6ICd4cHViNjYxTXlNd0FxUmJjR2lRaFZrMUo3Y0QxWW9kRjl0YzVZMUI4dnBUampCMXBjQjFKMW0xUVg4Zk10WVAyc1lxRm1XNkoycmE2OXROb0FSS2p2VEdvOWNHVXJiUGJKZGp3clN6R0d6UHpXV1MnLFxuICAgIHBydjogJ3hwcnY5czIxWnJRSDE0M0s0RUxFUGlVSGtVR0d6bW5ra1J0RUFuRlk4UzQ4QXFVcWpOZzlVRGg5eUxMdDNGY2ZBVHlDamJzTUI5SkNHSEFEOE1lQlRBSzFQN3RyRnBwa29zd3U1WkFzSFlBU2ZiaycsXG4gIH0sXG4gIHtcbiAgICBwdWI6ICd4cHViNjYxTXlNd0FxUmJjRnpMWHVnYW5vZ1F2ZDdNcmVmUVFxQ2NKUDJaRHVtbkNkUWVjZjVjdzFQMW5ENXFCejhTTlMxeUNMU0M5VnFwTlVXblFVM1Y2cW1uUHQycjIxb1hoaWNRRnpQQTZMYnknLFxuICAgIHBydjogJ3hwcnY5czIxWnJRSDE0M0szV0c0b2YzblNZVUM1NVhORkNnWlR5Z2hhZTljTVNGRGtjS1U3WUpnVGFoSk1wZFRZOUNqQ2NqZ1NvMlRKNjM1dVVWeDE3NkJ1ZlVNQkZwaWVLWVZKRDlKM1Z2ckdSbScsXG4gIH0sXG4gIHtcbiAgICBwdWI6ICd4cHViNjYxTXlNd0FxUmJjRkhwd1dyelBCNjFVMkNnQm1kRDIxV05WTTFKS1VuOXJFRXhrb0dFNHlhZlVWRmJQU2Q3OHZkWDh0V2NFVVFXYUFMRmtVOWZVYlVNNENjNDlES0VKU0NZR1JuYnpDeW0nLFxuICAgIHBydjogJ3hwcnY5czIxWnJRSDE0M0syb2tVUXFUTm94NGpVQXFoTkFWQWVIU3RZY3RodlNjc01TZGNGaXVwUm5MemR4emZKaXRoYWs1WnM5MkZRSmVlSjlKaXlhNjNLZlVOeGF3dU1aRENwMmNHVDljZE1LcycsXG4gIH0sXG5dO1xuXG5leHBvcnQgY29uc3Qga2V5Y2hhaW5zOiBUcmlwbGU8QklQMzJJbnRlcmZhY2U+ID0ga2V5Y2hhaW5zQmFzZTU4Lm1hcCgoeyBwdWIsIHBydiB9KSA9PiB7XG4gIGNvbnN0IGsgPSBiaXAzMi5mcm9tQmFzZTU4KHBydik7XG4gIGlmIChrLm5ldXRlcmVkKCkudG9CYXNlNTgoKSAhPT0gcHViKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBtaXNtYXRjaGApO1xuICB9XG4gIHJldHVybiBrO1xufSkgYXMgVHJpcGxlPEJJUDMySW50ZXJmYWNlPjtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFdhbGxldFVuc3BlbnRTaWduZXJVc2VyQml0R28oXG4gIGtleXM6IFRyaXBsZTxCSVAzMkludGVyZmFjZT5cbik6IGJpdGdvLldhbGxldFVuc3BlbnRTaWduZXI8Um9vdFdhbGxldEtleXM+IHtcbiAgcmV0dXJuIG5ldyBiaXRnby5XYWxsZXRVbnNwZW50U2lnbmVyKGtleXMsIGtleXNbMF0sIGtleXNbMl0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVmYXVsdFdhbGxldEtleXMoKTogUm9vdFdhbGxldEtleXMge1xuICByZXR1cm4gbmV3IGJpdGdvLlJvb3RXYWxsZXRLZXlzKGtleWNoYWlucyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREZWZhdWx0V2FsbGV0VW5zcGVudFNpZ25lcigpOiBiaXRnby5XYWxsZXRVbnNwZW50U2lnbmVyPFJvb3RXYWxsZXRLZXlzPiB7XG4gIHJldHVybiBnZXRXYWxsZXRVbnNwZW50U2lnbmVyVXNlckJpdEdvKGtleWNoYWlucyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbmNyeXB0S2V5Y2hhaW4ocGFzc3dvcmQ6IHN0cmluZywga2V5Y2hhaW46IEtleWNoYWluQmFzZTU4KTogc3RyaW5nIHtcbiAgcmV0dXJuIGVuY3J5cHQocGFzc3dvcmQsIGtleWNoYWluLnBydik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRXYWxsZXRLZXlzKHNlZWQ6IHN0cmluZyk6IFJvb3RXYWxsZXRLZXlzIHtcbiAgcmV0dXJuIG5ldyBiaXRnby5Sb290V2FsbGV0S2V5cyhcbiAgICBBcnJheS5mcm9tKHsgbGVuZ3RoOiAzIH0pLm1hcCgoXywgaSkgPT4gYmlwMzIuZnJvbVNlZWQoZ2V0U2VlZChgJHtzZWVkfS8ke2l9YCkpKSBhcyBUcmlwbGU8QklQMzJJbnRlcmZhY2U+XG4gICk7XG59XG5cbi8qKlxuICogQ3JlYXRlIHRlc3Qgd2FsbGV0IGtleXMgZnJvbSBhIHNlZWQgc3RyaW5nLlxuICogVXNlcyB0aGUgc2FtZSBzZWVkIGdlbmVyYXRpb24gYXMgZ2V0V2FsbGV0S2V5cyAoZ2V0U2VlZCgnc2VlZC9pJykpXG4gKiB0byBlbnN1cmUgY29tcGF0aWJpbGl0eSB3aXRoIGV4aXN0aW5nIHRlc3QgZml4dHVyZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUZXN0V2FsbGV0S2V5cyhzZWVkOiBzdHJpbmcpOiB7XG4gIHhwdWJzOiBUcmlwbGU8c3RyaW5nPjtcbiAgeHByaXZzOiBUcmlwbGU8c3RyaW5nPjtcbn0ge1xuICBjb25zdCBrZXlzID0gQXJyYXkuZnJvbSh7IGxlbmd0aDogMyB9KS5tYXAoKF8sIGkpID0+XG4gICAgYmlwMzIuZnJvbVNlZWQoZ2V0U2VlZChgJHtzZWVkfS8ke2l9YCkpXG4gICkgYXMgVHJpcGxlPEJJUDMySW50ZXJmYWNlPjtcbiAgcmV0dXJuIHtcbiAgICB4cHViczoga2V5cy5tYXAoKGspID0+IGsubmV1dGVyZWQoKS50b0Jhc2U1OCgpKSBhcyBUcmlwbGU8c3RyaW5nPixcbiAgICB4cHJpdnM6IGtleXMubWFwKChrKSA9PiBrLnRvQmFzZTU4KCkpIGFzIFRyaXBsZTxzdHJpbmc+LFxuICB9O1xufVxuXG4vKipcbiAqIENyZWF0ZSB3YXNtLXV0eG8gUm9vdFdhbGxldEtleXMgZnJvbSBhIHNlZWQgc3RyaW5nLlxuICogT3B0aW9uYWxseSBzcGVjaWZ5IGN1c3RvbSBkZXJpdmF0aW9uIHByZWZpeGVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlV2FzbVdhbGxldEtleXMoXG4gIHNlZWQ6IHN0cmluZyxcbiAgZGVyaXZhdGlvblByZWZpeGVzOiBUcmlwbGU8c3RyaW5nPiA9IFsnbS8wLzAnLCAnbS8wLzAnLCAnbS8wLzAnXVxuKToge1xuICB3YWxsZXRLZXlzOiBmaXhlZFNjcmlwdFdhbGxldC5Sb290V2FsbGV0S2V5cztcbiAgeHB1YnM6IFRyaXBsZTxXYXNtQklQMzI+O1xuICB4cHJpdnM6IFRyaXBsZTxXYXNtQklQMzI+O1xufSB7XG4gIGNvbnN0IHsgeHB1YnM6IHhwdWJTdHJzLCB4cHJpdnM6IHhwcml2U3RycyB9ID0gY3JlYXRlVGVzdFdhbGxldEtleXMoc2VlZCk7XG4gIGNvbnN0IHhwdWJzID0geHB1YlN0cnMubWFwKCh4cHViKSA9PiBXYXNtQklQMzIuZnJvbSh4cHViKSkgYXMgVHJpcGxlPFdhc21CSVAzMj47XG4gIGNvbnN0IHhwcml2cyA9IHhwcml2U3Rycy5tYXAoKHhwcml2KSA9PiBXYXNtQklQMzIuZnJvbSh4cHJpdikpIGFzIFRyaXBsZTxXYXNtQklQMzI+O1xuICByZXR1cm4ge1xuICAgIHdhbGxldEtleXM6IGZpeGVkU2NyaXB0V2FsbGV0LlJvb3RXYWxsZXRLZXlzLmZyb20oe1xuICAgICAgdHJpcGxlOiB4cHVicyxcbiAgICAgIGRlcml2YXRpb25QcmVmaXhlcyxcbiAgICB9KSxcbiAgICB4cHVicyxcbiAgICB4cHJpdnMsXG4gIH07XG59XG5cbi8qKlxuICogR2V0IHdhc20tdXR4byBSb290V2FsbGV0S2V5cyBmcm9tIHRoZSBkZWZhdWx0IGhhcmRjb2RlZCBrZXljaGFpbnMuXG4gKiBVc2UgdGhpcyB3aGVuIHlvdSBuZWVkIHdhbGxldCBrZXlzIHRoYXQgbWF0Y2ggZXhpc3RpbmcgdGVzdCBmaXh0dXJlcy5cbiAqIE9wdGlvbmFsbHkgc3BlY2lmeSBjdXN0b20gZGVyaXZhdGlvbiBwcmVmaXhlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldERlZmF1bHRXYXNtV2FsbGV0S2V5cyhkZXJpdmF0aW9uUHJlZml4ZXM6IFRyaXBsZTxzdHJpbmc+ID0gWydtLzAvMCcsICdtLzAvMCcsICdtLzAvMCddKToge1xuICB3YWxsZXRLZXlzOiBmaXhlZFNjcmlwdFdhbGxldC5Sb290V2FsbGV0S2V5cztcbiAgeHB1YnM6IFRyaXBsZTxXYXNtQklQMzI+O1xuICB4cHJpdnM6IFRyaXBsZTxXYXNtQklQMzI+O1xufSB7XG4gIGNvbnN0IHhwdWJzID0ga2V5Y2hhaW5zQmFzZTU4Lm1hcCgoaykgPT4gV2FzbUJJUDMyLmZyb20oay5wdWIpKSBhcyBUcmlwbGU8V2FzbUJJUDMyPjtcbiAgY29uc3QgeHByaXZzID0ga2V5Y2hhaW5zQmFzZTU4Lm1hcCgoaykgPT4gV2FzbUJJUDMyLmZyb20oay5wcnYpKSBhcyBUcmlwbGU8V2FzbUJJUDMyPjtcbiAgcmV0dXJuIHtcbiAgICB3YWxsZXRLZXlzOiBmaXhlZFNjcmlwdFdhbGxldC5Sb290V2FsbGV0S2V5cy5mcm9tKHtcbiAgICAgIHRyaXBsZTogeHB1YnMsXG4gICAgICBkZXJpdmF0aW9uUHJlZml4ZXMsXG4gICAgfSksXG4gICAgeHB1YnMsXG4gICAgeHByaXZzLFxuICB9O1xufVxuIl19
@@ -1,3 +1,10 @@
1
1
  import nock = require('nock');
2
- export declare function nockBitGo(bitgo?: import("modules/sdk-test/dist/src").TestableBG & import("modules/sdk-api/dist/src").BitGoAPI): nock.Scope;
2
+ import { Wallet } from '@bitgo/sdk-core';
3
+ import { BIP32, Triple } from '@bitgo/wasm-utxo';
4
+ export declare function nockBitGo(bitgo?: import("modules/sdk-test/dist/src").TestableBG & import("@bitgo/sdk-api").BitGoAPI): nock.Scope;
5
+ /**
6
+ * Mock the key fetching endpoints for a wallet.
7
+ * Sets up nock to return the key triple with the user key encrypted.
8
+ */
9
+ export declare function nockWalletKeys(wallet: Wallet, keyTriple: Triple<BIP32>, userPassphrase: string): void;
3
10
  //# sourceMappingURL=nockBitGo.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"nockBitGo.d.ts","sourceRoot":"","sources":["../../../../../test/unit/util/nockBitGo.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,GAAG,QAAQ,MAAM,CAAC,CAAC;AAK9B,wBAAgB,SAAS,CAAC,KAAK,+FAAe,GAAG,IAAI,CAAC,KAAK,CAG1D"}
1
+ {"version":3,"file":"nockBitGo.d.ts","sourceRoot":"","sources":["../../../../../test/unit/util/nockBitGo.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,GAAG,QAAQ,MAAM,CAAC,CAAC;AAE9B,OAAO,EAA6B,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAIjD,wBAAgB,SAAS,CAAC,KAAK,qFAAe,GAAG,IAAI,CAAC,KAAK,CAG1D;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI,CASrG"}
@@ -1,11 +1,27 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.nockBitGo = nockBitGo;
4
+ exports.nockWalletKeys = nockWalletKeys;
4
5
  const nock = require("nock");
6
+ const sdk_api_1 = require("@bitgo/sdk-api");
5
7
  const sdk_core_1 = require("@bitgo/sdk-core");
6
8
  const utxoCoins_1 = require("./utxoCoins");
7
9
  function nockBitGo(bitgo = utxoCoins_1.defaultBitGo) {
8
10
  const env = sdk_core_1.Environments[bitgo.getEnv()];
9
11
  return nock(env.uri);
10
12
  }
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ja0JpdEdvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdGVzdC91bml0L3V0aWwvbm9ja0JpdEdvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBS0EsOEJBR0M7QUFSRCw2QkFBOEI7QUFDOUIsOENBQTREO0FBRTVELDJDQUEyQztBQUUzQyxTQUFnQixTQUFTLENBQUMsS0FBSyxHQUFHLHdCQUFZO0lBQzVDLE1BQU0sR0FBRyxHQUFHLHVCQUFZLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFnQixDQUFDO0lBQ3hELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUN2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG5vY2sgPSByZXF1aXJlKCdub2NrJyk7XG5pbXBvcnQgeyBFbnZpcm9ubWVudCwgRW52aXJvbm1lbnRzIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcblxuaW1wb3J0IHsgZGVmYXVsdEJpdEdvIH0gZnJvbSAnLi91dHhvQ29pbnMnO1xuXG5leHBvcnQgZnVuY3Rpb24gbm9ja0JpdEdvKGJpdGdvID0gZGVmYXVsdEJpdEdvKTogbm9jay5TY29wZSB7XG4gIGNvbnN0IGVudiA9IEVudmlyb25tZW50c1tiaXRnby5nZXRFbnYoKV0gYXMgRW52aXJvbm1lbnQ7XG4gIHJldHVybiBub2NrKGVudi51cmkpO1xufVxuIl19
13
+ /**
14
+ * Mock the key fetching endpoints for a wallet.
15
+ * Sets up nock to return the key triple with the user key encrypted.
16
+ */
17
+ function nockWalletKeys(wallet, keyTriple, userPassphrase) {
18
+ const [user] = keyTriple;
19
+ const pubs = keyTriple.map((k) => k.neutered().toBase58());
20
+ const responses = [
21
+ { pub: pubs[0], encryptedPrv: (0, sdk_api_1.encrypt)(userPassphrase, user.toBase58()) },
22
+ { pub: pubs[1] },
23
+ { pub: pubs[2] },
24
+ ];
25
+ wallet.keyIds().forEach((id, i) => nockBitGo().get(`/api/v2/${wallet.coin()}/key/${id}`).reply(200, responses[i]));
26
+ }
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ja0JpdEdvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdGVzdC91bml0L3V0aWwvbm9ja0JpdEdvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBT0EsOEJBR0M7QUFNRCx3Q0FTQztBQXpCRCw2QkFBOEI7QUFDOUIsNENBQXlDO0FBQ3pDLDhDQUFvRTtBQUdwRSwyQ0FBMkM7QUFFM0MsU0FBZ0IsU0FBUyxDQUFDLEtBQUssR0FBRyx3QkFBWTtJQUM1QyxNQUFNLEdBQUcsR0FBRyx1QkFBWSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBZ0IsQ0FBQztJQUN4RCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDdkIsQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLGNBQWMsQ0FBQyxNQUFjLEVBQUUsU0FBd0IsRUFBRSxjQUFzQjtJQUM3RixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsU0FBUyxDQUFDO0lBQ3pCLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzNELE1BQU0sU0FBUyxHQUFHO1FBQ2hCLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxZQUFZLEVBQUUsSUFBQSxpQkFBTyxFQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRTtRQUN4RSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUU7UUFDaEIsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFO0tBQ2pCLENBQUM7SUFDRixNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsTUFBTSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3JILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbm9jayA9IHJlcXVpcmUoJ25vY2snKTtcbmltcG9ydCB7IGVuY3J5cHQgfSBmcm9tICdAYml0Z28vc2RrLWFwaSc7XG5pbXBvcnQgeyBFbnZpcm9ubWVudCwgRW52aXJvbm1lbnRzLCBXYWxsZXQgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgQklQMzIsIFRyaXBsZSB9IGZyb20gJ0BiaXRnby93YXNtLXV0eG8nO1xuXG5pbXBvcnQgeyBkZWZhdWx0Qml0R28gfSBmcm9tICcuL3V0eG9Db2lucyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBub2NrQml0R28oYml0Z28gPSBkZWZhdWx0Qml0R28pOiBub2NrLlNjb3BlIHtcbiAgY29uc3QgZW52ID0gRW52aXJvbm1lbnRzW2JpdGdvLmdldEVudigpXSBhcyBFbnZpcm9ubWVudDtcbiAgcmV0dXJuIG5vY2soZW52LnVyaSk7XG59XG5cbi8qKlxuICogTW9jayB0aGUga2V5IGZldGNoaW5nIGVuZHBvaW50cyBmb3IgYSB3YWxsZXQuXG4gKiBTZXRzIHVwIG5vY2sgdG8gcmV0dXJuIHRoZSBrZXkgdHJpcGxlIHdpdGggdGhlIHVzZXIga2V5IGVuY3J5cHRlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vY2tXYWxsZXRLZXlzKHdhbGxldDogV2FsbGV0LCBrZXlUcmlwbGU6IFRyaXBsZTxCSVAzMj4sIHVzZXJQYXNzcGhyYXNlOiBzdHJpbmcpOiB2b2lkIHtcbiAgY29uc3QgW3VzZXJdID0ga2V5VHJpcGxlO1xuICBjb25zdCBwdWJzID0ga2V5VHJpcGxlLm1hcCgoaykgPT4gay5uZXV0ZXJlZCgpLnRvQmFzZTU4KCkpO1xuICBjb25zdCByZXNwb25zZXMgPSBbXG4gICAgeyBwdWI6IHB1YnNbMF0sIGVuY3J5cHRlZFBydjogZW5jcnlwdCh1c2VyUGFzc3BocmFzZSwgdXNlci50b0Jhc2U1OCgpKSB9LFxuICAgIHsgcHViOiBwdWJzWzFdIH0sXG4gICAgeyBwdWI6IHB1YnNbMl0gfSxcbiAgXTtcbiAgd2FsbGV0LmtleUlkcygpLmZvckVhY2goKGlkLCBpKSA9PiBub2NrQml0R28oKS5nZXQoYC9hcGkvdjIvJHt3YWxsZXQuY29pbigpfS9rZXkvJHtpZH1gKS5yZXBseSgyMDAsIHJlc3BvbnNlc1tpXSkpO1xufVxuIl19
@@ -1 +1 @@
1
- {"version":3,"file":"nockIndexerAPI.d.ts","sourceRoot":"","sources":["../../../../../test/unit/util/nockIndexerAPI.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,GAAG,QAAQ,MAAM,CAAC,CAAC;AAC9B,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAE3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAWhD,wBAAgB,0BAA0B,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EACjF,IAAI,EAAE,gBAAgB,EACtB,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,EAC1C,QAAQ,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,GAC9B,IAAI,CAAC,KAAK,CAMZ;AAED,wBAAgB,8BAA8B,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EACrF,IAAI,EAAE,gBAAgB,EACtB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,GACnC,IAAI,CAAC,KAAK,CAUZ"}
1
+ {"version":3,"file":"nockIndexerAPI.d.ts","sourceRoot":"","sources":["../../../../../test/unit/util/nockIndexerAPI.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,GAAG,QAAQ,MAAM,CAAC,CAAC;AAC9B,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAG3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAWhD,wBAAgB,0BAA0B,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EACjF,IAAI,EAAE,gBAAgB,EACtB,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,EAC1C,QAAQ,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,GAC9B,IAAI,CAAC,KAAK,CAMZ;AAED,wBAAgB,8BAA8B,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EACrF,IAAI,EAAE,gBAAgB,EACtB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,GACnC,IAAI,CAAC,KAAK,CAUZ"}
@@ -1,56 +1,23 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
2
  Object.defineProperty(exports, "__esModule", { value: true });
36
3
  exports.nockBitGoPublicTransaction = nockBitGoPublicTransaction;
37
4
  exports.nockBitGoPublicAddressUnspents = nockBitGoPublicAddressUnspents;
38
- const utxolib = __importStar(require("@bitgo/utxo-lib"));
5
+ const wasm_utxo_1 = require("@bitgo/wasm-utxo");
39
6
  const nockBitGo_1 = require("./nockBitGo");
40
7
  function nockBitGoPublicTransaction(coin, tx, unspents) {
41
8
  const payload = {
42
9
  input: unspents.map((u) => ({ address: u.address })),
43
- outputs: tx.outs.map((o) => ({ address: utxolib.address.fromOutputScript(o.script, coin.network) })),
10
+ outputs: tx.outs.map((o) => ({ address: wasm_utxo_1.address.fromOutputScriptWithCoin(o.script, coin.name) })),
44
11
  };
45
12
  return (0, nockBitGo_1.nockBitGo)().get(`/api/v2/${coin.getChain()}/public/tx/${tx.getId()}`).reply(200, payload);
46
13
  }
47
14
  function nockBitGoPublicAddressUnspents(coin, txid, address, outputs) {
48
15
  const payload = outputs.map((o, vout) => ({
49
16
  id: `${txid}:${vout}`,
50
- address: utxolib.address.fromOutputScript(o.script, coin.network),
17
+ address: wasm_utxo_1.address.fromOutputScriptWithCoin(o.script, coin.name),
51
18
  value: Number(o.value),
52
19
  valueString: coin.amountType === 'bigint' ? o.value.toString() : undefined,
53
20
  }));
54
21
  return (0, nockBitGo_1.nockBitGo)().get(`/api/v2/${coin.getChain()}/public/addressUnspents/${address}`).reply(200, payload);
55
22
  }
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ja0luZGV4ZXJBUEkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90ZXN0L3VuaXQvdXRpbC9ub2NrSW5kZXhlckFQSS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWNBLGdFQVVDO0FBRUQsd0VBZUM7QUF4Q0QseURBQTJDO0FBSTNDLDJDQUF3QztBQVN4QyxTQUFnQiwwQkFBMEIsQ0FDeEMsSUFBc0IsRUFDdEIsRUFBMEMsRUFDMUMsUUFBK0I7SUFFL0IsTUFBTSxPQUFPLEdBQUc7UUFDZCxLQUFLLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNwRCxPQUFPLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7S0FDckcsQ0FBQztJQUNGLE9BQU8sSUFBQSxxQkFBUyxHQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsSUFBSSxDQUFDLFFBQVEsRUFBRSxjQUFjLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNuRyxDQUFDO0FBRUQsU0FBZ0IsOEJBQThCLENBQzVDLElBQXNCLEVBQ3RCLElBQVksRUFDWixPQUFlLEVBQ2YsT0FBb0M7SUFFcEMsTUFBTSxPQUFPLEdBQWlCLE9BQU8sQ0FBQyxHQUFHLENBQ3ZDLENBQUMsQ0FBQyxFQUFFLElBQVksRUFBYyxFQUFFLENBQUMsQ0FBQztRQUNoQyxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUksSUFBSSxFQUFFO1FBQ3JCLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUNqRSxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDdEIsV0FBVyxFQUFFLElBQUksQ0FBQyxVQUFVLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTO0tBQzNFLENBQUMsQ0FDSCxDQUFDO0lBQ0YsT0FBTyxJQUFBLHFCQUFTLEdBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxJQUFJLENBQUMsUUFBUSxFQUFFLDJCQUEyQixPQUFPLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDN0csQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBub2NrID0gcmVxdWlyZSgnbm9jaycpO1xuaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28vdXR4by1saWInO1xuXG5pbXBvcnQgeyBBYnN0cmFjdFV0eG9Db2luIH0gZnJvbSAnLi4vLi4vLi4vc3JjJztcblxuaW1wb3J0IHsgbm9ja0JpdEdvIH0gZnJvbSAnLi9ub2NrQml0R28nO1xuXG5pbnRlcmZhY2UgSW1zVW5zcGVudCB7XG4gIGlkOiBzdHJpbmc7XG4gIGFkZHJlc3M6IHN0cmluZztcbiAgdmFsdWU6IG51bWJlcjtcbiAgdmFsdWVTdHJpbmc/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBub2NrQml0R29QdWJsaWNUcmFuc2FjdGlvbjxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50ID0gbnVtYmVyPihcbiAgY29pbjogQWJzdHJhY3RVdHhvQ29pbixcbiAgdHg6IHV0eG9saWIuYml0Z28uVXR4b1RyYW5zYWN0aW9uPFROdW1iZXI+LFxuICB1bnNwZW50czogeyBhZGRyZXNzOiBzdHJpbmcgfVtdXG4pOiBub2NrLlNjb3BlIHtcbiAgY29uc3QgcGF5bG9hZCA9IHtcbiAgICBpbnB1dDogdW5zcGVudHMubWFwKCh1KSA9PiAoeyBhZGRyZXNzOiB1LmFkZHJlc3MgfSkpLFxuICAgIG91dHB1dHM6IHR4Lm91dHMubWFwKChvKSA9PiAoeyBhZGRyZXNzOiB1dHhvbGliLmFkZHJlc3MuZnJvbU91dHB1dFNjcmlwdChvLnNjcmlwdCwgY29pbi5uZXR3b3JrKSB9KSksXG4gIH07XG4gIHJldHVybiBub2NrQml0R28oKS5nZXQoYC9hcGkvdjIvJHtjb2luLmdldENoYWluKCl9L3B1YmxpYy90eC8ke3R4LmdldElkKCl9YCkucmVwbHkoMjAwLCBwYXlsb2FkKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5vY2tCaXRHb1B1YmxpY0FkZHJlc3NVbnNwZW50czxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50ID0gbnVtYmVyPihcbiAgY29pbjogQWJzdHJhY3RVdHhvQ29pbixcbiAgdHhpZDogc3RyaW5nLFxuICBhZGRyZXNzOiBzdHJpbmcsXG4gIG91dHB1dHM6IHV0eG9saWIuVHhPdXRwdXQ8VE51bWJlcj5bXVxuKTogbm9jay5TY29wZSB7XG4gIGNvbnN0IHBheWxvYWQ6IEltc1Vuc3BlbnRbXSA9IG91dHB1dHMubWFwKFxuICAgIChvLCB2b3V0OiBudW1iZXIpOiBJbXNVbnNwZW50ID0+ICh7XG4gICAgICBpZDogYCR7dHhpZH06JHt2b3V0fWAsXG4gICAgICBhZGRyZXNzOiB1dHhvbGliLmFkZHJlc3MuZnJvbU91dHB1dFNjcmlwdChvLnNjcmlwdCwgY29pbi5uZXR3b3JrKSxcbiAgICAgIHZhbHVlOiBOdW1iZXIoby52YWx1ZSksXG4gICAgICB2YWx1ZVN0cmluZzogY29pbi5hbW91bnRUeXBlID09PSAnYmlnaW50JyA/IG8udmFsdWUudG9TdHJpbmcoKSA6IHVuZGVmaW5lZCxcbiAgICB9KVxuICApO1xuICByZXR1cm4gbm9ja0JpdEdvKCkuZ2V0KGAvYXBpL3YyLyR7Y29pbi5nZXRDaGFpbigpfS9wdWJsaWMvYWRkcmVzc1Vuc3BlbnRzLyR7YWRkcmVzc31gKS5yZXBseSgyMDAsIHBheWxvYWQpO1xufVxuIl19
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ja0luZGV4ZXJBUEkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90ZXN0L3VuaXQvdXRpbC9ub2NrSW5kZXhlckFQSS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWVBLGdFQVVDO0FBRUQsd0VBZUM7QUF4Q0QsZ0RBQTBEO0FBSTFELDJDQUF3QztBQVN4QyxTQUFnQiwwQkFBMEIsQ0FDeEMsSUFBc0IsRUFDdEIsRUFBMEMsRUFDMUMsUUFBK0I7SUFFL0IsTUFBTSxPQUFPLEdBQUc7UUFDZCxLQUFLLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNwRCxPQUFPLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsbUJBQVcsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7S0FDdEcsQ0FBQztJQUNGLE9BQU8sSUFBQSxxQkFBUyxHQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsSUFBSSxDQUFDLFFBQVEsRUFBRSxjQUFjLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNuRyxDQUFDO0FBRUQsU0FBZ0IsOEJBQThCLENBQzVDLElBQXNCLEVBQ3RCLElBQVksRUFDWixPQUFlLEVBQ2YsT0FBb0M7SUFFcEMsTUFBTSxPQUFPLEdBQWlCLE9BQU8sQ0FBQyxHQUFHLENBQ3ZDLENBQUMsQ0FBQyxFQUFFLElBQVksRUFBYyxFQUFFLENBQUMsQ0FBQztRQUNoQyxFQUFFLEVBQUUsR0FBRyxJQUFJLElBQUksSUFBSSxFQUFFO1FBQ3JCLE9BQU8sRUFBRSxtQkFBVyxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNsRSxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDdEIsV0FBVyxFQUFFLElBQUksQ0FBQyxVQUFVLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTO0tBQzNFLENBQUMsQ0FDSCxDQUFDO0lBQ0YsT0FBTyxJQUFBLHFCQUFTLEdBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxJQUFJLENBQUMsUUFBUSxFQUFFLDJCQUEyQixPQUFPLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDN0csQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBub2NrID0gcmVxdWlyZSgnbm9jaycpO1xuaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28vdXR4by1saWInO1xuaW1wb3J0IHsgYWRkcmVzcyBhcyB3YXNtQWRkcmVzcyB9IGZyb20gJ0BiaXRnby93YXNtLXV0eG8nO1xuXG5pbXBvcnQgeyBBYnN0cmFjdFV0eG9Db2luIH0gZnJvbSAnLi4vLi4vLi4vc3JjJztcblxuaW1wb3J0IHsgbm9ja0JpdEdvIH0gZnJvbSAnLi9ub2NrQml0R28nO1xuXG5pbnRlcmZhY2UgSW1zVW5zcGVudCB7XG4gIGlkOiBzdHJpbmc7XG4gIGFkZHJlc3M6IHN0cmluZztcbiAgdmFsdWU6IG51bWJlcjtcbiAgdmFsdWVTdHJpbmc/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBub2NrQml0R29QdWJsaWNUcmFuc2FjdGlvbjxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50ID0gbnVtYmVyPihcbiAgY29pbjogQWJzdHJhY3RVdHhvQ29pbixcbiAgdHg6IHV0eG9saWIuYml0Z28uVXR4b1RyYW5zYWN0aW9uPFROdW1iZXI+LFxuICB1bnNwZW50czogeyBhZGRyZXNzOiBzdHJpbmcgfVtdXG4pOiBub2NrLlNjb3BlIHtcbiAgY29uc3QgcGF5bG9hZCA9IHtcbiAgICBpbnB1dDogdW5zcGVudHMubWFwKCh1KSA9PiAoeyBhZGRyZXNzOiB1LmFkZHJlc3MgfSkpLFxuICAgIG91dHB1dHM6IHR4Lm91dHMubWFwKChvKSA9PiAoeyBhZGRyZXNzOiB3YXNtQWRkcmVzcy5mcm9tT3V0cHV0U2NyaXB0V2l0aENvaW4oby5zY3JpcHQsIGNvaW4ubmFtZSkgfSkpLFxuICB9O1xuICByZXR1cm4gbm9ja0JpdEdvKCkuZ2V0KGAvYXBpL3YyLyR7Y29pbi5nZXRDaGFpbigpfS9wdWJsaWMvdHgvJHt0eC5nZXRJZCgpfWApLnJlcGx5KDIwMCwgcGF5bG9hZCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBub2NrQml0R29QdWJsaWNBZGRyZXNzVW5zcGVudHM8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludCA9IG51bWJlcj4oXG4gIGNvaW46IEFic3RyYWN0VXR4b0NvaW4sXG4gIHR4aWQ6IHN0cmluZyxcbiAgYWRkcmVzczogc3RyaW5nLFxuICBvdXRwdXRzOiB1dHhvbGliLlR4T3V0cHV0PFROdW1iZXI+W11cbik6IG5vY2suU2NvcGUge1xuICBjb25zdCBwYXlsb2FkOiBJbXNVbnNwZW50W10gPSBvdXRwdXRzLm1hcChcbiAgICAobywgdm91dDogbnVtYmVyKTogSW1zVW5zcGVudCA9PiAoe1xuICAgICAgaWQ6IGAke3R4aWR9OiR7dm91dH1gLFxuICAgICAgYWRkcmVzczogd2FzbUFkZHJlc3MuZnJvbU91dHB1dFNjcmlwdFdpdGhDb2luKG8uc2NyaXB0LCBjb2luLm5hbWUpLFxuICAgICAgdmFsdWU6IE51bWJlcihvLnZhbHVlKSxcbiAgICAgIHZhbHVlU3RyaW5nOiBjb2luLmFtb3VudFR5cGUgPT09ICdiaWdpbnQnID8gby52YWx1ZS50b1N0cmluZygpIDogdW5kZWZpbmVkLFxuICAgIH0pXG4gICk7XG4gIHJldHVybiBub2NrQml0R28oKS5nZXQoYC9hcGkvdjIvJHtjb2luLmdldENoYWluKCl9L3B1YmxpYy9hZGRyZXNzVW5zcGVudHMvJHthZGRyZXNzfWApLnJlcGx5KDIwMCwgcGF5bG9hZCk7XG59XG4iXX0=
@@ -0,0 +1,19 @@
1
+ import { fixedScriptWallet, type CoinName } from '@bitgo/wasm-utxo';
2
+ export type PsbtInput = {
3
+ scriptType: fixedScriptWallet.OutputScriptType;
4
+ value: bigint;
5
+ };
6
+ export type PsbtOutput = {
7
+ address: string;
8
+ value: bigint;
9
+ };
10
+ export type PsbtOptions = {
11
+ lockTime?: number;
12
+ sequence?: number;
13
+ };
14
+ /**
15
+ * Construct a test PSBT with the given inputs and outputs.
16
+ * Uses dummy txids (all zeros) for inputs.
17
+ */
18
+ export declare function constructPsbt(inputs: PsbtInput[], outputs: PsbtOutput[], network: CoinName, walletKeys: fixedScriptWallet.RootWalletKeys, options?: PsbtOptions): fixedScriptWallet.BitGoPsbt;
19
+ //# sourceMappingURL=psbt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"psbt.d.ts","sourceRoot":"","sources":["../../../../../test/unit/util/psbt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAIpE,MAAM,MAAM,SAAS,GAAG;IAAE,UAAU,EAAE,iBAAiB,CAAC,gBAAgB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAC1F,MAAM,MAAM,UAAU,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAC5D,MAAM,MAAM,WAAW,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnE;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,SAAS,EAAE,EACnB,OAAO,EAAE,UAAU,EAAE,EACrB,OAAO,EAAE,QAAQ,EACjB,UAAU,EAAE,iBAAiB,CAAC,cAAc,EAC5C,OAAO,CAAC,EAAE,WAAW,GACpB,iBAAiB,CAAC,SAAS,CAiB7B"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.constructPsbt = constructPsbt;
4
+ const wasm_utxo_1 = require("@bitgo/wasm-utxo");
5
+ const { BitGoPsbt, ChainCode } = wasm_utxo_1.fixedScriptWallet;
6
+ /**
7
+ * Construct a test PSBT with the given inputs and outputs.
8
+ * Uses dummy txids (all zeros) for inputs.
9
+ */
10
+ function constructPsbt(inputs, outputs, network, walletKeys, options) {
11
+ const psbt = BitGoPsbt.createEmpty(network, walletKeys, { lockTime: options?.lockTime });
12
+ inputs.forEach((input, index) => {
13
+ const chain = ChainCode.value(input.scriptType, 'external');
14
+ psbt.addWalletInput({ txid: '00'.repeat(32), vout: index, value: input.value, sequence: options?.sequence }, walletKeys, { scriptId: { chain, index }, signPath: { signer: 'user', cosigner: 'bitgo' } });
15
+ });
16
+ outputs.forEach((output) => {
17
+ psbt.addOutput(output.address, output.value);
18
+ });
19
+ return psbt;
20
+ }
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHNidC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Rlc3QvdW5pdC91dGlsL3BzYnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFZQSxzQ0F1QkM7QUFuQ0QsZ0RBQW9FO0FBRXBFLE1BQU0sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsNkJBQWlCLENBQUM7QUFNbkQ7OztHQUdHO0FBQ0gsU0FBZ0IsYUFBYSxDQUMzQixNQUFtQixFQUNuQixPQUFxQixFQUNyQixPQUFpQixFQUNqQixVQUE0QyxFQUM1QyxPQUFxQjtJQUVyQixNQUFNLElBQUksR0FBRyxTQUFTLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFFekYsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRTtRQUM5QixNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDNUQsSUFBSSxDQUFDLGNBQWMsQ0FDakIsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLEVBQ3ZGLFVBQVUsRUFDVixFQUFFLFFBQVEsRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUNoRixDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7UUFDekIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQyxDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZpeGVkU2NyaXB0V2FsbGV0LCB0eXBlIENvaW5OYW1lIH0gZnJvbSAnQGJpdGdvL3dhc20tdXR4byc7XG5cbmNvbnN0IHsgQml0R29Qc2J0LCBDaGFpbkNvZGUgfSA9IGZpeGVkU2NyaXB0V2FsbGV0O1xuXG5leHBvcnQgdHlwZSBQc2J0SW5wdXQgPSB7IHNjcmlwdFR5cGU6IGZpeGVkU2NyaXB0V2FsbGV0Lk91dHB1dFNjcmlwdFR5cGU7IHZhbHVlOiBiaWdpbnQgfTtcbmV4cG9ydCB0eXBlIFBzYnRPdXRwdXQgPSB7IGFkZHJlc3M6IHN0cmluZzsgdmFsdWU6IGJpZ2ludCB9O1xuZXhwb3J0IHR5cGUgUHNidE9wdGlvbnMgPSB7IGxvY2tUaW1lPzogbnVtYmVyOyBzZXF1ZW5jZT86IG51bWJlciB9O1xuXG4vKipcbiAqIENvbnN0cnVjdCBhIHRlc3QgUFNCVCB3aXRoIHRoZSBnaXZlbiBpbnB1dHMgYW5kIG91dHB1dHMuXG4gKiBVc2VzIGR1bW15IHR4aWRzIChhbGwgemVyb3MpIGZvciBpbnB1dHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb25zdHJ1Y3RQc2J0KFxuICBpbnB1dHM6IFBzYnRJbnB1dFtdLFxuICBvdXRwdXRzOiBQc2J0T3V0cHV0W10sXG4gIG5ldHdvcms6IENvaW5OYW1lLFxuICB3YWxsZXRLZXlzOiBmaXhlZFNjcmlwdFdhbGxldC5Sb290V2FsbGV0S2V5cyxcbiAgb3B0aW9ucz86IFBzYnRPcHRpb25zXG4pOiBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQge1xuICBjb25zdCBwc2J0ID0gQml0R29Qc2J0LmNyZWF0ZUVtcHR5KG5ldHdvcmssIHdhbGxldEtleXMsIHsgbG9ja1RpbWU6IG9wdGlvbnM/LmxvY2tUaW1lIH0pO1xuXG4gIGlucHV0cy5mb3JFYWNoKChpbnB1dCwgaW5kZXgpID0+IHtcbiAgICBjb25zdCBjaGFpbiA9IENoYWluQ29kZS52YWx1ZShpbnB1dC5zY3JpcHRUeXBlLCAnZXh0ZXJuYWwnKTtcbiAgICBwc2J0LmFkZFdhbGxldElucHV0KFxuICAgICAgeyB0eGlkOiAnMDAnLnJlcGVhdCgzMiksIHZvdXQ6IGluZGV4LCB2YWx1ZTogaW5wdXQudmFsdWUsIHNlcXVlbmNlOiBvcHRpb25zPy5zZXF1ZW5jZSB9LFxuICAgICAgd2FsbGV0S2V5cyxcbiAgICAgIHsgc2NyaXB0SWQ6IHsgY2hhaW4sIGluZGV4IH0sIHNpZ25QYXRoOiB7IHNpZ25lcjogJ3VzZXInLCBjb3NpZ25lcjogJ2JpdGdvJyB9IH1cbiAgICApO1xuICB9KTtcblxuICBvdXRwdXRzLmZvckVhY2goKG91dHB1dCkgPT4ge1xuICAgIHBzYnQuYWRkT3V0cHV0KG91dHB1dC5hZGRyZXNzLCBvdXRwdXQudmFsdWUpO1xuICB9KTtcblxuICByZXR1cm4gcHNidDtcbn1cbiJdfQ==
@@ -1,6 +1,9 @@
1
1
  import * as utxolib from '@bitgo/utxo-lib';
2
- type RootWalletKeys = utxolib.bitgo.RootWalletKeys;
3
- type Unspent<TNumber extends number | bigint = number> = utxolib.bitgo.Unspent<TNumber>;
2
+ import { ECPair, fixedScriptWallet } from '@bitgo/wasm-utxo';
3
+ import { UtxoCoinName } from '../../../src/names';
4
+ import type { Unspent } from '../../../src/unspent';
5
+ type UtxolibRootWalletKeys = utxolib.bitgo.RootWalletKeys;
6
+ type WasmRootWalletKeys = fixedScriptWallet.RootWalletKeys;
4
7
  export type TransactionObj = {
5
8
  id: string;
6
9
  hex: string;
@@ -15,10 +18,11 @@ export type TransactionObj = {
15
18
  value: number | string;
16
19
  }[];
17
20
  };
21
+ export declare function assertEqualParsedPsbt(a: Buffer, b: Buffer, coinName: UtxoCoinName, walletKeys: WasmRootWalletKeys, replayProtection: ECPair[]): void;
18
22
  export declare function transactionToObj<TNumber extends number | bigint = number>(tx: utxolib.bitgo.UtxoTransaction<TNumber>): TransactionObj;
19
23
  export declare function transactionHexToObj(txHex: string, network: utxolib.Network, amountType?: 'number' | 'bigint'): TransactionObj;
20
24
  export declare function createPrebuildTransaction<TNumber extends number | bigint = number>(network: utxolib.Network, unspents: Unspent<TNumber>[], outputAddress: string): utxolib.bitgo.UtxoTransaction<TNumber>;
21
- export declare function createHalfSignedTransaction<TNumber extends number | bigint = number>(network: utxolib.Network, unspents: Unspent<TNumber>[], outputAddress: string, signer: utxolib.bitgo.WalletUnspentSigner<RootWalletKeys>, prebuild?: utxolib.bitgo.UtxoTransaction<TNumber>): utxolib.bitgo.UtxoTransaction<TNumber>;
22
- export declare function createFullSignedTransaction<TNumber extends number | bigint = number>(network: utxolib.Network, unspents: Unspent<TNumber>[], outputAddress: string, signer: utxolib.bitgo.WalletUnspentSigner<RootWalletKeys>, halfSigned?: utxolib.bitgo.UtxoTransaction<TNumber>): utxolib.bitgo.UtxoTransaction<TNumber>;
25
+ export declare function createHalfSignedTransaction<TNumber extends number | bigint = number>(network: utxolib.Network, unspents: Unspent<TNumber>[], outputAddress: string, signer: utxolib.bitgo.WalletUnspentSigner<UtxolibRootWalletKeys>, prebuild?: utxolib.bitgo.UtxoTransaction<TNumber>): utxolib.bitgo.UtxoTransaction<TNumber>;
26
+ export declare function createFullSignedTransaction<TNumber extends number | bigint = number>(network: utxolib.Network, unspents: Unspent<TNumber>[], outputAddress: string, signer: utxolib.bitgo.WalletUnspentSigner<UtxolibRootWalletKeys>, halfSigned?: utxolib.bitgo.UtxoTransaction<TNumber>): utxolib.bitgo.UtxoTransaction<TNumber>;
23
27
  export {};
24
28
  //# sourceMappingURL=transaction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../../../test/unit/util/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAE3C,KAAK,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC;AACnD,KAAK,OAAO,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AACxF,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE;QACH,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;KACpB,EAAE,CAAC;IACJ,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;KACxB,EAAE,CAAC;CACL,CAAC;AAYF,wBAAgB,gBAAgB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EACvE,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,GACzC,cAAc,CAehB;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,CAAC,OAAO,EACxB,UAAU,GAAE,QAAQ,GAAG,QAAmB,GACzC,cAAc,CAQhB;AAED,wBAAgB,yBAAyB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EAChF,OAAO,EAAE,OAAO,CAAC,OAAO,EACxB,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,EAC5B,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,CAaxC;AAoBD,wBAAgB,2BAA2B,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EAClF,OAAO,EAAE,OAAO,CAAC,OAAO,EACxB,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,EAC5B,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,cAAc,CAAC,EACzD,QAAQ,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,GAChD,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,CAKxC;AAED,wBAAgB,2BAA2B,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EAClF,OAAO,EAAE,OAAO,CAAC,OAAO,EACxB,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,EAC5B,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,cAAc,CAAC,EACzD,UAAU,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,GAClD,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,CAUxC"}
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../../../test/unit/util/transaction.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAwC,MAAM,kBAAkB,CAAC;AAEnG,OAAO,EAAe,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,KAAK,EAAE,OAAO,EAAiB,MAAM,sBAAsB,CAAC;AAEnE,KAAK,qBAAqB,GAAG,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC;AAC1D,KAAK,kBAAkB,GAAG,iBAAiB,CAAC,cAAc,CAAC;AAC3D,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE;QACH,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;KACpB,EAAE,CAAC;IACJ,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;KACxB,EAAE,CAAC;CACL,CAAC;AAYF,wBAAgB,qBAAqB,CACnC,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,kBAAkB,EAC9B,gBAAgB,EAAE,MAAM,EAAE,GACzB,IAAI,CAYN;AAED,wBAAgB,gBAAgB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EACvE,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,GACzC,cAAc,CAehB;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,CAAC,OAAO,EACxB,UAAU,GAAE,QAAQ,GAAG,QAAmB,GACzC,cAAc,CAQhB;AAED,wBAAgB,yBAAyB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EAChF,OAAO,EAAE,OAAO,CAAC,OAAO,EACxB,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,EAC5B,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,CAaxC;AAoBD,wBAAgB,2BAA2B,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EAClF,OAAO,EAAE,OAAO,CAAC,OAAO,EACxB,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,EAC5B,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,EAChE,QAAQ,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,GAChD,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,CAKxC;AAED,wBAAgB,2BAA2B,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EAClF,OAAO,EAAE,OAAO,CAAC,OAAO,EACxB,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,EAC5B,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,EAChE,UAAU,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,GAClD,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,CAUxC"}