@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
@@ -0,0 +1,416 @@
1
+ import { describe, expect, it, beforeAll } from 'vitest';
2
+ import { networks, payments, toHex } from '@btc-vision/bitcoin';
3
+ import { type UniversalSigner } from '@btc-vision/ecpair';
4
+ import {
5
+ TransactionSerializer,
6
+ TransactionStateCapture,
7
+ TransactionReconstructor,
8
+ OfflineTransactionManager,
9
+ SERIALIZATION_FORMAT_VERSION,
10
+ isFundingSpecificData,
11
+ TransactionType,
12
+ FundingTransaction,
13
+ EcKeyPair,
14
+ createSignerMap,
15
+ createAddressRotation,
16
+ ChainId,
17
+ currentConsensus,
18
+ MessageSigner,
19
+ } from '../../build/opnet.js';
20
+ import type {
21
+ ReconstructionOptions,
22
+ ISerializableTransactionState,
23
+ FundingSpecificData,
24
+ UTXO,
25
+ } from '../../build/opnet.js';
26
+
27
+ describe('Browser Transaction Signing', () => {
28
+ const network = networks.regtest;
29
+
30
+ let signer1: UniversalSigner;
31
+ let signer2: UniversalSigner;
32
+ let signer3: UniversalSigner;
33
+ let defaultSigner: UniversalSigner;
34
+
35
+ let address1: string;
36
+ let address2: string;
37
+ let address3: string;
38
+ let defaultAddress: string;
39
+
40
+ beforeAll(() => {
41
+ signer1 = EcKeyPair.generateRandomKeyPair(network);
42
+ signer2 = EcKeyPair.generateRandomKeyPair(network);
43
+ signer3 = EcKeyPair.generateRandomKeyPair(network);
44
+ defaultSigner = EcKeyPair.generateRandomKeyPair(network);
45
+
46
+ address1 = EcKeyPair.getTaprootAddress(signer1, network);
47
+ address2 = EcKeyPair.getTaprootAddress(signer2, network);
48
+ address3 = EcKeyPair.getTaprootAddress(signer3, network);
49
+ defaultAddress = EcKeyPair.getTaprootAddress(defaultSigner, network);
50
+ });
51
+
52
+ const createTaprootUtxo = (
53
+ address: string,
54
+ value: bigint,
55
+ txId: string = '0'.repeat(64),
56
+ index: number = 0,
57
+ ): UTXO => {
58
+ const p2tr = payments.p2tr({ address, network });
59
+ return {
60
+ transactionId: txId,
61
+ outputIndex: index,
62
+ value,
63
+ scriptPubKey: {
64
+ hex: toHex(p2tr.output as Uint8Array),
65
+ address,
66
+ },
67
+ };
68
+ };
69
+
70
+ describe('Single Transaction Signing', () => {
71
+ it('should export and sign a funding transaction', async () => {
72
+ const params = {
73
+ signer: defaultSigner,
74
+ mldsaSigner: null,
75
+ network,
76
+ utxos: [createTaprootUtxo(defaultAddress, 100000n, 'a'.repeat(64), 0)],
77
+ from: defaultAddress,
78
+ to: address2,
79
+ feeRate: 10,
80
+ priorityFee: 1000n,
81
+ gasSatFee: 500n,
82
+ amount: 50000n,
83
+ };
84
+
85
+ const exportedState = OfflineTransactionManager.exportFunding(params);
86
+ expect(OfflineTransactionManager.validate(exportedState)).toBe(true);
87
+
88
+ const signedTxHex = await OfflineTransactionManager.importSignAndExport(
89
+ exportedState,
90
+ { signer: defaultSigner },
91
+ );
92
+
93
+ expect(signedTxHex).toBeDefined();
94
+ expect(typeof signedTxHex).toBe('string');
95
+ expect(signedTxHex.length).toBeGreaterThan(0);
96
+ expect(/^[0-9a-f]+$/i.test(signedTxHex)).toBe(true);
97
+ });
98
+
99
+ it('should sign using two-step import then sign', async () => {
100
+ const params = {
101
+ signer: signer1,
102
+ mldsaSigner: null,
103
+ network,
104
+ utxos: [createTaprootUtxo(address1, 80000n, 'b'.repeat(64), 0)],
105
+ from: address1,
106
+ to: address2,
107
+ feeRate: 15,
108
+ priorityFee: 500n,
109
+ gasSatFee: 300n,
110
+ amount: 40000n,
111
+ };
112
+
113
+ const exportedState = OfflineTransactionManager.exportFunding(params);
114
+
115
+ const builder = OfflineTransactionManager.importForSigning(exportedState, {
116
+ signer: signer1,
117
+ });
118
+
119
+ expect(builder).toBeDefined();
120
+ expect(builder.type).toBe(TransactionType.FUNDING);
121
+
122
+ const signedTxHex = await OfflineTransactionManager.signAndExport(builder);
123
+ expect(signedTxHex).toBeDefined();
124
+ expect(/^[0-9a-f]+$/i.test(signedTxHex)).toBe(true);
125
+ });
126
+ });
127
+
128
+ describe('Fee Bumping', () => {
129
+ it('should sign with bumped fee rate', async () => {
130
+ const params = {
131
+ signer: signer2,
132
+ mldsaSigner: null,
133
+ network,
134
+ utxos: [createTaprootUtxo(address2, 120000n, 'c'.repeat(64), 0)],
135
+ from: address2,
136
+ to: address3,
137
+ feeRate: 5,
138
+ priorityFee: 200n,
139
+ gasSatFee: 100n,
140
+ amount: 60000n,
141
+ };
142
+
143
+ const originalState = OfflineTransactionManager.exportFunding(params);
144
+ const bumpedState = OfflineTransactionManager.rebuildWithNewFees(originalState, 25);
145
+
146
+ const bumpedInspected = OfflineTransactionManager.inspect(bumpedState);
147
+ expect(bumpedInspected.baseParams.feeRate).toBeCloseTo(25, 3);
148
+
149
+ const signedTxHex = await OfflineTransactionManager.importSignAndExport(
150
+ bumpedState,
151
+ { signer: signer2 },
152
+ );
153
+
154
+ expect(signedTxHex).toBeDefined();
155
+ expect(/^[0-9a-f]+$/i.test(signedTxHex)).toBe(true);
156
+ });
157
+
158
+ it('should sign with rebuildSignAndExport convenience method', async () => {
159
+ const params = {
160
+ signer: signer3,
161
+ mldsaSigner: null,
162
+ network,
163
+ utxos: [createTaprootUtxo(address3, 90000n, 'd'.repeat(64), 0)],
164
+ from: address3,
165
+ to: address1,
166
+ feeRate: 8,
167
+ priorityFee: 300n,
168
+ gasSatFee: 150n,
169
+ amount: 45000n,
170
+ };
171
+
172
+ const originalState = OfflineTransactionManager.exportFunding(params);
173
+
174
+ const signedTxHex = await OfflineTransactionManager.rebuildSignAndExport(
175
+ originalState,
176
+ 40,
177
+ { signer: signer3 },
178
+ );
179
+
180
+ expect(signedTxHex).toBeDefined();
181
+ expect(/^[0-9a-f]+$/i.test(signedTxHex)).toBe(true);
182
+ });
183
+ });
184
+
185
+ describe('Multi-UTXO Signing', () => {
186
+ it('should sign with multiple UTXOs', async () => {
187
+ const params = {
188
+ signer: defaultSigner,
189
+ mldsaSigner: null,
190
+ network,
191
+ utxos: [
192
+ createTaprootUtxo(defaultAddress, 30000n, 'e'.repeat(64), 0),
193
+ createTaprootUtxo(defaultAddress, 40000n, 'f'.repeat(64), 1),
194
+ createTaprootUtxo(defaultAddress, 50000n, '1'.repeat(64), 2),
195
+ ],
196
+ from: defaultAddress,
197
+ to: address2,
198
+ feeRate: 12,
199
+ priorityFee: 600n,
200
+ gasSatFee: 400n,
201
+ amount: 100000n,
202
+ };
203
+
204
+ const exportedState = OfflineTransactionManager.exportFunding(params);
205
+ const inspected = OfflineTransactionManager.inspect(exportedState);
206
+ expect(inspected.utxos).toHaveLength(3);
207
+
208
+ const signedTxHex = await OfflineTransactionManager.importSignAndExport(
209
+ exportedState,
210
+ { signer: defaultSigner },
211
+ );
212
+
213
+ expect(signedTxHex).toBeDefined();
214
+ expect(/^[0-9a-f]+$/i.test(signedTxHex)).toBe(true);
215
+ });
216
+ });
217
+
218
+ describe('Split Funding', () => {
219
+ it('should sign split funding transaction', async () => {
220
+ const params = {
221
+ signer: defaultSigner,
222
+ mldsaSigner: null,
223
+ network,
224
+ utxos: [createTaprootUtxo(defaultAddress, 200000n, '5'.repeat(64), 0)],
225
+ from: defaultAddress,
226
+ to: address2,
227
+ feeRate: 10,
228
+ priorityFee: 1000n,
229
+ gasSatFee: 500n,
230
+ amount: 150000n,
231
+ splitInputsInto: 3,
232
+ };
233
+
234
+ const exportedState = OfflineTransactionManager.exportFunding(params);
235
+ const inspected = OfflineTransactionManager.inspect(exportedState);
236
+ expect(isFundingSpecificData(inspected.typeSpecificData)).toBe(true);
237
+
238
+ const fundingData = inspected.typeSpecificData as FundingSpecificData;
239
+ expect(fundingData.splitInputsInto).toBe(3);
240
+
241
+ const signedTxHex = await OfflineTransactionManager.importSignAndExport(
242
+ exportedState,
243
+ { signer: defaultSigner },
244
+ );
245
+
246
+ expect(signedTxHex).toBeDefined();
247
+ expect(/^[0-9a-f]+$/i.test(signedTxHex)).toBe(true);
248
+ });
249
+ });
250
+
251
+ describe('Address Rotation', () => {
252
+ it('should sign with address rotation', async () => {
253
+ const signerMap = createSignerMap([
254
+ [defaultAddress, defaultSigner],
255
+ ]);
256
+
257
+ const params = {
258
+ signer: defaultSigner,
259
+ mldsaSigner: null,
260
+ network,
261
+ utxos: [
262
+ createTaprootUtxo(defaultAddress, 50000n, '2'.repeat(64), 0),
263
+ createTaprootUtxo(defaultAddress, 60000n, '3'.repeat(64), 1),
264
+ ],
265
+ from: defaultAddress,
266
+ to: address3,
267
+ feeRate: 10,
268
+ priorityFee: 500n,
269
+ gasSatFee: 250n,
270
+ amount: 80000n,
271
+ addressRotation: createAddressRotation(signerMap),
272
+ };
273
+
274
+ const exportedState = OfflineTransactionManager.exportFunding(params);
275
+ const inspected = OfflineTransactionManager.inspect(exportedState);
276
+ expect(inspected.addressRotationEnabled).toBe(true);
277
+
278
+ const signedTxHex = await OfflineTransactionManager.importSignAndExport(
279
+ exportedState,
280
+ { signer: defaultSigner, signerMap },
281
+ );
282
+
283
+ expect(signedTxHex).toBeDefined();
284
+ expect(/^[0-9a-f]+$/i.test(signedTxHex)).toBe(true);
285
+ });
286
+ });
287
+
288
+ describe('Format Round-Trip', () => {
289
+ it('should sign after base64 -> hex -> base64 conversion', async () => {
290
+ const params = {
291
+ signer: signer1,
292
+ mldsaSigner: null,
293
+ network,
294
+ utxos: [createTaprootUtxo(address1, 75000n, '6'.repeat(64), 0)],
295
+ from: address1,
296
+ to: address3,
297
+ feeRate: 20,
298
+ priorityFee: 800n,
299
+ gasSatFee: 400n,
300
+ amount: 35000n,
301
+ };
302
+
303
+ const base64State = OfflineTransactionManager.exportFunding(params);
304
+ const hexState = OfflineTransactionManager.toHex(base64State);
305
+ expect(/^[0-9a-f]+$/i.test(hexState)).toBe(true);
306
+
307
+ const backToBase64 = OfflineTransactionManager.fromHex(hexState);
308
+ expect(OfflineTransactionManager.validate(base64State)).toBe(true);
309
+ expect(OfflineTransactionManager.validate(backToBase64)).toBe(true);
310
+
311
+ const signedTxHex = await OfflineTransactionManager.importSignAndExport(
312
+ backToBase64,
313
+ { signer: signer1 },
314
+ );
315
+
316
+ expect(signedTxHex).toBeDefined();
317
+ expect(/^[0-9a-f]+$/i.test(signedTxHex)).toBe(true);
318
+ });
319
+ });
320
+
321
+ describe('State Capture and Reconstruction', () => {
322
+ it('should capture and reconstruct funding state', () => {
323
+ const params = {
324
+ signer: defaultSigner,
325
+ mldsaSigner: null,
326
+ network,
327
+ utxos: [createTaprootUtxo(address1, 100000n)],
328
+ from: address1,
329
+ to: address2,
330
+ feeRate: 10,
331
+ priorityFee: 1000n,
332
+ gasSatFee: 500n,
333
+ amount: 50000n,
334
+ splitInputsInto: 2,
335
+ };
336
+
337
+ const state = TransactionStateCapture.fromFunding(params);
338
+ expect(state.header.transactionType).toBe(TransactionType.FUNDING);
339
+ expect(state.baseParams.from).toBe(address1);
340
+ expect(isFundingSpecificData(state.typeSpecificData)).toBe(true);
341
+
342
+ const options: ReconstructionOptions = { signer: defaultSigner };
343
+ const builder = TransactionReconstructor.reconstruct(state, options);
344
+ expect(builder).toBeInstanceOf(FundingTransaction);
345
+ expect(builder.type).toBe(TransactionType.FUNDING);
346
+ });
347
+
348
+ it('should preserve data through serialize/deserialize round-trip', () => {
349
+ const originalState: ISerializableTransactionState = {
350
+ header: {
351
+ formatVersion: SERIALIZATION_FORMAT_VERSION,
352
+ consensusVersion: currentConsensus,
353
+ transactionType: TransactionType.FUNDING,
354
+ chainId: ChainId.Bitcoin,
355
+ timestamp: 1700000000000,
356
+ },
357
+ baseParams: {
358
+ from: address1,
359
+ to: address2,
360
+ feeRate: 12.5,
361
+ priorityFee: '1500',
362
+ gasSatFee: '750',
363
+ networkName: 'regtest',
364
+ txVersion: 2,
365
+ note: 'deadbeef',
366
+ anchor: true,
367
+ debugFees: true,
368
+ },
369
+ utxos: [{
370
+ transactionId: 'a'.repeat(64),
371
+ outputIndex: 3,
372
+ value: '123456',
373
+ scriptPubKeyHex: 'aa',
374
+ scriptPubKeyAddress: address1,
375
+ redeemScript: 'bb',
376
+ witnessScript: 'cc',
377
+ nonWitnessUtxo: 'dd',
378
+ }],
379
+ optionalInputs: [],
380
+ optionalOutputs: [],
381
+ addressRotationEnabled: false,
382
+ signerMappings: [],
383
+ typeSpecificData: {
384
+ type: TransactionType.FUNDING,
385
+ amount: '99999',
386
+ splitInputsInto: 3,
387
+ },
388
+ precomputedData: {
389
+ compiledTargetScript: '1234',
390
+ randomBytes: '5678',
391
+ estimatedFees: '1000',
392
+ },
393
+ };
394
+
395
+ const serialized = TransactionSerializer.serialize(originalState);
396
+ expect(serialized).toBeInstanceOf(Uint8Array);
397
+
398
+ const deserialized = TransactionSerializer.deserialize(serialized);
399
+ expect(deserialized.header.formatVersion).toBe(originalState.header.formatVersion);
400
+ expect(deserialized.baseParams.from).toBe(originalState.baseParams.from);
401
+ expect(deserialized.baseParams.feeRate).toBeCloseTo(originalState.baseParams.feeRate, 3);
402
+ expect(deserialized.utxos).toEqual(originalState.utxos);
403
+ expect(deserialized.typeSpecificData).toEqual(originalState.typeSpecificData);
404
+ expect(deserialized.precomputedData).toEqual(originalState.precomputedData);
405
+ });
406
+ });
407
+
408
+ describe('Message Signing', () => {
409
+ it('should sign a message with a keypair', () => {
410
+ const signed = MessageSigner.signMessage(signer1, 'Hello from the browser!');
411
+
412
+ expect(signed).toBeDefined();
413
+ expect(signed.signature).toBeDefined();
414
+ });
415
+ });
416
+ });
@@ -0,0 +1,287 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { BufferHelper } from '../build/opnet.js';
3
+
4
+ describe('BufferHelper', () => {
5
+ describe('bufferToUint8Array', () => {
6
+ it('should convert a Buffer to Uint8Array', () => {
7
+ const buf = Buffer.from([0x01, 0x02, 0x03]);
8
+ const result = BufferHelper.bufferToUint8Array(buf);
9
+
10
+ expect(result).toBeInstanceOf(Uint8Array);
11
+ expect(Array.from(result)).toEqual([0x01, 0x02, 0x03]);
12
+ });
13
+
14
+ it('should convert a Uint8Array to a new Uint8Array', () => {
15
+ const input = new Uint8Array([0xaa, 0xbb, 0xcc]);
16
+ const result = BufferHelper.bufferToUint8Array(input);
17
+
18
+ expect(result).toBeInstanceOf(Uint8Array);
19
+ expect(Array.from(result)).toEqual([0xaa, 0xbb, 0xcc]);
20
+ // Should be a copy, not the same reference
21
+ expect(result).not.toBe(input);
22
+ });
23
+
24
+ it('should handle empty input', () => {
25
+ const result = BufferHelper.bufferToUint8Array(new Uint8Array(0));
26
+
27
+ expect(result.length).toBe(0);
28
+ });
29
+ });
30
+
31
+ describe('uint8ArrayToHex', () => {
32
+ it('should convert bytes to hex string', () => {
33
+ const input = new Uint8Array([0xde, 0xad, 0xbe, 0xef]);
34
+ const result = BufferHelper.uint8ArrayToHex(input);
35
+
36
+ expect(result).toBe('deadbeef');
37
+ });
38
+
39
+ it('should handle single byte', () => {
40
+ const result = BufferHelper.uint8ArrayToHex(new Uint8Array([0x0a]));
41
+
42
+ expect(result).toBe('0a');
43
+ });
44
+
45
+ it('should handle empty array', () => {
46
+ const result = BufferHelper.uint8ArrayToHex(new Uint8Array(0));
47
+
48
+ expect(result).toBe('');
49
+ });
50
+
51
+ it('should handle all zeros', () => {
52
+ const result = BufferHelper.uint8ArrayToHex(new Uint8Array(4));
53
+
54
+ expect(result).toBe('00000000');
55
+ });
56
+ });
57
+
58
+ describe('hexToUint8Array', () => {
59
+ it('should convert hex string to Uint8Array', () => {
60
+ const result = BufferHelper.hexToUint8Array('deadbeef');
61
+
62
+ expect(Array.from(result)).toEqual([0xde, 0xad, 0xbe, 0xef]);
63
+ });
64
+
65
+ it('should strip 0x prefix', () => {
66
+ const result = BufferHelper.hexToUint8Array('0xdeadbeef');
67
+
68
+ expect(Array.from(result)).toEqual([0xde, 0xad, 0xbe, 0xef]);
69
+ });
70
+
71
+ it('should strip 0X prefix (uppercase)', () => {
72
+ const result = BufferHelper.hexToUint8Array('0Xabcd');
73
+
74
+ expect(Array.from(result)).toEqual([0xab, 0xcd]);
75
+ });
76
+
77
+ it('should pad odd-length hex with leading zero', () => {
78
+ const result = BufferHelper.hexToUint8Array('abc');
79
+
80
+ expect(Array.from(result)).toEqual([0x0a, 0xbc]);
81
+ });
82
+
83
+ it('should handle single character hex', () => {
84
+ const result = BufferHelper.hexToUint8Array('f');
85
+
86
+ expect(Array.from(result)).toEqual([0x0f]);
87
+ });
88
+
89
+ it('should handle empty string', () => {
90
+ const result = BufferHelper.hexToUint8Array('');
91
+
92
+ expect(result.length).toBe(0);
93
+ });
94
+
95
+ it('should handle 0x prefix with empty body', () => {
96
+ const result = BufferHelper.hexToUint8Array('0x');
97
+
98
+ expect(result.length).toBe(0);
99
+ });
100
+ });
101
+
102
+ describe('hexToUint8Array / uint8ArrayToHex round-trip', () => {
103
+ it('should round-trip arbitrary bytes', () => {
104
+ const original = new Uint8Array([0x00, 0xff, 0x80, 0x01, 0x7f]);
105
+ const hex = BufferHelper.uint8ArrayToHex(original);
106
+ const restored = BufferHelper.hexToUint8Array(hex);
107
+
108
+ expect(Array.from(restored)).toEqual(Array.from(original));
109
+ });
110
+
111
+ it('should round-trip 32-byte value', () => {
112
+ const hex = 'ab'.repeat(32);
113
+ const bytes = BufferHelper.hexToUint8Array(hex);
114
+ const backToHex = BufferHelper.uint8ArrayToHex(bytes);
115
+
116
+ expect(backToHex).toBe(hex);
117
+ expect(bytes.length).toBe(32);
118
+ });
119
+ });
120
+
121
+ describe('pointerToUint8Array', () => {
122
+ it('should convert zero pointer to 32-byte zero array', () => {
123
+ const result = BufferHelper.pointerToUint8Array(0n);
124
+
125
+ expect(result.length).toBe(32);
126
+ expect(Array.from(result)).toEqual(new Array(32).fill(0));
127
+ });
128
+
129
+ it('should convert pointer value 1 to right-padded array', () => {
130
+ const result = BufferHelper.pointerToUint8Array(1n);
131
+
132
+ expect(result.length).toBe(32);
133
+ expect(result[31]).toBe(1);
134
+ expect(result[0]).toBe(0);
135
+ });
136
+
137
+ it('should convert max u256 pointer', () => {
138
+ const maxU256 = (1n << 256n) - 1n;
139
+ const result = BufferHelper.pointerToUint8Array(maxU256);
140
+
141
+ expect(result.length).toBe(32);
142
+ expect(Array.from(result)).toEqual(new Array(32).fill(0xff));
143
+ });
144
+
145
+ it('should throw for negative pointer', () => {
146
+ expect(() => BufferHelper.pointerToUint8Array(-1n)).toThrow(
147
+ 'Pointer cannot be negative',
148
+ );
149
+ });
150
+
151
+ it('should throw for pointer exceeding 256-bit range', () => {
152
+ const tooBig = 1n << 256n;
153
+ expect(() => BufferHelper.pointerToUint8Array(tooBig)).toThrow(
154
+ 'Pointer exceeds 256-bit range',
155
+ );
156
+ });
157
+ });
158
+
159
+ describe('uint8ArrayToPointer', () => {
160
+ it('should convert 32-byte zero array to 0n', () => {
161
+ const result = BufferHelper.uint8ArrayToPointer(new Uint8Array(32));
162
+
163
+ expect(result).toBe(0n);
164
+ });
165
+
166
+ it('should convert single byte to bigint', () => {
167
+ const result = BufferHelper.uint8ArrayToPointer(new Uint8Array([0xff]));
168
+
169
+ expect(result).toBe(255n);
170
+ });
171
+
172
+ it('should convert multi-byte value', () => {
173
+ const result = BufferHelper.uint8ArrayToPointer(new Uint8Array([0x01, 0x00]));
174
+
175
+ expect(result).toBe(256n);
176
+ });
177
+
178
+ it('should handle empty array', () => {
179
+ const result = BufferHelper.uint8ArrayToPointer(new Uint8Array(0));
180
+
181
+ expect(result).toBe(0n);
182
+ });
183
+
184
+ it('should round-trip with pointerToUint8Array', () => {
185
+ const original = 123456789012345678901234567890n;
186
+ const bytes = BufferHelper.pointerToUint8Array(original);
187
+ const restored = BufferHelper.uint8ArrayToPointer(bytes);
188
+
189
+ expect(restored).toBe(original);
190
+ });
191
+
192
+ it('should round-trip max u256', () => {
193
+ const maxU256 = (1n << 256n) - 1n;
194
+ const bytes = BufferHelper.pointerToUint8Array(maxU256);
195
+ const restored = BufferHelper.uint8ArrayToPointer(bytes);
196
+
197
+ expect(restored).toBe(maxU256);
198
+ });
199
+ });
200
+
201
+ describe('valueToUint8Array', () => {
202
+ it('should convert zero with default length (32 bytes)', () => {
203
+ const result = BufferHelper.valueToUint8Array(0n);
204
+
205
+ expect(result.length).toBe(32);
206
+ expect(Array.from(result)).toEqual(new Array(32).fill(0));
207
+ });
208
+
209
+ it('should convert value 1 with default length', () => {
210
+ const result = BufferHelper.valueToUint8Array(1n);
211
+
212
+ expect(result.length).toBe(32);
213
+ expect(result[31]).toBe(1);
214
+ });
215
+
216
+ it('should convert value with custom length', () => {
217
+ const result = BufferHelper.valueToUint8Array(0xabcdn, 2);
218
+
219
+ expect(result.length).toBe(2);
220
+ expect(Array.from(result)).toEqual([0xab, 0xcd]);
221
+ });
222
+
223
+ it('should convert to 1-byte length', () => {
224
+ const result = BufferHelper.valueToUint8Array(255n, 1);
225
+
226
+ expect(result.length).toBe(1);
227
+ expect(result[0]).toBe(0xff);
228
+ });
229
+
230
+ it('should throw for negative value', () => {
231
+ expect(() => BufferHelper.valueToUint8Array(-1n)).toThrow('Value cannot be negative');
232
+ });
233
+
234
+ it('should throw when value exceeds specified length', () => {
235
+ expect(() => BufferHelper.valueToUint8Array(256n, 1)).toThrow(
236
+ 'Value exceeds 1-byte range',
237
+ );
238
+ });
239
+
240
+ it('should throw when value exceeds 32-byte range', () => {
241
+ const tooBig = 1n << 256n;
242
+ expect(() => BufferHelper.valueToUint8Array(tooBig)).toThrow(
243
+ 'Value exceeds 32-byte range',
244
+ );
245
+ });
246
+ });
247
+
248
+ describe('uint8ArrayToValue', () => {
249
+ it('should convert single byte', () => {
250
+ expect(BufferHelper.uint8ArrayToValue(new Uint8Array([0xff]))).toBe(255n);
251
+ });
252
+
253
+ it('should convert multi-byte big-endian', () => {
254
+ expect(BufferHelper.uint8ArrayToValue(new Uint8Array([0x01, 0x00]))).toBe(256n);
255
+ });
256
+
257
+ it('should convert 32 zero bytes to 0n', () => {
258
+ expect(BufferHelper.uint8ArrayToValue(new Uint8Array(32))).toBe(0n);
259
+ });
260
+
261
+ it('should handle empty array', () => {
262
+ expect(BufferHelper.uint8ArrayToValue(new Uint8Array(0))).toBe(0n);
263
+ });
264
+
265
+ it('should round-trip with valueToUint8Array', () => {
266
+ const original = 0xdeadbeefcafebabe1234567890n;
267
+ const bytes = BufferHelper.valueToUint8Array(original);
268
+ const restored = BufferHelper.uint8ArrayToValue(bytes);
269
+
270
+ expect(restored).toBe(original);
271
+ });
272
+
273
+ it('should round-trip with custom length', () => {
274
+ const original = 0xabcdn;
275
+ const bytes = BufferHelper.valueToUint8Array(original, 8);
276
+ const restored = BufferHelper.uint8ArrayToValue(bytes);
277
+
278
+ expect(restored).toBe(original);
279
+ });
280
+ });
281
+
282
+ describe('EXPECTED_BUFFER_LENGTH', () => {
283
+ it('should be 32', () => {
284
+ expect(BufferHelper.EXPECTED_BUFFER_LENGTH).toBe(32);
285
+ });
286
+ });
287
+ });