@bitgo/abstract-utxo 10.16.0 → 10.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (334) hide show
  1. package/dist/cjs/src/abstractUtxoCoin.d.ts +9 -13
  2. package/dist/cjs/src/abstractUtxoCoin.d.ts.map +1 -1
  3. package/dist/cjs/src/abstractUtxoCoin.js +28 -14
  4. package/dist/cjs/src/address/fixedScript.d.ts +4 -9
  5. package/dist/cjs/src/address/fixedScript.d.ts.map +1 -1
  6. package/dist/cjs/src/address/fixedScript.js +18 -50
  7. package/dist/cjs/src/descriptor/NamedDescriptor.d.ts +4 -5
  8. package/dist/cjs/src/descriptor/NamedDescriptor.d.ts.map +1 -1
  9. package/dist/cjs/src/descriptor/NamedDescriptor.js +4 -6
  10. package/dist/cjs/src/descriptor/assertDescriptorWalletAddress.d.ts +2 -2
  11. package/dist/cjs/src/descriptor/assertDescriptorWalletAddress.d.ts.map +1 -1
  12. package/dist/cjs/src/descriptor/assertDescriptorWalletAddress.js +3 -38
  13. package/dist/cjs/src/descriptor/builder/builder.d.ts +2 -3
  14. package/dist/cjs/src/descriptor/builder/builder.d.ts.map +1 -1
  15. package/dist/cjs/src/descriptor/builder/builder.js +1 -1
  16. package/dist/cjs/src/descriptor/builder/parse.d.ts.map +1 -1
  17. package/dist/cjs/src/descriptor/builder/parse.js +3 -3
  18. package/dist/cjs/src/descriptor/createWallet/createDescriptors.d.ts +2 -2
  19. package/dist/cjs/src/descriptor/createWallet/createDescriptors.d.ts.map +1 -1
  20. package/dist/cjs/src/descriptor/createWallet/createDescriptors.js +1 -1
  21. package/dist/cjs/src/descriptor/descriptorWallet.d.ts +1 -1
  22. package/dist/cjs/src/descriptor/descriptorWallet.d.ts.map +1 -1
  23. package/dist/cjs/src/descriptor/descriptorWallet.js +1 -1
  24. package/dist/cjs/src/descriptor/index.d.ts +1 -1
  25. package/dist/cjs/src/descriptor/index.d.ts.map +1 -1
  26. package/dist/cjs/src/descriptor/index.js +1 -1
  27. package/dist/cjs/src/descriptor/validatePolicy.d.ts +3 -3
  28. package/dist/cjs/src/descriptor/validatePolicy.d.ts.map +1 -1
  29. package/dist/cjs/src/descriptor/validatePolicy.js +3 -3
  30. package/dist/cjs/src/impl/bch/bch.d.ts.map +1 -1
  31. package/dist/cjs/src/impl/bch/bch.js +6 -38
  32. package/dist/cjs/src/impl/btc/inscriptionBuilder.d.ts +15 -5
  33. package/dist/cjs/src/impl/btc/inscriptionBuilder.d.ts.map +1 -1
  34. package/dist/cjs/src/impl/btc/inscriptionBuilder.js +43 -55
  35. package/dist/cjs/src/impl/doge/doge.d.ts +2 -1
  36. package/dist/cjs/src/impl/doge/doge.d.ts.map +1 -1
  37. package/dist/cjs/src/impl/doge/doge.js +1 -1
  38. package/dist/cjs/src/impl/ltc/ltc.d.ts +0 -1
  39. package/dist/cjs/src/impl/ltc/ltc.d.ts.map +1 -1
  40. package/dist/cjs/src/impl/ltc/ltc.js +3 -41
  41. package/dist/cjs/src/impl/ltc/tltc.d.ts +0 -1
  42. package/dist/cjs/src/impl/ltc/tltc.d.ts.map +1 -1
  43. package/dist/cjs/src/impl/ltc/tltc.js +3 -40
  44. package/dist/cjs/src/index.d.ts +2 -0
  45. package/dist/cjs/src/index.d.ts.map +1 -1
  46. package/dist/cjs/src/index.js +3 -1
  47. package/dist/cjs/src/keychains.d.ts +5 -0
  48. package/dist/cjs/src/keychains.d.ts.map +1 -1
  49. package/dist/cjs/src/keychains.js +10 -1
  50. package/dist/cjs/src/offlineVault/OfflineVaultHalfSigned.js +2 -2
  51. package/dist/cjs/src/offlineVault/descriptor/transaction.d.ts +3 -2
  52. package/dist/cjs/src/offlineVault/descriptor/transaction.d.ts.map +1 -1
  53. package/dist/cjs/src/offlineVault/descriptor/transaction.js +5 -8
  54. package/dist/cjs/src/recovery/RecoveryProvider.d.ts +1 -3
  55. package/dist/cjs/src/recovery/RecoveryProvider.d.ts.map +1 -1
  56. package/dist/cjs/src/recovery/RecoveryProvider.js +1 -1
  57. package/dist/cjs/src/recovery/backupKeyRecovery.d.ts +73 -4
  58. package/dist/cjs/src/recovery/backupKeyRecovery.d.ts.map +1 -1
  59. package/dist/cjs/src/recovery/backupKeyRecovery.js +163 -129
  60. package/dist/cjs/src/recovery/crossChainRecovery.d.ts +5 -5
  61. package/dist/cjs/src/recovery/crossChainRecovery.d.ts.map +1 -1
  62. package/dist/cjs/src/recovery/crossChainRecovery.js +22 -121
  63. package/dist/cjs/src/recovery/psbt.d.ts +8 -31
  64. package/dist/cjs/src/recovery/psbt.d.ts.map +1 -1
  65. package/dist/cjs/src/recovery/psbt.js +14 -126
  66. package/dist/cjs/src/transaction/descriptor/explainPsbt.d.ts +3 -3
  67. package/dist/cjs/src/transaction/descriptor/explainPsbt.d.ts.map +1 -1
  68. package/dist/cjs/src/transaction/descriptor/explainPsbt.js +17 -54
  69. package/dist/cjs/src/transaction/descriptor/index.d.ts +1 -1
  70. package/dist/cjs/src/transaction/descriptor/index.d.ts.map +1 -1
  71. package/dist/cjs/src/transaction/descriptor/index.js +1 -1
  72. package/dist/cjs/src/transaction/descriptor/parse.d.ts +6 -4
  73. package/dist/cjs/src/transaction/descriptor/parse.d.ts.map +1 -1
  74. package/dist/cjs/src/transaction/descriptor/parse.js +24 -50
  75. package/dist/cjs/src/transaction/descriptor/signPsbt.d.ts +6 -7
  76. package/dist/cjs/src/transaction/descriptor/signPsbt.d.ts.map +1 -1
  77. package/dist/cjs/src/transaction/descriptor/signPsbt.js +19 -18
  78. package/dist/cjs/src/transaction/descriptor/verifyTransaction.d.ts +4 -4
  79. package/dist/cjs/src/transaction/descriptor/verifyTransaction.d.ts.map +1 -1
  80. package/dist/cjs/src/transaction/descriptor/verifyTransaction.js +10 -38
  81. package/dist/cjs/src/transaction/explainTransaction.d.ts +2 -1
  82. package/dist/cjs/src/transaction/explainTransaction.d.ts.map +1 -1
  83. package/dist/cjs/src/transaction/explainTransaction.js +3 -2
  84. package/dist/cjs/src/transaction/fixedScript/SigningError.d.ts +5 -3
  85. package/dist/cjs/src/transaction/fixedScript/SigningError.d.ts.map +1 -1
  86. package/dist/cjs/src/transaction/fixedScript/SigningError.js +10 -2
  87. package/dist/cjs/src/transaction/fixedScript/explainTransaction.d.ts +2 -1
  88. package/dist/cjs/src/transaction/fixedScript/explainTransaction.d.ts.map +1 -1
  89. package/dist/cjs/src/transaction/fixedScript/explainTransaction.js +1 -8
  90. package/dist/cjs/src/transaction/fixedScript/parseOutput.d.ts.map +1 -1
  91. package/dist/cjs/src/transaction/fixedScript/parseOutput.js +8 -12
  92. package/dist/cjs/src/transaction/fixedScript/parseTransaction.d.ts +2 -2
  93. package/dist/cjs/src/transaction/fixedScript/parseTransaction.d.ts.map +1 -1
  94. package/dist/cjs/src/transaction/fixedScript/parseTransaction.js +36 -11
  95. package/dist/cjs/src/transaction/fixedScript/signLegacyTransaction.d.ts +2 -2
  96. package/dist/cjs/src/transaction/fixedScript/signLegacyTransaction.d.ts.map +1 -1
  97. package/dist/cjs/src/transaction/fixedScript/signLegacyTransaction.js +4 -2
  98. package/dist/cjs/src/transaction/fixedScript/signPsbtUtxolib.d.ts +1 -1
  99. package/dist/cjs/src/transaction/fixedScript/signPsbtUtxolib.d.ts.map +1 -1
  100. package/dist/cjs/src/transaction/fixedScript/signPsbtUtxolib.js +1 -1
  101. package/dist/cjs/src/transaction/fixedScript/signPsbtWasm.d.ts +3 -2
  102. package/dist/cjs/src/transaction/fixedScript/signPsbtWasm.d.ts.map +1 -1
  103. package/dist/cjs/src/transaction/fixedScript/signPsbtWasm.js +15 -25
  104. package/dist/cjs/src/transaction/fixedScript/signTransaction.d.ts +6 -5
  105. package/dist/cjs/src/transaction/fixedScript/signTransaction.d.ts.map +1 -1
  106. package/dist/cjs/src/transaction/fixedScript/signTransaction.js +42 -7
  107. package/dist/cjs/src/transaction/outputDifference.d.ts +5 -1
  108. package/dist/cjs/src/transaction/outputDifference.d.ts.map +1 -1
  109. package/dist/cjs/src/transaction/outputDifference.js +6 -2
  110. package/dist/cjs/src/transaction/recipient.d.ts +5 -0
  111. package/dist/cjs/src/transaction/recipient.d.ts.map +1 -1
  112. package/dist/cjs/src/transaction/recipient.js +14 -1
  113. package/dist/cjs/src/transaction/signTransaction.d.ts.map +1 -1
  114. package/dist/cjs/src/transaction/signTransaction.js +10 -10
  115. package/dist/cjs/src/unspent.d.ts +55 -0
  116. package/dist/cjs/src/unspent.d.ts.map +1 -0
  117. package/dist/cjs/src/unspent.js +12 -0
  118. package/dist/cjs/src/wasmUtil.d.ts +29 -0
  119. package/dist/cjs/src/wasmUtil.d.ts.map +1 -0
  120. package/dist/cjs/src/wasmUtil.js +87 -0
  121. package/dist/cjs/test/unit/address.d.ts +1 -1
  122. package/dist/cjs/test/unit/address.d.ts.map +1 -1
  123. package/dist/cjs/test/unit/address.js +107 -137
  124. package/dist/cjs/test/unit/bip322.js +50 -1
  125. package/dist/cjs/test/unit/coins.js +7 -2
  126. package/dist/cjs/test/unit/customSigner.js +5 -4
  127. package/dist/cjs/test/unit/descriptor/NamedDescriptor.js +37 -4
  128. package/dist/cjs/test/unit/descriptor/builder.js +10 -4
  129. package/dist/cjs/test/unit/descriptor/createWallet/createDescriptors.js +37 -4
  130. package/dist/cjs/test/unit/descriptor/descriptorWallet.js +40 -6
  131. package/dist/cjs/test/unit/descriptorAddress.d.ts +2 -2
  132. package/dist/cjs/test/unit/descriptorAddress.d.ts.map +1 -1
  133. package/dist/cjs/test/unit/descriptorAddress.js +10 -9
  134. package/dist/cjs/test/unit/explainTransaction.js +26 -3
  135. package/dist/cjs/test/unit/keychains.js +40 -1
  136. package/dist/cjs/test/unit/postProcessPrebuild.d.ts +2 -0
  137. package/dist/cjs/test/unit/postProcessPrebuild.d.ts.map +1 -0
  138. package/dist/cjs/test/unit/postProcessPrebuild.js +62 -0
  139. package/dist/cjs/test/unit/prebuildAndSign.d.ts +0 -4
  140. package/dist/cjs/test/unit/prebuildAndSign.d.ts.map +1 -1
  141. package/dist/cjs/test/unit/prebuildAndSign.js +12 -31
  142. package/dist/cjs/test/unit/recovery/backupKeyRecovery.js +82 -258
  143. package/dist/cjs/test/unit/recovery/backupKeyRecoveryUnspentGathering.d.ts +2 -0
  144. package/dist/cjs/test/unit/recovery/backupKeyRecoveryUnspentGathering.d.ts.map +1 -0
  145. package/dist/cjs/test/unit/recovery/backupKeyRecoveryUnspentGathering.js +144 -0
  146. package/dist/cjs/test/unit/recovery/crossChainRecovery.js +41 -37
  147. package/dist/cjs/test/unit/recovery/formatBackupKeyRecoveryResult.d.ts +2 -0
  148. package/dist/cjs/test/unit/recovery/formatBackupKeyRecoveryResult.d.ts.map +1 -0
  149. package/dist/cjs/test/unit/recovery/formatBackupKeyRecoveryResult.js +186 -0
  150. package/dist/cjs/test/unit/recovery/mock.d.ts +15 -8
  151. package/dist/cjs/test/unit/recovery/mock.d.ts.map +1 -1
  152. package/dist/cjs/test/unit/recovery/mock.js +50 -77
  153. package/dist/cjs/test/unit/signTransaction.d.ts +2 -0
  154. package/dist/cjs/test/unit/signTransaction.d.ts.map +1 -0
  155. package/dist/cjs/test/unit/signTransaction.js +244 -0
  156. package/dist/cjs/test/unit/testSpoofTransaction.d.ts +2 -0
  157. package/dist/cjs/test/unit/testSpoofTransaction.d.ts.map +1 -0
  158. package/dist/cjs/test/unit/testSpoofTransaction.js +114 -0
  159. package/dist/cjs/test/unit/transaction/descriptor/explainPsbt.js +46 -12
  160. package/dist/cjs/test/unit/transaction/descriptor/fixtures.utils.d.ts.map +1 -1
  161. package/dist/cjs/test/unit/transaction/descriptor/fixtures.utils.js +38 -4
  162. package/dist/cjs/test/unit/transaction/descriptor/parse.js +22 -19
  163. package/dist/cjs/test/unit/transaction/descriptor/sign.js +60 -16
  164. package/dist/cjs/test/unit/transaction/descriptor/validatePolicy.js +43 -10
  165. package/dist/cjs/test/unit/transaction/fixedScript/parsePsbt.js +2 -2
  166. package/dist/cjs/test/unit/transaction/outputDifference.d.ts.map +1 -0
  167. package/dist/cjs/test/unit/transaction/outputDifference.js +117 -0
  168. package/dist/cjs/test/unit/transaction.js +8 -226
  169. package/dist/cjs/test/unit/txFormat.d.ts.map +1 -1
  170. package/dist/cjs/test/unit/txFormat.js +9 -9
  171. package/dist/cjs/test/unit/util/address.d.ts +13 -0
  172. package/dist/cjs/test/unit/util/address.d.ts.map +1 -0
  173. package/dist/cjs/test/unit/util/address.js +15 -0
  174. package/dist/cjs/test/unit/util/index.d.ts +3 -0
  175. package/dist/cjs/test/unit/util/index.d.ts.map +1 -1
  176. package/dist/cjs/test/unit/util/index.js +4 -1
  177. package/dist/cjs/test/unit/util/keychains.d.ts +29 -0
  178. package/dist/cjs/test/unit/util/keychains.d.ts.map +1 -1
  179. package/dist/cjs/test/unit/util/keychains.js +51 -1
  180. package/dist/cjs/test/unit/util/nockBitGo.d.ts +8 -1
  181. package/dist/cjs/test/unit/util/nockBitGo.d.ts.map +1 -1
  182. package/dist/cjs/test/unit/util/nockBitGo.js +17 -1
  183. package/dist/cjs/test/unit/util/nockIndexerAPI.d.ts.map +1 -1
  184. package/dist/cjs/test/unit/util/nockIndexerAPI.js +4 -37
  185. package/dist/cjs/test/unit/util/psbt.d.ts +19 -0
  186. package/dist/cjs/test/unit/util/psbt.d.ts.map +1 -0
  187. package/dist/cjs/test/unit/util/psbt.js +21 -0
  188. package/dist/cjs/test/unit/util/transaction.d.ts +8 -4
  189. package/dist/cjs/test/unit/util/transaction.d.ts.map +1 -1
  190. package/dist/cjs/test/unit/util/transaction.js +22 -2
  191. package/dist/cjs/test/unit/util/unspents.d.ts +66 -8
  192. package/dist/cjs/test/unit/util/unspents.d.ts.map +1 -1
  193. package/dist/cjs/test/unit/util/unspents.js +130 -15
  194. package/dist/cjs/test/unit/util/utxoCoins.d.ts +13 -0
  195. package/dist/cjs/test/unit/util/utxoCoins.d.ts.map +1 -1
  196. package/dist/cjs/test/unit/util/utxoCoins.js +33 -2
  197. package/dist/cjs/test/unit/wallet.js +4 -4
  198. package/dist/cjs/tsconfig.tsbuildinfo +1 -1
  199. package/dist/esm/abstractUtxoCoin.d.ts +9 -13
  200. package/dist/esm/abstractUtxoCoin.d.ts.map +1 -1
  201. package/dist/esm/abstractUtxoCoin.js +30 -16
  202. package/dist/esm/address/fixedScript.d.ts +4 -9
  203. package/dist/esm/address/fixedScript.d.ts.map +1 -1
  204. package/dist/esm/address/fixedScript.js +18 -17
  205. package/dist/esm/descriptor/NamedDescriptor.d.ts +4 -5
  206. package/dist/esm/descriptor/NamedDescriptor.d.ts.map +1 -1
  207. package/dist/esm/descriptor/NamedDescriptor.js +5 -7
  208. package/dist/esm/descriptor/assertDescriptorWalletAddress.d.ts +2 -2
  209. package/dist/esm/descriptor/assertDescriptorWalletAddress.d.ts.map +1 -1
  210. package/dist/esm/descriptor/assertDescriptorWalletAddress.js +3 -5
  211. package/dist/esm/descriptor/builder/builder.d.ts +2 -3
  212. package/dist/esm/descriptor/builder/builder.d.ts.map +1 -1
  213. package/dist/esm/descriptor/builder/builder.js +1 -1
  214. package/dist/esm/descriptor/builder/parse.d.ts.map +1 -1
  215. package/dist/esm/descriptor/builder/parse.js +3 -3
  216. package/dist/esm/descriptor/createWallet/createDescriptors.d.ts +2 -2
  217. package/dist/esm/descriptor/createWallet/createDescriptors.d.ts.map +1 -1
  218. package/dist/esm/descriptor/createWallet/createDescriptors.js +1 -1
  219. package/dist/esm/descriptor/descriptorWallet.d.ts +1 -1
  220. package/dist/esm/descriptor/descriptorWallet.d.ts.map +1 -1
  221. package/dist/esm/descriptor/descriptorWallet.js +1 -1
  222. package/dist/esm/descriptor/index.d.ts +1 -1
  223. package/dist/esm/descriptor/index.d.ts.map +1 -1
  224. package/dist/esm/descriptor/index.js +1 -1
  225. package/dist/esm/descriptor/validatePolicy.d.ts +3 -3
  226. package/dist/esm/descriptor/validatePolicy.d.ts.map +1 -1
  227. package/dist/esm/descriptor/validatePolicy.js +3 -3
  228. package/dist/esm/impl/bch/bch.d.ts.map +1 -1
  229. package/dist/esm/impl/bch/bch.js +6 -5
  230. package/dist/esm/impl/btc/inscriptionBuilder.d.ts +15 -5
  231. package/dist/esm/impl/btc/inscriptionBuilder.d.ts.map +1 -1
  232. package/dist/esm/impl/btc/inscriptionBuilder.js +44 -23
  233. package/dist/esm/impl/doge/doge.d.ts +2 -1
  234. package/dist/esm/impl/doge/doge.d.ts.map +1 -1
  235. package/dist/esm/impl/doge/doge.js +1 -1
  236. package/dist/esm/impl/ltc/ltc.d.ts +0 -1
  237. package/dist/esm/impl/ltc/ltc.d.ts.map +1 -1
  238. package/dist/esm/impl/ltc/ltc.js +3 -8
  239. package/dist/esm/impl/ltc/tltc.d.ts +0 -1
  240. package/dist/esm/impl/ltc/tltc.d.ts.map +1 -1
  241. package/dist/esm/impl/ltc/tltc.js +3 -7
  242. package/dist/esm/index.d.ts +2 -0
  243. package/dist/esm/index.d.ts.map +1 -1
  244. package/dist/esm/index.js +3 -1
  245. package/dist/esm/keychains.d.ts +5 -0
  246. package/dist/esm/keychains.d.ts.map +1 -1
  247. package/dist/esm/keychains.js +9 -1
  248. package/dist/esm/offlineVault/OfflineVaultHalfSigned.js +2 -2
  249. package/dist/esm/offlineVault/descriptor/transaction.d.ts +3 -2
  250. package/dist/esm/offlineVault/descriptor/transaction.d.ts.map +1 -1
  251. package/dist/esm/offlineVault/descriptor/transaction.js +5 -8
  252. package/dist/esm/recovery/RecoveryProvider.d.ts +1 -3
  253. package/dist/esm/recovery/RecoveryProvider.d.ts.map +1 -1
  254. package/dist/esm/recovery/RecoveryProvider.js +1 -1
  255. package/dist/esm/recovery/backupKeyRecovery.d.ts +73 -4
  256. package/dist/esm/recovery/backupKeyRecovery.d.ts.map +1 -1
  257. package/dist/esm/recovery/backupKeyRecovery.js +165 -100
  258. package/dist/esm/recovery/crossChainRecovery.d.ts +5 -5
  259. package/dist/esm/recovery/crossChainRecovery.d.ts.map +1 -1
  260. package/dist/esm/recovery/crossChainRecovery.js +24 -90
  261. package/dist/esm/recovery/psbt.d.ts +8 -31
  262. package/dist/esm/recovery/psbt.d.ts.map +1 -1
  263. package/dist/esm/recovery/psbt.js +14 -91
  264. package/dist/esm/transaction/descriptor/explainPsbt.d.ts +3 -3
  265. package/dist/esm/transaction/descriptor/explainPsbt.d.ts.map +1 -1
  266. package/dist/esm/transaction/descriptor/explainPsbt.js +14 -18
  267. package/dist/esm/transaction/descriptor/index.d.ts +1 -1
  268. package/dist/esm/transaction/descriptor/index.d.ts.map +1 -1
  269. package/dist/esm/transaction/descriptor/index.js +1 -1
  270. package/dist/esm/transaction/descriptor/parse.d.ts +6 -4
  271. package/dist/esm/transaction/descriptor/parse.d.ts.map +1 -1
  272. package/dist/esm/transaction/descriptor/parse.js +22 -15
  273. package/dist/esm/transaction/descriptor/signPsbt.d.ts +6 -7
  274. package/dist/esm/transaction/descriptor/signPsbt.d.ts.map +1 -1
  275. package/dist/esm/transaction/descriptor/signPsbt.js +19 -18
  276. package/dist/esm/transaction/descriptor/verifyTransaction.d.ts +4 -4
  277. package/dist/esm/transaction/descriptor/verifyTransaction.d.ts.map +1 -1
  278. package/dist/esm/transaction/descriptor/verifyTransaction.js +10 -5
  279. package/dist/esm/transaction/explainTransaction.d.ts +2 -1
  280. package/dist/esm/transaction/explainTransaction.d.ts.map +1 -1
  281. package/dist/esm/transaction/explainTransaction.js +3 -2
  282. package/dist/esm/transaction/fixedScript/SigningError.d.ts +5 -3
  283. package/dist/esm/transaction/fixedScript/SigningError.d.ts.map +1 -1
  284. package/dist/esm/transaction/fixedScript/SigningError.js +8 -1
  285. package/dist/esm/transaction/fixedScript/explainTransaction.d.ts +2 -1
  286. package/dist/esm/transaction/fixedScript/explainTransaction.d.ts.map +1 -1
  287. package/dist/esm/transaction/fixedScript/explainTransaction.js +1 -8
  288. package/dist/esm/transaction/fixedScript/parseOutput.d.ts.map +1 -1
  289. package/dist/esm/transaction/fixedScript/parseOutput.js +8 -12
  290. package/dist/esm/transaction/fixedScript/parseTransaction.d.ts +2 -2
  291. package/dist/esm/transaction/fixedScript/parseTransaction.d.ts.map +1 -1
  292. package/dist/esm/transaction/fixedScript/parseTransaction.js +36 -11
  293. package/dist/esm/transaction/fixedScript/signLegacyTransaction.d.ts +2 -2
  294. package/dist/esm/transaction/fixedScript/signLegacyTransaction.d.ts.map +1 -1
  295. package/dist/esm/transaction/fixedScript/signLegacyTransaction.js +4 -2
  296. package/dist/esm/transaction/fixedScript/signPsbtUtxolib.d.ts +1 -1
  297. package/dist/esm/transaction/fixedScript/signPsbtUtxolib.d.ts.map +1 -1
  298. package/dist/esm/transaction/fixedScript/signPsbtUtxolib.js +1 -1
  299. package/dist/esm/transaction/fixedScript/signPsbtWasm.d.ts +3 -2
  300. package/dist/esm/transaction/fixedScript/signPsbtWasm.d.ts.map +1 -1
  301. package/dist/esm/transaction/fixedScript/signPsbtWasm.js +14 -24
  302. package/dist/esm/transaction/fixedScript/signTransaction.d.ts +6 -5
  303. package/dist/esm/transaction/fixedScript/signTransaction.d.ts.map +1 -1
  304. package/dist/esm/transaction/fixedScript/signTransaction.js +10 -8
  305. package/dist/esm/transaction/outputDifference.d.ts +5 -1
  306. package/dist/esm/transaction/outputDifference.d.ts.map +1 -1
  307. package/dist/esm/transaction/outputDifference.js +5 -2
  308. package/dist/esm/transaction/recipient.d.ts +5 -0
  309. package/dist/esm/transaction/recipient.d.ts.map +1 -1
  310. package/dist/esm/transaction/recipient.js +13 -1
  311. package/dist/esm/transaction/signTransaction.d.ts.map +1 -1
  312. package/dist/esm/transaction/signTransaction.js +10 -10
  313. package/dist/esm/unspent.d.ts +55 -0
  314. package/dist/esm/unspent.d.ts.map +1 -0
  315. package/dist/esm/unspent.js +8 -0
  316. package/dist/esm/wasmUtil.d.ts +29 -0
  317. package/dist/esm/wasmUtil.d.ts.map +1 -0
  318. package/dist/esm/wasmUtil.js +47 -0
  319. package/package.json +13 -14
  320. package/dist/cjs/test/unit/impl/btc/unit/btc.d.ts +0 -2
  321. package/dist/cjs/test/unit/impl/btc/unit/btc.d.ts.map +0 -1
  322. package/dist/cjs/test/unit/impl/btc/unit/btc.js +0 -220
  323. package/dist/cjs/test/unit/impl/btc/unit/fixtures/btcBackupKey.d.ts +0 -4
  324. package/dist/cjs/test/unit/impl/btc/unit/fixtures/btcBackupKey.d.ts.map +0 -1
  325. package/dist/cjs/test/unit/impl/btc/unit/fixtures/btcBackupKey.js +0 -10
  326. package/dist/cjs/test/unit/impl/btc/unit/fixtures/index.d.ts +0 -2
  327. package/dist/cjs/test/unit/impl/btc/unit/fixtures/index.d.ts.map +0 -1
  328. package/dist/cjs/test/unit/impl/btc/unit/fixtures/index.js +0 -18
  329. package/dist/cjs/test/unit/impl/ltc/unit/index.d.ts +0 -2
  330. package/dist/cjs/test/unit/impl/ltc/unit/index.d.ts.map +0 -1
  331. package/dist/cjs/test/unit/impl/ltc/unit/index.js +0 -39
  332. package/dist/cjs/test/unit/transaction/descriptor/outputDifference.d.ts.map +0 -1
  333. package/dist/cjs/test/unit/transaction/descriptor/outputDifference.js +0 -76
  334. /package/dist/cjs/test/unit/transaction/{descriptor/outputDifference.d.ts → outputDifference.d.ts} +0 -0
@@ -1,76 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const assert_1 = __importDefault(require("assert"));
7
- const outputDifference_1 = require("../../../../src/transaction/outputDifference");
8
- describe('outputDifference', function () {
9
- function output(script, value) {
10
- const scriptBuffer = Buffer.from(script, 'hex');
11
- if (scriptBuffer.toString('hex') !== script) {
12
- throw new Error('invalid script');
13
- }
14
- return {
15
- script: Buffer.from(script, 'hex'),
16
- value: value === 'max' ? 'max' : BigInt(value),
17
- };
18
- }
19
- const a = output('aa', 1);
20
- const a2 = output('aa', 2);
21
- const aMax = output('aa', 'max');
22
- const b = output('bb', 1);
23
- const c = output('cc', 1);
24
- describe('equalOutput', function () {
25
- it('has expected result', function () {
26
- assert_1.default.deepStrictEqual((0, outputDifference_1.matchingOutput)(a, a), true);
27
- assert_1.default.deepStrictEqual((0, outputDifference_1.matchingOutput)(a, a2), false);
28
- assert_1.default.deepStrictEqual((0, outputDifference_1.matchingOutput)(a, b), false);
29
- assert_1.default.deepStrictEqual((0, outputDifference_1.matchingOutput)(aMax, b), false);
30
- assert_1.default.deepStrictEqual((0, outputDifference_1.matchingOutput)(aMax, a), true);
31
- assert_1.default.deepStrictEqual((0, outputDifference_1.matchingOutput)(a, aMax), true);
32
- // this one does not appear in practice but is a valid comparison
33
- assert_1.default.deepStrictEqual((0, outputDifference_1.matchingOutput)(aMax, aMax), true);
34
- });
35
- });
36
- describe('outputDifference', function () {
37
- it('has expected result', function () {
38
- assert_1.default.deepStrictEqual((0, outputDifference_1.outputDifference)([], []), []);
39
- assert_1.default.deepStrictEqual((0, outputDifference_1.outputDifference)([a], []), [a]);
40
- assert_1.default.deepStrictEqual((0, outputDifference_1.outputDifference)([aMax], []), [aMax]);
41
- assert_1.default.deepStrictEqual((0, outputDifference_1.outputDifference)([], [a]), []);
42
- assert_1.default.deepStrictEqual((0, outputDifference_1.outputDifference)([], [aMax]), []);
43
- assert_1.default.deepStrictEqual((0, outputDifference_1.outputDifference)([a], [a]), []);
44
- assert_1.default.deepStrictEqual((0, outputDifference_1.outputDifference)([a], [aMax]), []);
45
- assert_1.default.deepStrictEqual((0, outputDifference_1.outputDifference)([aMax], [a]), []);
46
- assert_1.default.deepStrictEqual((0, outputDifference_1.outputDifference)([a, a], [a]), [a]);
47
- assert_1.default.deepStrictEqual((0, outputDifference_1.outputDifference)([a, a], [aMax]), [a]);
48
- assert_1.default.deepStrictEqual((0, outputDifference_1.outputDifference)([a, a, a], [a]), [a, a]);
49
- assert_1.default.deepStrictEqual((0, outputDifference_1.outputDifference)([a, b, c], [a, b]), [c]);
50
- assert_1.default.deepStrictEqual((0, outputDifference_1.outputDifference)([a, b, c], [aMax, b]), [c]);
51
- assert_1.default.deepStrictEqual((0, outputDifference_1.outputDifference)([a, b, c, a], [a, b]), [c, a]);
52
- assert_1.default.deepStrictEqual((0, outputDifference_1.outputDifference)([a], [a2]), [a]);
53
- assert_1.default.deepStrictEqual((0, outputDifference_1.outputDifference)([a2], [a]), [a2]);
54
- });
55
- });
56
- describe('outputDifferencesWithExpected', function () {
57
- function test(outputs, recipients, expected) {
58
- const result = (0, outputDifference_1.outputDifferencesWithExpected)(outputs, recipients);
59
- assert_1.default.deepStrictEqual(result, {
60
- explicitOutputs: expected.explicit,
61
- implicitOutputs: expected.implicit,
62
- missingOutputs: expected.missing,
63
- });
64
- }
65
- it('has expected result', function () {
66
- test([a], [], { missing: [], explicit: [], implicit: [a] });
67
- test([], [a], { missing: [a], explicit: [], implicit: [] });
68
- test([a], [a], { missing: [], explicit: [a], implicit: [] });
69
- test([a], [a2], { missing: [a2], explicit: [], implicit: [a] });
70
- test([b], [a], { missing: [a], explicit: [], implicit: [b] });
71
- test([a, a], [a], { missing: [], explicit: [a], implicit: [a] });
72
- test([a, b], [a], { missing: [], explicit: [a], implicit: [b] });
73
- });
74
- });
75
- });
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3V0cHV0RGlmZmVyZW5jZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Rlc3QvdW5pdC90cmFuc2FjdGlvbi9kZXNjcmlwdG9yL291dHB1dERpZmZlcmVuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxvREFBNEI7QUFFNUIsbUZBTXNEO0FBRXRELFFBQVEsQ0FBQyxrQkFBa0IsRUFBRTtJQUczQixTQUFTLE1BQU0sQ0FBQyxNQUFjLEVBQUUsS0FBOEI7UUFDNUQsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDaEQsSUFBSSxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQzVDLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNwQyxDQUFDO1FBQ0QsT0FBTztZQUNMLE1BQU0sRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUM7WUFDbEMsS0FBSyxFQUFFLEtBQUssS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztTQUMvQyxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDMUIsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMzQixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDMUIsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUUxQixRQUFRLENBQUMsYUFBYSxFQUFFO1FBQ3RCLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRTtZQUN4QixnQkFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFBLGlDQUFjLEVBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ25ELGdCQUFNLENBQUMsZUFBZSxDQUFDLElBQUEsaUNBQWMsRUFBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDckQsZ0JBQU0sQ0FBQyxlQUFlLENBQUMsSUFBQSxpQ0FBYyxFQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNwRCxnQkFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFBLGlDQUFjLEVBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBRXZELGdCQUFNLENBQUMsZUFBZSxDQUFDLElBQUEsaUNBQWMsRUFBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDdEQsZ0JBQU0sQ0FBQyxlQUFlLENBQUMsSUFBQSxpQ0FBYyxFQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN0RCxpRUFBaUU7WUFDakUsZ0JBQU0sQ0FBQyxlQUFlLENBQUMsSUFBQSxpQ0FBYyxFQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMzRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLGtCQUFrQixFQUFFO1FBQzNCLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRTtZQUN4QixnQkFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFBLG1DQUFnQixFQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNyRCxnQkFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFBLG1DQUFnQixFQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3ZELGdCQUFNLENBQUMsZUFBZSxDQUFDLElBQUEsbUNBQWdCLEVBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDN0QsZ0JBQU0sQ0FBQyxlQUFlLENBQUMsSUFBQSxtQ0FBZ0IsRUFBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3RELGdCQUFNLENBQUMsZUFBZSxDQUFDLElBQUEsbUNBQWdCLEVBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN6RCxnQkFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFBLG1DQUFnQixFQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZELGdCQUFNLENBQUMsZUFBZSxDQUFDLElBQUEsbUNBQWdCLEVBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDMUQsZ0JBQU0sQ0FBQyxlQUFlLENBQUMsSUFBQSxtQ0FBZ0IsRUFBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMxRCxnQkFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFBLG1DQUFnQixFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0QsZ0JBQU0sQ0FBQyxlQUFlLENBQUMsSUFBQSxtQ0FBZ0IsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzlELGdCQUFNLENBQUMsZUFBZSxD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QyxDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDOUQsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNqRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ25FLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcblxuaW1wb3J0IHtcbiAgQWN0dWFsT3V0cHV0LFxuICBFeHBlY3RlZE91dHB1dCxcbiAgbWF0Y2hpbmdPdXRwdXQsXG4gIG91dHB1dERpZmZlcmVuY2UsXG4gIG91dHB1dERpZmZlcmVuY2VzV2l0aEV4cGVjdGVkLFxufSBmcm9tICcuLi8uLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vb3V0cHV0RGlmZmVyZW5jZSc7XG5cbmRlc2NyaWJlKCdvdXRwdXREaWZmZXJlbmNlJywgZnVuY3Rpb24gKCkge1xuICBmdW5jdGlvbiBvdXRwdXQoc2NyaXB0OiBzdHJpbmcsIHZhbHVlOiBiaWdpbnQgfCBudW1iZXIpOiBBY3R1YWxPdXRwdXQ7XG4gIGZ1bmN0aW9uIG91dHB1dChzY3JpcHQ6IHN0cmluZywgdmFsdWU6ICdtYXgnKTogRXhwZWN0ZWRPdXRwdXQ7XG4gIGZ1bmN0aW9uIG91dHB1dChzY3JpcHQ6IHN0cmluZywgdmFsdWU6IGJpZ2ludCB8IG51bWJlciB8ICdtYXgnKTogQWN0dWFsT3V0cHV0IHwgRXhwZWN0ZWRPdXRwdXQge1xuICAgIGNvbnN0IHNjcmlwdEJ1ZmZlciA9IEJ1ZmZlci5mcm9tKHNjcmlwdCwgJ2hleCcpO1xuICAgIGlmIChzY3JpcHRCdWZmZXIudG9TdHJpbmcoJ2hleCcpICE9PSBzY3JpcHQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignaW52YWxpZCBzY3JpcHQnKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIHNjcmlwdDogQnVmZmVyLmZyb20oc2NyaXB0LCAnaGV4JyksXG4gICAgICB2YWx1ZTogdmFsdWUgPT09ICdtYXgnID8gJ21heCcgOiBCaWdJbnQodmFsdWUpLFxuICAgIH07XG4gIH1cblxuICBjb25zdCBhID0gb3V0cHV0KCdhYScsIDEpO1xuICBjb25zdCBhMiA9IG91dHB1dCgnYWEnLCAyKTtcbiAgY29uc3QgYU1heCA9IG91dHB1dCgnYWEnLCAnbWF4Jyk7XG4gIGNvbnN0IGIgPSBvdXRwdXQoJ2JiJywgMSk7XG4gIGNvbnN0IGMgPSBvdXRwdXQoJ2NjJywgMSk7XG5cbiAgZGVzY3JpYmUoJ2VxdWFsT3V0cHV0JywgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdoYXMgZXhwZWN0ZWQgcmVzdWx0JywgZnVuY3Rpb24gKCkge1xuICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChtYXRjaGluZ091dHB1dChhLCBhKSwgdHJ1ZSk7XG4gICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG1hdGNoaW5nT3V0cHV0KGEsIGEyKSwgZmFsc2UpO1xuICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChtYXRjaGluZ091dHB1dChhLCBiKSwgZmFsc2UpO1xuICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChtYXRjaGluZ091dHB1dChhTWF4LCBiKSwgZmFsc2UpO1xuXG4gICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG1hdGNoaW5nT3V0cHV0KGFNYXgsIGEpLCB0cnVlKTtcbiAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwobWF0Y2hpbmdPdXRwdXQoYSwgYU1heCksIHRydWUpO1xuICAgICAgLy8gdGhpcyBvbmUgZG9lcyBub3QgYXBwZWFyIGluIHByYWN0aWNlIGJ1dCBpcyBhIHZhbGlkIGNvbXBhcmlzb25cbiAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwobWF0Y2hpbmdPdXRwdXQoYU1heCwgYU1heCksIHRydWUpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnb3V0cHV0RGlmZmVyZW5jZScsIGZ1bmN0aW9uICgpIHtcbiAgICBpdCgnaGFzIGV4cGVjdGVkIHJlc3VsdCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwob3V0cHV0RGlmZmVyZW5jZShbXSwgW10pLCBbXSk7XG4gICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG91dHB1dERpZmZlcmVuY2UoW2FdLCBbXSksIFthXSk7XG4gICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG91dHB1dERpZmZlcmVuY2UoW2FNYXhdLCBbXSksIFthTWF4XSk7XG4gICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG91dHB1dERpZmZlcmVuY2UoW10sIFthXSksIFtdKTtcbiAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwob3V0cHV0RGlmZmVyZW5jZShbXSwgW2FNYXhdKSwgW10pO1xuICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChvdXRwdXREaWZmZXJlbmNlKFthXSwgW2FdKSwgW10pO1xuICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChvdXRwdXREaWZmZXJlbmNlKFthXSwgW2FNYXhdKSwgW10pO1xuICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChvdXRwdXREaWZmZXJlbmNlKFthTWF4XSwgW2FdKSwgW10pO1xuICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChvdXRwdXREaWZmZXJlbmNlKFthLCBhXSwgW2FdKSwgW2FdKTtcbiAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwob3V0cHV0RGlmZmVyZW5jZShbYSwgYV0sIFthTWF4XSksIFthXSk7XG4gICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG91dHB1dERpZmZlcmVuY2UoW2EsIGEsIGFdLCBbYV0pLCBbYSwgYV0pO1xuICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChvdXRwdXREaWZmZXJlbmNlKFthLCBiLCBjXSwgW2EsIGJdKSwgW2NdKTtcbiAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwob3V0cHV0RGlmZmVyZW5jZShbYSwgYiwgY10sIFthTWF4LCBiXSksIFtjXSk7XG4gICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG91dHB1dERpZmZlcmVuY2UoW2EsIGIsIGMsIGFdLCBbYSwgYl0pLCBbYywgYV0pO1xuXG4gICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG91dHB1dERpZmZlcmVuY2UoW2FdLCBbYTJdKSwgW2FdKTtcbiAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwob3V0cHV0RGlmZmVyZW5jZShbYTJdLCBbYV0pLCBbYTJdKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ291dHB1dERpZmZlcmVuY2VzV2l0aEV4cGVjdGVkJywgZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIHRlc3QoXG4gICAgICBvdXRwdXRzOiBBY3R1YWxPdXRwdXRbXSxcbiAgICAgIHJlY2lwaWVudHM6IEV4cGVjdGVkT3V0cHV0W10sXG4gICAgICBleHBlY3RlZDoge1xuICAgICAgICBtaXNzaW5nOiBFeHBlY3RlZE91dHB1dFtdO1xuICAgICAgICBleHBsaWNpdDogQWN0dWFsT3V0cHV0W107XG4gICAgICAgIGltcGxpY2l0OiBBY3R1YWxPdXRwdXRbXTtcbiAgICAgIH1cbiAgICApIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IG91dHB1dERpZmZlcmVuY2VzV2l0aEV4cGVjdGVkKG91dHB1dHMsIHJlY2lwaWVudHMpO1xuICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChyZXN1bHQsIHtcbiAgICAgICAgZXhwbGljaXRPdXRwdXRzOiBleHBlY3RlZC5leHBsaWNpdCxcbiAgICAgICAgaW1wbGljaXRPdXRwdXRzOiBleHBlY3RlZC5pbXBsaWNpdCxcbiAgICAgICAgbWlzc2luZ091dHB1dHM6IGV4cGVjdGVkLm1pc3NpbmcsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpdCgnaGFzIGV4cGVjdGVkIHJlc3VsdCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHRlc3QoW2FdLCBbXSwgeyBtaXNzaW5nOiBbXSwgZXhwbGljaXQ6IFtdLCBpbXBsaWNpdDogW2FdIH0pO1xuICAgICAgdGVzdChbXSwgW2FdLCB7IG1pc3Npbmc6IFthXSwgZXhwbGljaXQ6IFtdLCBpbXBsaWNpdDogW10gfSk7XG4gICAgICB0ZXN0KFthXSwgW2FdLCB7IG1pc3Npbmc6IFtdLCBleHBsaWNpdDogW2FdLCBpbXBsaWNpdDogW10gfSk7XG4gICAgICB0ZXN0KFthXSwgW2EyXSwgeyBtaXNzaW5nOiBbYTJdLCBleHBsaWNpdDogW10sIGltcGxpY2l0OiBbYV0gfSk7XG4gICAgICB0ZXN0KFtiXSwgW2FdLCB7IG1pc3Npbmc6IFthXSwgZXhwbGljaXQ6IFtdLCBpbXBsaWNpdDogW2JdIH0pO1xuICAgICAgdGVzdChbYSwgYV0sIFthXSwgeyBtaXNzaW5nOiBbXSwgZXhwbGljaXQ6IFthXSwgaW1wbGljaXQ6IFthXSB9KTtcbiAgICAgIHRlc3QoW2EsIGJdLCBbYV0sIHsgbWlzc2luZzogW10sIGV4cGxpY2l0OiBbYV0sIGltcGxpY2l0OiBbYl0gfSk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=