@btc-vision/transaction 1.8.0-beta.3 → 1.8.0-beta.5

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 (764) hide show
  1. package/browser/_version.d.ts +1 -0
  2. package/browser/_version.d.ts.map +1 -0
  3. package/browser/abi/ABICoder.d.ts +1 -1
  4. package/browser/abi/ABICoder.d.ts.map +1 -0
  5. package/browser/branded/Branded.d.ts +4 -0
  6. package/browser/branded/Branded.d.ts.map +1 -0
  7. package/browser/btc-vision-bitcoin.js +11999 -2647
  8. package/browser/buffer/BinaryReader.d.ts +120 -1
  9. package/browser/buffer/BinaryReader.d.ts.map +1 -0
  10. package/browser/buffer/BinaryWriter.d.ts +51 -1
  11. package/browser/buffer/BinaryWriter.d.ts.map +1 -0
  12. package/browser/bytecode/Compressor.d.ts +12 -0
  13. package/browser/bytecode/Compressor.d.ts.map +1 -0
  14. package/browser/chain/ChainData.d.ts +2 -2
  15. package/browser/chain/ChainData.d.ts.map +1 -0
  16. package/browser/consensus/Consensus.d.ts +11 -3
  17. package/browser/consensus/Consensus.d.ts.map +1 -0
  18. package/browser/consensus/ConsensusConfig.d.ts +1 -0
  19. package/browser/consensus/ConsensusConfig.d.ts.map +1 -0
  20. package/browser/consensus/IConsensusConfig.d.ts +1 -0
  21. package/browser/consensus/IConsensusConfig.d.ts.map +1 -0
  22. package/browser/consensus/metadata/RoswellConsensus.d.ts +1 -0
  23. package/browser/consensus/metadata/RoswellConsensus.d.ts.map +1 -0
  24. package/browser/crypto/crypto.d.ts +1 -0
  25. package/browser/crypto/crypto.d.ts.map +1 -0
  26. package/browser/deterministic/AddressMap.d.ts +6 -1
  27. package/browser/deterministic/AddressMap.d.ts.map +1 -0
  28. package/browser/deterministic/AddressSet.d.ts +3 -1
  29. package/browser/deterministic/AddressSet.d.ts.map +1 -0
  30. package/browser/deterministic/CustomMap.d.ts +3 -1
  31. package/browser/deterministic/CustomMap.d.ts.map +1 -0
  32. package/browser/deterministic/DeterministicMap.d.ts +3 -1
  33. package/browser/deterministic/DeterministicMap.d.ts.map +1 -0
  34. package/browser/deterministic/DeterministicSet.d.ts +3 -1
  35. package/browser/deterministic/DeterministicSet.d.ts.map +1 -0
  36. package/browser/deterministic/ExtendedAddressMap.d.ts +7 -1
  37. package/browser/deterministic/ExtendedAddressMap.d.ts.map +1 -0
  38. package/browser/deterministic/FastMap.d.ts +7 -1
  39. package/browser/deterministic/FastMap.d.ts.map +1 -0
  40. package/browser/ecc/backend.d.ts +13 -0
  41. package/browser/ecc/backend.d.ts.map +1 -0
  42. package/browser/epoch/ChallengeSolution.d.ts +33 -1
  43. package/browser/epoch/ChallengeSolution.d.ts.map +1 -0
  44. package/browser/epoch/interfaces/IChallengeSolution.d.ts +14 -13
  45. package/browser/epoch/interfaces/IChallengeSolution.d.ts.map +1 -0
  46. package/browser/epoch/validator/EpochValidator.d.ts +37 -7
  47. package/browser/epoch/validator/EpochValidator.d.ts.map +1 -0
  48. package/browser/event/NetEvent.d.ts +1 -0
  49. package/browser/event/NetEvent.d.ts.map +1 -0
  50. package/browser/generators/AddressGenerator.d.ts +4 -3
  51. package/browser/generators/AddressGenerator.d.ts.map +1 -0
  52. package/browser/generators/Features.d.ts +1 -0
  53. package/browser/generators/Features.d.ts.map +1 -0
  54. package/browser/generators/Generator.d.ts +46 -10
  55. package/browser/generators/Generator.d.ts.map +1 -0
  56. package/browser/generators/MLDSAData.d.ts +1 -0
  57. package/browser/generators/MLDSAData.d.ts.map +1 -0
  58. package/browser/generators/builders/CalldataGenerator.d.ts +25 -4
  59. package/browser/generators/builders/CalldataGenerator.d.ts.map +1 -0
  60. package/browser/generators/builders/CustomGenerator.d.ts +13 -3
  61. package/browser/generators/builders/CustomGenerator.d.ts.map +1 -0
  62. package/browser/generators/builders/DeploymentGenerator.d.ts +15 -4
  63. package/browser/generators/builders/DeploymentGenerator.d.ts.map +1 -0
  64. package/browser/generators/builders/HashCommitmentGenerator.d.ts +164 -12
  65. package/browser/generators/builders/HashCommitmentGenerator.d.ts.map +1 -0
  66. package/browser/generators/builders/LegacyCalldataGenerator.d.ts +26 -4
  67. package/browser/generators/builders/LegacyCalldataGenerator.d.ts.map +1 -0
  68. package/browser/generators/builders/MultiSignGenerator.d.ts +6 -1
  69. package/browser/generators/builders/MultiSignGenerator.d.ts.map +1 -0
  70. package/browser/generators/builders/P2WDAGenerator.d.ts +42 -4
  71. package/browser/generators/builders/P2WDAGenerator.d.ts.map +1 -0
  72. package/browser/index.d.ts +1 -0
  73. package/browser/index.d.ts.map +1 -0
  74. package/browser/index.js +3558 -3167
  75. package/browser/keypair/Address.d.ts +283 -13
  76. package/browser/keypair/Address.d.ts.map +1 -0
  77. package/browser/keypair/AddressVerificator.d.ts +7 -6
  78. package/browser/keypair/AddressVerificator.d.ts.map +1 -0
  79. package/browser/keypair/EcKeyPair.d.ts +183 -21
  80. package/browser/keypair/EcKeyPair.d.ts.map +1 -0
  81. package/browser/keypair/MessageSigner.d.ts +17 -16
  82. package/browser/keypair/MessageSigner.d.ts.map +1 -0
  83. package/browser/keypair/Secp256k1PointDeriver.d.ts +55 -0
  84. package/browser/keypair/Secp256k1PointDeriver.d.ts.map +1 -0
  85. package/browser/keypair/Wallet.d.ts +27 -13
  86. package/browser/keypair/Wallet.d.ts.map +1 -0
  87. package/browser/keypair/interfaces/IWallet.d.ts +19 -0
  88. package/browser/keypair/interfaces/IWallet.d.ts.map +1 -0
  89. package/browser/metadata/ContractBaseMetadata.d.ts +10 -2
  90. package/browser/metadata/ContractBaseMetadata.d.ts.map +1 -0
  91. package/browser/mnemonic/BIPStandard.d.ts +59 -0
  92. package/browser/mnemonic/BIPStandard.d.ts.map +1 -0
  93. package/browser/mnemonic/Mnemonic.d.ts +15 -3
  94. package/browser/mnemonic/Mnemonic.d.ts.map +1 -0
  95. package/browser/mnemonic/MnemonicStrength.d.ts +6 -0
  96. package/browser/mnemonic/MnemonicStrength.d.ts.map +1 -0
  97. package/browser/network/ChainId.d.ts +1 -0
  98. package/browser/network/ChainId.d.ts.map +1 -0
  99. package/browser/noble-curves.js +844 -2746
  100. package/browser/noble-hashes.js +1338 -2067
  101. package/browser/opnet.d.ts +22 -1
  102. package/browser/opnet.d.ts.map +1 -0
  103. package/browser/p2wda/P2WDADetector.d.ts +36 -9
  104. package/browser/p2wda/P2WDADetector.d.ts.map +1 -0
  105. package/browser/polyfill/disposable.d.ts +16 -0
  106. package/browser/polyfill/disposable.d.ts.map +1 -0
  107. package/browser/signer/AddressRotation.d.ts +36 -0
  108. package/browser/signer/AddressRotation.d.ts.map +1 -0
  109. package/browser/signer/IRotationSigner.d.ts +27 -3
  110. package/browser/signer/IRotationSigner.d.ts.map +1 -0
  111. package/browser/signer/ParallelSignerAdapter.d.ts +14 -0
  112. package/browser/signer/ParallelSignerAdapter.d.ts.map +1 -0
  113. package/browser/signer/SignerUtils.d.ts +11 -4
  114. package/browser/signer/SignerUtils.d.ts.map +1 -0
  115. package/browser/signer/TweakedSigner.d.ts +28 -4
  116. package/browser/signer/TweakedSigner.d.ts.map +1 -0
  117. package/browser/transaction/ContractAddress.d.ts +2 -2
  118. package/browser/transaction/ContractAddress.d.ts.map +1 -0
  119. package/browser/transaction/TransactionFactory.d.ts +140 -2
  120. package/browser/transaction/TransactionFactory.d.ts.map +1 -0
  121. package/browser/transaction/browser/BrowserSignerBase.d.ts +12 -6
  122. package/browser/transaction/browser/BrowserSignerBase.d.ts.map +1 -0
  123. package/browser/transaction/browser/WalletNetworks.d.ts +1 -0
  124. package/browser/transaction/browser/WalletNetworks.d.ts.map +1 -0
  125. package/browser/transaction/browser/Web3Provider.d.ts +27 -0
  126. package/browser/transaction/browser/Web3Provider.d.ts.map +1 -0
  127. package/browser/transaction/browser/extensions/UnisatSigner.d.ts +9 -7
  128. package/browser/transaction/browser/extensions/UnisatSigner.d.ts.map +1 -0
  129. package/browser/transaction/browser/extensions/XverseSigner.d.ts +9 -7
  130. package/browser/transaction/browser/extensions/XverseSigner.d.ts.map +1 -0
  131. package/browser/transaction/browser/types/OPWallet.d.ts +10 -0
  132. package/browser/transaction/browser/types/OPWallet.d.ts.map +1 -0
  133. package/browser/transaction/browser/types/Unisat.d.ts +1 -0
  134. package/browser/transaction/browser/types/Unisat.d.ts.map +1 -0
  135. package/browser/transaction/browser/types/Xverse.d.ts +1 -0
  136. package/browser/transaction/browser/types/Xverse.d.ts.map +1 -0
  137. package/browser/transaction/builders/CancelTransaction.d.ts +29 -4
  138. package/browser/transaction/builders/CancelTransaction.d.ts.map +1 -0
  139. package/browser/transaction/builders/ChallengeSolutionTransaction.d.ts +1 -0
  140. package/browser/transaction/builders/ChallengeSolutionTransaction.d.ts.map +1 -0
  141. package/browser/transaction/builders/ConsolidatedInteractionTransaction.d.ts +137 -10
  142. package/browser/transaction/builders/ConsolidatedInteractionTransaction.d.ts.map +1 -0
  143. package/browser/transaction/builders/CustomScriptTransaction.d.ts +106 -6
  144. package/browser/transaction/builders/CustomScriptTransaction.d.ts.map +1 -0
  145. package/browser/transaction/builders/DeploymentTransaction.d.ts +116 -5
  146. package/browser/transaction/builders/DeploymentTransaction.d.ts.map +1 -0
  147. package/browser/transaction/builders/FundingTransaction.d.ts +4 -3
  148. package/browser/transaction/builders/FundingTransaction.d.ts.map +1 -0
  149. package/browser/transaction/builders/InteractionTransaction.d.ts +12 -3
  150. package/browser/transaction/builders/InteractionTransaction.d.ts.map +1 -0
  151. package/browser/transaction/builders/InteractionTransactionP2WDA.d.ts +56 -5
  152. package/browser/transaction/builders/InteractionTransactionP2WDA.d.ts.map +1 -0
  153. package/browser/transaction/builders/MultiSignTransaction.d.ts +125 -16
  154. package/browser/transaction/builders/MultiSignTransaction.d.ts.map +1 -0
  155. package/browser/transaction/builders/SharedInteractionTransaction.d.ts +103 -15
  156. package/browser/transaction/builders/SharedInteractionTransaction.d.ts.map +1 -0
  157. package/browser/transaction/builders/TransactionBuilder.d.ts +243 -14
  158. package/browser/transaction/builders/TransactionBuilder.d.ts.map +1 -0
  159. package/browser/transaction/enums/TransactionType.d.ts +1 -0
  160. package/browser/transaction/enums/TransactionType.d.ts.map +1 -0
  161. package/browser/transaction/interfaces/ICancelTransactionParameters.d.ts +2 -1
  162. package/browser/transaction/interfaces/ICancelTransactionParameters.d.ts.map +1 -0
  163. package/browser/transaction/interfaces/IConsolidatedTransactionParameters.d.ts +46 -3
  164. package/browser/transaction/interfaces/IConsolidatedTransactionParameters.d.ts.map +1 -0
  165. package/browser/transaction/interfaces/ICustomTransactionParameters.d.ts +6 -4
  166. package/browser/transaction/interfaces/ICustomTransactionParameters.d.ts.map +1 -0
  167. package/browser/transaction/interfaces/ITransactionParameters.d.ts +22 -10
  168. package/browser/transaction/interfaces/ITransactionParameters.d.ts.map +1 -0
  169. package/browser/transaction/interfaces/ITransactionResponses.d.ts +1 -0
  170. package/browser/transaction/interfaces/ITransactionResponses.d.ts.map +1 -0
  171. package/browser/transaction/interfaces/ITweakedTransactionData.d.ts +17 -5
  172. package/browser/transaction/interfaces/ITweakedTransactionData.d.ts.map +1 -0
  173. package/browser/transaction/interfaces/IWeb3ProviderTypes.d.ts +26 -0
  174. package/browser/transaction/interfaces/IWeb3ProviderTypes.d.ts.map +1 -0
  175. package/browser/transaction/interfaces/Tap.d.ts +4 -3
  176. package/browser/transaction/interfaces/Tap.d.ts.map +1 -0
  177. package/browser/transaction/mineable/IP2WSHAddress.d.ts +2 -1
  178. package/browser/transaction/mineable/IP2WSHAddress.d.ts.map +1 -0
  179. package/browser/transaction/mineable/TimelockGenerator.d.ts +12 -3
  180. package/browser/transaction/mineable/TimelockGenerator.d.ts.map +1 -0
  181. package/browser/transaction/offline/OfflineTransactionManager.d.ts +190 -9
  182. package/browser/transaction/offline/OfflineTransactionManager.d.ts.map +1 -0
  183. package/browser/transaction/offline/TransactionReconstructor.d.ts +53 -3
  184. package/browser/transaction/offline/TransactionReconstructor.d.ts.map +1 -0
  185. package/browser/transaction/offline/TransactionSerializer.d.ts +53 -2
  186. package/browser/transaction/offline/TransactionSerializer.d.ts.map +1 -0
  187. package/browser/transaction/offline/TransactionStateCapture.d.ts +64 -5
  188. package/browser/transaction/offline/TransactionStateCapture.d.ts.map +1 -0
  189. package/browser/transaction/offline/interfaces/ISerializableState.d.ts +71 -0
  190. package/browser/transaction/offline/interfaces/ISerializableState.d.ts.map +1 -0
  191. package/browser/transaction/offline/interfaces/ITypeSpecificData.d.ts +76 -0
  192. package/browser/transaction/offline/interfaces/ITypeSpecificData.d.ts.map +1 -0
  193. package/browser/transaction/psbt/PSBTTypes.d.ts +1 -0
  194. package/browser/transaction/psbt/PSBTTypes.d.ts.map +1 -0
  195. package/browser/transaction/shared/P2TR_MS.d.ts +11 -2
  196. package/browser/transaction/shared/P2TR_MS.d.ts.map +1 -0
  197. package/browser/transaction/shared/TweakedTransaction.d.ts +274 -33
  198. package/browser/transaction/shared/TweakedTransaction.d.ts.map +1 -0
  199. package/browser/transaction/utils/WitnessUtils.d.ts +7 -1
  200. package/browser/transaction/utils/WitnessUtils.d.ts.map +1 -0
  201. package/browser/utils/BitcoinUtils.d.ts +19 -0
  202. package/browser/utils/BitcoinUtils.d.ts.map +1 -0
  203. package/browser/utils/BufferHelper.d.ts +1 -0
  204. package/browser/utils/BufferHelper.d.ts.map +1 -0
  205. package/browser/utils/StringToBuffer.d.ts +1 -0
  206. package/browser/utils/StringToBuffer.d.ts.map +1 -0
  207. package/browser/utils/lengths.d.ts +1 -0
  208. package/browser/utils/lengths.d.ts.map +1 -0
  209. package/browser/utils/types.d.ts +1 -0
  210. package/browser/utils/types.d.ts.map +1 -0
  211. package/browser/utxo/OPNetLimitedProvider.d.ts +37 -1
  212. package/browser/utxo/OPNetLimitedProvider.d.ts.map +1 -0
  213. package/browser/utxo/interfaces/BroadcastResponse.d.ts +1 -0
  214. package/browser/utxo/interfaces/BroadcastResponse.d.ts.map +1 -0
  215. package/browser/utxo/interfaces/IUTXO.d.ts +11 -5
  216. package/browser/utxo/interfaces/IUTXO.d.ts.map +1 -0
  217. package/browser/vendors.js +14351 -10031
  218. package/browser/verification/TapscriptVerificator.d.ts +10 -8
  219. package/browser/verification/TapscriptVerificator.d.ts.map +1 -0
  220. package/build/_version.d.ts +1 -0
  221. package/build/_version.d.ts.map +1 -0
  222. package/build/_version.js +1 -0
  223. package/build/_version.js.map +1 -0
  224. package/build/abi/ABICoder.d.ts +1 -1
  225. package/build/abi/ABICoder.d.ts.map +1 -0
  226. package/build/abi/ABICoder.js +9 -10
  227. package/build/abi/ABICoder.js.map +1 -0
  228. package/build/branded/Branded.d.ts +4 -0
  229. package/build/branded/Branded.d.ts.map +1 -0
  230. package/build/branded/Branded.js +2 -0
  231. package/build/branded/Branded.js.map +1 -0
  232. package/build/buffer/BinaryReader.d.ts +121 -2
  233. package/build/buffer/BinaryReader.d.ts.map +1 -0
  234. package/build/buffer/BinaryReader.js +129 -5
  235. package/build/buffer/BinaryReader.js.map +1 -0
  236. package/build/buffer/BinaryWriter.d.ts +52 -2
  237. package/build/buffer/BinaryWriter.d.ts.map +1 -0
  238. package/build/buffer/BinaryWriter.js +62 -2
  239. package/build/buffer/BinaryWriter.js.map +1 -0
  240. package/build/bytecode/Compressor.d.ts +12 -0
  241. package/build/bytecode/Compressor.d.ts.map +1 -0
  242. package/build/bytecode/Compressor.js +17 -5
  243. package/build/bytecode/Compressor.js.map +1 -0
  244. package/build/chain/ChainData.d.ts +2 -2
  245. package/build/chain/ChainData.d.ts.map +1 -0
  246. package/build/chain/ChainData.js +35 -17
  247. package/build/chain/ChainData.js.map +1 -0
  248. package/build/consensus/Consensus.d.ts +11 -3
  249. package/build/consensus/Consensus.d.ts.map +1 -0
  250. package/build/consensus/Consensus.js +8 -0
  251. package/build/consensus/Consensus.js.map +1 -0
  252. package/build/consensus/ConsensusConfig.d.ts +2 -1
  253. package/build/consensus/ConsensusConfig.d.ts.map +1 -0
  254. package/build/consensus/ConsensusConfig.js +1 -0
  255. package/build/consensus/ConsensusConfig.js.map +1 -0
  256. package/build/consensus/IConsensusConfig.d.ts +1 -0
  257. package/build/consensus/IConsensusConfig.d.ts.map +1 -0
  258. package/build/consensus/IConsensusConfig.js +2 -1
  259. package/build/consensus/IConsensusConfig.js.map +1 -0
  260. package/build/consensus/metadata/RoswellConsensus.d.ts +2 -1
  261. package/build/consensus/metadata/RoswellConsensus.d.ts.map +1 -0
  262. package/build/consensus/metadata/RoswellConsensus.js +2 -0
  263. package/build/consensus/metadata/RoswellConsensus.js.map +1 -0
  264. package/build/crypto/crypto.d.ts +1 -0
  265. package/build/crypto/crypto.d.ts.map +1 -0
  266. package/build/crypto/crypto.js +1 -0
  267. package/build/crypto/crypto.js.map +1 -0
  268. package/build/deterministic/AddressMap.d.ts +6 -1
  269. package/build/deterministic/AddressMap.d.ts.map +1 -0
  270. package/build/deterministic/AddressMap.js +8 -0
  271. package/build/deterministic/AddressMap.js.map +1 -0
  272. package/build/deterministic/AddressSet.d.ts +3 -1
  273. package/build/deterministic/AddressSet.d.ts.map +1 -0
  274. package/build/deterministic/AddressSet.js +7 -0
  275. package/build/deterministic/AddressSet.js.map +1 -0
  276. package/build/deterministic/CustomMap.d.ts +3 -1
  277. package/build/deterministic/CustomMap.d.ts.map +1 -0
  278. package/build/deterministic/CustomMap.js +65 -47
  279. package/build/deterministic/CustomMap.js.map +1 -0
  280. package/build/deterministic/DeterministicMap.d.ts +4 -2
  281. package/build/deterministic/DeterministicMap.d.ts.map +1 -0
  282. package/build/deterministic/DeterministicMap.js +24 -27
  283. package/build/deterministic/DeterministicMap.js.map +1 -0
  284. package/build/deterministic/DeterministicSet.d.ts +3 -1
  285. package/build/deterministic/DeterministicSet.d.ts.map +1 -0
  286. package/build/deterministic/DeterministicSet.js +6 -0
  287. package/build/deterministic/DeterministicSet.js.map +1 -0
  288. package/build/deterministic/ExtendedAddressMap.d.ts +7 -1
  289. package/build/deterministic/ExtendedAddressMap.d.ts.map +1 -0
  290. package/build/deterministic/ExtendedAddressMap.js +18 -2
  291. package/build/deterministic/ExtendedAddressMap.js.map +1 -0
  292. package/build/deterministic/FastMap.d.ts +7 -1
  293. package/build/deterministic/FastMap.d.ts.map +1 -0
  294. package/build/deterministic/FastMap.js +7 -2
  295. package/build/deterministic/FastMap.js.map +1 -0
  296. package/build/ecc/backend.d.ts +13 -0
  297. package/build/ecc/backend.d.ts.map +1 -0
  298. package/build/ecc/backend.js +15 -0
  299. package/build/ecc/backend.js.map +1 -0
  300. package/build/epoch/ChallengeSolution.d.ts +34 -2
  301. package/build/epoch/ChallengeSolution.d.ts.map +1 -0
  302. package/build/epoch/ChallengeSolution.js +52 -0
  303. package/build/epoch/ChallengeSolution.js.map +1 -0
  304. package/build/epoch/interfaces/IChallengeSolution.d.ts +14 -13
  305. package/build/epoch/interfaces/IChallengeSolution.d.ts.map +1 -0
  306. package/build/epoch/interfaces/IChallengeSolution.js +2 -1
  307. package/build/epoch/interfaces/IChallengeSolution.js.map +1 -0
  308. package/build/epoch/validator/EpochValidator.d.ts +38 -8
  309. package/build/epoch/validator/EpochValidator.d.ts.map +1 -0
  310. package/build/epoch/validator/EpochValidator.js +45 -19
  311. package/build/epoch/validator/EpochValidator.js.map +1 -0
  312. package/build/event/NetEvent.d.ts +1 -0
  313. package/build/event/NetEvent.d.ts.map +1 -0
  314. package/build/event/NetEvent.js +3 -0
  315. package/build/event/NetEvent.js.map +1 -0
  316. package/build/generators/AddressGenerator.d.ts +4 -3
  317. package/build/generators/AddressGenerator.d.ts.map +1 -0
  318. package/build/generators/AddressGenerator.js +9 -4
  319. package/build/generators/AddressGenerator.js.map +1 -0
  320. package/build/generators/Features.d.ts +4 -3
  321. package/build/generators/Features.d.ts.map +1 -0
  322. package/build/generators/Features.js +1 -0
  323. package/build/generators/Features.js.map +1 -0
  324. package/build/generators/Generator.d.ts +47 -11
  325. package/build/generators/Generator.d.ts.map +1 -0
  326. package/build/generators/Generator.js +48 -12
  327. package/build/generators/Generator.js.map +1 -0
  328. package/build/generators/MLDSAData.d.ts +1 -0
  329. package/build/generators/MLDSAData.d.ts.map +1 -0
  330. package/build/generators/MLDSAData.js +1 -0
  331. package/build/generators/MLDSAData.js.map +1 -0
  332. package/build/generators/builders/CalldataGenerator.d.ts +27 -6
  333. package/build/generators/builders/CalldataGenerator.d.ts.map +1 -0
  334. package/build/generators/builders/CalldataGenerator.js +33 -4
  335. package/build/generators/builders/CalldataGenerator.js.map +1 -0
  336. package/build/generators/builders/CustomGenerator.d.ts +13 -3
  337. package/build/generators/builders/CustomGenerator.d.ts.map +1 -0
  338. package/build/generators/builders/CustomGenerator.js +11 -0
  339. package/build/generators/builders/CustomGenerator.js.map +1 -0
  340. package/build/generators/builders/DeploymentGenerator.d.ts +17 -6
  341. package/build/generators/builders/DeploymentGenerator.d.ts.map +1 -0
  342. package/build/generators/builders/DeploymentGenerator.js +18 -2
  343. package/build/generators/builders/DeploymentGenerator.js.map +1 -0
  344. package/build/generators/builders/HashCommitmentGenerator.d.ts +166 -14
  345. package/build/generators/builders/HashCommitmentGenerator.d.ts.map +1 -0
  346. package/build/generators/builders/HashCommitmentGenerator.js +193 -27
  347. package/build/generators/builders/HashCommitmentGenerator.js.map +1 -0
  348. package/build/generators/builders/LegacyCalldataGenerator.d.ts +27 -5
  349. package/build/generators/builders/LegacyCalldataGenerator.d.ts.map +1 -0
  350. package/build/generators/builders/LegacyCalldataGenerator.js +35 -5
  351. package/build/generators/builders/LegacyCalldataGenerator.js.map +1 -0
  352. package/build/generators/builders/MultiSignGenerator.d.ts +6 -1
  353. package/build/generators/builders/MultiSignGenerator.d.ts.map +1 -0
  354. package/build/generators/builders/MultiSignGenerator.js +20 -10
  355. package/build/generators/builders/MultiSignGenerator.js.map +1 -0
  356. package/build/generators/builders/P2WDAGenerator.d.ts +44 -6
  357. package/build/generators/builders/P2WDAGenerator.d.ts.map +1 -0
  358. package/build/generators/builders/P2WDAGenerator.js +41 -2
  359. package/build/generators/builders/P2WDAGenerator.js.map +1 -0
  360. package/build/index.d.ts +1 -0
  361. package/build/index.d.ts.map +1 -0
  362. package/build/index.js +1 -0
  363. package/build/index.js.map +1 -0
  364. package/build/keypair/Address.d.ts +284 -14
  365. package/build/keypair/Address.d.ts.map +1 -0
  366. package/build/keypair/Address.js +446 -128
  367. package/build/keypair/Address.js.map +1 -0
  368. package/build/keypair/AddressVerificator.d.ts +7 -6
  369. package/build/keypair/AddressVerificator.d.ts.map +1 -0
  370. package/build/keypair/AddressVerificator.js +4 -5
  371. package/build/keypair/AddressVerificator.js.map +1 -0
  372. package/build/keypair/EcKeyPair.d.ts +185 -23
  373. package/build/keypair/EcKeyPair.d.ts.map +1 -0
  374. package/build/keypair/EcKeyPair.js +218 -50
  375. package/build/keypair/EcKeyPair.js.map +1 -0
  376. package/build/keypair/MessageSigner.d.ts +18 -17
  377. package/build/keypair/MessageSigner.d.ts.map +1 -0
  378. package/build/keypair/MessageSigner.js +34 -25
  379. package/build/keypair/MessageSigner.js.map +1 -0
  380. package/build/keypair/Secp256k1PointDeriver.d.ts +55 -0
  381. package/build/keypair/Secp256k1PointDeriver.d.ts.map +1 -0
  382. package/build/keypair/Secp256k1PointDeriver.js +66 -0
  383. package/build/keypair/Secp256k1PointDeriver.js.map +1 -0
  384. package/build/keypair/Wallet.d.ts +29 -15
  385. package/build/keypair/Wallet.d.ts.map +1 -0
  386. package/build/keypair/Wallet.js +46 -14
  387. package/build/keypair/Wallet.js.map +1 -0
  388. package/build/keypair/interfaces/IWallet.d.ts +19 -0
  389. package/build/keypair/interfaces/IWallet.d.ts.map +1 -0
  390. package/build/keypair/interfaces/IWallet.js +1 -0
  391. package/build/keypair/interfaces/IWallet.js.map +1 -0
  392. package/build/metadata/ContractBaseMetadata.d.ts +10 -2
  393. package/build/metadata/ContractBaseMetadata.d.ts.map +1 -0
  394. package/build/metadata/ContractBaseMetadata.js +10 -1
  395. package/build/metadata/ContractBaseMetadata.js.map +1 -0
  396. package/build/mnemonic/BIPStandard.d.ts +59 -0
  397. package/build/mnemonic/BIPStandard.d.ts.map +1 -0
  398. package/build/mnemonic/BIPStandard.js +59 -0
  399. package/build/mnemonic/BIPStandard.js.map +1 -0
  400. package/build/mnemonic/Mnemonic.d.ts +16 -4
  401. package/build/mnemonic/Mnemonic.d.ts.map +1 -0
  402. package/build/mnemonic/Mnemonic.js +35 -8
  403. package/build/mnemonic/Mnemonic.js.map +1 -0
  404. package/build/mnemonic/MnemonicStrength.d.ts +6 -0
  405. package/build/mnemonic/MnemonicStrength.d.ts.map +1 -0
  406. package/build/mnemonic/MnemonicStrength.js +6 -0
  407. package/build/mnemonic/MnemonicStrength.js.map +1 -0
  408. package/build/network/ChainId.d.ts +1 -0
  409. package/build/network/ChainId.d.ts.map +1 -0
  410. package/build/network/ChainId.js +1 -0
  411. package/build/network/ChainId.js.map +1 -0
  412. package/build/opnet.d.ts +26 -3
  413. package/build/opnet.d.ts.map +1 -0
  414. package/build/opnet.js +23 -0
  415. package/build/opnet.js.map +1 -0
  416. package/build/p2wda/P2WDADetector.d.ts +38 -11
  417. package/build/p2wda/P2WDADetector.d.ts.map +1 -0
  418. package/build/p2wda/P2WDADetector.js +43 -10
  419. package/build/p2wda/P2WDADetector.js.map +1 -0
  420. package/build/polyfill/disposable.d.ts +16 -0
  421. package/build/polyfill/disposable.d.ts.map +1 -0
  422. package/build/polyfill/disposable.js +23 -0
  423. package/build/polyfill/disposable.js.map +1 -0
  424. package/build/signer/AddressRotation.d.ts +37 -1
  425. package/build/signer/AddressRotation.d.ts.map +1 -0
  426. package/build/signer/AddressRotation.js +16 -0
  427. package/build/signer/AddressRotation.js.map +1 -0
  428. package/build/signer/IRotationSigner.d.ts +27 -3
  429. package/build/signer/IRotationSigner.d.ts.map +1 -0
  430. package/build/signer/IRotationSigner.js +2 -1
  431. package/build/signer/IRotationSigner.js.map +1 -0
  432. package/build/signer/ParallelSignerAdapter.d.ts +14 -0
  433. package/build/signer/ParallelSignerAdapter.d.ts.map +1 -0
  434. package/build/signer/ParallelSignerAdapter.js +51 -0
  435. package/build/signer/ParallelSignerAdapter.js.map +1 -0
  436. package/build/signer/SignerUtils.d.ts +11 -4
  437. package/build/signer/SignerUtils.d.ts.map +1 -0
  438. package/build/signer/SignerUtils.js +16 -0
  439. package/build/signer/SignerUtils.js.map +1 -0
  440. package/build/signer/TweakedSigner.d.ts +28 -4
  441. package/build/signer/TweakedSigner.d.ts.map +1 -0
  442. package/build/signer/TweakedSigner.js +23 -6
  443. package/build/signer/TweakedSigner.js.map +1 -0
  444. package/build/transaction/ContractAddress.d.ts +2 -2
  445. package/build/transaction/ContractAddress.d.ts.map +1 -0
  446. package/build/transaction/ContractAddress.js +4 -8
  447. package/build/transaction/ContractAddress.js.map +1 -0
  448. package/build/transaction/TransactionFactory.d.ts +147 -9
  449. package/build/transaction/TransactionFactory.d.ts.map +1 -0
  450. package/build/transaction/TransactionFactory.js +145 -26
  451. package/build/transaction/TransactionFactory.js.map +1 -0
  452. package/build/transaction/browser/BrowserSignerBase.d.ts +12 -6
  453. package/build/transaction/browser/BrowserSignerBase.d.ts.map +1 -0
  454. package/build/transaction/browser/BrowserSignerBase.js +7 -0
  455. package/build/transaction/browser/BrowserSignerBase.js.map +1 -0
  456. package/build/transaction/browser/WalletNetworks.d.ts +1 -0
  457. package/build/transaction/browser/WalletNetworks.d.ts.map +1 -0
  458. package/build/transaction/browser/WalletNetworks.js +1 -0
  459. package/build/transaction/browser/WalletNetworks.js.map +1 -0
  460. package/build/transaction/browser/Web3Provider.d.ts +30 -3
  461. package/build/transaction/browser/Web3Provider.d.ts.map +1 -0
  462. package/build/transaction/browser/Web3Provider.js +1 -0
  463. package/build/transaction/browser/Web3Provider.js.map +1 -0
  464. package/build/transaction/browser/extensions/UnisatSigner.d.ts +11 -9
  465. package/build/transaction/browser/extensions/UnisatSigner.d.ts.map +1 -0
  466. package/build/transaction/browser/extensions/UnisatSigner.js +27 -17
  467. package/build/transaction/browser/extensions/UnisatSigner.js.map +1 -0
  468. package/build/transaction/browser/extensions/XverseSigner.d.ts +10 -8
  469. package/build/transaction/browser/extensions/XverseSigner.d.ts.map +1 -0
  470. package/build/transaction/browser/extensions/XverseSigner.js +25 -15
  471. package/build/transaction/browser/extensions/XverseSigner.js.map +1 -0
  472. package/build/transaction/browser/types/OPWallet.d.ts +12 -2
  473. package/build/transaction/browser/types/OPWallet.d.ts.map +1 -0
  474. package/build/transaction/browser/types/OPWallet.js +4 -0
  475. package/build/transaction/browser/types/OPWallet.js.map +1 -0
  476. package/build/transaction/browser/types/Unisat.d.ts +2 -1
  477. package/build/transaction/browser/types/Unisat.d.ts.map +1 -0
  478. package/build/transaction/browser/types/Unisat.js +2 -0
  479. package/build/transaction/browser/types/Unisat.js.map +1 -0
  480. package/build/transaction/browser/types/Xverse.d.ts +1 -0
  481. package/build/transaction/browser/types/Xverse.d.ts.map +1 -0
  482. package/build/transaction/browser/types/Xverse.js +1 -0
  483. package/build/transaction/browser/types/Xverse.js.map +1 -0
  484. package/build/transaction/builders/CancelTransaction.d.ts +31 -6
  485. package/build/transaction/builders/CancelTransaction.d.ts.map +1 -0
  486. package/build/transaction/builders/CancelTransaction.js +116 -33
  487. package/build/transaction/builders/CancelTransaction.js.map +1 -0
  488. package/build/transaction/builders/ChallengeSolutionTransaction.d.ts +1 -0
  489. package/build/transaction/builders/ChallengeSolutionTransaction.d.ts.map +1 -0
  490. package/build/transaction/builders/ChallengeSolutionTransaction.js +88 -0
  491. package/build/transaction/builders/ChallengeSolutionTransaction.js.map +1 -0
  492. package/build/transaction/builders/ConsolidatedInteractionTransaction.d.ts +140 -13
  493. package/build/transaction/builders/ConsolidatedInteractionTransaction.d.ts.map +1 -0
  494. package/build/transaction/builders/ConsolidatedInteractionTransaction.js +197 -20
  495. package/build/transaction/builders/ConsolidatedInteractionTransaction.js.map +1 -0
  496. package/build/transaction/builders/CustomScriptTransaction.d.ts +108 -8
  497. package/build/transaction/builders/CustomScriptTransaction.d.ts.map +1 -0
  498. package/build/transaction/builders/CustomScriptTransaction.js +176 -39
  499. package/build/transaction/builders/CustomScriptTransaction.js.map +1 -0
  500. package/build/transaction/builders/DeploymentTransaction.d.ts +120 -9
  501. package/build/transaction/builders/DeploymentTransaction.d.ts.map +1 -0
  502. package/build/transaction/builders/DeploymentTransaction.js +194 -51
  503. package/build/transaction/builders/DeploymentTransaction.js.map +1 -0
  504. package/build/transaction/builders/FundingTransaction.d.ts +5 -4
  505. package/build/transaction/builders/FundingTransaction.d.ts.map +1 -0
  506. package/build/transaction/builders/FundingTransaction.js +15 -8
  507. package/build/transaction/builders/FundingTransaction.js.map +1 -0
  508. package/build/transaction/builders/InteractionTransaction.d.ts +14 -5
  509. package/build/transaction/builders/InteractionTransaction.d.ts.map +1 -0
  510. package/build/transaction/builders/InteractionTransaction.js +18 -5
  511. package/build/transaction/builders/InteractionTransaction.js.map +1 -0
  512. package/build/transaction/builders/InteractionTransactionP2WDA.d.ts +58 -7
  513. package/build/transaction/builders/InteractionTransactionP2WDA.d.ts.map +1 -0
  514. package/build/transaction/builders/InteractionTransactionP2WDA.js +95 -18
  515. package/build/transaction/builders/InteractionTransactionP2WDA.js.map +1 -0
  516. package/build/transaction/builders/MultiSignTransaction.d.ts +126 -17
  517. package/build/transaction/builders/MultiSignTransaction.d.ts.map +1 -0
  518. package/build/transaction/builders/MultiSignTransaction.js +201 -76
  519. package/build/transaction/builders/MultiSignTransaction.js.map +1 -0
  520. package/build/transaction/builders/SharedInteractionTransaction.d.ts +106 -18
  521. package/build/transaction/builders/SharedInteractionTransaction.d.ts.map +1 -0
  522. package/build/transaction/builders/SharedInteractionTransaction.js +158 -40
  523. package/build/transaction/builders/SharedInteractionTransaction.js.map +1 -0
  524. package/build/transaction/builders/TransactionBuilder.d.ts +249 -19
  525. package/build/transaction/builders/TransactionBuilder.d.ts.map +1 -0
  526. package/build/transaction/builders/TransactionBuilder.js +375 -60
  527. package/build/transaction/builders/TransactionBuilder.js.map +1 -0
  528. package/build/transaction/enums/TransactionType.d.ts +1 -0
  529. package/build/transaction/enums/TransactionType.d.ts.map +1 -0
  530. package/build/transaction/enums/TransactionType.js +1 -0
  531. package/build/transaction/enums/TransactionType.js.map +1 -0
  532. package/build/transaction/interfaces/ICancelTransactionParameters.d.ts +3 -2
  533. package/build/transaction/interfaces/ICancelTransactionParameters.d.ts.map +1 -0
  534. package/build/transaction/interfaces/ICancelTransactionParameters.js +1 -0
  535. package/build/transaction/interfaces/ICancelTransactionParameters.js.map +1 -0
  536. package/build/transaction/interfaces/IConsolidatedTransactionParameters.d.ts +48 -5
  537. package/build/transaction/interfaces/IConsolidatedTransactionParameters.d.ts.map +1 -0
  538. package/build/transaction/interfaces/IConsolidatedTransactionParameters.js +1 -0
  539. package/build/transaction/interfaces/IConsolidatedTransactionParameters.js.map +1 -0
  540. package/build/transaction/interfaces/ICustomTransactionParameters.d.ts +7 -5
  541. package/build/transaction/interfaces/ICustomTransactionParameters.d.ts.map +1 -0
  542. package/build/transaction/interfaces/ICustomTransactionParameters.js +1 -0
  543. package/build/transaction/interfaces/ICustomTransactionParameters.js.map +1 -0
  544. package/build/transaction/interfaces/ITransactionParameters.d.ts +27 -15
  545. package/build/transaction/interfaces/ITransactionParameters.d.ts.map +1 -0
  546. package/build/transaction/interfaces/ITransactionParameters.js +1 -0
  547. package/build/transaction/interfaces/ITransactionParameters.js.map +1 -0
  548. package/build/transaction/interfaces/ITransactionResponses.d.ts +3 -2
  549. package/build/transaction/interfaces/ITransactionResponses.d.ts.map +1 -0
  550. package/build/transaction/interfaces/ITransactionResponses.js +1 -0
  551. package/build/transaction/interfaces/ITransactionResponses.js.map +1 -0
  552. package/build/transaction/interfaces/ITweakedTransactionData.d.ts +21 -8
  553. package/build/transaction/interfaces/ITweakedTransactionData.d.ts.map +1 -0
  554. package/build/transaction/interfaces/ITweakedTransactionData.js +1 -0
  555. package/build/transaction/interfaces/ITweakedTransactionData.js.map +1 -0
  556. package/build/transaction/interfaces/IWeb3ProviderTypes.d.ts +29 -3
  557. package/build/transaction/interfaces/IWeb3ProviderTypes.d.ts.map +1 -0
  558. package/build/transaction/interfaces/IWeb3ProviderTypes.js +2 -1
  559. package/build/transaction/interfaces/IWeb3ProviderTypes.js.map +1 -0
  560. package/build/transaction/interfaces/Tap.d.ts +4 -3
  561. package/build/transaction/interfaces/Tap.d.ts.map +1 -0
  562. package/build/transaction/interfaces/Tap.js +1 -0
  563. package/build/transaction/interfaces/Tap.js.map +1 -0
  564. package/build/transaction/mineable/IP2WSHAddress.d.ts +2 -1
  565. package/build/transaction/mineable/IP2WSHAddress.d.ts.map +1 -0
  566. package/build/transaction/mineable/IP2WSHAddress.js +1 -0
  567. package/build/transaction/mineable/IP2WSHAddress.js.map +1 -0
  568. package/build/transaction/mineable/TimelockGenerator.d.ts +13 -4
  569. package/build/transaction/mineable/TimelockGenerator.d.ts.map +1 -0
  570. package/build/transaction/mineable/TimelockGenerator.js +12 -3
  571. package/build/transaction/mineable/TimelockGenerator.js.map +1 -0
  572. package/build/transaction/offline/OfflineTransactionManager.d.ts +193 -12
  573. package/build/transaction/offline/OfflineTransactionManager.d.ts.map +1 -0
  574. package/build/transaction/offline/OfflineTransactionManager.js +192 -8
  575. package/build/transaction/offline/OfflineTransactionManager.js.map +1 -0
  576. package/build/transaction/offline/TransactionReconstructor.d.ts +56 -6
  577. package/build/transaction/offline/TransactionReconstructor.d.ts.map +1 -0
  578. package/build/transaction/offline/TransactionReconstructor.js +111 -75
  579. package/build/transaction/offline/TransactionReconstructor.js.map +1 -0
  580. package/build/transaction/offline/TransactionSerializer.d.ts +54 -3
  581. package/build/transaction/offline/TransactionSerializer.d.ts.map +1 -0
  582. package/build/transaction/offline/TransactionSerializer.js +206 -95
  583. package/build/transaction/offline/TransactionSerializer.js.map +1 -0
  584. package/build/transaction/offline/TransactionStateCapture.d.ts +66 -7
  585. package/build/transaction/offline/TransactionStateCapture.d.ts.map +1 -0
  586. package/build/transaction/offline/TransactionStateCapture.js +124 -60
  587. package/build/transaction/offline/TransactionStateCapture.js.map +1 -0
  588. package/build/transaction/offline/interfaces/ISerializableState.d.ts +72 -1
  589. package/build/transaction/offline/interfaces/ISerializableState.d.ts.map +1 -0
  590. package/build/transaction/offline/interfaces/ISerializableState.js +10 -1
  591. package/build/transaction/offline/interfaces/ISerializableState.js.map +1 -0
  592. package/build/transaction/offline/interfaces/ITypeSpecificData.d.ts +77 -1
  593. package/build/transaction/offline/interfaces/ITypeSpecificData.d.ts.map +1 -0
  594. package/build/transaction/offline/interfaces/ITypeSpecificData.js +19 -0
  595. package/build/transaction/offline/interfaces/ITypeSpecificData.js.map +1 -0
  596. package/build/transaction/psbt/PSBTTypes.d.ts +1 -0
  597. package/build/transaction/psbt/PSBTTypes.d.ts.map +1 -0
  598. package/build/transaction/psbt/PSBTTypes.js +1 -0
  599. package/build/transaction/psbt/PSBTTypes.js.map +1 -0
  600. package/build/transaction/shared/P2TR_MS.d.ts +11 -2
  601. package/build/transaction/shared/P2TR_MS.d.ts.map +1 -0
  602. package/build/transaction/shared/P2TR_MS.js +10 -0
  603. package/build/transaction/shared/P2TR_MS.js.map +1 -0
  604. package/build/transaction/shared/TweakedTransaction.d.ts +281 -38
  605. package/build/transaction/shared/TweakedTransaction.d.ts.map +1 -0
  606. package/build/transaction/shared/TweakedTransaction.js +576 -114
  607. package/build/transaction/shared/TweakedTransaction.js.map +1 -0
  608. package/build/transaction/utils/WitnessUtils.d.ts +7 -1
  609. package/build/transaction/utils/WitnessUtils.d.ts.map +1 -0
  610. package/build/transaction/utils/WitnessUtils.js +17 -3
  611. package/build/transaction/utils/WitnessUtils.js.map +1 -0
  612. package/build/tsconfig.build.tsbuildinfo +1 -1
  613. package/build/utils/BitcoinUtils.d.ts +19 -0
  614. package/build/utils/BitcoinUtils.d.ts.map +1 -0
  615. package/build/utils/BitcoinUtils.js +19 -0
  616. package/build/utils/BitcoinUtils.js.map +1 -0
  617. package/build/utils/BufferHelper.d.ts +2 -1
  618. package/build/utils/BufferHelper.d.ts.map +1 -0
  619. package/build/utils/BufferHelper.js +38 -32
  620. package/build/utils/BufferHelper.js.map +1 -0
  621. package/build/utils/StringToBuffer.d.ts +1 -0
  622. package/build/utils/StringToBuffer.d.ts.map +1 -0
  623. package/build/utils/StringToBuffer.js +1 -0
  624. package/build/utils/StringToBuffer.js.map +1 -0
  625. package/build/utils/lengths.d.ts +1 -0
  626. package/build/utils/lengths.d.ts.map +1 -0
  627. package/build/utils/lengths.js +1 -0
  628. package/build/utils/lengths.js.map +1 -0
  629. package/build/utils/types.d.ts +1 -0
  630. package/build/utils/types.d.ts.map +1 -0
  631. package/build/utils/types.js +2 -1
  632. package/build/utils/types.js.map +1 -0
  633. package/build/utxo/OPNetLimitedProvider.d.ts +39 -3
  634. package/build/utxo/OPNetLimitedProvider.d.ts.map +1 -0
  635. package/build/utxo/OPNetLimitedProvider.js +43 -5
  636. package/build/utxo/OPNetLimitedProvider.js.map +1 -0
  637. package/build/utxo/interfaces/BroadcastResponse.d.ts +1 -0
  638. package/build/utxo/interfaces/BroadcastResponse.d.ts.map +1 -0
  639. package/build/utxo/interfaces/BroadcastResponse.js +1 -0
  640. package/build/utxo/interfaces/BroadcastResponse.js.map +1 -0
  641. package/build/utxo/interfaces/IUTXO.d.ts +13 -7
  642. package/build/utxo/interfaces/IUTXO.d.ts.map +1 -0
  643. package/build/utxo/interfaces/IUTXO.js +1 -0
  644. package/build/utxo/interfaces/IUTXO.js.map +1 -0
  645. package/build/verification/TapscriptVerificator.d.ts +12 -10
  646. package/build/verification/TapscriptVerificator.d.ts.map +1 -0
  647. package/build/verification/TapscriptVerificator.js +28 -38
  648. package/build/verification/TapscriptVerificator.js.map +1 -0
  649. package/eslint.config.js +0 -1
  650. package/package.json +12 -35
  651. package/src/abi/ABICoder.ts +0 -13
  652. package/src/branded/Branded.ts +5 -0
  653. package/src/buffer/BinaryReader.ts +7 -7
  654. package/src/buffer/BinaryWriter.ts +29 -24
  655. package/src/bytecode/Compressor.ts +1 -1
  656. package/src/chain/ChainData.ts +34 -27
  657. package/src/consensus/ConsensusConfig.ts +1 -1
  658. package/src/consensus/IConsensusConfig.ts +0 -17
  659. package/src/consensus/metadata/RoswellConsensus.ts +1 -17
  660. package/src/deterministic/AddressMap.ts +5 -1
  661. package/src/deterministic/AddressSet.ts +5 -1
  662. package/src/deterministic/CustomMap.ts +6 -2
  663. package/src/deterministic/DeterministicMap.ts +8 -4
  664. package/src/deterministic/DeterministicSet.ts +6 -2
  665. package/src/deterministic/ExtendedAddressMap.ts +9 -4
  666. package/src/deterministic/FastMap.ts +9 -5
  667. package/src/ecc/backend.ts +17 -0
  668. package/src/epoch/ChallengeSolution.ts +3 -3
  669. package/src/epoch/interfaces/IChallengeSolution.ts +13 -13
  670. package/src/epoch/validator/EpochValidator.ts +24 -43
  671. package/src/generators/AddressGenerator.ts +4 -7
  672. package/src/generators/Features.ts +3 -3
  673. package/src/generators/Generator.ts +42 -26
  674. package/src/generators/builders/CalldataGenerator.ts +26 -24
  675. package/src/generators/builders/CustomGenerator.ts +4 -4
  676. package/src/generators/builders/DeploymentGenerator.ts +25 -23
  677. package/src/generators/builders/HashCommitmentGenerator.ts +31 -31
  678. package/src/generators/builders/LegacyCalldataGenerator.ts +26 -24
  679. package/src/generators/builders/MultiSignGenerator.ts +12 -12
  680. package/src/generators/builders/P2WDAGenerator.ts +10 -10
  681. package/src/keypair/Address.ts +114 -71
  682. package/src/keypair/AddressVerificator.ts +14 -148
  683. package/src/keypair/EcKeyPair.ts +104 -116
  684. package/src/keypair/MessageSigner.ts +70 -150
  685. package/src/keypair/Wallet.ts +56 -241
  686. package/src/metadata/ContractBaseMetadata.ts +2 -2
  687. package/src/mnemonic/Mnemonic.ts +31 -222
  688. package/src/opnet.ts +12 -6
  689. package/src/p2wda/P2WDADetector.ts +23 -72
  690. package/src/polyfill/disposable.ts +29 -0
  691. package/src/signer/AddressRotation.ts +1 -1
  692. package/src/signer/IRotationSigner.ts +3 -3
  693. package/src/signer/ParallelSignerAdapter.ts +59 -0
  694. package/src/signer/SignerUtils.ts +4 -4
  695. package/src/signer/TweakedSigner.ts +26 -14
  696. package/src/transaction/ContractAddress.ts +3 -7
  697. package/src/transaction/TransactionFactory.ts +28 -50
  698. package/src/transaction/browser/BrowserSignerBase.ts +12 -6
  699. package/src/transaction/browser/Web3Provider.ts +3 -3
  700. package/src/transaction/browser/extensions/UnisatSigner.ts +52 -48
  701. package/src/transaction/browser/extensions/XverseSigner.ts +55 -38
  702. package/src/transaction/browser/types/OPWallet.ts +2 -2
  703. package/src/transaction/browser/types/Unisat.ts +1 -1
  704. package/src/transaction/builders/CancelTransaction.ts +59 -24
  705. package/src/transaction/builders/ChallengeSolutionTransaction.ts +3 -3
  706. package/src/transaction/builders/ConsolidatedInteractionTransaction.ts +39 -34
  707. package/src/transaction/builders/CustomScriptTransaction.ts +79 -56
  708. package/src/transaction/builders/DeploymentTransaction.ts +82 -63
  709. package/src/transaction/builders/FundingTransaction.ts +11 -11
  710. package/src/transaction/builders/InteractionTransaction.ts +10 -10
  711. package/src/transaction/builders/InteractionTransactionP2WDA.ts +38 -40
  712. package/src/transaction/builders/MultiSignTransaction.ts +68 -61
  713. package/src/transaction/builders/SharedInteractionTransaction.ts +81 -57
  714. package/src/transaction/builders/TransactionBuilder.ts +99 -81
  715. package/src/transaction/interfaces/ICancelTransactionParameters.ts +2 -2
  716. package/src/transaction/interfaces/IConsolidatedTransactionParameters.ts +5 -5
  717. package/src/transaction/interfaces/ICustomTransactionParameters.ts +5 -5
  718. package/src/transaction/interfaces/ITransactionParameters.ts +15 -15
  719. package/src/transaction/interfaces/ITransactionResponses.ts +2 -2
  720. package/src/transaction/interfaces/ITweakedTransactionData.ts +17 -8
  721. package/src/transaction/interfaces/IWeb3ProviderTypes.ts +3 -3
  722. package/src/transaction/interfaces/Tap.ts +3 -3
  723. package/src/transaction/mineable/IP2WSHAddress.ts +1 -1
  724. package/src/transaction/mineable/TimelockGenerator.ts +19 -12
  725. package/src/transaction/offline/OfflineTransactionManager.ts +22 -23
  726. package/src/transaction/offline/TransactionReconstructor.ts +83 -91
  727. package/src/transaction/offline/TransactionSerializer.ts +151 -101
  728. package/src/transaction/offline/TransactionStateCapture.ts +83 -79
  729. package/src/transaction/offline/interfaces/ISerializableState.ts +1 -1
  730. package/src/transaction/offline/interfaces/ITypeSpecificData.ts +1 -1
  731. package/src/transaction/shared/P2TR_MS.ts +4 -4
  732. package/src/transaction/shared/TweakedTransaction.ts +326 -124
  733. package/src/transaction/utils/WitnessUtils.ts +18 -9
  734. package/src/utils/BufferHelper.ts +39 -37
  735. package/src/utxo/OPNetLimitedProvider.ts +9 -9
  736. package/src/utxo/interfaces/IUTXO.ts +7 -7
  737. package/src/verification/TapscriptVerificator.ts +73 -86
  738. package/test/address-rotation.test.ts +24 -24
  739. package/test/address.test.ts +12 -12
  740. package/test/addressmap.test.ts +30 -30
  741. package/test/binary-reader-writer.test.ts +8 -8
  742. package/test/browser/offline-transaction.test.ts +2206 -0
  743. package/test/browser/parallel-signing.test.ts +316 -0
  744. package/test/browser/setup.ts +11 -0
  745. package/test/browser/transaction-signing.test.ts +416 -0
  746. package/test/buffer-helper.test.ts +287 -0
  747. package/test/derivePath.test.ts +4 -3
  748. package/test/disposable.test.ts +279 -0
  749. package/test/fastmap-setall.test.ts +1 -1
  750. package/test/fastmap.test.ts +3 -3
  751. package/test/messagesigner-mldsa.test.ts +3 -3
  752. package/test/messagesigner-schnorr.test.ts +9 -9
  753. package/test/offline-transaction.test.ts +461 -288
  754. package/test/old/FastBigIntMap.ts +3 -3
  755. package/test/oldfastmap.test.ts +6 -6
  756. package/test/transaction-builders.test.ts +321 -0
  757. package/tsconfig.base.json +34 -18
  758. package/tsconfig.browser.json +15 -0
  759. package/tsconfig.json +3 -8
  760. package/vite.config.browser.ts +4 -5
  761. package/vitest.config.browser.ts +68 -0
  762. package/vitest.config.ts +1 -1
  763. package/browser/valibot.js +0 -4948
  764. package/tsconfig.webpack.json +0 -18
@@ -1,17 +1,23 @@
1
1
  import { TransactionType } from '../enums/TransactionType.js';
2
- import { IDeploymentParameters } from '../interfaces/ITransactionParameters.js';
2
+ import type { IDeploymentParameters } from '../interfaces/ITransactionParameters.js';
3
3
  import {
4
+ concat,
4
5
  crypto as bitCrypto,
5
- P2TRPayment,
6
+ type FinalScriptsFunc,
7
+ fromHex,
8
+ type P2TRPayment,
6
9
  PaymentType,
7
10
  Psbt,
8
- PsbtInput,
9
- Signer,
10
- Taptree,
11
+ type PsbtInput,
12
+ type Script,
13
+ type Signer,
14
+ type TapScriptSig,
15
+ type Taptree,
16
+ toHex,
11
17
  toXOnly,
12
18
  } from '@btc-vision/bitcoin';
13
19
  import { TransactionBuilder } from './TransactionBuilder.js';
14
- import { TapLeafScript } from '../interfaces/Tap.js';
20
+ import type { TapLeafScript } from '../interfaces/Tap.js';
15
21
  import {
16
22
  DeploymentGenerator,
17
23
  versionBuffer,
@@ -20,13 +26,14 @@ import { EcKeyPair } from '../../keypair/EcKeyPair.js';
20
26
  import { BitcoinUtils } from '../../utils/BitcoinUtils.js';
21
27
  import { Compressor } from '../../bytecode/Compressor.js';
22
28
  import { SharedInteractionTransaction } from './SharedInteractionTransaction.js';
23
- import { ECPairInterface } from 'ecpair';
29
+ import { type UniversalSigner } from '@btc-vision/ecpair';
30
+ import { isUniversalSigner } from '../../signer/TweakedSigner.js';
24
31
  import { Address } from '../../keypair/Address.js';
25
32
  import { UnisatSigner } from '../browser/extensions/UnisatSigner.js';
26
33
  import { TimeLockGenerator } from '../mineable/TimelockGenerator.js';
27
- import { IChallengeSolution } from '../../epoch/interfaces/IChallengeSolution.js';
28
- import { Feature, FeaturePriority, Features } from '../../generators/Features.js';
29
- import { IP2WSHAddress } from '../mineable/IP2WSHAddress.js';
34
+ import type { IChallengeSolution } from '../../epoch/interfaces/IChallengeSolution.js';
35
+ import { type Feature, FeaturePriority, Features } from '../../generators/Features.js';
36
+ import type { IP2WSHAddress } from '../mineable/IP2WSHAddress.js';
30
37
 
31
38
  export class DeploymentTransaction extends TransactionBuilder<TransactionType.DEPLOYMENT> {
32
39
  public static readonly MAXIMUM_CONTRACT_SIZE = 128 * 1024;
@@ -45,7 +52,7 @@ export class DeploymentTransaction extends TransactionBuilder<TransactionType.DE
45
52
  * The tap leaf script
46
53
  * @private
47
54
  */
48
- protected tapLeafScript: TapLeafScript | null = null;
55
+ protected override tapLeafScript: TapLeafScript | null = null;
49
56
  private readonly deploymentVersion: number = 0x00;
50
57
  /**
51
58
  * The target script redeem
@@ -61,7 +68,7 @@ export class DeploymentTransaction extends TransactionBuilder<TransactionType.DE
61
68
  * The compiled target script
62
69
  * @private
63
70
  */
64
- private readonly compiledTargetScript: Buffer;
71
+ private readonly compiledTargetScript: Uint8Array;
65
72
  /**
66
73
  * The script tree
67
74
  * @private
@@ -77,25 +84,25 @@ export class DeploymentTransaction extends TransactionBuilder<TransactionType.DE
77
84
  * The contract seed
78
85
  * @private
79
86
  */
80
- private readonly contractSeed: Buffer;
87
+ private readonly contractSeed: Uint8Array;
81
88
 
82
89
  /**
83
90
  * The contract bytecode
84
91
  * @private
85
92
  */
86
- private readonly bytecode: Buffer;
93
+ private readonly bytecode: Uint8Array;
87
94
 
88
95
  /**
89
96
  * Constructor calldata
90
97
  * @private
91
98
  */
92
- private readonly calldata?: Buffer;
99
+ private readonly calldata?: Uint8Array;
93
100
 
94
101
  /**
95
102
  * The contract signer
96
103
  * @private
97
104
  */
98
- private readonly contractSigner: Signer | ECPairInterface;
105
+ private readonly contractSigner: Signer | UniversalSigner;
99
106
 
100
107
  /**
101
108
  * The contract public key
@@ -107,7 +114,7 @@ export class DeploymentTransaction extends TransactionBuilder<TransactionType.DE
107
114
  * The contract salt random bytes
108
115
  * @private
109
116
  */
110
- private readonly randomBytes: Buffer;
117
+ private readonly randomBytes: Uint8Array;
111
118
  private _computedAddress: string | undefined;
112
119
 
113
120
  public constructor(parameters: IDeploymentParameters) {
@@ -117,7 +124,9 @@ export class DeploymentTransaction extends TransactionBuilder<TransactionType.DE
117
124
  throw new Error('MLDSA signer must be defined to deploy a contract.');
118
125
  }
119
126
 
120
- this.bytecode = Compressor.compress(Buffer.concat([versionBuffer, parameters.bytecode]));
127
+ this.bytecode = Compressor.compress(
128
+ new Uint8Array([...versionBuffer, ...parameters.bytecode]),
129
+ );
121
130
 
122
131
  this.verifyBytecode();
123
132
 
@@ -141,16 +150,16 @@ export class DeploymentTransaction extends TransactionBuilder<TransactionType.DE
141
150
  this.contractSigner = EcKeyPair.fromSeedKeyPair(this.contractSeed, this.network);
142
151
 
143
152
  this.deploymentGenerator = new DeploymentGenerator(
144
- Buffer.from(this.signer.publicKey),
153
+ this.signer.publicKey,
145
154
  this.contractSignerXOnlyPubKey(),
146
155
  this.network,
147
156
  );
148
157
 
149
158
  if (parameters.compiledTargetScript) {
150
- if (Buffer.isBuffer(parameters.compiledTargetScript)) {
159
+ if (parameters.compiledTargetScript instanceof Uint8Array) {
151
160
  this.compiledTargetScript = parameters.compiledTargetScript;
152
161
  } else if (typeof parameters.compiledTargetScript === 'string') {
153
- this.compiledTargetScript = Buffer.from(parameters.compiledTargetScript, 'hex');
162
+ this.compiledTargetScript = fromHex(parameters.compiledTargetScript);
154
163
  } else {
155
164
  throw new Error('Invalid compiled target script format.');
156
165
  }
@@ -169,7 +178,7 @@ export class DeploymentTransaction extends TransactionBuilder<TransactionType.DE
169
178
 
170
179
  this.internalInit();
171
180
 
172
- this._contractPubKey = '0x' + this.contractSeed.toString('hex');
181
+ this._contractPubKey = '0x' + toHex(this.contractSeed);
173
182
  this._contractAddress = new Address(this.contractSeed);
174
183
  }
175
184
 
@@ -194,7 +203,7 @@ export class DeploymentTransaction extends TransactionBuilder<TransactionType.DE
194
203
  return this.to || this.getScriptAddress();
195
204
  }
196
205
 
197
- public exportCompiledTargetScript(): Buffer {
206
+ public exportCompiledTargetScript(): Uint8Array {
198
207
  return this.compiledTargetScript;
199
208
  }
200
209
 
@@ -202,7 +211,7 @@ export class DeploymentTransaction extends TransactionBuilder<TransactionType.DE
202
211
  * Get the random bytes used for the interaction
203
212
  * @returns {Buffer} The random bytes
204
213
  */
205
- public getRndBytes(): Buffer {
214
+ public getRndBytes(): Uint8Array {
206
215
  return this.randomBytes;
207
216
  }
208
217
 
@@ -232,8 +241,8 @@ export class DeploymentTransaction extends TransactionBuilder<TransactionType.DE
232
241
  * Get the contract signer public key
233
242
  * @protected
234
243
  */
235
- protected contractSignerXOnlyPubKey(): Buffer {
236
- return toXOnly(Buffer.from(this.contractSigner.publicKey));
244
+ protected contractSignerXOnlyPubKey(): Uint8Array {
245
+ return toXOnly(this.contractSigner.publicKey);
237
246
  }
238
247
 
239
248
  /**
@@ -279,7 +288,7 @@ export class DeploymentTransaction extends TransactionBuilder<TransactionType.DE
279
288
  const signer: UnisatSigner = this.signer as UnisatSigner;
280
289
 
281
290
  // first, we sign the first input with the script signer.
282
- await this.signInput(transaction, transaction.data.inputs[0], 0, this.contractSigner);
291
+ await this.signInput(transaction, transaction.data.inputs[0] as PsbtInput, 0, this.contractSigner);
283
292
 
284
293
  // then, we sign all the remaining inputs with the wallet signer.
285
294
  await signer.multiSignPsbt([transaction]);
@@ -303,7 +312,7 @@ export class DeploymentTransaction extends TransactionBuilder<TransactionType.DE
303
312
  * @param {Psbt} transaction The transaction to sign
304
313
  * @protected
305
314
  */
306
- protected async signInputs(transaction: Psbt): Promise<void> {
315
+ protected override async signInputs(transaction: Psbt): Promise<void> {
307
316
  if (!this.contractSigner) {
308
317
  await super.signInputs(transaction);
309
318
 
@@ -315,21 +324,45 @@ export class DeploymentTransaction extends TransactionBuilder<TransactionType.DE
315
324
  return;
316
325
  }
317
326
 
318
- for (let i = 0; i < transaction.data.inputs.length; i++) {
319
- if (i === 0) {
320
- // multi sig input
321
- transaction.signInput(0, this.contractSigner);
322
- transaction.signInput(0, this.getSignerKey());
327
+ // Input 0: sequential (contractSigner + main signer, custom finalizer)
328
+ transaction.signInput(0, this.contractSigner);
329
+ transaction.signInput(0, this.getSignerKey());
330
+ transaction.finalizeInput(0, this.customFinalizer.bind(this));
331
+
332
+ // Inputs 1+: parallel key-path if available, then sequential for remaining
333
+ const signedIndices = new Set<number>([0]);
334
+
335
+ if (this.canUseParallelSigning && isUniversalSigner(this.signer)) {
336
+ try {
337
+ const result = await this.signKeyPathInputsParallel(
338
+ transaction,
339
+ new Set([0]),
340
+ );
341
+ if (result.success) {
342
+ for (const idx of result.signatures.keys()) signedIndices.add(idx);
343
+ }
344
+ } catch (e) {
345
+ this.error(
346
+ `Parallel signing failed: ${(e as Error).message}`,
347
+ );
348
+ }
349
+ }
323
350
 
324
- transaction.finalizeInput(0, this.customFinalizer.bind(this));
325
- } else {
351
+ for (let i = 1; i < transaction.data.inputs.length; i++) {
352
+ if (!signedIndices.has(i)) {
326
353
  transaction.signInput(i, this.getSignerKey());
354
+ }
355
+ }
327
356
 
328
- try {
329
- transaction.finalizeInput(i, this.customFinalizerP2SH.bind(this));
330
- } catch (e) {
331
- transaction.finalizeInput(i);
332
- }
357
+ // Finalize inputs 1+
358
+ for (let i = 1; i < transaction.data.inputs.length; i++) {
359
+ try {
360
+ transaction.finalizeInput(
361
+ i,
362
+ this.customFinalizerP2SH.bind(this) as FinalScriptsFunc,
363
+ );
364
+ } catch {
365
+ transaction.finalizeInput(i);
333
366
  }
334
367
  }
335
368
  }
@@ -419,16 +452,16 @@ export class DeploymentTransaction extends TransactionBuilder<TransactionType.DE
419
452
  * Generate the contract seed for the deployment
420
453
  * @private
421
454
  */
422
- private getContractSeed(): Buffer {
455
+ private getContractSeed(): Uint8Array {
423
456
  if (!this.bytecode) {
424
457
  throw new Error('Bytecode is required');
425
458
  }
426
459
 
427
460
  // Concatenate deployer pubkey, salt, and sha256(bytecode)
428
- const deployerPubKey: Buffer = this.internalPubKeyToXOnly();
429
- const salt: Buffer = bitCrypto.hash256(this.randomBytes);
430
- const sha256OfBytecode: Buffer = bitCrypto.hash256(this.bytecode);
431
- const buf: Buffer = Buffer.concat([deployerPubKey, salt, sha256OfBytecode]);
461
+ const deployerPubKey = this.internalPubKeyToXOnly();
462
+ const salt = bitCrypto.hash256(this.randomBytes);
463
+ const sha256OfBytecode = bitCrypto.hash256(this.bytecode);
464
+ const buf = concat([deployerPubKey, salt, sha256OfBytecode]);
432
465
 
433
466
  return bitCrypto.hash256(buf);
434
467
  }
@@ -449,8 +482,8 @@ export class DeploymentTransaction extends TransactionBuilder<TransactionType.DE
449
482
 
450
483
  const scriptSolution = [
451
484
  this.randomBytes,
452
- input.tapScriptSig[0].signature,
453
- input.tapScriptSig[1].signature,
485
+ (input.tapScriptSig[0] as TapScriptSig).signature,
486
+ (input.tapScriptSig[1] as TapScriptSig).signature,
454
487
  ];
455
488
 
456
489
  const witness = scriptSolution
@@ -462,20 +495,6 @@ export class DeploymentTransaction extends TransactionBuilder<TransactionType.DE
462
495
  };
463
496
  };
464
497
 
465
- /**
466
- * Get the public keys for the redeem scripts
467
- * @private
468
- */
469
- private getPubKeys(): Buffer[] {
470
- const pubkeys = [Buffer.from(this.signer.publicKey)];
471
-
472
- if (this.contractSigner) {
473
- pubkeys.push(Buffer.from(this.contractSigner.publicKey));
474
- }
475
-
476
- return pubkeys;
477
- }
478
-
479
498
  /**
480
499
  * Generate the redeem scripts
481
500
  * @private
@@ -484,7 +503,7 @@ export class DeploymentTransaction extends TransactionBuilder<TransactionType.DE
484
503
  this.targetScriptRedeem = {
485
504
  name: PaymentType.P2TR,
486
505
  //pubkeys: this.getPubKeys(),
487
- output: this.compiledTargetScript,
506
+ output: this.compiledTargetScript as Script,
488
507
  redeemVersion: 192,
489
508
  };
490
509
 
@@ -500,7 +519,7 @@ export class DeploymentTransaction extends TransactionBuilder<TransactionType.DE
500
519
  * Get the second leaf script
501
520
  * @private
502
521
  */
503
- private getLeafScript(): Buffer {
522
+ private getLeafScript(): Script {
504
523
  return this.LOCK_LEAF_SCRIPT;
505
524
  }
506
525
 
@@ -1,8 +1,8 @@
1
1
  import { TransactionType } from '../enums/TransactionType.js';
2
- import { IFundingTransactionParameters } from '../interfaces/ITransactionParameters.js';
3
- import { opcodes, script, Signer } from '@btc-vision/bitcoin';
2
+ import type { IFundingTransactionParameters } from '../interfaces/ITransactionParameters.js';
3
+ import { fromHex, opcodes, type Script, script, type Signer, toSatoshi } from '@btc-vision/bitcoin';
4
4
  import { TransactionBuilder } from './TransactionBuilder.js';
5
- import { ECPairInterface } from 'ecpair';
5
+ import { type UniversalSigner } from '@btc-vision/ecpair';
6
6
 
7
7
  export class FundingTransaction extends TransactionBuilder<TransactionType.FUNDING> {
8
8
  public readonly type: TransactionType.FUNDING = TransactionType.FUNDING;
@@ -30,18 +30,18 @@ export class FundingTransaction extends TransactionBuilder<TransactionType.FUNDI
30
30
  if (this.splitInputsInto > 1) {
31
31
  this.splitInputs(this.amount);
32
32
  } else if (this.isPubKeyDestination) {
33
- const pubKeyScript = script.compile([
34
- Buffer.from(this.to.replace('0x', ''), 'hex'),
33
+ const pubKeyScript: Script = script.compile([
34
+ fromHex(this.to.replace('0x', '')),
35
35
  opcodes.OP_CHECKSIG,
36
36
  ]);
37
37
 
38
38
  this.addOutput({
39
- value: Number(this.amount),
39
+ value: toSatoshi(this.amount),
40
40
  script: pubKeyScript,
41
41
  });
42
42
  } else {
43
43
  this.addOutput({
44
- value: Number(this.amount),
44
+ value: toSatoshi(this.amount),
45
45
  address: this.to,
46
46
  });
47
47
  }
@@ -63,19 +63,19 @@ export class FundingTransaction extends TransactionBuilder<TransactionType.FUNDI
63
63
  for (let i = 0; i < this.splitInputsInto; i++) {
64
64
  if (this.isPubKeyDestination) {
65
65
  this.addOutput({
66
- value: Number(splitAmount),
67
- script: Buffer.from(this.to.slice(2), 'hex'),
66
+ value: toSatoshi(splitAmount),
67
+ script: fromHex(this.to.slice(2)) as Script,
68
68
  });
69
69
  } else {
70
70
  this.addOutput({
71
- value: Number(splitAmount),
71
+ value: toSatoshi(splitAmount),
72
72
  address: this.to,
73
73
  });
74
74
  }
75
75
  }
76
76
  }
77
77
 
78
- protected override getSignerKey(): Signer | ECPairInterface {
78
+ protected override getSignerKey(): Signer | UniversalSigner {
79
79
  return this.signer;
80
80
  }
81
81
  }
@@ -1,9 +1,9 @@
1
- import { Taptree } from '@btc-vision/bitcoin';
1
+ import { fromHex, type Taptree } from '@btc-vision/bitcoin';
2
2
  import { TransactionType } from '../enums/TransactionType.js';
3
- import { TapLeafScript } from '../interfaces/Tap.js';
4
- import { IInteractionParameters } from '../interfaces/ITransactionParameters.js';
3
+ import type { TapLeafScript } from '../interfaces/Tap.js';
4
+ import type { IInteractionParameters } from '../interfaces/ITransactionParameters.js';
5
5
  import { SharedInteractionTransaction } from './SharedInteractionTransaction.js';
6
- import { Feature, FeaturePriority, Features } from '../../generators/Features.js';
6
+ import { type Feature, FeaturePriority, Features } from '../../generators/Features.js';
7
7
 
8
8
  /**
9
9
  * Class for interaction transactions
@@ -12,16 +12,16 @@ import { Feature, FeaturePriority, Features } from '../../generators/Features.js
12
12
  export class InteractionTransaction extends SharedInteractionTransaction<TransactionType.INTERACTION> {
13
13
  public type: TransactionType.INTERACTION = TransactionType.INTERACTION;
14
14
 
15
- protected readonly compiledTargetScript: Buffer;
15
+ protected readonly compiledTargetScript: Uint8Array;
16
16
  protected readonly scriptTree: Taptree;
17
17
 
18
- protected tapLeafScript: TapLeafScript | null = null;
18
+ protected override tapLeafScript: TapLeafScript | null = null;
19
19
 
20
20
  /**
21
21
  * Contract secret for the interaction
22
22
  * @protected
23
23
  */
24
- protected readonly contractSecret: Buffer;
24
+ protected readonly contractSecret: Uint8Array;
25
25
 
26
26
  public constructor(parameters: IInteractionParameters) {
27
27
  super(parameters);
@@ -30,17 +30,17 @@ export class InteractionTransaction extends SharedInteractionTransaction<Transac
30
30
  throw new Error('parameters.contract is required for interaction transaction.');
31
31
  }
32
32
 
33
- this.contractSecret = Buffer.from(parameters.contract.replace('0x', ''), 'hex');
33
+ this.contractSecret = fromHex(parameters.contract.replace('0x', ''));
34
34
 
35
35
  if (this.contractSecret.length !== 32) {
36
36
  throw new Error('Invalid contract secret length. Expected 32 bytes.');
37
37
  }
38
38
 
39
39
  if (parameters.compiledTargetScript) {
40
- if (Buffer.isBuffer(parameters.compiledTargetScript)) {
40
+ if (parameters.compiledTargetScript instanceof Uint8Array) {
41
41
  this.compiledTargetScript = parameters.compiledTargetScript;
42
42
  } else if (typeof parameters.compiledTargetScript === 'string') {
43
- this.compiledTargetScript = Buffer.from(parameters.compiledTargetScript, 'hex');
43
+ this.compiledTargetScript = fromHex(parameters.compiledTargetScript);
44
44
  } else {
45
45
  throw new Error('Invalid compiled target script format.');
46
46
  }
@@ -1,18 +1,18 @@
1
- import { Buffer } from 'buffer';
2
- import { Psbt, PsbtInput, toXOnly } from '@btc-vision/bitcoin';
1
+ import { concat, fromHex, Psbt, type PsbtInput, toXOnly } from '@btc-vision/bitcoin';
2
+ import type { UTXO } from '../../utxo/interfaces/IUTXO.js';
3
3
  import { TransactionType } from '../enums/TransactionType.js';
4
- import { IInteractionParameters } from '../interfaces/ITransactionParameters.js';
4
+ import type { IInteractionParameters } from '../interfaces/ITransactionParameters.js';
5
5
  import { TransactionBuilder } from './TransactionBuilder.js';
6
6
  import { MessageSigner } from '../../keypair/MessageSigner.js';
7
7
  import { Compressor } from '../../bytecode/Compressor.js';
8
8
  import { P2WDAGenerator } from '../../generators/builders/P2WDAGenerator.js';
9
- import { Feature, FeaturePriority, Features } from '../../generators/Features.js';
9
+ import { type Feature, FeaturePriority, Features } from '../../generators/Features.js';
10
10
  import { BitcoinUtils } from '../../utils/BitcoinUtils.js';
11
11
  import { EcKeyPair } from '../../keypair/EcKeyPair.js';
12
- import { IChallengeSolution } from '../../epoch/interfaces/IChallengeSolution.js';
13
- import { ECPairInterface } from 'ecpair';
12
+ import type { IChallengeSolution } from '../../epoch/interfaces/IChallengeSolution.js';
13
+ import { type UniversalSigner } from '@btc-vision/ecpair';
14
14
  import { P2WDADetector } from '../../p2wda/P2WDADetector.js';
15
- import { IP2WSHAddress } from '../mineable/IP2WSHAddress.js';
15
+ import type { IP2WSHAddress } from '../mineable/IP2WSHAddress.js';
16
16
  import { TimeLockGenerator } from '../mineable/TimelockGenerator.js';
17
17
 
18
18
  /**
@@ -33,19 +33,18 @@ export class InteractionTransactionP2WDA extends TransactionBuilder<TransactionT
33
33
  * @protected
34
34
  */
35
35
  protected readonly disableAutoRefund: boolean;
36
- private readonly contractAddress: string;
37
- private readonly contractSecret: Buffer;
38
- private readonly calldata: Buffer;
36
+ private readonly contractSecret: Uint8Array;
37
+ private readonly calldata: Uint8Array;
39
38
  private readonly challenge: IChallengeSolution;
40
- private readonly randomBytes: Buffer;
39
+ private readonly randomBytes: Uint8Array;
41
40
  private p2wdaGenerator: P2WDAGenerator;
42
- private scriptSigner: ECPairInterface;
41
+ private scriptSigner: UniversalSigner;
43
42
  private p2wdaInputIndices: Set<number> = new Set();
44
43
  /**
45
44
  * The compiled operation data from CalldataGenerator
46
45
  * This is exactly what would go in a taproot script, but we put it in witness instead
47
46
  */
48
- private readonly compiledOperationData: Buffer | null = null;
47
+ private readonly compiledOperationData: Uint8Array | null = null;
49
48
 
50
49
  public constructor(parameters: IInteractionParameters) {
51
50
  super(parameters);
@@ -67,8 +66,7 @@ export class InteractionTransactionP2WDA extends TransactionBuilder<TransactionT
67
66
  }
68
67
 
69
68
  this.disableAutoRefund = parameters.disableAutoRefund || false;
70
- this.contractAddress = parameters.to;
71
- this.contractSecret = Buffer.from(parameters.contract.replace('0x', ''), 'hex');
69
+ this.contractSecret = fromHex(parameters.contract.replace('0x', ''));
72
70
  this.calldata = Compressor.compress(parameters.calldata);
73
71
  this.challenge = parameters.challenge;
74
72
  this.randomBytes = parameters.randomBytes || BitcoinUtils.rndBytes();
@@ -79,7 +77,7 @@ export class InteractionTransactionP2WDA extends TransactionBuilder<TransactionT
79
77
  // Create the P2WDA generator instead of CalldataGenerator
80
78
  // P2WDA needs a different data format optimized for witness embedding
81
79
  this.p2wdaGenerator = new P2WDAGenerator(
82
- Buffer.from(this.signer.publicKey),
80
+ this.signer.publicKey,
83
81
  this.scriptSignerXOnlyPubKey(),
84
82
  this.network,
85
83
  );
@@ -98,10 +96,10 @@ export class InteractionTransactionP2WDA extends TransactionBuilder<TransactionT
98
96
  this.validateP2WDAInputs();
99
97
 
100
98
  if (parameters.compiledTargetScript) {
101
- if (Buffer.isBuffer(parameters.compiledTargetScript)) {
99
+ if (parameters.compiledTargetScript instanceof Uint8Array) {
102
100
  this.compiledOperationData = parameters.compiledTargetScript;
103
101
  } else if (typeof parameters.compiledTargetScript === 'string') {
104
- this.compiledOperationData = Buffer.from(parameters.compiledTargetScript, 'hex');
102
+ this.compiledOperationData = fromHex(parameters.compiledTargetScript);
105
103
  } else {
106
104
  throw new Error('Invalid compiled target script format.');
107
105
  }
@@ -124,7 +122,7 @@ export class InteractionTransactionP2WDA extends TransactionBuilder<TransactionT
124
122
  /**
125
123
  * Get random bytes (for compatibility if needed elsewhere)
126
124
  */
127
- public getRndBytes(): Buffer {
125
+ public getRndBytes(): Uint8Array {
128
126
  return this.randomBytes;
129
127
  }
130
128
 
@@ -138,7 +136,7 @@ export class InteractionTransactionP2WDA extends TransactionBuilder<TransactionT
138
136
  /**
139
137
  * Get contract secret (for compatibility if needed elsewhere)
140
138
  */
141
- public getContractSecret(): Buffer {
139
+ public getContractSecret(): Uint8Array {
142
140
  return this.contractSecret;
143
141
  }
144
142
 
@@ -173,7 +171,7 @@ export class InteractionTransactionP2WDA extends TransactionBuilder<TransactionT
173
171
  protected override async signInputs(transaction: Psbt): Promise<void> {
174
172
  // Sign all inputs
175
173
  for (let i = 0; i < transaction.data.inputs.length; i++) {
176
- await this.signInput(transaction, transaction.data.inputs[i], i, this.signer);
174
+ await this.signInput(transaction, transaction.data.inputs[i] as PsbtInput, i, this.signer);
177
175
  }
178
176
 
179
177
  // Finalize with appropriate finalizers
@@ -221,35 +219,35 @@ export class InteractionTransactionP2WDA extends TransactionBuilder<TransactionT
221
219
  /**
222
220
  * Generate keypair from seed (same as SharedInteractionTransaction)
223
221
  */
224
- private generateKeyPairFromSeed(): ECPairInterface {
222
+ private generateKeyPairFromSeed(): UniversalSigner {
225
223
  return EcKeyPair.fromSeedKeyPair(this.randomBytes, this.network);
226
224
  }
227
225
 
228
226
  /**
229
227
  * Get script signer x-only pubkey (same as SharedInteractionTransaction)
230
228
  */
231
- private scriptSignerXOnlyPubKey(): Buffer {
232
- return toXOnly(Buffer.from(this.scriptSigner.publicKey));
229
+ private scriptSignerXOnlyPubKey(): Uint8Array {
230
+ return toXOnly(this.scriptSigner.publicKey);
233
231
  }
234
232
 
235
233
  /**
236
234
  * Validate that input 0 is P2WDA
237
235
  */
238
236
  private validateP2WDAInputs(): void {
239
- if (this.utxos.length === 0 || !P2WDADetector.isP2WDAUTXO(this.utxos[0])) {
237
+ if (this.utxos.length === 0 || !P2WDADetector.isP2WDAUTXO(this.utxos[0] as UTXO)) {
240
238
  throw new Error('Input 0 must be a P2WDA UTXO');
241
239
  }
242
240
 
243
241
  // Track all P2WDA inputs
244
242
  for (let i = 0; i < this.utxos.length; i++) {
245
- if (P2WDADetector.isP2WDAUTXO(this.utxos[i])) {
243
+ if (P2WDADetector.isP2WDAUTXO(this.utxos[i] as UTXO)) {
246
244
  this.p2wdaInputIndices.add(i);
247
245
  }
248
246
  }
249
247
 
250
248
  for (let i = 0; i < this.optionalInputs.length; i++) {
251
249
  const actualIndex = this.utxos.length + i;
252
- if (P2WDADetector.isP2WDAUTXO(this.optionalInputs[i])) {
250
+ if (P2WDADetector.isP2WDAUTXO(this.optionalInputs[i] as UTXO)) {
253
251
  this.p2wdaInputIndices.add(actualIndex);
254
252
  }
255
253
  }
@@ -291,8 +289,8 @@ export class InteractionTransactionP2WDA extends TransactionBuilder<TransactionT
291
289
  inputIndex: number,
292
290
  input: PsbtInput,
293
291
  ): {
294
- finalScriptSig: Buffer | undefined;
295
- finalScriptWitness: Buffer | undefined;
292
+ finalScriptSig: Uint8Array | undefined;
293
+ finalScriptWitness: Uint8Array | undefined;
296
294
  } {
297
295
  if (!input.partialSig || input.partialSig.length === 0) {
298
296
  throw new Error(`No signature for P2WDA input #${inputIndex}`);
@@ -306,17 +304,17 @@ export class InteractionTransactionP2WDA extends TransactionBuilder<TransactionT
306
304
  throw new Error('Operation data not compiled');
307
305
  }
308
306
 
309
- const txSignature = input.partialSig[0].signature;
310
- const messageToSign = Buffer.concat([txSignature, this.compiledOperationData]);
307
+ const txSignature = (input.partialSig[0] as { signature: Uint8Array }).signature;
308
+ const messageToSign = concat([txSignature, this.compiledOperationData]);
311
309
  const signedMessage = MessageSigner.signMessage(
312
- this.signer as ECPairInterface,
310
+ this.signer as UniversalSigner,
313
311
  messageToSign,
314
312
  );
315
313
 
316
- const schnorrSignature = Buffer.from(signedMessage.signature);
314
+ const schnorrSignature = signedMessage.signature;
317
315
 
318
316
  // Combine and compress: COMPRESS(signature + compiledOperationData)
319
- const fullData = Buffer.concat([schnorrSignature, this.compiledOperationData]);
317
+ const fullData = concat([schnorrSignature, this.compiledOperationData]);
320
318
  const compressedData = Compressor.compress(fullData);
321
319
 
322
320
  // Split into chunks
@@ -329,15 +327,15 @@ export class InteractionTransactionP2WDA extends TransactionBuilder<TransactionT
329
327
  }
330
328
 
331
329
  // Build witness stack
332
- const witnessStack: Buffer[] = [txSignature];
330
+ const witnessStack: Uint8Array[] = [txSignature];
333
331
 
334
332
  // Add exactly 10 data fields
335
333
  // Bitcoin stack is reversed!
336
334
  for (let i = 0; i < InteractionTransactionP2WDA.MAX_WITNESS_FIELDS; i++) {
337
- witnessStack.push(i < chunks.length ? chunks[i] : Buffer.alloc(0));
335
+ witnessStack.push(i < chunks.length ? (chunks[i] as Uint8Array) : new Uint8Array(0));
338
336
  }
339
337
 
340
- witnessStack.push(input.witnessScript);
338
+ witnessStack.push(input.witnessScript as Uint8Array);
341
339
 
342
340
  return {
343
341
  finalScriptSig: undefined,
@@ -348,8 +346,8 @@ export class InteractionTransactionP2WDA extends TransactionBuilder<TransactionT
348
346
  /**
349
347
  * Split data into 80-byte chunks
350
348
  */
351
- private splitIntoWitnessChunks(data: Buffer): Buffer[] {
352
- const chunks: Buffer[] = [];
349
+ private splitIntoWitnessChunks(data: Uint8Array): Uint8Array[] {
350
+ const chunks: Uint8Array[] = [];
353
351
  let offset = 0;
354
352
 
355
353
  while (offset < data.length) {
@@ -357,7 +355,7 @@ export class InteractionTransactionP2WDA extends TransactionBuilder<TransactionT
357
355
  InteractionTransactionP2WDA.MAX_BYTES_PER_WITNESS,
358
356
  data.length - offset,
359
357
  );
360
- chunks.push(Buffer.from(data.subarray(offset, offset + size)));
358
+ chunks.push(data.slice(offset, offset + size));
361
359
  offset += size;
362
360
  }
363
361