@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,356 +1,356 @@
1
- import { TransactionType } from '../enums/TransactionType.js';
2
- import { IDeploymentParameters } from '../interfaces/ITransactionParameters.js';
3
- import { crypto as bitCrypto, Payment, Psbt, Signer } from 'bitcoinjs-lib';
4
- import { TransactionBuilder } from './TransactionBuilder.js';
5
- import { Taptree } from 'bitcoinjs-lib/src/types.js';
6
- import { TapLeafScript } from '../interfaces/Tap.js';
7
- import { DeploymentGenerator } from '../../generators/builders/DeploymentGenerator.js';
8
- import { toXOnly } from 'bitcoinjs-lib/src/psbt/bip371.js';
9
- import { EcKeyPair } from '../../keypair/EcKeyPair.js';
10
- import { BitcoinUtils } from '../../utils/BitcoinUtils.js';
11
- import { PsbtInput } from 'bip174/src/lib/interfaces.js';
12
- import { Compressor } from '../../bytecode/Compressor.js';
13
- import { AddressGenerator } from '../../generators/AddressGenerator.js';
14
- import { Address } from '@btc-vision/bsi-binary';
15
-
16
- export class DeploymentTransaction extends TransactionBuilder<TransactionType.DEPLOYMENT> {
17
- public type: TransactionType.DEPLOYMENT = TransactionType.DEPLOYMENT;
18
- public static readonly MAXIMUM_CONTRACT_SIZE = 128*1024;
19
-
20
- /**
21
- * The contract address
22
- * @protected
23
- */
24
- protected readonly _contractAddress: Address;
25
- /**
26
- * The tap leaf script
27
- * @private
28
- */
29
- protected tapLeafScript: TapLeafScript | null = null;
30
- /**
31
- * The target script redeem
32
- * @private
33
- */
34
- private targetScriptRedeem: Payment | null = null;
35
- /**
36
- * The left over funds script redeem
37
- * @private
38
- */
39
- private leftOverFundsScriptRedeem: Payment | null = null;
40
- /**
41
- * The compiled target script
42
- * @private
43
- */
44
- private readonly compiledTargetScript: Buffer;
45
- /**
46
- * The script tree
47
- * @private
48
- */
49
- private readonly scriptTree: Taptree;
50
- /**
51
- * The deployment bitcoin generator
52
- * @private
53
- */
54
- private deploymentGenerator: DeploymentGenerator;
55
-
56
- /**
57
- * The contract seed
58
- * @private
59
- */
60
- private readonly contractSeed: Buffer;
61
-
62
- /**
63
- * The contract bytecode
64
- * @private
65
- */
66
- private readonly bytecode: Buffer;
67
-
68
- /**
69
- * The contract signer
70
- * @private
71
- */
72
- private readonly contractSigner: Signer;
73
-
74
- /**
75
- * The contract salt random bytes
76
- * @private
77
- */
78
- private readonly randomBytes: Buffer;
79
-
80
- public constructor(parameters: IDeploymentParameters) {
81
- super(parameters);
82
-
83
- this.bytecode = Compressor.compress(parameters.bytecode);
84
- if (!this.bytecode) throw new Error('Bytecode is required');
85
-
86
- if (this.bytecode.length > DeploymentTransaction.MAXIMUM_CONTRACT_SIZE) throw new Error('Contract size overflow.');
87
-
88
- this.randomBytes = parameters.randomBytes || BitcoinUtils.rndBytes();
89
-
90
- this.contractSeed = this.getContractSeed();
91
- this.contractSigner = EcKeyPair.fromSeedKeyPair(this.contractSeed, this.network);
92
-
93
- this.deploymentGenerator = new DeploymentGenerator(
94
- this.internalPubKeyToXOnly(),
95
- this.contractSignerXOnlyPubKey(),
96
- this.network,
97
- );
98
-
99
- this.compiledTargetScript = this.deploymentGenerator.compile(
100
- this.bytecode,
101
- this.randomBytes,
102
- );
103
-
104
- this.scriptTree = this.getScriptTree();
105
-
106
- this.internalInit();
107
-
108
- this._contractAddress = AddressGenerator.generatePKSH(this.contractSeed, this.network);
109
- }
110
-
111
- /**
112
- * @description Get the contract address (PKSH)
113
- */
114
- public get contractAddress(): Address {
115
- return this._contractAddress;
116
- }
117
-
118
- /**
119
- * @description Get the P2TR address
120
- */
121
- public get p2trAddress(): Address {
122
- return this.to || this.getScriptAddress();
123
- }
124
-
125
- /**
126
- * Get the random bytes used for the interaction
127
- * @returns {Buffer} The random bytes
128
- */
129
- public getRndBytes(): Buffer {
130
- return this.randomBytes;
131
- }
132
-
133
- /**
134
- * Get the contract signer public key
135
- * @protected
136
- */
137
- protected contractSignerXOnlyPubKey(): Buffer {
138
- return toXOnly(this.contractSigner.publicKey);
139
- }
140
-
141
- /**
142
- * Build the transaction
143
- * @protected
144
- */
145
- protected override async buildTransaction(): Promise<void> {
146
- if (!this.to) {
147
- this.to = this.getScriptAddress();
148
- }
149
-
150
- const selectedRedeem = !!this.contractSigner
151
- ? this.targetScriptRedeem
152
- : this.leftOverFundsScriptRedeem;
153
-
154
- if (!selectedRedeem) {
155
- throw new Error('Left over funds script redeem is required');
156
- }
157
-
158
- if (!selectedRedeem.redeemVersion) {
159
- throw new Error('Left over funds script redeem version is required');
160
- }
161
-
162
- if (!selectedRedeem.output) {
163
- throw new Error('Left over funds script redeem output is required');
164
- }
165
-
166
- this.tapLeafScript = {
167
- leafVersion: selectedRedeem.redeemVersion,
168
- script: selectedRedeem.output,
169
- controlBlock: this.getWitness(),
170
- };
171
-
172
- this.addInputsFromUTXO();
173
-
174
- const amountSpent: bigint = this.getTransactionOPNetFee();
175
- this.addOutput({
176
- value: Number(amountSpent),
177
- address: this.to,
178
- });
179
-
180
- await this.addRefundOutput(amountSpent);
181
- }
182
-
183
- /**
184
- * Sign the inputs
185
- * @param {Psbt} transaction The transaction to sign
186
- * @protected
187
- */
188
- protected async signInputs(transaction: Psbt): Promise<void> {
189
- if (!this.contractSigner) {
190
- await super.signInputs(transaction);
191
-
192
- return;
193
- }
194
-
195
- for (let i = 0; i < transaction.data.inputs.length; i++) {
196
- if (i === 0) {
197
- // multi sig input
198
- transaction.signInput(0, this.contractSigner);
199
- transaction.signInput(0, this.getSignerKey());
200
-
201
- transaction.finalizeInput(0, this.customFinalizer);
202
- } else {
203
- transaction.signInput(i, this.getSignerKey());
204
- transaction.finalizeInput(i);
205
- }
206
- }
207
- }
208
-
209
- /**
210
- * Get the tap output
211
- * @protected
212
- */
213
- protected override generateScriptAddress(): Payment {
214
- return {
215
- internalPubkey: this.internalPubKeyToXOnly(),
216
- network: this.network,
217
- scriptTree: this.scriptTree,
218
- };
219
- }
220
-
221
- /**
222
- * Generate the tap data
223
- * @protected
224
- */
225
- protected override generateTapData(): Payment {
226
- const selectedRedeem = !!this.contractSigner
227
- ? this.targetScriptRedeem
228
- : this.leftOverFundsScriptRedeem;
229
-
230
- if (!selectedRedeem) {
231
- throw new Error('Left over funds script redeem is required');
232
- }
233
-
234
- if (!this.scriptTree) {
235
- throw new Error('Script tree is required');
236
- }
237
-
238
- return {
239
- internalPubkey: this.internalPubKeyToXOnly(),
240
- network: this.network,
241
- scriptTree: this.scriptTree,
242
- redeem: selectedRedeem,
243
- };
244
- }
245
-
246
- /**
247
- * Generate the contract seed for the deployment
248
- * @private
249
- */
250
- private getContractSeed(): Buffer {
251
- if (!this.bytecode) {
252
- throw new Error('Bytecode is required');
253
- }
254
-
255
- const deployerPubKey: Buffer = this.internalPubKeyToXOnly();
256
- const salt: Buffer = bitCrypto.hash256(this.randomBytes);
257
- const sha256OfBytecode: Buffer = bitCrypto.hash256(this.bytecode);
258
-
259
- const buf: Buffer = Buffer.concat([deployerPubKey, salt, sha256OfBytecode]);
260
-
261
- return bitCrypto.hash256(buf);
262
- }
263
-
264
- /**
265
- * Finalize the transaction
266
- * @param _inputIndex
267
- * @param input
268
- */
269
- private customFinalizer = (_inputIndex: number, input: PsbtInput) => {
270
- if (!this.tapLeafScript) {
271
- throw new Error('Tap leaf script is required');
272
- }
273
-
274
- if (!input.tapScriptSig) {
275
- throw new Error('Tap script signature is required');
276
- }
277
-
278
- const scriptSolution = [
279
- this.randomBytes,
280
- this.internalPubKeyToXOnly(),
281
- input.tapScriptSig[0].signature,
282
- input.tapScriptSig[1].signature,
283
- ];
284
-
285
- const witness = scriptSolution
286
- .concat(this.tapLeafScript.script)
287
- .concat(this.tapLeafScript.controlBlock);
288
-
289
- return {
290
- finalScriptWitness: TransactionBuilder.witnessStackToScriptWitness(witness),
291
- };
292
- };
293
-
294
- /**
295
- * Get the public keys for the redeem scripts
296
- * @private
297
- */
298
- private getPubKeys(): Buffer[] {
299
- const pubkeys = [this.signer.publicKey];
300
-
301
- if (this.contractSigner) {
302
- pubkeys.push(this.contractSigner.publicKey);
303
- }
304
-
305
- return pubkeys;
306
- }
307
-
308
- /**
309
- * Generate the redeem scripts
310
- * @private
311
- */
312
- private generateRedeemScripts(): void {
313
- this.targetScriptRedeem = {
314
- pubkeys: this.getPubKeys(),
315
- output: this.compiledTargetScript,
316
- redeemVersion: 192,
317
- };
318
-
319
- this.leftOverFundsScriptRedeem = {
320
- pubkeys: this.getPubKeys(),
321
- output: this.getLeafScript(),
322
- redeemVersion: 192,
323
- };
324
- }
325
-
326
- /**
327
- * Get the second leaf script
328
- * @private
329
- */
330
- private getLeafScript(): Buffer {
331
- return TransactionBuilder.LOCK_LEAF_SCRIPT;
332
- }
333
-
334
- /**
335
- * Get the script tree
336
- * @private
337
- */
338
- private getScriptTree(): Taptree {
339
- if (!this.bytecode) {
340
- throw new Error('Contract bytecode is required');
341
- }
342
-
343
- this.generateRedeemScripts();
344
-
345
- return [
346
- {
347
- output: this.compiledTargetScript,
348
- version: 192,
349
- },
350
- {
351
- output: this.getLeafScript(),
352
- version: 192,
353
- },
354
- ];
355
- }
356
- }
1
+ import { TransactionType } from '../enums/TransactionType.js';
2
+ import { IDeploymentParameters } from '../interfaces/ITransactionParameters.js';
3
+ import { crypto as bitCrypto, Payment, Psbt, Signer } from 'bitcoinjs-lib';
4
+ import { TransactionBuilder } from './TransactionBuilder.js';
5
+ import { Taptree } from 'bitcoinjs-lib/src/types.js';
6
+ import { TapLeafScript } from '../interfaces/Tap.js';
7
+ import { DeploymentGenerator } from '../../generators/builders/DeploymentGenerator.js';
8
+ import { toXOnly } from 'bitcoinjs-lib/src/psbt/bip371.js';
9
+ import { EcKeyPair } from '../../keypair/EcKeyPair.js';
10
+ import { BitcoinUtils } from '../../utils/BitcoinUtils.js';
11
+ import { PsbtInput } from 'bip174/src/lib/interfaces.js';
12
+ import { Compressor } from '../../bytecode/Compressor.js';
13
+ import { AddressGenerator } from '../../generators/AddressGenerator.js';
14
+ import { Address } from '@btc-vision/bsi-binary';
15
+
16
+ export class DeploymentTransaction extends TransactionBuilder<TransactionType.DEPLOYMENT> {
17
+ public type: TransactionType.DEPLOYMENT = TransactionType.DEPLOYMENT;
18
+ public static readonly MAXIMUM_CONTRACT_SIZE = 128*1024;
19
+
20
+ /**
21
+ * The contract address
22
+ * @protected
23
+ */
24
+ protected readonly _contractAddress: Address;
25
+ /**
26
+ * The tap leaf script
27
+ * @private
28
+ */
29
+ protected tapLeafScript: TapLeafScript | null = null;
30
+ /**
31
+ * The target script redeem
32
+ * @private
33
+ */
34
+ private targetScriptRedeem: Payment | null = null;
35
+ /**
36
+ * The left over funds script redeem
37
+ * @private
38
+ */
39
+ private leftOverFundsScriptRedeem: Payment | null = null;
40
+ /**
41
+ * The compiled target script
42
+ * @private
43
+ */
44
+ private readonly compiledTargetScript: Buffer;
45
+ /**
46
+ * The script tree
47
+ * @private
48
+ */
49
+ private readonly scriptTree: Taptree;
50
+ /**
51
+ * The deployment bitcoin generator
52
+ * @private
53
+ */
54
+ private deploymentGenerator: DeploymentGenerator;
55
+
56
+ /**
57
+ * The contract seed
58
+ * @private
59
+ */
60
+ private readonly contractSeed: Buffer;
61
+
62
+ /**
63
+ * The contract bytecode
64
+ * @private
65
+ */
66
+ private readonly bytecode: Buffer;
67
+
68
+ /**
69
+ * The contract signer
70
+ * @private
71
+ */
72
+ private readonly contractSigner: Signer;
73
+
74
+ /**
75
+ * The contract salt random bytes
76
+ * @private
77
+ */
78
+ private readonly randomBytes: Buffer;
79
+
80
+ public constructor(parameters: IDeploymentParameters) {
81
+ super(parameters);
82
+
83
+ this.bytecode = Compressor.compress(parameters.bytecode);
84
+ if (!this.bytecode) throw new Error('Bytecode is required');
85
+
86
+ if (this.bytecode.length > DeploymentTransaction.MAXIMUM_CONTRACT_SIZE) throw new Error('Contract size overflow.');
87
+
88
+ this.randomBytes = parameters.randomBytes || BitcoinUtils.rndBytes();
89
+
90
+ this.contractSeed = this.getContractSeed();
91
+ this.contractSigner = EcKeyPair.fromSeedKeyPair(this.contractSeed, this.network);
92
+
93
+ this.deploymentGenerator = new DeploymentGenerator(
94
+ this.internalPubKeyToXOnly(),
95
+ this.contractSignerXOnlyPubKey(),
96
+ this.network,
97
+ );
98
+
99
+ this.compiledTargetScript = this.deploymentGenerator.compile(
100
+ this.bytecode,
101
+ this.randomBytes,
102
+ );
103
+
104
+ this.scriptTree = this.getScriptTree();
105
+
106
+ this.internalInit();
107
+
108
+ this._contractAddress = AddressGenerator.generatePKSH(this.contractSeed, this.network);
109
+ }
110
+
111
+ /**
112
+ * @description Get the contract address (PKSH)
113
+ */
114
+ public get contractAddress(): Address {
115
+ return this._contractAddress;
116
+ }
117
+
118
+ /**
119
+ * @description Get the P2TR address
120
+ */
121
+ public get p2trAddress(): Address {
122
+ return this.to || this.getScriptAddress();
123
+ }
124
+
125
+ /**
126
+ * Get the random bytes used for the interaction
127
+ * @returns {Buffer} The random bytes
128
+ */
129
+ public getRndBytes(): Buffer {
130
+ return this.randomBytes;
131
+ }
132
+
133
+ /**
134
+ * Get the contract signer public key
135
+ * @protected
136
+ */
137
+ protected contractSignerXOnlyPubKey(): Buffer {
138
+ return toXOnly(this.contractSigner.publicKey);
139
+ }
140
+
141
+ /**
142
+ * Build the transaction
143
+ * @protected
144
+ */
145
+ protected override async buildTransaction(): Promise<void> {
146
+ if (!this.to) {
147
+ this.to = this.getScriptAddress();
148
+ }
149
+
150
+ const selectedRedeem = !!this.contractSigner
151
+ ? this.targetScriptRedeem
152
+ : this.leftOverFundsScriptRedeem;
153
+
154
+ if (!selectedRedeem) {
155
+ throw new Error('Left over funds script redeem is required');
156
+ }
157
+
158
+ if (!selectedRedeem.redeemVersion) {
159
+ throw new Error('Left over funds script redeem version is required');
160
+ }
161
+
162
+ if (!selectedRedeem.output) {
163
+ throw new Error('Left over funds script redeem output is required');
164
+ }
165
+
166
+ this.tapLeafScript = {
167
+ leafVersion: selectedRedeem.redeemVersion,
168
+ script: selectedRedeem.output,
169
+ controlBlock: this.getWitness(),
170
+ };
171
+
172
+ this.addInputsFromUTXO();
173
+
174
+ const amountSpent: bigint = this.getTransactionOPNetFee();
175
+ this.addOutput({
176
+ value: Number(amountSpent),
177
+ address: this.to,
178
+ });
179
+
180
+ await this.addRefundOutput(amountSpent);
181
+ }
182
+
183
+ /**
184
+ * Sign the inputs
185
+ * @param {Psbt} transaction The transaction to sign
186
+ * @protected
187
+ */
188
+ protected async signInputs(transaction: Psbt): Promise<void> {
189
+ if (!this.contractSigner) {
190
+ await super.signInputs(transaction);
191
+
192
+ return;
193
+ }
194
+
195
+ for (let i = 0; i < transaction.data.inputs.length; i++) {
196
+ if (i === 0) {
197
+ // multi sig input
198
+ transaction.signInput(0, this.contractSigner);
199
+ transaction.signInput(0, this.getSignerKey());
200
+
201
+ transaction.finalizeInput(0, this.customFinalizer);
202
+ } else {
203
+ transaction.signInput(i, this.getSignerKey());
204
+ transaction.finalizeInput(i);
205
+ }
206
+ }
207
+ }
208
+
209
+ /**
210
+ * Get the tap output
211
+ * @protected
212
+ */
213
+ protected override generateScriptAddress(): Payment {
214
+ return {
215
+ internalPubkey: this.internalPubKeyToXOnly(),
216
+ network: this.network,
217
+ scriptTree: this.scriptTree,
218
+ };
219
+ }
220
+
221
+ /**
222
+ * Generate the tap data
223
+ * @protected
224
+ */
225
+ protected override generateTapData(): Payment {
226
+ const selectedRedeem = !!this.contractSigner
227
+ ? this.targetScriptRedeem
228
+ : this.leftOverFundsScriptRedeem;
229
+
230
+ if (!selectedRedeem) {
231
+ throw new Error('Left over funds script redeem is required');
232
+ }
233
+
234
+ if (!this.scriptTree) {
235
+ throw new Error('Script tree is required');
236
+ }
237
+
238
+ return {
239
+ internalPubkey: this.internalPubKeyToXOnly(),
240
+ network: this.network,
241
+ scriptTree: this.scriptTree,
242
+ redeem: selectedRedeem,
243
+ };
244
+ }
245
+
246
+ /**
247
+ * Generate the contract seed for the deployment
248
+ * @private
249
+ */
250
+ private getContractSeed(): Buffer {
251
+ if (!this.bytecode) {
252
+ throw new Error('Bytecode is required');
253
+ }
254
+
255
+ const deployerPubKey: Buffer = this.internalPubKeyToXOnly();
256
+ const salt: Buffer = bitCrypto.hash256(this.randomBytes);
257
+ const sha256OfBytecode: Buffer = bitCrypto.hash256(this.bytecode);
258
+
259
+ const buf: Buffer = Buffer.concat([deployerPubKey, salt, sha256OfBytecode]);
260
+
261
+ return bitCrypto.hash256(buf);
262
+ }
263
+
264
+ /**
265
+ * Finalize the transaction
266
+ * @param _inputIndex
267
+ * @param input
268
+ */
269
+ private customFinalizer = (_inputIndex: number, input: PsbtInput) => {
270
+ if (!this.tapLeafScript) {
271
+ throw new Error('Tap leaf script is required');
272
+ }
273
+
274
+ if (!input.tapScriptSig) {
275
+ throw new Error('Tap script signature is required');
276
+ }
277
+
278
+ const scriptSolution = [
279
+ this.randomBytes,
280
+ this.internalPubKeyToXOnly(),
281
+ input.tapScriptSig[0].signature,
282
+ input.tapScriptSig[1].signature,
283
+ ];
284
+
285
+ const witness = scriptSolution
286
+ .concat(this.tapLeafScript.script)
287
+ .concat(this.tapLeafScript.controlBlock);
288
+
289
+ return {
290
+ finalScriptWitness: TransactionBuilder.witnessStackToScriptWitness(witness),
291
+ };
292
+ };
293
+
294
+ /**
295
+ * Get the public keys for the redeem scripts
296
+ * @private
297
+ */
298
+ private getPubKeys(): Buffer[] {
299
+ const pubkeys = [this.signer.publicKey];
300
+
301
+ if (this.contractSigner) {
302
+ pubkeys.push(this.contractSigner.publicKey);
303
+ }
304
+
305
+ return pubkeys;
306
+ }
307
+
308
+ /**
309
+ * Generate the redeem scripts
310
+ * @private
311
+ */
312
+ private generateRedeemScripts(): void {
313
+ this.targetScriptRedeem = {
314
+ pubkeys: this.getPubKeys(),
315
+ output: this.compiledTargetScript,
316
+ redeemVersion: 192,
317
+ };
318
+
319
+ this.leftOverFundsScriptRedeem = {
320
+ pubkeys: this.getPubKeys(),
321
+ output: this.getLeafScript(),
322
+ redeemVersion: 192,
323
+ };
324
+ }
325
+
326
+ /**
327
+ * Get the second leaf script
328
+ * @private
329
+ */
330
+ private getLeafScript(): Buffer {
331
+ return TransactionBuilder.LOCK_LEAF_SCRIPT;
332
+ }
333
+
334
+ /**
335
+ * Get the script tree
336
+ * @private
337
+ */
338
+ private getScriptTree(): Taptree {
339
+ if (!this.bytecode) {
340
+ throw new Error('Contract bytecode is required');
341
+ }
342
+
343
+ this.generateRedeemScripts();
344
+
345
+ return [
346
+ {
347
+ output: this.compiledTargetScript,
348
+ version: 192,
349
+ },
350
+ {
351
+ output: this.getLeafScript(),
352
+ version: 192,
353
+ },
354
+ ];
355
+ }
356
+ }