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

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 +3583 -3184
  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 +18 -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 +275 -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 +10 -3
  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 +6 -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 +219 -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 +48 -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 +36 -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 +24 -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 +377 -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 +41 -3
  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 +6 -6
  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 +16 -147
  683. package/src/keypair/EcKeyPair.ts +105 -114
  684. package/src/keypair/MessageSigner.ts +70 -150
  685. package/src/keypair/Wallet.ts +59 -240
  686. package/src/metadata/ContractBaseMetadata.ts +2 -2
  687. package/src/mnemonic/Mnemonic.ts +32 -221
  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 +28 -13
  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 +101 -79
  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 +7 -7
  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,34 +1,41 @@
1
1
  import {
2
2
  crypto as bitcoinCrypto,
3
+ equals,
4
+ fromHex,
3
5
  opcodes,
4
- P2TRPayment,
6
+ type P2TRPayment,
5
7
  PaymentType,
6
8
  Psbt,
7
- PsbtInput,
8
- PsbtInputExtended,
9
- PsbtOutputExtended,
9
+ type PsbtInput,
10
+ type PsbtInputExtended,
11
+ type PsbtOutputExtended,
12
+ type PublicKey,
13
+ type Script,
10
14
  script,
11
- Signer,
12
- TapScriptSig,
13
- Taptree,
15
+ type Signer,
16
+ type TapScriptSig,
17
+ type Taptree,
18
+ toHex,
19
+ toSatoshi,
14
20
  toXOnly,
15
21
  } from '@btc-vision/bitcoin';
16
22
  import { TransactionBuilder } from './TransactionBuilder.js';
17
23
  import { TransactionType } from '../enums/TransactionType.js';
18
- import { ITransactionParameters } from '../interfaces/ITransactionParameters.js';
24
+ import type { UpdateInput } from '../interfaces/Tap.js';
25
+ import type { ITransactionParameters } from '../interfaces/ITransactionParameters.js';
19
26
  import { MultiSignGenerator } from '../../generators/builders/MultiSignGenerator.js';
20
- import { UTXO } from '../../utxo/interfaces/IUTXO.js';
27
+ import type { UTXO } from '../../utxo/interfaces/IUTXO.js';
21
28
  import { EcKeyPair } from '../../keypair/EcKeyPair.js';
22
- import { ECPairInterface } from 'ecpair';
29
+ import { type UniversalSigner } from '@btc-vision/ecpair';
23
30
 
24
31
  export interface MultiSignParameters extends Omit<
25
32
  ITransactionParameters,
26
- 'gasSatFee' | 'priorityFee' | 'signer'
33
+ 'gasSatFee' | 'priorityFee' | 'signer' | 'from' | 'to'
27
34
  > {
28
- readonly pubkeys: Buffer[];
35
+ readonly pubkeys: Uint8Array[];
29
36
  readonly minimumSignatures: number;
30
- readonly from?: undefined;
31
- readonly to?: undefined;
37
+ readonly from?: string | undefined;
38
+ readonly to?: string | undefined;
32
39
  readonly psbt?: Psbt;
33
40
  readonly receiver: string;
34
41
  readonly requestedAmount: bigint;
@@ -44,7 +51,7 @@ export interface MultiSignFromBase64Params extends Omit<MultiSignParameters, 'ps
44
51
  * @class MultiSignTransaction
45
52
  */
46
53
  export class MultiSignTransaction extends TransactionBuilder<TransactionType.MULTI_SIG> {
47
- public static readonly LOCK_LEAF_SCRIPT: Buffer = script.compile([
54
+ public static readonly LOCK_LEAF_SCRIPT: Script = script.compile([
48
55
  opcodes.OP_XOR,
49
56
  opcodes.OP_NOP,
50
57
  opcodes.OP_CODESEPARATOR,
@@ -54,20 +61,19 @@ export class MultiSignTransaction extends TransactionBuilder<TransactionType.MUL
54
61
  //Transaction.SIGHASH_ALL,
55
62
  //Transaction.SIGHASH_ANYONECANPAY,
56
63
  ];
57
- public static readonly numsPoint = Buffer.from(
64
+ public static readonly numsPoint: PublicKey = fromHex(
58
65
  '50929b74c1a04954b78b4b6035e97a5e078a5a0f28ec96d547bfee9ace803ac0',
59
- 'hex',
60
- );
66
+ ) as PublicKey;
61
67
 
62
68
  public type: TransactionType.MULTI_SIG = TransactionType.MULTI_SIG;
63
69
 
64
70
  protected targetScriptRedeem: P2TRPayment | null = null;
65
71
  protected leftOverFundsScriptRedeem: P2TRPayment | null = null;
66
72
 
67
- protected readonly compiledTargetScript: Buffer;
73
+ protected readonly compiledTargetScript: Uint8Array;
68
74
  protected readonly scriptTree: Taptree;
69
75
 
70
- protected readonly publicKeys: Buffer[];
76
+ protected readonly publicKeys: Uint8Array[];
71
77
  protected readonly minimumSignatures: number;
72
78
 
73
79
  protected readonly originalInputCount: number = 0;
@@ -79,7 +85,7 @@ export class MultiSignTransaction extends TransactionBuilder<TransactionType.MUL
79
85
  * @description Sign hash types
80
86
  * @protected
81
87
  */
82
- protected readonly sighashTypes: number[] = MultiSignTransaction.signHashTypesArray;
88
+ protected override readonly sighashTypes: number[] = MultiSignTransaction.signHashTypesArray;
83
89
 
84
90
  public constructor(parameters: MultiSignParameters) {
85
91
  if (!parameters.refundVault) {
@@ -97,11 +103,11 @@ export class MultiSignTransaction extends TransactionBuilder<TransactionType.MUL
97
103
  super({
98
104
  ...parameters,
99
105
  signer: EcKeyPair.fromPrivateKey(
100
- bitcoinCrypto.sha256(Buffer.from('aaaaaaaa', 'utf-8')),
106
+ bitcoinCrypto.sha256(new TextEncoder().encode('aaaaaaaa')),
101
107
  ),
102
108
  priorityFee: 0n,
103
109
  gasSatFee: 0n,
104
- });
110
+ } as ITransactionParameters);
105
111
 
106
112
  if (!parameters.pubkeys) {
107
113
  throw new Error('Pubkeys are required');
@@ -149,10 +155,10 @@ export class MultiSignTransaction extends TransactionBuilder<TransactionType.MUL
149
155
  * @param {Buffer} signerPubKey The signer public key
150
156
  * @returns {boolean} True if the public key signed the transaction
151
157
  */
152
- public static verifyIfSigned(psbt: Psbt, signerPubKey: Buffer): boolean {
158
+ public static verifyIfSigned(psbt: Psbt, signerPubKey: Uint8Array): boolean {
153
159
  let alreadySigned: boolean = false;
154
160
  for (let i = 1; i < psbt.data.inputs.length; i++) {
155
- const input: PsbtInput = psbt.data.inputs[i];
161
+ const input: PsbtInput = psbt.data.inputs[i] as PsbtInput;
156
162
  if (!input.finalScriptWitness) {
157
163
  continue;
158
164
  }
@@ -166,9 +172,9 @@ export class MultiSignTransaction extends TransactionBuilder<TransactionType.MUL
166
172
  }
167
173
 
168
174
  for (let j = 0; j < decoded.length - 2; j += 3) {
169
- const pubKey = decoded[j + 2];
175
+ const pubKey = decoded[j + 2] as Uint8Array;
170
176
 
171
- if (pubKey.equals(signerPubKey)) {
177
+ if (equals(pubKey, signerPubKey)) {
172
178
  alreadySigned = true;
173
179
  break;
174
180
  }
@@ -185,7 +191,7 @@ export class MultiSignTransaction extends TransactionBuilder<TransactionType.MUL
185
191
  */
186
192
  public static signPartial(
187
193
  psbt: Psbt,
188
- signer: Signer | ECPairInterface,
194
+ signer: Signer | UniversalSigner,
189
195
  originalInputCount: number,
190
196
  minimums: number[],
191
197
  ): {
@@ -196,7 +202,7 @@ export class MultiSignTransaction extends TransactionBuilder<TransactionType.MUL
196
202
  let final: boolean = true;
197
203
 
198
204
  for (let i = originalInputCount; i < psbt.data.inputs.length; i++) {
199
- const input: PsbtInput = psbt.data.inputs[i];
205
+ const input: PsbtInput = psbt.data.inputs[i] as PsbtInput;
200
206
  if (!input.tapInternalKey) {
201
207
  input.tapInternalKey = toXOnly(MultiSignTransaction.numsPoint);
202
208
  }
@@ -210,17 +216,17 @@ export class MultiSignTransaction extends TransactionBuilder<TransactionType.MUL
210
216
  input.tapLeafScript = [
211
217
  {
212
218
  leafVersion: 192,
213
- script: decoded[decoded.length - 2],
214
- controlBlock: decoded[decoded.length - 1],
219
+ script: decoded[decoded.length - 2] as Uint8Array,
220
+ controlBlock: decoded[decoded.length - 1] as Uint8Array,
215
221
  },
216
222
  ];
217
223
 
218
224
  // we must insert all the partial signatures, decoded.length - 2
219
225
  for (let j = 0; j < decoded.length - 2; j += 3) {
220
226
  partialSignatures.push({
221
- signature: decoded[j],
222
- leafHash: decoded[j + 1],
223
- pubkey: decoded[j + 2],
227
+ signature: decoded[j] as Uint8Array,
228
+ leafHash: decoded[j + 1] as Uint8Array,
229
+ pubkey: decoded[j + 2] as Uint8Array,
224
230
  });
225
231
  }
226
232
 
@@ -266,14 +272,14 @@ export class MultiSignTransaction extends TransactionBuilder<TransactionType.MUL
266
272
  public static partialFinalizer = (
267
273
  inputIndex: number,
268
274
  input: PsbtInput,
269
- partialSignatures: Buffer[],
270
- orderedPubKeys: Buffer[],
275
+ partialSignatures: Uint8Array[],
276
+ orderedPubKeys: Uint8Array[],
271
277
  isFinal: boolean,
272
278
  ) => {
273
279
  if (
274
280
  !input.tapLeafScript ||
275
- !input.tapLeafScript[0].script ||
276
- !input.tapLeafScript[0].controlBlock
281
+ !input.tapLeafScript[0]?.script ||
282
+ !input.tapLeafScript[0]?.controlBlock
277
283
  ) {
278
284
  throw new Error('Tap leaf script is required');
279
285
  }
@@ -282,7 +288,7 @@ export class MultiSignTransaction extends TransactionBuilder<TransactionType.MUL
282
288
  throw new Error(`No new signatures for input ${inputIndex}.`);
283
289
  }
284
290
 
285
- let scriptSolution: Buffer[] = [];
291
+ let scriptSolution: Uint8Array[] = [];
286
292
  if (!isFinal) {
287
293
  scriptSolution = input.tapScriptSig
288
294
  .map((sig) => {
@@ -294,14 +300,14 @@ export class MultiSignTransaction extends TransactionBuilder<TransactionType.MUL
294
300
  for (const pubKey of orderedPubKeys) {
295
301
  let found = false;
296
302
  for (const sig of input.tapScriptSig) {
297
- if (sig.pubkey.equals(toXOnly(pubKey))) {
303
+ if (equals(sig.pubkey, toXOnly(pubKey as PublicKey))) {
298
304
  scriptSolution.push(sig.signature);
299
305
  found = true;
300
306
  }
301
307
  }
302
308
 
303
309
  if (!found) {
304
- scriptSolution.push(Buffer.alloc(0));
310
+ scriptSolution.push(new Uint8Array(0));
305
311
  }
306
312
  }
307
313
 
@@ -312,9 +318,10 @@ export class MultiSignTransaction extends TransactionBuilder<TransactionType.MUL
312
318
  scriptSolution = scriptSolution.concat(partialSignatures);
313
319
  }
314
320
 
321
+ const tapLeaf = input.tapLeafScript[0] as { script: Uint8Array; controlBlock: Uint8Array };
315
322
  const witness = scriptSolution
316
- .concat(input.tapLeafScript[0].script)
317
- .concat(input.tapLeafScript[0].controlBlock);
323
+ .concat(tapLeaf.script)
324
+ .concat(tapLeaf.controlBlock);
318
325
 
319
326
  return {
320
327
  finalScriptWitness: TransactionBuilder.witnessStackToScriptWitness(witness),
@@ -333,12 +340,12 @@ export class MultiSignTransaction extends TransactionBuilder<TransactionType.MUL
333
340
  ): TapScriptSig[] {
334
341
  const signatures = new Map<string, TapScriptSig>();
335
342
  for (const sig of original) {
336
- signatures.set(sig.pubkey.toString('hex'), sig);
343
+ signatures.set(toHex(sig.pubkey), sig);
337
344
  }
338
345
 
339
346
  for (const sig of partial) {
340
- if (!signatures.has(sig.pubkey.toString('hex'))) {
341
- signatures.set(sig.pubkey.toString('hex'), sig);
347
+ if (!signatures.has(toHex(sig.pubkey))) {
348
+ signatures.set(toHex(sig.pubkey), sig);
342
349
  }
343
350
  }
344
351
 
@@ -356,13 +363,13 @@ export class MultiSignTransaction extends TransactionBuilder<TransactionType.MUL
356
363
  public static attemptFinalizeInputs(
357
364
  psbt: Psbt,
358
365
  startIndex: number,
359
- orderedPubKeys: Buffer[][],
366
+ orderedPubKeys: Uint8Array[][],
360
367
  isFinal: boolean,
361
368
  ): boolean {
362
369
  let finalizedInputs = 0;
363
370
  for (let i = startIndex; i < psbt.data.inputs.length; i++) {
364
371
  try {
365
- const input = psbt.data.inputs[i];
372
+ const input = psbt.data.inputs[i] as PsbtInput;
366
373
 
367
374
  if (!input.tapInternalKey) {
368
375
  input.tapInternalKey = toXOnly(MultiSignTransaction.numsPoint);
@@ -377,17 +384,17 @@ export class MultiSignTransaction extends TransactionBuilder<TransactionType.MUL
377
384
  // we must insert all the partial signatures, decoded.length - 2
378
385
  for (let j = 0; j < decoded.length - 2; j += 3) {
379
386
  partialSignatures.push({
380
- signature: decoded[j],
381
- leafHash: decoded[j + 1],
382
- pubkey: decoded[j + 2],
387
+ signature: decoded[j] as Uint8Array,
388
+ leafHash: decoded[j + 1] as Uint8Array,
389
+ pubkey: decoded[j + 2] as Uint8Array,
383
390
  });
384
391
  }
385
392
 
386
393
  input.tapLeafScript = [
387
394
  {
388
395
  leafVersion: 192,
389
- script: decoded[decoded.length - 2],
390
- controlBlock: decoded[decoded.length - 1],
396
+ script: decoded[decoded.length - 2] as Uint8Array,
397
+ controlBlock: decoded[decoded.length - 1] as Uint8Array,
391
398
  },
392
399
  ];
393
400
 
@@ -405,13 +412,13 @@ export class MultiSignTransaction extends TransactionBuilder<TransactionType.MUL
405
412
  inputIndex: number,
406
413
  input: PsbtInput,
407
414
  ): {
408
- finalScriptWitness: Buffer | undefined;
415
+ finalScriptWitness: Uint8Array | undefined;
409
416
  } => {
410
417
  return MultiSignTransaction.partialFinalizer(
411
418
  inputIndex,
412
419
  input,
413
420
  [],
414
- orderedPubKeys[i - startIndex],
421
+ orderedPubKeys[i - startIndex] as Uint8Array[],
415
422
  isFinal,
416
423
  );
417
424
  },
@@ -448,7 +455,7 @@ export class MultiSignTransaction extends TransactionBuilder<TransactionType.MUL
448
455
  * @returns {Promise<Psbt>} - The signed transaction in hex format
449
456
  * @throws {Error} - If something went wrong
450
457
  */
451
- public async signPSBT(): Promise<Psbt> {
458
+ public override async signPSBT(): Promise<Psbt> {
452
459
  if (await this.signTransaction()) {
453
460
  return this.transaction;
454
461
  }
@@ -494,12 +501,12 @@ export class MultiSignTransaction extends TransactionBuilder<TransactionType.MUL
494
501
 
495
502
  this.addOutput({
496
503
  address: this.refundVault,
497
- value: Number(outputLeftAmount),
504
+ value: toSatoshi(outputLeftAmount),
498
505
  });
499
506
 
500
507
  this.addOutput({
501
508
  address: this.receiver,
502
- value: Number(this.requestedAmount),
509
+ value: toSatoshi(this.requestedAmount),
503
510
  });
504
511
  }
505
512
 
@@ -522,7 +529,7 @@ export class MultiSignTransaction extends TransactionBuilder<TransactionType.MUL
522
529
  transaction.addInputs(inputs, checkPartialSigs);
523
530
 
524
531
  for (let i = 0; i < this.updateInputs.length; i++) {
525
- transaction.updateInput(i, this.updateInputs[i]);
532
+ transaction.updateInput(i, this.updateInputs[i] as UpdateInput);
526
533
  }
527
534
 
528
535
  transaction.addOutputs(outputs);
@@ -583,7 +590,7 @@ export class MultiSignTransaction extends TransactionBuilder<TransactionType.MUL
583
590
  *
584
591
  * @returns {Buffer[]} The script solution
585
592
  */
586
- protected getScriptSolution(input: PsbtInput): Buffer[] {
593
+ protected getScriptSolution(input: PsbtInput): Uint8Array[] {
587
594
  if (!input.tapScriptSig) {
588
595
  return [];
589
596
  }
@@ -667,7 +674,7 @@ export class MultiSignTransaction extends TransactionBuilder<TransactionType.MUL
667
674
  private generateRedeemScripts(): void {
668
675
  this.targetScriptRedeem = {
669
676
  name: PaymentType.P2TR,
670
- output: this.compiledTargetScript,
677
+ output: this.compiledTargetScript as Script,
671
678
  redeemVersion: 192,
672
679
  };
673
680
 
@@ -1,16 +1,28 @@
1
- import { P2TRPayment, PaymentType, Psbt, PsbtInput, Signer, Taptree, toXOnly, } from '@btc-vision/bitcoin';
2
- import { ECPairInterface } from 'ecpair';
1
+ import {
2
+ type FinalScriptsFunc,
3
+ type P2TRPayment,
4
+ PaymentType,
5
+ Psbt,
6
+ type PsbtInput,
7
+ type Script,
8
+ type Signer,
9
+ type TapScriptSig,
10
+ type Taptree,
11
+ toXOnly,
12
+ } from '@btc-vision/bitcoin';
13
+ import { type UniversalSigner } from '@btc-vision/ecpair';
14
+ import { isUniversalSigner } from '../../signer/TweakedSigner.js';
3
15
  import { MINIMUM_AMOUNT_REWARD, TransactionBuilder } from './TransactionBuilder.js';
4
16
  import { TransactionType } from '../enums/TransactionType.js';
5
17
  import { CalldataGenerator } from '../../generators/builders/CalldataGenerator.js';
6
- import { SharedInteractionParameters } from '../interfaces/ITransactionParameters.js';
18
+ import type { SharedInteractionParameters } from '../interfaces/ITransactionParameters.js';
7
19
  import { Compressor } from '../../bytecode/Compressor.js';
8
20
  import { EcKeyPair } from '../../keypair/EcKeyPair.js';
9
21
  import { BitcoinUtils } from '../../utils/BitcoinUtils.js';
10
22
  import { UnisatSigner } from '../browser/extensions/UnisatSigner.js';
11
23
  import { TimeLockGenerator } from '../mineable/TimelockGenerator.js';
12
- import { IChallengeSolution } from '../../epoch/interfaces/IChallengeSolution.js';
13
- import { IP2WSHAddress } from '../mineable/IP2WSHAddress.js';
24
+ import type { IChallengeSolution } from '../../epoch/interfaces/IChallengeSolution.js';
25
+ import type { IP2WSHAddress } from '../mineable/IP2WSHAddress.js';
14
26
 
15
27
  /**
16
28
  * Shared interaction transaction
@@ -25,12 +37,12 @@ export abstract class SharedInteractionTransaction<
25
37
  * Random salt for the interaction
26
38
  * @type {Buffer}
27
39
  */
28
- public readonly randomBytes: Buffer;
40
+ public readonly randomBytes: Uint8Array;
29
41
 
30
42
  protected targetScriptRedeem: P2TRPayment | null = null;
31
43
  protected leftOverFundsScriptRedeem: P2TRPayment | null = null;
32
44
 
33
- protected abstract readonly compiledTargetScript: Buffer;
45
+ protected abstract readonly compiledTargetScript: Uint8Array;
34
46
  protected abstract readonly scriptTree: Taptree;
35
47
 
36
48
  protected readonly challenge: IChallengeSolution;
@@ -42,19 +54,19 @@ export abstract class SharedInteractionTransaction<
42
54
  * Calldata for the interaction
43
55
  * @protected
44
56
  */
45
- protected readonly calldata: Buffer;
57
+ protected readonly calldata: Uint8Array;
46
58
 
47
59
  /**
48
60
  * Contract secret for the interaction
49
61
  * @protected
50
62
  */
51
- protected abstract readonly contractSecret: Buffer;
63
+ protected abstract readonly contractSecret: Uint8Array;
52
64
 
53
65
  /**
54
66
  * Script signer for the interaction
55
67
  * @protected
56
68
  */
57
- protected readonly scriptSigner: Signer | ECPairInterface;
69
+ protected readonly scriptSigner: Signer | UniversalSigner;
58
70
 
59
71
  /**
60
72
  * Disable auto refund
@@ -89,13 +101,13 @@ export abstract class SharedInteractionTransaction<
89
101
  this.scriptSigner = this.generateKeyPairFromSeed();
90
102
 
91
103
  this.calldataGenerator = new CalldataGenerator(
92
- Buffer.from(this.signer.publicKey),
104
+ this.signer.publicKey,
93
105
  this.scriptSignerXOnlyPubKey(),
94
106
  this.network,
95
107
  );
96
108
  }
97
109
 
98
- public exportCompiledTargetScript(): Buffer {
110
+ public exportCompiledTargetScript(): Uint8Array {
99
111
  return this.compiledTargetScript;
100
112
  }
101
113
 
@@ -103,7 +115,7 @@ export abstract class SharedInteractionTransaction<
103
115
  * Get the contract secret
104
116
  * @returns {Buffer} The contract secret
105
117
  */
106
- public getContractSecret(): Buffer {
118
+ public getContractSecret(): Uint8Array {
107
119
  return this.contractSecret;
108
120
  }
109
121
 
@@ -111,7 +123,7 @@ export abstract class SharedInteractionTransaction<
111
123
  * Get the random bytes used for the interaction
112
124
  * @returns {Buffer} The random bytes
113
125
  */
114
- public getRndBytes(): Buffer {
126
+ public getRndBytes(): Uint8Array {
115
127
  return this.randomBytes;
116
128
  }
117
129
 
@@ -127,17 +139,17 @@ export abstract class SharedInteractionTransaction<
127
139
  * @protected
128
140
  * @returns {Buffer} The internal pubkey as an x-only key
129
141
  */
130
- protected scriptSignerXOnlyPubKey(): Buffer {
131
- return toXOnly(Buffer.from(this.scriptSigner.publicKey));
142
+ protected scriptSignerXOnlyPubKey(): Uint8Array {
143
+ return toXOnly(this.scriptSigner.publicKey);
132
144
  }
133
145
 
134
146
  /**
135
147
  * Generate a key pair from the seed
136
148
  * @protected
137
149
  *
138
- * @returns {ECPairInterface} The key pair
150
+ * @returns {UniversalSigner} The key pair
139
151
  */
140
- protected generateKeyPairFromSeed(): ECPairInterface {
152
+ protected generateKeyPairFromSeed(): UniversalSigner {
141
153
  return EcKeyPair.fromSeedKeyPair(this.randomBytes, this.network);
142
154
  }
143
155
 
@@ -237,16 +249,16 @@ export abstract class SharedInteractionTransaction<
237
249
  *
238
250
  * @returns {Buffer[]} The script solution
239
251
  */
240
- protected getScriptSolution(input: PsbtInput): Buffer[] {
252
+ protected getScriptSolution(input: PsbtInput): Uint8Array[] {
241
253
  if (!input.tapScriptSig) {
242
254
  throw new Error('Tap script signature is required');
243
255
  }
244
256
 
245
257
  return [
246
258
  this.contractSecret,
247
- input.tapScriptSig[0].signature,
248
- input.tapScriptSig[1].signature,
249
- ] as Buffer[];
259
+ (input.tapScriptSig[0] as TapScriptSig).signature,
260
+ (input.tapScriptSig[1] as TapScriptSig).signature,
261
+ ] as Uint8Array[];
250
262
  }
251
263
 
252
264
  /**
@@ -303,7 +315,7 @@ export abstract class SharedInteractionTransaction<
303
315
  const signer: UnisatSigner = this.signer as UnisatSigner;
304
316
 
305
317
  // first, we sign the first input with the script signer.
306
- await this.signInput(transaction, transaction.data.inputs[0], 0, this.scriptSigner);
318
+ await this.signInput(transaction, transaction.data.inputs[0] as PsbtInput, 0, this.scriptSigner);
307
319
 
308
320
  // then, we sign all the remaining inputs with the wallet signer.
309
321
  await signer.multiSignPsbt([transaction]);
@@ -323,28 +335,56 @@ export abstract class SharedInteractionTransaction<
323
335
  }
324
336
 
325
337
  protected override async signInputsNonWalletBased(transaction: Psbt): Promise<void> {
326
- for (let i = 0; i < transaction.data.inputs.length; i++) {
327
- if (i === 0) {
328
- await this.signInput(transaction, transaction.data.inputs[i], i, this.scriptSigner);
329
-
330
- await this.signInput(
331
- transaction,
332
- transaction.data.inputs[i],
333
- i,
334
- this.getSignerKey(),
338
+ // Input 0: always sequential (needs scriptSigner + main signer, custom finalizer)
339
+ await this.signInput(transaction, transaction.data.inputs[0] as PsbtInput, 0, this.scriptSigner);
340
+ await this.signInput(transaction, transaction.data.inputs[0] as PsbtInput, 0, this.getSignerKey());
341
+ transaction.finalizeInput(0, this.customFinalizer.bind(this));
342
+
343
+ // Inputs 1+: parallel key-path if available, then sequential for remaining
344
+ if (this.canUseParallelSigning && isUniversalSigner(this.signer)) {
345
+ let parallelSignedIndices = new Set<number>();
346
+
347
+ try {
348
+ const result = await this.signKeyPathInputsParallel(transaction, new Set([0]));
349
+ if (result.success) {
350
+ parallelSignedIndices = new Set(result.signatures.keys());
351
+ }
352
+ } catch (e) {
353
+ this.error(
354
+ `Parallel signing failed, falling back to sequential: ${(e as Error).message}`,
335
355
  );
356
+ }
336
357
 
337
- transaction.finalizeInput(0, this.customFinalizer.bind(this));
338
- } else {
339
- await this.signInput(transaction, transaction.data.inputs[i], i, this.signer);
340
-
341
- try {
342
- transaction.finalizeInput(i, this.customFinalizerP2SH.bind(this));
343
- } catch (e) {
344
- transaction.finalizeInput(i);
358
+ // Sign remaining inputs 1+ that weren't handled by parallel signing
359
+ for (let i = 1; i < transaction.data.inputs.length; i++) {
360
+ if (!parallelSignedIndices.has(i)) {
361
+ await this.signInput(
362
+ transaction,
363
+ transaction.data.inputs[i] as PsbtInput,
364
+ i,
365
+ this.signer,
366
+ );
345
367
  }
346
368
  }
369
+ } else {
370
+ for (let i = 1; i < transaction.data.inputs.length; i++) {
371
+ await this.signInput(transaction, transaction.data.inputs[i] as PsbtInput, i, this.signer);
372
+ }
347
373
  }
374
+
375
+ // Finalize inputs 1+
376
+ for (let i = 1; i < transaction.data.inputs.length; i++) {
377
+ try {
378
+ transaction.finalizeInput(
379
+ i,
380
+ this.customFinalizerP2SH.bind(this) as FinalScriptsFunc,
381
+ );
382
+ } catch {
383
+ transaction.finalizeInput(i);
384
+ }
385
+ }
386
+
387
+ this.finalized = true;
348
388
  }
349
389
 
350
390
  protected async createMineableRewardOutputs(): Promise<void> {
@@ -367,22 +407,6 @@ export abstract class SharedInteractionTransaction<
367
407
  }
368
408
  }
369
409
 
370
- /**
371
- * Get the public keys
372
- * @private
373
- *
374
- * @returns {Buffer[]} The public keys
375
- */
376
- private getPubKeys(): Buffer[] {
377
- const pubKeys = [Buffer.from(this.signer.publicKey)];
378
-
379
- if (this.scriptSigner) {
380
- pubKeys.push(Buffer.from(this.scriptSigner.publicKey));
381
- }
382
-
383
- return pubKeys;
384
- }
385
-
386
410
  /**
387
411
  * Generate the redeem scripts
388
412
  * @private
@@ -396,7 +420,7 @@ export abstract class SharedInteractionTransaction<
396
420
  private generateRedeemScripts(): void {
397
421
  this.targetScriptRedeem = {
398
422
  name: PaymentType.P2TR,
399
- output: this.compiledTargetScript,
423
+ output: this.compiledTargetScript as Script,
400
424
  redeemVersion: 192,
401
425
  };
402
426