@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,46 +1,83 @@
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
5
  import { SERIALIZATION_FORMAT_VERSION, SERIALIZATION_MAGIC_BYTE, } from './interfaces/ISerializableState.js';
5
6
  import { TransactionType } from '../enums/TransactionType.js';
7
+ /**
8
+ * Serializes and deserializes transaction state for offline signing.
9
+ * Uses binary format for compact size.
10
+ */
6
11
  export class TransactionSerializer {
12
+ /**
13
+ * Serialize transaction state to binary format
14
+ * @param state - The transaction state to serialize
15
+ * @returns Uint8Array containing serialized state with checksum
16
+ */
7
17
  static serialize(state) {
8
18
  const writer = new BinaryWriter();
19
+ // Write header
9
20
  this.writeHeader(writer, state.header);
21
+ // Write base params
10
22
  this.writeBaseParams(writer, state.baseParams);
23
+ // Write UTXOs
11
24
  this.writeUTXOArray(writer, state.utxos);
12
25
  this.writeUTXOArray(writer, state.optionalInputs);
26
+ // Write optional outputs
13
27
  this.writeOutputArray(writer, state.optionalOutputs);
28
+ // Write signer mappings
14
29
  writer.writeBoolean(state.addressRotationEnabled);
15
30
  this.writeSignerMappings(writer, state.signerMappings);
31
+ // Write type-specific data
16
32
  this.writeTypeSpecificData(writer, state.typeSpecificData);
33
+ // Write precomputed data
17
34
  this.writePrecomputedData(writer, state.precomputedData);
18
- const dataBuffer = Buffer.from(writer.getBuffer());
35
+ // Get buffer and calculate checksum
36
+ const dataBuffer = writer.getBuffer();
19
37
  const checksum = this.calculateChecksum(dataBuffer);
20
- return Buffer.concat([dataBuffer, checksum]);
21
- }
38
+ // Concatenate data + checksum
39
+ const result = new Uint8Array(dataBuffer.length + checksum.length);
40
+ result.set(dataBuffer, 0);
41
+ result.set(checksum, dataBuffer.length);
42
+ return result;
43
+ }
44
+ /**
45
+ * Deserialize binary format to transaction state
46
+ * @param data - Uint8Array containing serialized state
47
+ * @returns Deserialized transaction state
48
+ * @throws Error if checksum validation fails or format is invalid
49
+ */
22
50
  static deserialize(data) {
51
+ // Verify checksum (last 32 bytes)
23
52
  if (data.length < 32) {
24
53
  throw new Error('Invalid serialized data: too short');
25
54
  }
26
55
  const checksum = data.subarray(-32);
27
56
  const payload = data.subarray(0, -32);
28
57
  const expectedChecksum = this.calculateChecksum(payload);
29
- if (!checksum.equals(expectedChecksum)) {
58
+ if (!this.bytesEqual(checksum, expectedChecksum)) {
30
59
  throw new Error('Invalid checksum - data may be corrupted');
31
60
  }
32
61
  const reader = new BinaryReader(payload);
62
+ // Read header
33
63
  const header = this.readHeader(reader);
64
+ // Verify format version
34
65
  if (header.formatVersion > SERIALIZATION_FORMAT_VERSION) {
35
66
  throw new Error(`Unsupported format version: ${header.formatVersion}`);
36
67
  }
68
+ // Read base params
37
69
  const baseParams = this.readBaseParams(reader);
70
+ // Read UTXOs
38
71
  const utxos = this.readUTXOArray(reader);
39
72
  const optionalInputs = this.readUTXOArray(reader);
73
+ // Read optional outputs
40
74
  const optionalOutputs = this.readOutputArray(reader);
75
+ // Read signer mappings
41
76
  const addressRotationEnabled = reader.readBoolean();
42
77
  const signerMappings = this.readSignerMappings(reader);
78
+ // Read type-specific data
43
79
  const typeSpecificData = this.readTypeSpecificData(reader, header.transactionType);
80
+ // Read precomputed data
44
81
  const precomputedData = this.readPrecomputedData(reader);
45
82
  return {
46
83
  header,
@@ -54,17 +91,38 @@ export class TransactionSerializer {
54
91
  precomputedData,
55
92
  };
56
93
  }
94
+ /**
95
+ * Export state as base64 string (for transport)
96
+ * @param state - Transaction state to export
97
+ * @returns Base64-encoded string
98
+ */
57
99
  static toBase64(state) {
58
- return this.serialize(state).toString('base64');
59
- }
100
+ const bytes = this.serialize(state);
101
+ return this.uint8ArrayToBase64(bytes);
102
+ }
103
+ /**
104
+ * Import state from base64 string
105
+ * @param base64 - Base64-encoded state
106
+ * @returns Deserialized transaction state
107
+ */
60
108
  static fromBase64(base64) {
61
- return this.deserialize(Buffer.from(base64, 'base64'));
109
+ return this.deserialize(this.base64ToUint8Array(base64));
62
110
  }
111
+ /**
112
+ * Export state as hex string
113
+ * @param state - Transaction state to export
114
+ * @returns Hex-encoded string
115
+ */
63
116
  static toHex(state) {
64
- return this.serialize(state).toString('hex');
117
+ return toHex(this.serialize(state));
65
118
  }
119
+ /**
120
+ * Import state from hex string
121
+ * @param hex - Hex-encoded state
122
+ * @returns Deserialized transaction state
123
+ */
66
124
  static fromHex(hex) {
67
- return this.deserialize(Buffer.from(hex, 'hex'));
125
+ return this.deserialize(fromHex(hex));
68
126
  }
69
127
  static writeHeader(writer, header) {
70
128
  writer.writeU8(SERIALIZATION_MAGIC_BYTE);
@@ -93,14 +151,14 @@ export class TransactionSerializer {
93
151
  if (params.to !== undefined) {
94
152
  writer.writeStringWithLength(params.to);
95
153
  }
96
- writer.writeU32(Math.floor(params.feeRate * 1000));
154
+ writer.writeU32(Math.floor(params.feeRate * 1000)); // Store as milli-sat/vB for precision
97
155
  writer.writeU64(BigInt(params.priorityFee));
98
156
  writer.writeU64(BigInt(params.gasSatFee));
99
157
  writer.writeU8(this.networkNameToU8(params.networkName));
100
158
  writer.writeU8(params.txVersion);
101
159
  writer.writeBoolean(params.note !== undefined);
102
160
  if (params.note !== undefined) {
103
- writer.writeBytesWithLength(Buffer.from(params.note, 'hex'));
161
+ writer.writeBytesWithLength(fromHex(params.note));
104
162
  }
105
163
  writer.writeBoolean(params.anchor);
106
164
  writer.writeBoolean(params.debugFees ?? false);
@@ -109,28 +167,28 @@ export class TransactionSerializer {
109
167
  const from = reader.readStringWithLength();
110
168
  const hasTo = reader.readBoolean();
111
169
  const to = hasTo ? reader.readStringWithLength() : undefined;
112
- const feeRate = reader.readU32() / 1000;
170
+ const feeRate = reader.readU32() / 1000; // Convert back from milli-sat/vB
113
171
  const priorityFee = reader.readU64().toString();
114
172
  const gasSatFee = reader.readU64().toString();
115
173
  const networkName = this.u8ToNetworkName(reader.readU8());
116
174
  const txVersion = reader.readU8();
117
175
  const hasNote = reader.readBoolean();
118
176
  const note = hasNote
119
- ? Buffer.from(reader.readBytesWithLength()).toString('hex')
177
+ ? toHex(reader.readBytesWithLength())
120
178
  : undefined;
121
179
  const anchor = reader.readBoolean();
122
180
  const debugFees = reader.readBoolean();
123
181
  return {
124
182
  from,
125
- to,
126
183
  feeRate,
127
184
  priorityFee,
128
185
  gasSatFee,
129
186
  networkName,
130
187
  txVersion,
131
- note,
132
188
  anchor,
133
189
  debugFees,
190
+ ...(to !== undefined ? { to } : {}),
191
+ ...(note !== undefined ? { note } : {}),
134
192
  };
135
193
  }
136
194
  static writeUTXOArray(writer, utxos) {
@@ -140,25 +198,28 @@ export class TransactionSerializer {
140
198
  }
141
199
  }
142
200
  static writeUTXO(writer, utxo) {
143
- writer.writeBytes(Buffer.from(utxo.transactionId, 'hex'));
201
+ // Transaction ID (32 bytes)
202
+ writer.writeBytes(fromHex(utxo.transactionId));
144
203
  writer.writeU32(utxo.outputIndex);
145
204
  writer.writeU64(BigInt(utxo.value));
146
- writer.writeBytesWithLength(Buffer.from(utxo.scriptPubKeyHex, 'hex'));
205
+ writer.writeBytesWithLength(fromHex(utxo.scriptPubKeyHex));
206
+ // Optional address
147
207
  writer.writeBoolean(utxo.scriptPubKeyAddress !== undefined);
148
208
  if (utxo.scriptPubKeyAddress !== undefined) {
149
209
  writer.writeStringWithLength(utxo.scriptPubKeyAddress);
150
210
  }
211
+ // Optional scripts
151
212
  writer.writeBoolean(utxo.redeemScript !== undefined);
152
213
  if (utxo.redeemScript !== undefined) {
153
- writer.writeBytesWithLength(Buffer.from(utxo.redeemScript, 'hex'));
214
+ writer.writeBytesWithLength(fromHex(utxo.redeemScript));
154
215
  }
155
216
  writer.writeBoolean(utxo.witnessScript !== undefined);
156
217
  if (utxo.witnessScript !== undefined) {
157
- writer.writeBytesWithLength(Buffer.from(utxo.witnessScript, 'hex'));
218
+ writer.writeBytesWithLength(fromHex(utxo.witnessScript));
158
219
  }
159
220
  writer.writeBoolean(utxo.nonWitnessUtxo !== undefined);
160
221
  if (utxo.nonWitnessUtxo !== undefined) {
161
- writer.writeBytesWithLength(Buffer.from(utxo.nonWitnessUtxo, 'hex'));
222
+ writer.writeBytesWithLength(fromHex(utxo.nonWitnessUtxo));
162
223
  }
163
224
  }
164
225
  static readUTXOArray(reader) {
@@ -170,33 +231,33 @@ export class TransactionSerializer {
170
231
  return utxos;
171
232
  }
172
233
  static readUTXO(reader) {
173
- const transactionId = Buffer.from(reader.readBytes(32)).toString('hex');
234
+ const transactionId = toHex(reader.readBytes(32));
174
235
  const outputIndex = reader.readU32();
175
236
  const value = reader.readU64().toString();
176
- const scriptPubKeyHex = Buffer.from(reader.readBytesWithLength()).toString('hex');
237
+ const scriptPubKeyHex = toHex(reader.readBytesWithLength());
177
238
  const hasAddress = reader.readBoolean();
178
239
  const scriptPubKeyAddress = hasAddress ? reader.readStringWithLength() : undefined;
179
240
  const hasRedeemScript = reader.readBoolean();
180
241
  const redeemScript = hasRedeemScript
181
- ? Buffer.from(reader.readBytesWithLength()).toString('hex')
242
+ ? toHex(reader.readBytesWithLength())
182
243
  : undefined;
183
244
  const hasWitnessScript = reader.readBoolean();
184
245
  const witnessScript = hasWitnessScript
185
- ? Buffer.from(reader.readBytesWithLength()).toString('hex')
246
+ ? toHex(reader.readBytesWithLength())
186
247
  : undefined;
187
248
  const hasNonWitnessUtxo = reader.readBoolean();
188
249
  const nonWitnessUtxo = hasNonWitnessUtxo
189
- ? Buffer.from(reader.readBytesWithLength()).toString('hex')
250
+ ? toHex(reader.readBytesWithLength())
190
251
  : undefined;
191
252
  return {
192
253
  transactionId,
193
254
  outputIndex,
194
255
  value,
195
256
  scriptPubKeyHex,
196
- scriptPubKeyAddress,
197
- redeemScript,
198
- witnessScript,
199
- nonWitnessUtxo,
257
+ ...(scriptPubKeyAddress !== undefined ? { scriptPubKeyAddress } : {}),
258
+ ...(redeemScript !== undefined ? { redeemScript } : {}),
259
+ ...(witnessScript !== undefined ? { witnessScript } : {}),
260
+ ...(nonWitnessUtxo !== undefined ? { nonWitnessUtxo } : {}),
200
261
  };
201
262
  }
202
263
  static writeOutputArray(writer, outputs) {
@@ -213,11 +274,11 @@ export class TransactionSerializer {
213
274
  }
214
275
  writer.writeBoolean(output.script !== undefined);
215
276
  if (output.script !== undefined) {
216
- writer.writeBytesWithLength(Buffer.from(output.script, 'hex'));
277
+ writer.writeBytesWithLength(fromHex(output.script));
217
278
  }
218
279
  writer.writeBoolean(output.tapInternalKey !== undefined);
219
280
  if (output.tapInternalKey !== undefined) {
220
- writer.writeBytesWithLength(Buffer.from(output.tapInternalKey, 'hex'));
281
+ writer.writeBytesWithLength(fromHex(output.tapInternalKey));
221
282
  }
222
283
  }
223
284
  static readOutputArray(reader) {
@@ -234,13 +295,18 @@ export class TransactionSerializer {
234
295
  const address = hasAddress ? reader.readStringWithLength() : undefined;
235
296
  const hasScript = reader.readBoolean();
236
297
  const script = hasScript
237
- ? Buffer.from(reader.readBytesWithLength()).toString('hex')
298
+ ? toHex(reader.readBytesWithLength())
238
299
  : undefined;
239
300
  const hasTapInternalKey = reader.readBoolean();
240
301
  const tapInternalKey = hasTapInternalKey
241
- ? Buffer.from(reader.readBytesWithLength()).toString('hex')
302
+ ? toHex(reader.readBytesWithLength())
242
303
  : undefined;
243
- return { value, address, script, tapInternalKey };
304
+ return {
305
+ value,
306
+ ...(address !== undefined ? { address } : {}),
307
+ ...(script !== undefined ? { script } : {}),
308
+ ...(tapInternalKey !== undefined ? { tapInternalKey } : {}),
309
+ };
244
310
  }
245
311
  static writeSignerMappings(writer, mappings) {
246
312
  writer.writeU16(mappings.length);
@@ -308,6 +374,7 @@ export class TransactionSerializer {
308
374
  throw new Error(`Unsupported transaction type: ${type}`);
309
375
  }
310
376
  }
377
+ // Funding
311
378
  static writeFundingData(writer, data) {
312
379
  writer.writeU64(BigInt(data.amount));
313
380
  writer.writeU16(data.splitInputsInto);
@@ -319,45 +386,47 @@ export class TransactionSerializer {
319
386
  splitInputsInto: reader.readU16(),
320
387
  };
321
388
  }
389
+ // Deployment
322
390
  static writeDeploymentData(writer, data) {
323
- writer.writeBytesWithLength(Buffer.from(data.bytecode, 'hex'));
391
+ writer.writeBytesWithLength(fromHex(data.bytecode));
324
392
  writer.writeBoolean(data.calldata !== undefined);
325
393
  if (data.calldata !== undefined) {
326
- writer.writeBytesWithLength(Buffer.from(data.calldata, 'hex'));
394
+ writer.writeBytesWithLength(fromHex(data.calldata));
327
395
  }
328
396
  this.writeChallenge(writer, data.challenge);
329
397
  writer.writeBoolean(data.revealMLDSAPublicKey ?? false);
330
398
  writer.writeBoolean(data.linkMLDSAPublicKeyToAddress ?? false);
331
399
  writer.writeBoolean(data.hashedPublicKey !== undefined);
332
400
  if (data.hashedPublicKey !== undefined) {
333
- writer.writeBytesWithLength(Buffer.from(data.hashedPublicKey, 'hex'));
401
+ writer.writeBytesWithLength(fromHex(data.hashedPublicKey));
334
402
  }
335
403
  }
336
404
  static readDeploymentData(reader) {
337
- const bytecode = Buffer.from(reader.readBytesWithLength()).toString('hex');
405
+ const bytecode = toHex(reader.readBytesWithLength());
338
406
  const hasCalldata = reader.readBoolean();
339
407
  const calldata = hasCalldata
340
- ? Buffer.from(reader.readBytesWithLength()).toString('hex')
408
+ ? toHex(reader.readBytesWithLength())
341
409
  : undefined;
342
410
  const challenge = this.readChallenge(reader);
343
411
  const revealMLDSAPublicKey = reader.readBoolean();
344
412
  const linkMLDSAPublicKeyToAddress = reader.readBoolean();
345
413
  const hasHashedPublicKey = reader.readBoolean();
346
414
  const hashedPublicKey = hasHashedPublicKey
347
- ? Buffer.from(reader.readBytesWithLength()).toString('hex')
415
+ ? toHex(reader.readBytesWithLength())
348
416
  : undefined;
349
417
  return {
350
418
  type: TransactionType.DEPLOYMENT,
351
419
  bytecode,
352
- calldata,
353
420
  challenge,
354
421
  revealMLDSAPublicKey,
355
422
  linkMLDSAPublicKeyToAddress,
356
- hashedPublicKey,
423
+ ...(calldata !== undefined ? { calldata } : {}),
424
+ ...(hashedPublicKey !== undefined ? { hashedPublicKey } : {}),
357
425
  };
358
426
  }
427
+ // Interaction
359
428
  static writeInteractionData(writer, data) {
360
- writer.writeBytesWithLength(Buffer.from(data.calldata, 'hex'));
429
+ writer.writeBytesWithLength(fromHex(data.calldata));
361
430
  writer.writeBoolean(data.contract !== undefined);
362
431
  if (data.contract !== undefined) {
363
432
  writer.writeStringWithLength(data.contract);
@@ -373,11 +442,11 @@ export class TransactionSerializer {
373
442
  writer.writeBoolean(data.linkMLDSAPublicKeyToAddress ?? false);
374
443
  writer.writeBoolean(data.hashedPublicKey !== undefined);
375
444
  if (data.hashedPublicKey !== undefined) {
376
- writer.writeBytesWithLength(Buffer.from(data.hashedPublicKey, 'hex'));
445
+ writer.writeBytesWithLength(fromHex(data.hashedPublicKey));
377
446
  }
378
447
  }
379
448
  static readInteractionData(reader) {
380
- const calldata = Buffer.from(reader.readBytesWithLength()).toString('hex');
449
+ const calldata = toHex(reader.readBytesWithLength());
381
450
  const hasContract = reader.readBoolean();
382
451
  const contract = hasContract ? reader.readStringWithLength() : undefined;
383
452
  const challenge = this.readChallenge(reader);
@@ -389,25 +458,26 @@ export class TransactionSerializer {
389
458
  const linkMLDSAPublicKeyToAddress = reader.readBoolean();
390
459
  const hasHashedPublicKey = reader.readBoolean();
391
460
  const hashedPublicKey = hasHashedPublicKey
392
- ? Buffer.from(reader.readBytesWithLength()).toString('hex')
461
+ ? toHex(reader.readBytesWithLength())
393
462
  : undefined;
394
463
  return {
395
464
  type: TransactionType.INTERACTION,
396
465
  calldata,
397
- contract,
398
466
  challenge,
399
- loadedStorage,
400
467
  isCancellation,
401
468
  disableAutoRefund,
402
469
  revealMLDSAPublicKey,
403
470
  linkMLDSAPublicKeyToAddress,
404
- hashedPublicKey,
471
+ ...(contract !== undefined ? { contract } : {}),
472
+ ...(loadedStorage !== undefined ? { loadedStorage } : {}),
473
+ ...(hashedPublicKey !== undefined ? { hashedPublicKey } : {}),
405
474
  };
406
475
  }
476
+ // MultiSig
407
477
  static writeMultiSigData(writer, data) {
408
478
  writer.writeU16(data.pubkeys.length);
409
479
  for (const pubkey of data.pubkeys) {
410
- writer.writeBytesWithLength(Buffer.from(pubkey, 'hex'));
480
+ writer.writeBytesWithLength(fromHex(pubkey));
411
481
  }
412
482
  writer.writeU8(data.minimumSignatures);
413
483
  writer.writeStringWithLength(data.receiver);
@@ -423,7 +493,7 @@ export class TransactionSerializer {
423
493
  const pubkeysCount = reader.readU16();
424
494
  const pubkeys = [];
425
495
  for (let i = 0; i < pubkeysCount; i++) {
426
- pubkeys.push(Buffer.from(reader.readBytesWithLength()).toString('hex'));
496
+ pubkeys.push(toHex(reader.readBytesWithLength()));
427
497
  }
428
498
  const minimumSignatures = reader.readU8();
429
499
  const receiver = reader.readStringWithLength();
@@ -440,9 +510,10 @@ export class TransactionSerializer {
440
510
  requestedAmount,
441
511
  refundVault,
442
512
  originalInputCount,
443
- existingPsbtBase64,
513
+ ...(existingPsbtBase64 !== undefined ? { existingPsbtBase64 } : {}),
444
514
  };
445
515
  }
516
+ // Custom Script
446
517
  static writeCustomScriptData(writer, data) {
447
518
  writer.writeU16(data.scriptElements.length);
448
519
  for (const element of data.scriptElements) {
@@ -450,17 +521,17 @@ export class TransactionSerializer {
450
521
  }
451
522
  writer.writeU16(data.witnesses.length);
452
523
  for (const witness of data.witnesses) {
453
- writer.writeBytesWithLength(Buffer.from(witness, 'hex'));
524
+ writer.writeBytesWithLength(fromHex(witness));
454
525
  }
455
526
  writer.writeBoolean(data.annex !== undefined);
456
527
  if (data.annex !== undefined) {
457
- writer.writeBytesWithLength(Buffer.from(data.annex, 'hex'));
528
+ writer.writeBytesWithLength(fromHex(data.annex));
458
529
  }
459
530
  }
460
531
  static writeScriptElement(writer, element) {
461
532
  writer.writeU8(element.elementType === 'buffer' ? 0 : 1);
462
533
  if (element.elementType === 'buffer') {
463
- writer.writeBytesWithLength(Buffer.from(element.value, 'hex'));
534
+ writer.writeBytesWithLength(fromHex(element.value));
464
535
  }
465
536
  else {
466
537
  writer.writeU32(element.value);
@@ -475,17 +546,17 @@ export class TransactionSerializer {
475
546
  const witnessesCount = reader.readU16();
476
547
  const witnesses = [];
477
548
  for (let i = 0; i < witnessesCount; i++) {
478
- witnesses.push(Buffer.from(reader.readBytesWithLength()).toString('hex'));
549
+ witnesses.push(toHex(reader.readBytesWithLength()));
479
550
  }
480
551
  const hasAnnex = reader.readBoolean();
481
552
  const annex = hasAnnex
482
- ? Buffer.from(reader.readBytesWithLength()).toString('hex')
553
+ ? toHex(reader.readBytesWithLength())
483
554
  : undefined;
484
555
  return {
485
556
  type: TransactionType.CUSTOM_CODE,
486
557
  scriptElements,
487
558
  witnesses,
488
- annex,
559
+ ...(annex !== undefined ? { annex } : {}),
489
560
  };
490
561
  }
491
562
  static readScriptElement(reader) {
@@ -493,7 +564,7 @@ export class TransactionSerializer {
493
564
  if (typeFlag === 0) {
494
565
  return {
495
566
  elementType: 'buffer',
496
- value: Buffer.from(reader.readBytesWithLength()).toString('hex'),
567
+ value: toHex(reader.readBytesWithLength()),
497
568
  };
498
569
  }
499
570
  else {
@@ -503,55 +574,58 @@ export class TransactionSerializer {
503
574
  };
504
575
  }
505
576
  }
577
+ // Cancel
506
578
  static writeCancelData(writer, data) {
507
- writer.writeBytesWithLength(Buffer.from(data.compiledTargetScript, 'hex'));
579
+ writer.writeBytesWithLength(fromHex(data.compiledTargetScript));
508
580
  }
509
581
  static readCancelData(reader) {
510
582
  return {
511
583
  type: TransactionType.CANCEL,
512
- compiledTargetScript: Buffer.from(reader.readBytesWithLength()).toString('hex'),
584
+ compiledTargetScript: toHex(reader.readBytesWithLength()),
513
585
  };
514
586
  }
515
587
  static writeChallenge(writer, challenge) {
516
588
  writer.writeU64(BigInt(challenge.epochNumber));
517
589
  writer.writeStringWithLength(challenge.mldsaPublicKey);
518
590
  writer.writeStringWithLength(challenge.legacyPublicKey);
519
- writer.writeBytesWithLength(Buffer.from(challenge.solution.replace('0x', ''), 'hex'));
520
- writer.writeBytesWithLength(Buffer.from(challenge.salt.replace('0x', ''), 'hex'));
521
- writer.writeBytesWithLength(Buffer.from(challenge.graffiti.replace('0x', ''), 'hex'));
591
+ writer.writeBytesWithLength(fromHex(challenge.solution.replace('0x', '')));
592
+ writer.writeBytesWithLength(fromHex(challenge.salt.replace('0x', '')));
593
+ writer.writeBytesWithLength(fromHex(challenge.graffiti.replace('0x', '')));
522
594
  writer.writeU8(challenge.difficulty);
595
+ // Verification
523
596
  this.writeChallengeVerification(writer, challenge.verification);
597
+ // Optional submission
524
598
  writer.writeBoolean(challenge.submission !== undefined);
525
599
  if (challenge.submission !== undefined) {
526
600
  writer.writeStringWithLength(challenge.submission.mldsaPublicKey);
527
601
  writer.writeStringWithLength(challenge.submission.legacyPublicKey);
528
- writer.writeBytesWithLength(Buffer.from(challenge.submission.solution.replace('0x', ''), 'hex'));
602
+ writer.writeBytesWithLength(fromHex(challenge.submission.solution.replace('0x', '')));
529
603
  writer.writeBoolean(challenge.submission.graffiti !== undefined);
530
604
  if (challenge.submission.graffiti !== undefined) {
531
- writer.writeBytesWithLength(Buffer.from(challenge.submission.graffiti.replace('0x', ''), 'hex'));
605
+ writer.writeBytesWithLength(fromHex(challenge.submission.graffiti.replace('0x', '')));
532
606
  }
533
- writer.writeBytesWithLength(Buffer.from(challenge.submission.signature.replace('0x', ''), 'hex'));
607
+ writer.writeBytesWithLength(fromHex(challenge.submission.signature.replace('0x', '')));
534
608
  }
535
609
  }
536
610
  static writeChallengeVerification(writer, verification) {
537
- writer.writeBytesWithLength(Buffer.from(verification.epochHash.replace('0x', ''), 'hex'));
538
- writer.writeBytesWithLength(Buffer.from(verification.epochRoot.replace('0x', ''), 'hex'));
539
- writer.writeBytesWithLength(Buffer.from(verification.targetHash.replace('0x', ''), 'hex'));
540
- writer.writeBytesWithLength(Buffer.from(verification.targetChecksum.replace('0x', ''), 'hex'));
611
+ writer.writeBytesWithLength(fromHex(verification.epochHash.replace('0x', '')));
612
+ writer.writeBytesWithLength(fromHex(verification.epochRoot.replace('0x', '')));
613
+ writer.writeBytesWithLength(fromHex(verification.targetHash.replace('0x', '')));
614
+ writer.writeBytesWithLength(fromHex(verification.targetChecksum.replace('0x', '')));
541
615
  writer.writeU64(BigInt(verification.startBlock));
542
616
  writer.writeU64(BigInt(verification.endBlock));
543
617
  writer.writeU16(verification.proofs.length);
544
618
  for (const proof of verification.proofs) {
545
- writer.writeBytesWithLength(Buffer.from(proof.replace('0x', ''), 'hex'));
619
+ writer.writeBytesWithLength(fromHex(proof.replace('0x', '')));
546
620
  }
547
621
  }
548
622
  static readChallenge(reader) {
549
623
  const epochNumber = reader.readU64().toString();
550
624
  const mldsaPublicKey = reader.readStringWithLength();
551
625
  const legacyPublicKey = reader.readStringWithLength();
552
- const solution = '0x' + Buffer.from(reader.readBytesWithLength()).toString('hex');
553
- const salt = '0x' + Buffer.from(reader.readBytesWithLength()).toString('hex');
554
- const graffiti = '0x' + Buffer.from(reader.readBytesWithLength()).toString('hex');
626
+ const solution = '0x' + toHex(reader.readBytesWithLength());
627
+ const salt = '0x' + toHex(reader.readBytesWithLength());
628
+ const graffiti = '0x' + toHex(reader.readBytesWithLength());
555
629
  const difficulty = reader.readU8();
556
630
  const verification = this.readChallengeVerification(reader);
557
631
  const hasSubmission = reader.readBoolean();
@@ -559,18 +633,18 @@ export class TransactionSerializer {
559
633
  if (hasSubmission) {
560
634
  const subMldsaPublicKey = reader.readStringWithLength();
561
635
  const subLegacyPublicKey = reader.readStringWithLength();
562
- const subSolution = '0x' + Buffer.from(reader.readBytesWithLength()).toString('hex');
636
+ const subSolution = '0x' + toHex(reader.readBytesWithLength());
563
637
  const hasGraffiti = reader.readBoolean();
564
638
  const subGraffiti = hasGraffiti
565
- ? '0x' + Buffer.from(reader.readBytesWithLength()).toString('hex')
639
+ ? '0x' + toHex(reader.readBytesWithLength())
566
640
  : undefined;
567
- const subSignature = '0x' + Buffer.from(reader.readBytesWithLength()).toString('hex');
641
+ const subSignature = '0x' + toHex(reader.readBytesWithLength());
568
642
  submission = {
569
643
  mldsaPublicKey: subMldsaPublicKey,
570
644
  legacyPublicKey: subLegacyPublicKey,
571
645
  solution: subSolution,
572
- graffiti: subGraffiti,
573
646
  signature: subSignature,
647
+ ...(subGraffiti !== undefined ? { graffiti: subGraffiti } : {}),
574
648
  };
575
649
  }
576
650
  return {
@@ -582,20 +656,20 @@ export class TransactionSerializer {
582
656
  graffiti,
583
657
  difficulty,
584
658
  verification,
585
- submission,
659
+ ...(submission !== undefined ? { submission } : {}),
586
660
  };
587
661
  }
588
662
  static readChallengeVerification(reader) {
589
- const epochHash = '0x' + Buffer.from(reader.readBytesWithLength()).toString('hex');
590
- const epochRoot = '0x' + Buffer.from(reader.readBytesWithLength()).toString('hex');
591
- const targetHash = '0x' + Buffer.from(reader.readBytesWithLength()).toString('hex');
592
- const targetChecksum = '0x' + Buffer.from(reader.readBytesWithLength()).toString('hex');
663
+ const epochHash = '0x' + toHex(reader.readBytesWithLength());
664
+ const epochRoot = '0x' + toHex(reader.readBytesWithLength());
665
+ const targetHash = '0x' + toHex(reader.readBytesWithLength());
666
+ const targetChecksum = '0x' + toHex(reader.readBytesWithLength());
593
667
  const startBlock = reader.readU64().toString();
594
668
  const endBlock = reader.readU64().toString();
595
669
  const proofsCount = reader.readU16();
596
670
  const proofs = [];
597
671
  for (let i = 0; i < proofsCount; i++) {
598
- proofs.push('0x' + Buffer.from(reader.readBytesWithLength()).toString('hex'));
672
+ proofs.push('0x' + toHex(reader.readBytesWithLength()));
599
673
  }
600
674
  return {
601
675
  epochHash,
@@ -627,11 +701,11 @@ export class TransactionSerializer {
627
701
  static writePrecomputedData(writer, data) {
628
702
  writer.writeBoolean(data.compiledTargetScript !== undefined);
629
703
  if (data.compiledTargetScript !== undefined) {
630
- writer.writeBytesWithLength(Buffer.from(data.compiledTargetScript, 'hex'));
704
+ writer.writeBytesWithLength(fromHex(data.compiledTargetScript));
631
705
  }
632
706
  writer.writeBoolean(data.randomBytes !== undefined);
633
707
  if (data.randomBytes !== undefined) {
634
- writer.writeBytesWithLength(Buffer.from(data.randomBytes, 'hex'));
708
+ writer.writeBytesWithLength(fromHex(data.randomBytes));
635
709
  }
636
710
  writer.writeBoolean(data.estimatedFees !== undefined);
637
711
  if (data.estimatedFees !== undefined) {
@@ -649,11 +723,11 @@ export class TransactionSerializer {
649
723
  static readPrecomputedData(reader) {
650
724
  const hasCompiledTargetScript = reader.readBoolean();
651
725
  const compiledTargetScript = hasCompiledTargetScript
652
- ? Buffer.from(reader.readBytesWithLength()).toString('hex')
726
+ ? toHex(reader.readBytesWithLength())
653
727
  : undefined;
654
728
  const hasRandomBytes = reader.readBoolean();
655
729
  const randomBytes = hasRandomBytes
656
- ? Buffer.from(reader.readBytesWithLength()).toString('hex')
730
+ ? toHex(reader.readBytesWithLength())
657
731
  : undefined;
658
732
  const hasEstimatedFees = reader.readBoolean();
659
733
  const estimatedFees = hasEstimatedFees ? reader.readU64().toString() : undefined;
@@ -662,16 +736,52 @@ export class TransactionSerializer {
662
736
  const hasContractAddress = reader.readBoolean();
663
737
  const contractAddress = hasContractAddress ? reader.readStringWithLength() : undefined;
664
738
  return {
665
- compiledTargetScript,
666
- randomBytes,
667
- estimatedFees,
668
- contractSeed,
669
- contractAddress,
739
+ ...(compiledTargetScript !== undefined ? { compiledTargetScript } : {}),
740
+ ...(randomBytes !== undefined ? { randomBytes } : {}),
741
+ ...(estimatedFees !== undefined ? { estimatedFees } : {}),
742
+ ...(contractSeed !== undefined ? { contractSeed } : {}),
743
+ ...(contractAddress !== undefined ? { contractAddress } : {}),
670
744
  };
671
745
  }
746
+ /**
747
+ * Calculate double SHA256 checksum (Bitcoin standard)
748
+ */
672
749
  static calculateChecksum(data) {
673
750
  const hash1 = createHash('sha256').update(data).digest();
674
- return createHash('sha256').update(hash1).digest();
751
+ return new Uint8Array(createHash('sha256').update(hash1).digest());
752
+ }
753
+ /**
754
+ * Compare two Uint8Arrays for equality
755
+ */
756
+ static bytesEqual(a, b) {
757
+ if (a.length !== b.length)
758
+ return false;
759
+ for (let i = 0; i < a.length; i++) {
760
+ if (a[i] !== b[i])
761
+ return false;
762
+ }
763
+ return true;
764
+ }
765
+ /**
766
+ * Encode Uint8Array to base64 string
767
+ */
768
+ static uint8ArrayToBase64(bytes) {
769
+ let binary = '';
770
+ for (let i = 0; i < bytes.length; i++) {
771
+ binary += String.fromCharCode(bytes[i]);
772
+ }
773
+ return btoa(binary);
774
+ }
775
+ /**
776
+ * Decode base64 string to Uint8Array
777
+ */
778
+ static base64ToUint8Array(base64) {
779
+ const binary = atob(base64);
780
+ const bytes = new Uint8Array(binary.length);
781
+ for (let i = 0; i < binary.length; i++) {
782
+ bytes[i] = binary.charCodeAt(i);
783
+ }
784
+ return bytes;
675
785
  }
676
786
  static networkNameToU8(name) {
677
787
  switch (name) {
@@ -698,3 +808,4 @@ export class TransactionSerializer {
698
808
  }
699
809
  }
700
810
  }
811
+ //# sourceMappingURL=TransactionSerializer.js.map