@btc-vision/transaction 1.0.97 → 1.0.100

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 (373) hide show
  1. package/.babelrc +4 -7
  2. package/.prettierrc.json +11 -11
  3. package/CONTRIBUTING.md +71 -71
  4. package/LICENSE.md +62 -62
  5. package/README.md +76 -76
  6. package/browser/_version.d.ts +1 -1
  7. package/browser/bytecode/Compressor.d.ts +0 -1
  8. package/browser/crypto/crypto-browser.d.ts +1 -30
  9. package/browser/crypto/crypto.d.ts +0 -1
  10. package/browser/generators/AddressGenerator.d.ts +0 -1
  11. package/browser/generators/Generator.d.ts +2 -3
  12. package/browser/generators/builders/CalldataGenerator.d.ts +0 -1
  13. package/browser/generators/builders/CustomGenerator.d.ts +6 -0
  14. package/browser/generators/builders/DeploymentGenerator.d.ts +0 -1
  15. package/browser/generators/builders/MultiSignGenerator.d.ts +0 -1
  16. package/browser/index.js +1 -1
  17. package/browser/keypair/EcKeyPair.d.ts +0 -1
  18. package/browser/keypair/Wallet.d.ts +0 -1
  19. package/browser/opnet.d.ts +5 -3
  20. package/browser/signer/TweakedSigner.d.ts +0 -1
  21. package/browser/transaction/TransactionFactory.d.ts +2 -0
  22. package/browser/transaction/browser/BrowserSignerBase.d.ts +0 -1
  23. package/browser/transaction/browser/extensions/UnisatSigner.d.ts +0 -1
  24. package/{build/transaction/builders/DeploymentTransactionV2.d.ts → browser/transaction/builders/CustomScriptTransaction.d.ts} +16 -12
  25. package/browser/transaction/builders/DeploymentTransaction.d.ts +0 -1
  26. package/browser/transaction/builders/InteractionTransaction.d.ts +0 -1
  27. package/browser/transaction/builders/MultiSignTransaction.d.ts +0 -1
  28. package/browser/transaction/builders/SharedInteractionTransaction.d.ts +0 -1
  29. package/browser/transaction/builders/TransactionBuilder.d.ts +0 -1
  30. package/browser/transaction/builders/UnwrapSegwitTransaction.d.ts +0 -1
  31. package/browser/transaction/builders/UnwrapTransaction.d.ts +0 -1
  32. package/browser/transaction/builders/WrapTransaction.d.ts +0 -1
  33. package/browser/transaction/enums/TransactionType.d.ts +2 -1
  34. package/browser/transaction/interfaces/ITransactionParameters.d.ts +0 -1
  35. package/browser/transaction/interfaces/Tap.d.ts +0 -1
  36. package/browser/transaction/shared/P2TR_MS.d.ts +0 -1
  37. package/browser/transaction/shared/TweakedTransaction.d.ts +0 -1
  38. package/browser/utils/BitcoinUtils.d.ts +0 -1
  39. package/browser/verification/TapscriptVerificator.d.ts +0 -1
  40. package/browser/wbtc/WrappedGenerationParameters.d.ts +0 -1
  41. package/build/_version.d.ts +1 -1
  42. package/build/_version.js +1 -1
  43. package/build/bytecode/Compressor.d.ts +0 -1
  44. package/build/bytecode/Compressor.js +4 -4
  45. package/build/crypto/crypto.d.ts +0 -1
  46. package/build/generators/AddressGenerator.d.ts +0 -1
  47. package/build/generators/Generator.d.ts +2 -3
  48. package/build/generators/Generator.js +3 -5
  49. package/build/generators/builders/CalldataGenerator.d.ts +0 -1
  50. package/build/generators/builders/CalldataGenerator.js +2 -0
  51. package/build/generators/builders/CustomGenerator.d.ts +6 -0
  52. package/build/generators/builders/CustomGenerator.js +16 -0
  53. package/build/generators/builders/DeploymentGenerator.d.ts +0 -1
  54. package/build/generators/builders/DeploymentGenerator.js +2 -0
  55. package/build/generators/builders/{MultisignGenerator.d.ts → MultiSignGenerator.d.ts} +0 -1
  56. package/build/generators/builders/{MultisignGenerator.js → MultiSignGenerator.js} +1 -1
  57. package/build/keypair/EcKeyPair.d.ts +0 -1
  58. package/build/keypair/EcKeyPair.js +2 -2
  59. package/build/keypair/Wallet.d.ts +0 -1
  60. package/build/keypair/Wallet.js +0 -5
  61. package/build/metadata/ContractBaseMetadata.js +0 -1
  62. package/build/metadata/contracts/wBTC.js +3 -5
  63. package/build/metadata/tokens.js +32 -30
  64. package/build/opnet.d.ts +5 -3
  65. package/build/opnet.js +5 -3
  66. package/build/signer/TweakedSigner.d.ts +0 -1
  67. package/build/transaction/TransactionFactory.d.ts +2 -0
  68. package/build/transaction/TransactionFactory.js +42 -3
  69. package/build/transaction/browser/BrowserSignerBase.d.ts +0 -1
  70. package/build/transaction/browser/extensions/UnisatSigner.d.ts +0 -1
  71. package/build/transaction/browser/extensions/UnisatSigner.js +1 -6
  72. package/build/transaction/builders/CustomScriptTransaction.d.ts +40 -0
  73. package/build/transaction/builders/{DeploymentTransactionV2.js → CustomScriptTransaction.js} +40 -67
  74. package/build/transaction/builders/DeploymentTransaction.d.ts +0 -1
  75. package/build/transaction/builders/DeploymentTransaction.js +25 -33
  76. package/build/transaction/builders/FundingTransaction.js +1 -3
  77. package/build/transaction/builders/InteractionTransaction.d.ts +0 -1
  78. package/build/transaction/builders/InteractionTransaction.js +2 -5
  79. package/build/transaction/builders/MultiSignTransaction.d.ts +0 -1
  80. package/build/transaction/builders/MultiSignTransaction.js +66 -73
  81. package/build/transaction/builders/SharedInteractionTransaction.d.ts +0 -1
  82. package/build/transaction/builders/SharedInteractionTransaction.js +20 -25
  83. package/build/transaction/builders/TransactionBuilder.d.ts +0 -1
  84. package/build/transaction/builders/TransactionBuilder.js +12 -21
  85. package/build/transaction/builders/UnwrapSegwitTransaction.d.ts +0 -1
  86. package/build/transaction/builders/UnwrapSegwitTransaction.js +4 -10
  87. package/build/transaction/builders/UnwrapTransaction.d.ts +0 -1
  88. package/build/transaction/builders/UnwrapTransaction.js +5 -11
  89. package/build/transaction/builders/WrapTransaction.d.ts +0 -1
  90. package/build/transaction/builders/WrapTransaction.js +5 -12
  91. package/build/transaction/enums/TransactionType.d.ts +2 -1
  92. package/build/transaction/enums/TransactionType.js +1 -0
  93. package/build/transaction/interfaces/ITransactionParameters.d.ts +0 -1
  94. package/build/transaction/interfaces/Tap.d.ts +0 -1
  95. package/build/transaction/processor/PsbtTransaction.js +3 -4
  96. package/build/transaction/shared/P2TR_MS.d.ts +0 -1
  97. package/build/transaction/shared/TweakedTransaction.d.ts +0 -1
  98. package/build/transaction/shared/TweakedTransaction.js +11 -16
  99. package/build/utils/BitcoinUtils.d.ts +0 -1
  100. package/build/utxo/OPNetLimitedProvider.js +2 -3
  101. package/build/verification/TapscriptVerificator.d.ts +0 -1
  102. package/build/verification/TapscriptVerificator.js +1 -1
  103. package/build/wbtc/UnwrapGeneration.js +0 -2
  104. package/build/wbtc/WrappedGenerationParameters.d.ts +0 -1
  105. package/build/wbtc/WrappedGenerationParameters.js +0 -6
  106. package/cjs/package.json +3 -0
  107. package/gulpfile.js +49 -133
  108. package/package.json +112 -113
  109. package/src/_version.ts +1 -1
  110. package/src/bytecode/Compressor.ts +27 -27
  111. package/src/consensus/metadata/RoswellConsensus.ts +26 -26
  112. package/src/crypto/crypto.ts +1 -1
  113. package/src/generators/Generator.ts +75 -75
  114. package/src/generators/builders/CalldataGenerator.ts +2 -0
  115. package/src/generators/builders/CustomGenerator.ts +30 -0
  116. package/src/generators/builders/DeploymentGenerator.ts +2 -0
  117. package/src/generators/builders/MultiSignGenerator.ts +73 -73
  118. package/src/metadata/contracts/wBTC.ts +60 -60
  119. package/src/metadata/tokens.ts +135 -135
  120. package/src/network/ChainId.ts +6 -6
  121. package/src/opnet.ts +82 -82
  122. package/src/signer/TweakedSigner.ts +56 -56
  123. package/src/transaction/TransactionFactory.ts +72 -14
  124. package/src/transaction/builders/CustomScriptTransaction.ts +337 -0
  125. package/src/transaction/builders/DeploymentTransaction.ts +356 -356
  126. package/src/transaction/builders/MultiSignTransaction.ts +659 -659
  127. package/src/transaction/builders/UnwrapSegwitTransaction.ts +365 -365
  128. package/src/transaction/builders/UnwrapTransaction.ts +507 -507
  129. package/src/transaction/enums/TransactionType.ts +10 -9
  130. package/src/transaction/processor/PsbtTransaction.ts +173 -173
  131. package/src/transaction/shared/P2TR_MS.ts +42 -42
  132. package/src/transaction/shared/TweakedTransaction.ts +539 -539
  133. package/src/utils/BitcoinUtils.ts +96 -96
  134. package/tsconfig.base.json +27 -43
  135. package/tsconfig.json +15 -8
  136. package/tsconfig.webpack.json +22 -22
  137. package/EPOCH.md +0 -250
  138. package/VAULT_TARGET_CONSOLIDATION.md +0 -111
  139. package/browser/network/NetworkInformation.d.ts +0 -6
  140. package/browser/transaction/browser/BrowserSigner.d.ts +0 -9
  141. package/browser/transaction/builders/TapUnwarpTransaction.d.ts +0 -40
  142. package/browser/transaction/builders/UnwarpTransaction.d.ts +0 -34
  143. package/browser/utxo/UTXOManager.d.ts +0 -7
  144. package/build/Utils.d.ts +0 -0
  145. package/build/Utils.js +0 -1
  146. package/build/consensus/metadata/RoswsellConsensus.d.ts +0 -2
  147. package/build/consensus/metadata/RoswsellConsensus.js +0 -4
  148. package/build/contracts/ContractMetadataManager.d.ts +0 -0
  149. package/build/contracts/ContractMetadataManager.js +0 -1
  150. package/build/generators/OPNetAddressGenerator.d.ts +0 -0
  151. package/build/generators/OPNetAddressGenerator.js +0 -1
  152. package/build/generators/builders/DeploymentGeneratorV2.d.ts +0 -13
  153. package/build/generators/builders/DeploymentGeneratorV2.js +0 -57
  154. package/build/generators/builders/UnwrapGenerator.d.ts +0 -8
  155. package/build/generators/builders/UnwrapGenerator.js +0 -79
  156. package/build/keypair/interfaces/GeneratedWallet.d.ts +0 -5
  157. package/build/keypair/interfaces/GeneratedWallet.js +0 -1
  158. package/build/metadata/CommonContracts.d.ts +0 -6
  159. package/build/metadata/CommonContracts.js +0 -5
  160. package/build/metadata/ContractMetadataManager.d.ts +0 -1
  161. package/build/metadata/ContractMetadataManager.js +0 -9
  162. package/build/metadata/contracts/ContractBase.d.ts +0 -9
  163. package/build/metadata/contracts/ContractBase.js +0 -13
  164. package/build/metadata/contracts/ContractBaseMetadata.d.ts +0 -9
  165. package/build/metadata/contracts/ContractBaseMetadata.js +0 -13
  166. package/build/metadata/contracts/ContractMetadataManager.d.ts +0 -0
  167. package/build/metadata/contracts/ContractMetadataManager.js +0 -1
  168. package/build/network/NetworkConverter.d.ts +0 -0
  169. package/build/network/NetworkConverter.js +0 -14
  170. package/build/network/NetworkInformation.d.ts +0 -6
  171. package/build/network/NetworkInformation.js +0 -1
  172. package/build/scripts/Regtest.d.ts +0 -2
  173. package/build/scripts/Regtest.js +0 -15
  174. package/build/scripts/test.d.ts +0 -1
  175. package/build/scripts/test.js +0 -74
  176. package/build/signer/Regtest.d.ts +0 -2
  177. package/build/signer/Regtest.js +0 -15
  178. package/build/tests/Regtest.d.ts +0 -3
  179. package/build/tests/Regtest.js +0 -29
  180. package/build/tests/adaptPSBT.d.ts +0 -1
  181. package/build/tests/adaptPSBT.js +0 -44
  182. package/build/tests/btc/send.d.ts +0 -1
  183. package/build/tests/btc/send.js +0 -35
  184. package/build/tests/btc/transfer.d.ts +0 -1
  185. package/build/tests/btc/transfer.js +0 -35
  186. package/build/tests/createPairReg.d.ts +0 -1
  187. package/build/tests/createPairReg.js +0 -73
  188. package/build/tests/deploy/deployMoto.d.ts +0 -4
  189. package/build/tests/deploy/deployMoto.js +0 -89
  190. package/build/tests/deploy/deployPool.d.ts +0 -1
  191. package/build/tests/deploy/deployPool.js +0 -5
  192. package/build/tests/deploy/deployStep1.d.ts +0 -1
  193. package/build/tests/deploy/deployStep1.js +0 -5
  194. package/build/tests/deploy/deployStep2.d.ts +0 -1
  195. package/build/tests/deploy/deployStep2.js +0 -5
  196. package/build/tests/deploy/deployStep3.d.ts +0 -1
  197. package/build/tests/deploy/deployStep3.js +0 -5
  198. package/build/tests/deploy.d.ts +0 -1
  199. package/build/tests/deploy.js +0 -41
  200. package/build/tests/deployMotoRegStep1.d.ts +0 -1
  201. package/build/tests/deployMotoRegStep1.js +0 -85
  202. package/build/tests/deployReg.d.ts +0 -1
  203. package/build/tests/deployReg.js +0 -85
  204. package/build/tests/factory/createPairReg.d.ts +0 -1
  205. package/build/tests/factory/createPairReg.js +0 -13
  206. package/build/tests/gen.d.ts +0 -1
  207. package/build/tests/gen.js +0 -19
  208. package/build/tests/interaction.d.ts +0 -5
  209. package/build/tests/interaction.js +0 -62
  210. package/build/tests/massWrapReg.d.ts +0 -1
  211. package/build/tests/massWrapReg.js +0 -105
  212. package/build/tests/mineReg.d.ts +0 -1
  213. package/build/tests/mineReg.js +0 -19
  214. package/build/tests/moto/airdropToken.d.ts +0 -1
  215. package/build/tests/moto/airdropToken.js +0 -21
  216. package/build/tests/moto/airdropTokens.d.ts +0 -1
  217. package/build/tests/moto/airdropTokens.js +0 -60
  218. package/build/tests/moto/allowance.d.ts +0 -1
  219. package/build/tests/moto/allowance.js +0 -6
  220. package/build/tests/moto/approve.d.ts +0 -1
  221. package/build/tests/moto/approve.js +0 -10
  222. package/build/tests/moto/approveWBTC.d.ts +0 -1
  223. package/build/tests/moto/approveWBTC.js +0 -12
  224. package/build/tests/moto/balanceOf.d.ts +0 -1
  225. package/build/tests/moto/balanceOf.js +0 -12
  226. package/build/tests/moto/transfer.d.ts +0 -1
  227. package/build/tests/moto/transfer.js +0 -16
  228. package/build/tests/motoswap/airdropToken.d.ts +0 -11
  229. package/build/tests/motoswap/airdropToken.js +0 -36
  230. package/build/tests/motoswap/deployMoto.d.ts +0 -4
  231. package/build/tests/motoswap/deployMoto.js +0 -89
  232. package/build/tests/motoswap/deployMotoRegStep1.d.ts +0 -1
  233. package/build/tests/motoswap/deployMotoRegStep1.js +0 -91
  234. package/build/tests/motoswap/deployMotoRegStep2.d.ts +0 -1
  235. package/build/tests/motoswap/deployMotoRegStep2.js +0 -91
  236. package/build/tests/motoswap/deployPool.d.ts +0 -1
  237. package/build/tests/motoswap/deployPool.js +0 -5
  238. package/build/tests/motoswap/deployStep1.d.ts +0 -1
  239. package/build/tests/motoswap/deployStep1.js +0 -5
  240. package/build/tests/motoswap/deployStep2.d.ts +0 -1
  241. package/build/tests/motoswap/deployStep2.js +0 -5
  242. package/build/tests/motoswap/deployStep3.d.ts +0 -1
  243. package/build/tests/motoswap/deployStep3.js +0 -5
  244. package/build/tests/motoswap/interaction.d.ts +0 -3
  245. package/build/tests/motoswap/interaction.js +0 -63
  246. package/build/tests/motoswap/routerAddLiquidity.d.ts +0 -11
  247. package/build/tests/motoswap/routerAddLiquidity.js +0 -35
  248. package/build/tests/motoswap-router/addLiquidity.d.ts +0 -11
  249. package/build/tests/motoswap-router/addLiquidity.js +0 -36
  250. package/build/tests/motoswap-router/deployMoto.d.ts +0 -4
  251. package/build/tests/motoswap-router/deployMoto.js +0 -89
  252. package/build/tests/motoswap-router/deployPool.d.ts +0 -1
  253. package/build/tests/motoswap-router/deployPool.js +0 -5
  254. package/build/tests/motoswap-router/deployStep1.d.ts +0 -1
  255. package/build/tests/motoswap-router/deployStep1.js +0 -5
  256. package/build/tests/motoswap-router/deployStep2.d.ts +0 -1
  257. package/build/tests/motoswap-router/deployStep2.js +0 -5
  258. package/build/tests/motoswap-router/deployStep3.d.ts +0 -1
  259. package/build/tests/motoswap-router/deployStep3.js +0 -5
  260. package/build/tests/motoswap-router/getAmountsOut.d.ts +0 -5
  261. package/build/tests/motoswap-router/getAmountsOut.js +0 -34
  262. package/build/tests/motoswap-router/routerAddLiquidity.d.ts +0 -11
  263. package/build/tests/motoswap-router/routerAddLiquidity.js +0 -35
  264. package/build/tests/motoswap-router/swap.d.ts +0 -8
  265. package/build/tests/motoswap-router/swap.js +0 -24
  266. package/build/tests/multisign.d.ts +0 -1
  267. package/build/tests/multisign.js +0 -47
  268. package/build/tests/multisign2.d.ts +0 -1
  269. package/build/tests/multisign2.js +0 -27
  270. package/build/tests/pool/DecodePoolAddress.d.ts +0 -6
  271. package/build/tests/pool/DecodePoolAddress.js +0 -12
  272. package/build/tests/pool/decodeReserves.d.ts +0 -5
  273. package/build/tests/pool/decodeReserves.js +0 -13
  274. package/build/tests/pool/reserves.d.ts +0 -1
  275. package/build/tests/pool/reserves.js +0 -18
  276. package/build/tests/shared/Utils.d.ts +0 -2
  277. package/build/tests/shared/Utils.js +0 -14
  278. package/build/tests/shared/interaction.d.ts +0 -7
  279. package/build/tests/shared/interaction.js +0 -85
  280. package/build/tests/shared/tokens.d.ts +0 -6
  281. package/build/tests/shared/tokens.js +0 -5
  282. package/build/tests/stakeReg.d.ts +0 -1
  283. package/build/tests/stakeReg.js +0 -73
  284. package/build/tests/stakedReg.d.ts +0 -1
  285. package/build/tests/stakedReg.js +0 -28
  286. package/build/tests/test.d.ts +0 -1
  287. package/build/tests/test.js +0 -51
  288. package/build/tests/test2.d.ts +0 -1
  289. package/build/tests/test2.js +0 -73
  290. package/build/tests/testReg.d.ts +0 -1
  291. package/build/tests/testReg.js +0 -91
  292. package/build/tests/tokens.d.ts +0 -6
  293. package/build/tests/tokens.js +0 -5
  294. package/build/tests/totalRewardReg.d.ts +0 -1
  295. package/build/tests/totalRewardReg.js +0 -28
  296. package/build/tests/transfer.d.ts +0 -1
  297. package/build/tests/transfer.js +0 -74
  298. package/build/tests/transferReg.d.ts +0 -1
  299. package/build/tests/transferReg.js +0 -74
  300. package/build/tests/unStakeReg.d.ts +0 -1
  301. package/build/tests/unStakeReg.js +0 -72
  302. package/build/tests/unwrapReg.d.ts +0 -1
  303. package/build/tests/unwrapReg.js +0 -61
  304. package/build/tests/unwrapReg2.d.ts +0 -1
  305. package/build/tests/unwrapReg2.js +0 -56
  306. package/build/tests/unwrapRegSegwit.d.ts +0 -1
  307. package/build/tests/unwrapRegSegwit.js +0 -83
  308. package/build/tests/wbtc/approve.d.ts +0 -1
  309. package/build/tests/wbtc/approve.js +0 -6
  310. package/build/tests/wbtc/approveWBTC.d.ts +0 -1
  311. package/build/tests/wbtc/approveWBTC.js +0 -12
  312. package/build/tests/wbtc/massWrapReg.d.ts +0 -1
  313. package/build/tests/wbtc/massWrapReg.js +0 -105
  314. package/build/tests/wbtc/transfer.d.ts +0 -1
  315. package/build/tests/wbtc/transfer.js +0 -16
  316. package/build/tests/wbtc/transferReg.d.ts +0 -1
  317. package/build/tests/wbtc/transferReg.js +0 -16
  318. package/build/tests/wbtc/unStakeReg.d.ts +0 -1
  319. package/build/tests/wbtc/unStakeReg.js +0 -72
  320. package/build/tests/wbtc/unwrapReg.d.ts +0 -1
  321. package/build/tests/wbtc/unwrapReg.js +0 -60
  322. package/build/tests/wbtc/unwrapRegSegwit.d.ts +0 -1
  323. package/build/tests/wbtc/unwrapRegSegwit.js +0 -83
  324. package/build/tests/wbtc/withdrawalRequestReg.d.ts +0 -1
  325. package/build/tests/wbtc/withdrawalRequestReg.js +0 -71
  326. package/build/tests/wbtc/wrapReg.d.ts +0 -1
  327. package/build/tests/wbtc/wrapReg.js +0 -65
  328. package/build/tests/wbtc/wrapTest.d.ts +0 -1
  329. package/build/tests/wbtc/wrapTest.js +0 -66
  330. package/build/tests/withdrawalRequestReg.d.ts +0 -1
  331. package/build/tests/withdrawalRequestReg.js +0 -71
  332. package/build/tests/wrap.d.ts +0 -1
  333. package/build/tests/wrap.js +0 -65
  334. package/build/tests/wrapReg.d.ts +0 -1
  335. package/build/tests/wrapReg.js +0 -68
  336. package/build/tests/wrapTest.d.ts +0 -1
  337. package/build/tests/wrapTest.js +0 -66
  338. package/build/tests/wrapTestg.d.ts +0 -1
  339. package/build/tests/wrapTestg.js +0 -66
  340. package/build/tests/writers/allowance.d.ts +0 -3
  341. package/build/tests/writers/allowance.js +0 -10
  342. package/build/tests/writers/approve.d.ts +0 -4
  343. package/build/tests/writers/approve.js +0 -11
  344. package/build/transaction/TransactionBuilder.d.ts +0 -60
  345. package/build/transaction/TransactionBuilder.js +0 -244
  346. package/build/transaction/browser/BrowserSigner.d.ts +0 -11
  347. package/build/transaction/browser/BrowserSigner.js +0 -10
  348. package/build/transaction/browser/extensions/Unisat.d.ts +0 -54
  349. package/build/transaction/browser/extensions/Unisat.js +0 -11
  350. package/build/transaction/builders/GenericTransaction.d.ts +0 -11
  351. package/build/transaction/builders/GenericTransaction.js +0 -23
  352. package/build/transaction/builders/TapUnwarpTransaction.d.ts +0 -37
  353. package/build/transaction/builders/TapUnwarpTransaction.js +0 -201
  354. package/build/transaction/builders/UnwarpSegwitTransaction.d.ts +0 -34
  355. package/build/transaction/builders/UnwarpSegwitTransaction.js +0 -184
  356. package/build/transaction/builders/UnwarpTransaction.d.ts +0 -35
  357. package/build/transaction/builders/UnwarpTransaction.js +0 -199
  358. package/build/transaction/interfaces/ITransactions.d.ts +0 -32
  359. package/build/transaction/interfaces/ITransactions.js +0 -1
  360. package/build/utxo/IUTXO.d.ts +0 -0
  361. package/build/utxo/IUTXO.js +0 -1
  362. package/build/utxo/OPNetUtils.d.ts +0 -7
  363. package/build/utxo/OPNetUtils.js +0 -47
  364. package/build/utxo/UTXOManager.d.ts +0 -7
  365. package/build/utxo/UTXOManager.js +0 -47
  366. package/build/wbtc/BroadcastResponse.d.ts +0 -0
  367. package/build/wbtc/BroadcastResponse.js +0 -1
  368. package/examples/Deploy.md +0 -188
  369. package/examples/Unwrap.md +0 -165
  370. package/examples/Wrap.md +0 -194
  371. package/tsconfig.cjs.json +0 -13
  372. /package/build/generators/{features.d.ts → Features.d.ts} +0 -0
  373. /package/build/generators/{features.js → Features.js} +0 -0
@@ -1,111 +0,0 @@
1
- # Vault Target Consolidation Formula
2
-
3
- In this file you will find the explainations to the formula used to calculate the `VaultTargetConsolidationAmount` in a deterministic and fair manner for all requesters. The formula ensures that the minimum value is respected and adapts based on the amount requested by the user.
4
-
5
- ## Formula
6
-
7
- The formula for calculating the `VaultTargetConsolidationAmount` is as follows:
8
-
9
- $$
10
- \text{VaultTargetConsolidationAmount} = \max\left(\text{VaultNetworkConsolidationAcceptance}, \left(\text{VaultNetworkConsolidationAcceptance} + A \times \left(1 - e^{-k \cdot \left(\frac{x - \text{VaultMinimumAmount}}{\text{VaultMinimumAmount}}\right)}\right)\right)\right)
11
- $$
12
-
13
- ### Variables
14
-
15
- - **VaultMinimumAmount**: This represents the minimum amount that can be consolidated in a single transaction. It is defined in satoshis and is a constant in the formula.
16
-
17
- - **VaultNetworkConsolidationAcceptance**: This represents the minimum acceptance for joining UTXOs during an unwrap operation. If the consolidated output going back to the vault is lower than this amount, the transaction will be rejected. It ensures the network has fewer UTXOs and users must pay for the consolidation. It is also defined in satoshis and acts as a threshold in the formula.
18
-
19
- - **x**: This is the amount requested by the user for withdrawal, represented in satoshis.
20
-
21
- - **k**: This is a constant that determines the rate of increase in the formula. It controls how rapidly the target consolidation amount grows as the requested amount increases.
22
-
23
- - **A**: This is an adjustment constant that controls the maximum growth in the formula. It ensures that the target consolidation amount does not grow excessively.
24
-
25
- ### Explanations
26
-
27
- The formula ensures that the `VaultTargetConsolidationAmount` is always at least `VaultNetworkConsolidationAcceptance`.
28
-
29
- The inner part of the formula:
30
-
31
- $$
32
- \text{VaultNetworkConsolidationAcceptance} + A \times \left(1 - e^{-k \cdot \left(\frac{x - \text{VaultMinimumAmount}}{\text{VaultMinimumAmount}}\right)}\right)
33
- $$
34
-
35
- represents an exponential-like growth function that scales based on the amount requested by the user (`x`).
36
-
37
- Here’s a breakdown:
38
-
39
- 1. **Exponent Term**:
40
- This term calculates the scaled difference between the requested amount and the minimum amount. The division by `VaultMinimumAmount` normalizes the difference, ensuring that the growth rate is relative to the minimum amount.
41
-
42
- $$
43
- k \cdot \left( \frac{x - \text{VaultMinimumAmount}}{\text{VaultMinimumAmount}} \right)
44
- $$
45
-
46
- 2. **Exponential Part**:
47
- This part applies the exponential function to the scaled difference. The subtraction from 1 ensures that the result starts at 0 and approaches 1 as the requested amount increases.
48
-
49
- $$
50
- 1 - e^{-k \cdot \left(\frac{x - \text{VaultMinimumAmount}}{\text{VaultMinimumAmount}}\right)}
51
- $$
52
-
53
- 3. **Adjustment and Addition**:
54
- The exponential part is multiplied by the adjustment constant `A`, controlling the maximum impact on the target consolidation amount. This adjusted value is then added to `VaultNetworkConsolidationAcceptance`.
55
-
56
- $$
57
- A \times \left(1 - e^{-k \cdot \left(\frac{x - \text{VaultMinimumAmount}}{\text{VaultMinimumAmount}}\right)}\right)
58
- $$
59
-
60
- ### Deterministic Nature
61
-
62
- The formula is deterministic, meaning it will produce the same output for the same input values. This ensures consistency and fairness for all requesters.
63
-
64
- ### Implementation
65
-
66
- Example implementation of the formula:
67
-
68
- ```typescript
69
- function calculateVaultTargetConsolidationAmount(
70
- requestedAmount: bigint,
71
- VaultMinimumAmount: bigint,
72
- VaultNetworkConsolidationAcceptance: bigint,
73
- k: number,
74
- A: bigint
75
- ): bigint {
76
- // Ensure the requested amount is not less than the minimum amount
77
- if (requestedAmount < VaultMinimumAmount) {
78
- throw new Error('Requested amount is less than VaultMinimumAmount');
79
- }
80
-
81
- // Calculate the exponent term
82
- const exponentTerm = k * Number(requestedAmount - VaultMinimumAmount) / Number(VaultMinimumAmount);
83
-
84
- // Calculate the exponential part using BigInt for the result
85
- const exponentialPart = BigInt(Math.round(Number(A) * (1 - Math.exp(-exponentTerm))));
86
-
87
- // Calculate the target consolidation amount
88
- const targetAmount = VaultNetworkConsolidationAcceptance + exponentialPart;
89
-
90
- // Ensure the target amount is not less than the VaultNetworkConsolidationAcceptance
91
- return targetAmount < VaultNetworkConsolidationAcceptance
92
- ? VaultNetworkConsolidationAcceptance
93
- : targetAmount;
94
- }
95
-
96
- const vaultMinimumAmount = 200000n;
97
- const vaultNetworkConsolidationAcceptance = 400000n;
98
- const requestedAmount = 1000000n;
99
- const k = 0.03;
100
- const A = 1000000n;
101
-
102
- const result = calculateVaultTargetConsolidationAmount(
103
- requestedAmount,
104
- vaultMinimumAmount,
105
- vaultNetworkConsolidationAcceptance,
106
- k,
107
- A
108
- );
109
-
110
- console.log(result.toString());
111
- ```
@@ -1,6 +0,0 @@
1
- import { IWallet } from '../keypair/interfaces/IWallet.js';
2
- import { BlockchainConfig } from '@btc-vision/bsi-common';
3
- export interface NetworkInformation {
4
- readonly wallet: IWallet;
5
- readonly config: BlockchainConfig;
6
- }
@@ -1,9 +0,0 @@
1
- import { Psbt, Transaction } from 'bitcoinjs-lib';
2
- declare global {
3
- interface Window {
4
- unisat?: {};
5
- }
6
- }
7
- export declare class BrowserSigner {
8
- static signTransaction(transaction: Psbt): Promise<Transaction>;
9
- }
@@ -1,40 +0,0 @@
1
- /// <reference types="node" />
2
- import { Taptree } from 'bitcoinjs-lib/src/types.js';
3
- import { TransactionType } from '../enums/TransactionType.js';
4
- import { IUnwrapParameters } from '../interfaces/ITransactionParameters.js';
5
- import { SharedInteractionTransaction } from './SharedInteractionTransaction.js';
6
- import bitcoin, { Payment, Psbt } from 'bitcoinjs-lib';
7
- import { VaultUTXOs } from '../processor/PsbtTransaction.js';
8
- import { PsbtInput } from 'bip174/src/lib/interfaces.js';
9
- export declare class TapUnwrapTransaction extends SharedInteractionTransaction<TransactionType.WBTC_UNWRAP> {
10
- private static readonly UNWRAP_SELECTOR;
11
- type: TransactionType.WBTC_UNWRAP;
12
- readonly amount: bigint;
13
- protected readonly compiledTargetScript: Buffer;
14
- protected readonly scriptTree: Taptree;
15
- protected sighashTypes: number[];
16
- protected readonly contractSecret: Buffer;
17
- protected readonly vaultUTXOs: VaultUTXOs[];
18
- private readonly wbtc;
19
- private readonly calculatedSignHash;
20
- constructor(parameters: IUnwrapParameters);
21
- static generateBurnCalldata(amount: bigint): Buffer;
22
- signPSBT(): Psbt;
23
- mergeVaults(input: VaultUTXOs[]): void;
24
- protected calculateNumEmptyWitnesses(vault: VaultUTXOs[]): bigint;
25
- protected calculateNumSignatures(vault: VaultUTXOs[]): bigint;
26
- protected calculateNumInputs(vault: VaultUTXOs[]): bigint;
27
- protected internalPubKeyToXOnly(): Buffer;
28
- protected generateTapDataForInput(pubkeys: Buffer[], minimumSignatures: number): {
29
- internalPubkey: Buffer;
30
- network: bitcoin.Network;
31
- scriptTree: Taptree;
32
- redeem: Payment;
33
- };
34
- protected getScriptSolution(input: PsbtInput): Buffer[];
35
- protected internalBuildTransaction(transaction: Psbt): boolean;
36
- private addVaultUTXO;
37
- private addVaultInputs;
38
- private calculateOutputLeftAmountFromVaults;
39
- private getVaultTotalOutputAmount;
40
- }
@@ -1,34 +0,0 @@
1
- /// <reference types="node" />
2
- import { Taptree } from 'bitcoinjs-lib/src/types.js';
3
- import { TransactionType } from '../enums/TransactionType.js';
4
- import { IUnwrapParameters } from '../interfaces/ITransactionParameters.js';
5
- import { SharedInteractionTransaction } from './SharedInteractionTransaction.js';
6
- import { Psbt } from 'bitcoinjs-lib';
7
- import { VaultUTXOs } from '../processor/PsbtTransaction.js';
8
- export declare class UnwrapTransaction extends SharedInteractionTransaction<TransactionType.WBTC_UNWRAP> {
9
- static readonly MINIMUM_CONSOLIDATION_AMOUNT: bigint;
10
- private static readonly UNWRAP_SELECTOR;
11
- type: TransactionType.WBTC_UNWRAP;
12
- readonly amount: bigint;
13
- protected readonly compiledTargetScript: Buffer;
14
- protected readonly scriptTree: Taptree;
15
- protected sighashTypes: number[];
16
- protected readonly contractSecret: Buffer;
17
- protected readonly vaultUTXOs: VaultUTXOs[];
18
- private readonly wbtc;
19
- private readonly calculatedSignHash;
20
- constructor(parameters: IUnwrapParameters);
21
- static generateBurnCalldata(amount: bigint): Buffer;
22
- signPSBT(): Psbt;
23
- mergeVaults(input: VaultUTXOs[]): void;
24
- protected internalBuildTransaction(transaction: Psbt): boolean;
25
- protected generateMultiSignRedeemScript(publicKeys: string[], minimum: number): {
26
- witnessUtxo: Buffer;
27
- redeemScript: Buffer;
28
- witnessScript: Buffer;
29
- };
30
- private addVaultUTXO;
31
- private addVaultInputs;
32
- private calculateOutputLeftAmountFromVaults;
33
- private getVaultTotalOutputAmount;
34
- }
@@ -1,7 +0,0 @@
1
- import { FetchUTXOParams, UTXO } from './interfaces/IUTXO.js';
2
- export declare class UTXOManager {
3
- private readonly opnetAPIUrl;
4
- private readonly utxoPath;
5
- constructor(opnetAPIUrl: string);
6
- fetchUTXO(settings: FetchUTXOParams): Promise<UTXO[]>;
7
- }
package/build/Utils.d.ts DELETED
File without changes
package/build/Utils.js DELETED
@@ -1 +0,0 @@
1
- "use strict";
@@ -1,2 +0,0 @@
1
- import { ConsensusConfig } from '../ConsensusConfig.js';
2
- export declare const RoswsellConsensus: ConsensusConfig;
@@ -1,4 +0,0 @@
1
- import { Consensus } from '../Consensus.js';
2
- export const RoswsellConsensus = {
3
- consensus: Consensus.Roswell,
4
- };
File without changes
@@ -1 +0,0 @@
1
- "use strict";
File without changes
@@ -1 +0,0 @@
1
- "use strict";
@@ -1,13 +0,0 @@
1
- /// <reference types="node" />
2
- import { Network } from 'bitcoinjs-lib';
3
- import { Generator } from '../Generator.js';
4
- export declare class DeploymentGeneratorV2 extends Generator {
5
- static readonly DATA_CHUNK_SIZE: number;
6
- constructor(senderPubKey: Buffer, contractSaltPubKey: Buffer, network?: Network);
7
- compile(contractBytecode: Buffer, contractSalt: Buffer): {
8
- compiled: Buffer;
9
- chunks: Buffer[];
10
- };
11
- protected splitBufferIntoChunks(buffer: Buffer, chunkSize?: number): Array<Buffer[]>;
12
- private getAsm;
13
- }
@@ -1,57 +0,0 @@
1
- import { crypto, networks, opcodes, script } from 'bitcoinjs-lib';
2
- import { Generator } from '../Generator.js';
3
- export class DeploymentGeneratorV2 extends Generator {
4
- static DATA_CHUNK_SIZE = 80;
5
- constructor(senderPubKey, contractSaltPubKey, network = networks.bitcoin) {
6
- super(senderPubKey, contractSaltPubKey, network);
7
- }
8
- compile(contractBytecode, contractSalt) {
9
- const dataChunks = this.splitBufferIntoChunks(contractBytecode);
10
- const asm = this.getAsm(dataChunks, contractSalt);
11
- const compiled = script.compile(asm);
12
- const decompiled = script.decompile(compiled);
13
- if (!decompiled) {
14
- throw new Error('Failed to decompile script??');
15
- }
16
- return {
17
- compiled,
18
- chunks: dataChunks.flat(),
19
- };
20
- }
21
- splitBufferIntoChunks(buffer, chunkSize = DeploymentGeneratorV2.DATA_CHUNK_SIZE) {
22
- const chunks = [];
23
- for (let i = 0; i < buffer.length; i += chunkSize) {
24
- const dataLength = Math.min(chunkSize, buffer.length - i);
25
- const buf2 = Buffer.alloc(dataLength);
26
- for (let j = 0; j < dataLength; j++) {
27
- buf2.writeUInt8(buffer[i + j], j);
28
- }
29
- chunks.push([buf2]);
30
- }
31
- return chunks;
32
- }
33
- getAsm(dataChunks, contractSalt) {
34
- const partA = [
35
- this.senderPubKey,
36
- opcodes.OP_CHECKSIGVERIFY,
37
- this.contractSaltPubKey,
38
- opcodes.OP_CHECKSIGVERIFY,
39
- opcodes.OP_HASH160,
40
- crypto.hash160(this.senderPubKey),
41
- opcodes.OP_EQUALVERIFY,
42
- opcodes.OP_HASH256,
43
- crypto.hash256(contractSalt),
44
- opcodes.OP_EQUALVERIFY,
45
- ];
46
- let i = 1;
47
- for (const chunk of dataChunks) {
48
- if (i % 80 === 0 && i !== 0) {
49
- partA.push(...[opcodes.OP_SHA1, crypto.sha1(chunk[0]), opcodes.OP_EQUALVERIFY]);
50
- }
51
- partA.push(...[opcodes.OP_TOALTSTACK]);
52
- i++;
53
- }
54
- partA.push(...[opcodes.OP_1]);
55
- return partA.flat();
56
- }
57
- }
@@ -1,8 +0,0 @@
1
- /// <reference types="node" />
2
- import { Network } from 'bitcoinjs-lib';
3
- import { Generator } from '../Generator.js';
4
- export declare class CalldataGenerator extends Generator {
5
- constructor(senderPubKey: Buffer, contractSaltPubKey: Buffer, network?: Network);
6
- static getPubKeyAsBuffer(witnessKeys: Buffer[], network: Network): Buffer;
7
- compile(calldata: Buffer, contractSecret: Buffer, vaultPublicKeys?: Buffer[], minimumSignatures?: number): Buffer;
8
- }
@@ -1,79 +0,0 @@
1
- import { crypto, networks, opcodes, script } from 'bitcoinjs-lib';
2
- import { Compressor } from '../../bytecode/Compressor.js';
3
- import { Generator } from '../Generator.js';
4
- import { EcKeyPair } from '../../keypair/EcKeyPair.js';
5
- export class CalldataGenerator extends Generator {
6
- constructor(senderPubKey, contractSaltPubKey, network = networks.bitcoin) {
7
- super(senderPubKey, contractSaltPubKey, network);
8
- }
9
- static getPubKeyAsBuffer(witnessKeys, network) {
10
- let finalBuffer = Buffer.alloc(0);
11
- for (let pubKey of witnessKeys) {
12
- const key = EcKeyPair.fromPublicKey(pubKey, network);
13
- if (!key.compressed) {
14
- throw new Error('Public key must be compressed');
15
- }
16
- if (pubKey.byteLength !== 33) {
17
- throw new Error(`Public key must be 33 bytes, got ${pubKey.byteLength} bytes.`);
18
- }
19
- finalBuffer = Buffer.concat([finalBuffer, pubKey]);
20
- }
21
- const compressed = Compressor.compress(finalBuffer);
22
- if (compressed.byteLength >= finalBuffer.byteLength) {
23
- return finalBuffer;
24
- }
25
- return compressed;
26
- }
27
- compile(calldata, contractSecret, vaultPublicKeys = [], minimumSignatures = 0) {
28
- const dataChunks = this.splitBufferIntoChunks(calldata);
29
- if (!dataChunks.length)
30
- throw new Error('No data chunks found');
31
- let compiledData = [
32
- this.senderPubKey,
33
- opcodes.OP_CHECKSIGVERIFY,
34
- this.contractSaltPubKey,
35
- opcodes.OP_CHECKSIGVERIFY,
36
- opcodes.OP_HASH160,
37
- crypto.hash160(this.senderPubKey),
38
- opcodes.OP_EQUALVERIFY,
39
- opcodes.OP_HASH160,
40
- crypto.hash160(contractSecret),
41
- opcodes.OP_EQUALVERIFY,
42
- opcodes.OP_DEPTH,
43
- opcodes.OP_1,
44
- opcodes.OP_NUMEQUAL,
45
- opcodes.OP_IF,
46
- Generator.MAGIC,
47
- ];
48
- if (vaultPublicKeys.length > 0) {
49
- const pubKeyBuffer = CalldataGenerator.getPubKeyAsBuffer(vaultPublicKeys, this.network);
50
- const pubKeyDataChunks = this.splitBufferIntoChunks(pubKeyBuffer);
51
- compiledData = compiledData.concat(...[
52
- opcodes.OP_0,
53
- ...pubKeyDataChunks,
54
- ]);
55
- if (minimumSignatures) {
56
- if (minimumSignatures > 255) {
57
- throw new Error('Minimum signatures cannot exceed 255');
58
- }
59
- const minSigBuffer = Buffer.alloc(2);
60
- minSigBuffer.writeUint16LE(minimumSignatures, 0);
61
- compiledData = compiledData.concat(...[
62
- opcodes.OP_1,
63
- minSigBuffer,
64
- ]);
65
- }
66
- else {
67
- throw new Error('Minimum signatures must be provided');
68
- }
69
- }
70
- compiledData = compiledData.concat(...[opcodes.OP_1NEGATE, ...dataChunks, opcodes.OP_ELSE, opcodes.OP_1, opcodes.OP_ENDIF]);
71
- const asm = compiledData.flat();
72
- const compiled = script.compile(asm);
73
- const decompiled = script.decompile(compiled);
74
- if (!decompiled) {
75
- throw new Error('Failed to decompile script??');
76
- }
77
- return compiled;
78
- }
79
- }
@@ -1,5 +0,0 @@
1
- export interface GeneratedWallet {
2
- readonly address: string;
3
- readonly privateKey: string;
4
- readonly publicKey: string;
5
- }
@@ -1 +0,0 @@
1
- export {};
@@ -1,6 +0,0 @@
1
- import { Address } from '@btc-vision/bsi-binary';
2
- export declare const FACTORY_ADDRESS: Address;
3
- export declare const POOL_ADDRESS: Address;
4
- export declare const WBTC_ADDRESS: Address;
5
- export declare const MOTO_ADDRESS: Address;
6
- export declare const ROUTER_ADDRESS: Address;
@@ -1,5 +0,0 @@
1
- export const FACTORY_ADDRESS = 'bcrt1qz98txrd6csz0ljhp0v2rw8846k0zgn57uul8c9';
2
- export const POOL_ADDRESS = 'bcrt1qzwth3t3wdgy83tt9xegq7yww5dx0rhy3ezglg9';
3
- export const WBTC_ADDRESS = 'bcrt1q99qtptumw027cw8w274tqzd564q66u537vn0lh';
4
- export const MOTO_ADDRESS = 'bcrt1qwx9h2fvqlzx84t6jhxa424y7g2ynayt8p9rs38';
5
- export const ROUTER_ADDRESS = 'bcrt1qelqwcguvwkgr90w6u5f2q0a7gqlnq4w8rl26ht';
@@ -1 +0,0 @@
1
- export declare const ContractMetadataManager: {};
@@ -1,9 +0,0 @@
1
- export const ContractMetadataManager = new (class {
2
- contractsMetadata;
3
- }), {};
4
- getContractMetadata(contractName, string);
5
- any;
6
- {
7
- return {};
8
- }
9
- ();
@@ -1,9 +0,0 @@
1
- import { Address } from '@btc-vision/bsi-binary';
2
- import { Network } from 'bitcoinjs-lib';
3
- export declare abstract class ContractBase {
4
- protected network: Network;
5
- protected abstract readonly address: Address;
6
- protected constructor(network?: Network);
7
- static getAddress(network?: Network): string;
8
- getAddress(): Address;
9
- }
@@ -1,13 +0,0 @@
1
- import { networks } from 'bitcoinjs-lib';
2
- export class ContractBase {
3
- network;
4
- constructor(network = networks.bitcoin) {
5
- this.network = network;
6
- }
7
- static getAddress(network = networks.bitcoin) {
8
- throw new Error('Method not implemented.');
9
- }
10
- getAddress() {
11
- return this.address;
12
- }
13
- }
@@ -1,9 +0,0 @@
1
- import { Address } from '@btc-vision/bsi-binary';
2
- import { Network } from 'bitcoinjs-lib';
3
- export declare abstract class ContractBaseMetadata {
4
- protected network: Network;
5
- protected abstract readonly address: Address;
6
- protected constructor(network?: Network);
7
- static getAddress(network?: Network): Address;
8
- getAddress(): Address;
9
- }
@@ -1,13 +0,0 @@
1
- import { networks } from 'bitcoinjs-lib';
2
- export class ContractBaseMetadata {
3
- network;
4
- constructor(network = networks.bitcoin) {
5
- this.network = network;
6
- }
7
- static getAddress(network = networks.bitcoin) {
8
- throw new Error('Method not implemented.');
9
- }
10
- getAddress() {
11
- return this.address;
12
- }
13
- }
@@ -1 +0,0 @@
1
- "use strict";
File without changes
@@ -1,14 +0,0 @@
1
- export class NetworkConverter {
2
- static toBitcoinJSNetwork(network) {
3
- switch (network) {
4
- case OPNetNetwork.Mainnet:
5
- return networks.bitcoin;
6
- case OPNetNetwork.Testnet:
7
- return networks.testnet;
8
- case OPNetNetwork.Regtest:
9
- return networks.regtest;
10
- default:
11
- throw new Error(`Invalid network: ${network}`);
12
- }
13
- }
14
- }
@@ -1,6 +0,0 @@
1
- import { IWallet } from '../keypair/interfaces/IWallet.js';
2
- import { BlockchainConfig } from '@btc-vision/bsi-common';
3
- export interface NetworkInformation {
4
- readonly wallet: IWallet;
5
- readonly config: BlockchainConfig;
6
- }
@@ -1 +0,0 @@
1
- export {};
@@ -1,2 +0,0 @@
1
- import { NetworkInformation } from '../network/NetworkInformation.js';
2
- export declare const Regtest: NetworkInformation;
@@ -1,15 +0,0 @@
1
- import { BitcoinNetwork } from '@btc-vision/bsi-common';
2
- export const Regtest = {
3
- wallet: {
4
- address: 'bcrt1qfqsr3m7vjxheghcvw4ks0fryqxfq8qzjf8fxes',
5
- publicKey: '020373626d317ae8788ce3280b491068610d840c23ecb64c14075bbb9f670af52c',
6
- privateKey: 'cRCiYAgCBrU7hSaJBRuPqKVYXQqM5CKXbMfWHb25X4FDAWJ8Ai92',
7
- },
8
- config: {
9
- BITCOIND_NETWORK: BitcoinNetwork.Regtest,
10
- BITCOIND_HOST: '51.81.67.34',
11
- BITCOIND_PORT: 9242,
12
- BITCOIND_USERNAME: 'HJSiowseujhs',
13
- BITCOIND_PASSWORD: 'YHEFHSDJ23JOIhjjef2ied9u290efu2930u90U',
14
- },
15
- };
@@ -1 +0,0 @@
1
- export {};
@@ -1,74 +0,0 @@
1
- import { wBTC } from '../metadata/contracts/wBTC.js';
2
- import { Wallet } from '../keypair/Wallet.js';
3
- import { Regtest } from './Regtest.js';
4
- import { UTXOManager } from '../utxo/UTXOManager.js';
5
- import { networks } from 'bitcoinjs-lib';
6
- import { TransactionFactory } from '../transaction/TransactionFactory.js';
7
- import { BitcoinRPC } from '@btc-vision/bsi-bitcoin-rpc';
8
- import { ABICoder, BinaryWriter } from '@btc-vision/bsi-binary';
9
- const network = networks.regtest;
10
- const rpc = new BitcoinRPC();
11
- const wBtc = new wBTC(network);
12
- const wallet = new Wallet(Regtest.wallet, network);
13
- const utxoManager = new UTXOManager('http://localhost:9001');
14
- const factory = new TransactionFactory();
15
- const abiCoder = new ABICoder();
16
- const transferSelector = Number(`0x` + abiCoder.encodeSelector('transfer'));
17
- function getTransferToCalldata(to, amount) {
18
- const addCalldata = new BinaryWriter();
19
- addCalldata.writeSelector(transferSelector);
20
- addCalldata.writeAddress(to);
21
- addCalldata.writeU256(amount);
22
- return Buffer.from(addCalldata.getBuffer());
23
- }
24
- const shouldMineBlock = true;
25
- async function mineBlock() {
26
- const ok = await rpc.generateToAddress(1, wallet.p2wpkh, 'default');
27
- if (!ok) {
28
- throw new Error('Could not mine block');
29
- }
30
- console.log(`Mined block`, ok);
31
- return !!ok.length;
32
- }
33
- (async () => {
34
- await rpc.init(Regtest.config);
35
- const utxoSetting = {
36
- address: wallet.p2wpkh,
37
- minAmount: 10000n,
38
- requestedAmount: 100000n,
39
- };
40
- const utxos = await utxoManager.fetchUTXO(utxoSetting);
41
- console.log(`UTXOs:`, utxos);
42
- if (!utxos) {
43
- throw new Error('No UTXOs found');
44
- }
45
- const calldata = getTransferToCalldata(wBtc.getAddress(), 5000000n);
46
- const interactionParameters = {
47
- from: wallet.p2wpkh,
48
- to: wBtc.getAddress(),
49
- utxos: utxos,
50
- signer: wallet.keypair,
51
- network: network,
52
- feeRate: 150,
53
- priorityFee: 50000n,
54
- calldata: calldata,
55
- };
56
- const finalTx = factory.signInteraction(interactionParameters);
57
- const firstTxBroadcast = await rpc.sendRawTransaction({
58
- hexstring: finalTx[0],
59
- });
60
- console.log(`First transaction broadcasted: ${firstTxBroadcast}`);
61
- if (!firstTxBroadcast) {
62
- throw new Error('Could not broadcast first transaction');
63
- }
64
- const secondTxBroadcast = await rpc.sendRawTransaction({
65
- hexstring: finalTx[1],
66
- });
67
- console.log(`Second transaction broadcasted: ${secondTxBroadcast}`);
68
- if (!secondTxBroadcast) {
69
- throw new Error('Could not broadcast second transaction');
70
- }
71
- if (shouldMineBlock) {
72
- await mineBlock();
73
- }
74
- })();
@@ -1,2 +0,0 @@
1
- import { NetworkInformation } from '../../src/network/NetworkInformation.js';
2
- export declare const Regtest: NetworkInformation;
@@ -1,15 +0,0 @@
1
- import { networks } from 'bitcoinjs-lib';
2
- export const Regtest = {
3
- wallet: {
4
- address: 'bcrt1qfqsr3m7vjxheghcvw4ks0fryqxfq8qzjf8fxes',
5
- publicKey: '020373626d317ae8788ce3280b491068610d840c23ecb64c14075bbb9f670af52c',
6
- privateKey: 'cRCiYAgCBrU7hSaJBRuPqKVYXQqM5CKXbMfWHb25X4FDAWJ8Ai92',
7
- },
8
- config: {
9
- BITCOIND_NETWORK: networks.regtest,
10
- BITCOIND_HOST: '51.81.67.34',
11
- BITCOIND_PORT: 9242,
12
- BITCOIND_USERNAME: 'HJSiowseujhs',
13
- BITCOIND_PASSWORD: 'YHEFHSDJ23JOIhjjef2ied9u290efu2930u90U',
14
- },
15
- };
@@ -1,3 +0,0 @@
1
- import { NetworkInformation } from '../network/NetworkInformation.js';
2
- export declare const Regtest: NetworkInformation;
3
- export declare const Testnet: NetworkInformation;