@btc-vision/transaction 1.0.97 → 1.0.99

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 (477) 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 +0 -1
  12. package/browser/generators/builders/CalldataGenerator.d.ts +0 -1
  13. package/browser/generators/builders/DeploymentGenerator.d.ts +0 -1
  14. package/browser/generators/builders/MultiSignGenerator.d.ts +0 -1
  15. package/browser/index.js +1 -1
  16. package/browser/keypair/EcKeyPair.d.ts +0 -1
  17. package/browser/keypair/Wallet.d.ts +0 -1
  18. package/browser/signer/TweakedSigner.d.ts +0 -1
  19. package/browser/transaction/browser/BrowserSignerBase.d.ts +0 -1
  20. package/browser/transaction/browser/extensions/UnisatSigner.d.ts +0 -1
  21. package/browser/transaction/builders/DeploymentTransaction.d.ts +0 -1
  22. package/browser/transaction/builders/InteractionTransaction.d.ts +0 -1
  23. package/browser/transaction/builders/MultiSignTransaction.d.ts +0 -1
  24. package/browser/transaction/builders/SharedInteractionTransaction.d.ts +0 -1
  25. package/browser/transaction/builders/TransactionBuilder.d.ts +0 -1
  26. package/browser/transaction/builders/UnwrapSegwitTransaction.d.ts +0 -1
  27. package/browser/transaction/builders/UnwrapTransaction.d.ts +0 -1
  28. package/browser/transaction/builders/WrapTransaction.d.ts +0 -1
  29. package/browser/transaction/interfaces/ITransactionParameters.d.ts +0 -1
  30. package/browser/transaction/interfaces/Tap.d.ts +0 -1
  31. package/browser/transaction/shared/P2TR_MS.d.ts +0 -1
  32. package/browser/transaction/shared/TweakedTransaction.d.ts +0 -1
  33. package/browser/utils/BitcoinUtils.d.ts +0 -1
  34. package/browser/verification/TapscriptVerificator.d.ts +0 -1
  35. package/browser/wbtc/WrappedGenerationParameters.d.ts +0 -1
  36. package/build/bytecode/Compressor.d.ts +0 -1
  37. package/build/bytecode/Compressor.js +4 -4
  38. package/build/crypto/crypto.d.ts +0 -1
  39. package/build/generators/AddressGenerator.d.ts +0 -1
  40. package/build/generators/Generator.d.ts +0 -1
  41. package/build/generators/Generator.js +3 -5
  42. package/build/generators/builders/CalldataGenerator.d.ts +0 -1
  43. package/build/generators/builders/DeploymentGenerator.d.ts +0 -1
  44. package/build/generators/builders/{MultisignGenerator.d.ts → MultiSignGenerator.d.ts} +0 -1
  45. package/build/generators/builders/{MultisignGenerator.js → MultiSignGenerator.js} +1 -1
  46. package/build/keypair/EcKeyPair.d.ts +0 -1
  47. package/build/keypair/EcKeyPair.js +2 -2
  48. package/build/keypair/Wallet.d.ts +0 -1
  49. package/build/keypair/Wallet.js +0 -5
  50. package/build/metadata/ContractBaseMetadata.js +0 -1
  51. package/build/metadata/contracts/wBTC.js +3 -5
  52. package/build/metadata/tokens.js +27 -25
  53. package/build/signer/TweakedSigner.d.ts +0 -1
  54. package/build/transaction/browser/BrowserSignerBase.d.ts +0 -1
  55. package/build/transaction/browser/extensions/UnisatSigner.d.ts +0 -1
  56. package/build/transaction/browser/extensions/UnisatSigner.js +1 -6
  57. package/build/transaction/builders/DeploymentTransaction.d.ts +0 -1
  58. package/build/transaction/builders/DeploymentTransaction.js +25 -33
  59. package/build/transaction/builders/FundingTransaction.js +1 -3
  60. package/build/transaction/builders/InteractionTransaction.d.ts +0 -1
  61. package/build/transaction/builders/InteractionTransaction.js +2 -5
  62. package/build/transaction/builders/MultiSignTransaction.d.ts +0 -1
  63. package/build/transaction/builders/MultiSignTransaction.js +66 -73
  64. package/build/transaction/builders/SharedInteractionTransaction.d.ts +0 -1
  65. package/build/transaction/builders/SharedInteractionTransaction.js +20 -25
  66. package/build/transaction/builders/TransactionBuilder.d.ts +0 -1
  67. package/build/transaction/builders/TransactionBuilder.js +12 -21
  68. package/build/transaction/builders/UnwrapSegwitTransaction.d.ts +0 -1
  69. package/build/transaction/builders/UnwrapSegwitTransaction.js +4 -10
  70. package/build/transaction/builders/UnwrapTransaction.d.ts +0 -1
  71. package/build/transaction/builders/UnwrapTransaction.js +5 -11
  72. package/build/transaction/builders/WrapTransaction.d.ts +0 -1
  73. package/build/transaction/builders/WrapTransaction.js +5 -12
  74. package/build/transaction/interfaces/ITransactionParameters.d.ts +0 -1
  75. package/build/transaction/interfaces/Tap.d.ts +0 -1
  76. package/build/transaction/processor/PsbtTransaction.js +3 -4
  77. package/build/transaction/shared/P2TR_MS.d.ts +0 -1
  78. package/build/transaction/shared/TweakedTransaction.d.ts +0 -1
  79. package/build/transaction/shared/TweakedTransaction.js +11 -16
  80. package/build/utils/BitcoinUtils.d.ts +0 -1
  81. package/build/utxo/OPNetLimitedProvider.js +2 -3
  82. package/build/verification/TapscriptVerificator.d.ts +0 -1
  83. package/build/verification/TapscriptVerificator.js +1 -1
  84. package/build/wbtc/UnwrapGeneration.js +0 -2
  85. package/build/wbtc/WrappedGenerationParameters.d.ts +0 -1
  86. package/build/wbtc/WrappedGenerationParameters.js +0 -6
  87. package/cjs/package.json +3 -0
  88. package/docs/.nojekyll +1 -0
  89. package/docs/assets/highlight.css +43 -0
  90. package/docs/assets/icons.js +15 -0
  91. package/docs/assets/icons.svg +1 -0
  92. package/docs/assets/main.js +59 -0
  93. package/docs/assets/material-style.css +247 -0
  94. package/docs/assets/navigation.js +1 -0
  95. package/docs/assets/search.js +1 -0
  96. package/docs/assets/style.css +1412 -0
  97. package/docs/classes/AddressGenerator.html +177 -0
  98. package/docs/classes/AddressVerificator.html +177 -0
  99. package/docs/classes/BitcoinUtils.html +196 -0
  100. package/docs/classes/CalldataGenerator.html +213 -0
  101. package/docs/classes/Compressor.html +185 -0
  102. package/docs/classes/ContractBaseMetadata.html +182 -0
  103. package/docs/classes/CustomKeypair.html +189 -0
  104. package/docs/classes/DeploymentGenerator.html +201 -0
  105. package/docs/classes/DeploymentTransaction.html +465 -0
  106. package/docs/classes/EcKeyPair.html +280 -0
  107. package/docs/classes/FundingTransaction.html +425 -0
  108. package/docs/classes/Generator.html +199 -0
  109. package/docs/classes/InteractionTransaction.html +467 -0
  110. package/docs/classes/MultiSignGenerator.html +178 -0
  111. package/docs/classes/MultiSignTransaction.html +490 -0
  112. package/docs/classes/OPNetLimitedProvider.html +225 -0
  113. package/docs/classes/OPNetTokenAddressManager.html +182 -0
  114. package/docs/classes/P2TR_MS.html +186 -0
  115. package/docs/classes/PsbtTransaction.html +320 -0
  116. package/docs/classes/SharedInteractionTransaction.html +477 -0
  117. package/docs/classes/TapscriptVerificator.html +180 -0
  118. package/docs/classes/TransactionBuilder.html +423 -0
  119. package/docs/classes/TransactionFactory.html +230 -0
  120. package/docs/classes/TweakedSigner.html +181 -0
  121. package/docs/classes/TweakedTransaction.html +301 -0
  122. package/docs/classes/UnisatSigner.html +199 -0
  123. package/docs/classes/UnwrapGeneration.html +177 -0
  124. package/docs/classes/UnwrapTransaction.html +518 -0
  125. package/docs/classes/Wallet.html +204 -0
  126. package/docs/classes/WrapTransaction.html +509 -0
  127. package/docs/classes/WrappedGeneration.html +187 -0
  128. package/docs/classes/wBTC.html +190 -0
  129. package/docs/enums/ChainId.html +176 -0
  130. package/docs/enums/Consensus.html +204 -0
  131. package/docs/enums/Features.html +175 -0
  132. package/docs/enums/MessageType.html +176 -0
  133. package/docs/enums/OPNetNetwork.html +177 -0
  134. package/docs/enums/PSBTTypes.html +175 -0
  135. package/docs/enums/TransactionSequence.html +177 -0
  136. package/docs/enums/TransactionType.html +181 -0
  137. package/docs/enums/UnisatChainType.html +181 -0
  138. package/docs/enums/UnisatNetwork.html +177 -0
  139. package/docs/hierarchy.html +174 -0
  140. package/docs/index.html +215 -0
  141. package/docs/interfaces/Balance.html +177 -0
  142. package/docs/interfaces/BitcoinTransferResponse.html +178 -0
  143. package/docs/interfaces/BroadcastResponse.html +181 -0
  144. package/docs/interfaces/BroadcastTransactionOptions.html +176 -0
  145. package/docs/interfaces/BroadcastedTransaction.html +184 -0
  146. package/docs/interfaces/ConsensusConfig.html +182 -0
  147. package/docs/interfaces/ContractAddressVerificationParams.html +179 -0
  148. package/docs/interfaces/DeploymentResult.html +178 -0
  149. package/docs/interfaces/FetchUTXOParams.html +178 -0
  150. package/docs/interfaces/FetchUTXOParamsMultiAddress.html +178 -0
  151. package/docs/interfaces/FundingTransactionResponse.html +178 -0
  152. package/docs/interfaces/GenerationConstraints.html +182 -0
  153. package/docs/interfaces/IDeploymentParameters.html +186 -0
  154. package/docs/interfaces/IFundingTransactionParameters.html +186 -0
  155. package/docs/interfaces/IInteractionParameters.html +187 -0
  156. package/docs/interfaces/ITransactionParameters.html +184 -0
  157. package/docs/interfaces/ITweakedTransactionData.html +178 -0
  158. package/docs/interfaces/IUnwrapParameters.html +189 -0
  159. package/docs/interfaces/IWBTCUTXODocument.html +180 -0
  160. package/docs/interfaces/IWallet.html +181 -0
  161. package/docs/interfaces/IWrapParameters.html +190 -0
  162. package/docs/interfaces/MultiSignFromBase64Params.html +188 -0
  163. package/docs/interfaces/MultiSignParameters.html +188 -0
  164. package/docs/interfaces/OPNetTokenMetadata.html +179 -0
  165. package/docs/interfaces/PsbtInputExtended.html +194 -0
  166. package/docs/interfaces/PsbtOutputExtendedAddress.html +183 -0
  167. package/docs/interfaces/PsbtOutputExtendedScript.html +183 -0
  168. package/docs/interfaces/PsbtSignatureOptions.html +176 -0
  169. package/docs/interfaces/PsbtTransactionData.html +179 -0
  170. package/docs/interfaces/RawUTXOResponse.html +178 -0
  171. package/docs/interfaces/SharedInteractionParameters.html +187 -0
  172. package/docs/interfaces/TapLeafScript.html +177 -0
  173. package/docs/interfaces/ToSignInputAddress.html +178 -0
  174. package/docs/interfaces/ToSignInputPublicKey.html +178 -0
  175. package/docs/interfaces/TweakSettings.html +179 -0
  176. package/docs/interfaces/UTXO.html +178 -0
  177. package/docs/interfaces/Unisat.html +190 -0
  178. package/docs/interfaces/UnisatChainInfo.html +177 -0
  179. package/docs/interfaces/UnwrapResult.html +181 -0
  180. package/docs/interfaces/UnwrappedGenerationParameters.html +178 -0
  181. package/docs/interfaces/UpdateInput.html +175 -0
  182. package/docs/interfaces/VaultUTXOs.html +178 -0
  183. package/docs/interfaces/Web3Provider.html +180 -0
  184. package/docs/interfaces/WrapResult.html +179 -0
  185. package/docs/interfaces/WrappedGenerationParameters.html +184 -0
  186. package/docs/modules.html +289 -0
  187. package/docs/types/FromBase64Params.html +174 -0
  188. package/docs/types/IDeploymentParametersWithoutSigner.html +174 -0
  189. package/docs/types/IUnwrapParametersWithoutSigner.html +174 -0
  190. package/docs/types/IWrapParametersWithoutSigner.html +174 -0
  191. package/docs/types/InteractionParametersWithoutSigner.html +174 -0
  192. package/docs/types/PsbtOutputExtended.html +174 -0
  193. package/docs/types/ToSignInput.html +174 -0
  194. package/docs/variables/FACTORY_ADDRESS_FRACTAL.html +174 -0
  195. package/docs/variables/FACTORY_ADDRESS_REGTEST.html +174 -0
  196. package/docs/variables/FACTORY_ADDRESS_TESTNET.html +174 -0
  197. package/docs/variables/MOTO_ADDRESS_FRACTAL.html +174 -0
  198. package/docs/variables/MOTO_ADDRESS_REGTEST.html +174 -0
  199. package/docs/variables/MOTO_ADDRESS_TESTNET.html +174 -0
  200. package/docs/variables/OPNetConsensusConfig.html +174 -0
  201. package/docs/variables/OPNetMetadata.html +174 -0
  202. package/docs/variables/POOL_ADDRESS_FRACTAL.html +174 -0
  203. package/docs/variables/POOL_ADDRESS_REGTEST.html +174 -0
  204. package/docs/variables/POOL_ADDRESS_TESTNET.html +174 -0
  205. package/docs/variables/ROUTER_ADDRESS_FRACTAL.html +174 -0
  206. package/docs/variables/ROUTER_ADDRESS_REGTEST.html +174 -0
  207. package/docs/variables/ROUTER_ADDRESS_TESTNET.html +174 -0
  208. package/docs/variables/RoswellConsensus.html +174 -0
  209. package/docs/variables/WBTC_ADDRESS_FRACTAL.html +174 -0
  210. package/docs/variables/WBTC_ADDRESS_REGTEST.html +174 -0
  211. package/docs/variables/WBTC_ADDRESS_TESTNET.html +174 -0
  212. package/docs/variables/currentConsensus.html +174 -0
  213. package/docs/variables/currentConsensusConfig.html +174 -0
  214. package/docs/variables/version.html +174 -0
  215. package/gulpfile.js +49 -133
  216. package/package.json +112 -113
  217. package/src/bytecode/Compressor.ts +27 -27
  218. package/src/consensus/metadata/RoswellConsensus.ts +26 -26
  219. package/src/crypto/crypto.ts +1 -1
  220. package/src/generators/Generator.ts +75 -75
  221. package/src/generators/builders/MultiSignGenerator.ts +73 -73
  222. package/src/metadata/contracts/wBTC.ts +60 -60
  223. package/src/metadata/tokens.ts +135 -135
  224. package/src/network/ChainId.ts +6 -6
  225. package/src/opnet.ts +82 -82
  226. package/src/signer/TweakedSigner.ts +56 -56
  227. package/src/transaction/builders/DeploymentTransaction.ts +356 -356
  228. package/src/transaction/builders/MultiSignTransaction.ts +659 -659
  229. package/src/transaction/builders/UnwrapSegwitTransaction.ts +365 -365
  230. package/src/transaction/builders/UnwrapTransaction.ts +507 -507
  231. package/src/transaction/enums/TransactionType.ts +9 -9
  232. package/src/transaction/processor/PsbtTransaction.ts +173 -173
  233. package/src/transaction/shared/P2TR_MS.ts +42 -42
  234. package/src/transaction/shared/TweakedTransaction.ts +539 -539
  235. package/src/utils/BitcoinUtils.ts +96 -96
  236. package/tsconfig.base.json +27 -43
  237. package/tsconfig.json +15 -8
  238. package/tsconfig.webpack.json +22 -22
  239. package/EPOCH.md +0 -250
  240. package/VAULT_TARGET_CONSOLIDATION.md +0 -111
  241. package/browser/network/NetworkInformation.d.ts +0 -6
  242. package/browser/transaction/browser/BrowserSigner.d.ts +0 -9
  243. package/browser/transaction/builders/TapUnwarpTransaction.d.ts +0 -40
  244. package/browser/transaction/builders/UnwarpTransaction.d.ts +0 -34
  245. package/browser/utxo/UTXOManager.d.ts +0 -7
  246. package/build/Utils.d.ts +0 -0
  247. package/build/Utils.js +0 -1
  248. package/build/consensus/metadata/RoswsellConsensus.d.ts +0 -2
  249. package/build/consensus/metadata/RoswsellConsensus.js +0 -4
  250. package/build/contracts/ContractMetadataManager.d.ts +0 -0
  251. package/build/contracts/ContractMetadataManager.js +0 -1
  252. package/build/generators/OPNetAddressGenerator.d.ts +0 -0
  253. package/build/generators/OPNetAddressGenerator.js +0 -1
  254. package/build/generators/builders/DeploymentGeneratorV2.d.ts +0 -13
  255. package/build/generators/builders/DeploymentGeneratorV2.js +0 -57
  256. package/build/generators/builders/UnwrapGenerator.d.ts +0 -8
  257. package/build/generators/builders/UnwrapGenerator.js +0 -79
  258. package/build/keypair/interfaces/GeneratedWallet.d.ts +0 -5
  259. package/build/keypair/interfaces/GeneratedWallet.js +0 -1
  260. package/build/metadata/CommonContracts.d.ts +0 -6
  261. package/build/metadata/CommonContracts.js +0 -5
  262. package/build/metadata/ContractMetadataManager.d.ts +0 -1
  263. package/build/metadata/ContractMetadataManager.js +0 -9
  264. package/build/metadata/contracts/ContractBase.d.ts +0 -9
  265. package/build/metadata/contracts/ContractBase.js +0 -13
  266. package/build/metadata/contracts/ContractBaseMetadata.d.ts +0 -9
  267. package/build/metadata/contracts/ContractBaseMetadata.js +0 -13
  268. package/build/metadata/contracts/ContractMetadataManager.d.ts +0 -0
  269. package/build/metadata/contracts/ContractMetadataManager.js +0 -1
  270. package/build/network/NetworkConverter.d.ts +0 -0
  271. package/build/network/NetworkConverter.js +0 -14
  272. package/build/network/NetworkInformation.d.ts +0 -6
  273. package/build/network/NetworkInformation.js +0 -1
  274. package/build/scripts/Regtest.d.ts +0 -2
  275. package/build/scripts/Regtest.js +0 -15
  276. package/build/scripts/test.d.ts +0 -1
  277. package/build/scripts/test.js +0 -74
  278. package/build/signer/Regtest.d.ts +0 -2
  279. package/build/signer/Regtest.js +0 -15
  280. package/build/tests/Regtest.d.ts +0 -3
  281. package/build/tests/Regtest.js +0 -29
  282. package/build/tests/adaptPSBT.d.ts +0 -1
  283. package/build/tests/adaptPSBT.js +0 -44
  284. package/build/tests/btc/send.d.ts +0 -1
  285. package/build/tests/btc/send.js +0 -35
  286. package/build/tests/btc/transfer.d.ts +0 -1
  287. package/build/tests/btc/transfer.js +0 -35
  288. package/build/tests/createPairReg.d.ts +0 -1
  289. package/build/tests/createPairReg.js +0 -73
  290. package/build/tests/deploy/deployMoto.d.ts +0 -4
  291. package/build/tests/deploy/deployMoto.js +0 -89
  292. package/build/tests/deploy/deployPool.d.ts +0 -1
  293. package/build/tests/deploy/deployPool.js +0 -5
  294. package/build/tests/deploy/deployStep1.d.ts +0 -1
  295. package/build/tests/deploy/deployStep1.js +0 -5
  296. package/build/tests/deploy/deployStep2.d.ts +0 -1
  297. package/build/tests/deploy/deployStep2.js +0 -5
  298. package/build/tests/deploy/deployStep3.d.ts +0 -1
  299. package/build/tests/deploy/deployStep3.js +0 -5
  300. package/build/tests/deploy.d.ts +0 -1
  301. package/build/tests/deploy.js +0 -41
  302. package/build/tests/deployMotoRegStep1.d.ts +0 -1
  303. package/build/tests/deployMotoRegStep1.js +0 -85
  304. package/build/tests/deployReg.d.ts +0 -1
  305. package/build/tests/deployReg.js +0 -85
  306. package/build/tests/factory/createPairReg.d.ts +0 -1
  307. package/build/tests/factory/createPairReg.js +0 -13
  308. package/build/tests/gen.d.ts +0 -1
  309. package/build/tests/gen.js +0 -19
  310. package/build/tests/interaction.d.ts +0 -5
  311. package/build/tests/interaction.js +0 -62
  312. package/build/tests/massWrapReg.d.ts +0 -1
  313. package/build/tests/massWrapReg.js +0 -105
  314. package/build/tests/mineReg.d.ts +0 -1
  315. package/build/tests/mineReg.js +0 -19
  316. package/build/tests/moto/airdropToken.d.ts +0 -1
  317. package/build/tests/moto/airdropToken.js +0 -21
  318. package/build/tests/moto/airdropTokens.d.ts +0 -1
  319. package/build/tests/moto/airdropTokens.js +0 -60
  320. package/build/tests/moto/allowance.d.ts +0 -1
  321. package/build/tests/moto/allowance.js +0 -6
  322. package/build/tests/moto/approve.d.ts +0 -1
  323. package/build/tests/moto/approve.js +0 -10
  324. package/build/tests/moto/approveWBTC.d.ts +0 -1
  325. package/build/tests/moto/approveWBTC.js +0 -12
  326. package/build/tests/moto/balanceOf.d.ts +0 -1
  327. package/build/tests/moto/balanceOf.js +0 -12
  328. package/build/tests/moto/transfer.d.ts +0 -1
  329. package/build/tests/moto/transfer.js +0 -16
  330. package/build/tests/motoswap/airdropToken.d.ts +0 -11
  331. package/build/tests/motoswap/airdropToken.js +0 -36
  332. package/build/tests/motoswap/deployMoto.d.ts +0 -4
  333. package/build/tests/motoswap/deployMoto.js +0 -89
  334. package/build/tests/motoswap/deployMotoRegStep1.d.ts +0 -1
  335. package/build/tests/motoswap/deployMotoRegStep1.js +0 -91
  336. package/build/tests/motoswap/deployMotoRegStep2.d.ts +0 -1
  337. package/build/tests/motoswap/deployMotoRegStep2.js +0 -91
  338. package/build/tests/motoswap/deployPool.d.ts +0 -1
  339. package/build/tests/motoswap/deployPool.js +0 -5
  340. package/build/tests/motoswap/deployStep1.d.ts +0 -1
  341. package/build/tests/motoswap/deployStep1.js +0 -5
  342. package/build/tests/motoswap/deployStep2.d.ts +0 -1
  343. package/build/tests/motoswap/deployStep2.js +0 -5
  344. package/build/tests/motoswap/deployStep3.d.ts +0 -1
  345. package/build/tests/motoswap/deployStep3.js +0 -5
  346. package/build/tests/motoswap/interaction.d.ts +0 -3
  347. package/build/tests/motoswap/interaction.js +0 -63
  348. package/build/tests/motoswap/routerAddLiquidity.d.ts +0 -11
  349. package/build/tests/motoswap/routerAddLiquidity.js +0 -35
  350. package/build/tests/motoswap-router/addLiquidity.d.ts +0 -11
  351. package/build/tests/motoswap-router/addLiquidity.js +0 -36
  352. package/build/tests/motoswap-router/deployMoto.d.ts +0 -4
  353. package/build/tests/motoswap-router/deployMoto.js +0 -89
  354. package/build/tests/motoswap-router/deployPool.d.ts +0 -1
  355. package/build/tests/motoswap-router/deployPool.js +0 -5
  356. package/build/tests/motoswap-router/deployStep1.d.ts +0 -1
  357. package/build/tests/motoswap-router/deployStep1.js +0 -5
  358. package/build/tests/motoswap-router/deployStep2.d.ts +0 -1
  359. package/build/tests/motoswap-router/deployStep2.js +0 -5
  360. package/build/tests/motoswap-router/deployStep3.d.ts +0 -1
  361. package/build/tests/motoswap-router/deployStep3.js +0 -5
  362. package/build/tests/motoswap-router/getAmountsOut.d.ts +0 -5
  363. package/build/tests/motoswap-router/getAmountsOut.js +0 -34
  364. package/build/tests/motoswap-router/routerAddLiquidity.d.ts +0 -11
  365. package/build/tests/motoswap-router/routerAddLiquidity.js +0 -35
  366. package/build/tests/motoswap-router/swap.d.ts +0 -8
  367. package/build/tests/motoswap-router/swap.js +0 -24
  368. package/build/tests/multisign.d.ts +0 -1
  369. package/build/tests/multisign.js +0 -47
  370. package/build/tests/multisign2.d.ts +0 -1
  371. package/build/tests/multisign2.js +0 -27
  372. package/build/tests/pool/DecodePoolAddress.d.ts +0 -6
  373. package/build/tests/pool/DecodePoolAddress.js +0 -12
  374. package/build/tests/pool/decodeReserves.d.ts +0 -5
  375. package/build/tests/pool/decodeReserves.js +0 -13
  376. package/build/tests/pool/reserves.d.ts +0 -1
  377. package/build/tests/pool/reserves.js +0 -18
  378. package/build/tests/shared/Utils.d.ts +0 -2
  379. package/build/tests/shared/Utils.js +0 -14
  380. package/build/tests/shared/interaction.d.ts +0 -7
  381. package/build/tests/shared/interaction.js +0 -85
  382. package/build/tests/shared/tokens.d.ts +0 -6
  383. package/build/tests/shared/tokens.js +0 -5
  384. package/build/tests/stakeReg.d.ts +0 -1
  385. package/build/tests/stakeReg.js +0 -73
  386. package/build/tests/stakedReg.d.ts +0 -1
  387. package/build/tests/stakedReg.js +0 -28
  388. package/build/tests/test.d.ts +0 -1
  389. package/build/tests/test.js +0 -51
  390. package/build/tests/test2.d.ts +0 -1
  391. package/build/tests/test2.js +0 -73
  392. package/build/tests/testReg.d.ts +0 -1
  393. package/build/tests/testReg.js +0 -91
  394. package/build/tests/tokens.d.ts +0 -6
  395. package/build/tests/tokens.js +0 -5
  396. package/build/tests/totalRewardReg.d.ts +0 -1
  397. package/build/tests/totalRewardReg.js +0 -28
  398. package/build/tests/transfer.d.ts +0 -1
  399. package/build/tests/transfer.js +0 -74
  400. package/build/tests/transferReg.d.ts +0 -1
  401. package/build/tests/transferReg.js +0 -74
  402. package/build/tests/unStakeReg.d.ts +0 -1
  403. package/build/tests/unStakeReg.js +0 -72
  404. package/build/tests/unwrapReg.d.ts +0 -1
  405. package/build/tests/unwrapReg.js +0 -61
  406. package/build/tests/unwrapReg2.d.ts +0 -1
  407. package/build/tests/unwrapReg2.js +0 -56
  408. package/build/tests/unwrapRegSegwit.d.ts +0 -1
  409. package/build/tests/unwrapRegSegwit.js +0 -83
  410. package/build/tests/wbtc/approve.d.ts +0 -1
  411. package/build/tests/wbtc/approve.js +0 -6
  412. package/build/tests/wbtc/approveWBTC.d.ts +0 -1
  413. package/build/tests/wbtc/approveWBTC.js +0 -12
  414. package/build/tests/wbtc/massWrapReg.d.ts +0 -1
  415. package/build/tests/wbtc/massWrapReg.js +0 -105
  416. package/build/tests/wbtc/transfer.d.ts +0 -1
  417. package/build/tests/wbtc/transfer.js +0 -16
  418. package/build/tests/wbtc/transferReg.d.ts +0 -1
  419. package/build/tests/wbtc/transferReg.js +0 -16
  420. package/build/tests/wbtc/unStakeReg.d.ts +0 -1
  421. package/build/tests/wbtc/unStakeReg.js +0 -72
  422. package/build/tests/wbtc/unwrapReg.d.ts +0 -1
  423. package/build/tests/wbtc/unwrapReg.js +0 -60
  424. package/build/tests/wbtc/unwrapRegSegwit.d.ts +0 -1
  425. package/build/tests/wbtc/unwrapRegSegwit.js +0 -83
  426. package/build/tests/wbtc/withdrawalRequestReg.d.ts +0 -1
  427. package/build/tests/wbtc/withdrawalRequestReg.js +0 -71
  428. package/build/tests/wbtc/wrapReg.d.ts +0 -1
  429. package/build/tests/wbtc/wrapReg.js +0 -65
  430. package/build/tests/wbtc/wrapTest.d.ts +0 -1
  431. package/build/tests/wbtc/wrapTest.js +0 -66
  432. package/build/tests/withdrawalRequestReg.d.ts +0 -1
  433. package/build/tests/withdrawalRequestReg.js +0 -71
  434. package/build/tests/wrap.d.ts +0 -1
  435. package/build/tests/wrap.js +0 -65
  436. package/build/tests/wrapReg.d.ts +0 -1
  437. package/build/tests/wrapReg.js +0 -68
  438. package/build/tests/wrapTest.d.ts +0 -1
  439. package/build/tests/wrapTest.js +0 -66
  440. package/build/tests/wrapTestg.d.ts +0 -1
  441. package/build/tests/wrapTestg.js +0 -66
  442. package/build/tests/writers/allowance.d.ts +0 -3
  443. package/build/tests/writers/allowance.js +0 -10
  444. package/build/tests/writers/approve.d.ts +0 -4
  445. package/build/tests/writers/approve.js +0 -11
  446. package/build/transaction/TransactionBuilder.d.ts +0 -60
  447. package/build/transaction/TransactionBuilder.js +0 -244
  448. package/build/transaction/browser/BrowserSigner.d.ts +0 -11
  449. package/build/transaction/browser/BrowserSigner.js +0 -10
  450. package/build/transaction/browser/extensions/Unisat.d.ts +0 -54
  451. package/build/transaction/browser/extensions/Unisat.js +0 -11
  452. package/build/transaction/builders/DeploymentTransactionV2.d.ts +0 -36
  453. package/build/transaction/builders/DeploymentTransactionV2.js +0 -192
  454. package/build/transaction/builders/GenericTransaction.d.ts +0 -11
  455. package/build/transaction/builders/GenericTransaction.js +0 -23
  456. package/build/transaction/builders/TapUnwarpTransaction.d.ts +0 -37
  457. package/build/transaction/builders/TapUnwarpTransaction.js +0 -201
  458. package/build/transaction/builders/UnwarpSegwitTransaction.d.ts +0 -34
  459. package/build/transaction/builders/UnwarpSegwitTransaction.js +0 -184
  460. package/build/transaction/builders/UnwarpTransaction.d.ts +0 -35
  461. package/build/transaction/builders/UnwarpTransaction.js +0 -199
  462. package/build/transaction/interfaces/ITransactions.d.ts +0 -32
  463. package/build/transaction/interfaces/ITransactions.js +0 -1
  464. package/build/utxo/IUTXO.d.ts +0 -0
  465. package/build/utxo/IUTXO.js +0 -1
  466. package/build/utxo/OPNetUtils.d.ts +0 -7
  467. package/build/utxo/OPNetUtils.js +0 -47
  468. package/build/utxo/UTXOManager.d.ts +0 -7
  469. package/build/utxo/UTXOManager.js +0 -47
  470. package/build/wbtc/BroadcastResponse.d.ts +0 -0
  471. package/build/wbtc/BroadcastResponse.js +0 -1
  472. package/examples/Deploy.md +0 -188
  473. package/examples/Unwrap.md +0 -165
  474. package/examples/Wrap.md +0 -194
  475. package/tsconfig.cjs.json +0 -13
  476. /package/build/generators/{features.d.ts → Features.d.ts} +0 -0
  477. /package/build/generators/{features.js → Features.js} +0 -0
@@ -1,37 +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 internalPubKeyToXOnly(): Buffer;
25
- protected generateTapDataForInput(pubkeys: Buffer[], minimumSignatures: number): {
26
- internalPubkey: Buffer;
27
- network: bitcoin.Network;
28
- scriptTree: Taptree;
29
- redeem: Payment;
30
- };
31
- protected getScriptSolution(input: PsbtInput): Buffer[];
32
- protected internalBuildTransaction(transaction: Psbt): boolean;
33
- private addVaultUTXO;
34
- private addVaultInputs;
35
- private calculateOutputLeftAmountFromVaults;
36
- private getVaultTotalOutputAmount;
37
- }
@@ -1,201 +0,0 @@
1
- import { TransactionType } from '../enums/TransactionType.js';
2
- import { SharedInteractionTransaction } from './SharedInteractionTransaction.js';
3
- import { TransactionBuilder } from './TransactionBuilder.js';
4
- import { ABICoder, BinaryWriter } from '@btc-vision/bsi-binary';
5
- import { wBTC } from '../../metadata/contracts/wBTC.js';
6
- import { payments } from 'bitcoinjs-lib';
7
- import { EcKeyPair } from '../../keypair/EcKeyPair.js';
8
- import { PsbtTransaction } from '../processor/PsbtTransaction.js';
9
- import { MultiSignGenerator } from '../../generators/builders/MultiSignGenerator.js';
10
- import { MultiSignTransaction } from './MultiSignTransaction.js';
11
- import { toXOnly } from 'bitcoinjs-lib/src/psbt/bip371.js';
12
- import { CalldataGenerator } from '../../generators/builders/CalldataGenerator.js';
13
- const abiCoder = new ABICoder();
14
- const numsPoint = Buffer.from('50929b74c1a04954b78b4b6035e97a5e078a5a0f28ec96d547bfee9ace803ac0', 'hex');
15
- export class TapUnwrapTransaction extends SharedInteractionTransaction {
16
- static UNWRAP_SELECTOR = Number('0x' + abiCoder.encodeSelector('burn'));
17
- type = TransactionType.WBTC_UNWRAP;
18
- amount;
19
- compiledTargetScript;
20
- scriptTree;
21
- sighashTypes = [];
22
- contractSecret;
23
- vaultUTXOs;
24
- wbtc;
25
- calculatedSignHash = PsbtTransaction.calculateSignHash(this.sighashTypes);
26
- constructor(parameters) {
27
- if (parameters.amount < TransactionBuilder.MINIMUM_DUST) {
28
- throw new Error('Amount is below dust limit');
29
- }
30
- parameters.disableAutoRefund = true;
31
- parameters.calldata = TapUnwrapTransaction.generateBurnCalldata(parameters.amount);
32
- super(parameters);
33
- this.wbtc = new wBTC(parameters.network);
34
- this.to = this.wbtc.getAddress();
35
- this.vaultUTXOs = parameters.unwrapUTXOs;
36
- this.amount = parameters.amount;
37
- this.contractSecret = this.generateSecret();
38
- this.calldataGenerator = new CalldataGenerator(toXOnly(this.signer.publicKey), this.scriptSignerXOnlyPubKey(), this.network);
39
- this.compiledTargetScript = this.calldataGenerator.compile(this.calldata, this.contractSecret);
40
- this.scriptTree = this.getScriptTree();
41
- this.internalInit();
42
- }
43
- static generateBurnCalldata(amount) {
44
- if (!amount)
45
- throw new Error('Amount is required');
46
- const bufWriter = new BinaryWriter();
47
- bufWriter.writeSelector(TapUnwrapTransaction.UNWRAP_SELECTOR);
48
- bufWriter.writeU256(amount);
49
- return Buffer.from(bufWriter.getBuffer());
50
- }
51
- signPSBT() {
52
- if (this.to && !EcKeyPair.verifyContractAddress(this.to, this.network)) {
53
- throw new Error('Invalid contract address. The contract address must be a taproot address.');
54
- }
55
- if (!this.vaultUTXOs.length) {
56
- throw new Error('No vault UTXOs provided');
57
- }
58
- this.buildTransaction();
59
- this.ignoreSignatureError();
60
- this.mergeVaults(this.vaultUTXOs);
61
- const builtTx = this.internalBuildTransaction(this.transaction);
62
- if (builtTx) {
63
- return this.transaction;
64
- }
65
- throw new Error('Could not sign transaction');
66
- }
67
- mergeVaults(input) {
68
- const firstVault = input[0];
69
- if (!firstVault) {
70
- throw new Error('No vaults provided');
71
- }
72
- const outputLeftAmount = this.calculateOutputLeftAmountFromVaults(input);
73
- if (outputLeftAmount < 0) {
74
- throw new Error(`Output left amount is negative ${outputLeftAmount} for vault ${firstVault.vault}`);
75
- }
76
- this.addOutput({
77
- address: firstVault.vault,
78
- value: Number(outputLeftAmount),
79
- });
80
- this.addOutput({
81
- address: this.from,
82
- value: Number(this.amount),
83
- });
84
- for (const vault of input) {
85
- this.addVaultInputs(vault);
86
- }
87
- }
88
- internalPubKeyToXOnly() {
89
- return toXOnly(numsPoint);
90
- }
91
- generateTapDataForInput(pubkeys, minimumSignatures) {
92
- const compiledTargetScript = MultiSignGenerator.compile(pubkeys, minimumSignatures);
93
- const scriptTree = [
94
- {
95
- output: compiledTargetScript,
96
- version: 192,
97
- },
98
- {
99
- output: MultiSignTransaction.LOCK_LEAF_SCRIPT,
100
- version: 192,
101
- },
102
- ];
103
- const redeem = {
104
- output: compiledTargetScript,
105
- redeemVersion: 192,
106
- };
107
- return {
108
- internalPubkey: this.internalPubKeyToXOnly(),
109
- network: this.network,
110
- scriptTree: scriptTree,
111
- redeem: redeem,
112
- };
113
- }
114
- getScriptSolution(input) {
115
- if (!input.tapScriptSig) {
116
- throw new Error('Tap script signature is required');
117
- }
118
- return [
119
- this.contractSecret,
120
- toXOnly(this.signer.publicKey),
121
- input.tapScriptSig[0].signature,
122
- input.tapScriptSig[1].signature,
123
- ];
124
- }
125
- internalBuildTransaction(transaction) {
126
- if (transaction.data.inputs.length === 0) {
127
- const inputs = this.getInputs();
128
- const outputs = this.getOutputs();
129
- transaction.setMaximumFeeRate(this._maximumFeeRate);
130
- transaction.addInputs(inputs);
131
- for (let i = 0; i < this.updateInputs.length; i++) {
132
- transaction.updateInput(i, this.updateInputs[i]);
133
- }
134
- transaction.addOutputs(outputs);
135
- }
136
- try {
137
- this.signInput(transaction, transaction.data.inputs[0], 0, this.scriptSigner);
138
- this.signInput(transaction, transaction.data.inputs[0], 0);
139
- try {
140
- transaction.finalizeInput(0, this.customFinalizer);
141
- }
142
- catch (e) {
143
- console.log(e);
144
- }
145
- if (this.finalized) {
146
- this.transactionFee = BigInt(transaction.getFee());
147
- }
148
- return true;
149
- }
150
- catch (e) {
151
- const err = e;
152
- this.error(`[internalBuildTransaction] Something went wrong while getting building the transaction: ${err.stack}`);
153
- }
154
- return false;
155
- }
156
- addVaultUTXO(utxo, pubkeys, minimumSignatures) {
157
- const tapInput = this.generateTapDataForInput(pubkeys, minimumSignatures);
158
- const tap = payments.p2tr(tapInput);
159
- if (!tap.witness)
160
- throw new Error('Failed to generate taproot witness');
161
- this.disableRBF();
162
- const controlBlock = tap.witness[tap.witness.length - 1];
163
- const input = {
164
- hash: utxo.hash,
165
- index: utxo.outputIndex,
166
- witnessUtxo: {
167
- script: Buffer.from(utxo.output, 'base64'),
168
- value: Number(utxo.value),
169
- },
170
- tapInternalKey: tapInput.internalPubkey,
171
- sequence: this.sequence,
172
- tapLeafScript: [
173
- {
174
- leafVersion: tapInput.redeem.redeemVersion,
175
- script: tapInput.redeem.output,
176
- controlBlock: controlBlock,
177
- },
178
- ],
179
- };
180
- this.addInput(input);
181
- }
182
- addVaultInputs(vault) {
183
- const pubKeys = vault.publicKeys.map((key) => Buffer.from(key, 'base64'));
184
- for (const utxo of vault.utxos) {
185
- this.addVaultUTXO(utxo, pubKeys, vault.minimum);
186
- }
187
- }
188
- calculateOutputLeftAmountFromVaults(vaults) {
189
- const total = this.getVaultTotalOutputAmount(vaults);
190
- return total - this.amount;
191
- }
192
- getVaultTotalOutputAmount(vaults) {
193
- let total = BigInt(0);
194
- for (const vault of vaults) {
195
- for (const utxo of vault.utxos) {
196
- total += BigInt(utxo.value);
197
- }
198
- }
199
- return total;
200
- }
201
- }
@@ -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,184 +0,0 @@
1
- import { TransactionType } from '../enums/TransactionType.js';
2
- import { SharedInteractionTransaction } from './SharedInteractionTransaction.js';
3
- import { TransactionBuilder } from './TransactionBuilder.js';
4
- import { ABICoder, BinaryWriter } from '@btc-vision/bsi-binary';
5
- import { wBTC } from '../../metadata/contracts/wBTC.js';
6
- import { payments } from 'bitcoinjs-lib';
7
- import { EcKeyPair } from '../../keypair/EcKeyPair.js';
8
- import { PsbtTransaction } from '../processor/PsbtTransaction.js';
9
- const abiCoder = new ABICoder();
10
- export class UnwrapTransaction extends SharedInteractionTransaction {
11
- static MINIMUM_CONSOLIDATION_AMOUNT = 200000n;
12
- static UNWRAP_SELECTOR = Number('0x' + abiCoder.encodeSelector('burn'));
13
- type = TransactionType.WBTC_UNWRAP;
14
- amount;
15
- compiledTargetScript;
16
- scriptTree;
17
- sighashTypes = [];
18
- contractSecret;
19
- vaultUTXOs;
20
- wbtc;
21
- calculatedSignHash = PsbtTransaction.calculateSignHash(this.sighashTypes);
22
- constructor(parameters) {
23
- if (parameters.amount < TransactionBuilder.MINIMUM_DUST) {
24
- throw new Error('Amount is below dust limit');
25
- }
26
- parameters.disableAutoRefund = true;
27
- parameters.calldata = UnwrapTransaction.generateBurnCalldata(parameters.amount);
28
- super(parameters);
29
- this.wbtc = new wBTC(parameters.network);
30
- this.to = this.wbtc.getAddress();
31
- this.vaultUTXOs = parameters.unwrapUTXOs;
32
- this.amount = parameters.amount;
33
- this.contractSecret = this.generateSecret();
34
- this.compiledTargetScript = this.calldataGenerator.compile(this.calldata, this.contractSecret);
35
- this.scriptTree = this.getScriptTree();
36
- this.internalInit();
37
- }
38
- static generateBurnCalldata(amount) {
39
- if (!amount)
40
- throw new Error('Amount is required');
41
- const bufWriter = new BinaryWriter();
42
- bufWriter.writeSelector(UnwrapTransaction.UNWRAP_SELECTOR);
43
- bufWriter.writeU256(amount);
44
- return Buffer.from(bufWriter.getBuffer());
45
- }
46
- signPSBT() {
47
- if (this.to && !EcKeyPair.verifyContractAddress(this.to, this.network)) {
48
- throw new Error('Invalid contract address. The contract address must be a taproot address.');
49
- }
50
- if (!this.vaultUTXOs.length) {
51
- throw new Error('No vault UTXOs provided');
52
- }
53
- if (this.signed)
54
- throw new Error('Transaction is already signed');
55
- this.signed = true;
56
- this.buildTransaction();
57
- this.ignoreSignatureError();
58
- this.mergeVaults(this.vaultUTXOs);
59
- const builtTx = this.internalBuildTransaction(this.transaction);
60
- if (builtTx) {
61
- return this.transaction;
62
- }
63
- throw new Error('Could not sign transaction');
64
- }
65
- mergeVaults(input) {
66
- const firstVault = input[0];
67
- if (!firstVault) {
68
- throw new Error('No vaults provided');
69
- }
70
- const total = this.getVaultTotalOutputAmount(input);
71
- if (total < this.amount) {
72
- throw new Error(`Total vault amount (${total} sat) is less than the amount to unwrap (${this.amount} sat)`);
73
- }
74
- const outputLeftAmount = this.calculateOutputLeftAmountFromVaults(input);
75
- if (outputLeftAmount < UnwrapTransaction.MINIMUM_CONSOLIDATION_AMOUNT) {
76
- throw new Error(`Output left amount is below minimum consolidation (${UnwrapTransaction.MINIMUM_CONSOLIDATION_AMOUNT} sat) amount ${outputLeftAmount} for vault ${firstVault.vault}`);
77
- }
78
- this.addOutput({
79
- address: firstVault.vault,
80
- value: Number(outputLeftAmount),
81
- });
82
- this.addOutput({
83
- address: this.from,
84
- value: Number(this.amount),
85
- });
86
- for (const vault of input) {
87
- this.addVaultInputs(vault);
88
- }
89
- }
90
- internalBuildTransaction(transaction) {
91
- if (transaction.data.inputs.length === 0) {
92
- const inputs = this.getInputs();
93
- const outputs = this.getOutputs();
94
- transaction.setMaximumFeeRate(this._maximumFeeRate);
95
- transaction.addInputs(inputs);
96
- for (let i = 0; i < this.updateInputs.length; i++) {
97
- transaction.updateInput(i, this.updateInputs[i]);
98
- }
99
- transaction.addOutputs(outputs);
100
- }
101
- try {
102
- this.signInputs(transaction);
103
- if (this.finalized) {
104
- this.transactionFee = BigInt(transaction.getFee());
105
- }
106
- return true;
107
- }
108
- catch (e) {
109
- const err = e;
110
- this.error(`[internalBuildTransaction] Something went wrong while getting building the transaction: ${err.stack}`);
111
- }
112
- return false;
113
- }
114
- generateMultiSignRedeemScript(publicKeys, minimum) {
115
- const p2ms = payments.p2ms({
116
- m: minimum,
117
- pubkeys: publicKeys.map((key) => Buffer.from(key, 'base64')),
118
- network: this.network,
119
- });
120
- const p2wsh = payments.p2wsh({
121
- redeem: p2ms,
122
- network: this.network,
123
- });
124
- const witnessUtxo = p2wsh.output;
125
- const redeemScript = p2wsh.redeem?.output;
126
- const witnessScript = p2ms.output;
127
- if (!witnessUtxo || !redeemScript || !witnessScript) {
128
- throw new Error('Failed to generate redeem script');
129
- }
130
- return {
131
- witnessUtxo,
132
- redeemScript,
133
- witnessScript,
134
- };
135
- }
136
- addVaultUTXO(utxo, witness) {
137
- const input = {
138
- hash: utxo.hash,
139
- index: utxo.outputIndex,
140
- witnessUtxo: {
141
- script: Buffer.from(utxo.output, 'base64'),
142
- value: Number(utxo.value),
143
- },
144
- witnessScript: witness.witnessScript,
145
- sequence: this.sequence,
146
- };
147
- if (this.calculatedSignHash) {
148
- input.sighashType = this.calculatedSignHash;
149
- }
150
- this.addInput(input);
151
- }
152
- addVaultInputs(vault, firstSigner = this.signer) {
153
- const p2wshOutput = this.generateMultiSignRedeemScript(vault.publicKeys, vault.minimum);
154
- for (const utxo of vault.utxos) {
155
- const inputIndex = this.transaction.inputCount;
156
- this.addVaultUTXO(utxo, p2wshOutput);
157
- if (firstSigner) {
158
- this.log(`Signing input ${inputIndex} with ${firstSigner.publicKey.toString('hex')}`);
159
- try {
160
- this.signInput(this.transaction, this.transaction.data.inputs[inputIndex], inputIndex, this.signer);
161
- this.log(`Signed input ${inputIndex} with ${firstSigner.publicKey.toString('hex')}`);
162
- }
163
- catch (e) {
164
- if (!this.ignoreSignatureErrors) {
165
- this.warn(`Failed to sign input ${inputIndex} with ${firstSigner.publicKey.toString('hex')} ${e.message}`);
166
- }
167
- }
168
- }
169
- }
170
- }
171
- calculateOutputLeftAmountFromVaults(vaults) {
172
- const total = this.getVaultTotalOutputAmount(vaults);
173
- return total - this.amount;
174
- }
175
- getVaultTotalOutputAmount(vaults) {
176
- let total = BigInt(0);
177
- for (const vault of vaults) {
178
- for (const utxo of vault.utxos) {
179
- total += BigInt(utxo.value);
180
- }
181
- }
182
- return total;
183
- }
184
- }
@@ -1,35 +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
- estimateVaultFees(feeRate: bigint, numInputs: bigint, numOutputs: bigint, numSignatures: bigint, numPubkeys: bigint): bigint;
25
- protected internalBuildTransaction(transaction: Psbt): boolean;
26
- protected generateMultiSignRedeemScript(publicKeys: string[], minimum: number): {
27
- witnessUtxo: Buffer;
28
- redeemScript: Buffer;
29
- witnessScript: Buffer;
30
- };
31
- private addVaultUTXO;
32
- private addVaultInputs;
33
- private calculateOutputLeftAmountFromVaults;
34
- private getVaultTotalOutputAmount;
35
- }