@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,188 +0,0 @@
1
- # Deploying a Smart Contract on OPNet
2
-
3
- WARNING: POSSIBLY OUTDATED
4
-
5
- This guide will walk you through the process of deploying a smart contract on the OPNet protocol. OPNet allows for the
6
- execution of smart contracts on the Bitcoin network, leveraging the security and stability of Bitcoin.
7
-
8
- ## Prerequisites
9
-
10
- - Node.js and npm installed
11
- - Bitcoin regtest wallet
12
- - Access to an OPNet node
13
- - Bitcoin RPC configured for regtest
14
- - Contract bytecode in WebAssembly format
15
-
16
- ## Setup
17
-
18
- First, ensure you have the necessary dependencies installed in your project:
19
-
20
- ```sh
21
- npm i
22
- ```
23
-
24
- ## Step-by-Step Guide
25
-
26
- ### 1. Import Required Libraries
27
-
28
- ```typescript
29
- import { Wallet } from '../keypair/Wallet.js';
30
- import { OPNetLimitedProvider } from '../utxo/OPNetLimitedProvider.js';
31
- import { networks, Network } from 'bitcoinjs-lib';
32
- import { TransactionFactory } from '../transaction/TransactionFactory.js';
33
- import { BitcoinRPC } from '@btc-vision/bsi-bitcoin-rpc';
34
- import { IDeploymentParameters } from '../transaction/interfaces/ITransactionParameters.js';
35
- import { FetchUTXOParams, UTXO } from '../utxo/interfaces/IUTXO.js';
36
- import * as fs from 'fs';
37
- ```
38
-
39
- ### Setting Up configurations
40
-
41
- We must provide the necessary configurations for the network, wallet, and RPC connection:
42
-
43
- - The opnetNode variable is the URL of the OP_NET node.
44
- - The Testnet variable contains the wallet address, public key, and private key.
45
- - The config variable inside the testnet object contains the network, host, port, username, and password for the RPC
46
- connection.
47
-
48
- ```typescript
49
- const network: Network = networks.testnet;
50
- const opnetNode: string = 'https://testnet.opnet.org';
51
- const Testnet: NetworkInformation = {
52
- wallet: {
53
- address: '', // as BECH32
54
- publicKey: '', // as HEX
55
- privateKey: '', // as WIF
56
- },
57
-
58
- config: {
59
- BITCOIND_NETWORK: BitcoinNetwork.TestNet, // Bitcoin network
60
- BITCOIND_HOST: '', // Bitcoin RPC host
61
- BITCOIND_PORT: 9242, // Bitcoin RPC port
62
-
63
- BITCOIND_USERNAME: '', // Bitcoin RPC username
64
- BITCOIND_PASSWORD: '', // Bitcoin RPC password
65
- },
66
- };
67
- ```
68
-
69
- ### 2. Initialize Network and RPC
70
-
71
- ```typescript
72
- const rpc: BitcoinRPC = new BitcoinRPC();
73
- const wallet: Wallet = new Wallet(Testnet.wallet, network);
74
- ```
75
-
76
- ### 3. Connect to OPNet
77
-
78
- ```typescript
79
- const utxoManager: OPNetLimitedProvider = new OPNetLimitedProvider(opnetNode);
80
- const factory: TransactionFactory = new TransactionFactory();
81
- ```
82
-
83
- ### 4. Mining a Block (Optional)
84
-
85
- If you are using a regtest or need to mine a block to proceed:
86
-
87
- ```typescript
88
- const shouldMineBlock: boolean = true;
89
-
90
- async function mineBlock(): Promise<boolean> {
91
- const ok = await rpc.generateToAddress(1, wallet.p2wpkh, 'default');
92
- if (!ok) {
93
- throw new Error('Could not mine block');
94
- }
95
- console.log(`Mined block`, ok);
96
- return !!ok.length;
97
- }
98
- ```
99
-
100
- ### 5. Initialize RPC with Testnet Configuration
101
-
102
- ```typescript
103
- await rpc.init(Testnet.config);
104
- ```
105
-
106
- ### 6. Define UTXO Settings and Fetch UTXOs
107
-
108
- ```typescript
109
- const utxoSetting: FetchUTXOParams = {
110
- address: wallet.p2wpkh,
111
- minAmount: 10000n,
112
- requestedAmount: 100000n,
113
- };
114
-
115
- const utxos: UTXO[] = await utxoManager.fetchUTXO(utxoSetting);
116
- if (!utxos) {
117
- throw new Error('No UTXOs found');
118
- }
119
- ```
120
-
121
- ### 7. Read Contract Bytecode
122
-
123
- ```typescript
124
- const bytecode = fs.readFileSync('./bytecode/contract.wasm');
125
- ```
126
-
127
- ### 8. Create Deployment Parameters and Finalize Transaction
128
-
129
- Let's create the deployment parameters and finalize the transaction:
130
-
131
- ```typescript
132
- const deploymentParameters: IDeploymentParameters = {
133
- from: wallet.p2wpkh,
134
- utxos: utxos,
135
- signer: wallet.keypair,
136
- network: network,
137
- feeRate: 150,
138
- priorityFee: 50000n,
139
- bytecode: bytecode,
140
- };
141
-
142
- const finalTx = factory.signDeployment(deploymentParameters);
143
- console.log(`Final transaction:`, finalTx);
144
- ```
145
-
146
- ### 9. Broadcast the Transactions
147
-
148
- Broadcast the transactions to the network:
149
-
150
- ```typescript
151
- const firstTxBroadcast = await rpc.sendRawTransaction({
152
- hexstring: finalTx.transaction[0],
153
- });
154
-
155
- console.log(`First transaction broadcasted: ${firstTxBroadcast}`);
156
-
157
- if (!firstTxBroadcast) {
158
- throw new Error('Could not broadcast first transaction');
159
- }
160
-
161
- const secondTxBroadcast = await rpc.sendRawTransaction({
162
- hexstring: finalTx.transaction[1],
163
- });
164
-
165
- console.log(`Second transaction broadcasted: ${secondTxBroadcast}`);
166
-
167
- if (!secondTxBroadcast) {
168
- throw new Error('Could not broadcast second transaction');
169
- }
170
- ```
171
-
172
- ### 10. (Optional) Mine a Block
173
-
174
- If you need to mine a block after broadcasting the transactions:
175
-
176
- ```typescript
177
- if (shouldMineBlock) {
178
- await mineBlock();
179
- }
180
- ```
181
-
182
- ## Conclusion
183
-
184
- You have now successfully deployed a smart contract on the OPNet protocol. This contract can interact with the Bitcoin
185
- network, enabling complex functionalities and decentralized applications.
186
-
187
- For any further questions or issues, please refer to the official documentation or reach out to the community for
188
- support.
@@ -1,165 +0,0 @@
1
- # Unwrapping wBTC Guide
2
-
3
- WARNING: POSSIBLY OUTDATED
4
-
5
- This guide will walk you through the process of unwrapping wBTC (Wrapped Bitcoin) using the OPNet protocol. Unwrapping
6
- wBTC converts it back into regular Bitcoin, enabling you to use it directly on the Bitcoin network.
7
-
8
- ## What is Unwrapping?
9
-
10
- Unwrapping wBTC involves converting your wrapped tokens back into Bitcoin. This process ensures that the wBTC you hold
11
- is exchanged for an equivalent amount of Bitcoin, maintaining a 1:1 ratio. This allows you to move seamlessly between
12
- using Bitcoin in decentralized applications and holding it in its original form.
13
-
14
- ## Preview
15
-
16
- You can check your wBTC balance at any time via [wbtc.opnet.org](https://wbtc.opnet.org).
17
-
18
- ## Prerequisites
19
-
20
- - Node.js and npm installed
21
- - Bitcoin testnet wallet
22
- - Access to an OPNet node
23
- - Bitcoin RPC configured for testnet
24
-
25
- ## Setup
26
-
27
- First, ensure you have the necessary dependencies installed in your project:
28
-
29
- ```sh
30
- npm i
31
- ```
32
-
33
- ## Step-by-Step Guide
34
-
35
- ### 1. Import Required Libraries
36
-
37
- ```typescript
38
- import { Wallet } from '../keypair/Wallet.js';
39
- import { OPNetLimitedProvider } from '../utxo/OPNetLimitedProvider.js';
40
- import { networks, Network } from 'bitcoinjs-lib';
41
- import { TransactionFactory } from '../transaction/TransactionFactory.js';
42
- import { IUnwrapParameters } from '../transaction/interfaces/ITransactionParameters.js';
43
- import { FetchUTXOParams, UTXO } from '../utxo/interfaces/IUTXO.js';
44
- import { UnwrapTransaction } from '../transaction/UnwrapTransaction.js';
45
- ```
46
-
47
- ### Setting Up Configurations
48
-
49
- We must provide the necessary configurations for the network and wallet:
50
-
51
- - The opnetNode variable is the URL of the OPNet node.
52
- - The Testnet variable contains the wallet address, public key, and private key.
53
-
54
- ```typescript
55
- const network: Network = networks.testnet;
56
- const opnetNode: string = 'https://testnet.opnet.org';
57
- ```
58
-
59
- ### 2. Load Wallet
60
-
61
- ```typescript
62
- const wallet: Wallet = new Wallet(Testnet.wallet, network);
63
- ```
64
-
65
- ### 3. Connect to OPNet
66
-
67
- ```typescript
68
- const opnet: OPNetLimitedProvider = new OPNetLimitedProvider(opnetNode);
69
- const factory: TransactionFactory = new TransactionFactory();
70
- ```
71
-
72
- ### 4. Initialize RPC with Testnet Configuration
73
-
74
- ```typescript
75
- await rpc.init(Testnet.config);
76
- ```
77
-
78
- ### 5. Define Unwrap Amount and Fetch UTXOs
79
-
80
- We must define the amount to unwrap and fetch the UTXOs required for the transaction. Each OPNet vaults have UTXOs. We
81
- need to fetch these UTXOs to unwrap the wBTC. We request an opnet node for the most optimized UTXOs to unwrap the wBTC.
82
- If the UTXOs used to unwrap the wBTC do not follow the OPNet consensus rules, the unwrapping request will be denied.
83
-
84
- ```typescript
85
- const unwrapAmount: bigint = UnwrapTransaction.MINIMUM_CONSOLIDATION_AMOUNT; // Minimum amount to unwrap
86
- const unwrapUtxos = await opnet.fetchUnWrapParameters(unwrapAmount, wallet.p2tr);
87
- if (!unwrapUtxos) {
88
- throw new Error('No vault UTXOs or something went wrong. Please try again.');
89
- }
90
-
91
- const utxoSetting: FetchUTXOParams = {
92
- address: wallet.p2wpkh,
93
- minAmount: 10000n,
94
- requestedAmount: unwrapAmount,
95
- };
96
-
97
- const utxos: UTXO[] = await opnet.fetchUTXO(utxoSetting);
98
- if (!utxos) {
99
- throw new Error('No UTXOs found');
100
- }
101
- ```
102
-
103
- ### 6. Create Unwrap Parameters and Finalize Transaction
104
-
105
- Now, we will create the unwrap parameters and finalize the transaction using the TransactionFactory.
106
-
107
- ```typescript
108
- const unwrapParameters: IUnwrapParameters = {
109
- from: wallet.p2tr, // Address to unwrap
110
- utxos: utxos, // User UTXOs to spend
111
- unwrapUTXOs: unwrapUtxos.vaultUTXOs, // Vault UTXOs to unwrap
112
- signer: wallet.keypair, // Signer
113
- network: network, // Bitcoin network
114
- feeRate: 100, // Fee rate in satoshis per byte (bitcoin fee)
115
- priorityFee: 10000n, // OPNet priority fee (incl gas.)
116
- amount: unwrapAmount, // Amount to unwrap
117
- };
118
-
119
- try {
120
- const finalTx = await factory.unwrap(unwrapParameters);
121
- console.log(`Due to bitcoin fees, you will lose ${finalTx.unwrapFeeLoss} satoshis by unwrapping. Do you want to proceed?`);
122
- console.log(`Final transaction:`, finalTx);
123
- } catch (e) {
124
- console.error(`Something went wrong:`, e);
125
- }
126
- ```
127
-
128
- ### 7. Broadcast the Transactions
129
-
130
- To broadcast the transactions, we will send the raw transactions to the network.
131
-
132
- ```typescript
133
- try {
134
- // If this transaction is missing, opnet will deny the unwrapping request.
135
- const fundingTransaction = await opnet.broadcastTransaction(finalTx.fundingTransaction, false);
136
- console.log(`Broadcasted:`, fundingTransaction);
137
-
138
- // This transaction is partially signed. You can not submit it to the Bitcoin network. It must pass via the OPNet network.
139
- const unwrapTransaction = await opnet.broadcastTransaction(finalTx.psbt, true);
140
- console.log(`Broadcasted:`, unwrapTransaction);
141
- } catch (e) {
142
- console.error(`Error:`, e);
143
- }
144
- ```
145
-
146
- ### 8. Mining a Block (Optional, for Regtest)
147
-
148
- If you are using a regtest or need to mine a block to proceed:
149
-
150
- ```typescript
151
- const shouldMineBlock: boolean = true;
152
-
153
- async function mineBlock(): Promise<boolean> {
154
- const ok = await rpc.generateToAddress(1, wallet.p2wpkh, 'default');
155
- if (!ok) {
156
- throw new Error('Could not mine block');
157
- }
158
- console.log(`Mined block`, ok);
159
- return !!ok.length;
160
- }
161
- ```
162
-
163
- ## Conclusion
164
-
165
- You have now successfully unwrapped wBTC into Bitcoin using OPNet!
package/examples/Wrap.md DELETED
@@ -1,194 +0,0 @@
1
- # Wrapping Bitcoin (wBTC) Guide
2
-
3
- WARNING: POSSIBLY OUTDATED
4
-
5
- This guide will walk you through the process of wrapping Bitcoin (wBTC) using the OPNet protocol. Wrapping Bitcoin
6
- allows you to use Bitcoin in smart contracts, similar to how ERC-20 tokens are used on Ethereum.
7
-
8
- ## What is wBTC?
9
-
10
- wBTC (Wrapped Bitcoin) is an OP_0 token backed 1:1 with Bitcoin. It enables Bitcoin holders
11
- to participate in decentralized finance (DeFi) applications, offering greater liquidity and integration within the
12
- Bitcoin ecosystem. By wrapping Bitcoin, users can leverage their BTC in a broader range of financial services while
13
- retaining the value and stability of Bitcoin.
14
-
15
- ## Preview
16
-
17
- You can check your wBTC balance at anytime via [wbtc.opnet.org](https://wbtc.opnet.org).
18
-
19
- ## Prerequisites
20
-
21
- - Node.js and npm installed
22
- - Bitcoin testnet wallet
23
- - Access to an OPNet node
24
- - Bitcoin RPC configured for testnet
25
-
26
- ## Setup
27
-
28
- First, ensure you have the necessary dependencies installed in your project:
29
-
30
- ```sh
31
- npm i
32
- ```
33
-
34
- ## Step-by-Step Guide
35
-
36
- ### 1. Import Required Libraries
37
-
38
- ```typescript
39
- import { Wallet } from '../keypair/Wallet.js';
40
- import { OPNetLimitedProvider } from '../utxo/OPNetLimitedProvider.js';
41
- import { networks, Network } from 'bitcoinjs-lib';
42
- import { TransactionFactory } from '../transaction/TransactionFactory.js';
43
- import { BitcoinRPC } from '@btc-vision/bsi-bitcoin-rpc';
44
- import { IWrapParameters } from '../transaction/interfaces/ITransactionParameters.js';
45
- import { FetchUTXOParams, UTXO } from '../utxo/interfaces/IUTXO.js';
46
- ```
47
-
48
- ### Setting Up configurations
49
-
50
- We must provide the necessary configurations for the network, wallet, and RPC connection:
51
-
52
- - The opnetNode variable is the URL of the OP_NET node.
53
- - The Testnet variable contains the wallet address, public key, and private key.
54
- - The config variable inside the testnet object contains the network, host, port, username, and password for the RPC
55
- connection.
56
-
57
- ```typescript
58
- const network: Network = networks.testnet;
59
- const opnetNode: string = 'https://testnet.opnet.org';
60
- const Testnet: NetworkInformation = {
61
- wallet: {
62
- address: '', // as BECH32
63
- publicKey: '', // as HEX
64
- privateKey: '', // as WIF
65
- },
66
-
67
- config: {
68
- BITCOIND_NETWORK: BitcoinNetwork.TestNet, // Bitcoin network
69
- BITCOIND_HOST: '', // Bitcoin RPC host
70
- BITCOIND_PORT: 9242, // Bitcoin RPC port
71
-
72
- BITCOIND_USERNAME: '', // Bitcoin RPC username
73
- BITCOIND_PASSWORD: '', // Bitcoin RPC password
74
- },
75
- };
76
- ```
77
-
78
- ### 2. Initialize Network and RPC
79
-
80
- ```typescript
81
- const rpc: BitcoinRPC = new BitcoinRPC();
82
- const wallet: Wallet = new Wallet(Testnet.wallet, network);
83
- ```
84
-
85
- ### 3. Connect to OPNet
86
-
87
- ```typescript
88
- const opnet: OPNetLimitedProvider = new OPNetLimitedProvider(opnetNode);
89
- const factory: TransactionFactory = new TransactionFactory();
90
- ```
91
-
92
- ### 4. Mining a Block (Optional)
93
-
94
- If you are using a regtest or need to mine a block to proceed:
95
-
96
- ```typescript
97
- const shouldMineBlock: boolean = true;
98
-
99
- async function mineBlock(): Promise<boolean> {
100
- const ok = await rpc.generateToAddress(1, wallet.p2wpkh, 'default');
101
- if (!ok) {
102
- throw new Error('Could not mine block');
103
- }
104
- console.log(`Mined block`, ok);
105
- return !!ok.length;
106
- }
107
- ```
108
-
109
- ### 5. Initialize RPC with Testnet Configuration
110
-
111
- ```typescript
112
- await rpc.init(Testnet.config);
113
- ```
114
-
115
- ### 6. Define Wrap Amount and Fetch UTXOs
116
-
117
- ```typescript
118
- const wrapAmount: bigint = 100000000n; // 1 BTC in satoshis
119
- const utxoSetting: FetchUTXOParams = {
120
- address: wallet.p2wpkh,
121
- minAmount: 10000n,
122
- requestedAmount: wrapAmount,
123
- };
124
-
125
- const utxos: UTXO[] = await opnet.fetchUTXO(utxoSetting);
126
- if (!utxos) {
127
- throw new Error('No UTXOs found');
128
- }
129
- ```
130
-
131
- ### 7. Fetch Wrap Parameters
132
-
133
- This will fetch the parameters required for wrapping Bitcoin into WBTC. If no parameters are found, an error will be
134
- thrown.
135
- This step is very important as it provides the necessary information for the wrapping process.
136
-
137
- ```typescript
138
- const generationParameters = await opnet.fetchWrapParameters(wrapAmount);
139
- if (!generationParameters) {
140
- throw new Error('No generation parameters found');
141
- }
142
- ```
143
-
144
- ### 8. Create Wrap Parameters and Finalize Transaction
145
-
146
- Now, we will create the wrap parameters and finalize the transaction using the TransactionFactory.
147
-
148
- ```typescript
149
- const wrapParameters: IWrapParameters = {
150
- from: wallet.p2wpkh,
151
- utxos: utxos,
152
- signer: wallet.keypair,
153
- network: network,
154
- feeRate: 350,
155
- priorityFee: 50000n,
156
- amount: wrapAmount,
157
- generationParameters: generationParameters,
158
- };
159
-
160
- const finalTx = factory.wrap(wrapParameters);
161
- console.log(`Final transaction:`, finalTx);
162
- ```
163
-
164
- ### 9. Broadcast the Transactions
165
-
166
- To broadcast the transactions, we will send the raw transactions to the network.
167
-
168
- ```typescript
169
- const firstTxBroadcast = await rpc.sendRawTransaction({
170
- hexstring: finalTx.transaction[0],
171
- });
172
-
173
- console.log(`First transaction broadcasted: ${firstTxBroadcast}`);
174
-
175
- if (!firstTxBroadcast) {
176
- throw new Error('Could not broadcast first transaction');
177
- }
178
-
179
- const secondTxBroadcast = await rpc.sendRawTransaction({
180
- hexstring: finalTx.transaction[1],
181
- });
182
-
183
- console.log(`Second transaction broadcasted: ${secondTxBroadcast}`);
184
-
185
- if (!secondTxBroadcast) {
186
- throw new Error('Could not broadcast second transaction');
187
- }
188
- ```
189
-
190
- ## Conclusion
191
-
192
- You have now successfully wrapped Bitcoin into WBTC using the OPNet protocol!
193
- For any further questions or issues, please refer to the official documentation or reach out to the community for
194
- support.
package/tsconfig.cjs.json DELETED
@@ -1,13 +0,0 @@
1
- {
2
- "extends": "./tsconfig.base.json",
3
- "compilerOptions": {
4
- "module": "CommonJS",
5
- "outDir": "cjs",
6
- "esModuleInterop": true,
7
- "target": "esnext"
8
- },
9
- "exclude": [
10
- "src/tests/**/*",
11
- "src/tests/*"
12
- ]
13
- }
File without changes