@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,11 +1,10 @@
1
1
  import { createHash } from 'crypto';
2
+ import { toHex, fromHex } from '@btc-vision/bitcoin';
2
3
  import { BinaryWriter } from '../../buffer/BinaryWriter.js';
3
4
  import { BinaryReader } from '../../buffer/BinaryReader.js';
4
- import {
5
+ import type {
5
6
  ISerializableTransactionState,
6
7
  PrecomputedData,
7
- SERIALIZATION_FORMAT_VERSION,
8
- SERIALIZATION_MAGIC_BYTE,
9
8
  SerializationHeader,
10
9
  SerializedBaseParams,
11
10
  SerializedOutput,
@@ -13,6 +12,10 @@ import {
13
12
  SerializedUTXO,
14
13
  } from './interfaces/ISerializableState.js';
15
14
  import {
15
+ SERIALIZATION_FORMAT_VERSION,
16
+ SERIALIZATION_MAGIC_BYTE,
17
+ } from './interfaces/ISerializableState.js';
18
+ import type {
16
19
  CancelSpecificData,
17
20
  CustomScriptSpecificData,
18
21
  DeploymentSpecificData,
@@ -24,7 +27,10 @@ import {
24
27
  TypeSpecificData,
25
28
  } from './interfaces/ITypeSpecificData.js';
26
29
  import { TransactionType } from '../enums/TransactionType.js';
27
- import { RawChallenge, RawChallengeVerification, } from '../../epoch/interfaces/IChallengeSolution.js';
30
+ import type {
31
+ RawChallenge,
32
+ RawChallengeVerification,
33
+ } from '../../epoch/interfaces/IChallengeSolution.js';
28
34
 
29
35
  /**
30
36
  * Serializes and deserializes transaction state for offline signing.
@@ -34,9 +40,9 @@ export class TransactionSerializer {
34
40
  /**
35
41
  * Serialize transaction state to binary format
36
42
  * @param state - The transaction state to serialize
37
- * @returns Buffer containing serialized state with checksum
43
+ * @returns Uint8Array containing serialized state with checksum
38
44
  */
39
- public static serialize(state: ISerializableTransactionState): Buffer {
45
+ public static serialize(state: ISerializableTransactionState): Uint8Array {
40
46
  const writer = new BinaryWriter();
41
47
 
42
48
  // Write header
@@ -63,19 +69,23 @@ export class TransactionSerializer {
63
69
  this.writePrecomputedData(writer, state.precomputedData);
64
70
 
65
71
  // Get buffer and calculate checksum
66
- const dataBuffer = Buffer.from(writer.getBuffer());
72
+ const dataBuffer = writer.getBuffer();
67
73
  const checksum = this.calculateChecksum(dataBuffer);
68
74
 
69
- return Buffer.concat([dataBuffer, checksum]);
75
+ // Concatenate data + checksum
76
+ const result = new Uint8Array(dataBuffer.length + checksum.length);
77
+ result.set(dataBuffer, 0);
78
+ result.set(checksum, dataBuffer.length);
79
+ return result;
70
80
  }
71
81
 
72
82
  /**
73
83
  * Deserialize binary format to transaction state
74
- * @param data - Buffer containing serialized state
84
+ * @param data - Uint8Array containing serialized state
75
85
  * @returns Deserialized transaction state
76
86
  * @throws Error if checksum validation fails or format is invalid
77
87
  */
78
- public static deserialize(data: Buffer): ISerializableTransactionState {
88
+ public static deserialize(data: Uint8Array): ISerializableTransactionState {
79
89
  // Verify checksum (last 32 bytes)
80
90
  if (data.length < 32) {
81
91
  throw new Error('Invalid serialized data: too short');
@@ -85,7 +95,7 @@ export class TransactionSerializer {
85
95
  const payload = data.subarray(0, -32);
86
96
  const expectedChecksum = this.calculateChecksum(payload);
87
97
 
88
- if (!checksum.equals(expectedChecksum)) {
98
+ if (!this.bytesEqual(checksum, expectedChecksum)) {
89
99
  throw new Error('Invalid checksum - data may be corrupted');
90
100
  }
91
101
 
@@ -138,7 +148,8 @@ export class TransactionSerializer {
138
148
  * @returns Base64-encoded string
139
149
  */
140
150
  public static toBase64(state: ISerializableTransactionState): string {
141
- return this.serialize(state).toString('base64');
151
+ const bytes = this.serialize(state);
152
+ return this.uint8ArrayToBase64(bytes);
142
153
  }
143
154
 
144
155
  /**
@@ -147,7 +158,7 @@ export class TransactionSerializer {
147
158
  * @returns Deserialized transaction state
148
159
  */
149
160
  public static fromBase64(base64: string): ISerializableTransactionState {
150
- return this.deserialize(Buffer.from(base64, 'base64'));
161
+ return this.deserialize(this.base64ToUint8Array(base64));
151
162
  }
152
163
 
153
164
  /**
@@ -156,7 +167,7 @@ export class TransactionSerializer {
156
167
  * @returns Hex-encoded string
157
168
  */
158
169
  public static toHex(state: ISerializableTransactionState): string {
159
- return this.serialize(state).toString('hex');
170
+ return toHex(this.serialize(state));
160
171
  }
161
172
 
162
173
  /**
@@ -165,7 +176,7 @@ export class TransactionSerializer {
165
176
  * @returns Deserialized transaction state
166
177
  */
167
178
  public static fromHex(hex: string): ISerializableTransactionState {
168
- return this.deserialize(Buffer.from(hex, 'hex'));
179
+ return this.deserialize(fromHex(hex));
169
180
  }
170
181
 
171
182
  private static writeHeader(writer: BinaryWriter, header: SerializationHeader): void {
@@ -207,7 +218,7 @@ export class TransactionSerializer {
207
218
  writer.writeU8(params.txVersion);
208
219
  writer.writeBoolean(params.note !== undefined);
209
220
  if (params.note !== undefined) {
210
- writer.writeBytesWithLength(Buffer.from(params.note, 'hex'));
221
+ writer.writeBytesWithLength(fromHex(params.note));
211
222
  }
212
223
  writer.writeBoolean(params.anchor);
213
224
  writer.writeBoolean(params.debugFees ?? false);
@@ -224,22 +235,22 @@ export class TransactionSerializer {
224
235
  const txVersion = reader.readU8();
225
236
  const hasNote = reader.readBoolean();
226
237
  const note = hasNote
227
- ? Buffer.from(reader.readBytesWithLength()).toString('hex')
238
+ ? toHex(reader.readBytesWithLength())
228
239
  : undefined;
229
240
  const anchor = reader.readBoolean();
230
241
  const debugFees = reader.readBoolean();
231
242
 
232
243
  return {
233
244
  from,
234
- to,
235
245
  feeRate,
236
246
  priorityFee,
237
247
  gasSatFee,
238
248
  networkName,
239
249
  txVersion,
240
- note,
241
250
  anchor,
242
251
  debugFees,
252
+ ...(to !== undefined ? { to } : {}),
253
+ ...(note !== undefined ? { note } : {}),
243
254
  };
244
255
  }
245
256
 
@@ -252,10 +263,10 @@ export class TransactionSerializer {
252
263
 
253
264
  private static writeUTXO(writer: BinaryWriter, utxo: SerializedUTXO): void {
254
265
  // Transaction ID (32 bytes)
255
- writer.writeBytes(Buffer.from(utxo.transactionId, 'hex'));
266
+ writer.writeBytes(fromHex(utxo.transactionId));
256
267
  writer.writeU32(utxo.outputIndex);
257
268
  writer.writeU64(BigInt(utxo.value));
258
- writer.writeBytesWithLength(Buffer.from(utxo.scriptPubKeyHex, 'hex'));
269
+ writer.writeBytesWithLength(fromHex(utxo.scriptPubKeyHex));
259
270
 
260
271
  // Optional address
261
272
  writer.writeBoolean(utxo.scriptPubKeyAddress !== undefined);
@@ -266,17 +277,17 @@ export class TransactionSerializer {
266
277
  // Optional scripts
267
278
  writer.writeBoolean(utxo.redeemScript !== undefined);
268
279
  if (utxo.redeemScript !== undefined) {
269
- writer.writeBytesWithLength(Buffer.from(utxo.redeemScript, 'hex'));
280
+ writer.writeBytesWithLength(fromHex(utxo.redeemScript));
270
281
  }
271
282
 
272
283
  writer.writeBoolean(utxo.witnessScript !== undefined);
273
284
  if (utxo.witnessScript !== undefined) {
274
- writer.writeBytesWithLength(Buffer.from(utxo.witnessScript, 'hex'));
285
+ writer.writeBytesWithLength(fromHex(utxo.witnessScript));
275
286
  }
276
287
 
277
288
  writer.writeBoolean(utxo.nonWitnessUtxo !== undefined);
278
289
  if (utxo.nonWitnessUtxo !== undefined) {
279
- writer.writeBytesWithLength(Buffer.from(utxo.nonWitnessUtxo, 'hex'));
290
+ writer.writeBytesWithLength(fromHex(utxo.nonWitnessUtxo));
280
291
  }
281
292
  }
282
293
 
@@ -290,27 +301,27 @@ export class TransactionSerializer {
290
301
  }
291
302
 
292
303
  private static readUTXO(reader: BinaryReader): SerializedUTXO {
293
- const transactionId = Buffer.from(reader.readBytes(32)).toString('hex');
304
+ const transactionId = toHex(reader.readBytes(32));
294
305
  const outputIndex = reader.readU32();
295
306
  const value = reader.readU64().toString();
296
- const scriptPubKeyHex = Buffer.from(reader.readBytesWithLength()).toString('hex');
307
+ const scriptPubKeyHex = toHex(reader.readBytesWithLength());
297
308
 
298
309
  const hasAddress = reader.readBoolean();
299
310
  const scriptPubKeyAddress = hasAddress ? reader.readStringWithLength() : undefined;
300
311
 
301
312
  const hasRedeemScript = reader.readBoolean();
302
313
  const redeemScript = hasRedeemScript
303
- ? Buffer.from(reader.readBytesWithLength()).toString('hex')
314
+ ? toHex(reader.readBytesWithLength())
304
315
  : undefined;
305
316
 
306
317
  const hasWitnessScript = reader.readBoolean();
307
318
  const witnessScript = hasWitnessScript
308
- ? Buffer.from(reader.readBytesWithLength()).toString('hex')
319
+ ? toHex(reader.readBytesWithLength())
309
320
  : undefined;
310
321
 
311
322
  const hasNonWitnessUtxo = reader.readBoolean();
312
323
  const nonWitnessUtxo = hasNonWitnessUtxo
313
- ? Buffer.from(reader.readBytesWithLength()).toString('hex')
324
+ ? toHex(reader.readBytesWithLength())
314
325
  : undefined;
315
326
 
316
327
  return {
@@ -318,10 +329,10 @@ export class TransactionSerializer {
318
329
  outputIndex,
319
330
  value,
320
331
  scriptPubKeyHex,
321
- scriptPubKeyAddress,
322
- redeemScript,
323
- witnessScript,
324
- nonWitnessUtxo,
332
+ ...(scriptPubKeyAddress !== undefined ? { scriptPubKeyAddress } : {}),
333
+ ...(redeemScript !== undefined ? { redeemScript } : {}),
334
+ ...(witnessScript !== undefined ? { witnessScript } : {}),
335
+ ...(nonWitnessUtxo !== undefined ? { nonWitnessUtxo } : {}),
325
336
  };
326
337
  }
327
338
 
@@ -342,12 +353,12 @@ export class TransactionSerializer {
342
353
 
343
354
  writer.writeBoolean(output.script !== undefined);
344
355
  if (output.script !== undefined) {
345
- writer.writeBytesWithLength(Buffer.from(output.script, 'hex'));
356
+ writer.writeBytesWithLength(fromHex(output.script));
346
357
  }
347
358
 
348
359
  writer.writeBoolean(output.tapInternalKey !== undefined);
349
360
  if (output.tapInternalKey !== undefined) {
350
- writer.writeBytesWithLength(Buffer.from(output.tapInternalKey, 'hex'));
361
+ writer.writeBytesWithLength(fromHex(output.tapInternalKey));
351
362
  }
352
363
  }
353
364
 
@@ -368,15 +379,20 @@ export class TransactionSerializer {
368
379
 
369
380
  const hasScript = reader.readBoolean();
370
381
  const script = hasScript
371
- ? Buffer.from(reader.readBytesWithLength()).toString('hex')
382
+ ? toHex(reader.readBytesWithLength())
372
383
  : undefined;
373
384
 
374
385
  const hasTapInternalKey = reader.readBoolean();
375
386
  const tapInternalKey = hasTapInternalKey
376
- ? Buffer.from(reader.readBytesWithLength()).toString('hex')
387
+ ? toHex(reader.readBytesWithLength())
377
388
  : undefined;
378
389
 
379
- return { value, address, script, tapInternalKey };
390
+ return {
391
+ value,
392
+ ...(address !== undefined ? { address } : {}),
393
+ ...(script !== undefined ? { script } : {}),
394
+ ...(tapInternalKey !== undefined ? { tapInternalKey } : {}),
395
+ };
380
396
  }
381
397
 
382
398
  private static writeSignerMappings(
@@ -471,48 +487,48 @@ export class TransactionSerializer {
471
487
 
472
488
  // Deployment
473
489
  private static writeDeploymentData(writer: BinaryWriter, data: DeploymentSpecificData): void {
474
- writer.writeBytesWithLength(Buffer.from(data.bytecode, 'hex'));
490
+ writer.writeBytesWithLength(fromHex(data.bytecode));
475
491
  writer.writeBoolean(data.calldata !== undefined);
476
492
  if (data.calldata !== undefined) {
477
- writer.writeBytesWithLength(Buffer.from(data.calldata, 'hex'));
493
+ writer.writeBytesWithLength(fromHex(data.calldata));
478
494
  }
479
495
  this.writeChallenge(writer, data.challenge);
480
496
  writer.writeBoolean(data.revealMLDSAPublicKey ?? false);
481
497
  writer.writeBoolean(data.linkMLDSAPublicKeyToAddress ?? false);
482
498
  writer.writeBoolean(data.hashedPublicKey !== undefined);
483
499
  if (data.hashedPublicKey !== undefined) {
484
- writer.writeBytesWithLength(Buffer.from(data.hashedPublicKey, 'hex'));
500
+ writer.writeBytesWithLength(fromHex(data.hashedPublicKey));
485
501
  }
486
502
  }
487
503
 
488
504
  private static readDeploymentData(reader: BinaryReader): DeploymentSpecificData {
489
- const bytecode = Buffer.from(reader.readBytesWithLength()).toString('hex');
505
+ const bytecode = toHex(reader.readBytesWithLength());
490
506
  const hasCalldata = reader.readBoolean();
491
507
  const calldata = hasCalldata
492
- ? Buffer.from(reader.readBytesWithLength()).toString('hex')
508
+ ? toHex(reader.readBytesWithLength())
493
509
  : undefined;
494
510
  const challenge = this.readChallenge(reader);
495
511
  const revealMLDSAPublicKey = reader.readBoolean();
496
512
  const linkMLDSAPublicKeyToAddress = reader.readBoolean();
497
513
  const hasHashedPublicKey = reader.readBoolean();
498
514
  const hashedPublicKey = hasHashedPublicKey
499
- ? Buffer.from(reader.readBytesWithLength()).toString('hex')
515
+ ? toHex(reader.readBytesWithLength())
500
516
  : undefined;
501
517
 
502
518
  return {
503
519
  type: TransactionType.DEPLOYMENT,
504
520
  bytecode,
505
- calldata,
506
521
  challenge,
507
522
  revealMLDSAPublicKey,
508
523
  linkMLDSAPublicKeyToAddress,
509
- hashedPublicKey,
524
+ ...(calldata !== undefined ? { calldata } : {}),
525
+ ...(hashedPublicKey !== undefined ? { hashedPublicKey } : {}),
510
526
  };
511
527
  }
512
528
 
513
529
  // Interaction
514
530
  private static writeInteractionData(writer: BinaryWriter, data: InteractionSpecificData): void {
515
- writer.writeBytesWithLength(Buffer.from(data.calldata, 'hex'));
531
+ writer.writeBytesWithLength(fromHex(data.calldata));
516
532
  writer.writeBoolean(data.contract !== undefined);
517
533
  if (data.contract !== undefined) {
518
534
  writer.writeStringWithLength(data.contract);
@@ -528,12 +544,12 @@ export class TransactionSerializer {
528
544
  writer.writeBoolean(data.linkMLDSAPublicKeyToAddress ?? false);
529
545
  writer.writeBoolean(data.hashedPublicKey !== undefined);
530
546
  if (data.hashedPublicKey !== undefined) {
531
- writer.writeBytesWithLength(Buffer.from(data.hashedPublicKey, 'hex'));
547
+ writer.writeBytesWithLength(fromHex(data.hashedPublicKey));
532
548
  }
533
549
  }
534
550
 
535
551
  private static readInteractionData(reader: BinaryReader): InteractionSpecificData {
536
- const calldata = Buffer.from(reader.readBytesWithLength()).toString('hex');
552
+ const calldata = toHex(reader.readBytesWithLength());
537
553
  const hasContract = reader.readBoolean();
538
554
  const contract = hasContract ? reader.readStringWithLength() : undefined;
539
555
  const challenge = this.readChallenge(reader);
@@ -545,20 +561,20 @@ export class TransactionSerializer {
545
561
  const linkMLDSAPublicKeyToAddress = reader.readBoolean();
546
562
  const hasHashedPublicKey = reader.readBoolean();
547
563
  const hashedPublicKey = hasHashedPublicKey
548
- ? Buffer.from(reader.readBytesWithLength()).toString('hex')
564
+ ? toHex(reader.readBytesWithLength())
549
565
  : undefined;
550
566
 
551
567
  return {
552
568
  type: TransactionType.INTERACTION,
553
569
  calldata,
554
- contract,
555
570
  challenge,
556
- loadedStorage,
557
571
  isCancellation,
558
572
  disableAutoRefund,
559
573
  revealMLDSAPublicKey,
560
574
  linkMLDSAPublicKeyToAddress,
561
- hashedPublicKey,
575
+ ...(contract !== undefined ? { contract } : {}),
576
+ ...(loadedStorage !== undefined ? { loadedStorage } : {}),
577
+ ...(hashedPublicKey !== undefined ? { hashedPublicKey } : {}),
562
578
  };
563
579
  }
564
580
 
@@ -566,7 +582,7 @@ export class TransactionSerializer {
566
582
  private static writeMultiSigData(writer: BinaryWriter, data: MultiSigSpecificData): void {
567
583
  writer.writeU16(data.pubkeys.length);
568
584
  for (const pubkey of data.pubkeys) {
569
- writer.writeBytesWithLength(Buffer.from(pubkey, 'hex'));
585
+ writer.writeBytesWithLength(fromHex(pubkey));
570
586
  }
571
587
  writer.writeU8(data.minimumSignatures);
572
588
  writer.writeStringWithLength(data.receiver);
@@ -583,7 +599,7 @@ export class TransactionSerializer {
583
599
  const pubkeysCount = reader.readU16();
584
600
  const pubkeys: string[] = [];
585
601
  for (let i = 0; i < pubkeysCount; i++) {
586
- pubkeys.push(Buffer.from(reader.readBytesWithLength()).toString('hex'));
602
+ pubkeys.push(toHex(reader.readBytesWithLength()));
587
603
  }
588
604
  const minimumSignatures = reader.readU8();
589
605
  const receiver = reader.readStringWithLength();
@@ -601,7 +617,7 @@ export class TransactionSerializer {
601
617
  requestedAmount,
602
618
  refundVault,
603
619
  originalInputCount,
604
- existingPsbtBase64,
620
+ ...(existingPsbtBase64 !== undefined ? { existingPsbtBase64 } : {}),
605
621
  };
606
622
  }
607
623
 
@@ -616,11 +632,11 @@ export class TransactionSerializer {
616
632
  }
617
633
  writer.writeU16(data.witnesses.length);
618
634
  for (const witness of data.witnesses) {
619
- writer.writeBytesWithLength(Buffer.from(witness, 'hex'));
635
+ writer.writeBytesWithLength(fromHex(witness));
620
636
  }
621
637
  writer.writeBoolean(data.annex !== undefined);
622
638
  if (data.annex !== undefined) {
623
- writer.writeBytesWithLength(Buffer.from(data.annex, 'hex'));
639
+ writer.writeBytesWithLength(fromHex(data.annex));
624
640
  }
625
641
  }
626
642
 
@@ -630,7 +646,7 @@ export class TransactionSerializer {
630
646
  ): void {
631
647
  writer.writeU8(element.elementType === 'buffer' ? 0 : 1);
632
648
  if (element.elementType === 'buffer') {
633
- writer.writeBytesWithLength(Buffer.from(element.value as string, 'hex'));
649
+ writer.writeBytesWithLength(fromHex(element.value as string));
634
650
  } else {
635
651
  writer.writeU32(element.value as number);
636
652
  }
@@ -645,18 +661,18 @@ export class TransactionSerializer {
645
661
  const witnessesCount = reader.readU16();
646
662
  const witnesses: string[] = [];
647
663
  for (let i = 0; i < witnessesCount; i++) {
648
- witnesses.push(Buffer.from(reader.readBytesWithLength()).toString('hex'));
664
+ witnesses.push(toHex(reader.readBytesWithLength()));
649
665
  }
650
666
  const hasAnnex = reader.readBoolean();
651
667
  const annex = hasAnnex
652
- ? Buffer.from(reader.readBytesWithLength()).toString('hex')
668
+ ? toHex(reader.readBytesWithLength())
653
669
  : undefined;
654
670
 
655
671
  return {
656
672
  type: TransactionType.CUSTOM_CODE,
657
673
  scriptElements,
658
674
  witnesses,
659
- annex,
675
+ ...(annex !== undefined ? { annex } : {}),
660
676
  };
661
677
  }
662
678
 
@@ -665,7 +681,7 @@ export class TransactionSerializer {
665
681
  if (typeFlag === 0) {
666
682
  return {
667
683
  elementType: 'buffer',
668
- value: Buffer.from(reader.readBytesWithLength()).toString('hex'),
684
+ value: toHex(reader.readBytesWithLength()),
669
685
  };
670
686
  } else {
671
687
  return {
@@ -677,13 +693,13 @@ export class TransactionSerializer {
677
693
 
678
694
  // Cancel
679
695
  private static writeCancelData(writer: BinaryWriter, data: CancelSpecificData): void {
680
- writer.writeBytesWithLength(Buffer.from(data.compiledTargetScript, 'hex'));
696
+ writer.writeBytesWithLength(fromHex(data.compiledTargetScript));
681
697
  }
682
698
 
683
699
  private static readCancelData(reader: BinaryReader): CancelSpecificData {
684
700
  return {
685
701
  type: TransactionType.CANCEL,
686
- compiledTargetScript: Buffer.from(reader.readBytesWithLength()).toString('hex'),
702
+ compiledTargetScript: toHex(reader.readBytesWithLength()),
687
703
  };
688
704
  }
689
705
 
@@ -691,9 +707,9 @@ export class TransactionSerializer {
691
707
  writer.writeU64(BigInt(challenge.epochNumber));
692
708
  writer.writeStringWithLength(challenge.mldsaPublicKey);
693
709
  writer.writeStringWithLength(challenge.legacyPublicKey);
694
- writer.writeBytesWithLength(Buffer.from(challenge.solution.replace('0x', ''), 'hex'));
695
- writer.writeBytesWithLength(Buffer.from(challenge.salt.replace('0x', ''), 'hex'));
696
- writer.writeBytesWithLength(Buffer.from(challenge.graffiti.replace('0x', ''), 'hex'));
710
+ writer.writeBytesWithLength(fromHex(challenge.solution.replace('0x', '')));
711
+ writer.writeBytesWithLength(fromHex(challenge.salt.replace('0x', '')));
712
+ writer.writeBytesWithLength(fromHex(challenge.graffiti.replace('0x', '')));
697
713
  writer.writeU8(challenge.difficulty);
698
714
 
699
715
  // Verification
@@ -705,16 +721,16 @@ export class TransactionSerializer {
705
721
  writer.writeStringWithLength(challenge.submission.mldsaPublicKey);
706
722
  writer.writeStringWithLength(challenge.submission.legacyPublicKey);
707
723
  writer.writeBytesWithLength(
708
- Buffer.from(challenge.submission.solution.replace('0x', ''), 'hex'),
724
+ fromHex(challenge.submission.solution.replace('0x', '')),
709
725
  );
710
726
  writer.writeBoolean(challenge.submission.graffiti !== undefined);
711
727
  if (challenge.submission.graffiti !== undefined) {
712
728
  writer.writeBytesWithLength(
713
- Buffer.from(challenge.submission.graffiti.replace('0x', ''), 'hex'),
729
+ fromHex(challenge.submission.graffiti.replace('0x', '')),
714
730
  );
715
731
  }
716
732
  writer.writeBytesWithLength(
717
- Buffer.from(challenge.submission.signature.replace('0x', ''), 'hex'),
733
+ fromHex(challenge.submission.signature.replace('0x', '')),
718
734
  );
719
735
  }
720
736
  }
@@ -723,17 +739,17 @@ export class TransactionSerializer {
723
739
  writer: BinaryWriter,
724
740
  verification: RawChallengeVerification,
725
741
  ): void {
726
- writer.writeBytesWithLength(Buffer.from(verification.epochHash.replace('0x', ''), 'hex'));
727
- writer.writeBytesWithLength(Buffer.from(verification.epochRoot.replace('0x', ''), 'hex'));
728
- writer.writeBytesWithLength(Buffer.from(verification.targetHash.replace('0x', ''), 'hex'));
742
+ writer.writeBytesWithLength(fromHex(verification.epochHash.replace('0x', '')));
743
+ writer.writeBytesWithLength(fromHex(verification.epochRoot.replace('0x', '')));
744
+ writer.writeBytesWithLength(fromHex(verification.targetHash.replace('0x', '')));
729
745
  writer.writeBytesWithLength(
730
- Buffer.from(verification.targetChecksum.replace('0x', ''), 'hex'),
746
+ fromHex(verification.targetChecksum.replace('0x', '')),
731
747
  );
732
748
  writer.writeU64(BigInt(verification.startBlock));
733
749
  writer.writeU64(BigInt(verification.endBlock));
734
750
  writer.writeU16(verification.proofs.length);
735
751
  for (const proof of verification.proofs) {
736
- writer.writeBytesWithLength(Buffer.from(proof.replace('0x', ''), 'hex'));
752
+ writer.writeBytesWithLength(fromHex(proof.replace('0x', '')));
737
753
  }
738
754
  }
739
755
 
@@ -741,9 +757,9 @@ export class TransactionSerializer {
741
757
  const epochNumber = reader.readU64().toString();
742
758
  const mldsaPublicKey = reader.readStringWithLength();
743
759
  const legacyPublicKey = reader.readStringWithLength();
744
- const solution = '0x' + Buffer.from(reader.readBytesWithLength()).toString('hex');
745
- const salt = '0x' + Buffer.from(reader.readBytesWithLength()).toString('hex');
746
- const graffiti = '0x' + Buffer.from(reader.readBytesWithLength()).toString('hex');
760
+ const solution = '0x' + toHex(reader.readBytesWithLength());
761
+ const salt = '0x' + toHex(reader.readBytesWithLength());
762
+ const graffiti = '0x' + toHex(reader.readBytesWithLength());
747
763
  const difficulty = reader.readU8();
748
764
 
749
765
  const verification = this.readChallengeVerification(reader);
@@ -753,19 +769,19 @@ export class TransactionSerializer {
753
769
  if (hasSubmission) {
754
770
  const subMldsaPublicKey = reader.readStringWithLength();
755
771
  const subLegacyPublicKey = reader.readStringWithLength();
756
- const subSolution = '0x' + Buffer.from(reader.readBytesWithLength()).toString('hex');
772
+ const subSolution = '0x' + toHex(reader.readBytesWithLength());
757
773
  const hasGraffiti = reader.readBoolean();
758
774
  const subGraffiti = hasGraffiti
759
- ? '0x' + Buffer.from(reader.readBytesWithLength()).toString('hex')
775
+ ? '0x' + toHex(reader.readBytesWithLength())
760
776
  : undefined;
761
- const subSignature = '0x' + Buffer.from(reader.readBytesWithLength()).toString('hex');
777
+ const subSignature = '0x' + toHex(reader.readBytesWithLength());
762
778
 
763
779
  submission = {
764
780
  mldsaPublicKey: subMldsaPublicKey,
765
781
  legacyPublicKey: subLegacyPublicKey,
766
782
  solution: subSolution,
767
- graffiti: subGraffiti,
768
783
  signature: subSignature,
784
+ ...(subGraffiti !== undefined ? { graffiti: subGraffiti } : {}),
769
785
  };
770
786
  }
771
787
 
@@ -778,21 +794,21 @@ export class TransactionSerializer {
778
794
  graffiti,
779
795
  difficulty,
780
796
  verification,
781
- submission,
797
+ ...(submission !== undefined ? { submission } : {}),
782
798
  };
783
799
  }
784
800
 
785
801
  private static readChallengeVerification(reader: BinaryReader): RawChallengeVerification {
786
- const epochHash = '0x' + Buffer.from(reader.readBytesWithLength()).toString('hex');
787
- const epochRoot = '0x' + Buffer.from(reader.readBytesWithLength()).toString('hex');
788
- const targetHash = '0x' + Buffer.from(reader.readBytesWithLength()).toString('hex');
789
- const targetChecksum = '0x' + Buffer.from(reader.readBytesWithLength()).toString('hex');
802
+ const epochHash = '0x' + toHex(reader.readBytesWithLength());
803
+ const epochRoot = '0x' + toHex(reader.readBytesWithLength());
804
+ const targetHash = '0x' + toHex(reader.readBytesWithLength());
805
+ const targetChecksum = '0x' + toHex(reader.readBytesWithLength());
790
806
  const startBlock = reader.readU64().toString();
791
807
  const endBlock = reader.readU64().toString();
792
808
  const proofsCount = reader.readU16();
793
809
  const proofs: string[] = [];
794
810
  for (let i = 0; i < proofsCount; i++) {
795
- proofs.push('0x' + Buffer.from(reader.readBytesWithLength()).toString('hex'));
811
+ proofs.push('0x' + toHex(reader.readBytesWithLength()));
796
812
  }
797
813
 
798
814
  return {
@@ -814,7 +830,7 @@ export class TransactionSerializer {
814
830
  writer.writeU16(keys.length);
815
831
  for (const key of keys) {
816
832
  writer.writeStringWithLength(key);
817
- writer.writeStringArray(storage[key]);
833
+ writer.writeStringArray(storage[key] as string[]);
818
834
  }
819
835
  }
820
836
 
@@ -831,12 +847,12 @@ export class TransactionSerializer {
831
847
  private static writePrecomputedData(writer: BinaryWriter, data: PrecomputedData): void {
832
848
  writer.writeBoolean(data.compiledTargetScript !== undefined);
833
849
  if (data.compiledTargetScript !== undefined) {
834
- writer.writeBytesWithLength(Buffer.from(data.compiledTargetScript, 'hex'));
850
+ writer.writeBytesWithLength(fromHex(data.compiledTargetScript));
835
851
  }
836
852
 
837
853
  writer.writeBoolean(data.randomBytes !== undefined);
838
854
  if (data.randomBytes !== undefined) {
839
- writer.writeBytesWithLength(Buffer.from(data.randomBytes, 'hex'));
855
+ writer.writeBytesWithLength(fromHex(data.randomBytes));
840
856
  }
841
857
 
842
858
  writer.writeBoolean(data.estimatedFees !== undefined);
@@ -858,12 +874,12 @@ export class TransactionSerializer {
858
874
  private static readPrecomputedData(reader: BinaryReader): PrecomputedData {
859
875
  const hasCompiledTargetScript = reader.readBoolean();
860
876
  const compiledTargetScript = hasCompiledTargetScript
861
- ? Buffer.from(reader.readBytesWithLength()).toString('hex')
877
+ ? toHex(reader.readBytesWithLength())
862
878
  : undefined;
863
879
 
864
880
  const hasRandomBytes = reader.readBoolean();
865
881
  const randomBytes = hasRandomBytes
866
- ? Buffer.from(reader.readBytesWithLength()).toString('hex')
882
+ ? toHex(reader.readBytesWithLength())
867
883
  : undefined;
868
884
 
869
885
  const hasEstimatedFees = reader.readBoolean();
@@ -876,20 +892,54 @@ export class TransactionSerializer {
876
892
  const contractAddress = hasContractAddress ? reader.readStringWithLength() : undefined;
877
893
 
878
894
  return {
879
- compiledTargetScript,
880
- randomBytes,
881
- estimatedFees,
882
- contractSeed,
883
- contractAddress,
895
+ ...(compiledTargetScript !== undefined ? { compiledTargetScript } : {}),
896
+ ...(randomBytes !== undefined ? { randomBytes } : {}),
897
+ ...(estimatedFees !== undefined ? { estimatedFees } : {}),
898
+ ...(contractSeed !== undefined ? { contractSeed } : {}),
899
+ ...(contractAddress !== undefined ? { contractAddress } : {}),
884
900
  };
885
901
  }
886
902
 
887
903
  /**
888
904
  * Calculate double SHA256 checksum (Bitcoin standard)
889
905
  */
890
- private static calculateChecksum(data: Buffer): Buffer {
906
+ private static calculateChecksum(data: Uint8Array): Uint8Array {
891
907
  const hash1 = createHash('sha256').update(data).digest();
892
- return createHash('sha256').update(hash1).digest();
908
+ return new Uint8Array(createHash('sha256').update(hash1).digest());
909
+ }
910
+
911
+ /**
912
+ * Compare two Uint8Arrays for equality
913
+ */
914
+ private static bytesEqual(a: Uint8Array, b: Uint8Array): boolean {
915
+ if (a.length !== b.length) return false;
916
+ for (let i = 0; i < a.length; i++) {
917
+ if (a[i] !== b[i]) return false;
918
+ }
919
+ return true;
920
+ }
921
+
922
+ /**
923
+ * Encode Uint8Array to base64 string
924
+ */
925
+ private static uint8ArrayToBase64(bytes: Uint8Array): string {
926
+ let binary = '';
927
+ for (let i = 0; i < bytes.length; i++) {
928
+ binary += String.fromCharCode(bytes[i] as number);
929
+ }
930
+ return btoa(binary);
931
+ }
932
+
933
+ /**
934
+ * Decode base64 string to Uint8Array
935
+ */
936
+ private static base64ToUint8Array(base64: string): Uint8Array {
937
+ const binary = atob(base64);
938
+ const bytes = new Uint8Array(binary.length);
939
+ for (let i = 0; i < binary.length; i++) {
940
+ bytes[i] = binary.charCodeAt(i);
941
+ }
942
+ return bytes;
893
943
  }
894
944
 
895
945
  private static networkNameToU8(name: 'mainnet' | 'testnet' | 'regtest'): number {