@btc-vision/transaction 1.8.0-beta.1 → 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 (765) 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 +12420 -3637
  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 +3602 -3203
  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 +920 -2966
  100. package/browser/noble-hashes.js +2067 -1038
  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 +13940 -9389
  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 +447 -129
  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 +223 -54
  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 +16 -39
  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/crypto/crypto-browser.js +3 -4
  661. package/src/deterministic/AddressMap.ts +5 -1
  662. package/src/deterministic/AddressSet.ts +5 -1
  663. package/src/deterministic/CustomMap.ts +6 -2
  664. package/src/deterministic/DeterministicMap.ts +8 -4
  665. package/src/deterministic/DeterministicSet.ts +6 -2
  666. package/src/deterministic/ExtendedAddressMap.ts +9 -4
  667. package/src/deterministic/FastMap.ts +9 -5
  668. package/src/ecc/backend.ts +17 -0
  669. package/src/epoch/ChallengeSolution.ts +3 -3
  670. package/src/epoch/interfaces/IChallengeSolution.ts +13 -13
  671. package/src/epoch/validator/EpochValidator.ts +24 -43
  672. package/src/generators/AddressGenerator.ts +6 -6
  673. package/src/generators/Features.ts +3 -3
  674. package/src/generators/Generator.ts +42 -26
  675. package/src/generators/builders/CalldataGenerator.ts +26 -24
  676. package/src/generators/builders/CustomGenerator.ts +4 -4
  677. package/src/generators/builders/DeploymentGenerator.ts +25 -23
  678. package/src/generators/builders/HashCommitmentGenerator.ts +31 -31
  679. package/src/generators/builders/LegacyCalldataGenerator.ts +26 -24
  680. package/src/generators/builders/MultiSignGenerator.ts +12 -12
  681. package/src/generators/builders/P2WDAGenerator.ts +10 -10
  682. package/src/keypair/Address.ts +115 -72
  683. package/src/keypair/AddressVerificator.ts +16 -147
  684. package/src/keypair/EcKeyPair.ts +109 -118
  685. package/src/keypair/MessageSigner.ts +70 -150
  686. package/src/keypair/Wallet.ts +59 -240
  687. package/src/metadata/ContractBaseMetadata.ts +2 -2
  688. package/src/mnemonic/Mnemonic.ts +32 -221
  689. package/src/opnet.ts +12 -6
  690. package/src/p2wda/P2WDADetector.ts +23 -72
  691. package/src/polyfill/disposable.ts +29 -0
  692. package/src/signer/AddressRotation.ts +1 -1
  693. package/src/signer/IRotationSigner.ts +3 -3
  694. package/src/signer/ParallelSignerAdapter.ts +59 -0
  695. package/src/signer/SignerUtils.ts +4 -4
  696. package/src/signer/TweakedSigner.ts +28 -13
  697. package/src/transaction/ContractAddress.ts +3 -7
  698. package/src/transaction/TransactionFactory.ts +28 -50
  699. package/src/transaction/browser/BrowserSignerBase.ts +12 -6
  700. package/src/transaction/browser/Web3Provider.ts +3 -3
  701. package/src/transaction/browser/extensions/UnisatSigner.ts +52 -48
  702. package/src/transaction/browser/extensions/XverseSigner.ts +55 -38
  703. package/src/transaction/browser/types/OPWallet.ts +2 -2
  704. package/src/transaction/browser/types/Unisat.ts +1 -1
  705. package/src/transaction/builders/CancelTransaction.ts +59 -24
  706. package/src/transaction/builders/ChallengeSolutionTransaction.ts +3 -3
  707. package/src/transaction/builders/ConsolidatedInteractionTransaction.ts +39 -34
  708. package/src/transaction/builders/CustomScriptTransaction.ts +79 -56
  709. package/src/transaction/builders/DeploymentTransaction.ts +82 -63
  710. package/src/transaction/builders/FundingTransaction.ts +11 -11
  711. package/src/transaction/builders/InteractionTransaction.ts +10 -10
  712. package/src/transaction/builders/InteractionTransactionP2WDA.ts +38 -40
  713. package/src/transaction/builders/MultiSignTransaction.ts +68 -61
  714. package/src/transaction/builders/SharedInteractionTransaction.ts +81 -57
  715. package/src/transaction/builders/TransactionBuilder.ts +101 -79
  716. package/src/transaction/interfaces/ICancelTransactionParameters.ts +2 -2
  717. package/src/transaction/interfaces/IConsolidatedTransactionParameters.ts +5 -5
  718. package/src/transaction/interfaces/ICustomTransactionParameters.ts +5 -5
  719. package/src/transaction/interfaces/ITransactionParameters.ts +15 -15
  720. package/src/transaction/interfaces/ITransactionResponses.ts +2 -2
  721. package/src/transaction/interfaces/ITweakedTransactionData.ts +17 -8
  722. package/src/transaction/interfaces/IWeb3ProviderTypes.ts +3 -3
  723. package/src/transaction/interfaces/Tap.ts +3 -3
  724. package/src/transaction/mineable/IP2WSHAddress.ts +1 -1
  725. package/src/transaction/mineable/TimelockGenerator.ts +19 -12
  726. package/src/transaction/offline/OfflineTransactionManager.ts +22 -23
  727. package/src/transaction/offline/TransactionReconstructor.ts +83 -91
  728. package/src/transaction/offline/TransactionSerializer.ts +151 -101
  729. package/src/transaction/offline/TransactionStateCapture.ts +83 -79
  730. package/src/transaction/offline/interfaces/ISerializableState.ts +1 -1
  731. package/src/transaction/offline/interfaces/ITypeSpecificData.ts +1 -1
  732. package/src/transaction/shared/P2TR_MS.ts +4 -4
  733. package/src/transaction/shared/TweakedTransaction.ts +326 -124
  734. package/src/transaction/utils/WitnessUtils.ts +18 -9
  735. package/src/utils/BufferHelper.ts +39 -37
  736. package/src/utxo/OPNetLimitedProvider.ts +7 -7
  737. package/src/utxo/interfaces/IUTXO.ts +7 -7
  738. package/src/verification/TapscriptVerificator.ts +73 -86
  739. package/test/address-rotation.test.ts +24 -24
  740. package/test/address.test.ts +12 -12
  741. package/test/addressmap.test.ts +30 -30
  742. package/test/binary-reader-writer.test.ts +8 -8
  743. package/test/browser/offline-transaction.test.ts +2206 -0
  744. package/test/browser/parallel-signing.test.ts +316 -0
  745. package/test/browser/setup.ts +11 -0
  746. package/test/browser/transaction-signing.test.ts +416 -0
  747. package/test/buffer-helper.test.ts +287 -0
  748. package/test/derivePath.test.ts +4 -3
  749. package/test/disposable.test.ts +279 -0
  750. package/test/fastmap-setall.test.ts +1 -1
  751. package/test/fastmap.test.ts +3 -3
  752. package/test/messagesigner-mldsa.test.ts +3 -3
  753. package/test/messagesigner-schnorr.test.ts +9 -9
  754. package/test/offline-transaction.test.ts +461 -288
  755. package/test/old/FastBigIntMap.ts +3 -3
  756. package/test/oldfastmap.test.ts +6 -6
  757. package/test/transaction-builders.test.ts +321 -0
  758. package/tsconfig.base.json +34 -18
  759. package/tsconfig.browser.json +15 -0
  760. package/tsconfig.json +3 -8
  761. package/vite.config.browser.ts +4 -5
  762. package/vitest.config.browser.ts +68 -0
  763. package/vitest.config.ts +1 -1
  764. package/browser/valibot.js +0 -4948
  765. package/tsconfig.webpack.json +0 -18
@@ -5,9 +5,10 @@ import { FastMap } from './FastMap.js';
5
5
  * A map implementation using Address with both MLDSA and tweaked keys.
6
6
  * Uses the tweaked public key for lookup/indexing, but stores the full Address.
7
7
  */
8
- export class ExtendedAddressMap<V> {
8
+ export class ExtendedAddressMap<V> implements Disposable {
9
9
  // Store tweaked bigint -> index mapping for fast lookup
10
10
  private indexMap: FastMap<bigint, number>;
11
+
11
12
  // Store actual addresses and values
12
13
  private _keys: Address[] = [];
13
14
  private _values: V[] = [];
@@ -72,7 +73,7 @@ export class ExtendedAddressMap<V> {
72
73
  // Rebuild index map (indices shifted after splice)
73
74
  this.indexMap.clear();
74
75
  for (let i = 0; i < this._keys.length; i++) {
75
- this.indexMap.set(this._keys[i].tweakedToBigInt(), i);
76
+ this.indexMap.set((this._keys[i] as Address).tweakedToBigInt(), i);
76
77
  }
77
78
 
78
79
  return true;
@@ -84,6 +85,10 @@ export class ExtendedAddressMap<V> {
84
85
  this._values = [];
85
86
  }
86
87
 
88
+ public [Symbol.dispose](): void {
89
+ this.clear();
90
+ }
91
+
87
92
  public indexOf(address: Address): number {
88
93
  const index = this.indexMap.get(address.tweakedToBigInt());
89
94
  return index !== undefined ? index : -1;
@@ -91,7 +96,7 @@ export class ExtendedAddressMap<V> {
91
96
 
92
97
  *entries(): IterableIterator<[Address, V]> {
93
98
  for (let i = 0; i < this._keys.length; i++) {
94
- yield [this._keys[i], this._values[i]];
99
+ yield [this._keys[i] as Address, this._values[i] as V];
95
100
  }
96
101
  }
97
102
 
@@ -112,7 +117,7 @@ export class ExtendedAddressMap<V> {
112
117
  thisArg?: unknown,
113
118
  ): void {
114
119
  for (let i = 0; i < this._keys.length; i++) {
115
- callback.call(thisArg, this._values[i], this._keys[i], this);
120
+ callback.call(thisArg, this._values[i] as V, this._keys[i] as Address, this);
116
121
  }
117
122
  }
118
123
 
@@ -10,7 +10,7 @@ export type FastRecord<V> = {
10
10
 
11
11
  export type IndexKey = string | number;
12
12
 
13
- export class FastMap<K extends PropertyExtendedKey, V> {
13
+ export class FastMap<K extends PropertyExtendedKey, V> implements Disposable {
14
14
  protected _keys: K[] = [];
15
15
  protected _values: FastRecord<V> = {};
16
16
 
@@ -47,13 +47,13 @@ export class FastMap<K extends PropertyExtendedKey, V> {
47
47
 
48
48
  public *values(): IterableIterator<V> {
49
49
  for (const key of this._keys) {
50
- yield this._values[key as IndexKey];
50
+ yield this._values[key as IndexKey] as V;
51
51
  }
52
52
  }
53
53
 
54
54
  public *entries(): IterableIterator<[K, V]> {
55
55
  for (const key of this._keys) {
56
- yield [key, this._values[key as IndexKey]];
56
+ yield [key, this._values[key as IndexKey] as V];
57
57
  }
58
58
  }
59
59
 
@@ -107,18 +107,22 @@ export class FastMap<K extends PropertyExtendedKey, V> {
107
107
  this._values = {};
108
108
  }
109
109
 
110
+ public [Symbol.dispose](): void {
111
+ this.clear();
112
+ }
113
+
110
114
  public forEach(
111
115
  callback: (value: V, key: K, map: FastMap<K, V>) => void,
112
116
  thisArg?: unknown,
113
117
  ): void {
114
118
  for (const key of this._keys) {
115
- callback.call(thisArg, this._values[key as IndexKey], key, this);
119
+ callback.call(thisArg, this._values[key as IndexKey] as V, key, this);
116
120
  }
117
121
  }
118
122
 
119
123
  *[Symbol.iterator](): IterableIterator<[K, V]> {
120
124
  for (const key of this._keys) {
121
- yield [key, this._values[key as IndexKey]];
125
+ yield [key, this._values[key as IndexKey] as V];
122
126
  }
123
127
  }
124
128
  }
@@ -0,0 +1,17 @@
1
+ import { createNobleBackend, type CryptoBackend } from '@btc-vision/ecpair';
2
+ import { type EccLib, initEccLib } from '@btc-vision/bitcoin';
3
+
4
+ /**
5
+ * Shared noble-curves backend for all EC operations.
6
+ * Instantiated once and reused across the entire library.
7
+ */
8
+ export const backend: CryptoBackend = createNobleBackend();
9
+
10
+ /**
11
+ * EccLib is now a type alias for CryptoBackend.
12
+ * The backend can be used directly.
13
+ */
14
+ export const eccLib: EccLib = backend;
15
+
16
+ // Initialize the ECC library once at module load
17
+ initEccLib(eccLib);
@@ -1,5 +1,5 @@
1
1
  import { stringToBuffer } from '../utils/StringToBuffer.js';
2
- import {
2
+ import type {
3
3
  IChallengeSolution,
4
4
  IChallengeSubmission,
5
5
  IChallengeVerification,
@@ -76,7 +76,7 @@ export class ChallengeSolution implements IChallengeSolution {
76
76
  public readonly difficulty: number;
77
77
  public readonly verification: ChallengeVerification;
78
78
 
79
- private readonly submission?: ChallengeSubmission;
79
+ private readonly submission?: ChallengeSubmission | undefined;
80
80
 
81
81
  constructor(data: RawChallenge) {
82
82
  this.epochNumber = BigInt(data.epochNumber);
@@ -170,7 +170,7 @@ export class ChallengeSolution implements IChallengeSolution {
170
170
  * Calculate the expected solution hash for this challenge
171
171
  * @returns {Promise<Buffer>} The calculated solution hash
172
172
  */
173
- public calculateSolution(): Buffer {
173
+ public calculateSolution(): Uint8Array {
174
174
  return EpochValidator.calculateSolution(
175
175
  this.verification.targetChecksum,
176
176
  this.publicKey.toBuffer(),
@@ -1,21 +1,21 @@
1
1
  import { Address } from '../../keypair/Address.js';
2
2
 
3
3
  export interface IChallengeVerification {
4
- readonly epochHash: Buffer;
5
- readonly epochRoot: Buffer;
6
- readonly targetHash: Buffer;
7
- readonly targetChecksum: Buffer;
4
+ readonly epochHash: Uint8Array;
5
+ readonly epochRoot: Uint8Array;
6
+ readonly targetHash: Uint8Array;
7
+ readonly targetChecksum: Uint8Array;
8
8
  readonly startBlock: bigint;
9
9
  readonly endBlock: bigint;
10
- readonly proofs: readonly Buffer[];
10
+ readonly proofs: readonly Uint8Array[];
11
11
  }
12
12
 
13
13
  export interface IChallengeSolution {
14
14
  readonly epochNumber: bigint;
15
15
  readonly publicKey: Address;
16
- readonly solution: Buffer;
17
- readonly salt: Buffer;
18
- readonly graffiti: Buffer;
16
+ readonly solution: Uint8Array;
17
+ readonly salt: Uint8Array;
18
+ readonly graffiti: Uint8Array;
19
19
  readonly difficulty: number;
20
20
  readonly verification: IChallengeVerification;
21
21
 
@@ -23,9 +23,9 @@ export interface IChallengeSolution {
23
23
  getSubmission(): IChallengeSubmission | undefined;
24
24
  toRaw(): RawChallenge;
25
25
  verify(): boolean;
26
- toBuffer(): Buffer;
26
+ toBuffer(): Uint8Array;
27
27
  toHex(): string;
28
- calculateSolution(): Buffer;
28
+ calculateSolution(): Uint8Array;
29
29
  checkDifficulty(minDifficulty: number): { valid: boolean; difficulty: number };
30
30
  getMiningTargetBlock(): bigint | null;
31
31
  }
@@ -50,9 +50,9 @@ export interface RawChallengeSubmission {
50
50
 
51
51
  export interface IChallengeSubmission {
52
52
  readonly publicKey: Address;
53
- readonly solution: Buffer;
54
- readonly graffiti: Buffer | undefined;
55
- readonly signature: Buffer;
53
+ readonly solution: Uint8Array;
54
+ readonly graffiti: Uint8Array | undefined;
55
+ readonly signature: Uint8Array;
56
56
  readonly epochNumber: bigint;
57
57
  verifySignature(): boolean;
58
58
  }
@@ -1,44 +1,34 @@
1
- import { IChallengeSolution, RawChallenge } from '../interfaces/IChallengeSolution.js';
2
- import { crypto } from '@btc-vision/bitcoin';
1
+ import type { IChallengeSolution, RawChallenge } from '../interfaces/IChallengeSolution.js';
2
+ import { crypto, equals } from '@btc-vision/bitcoin';
3
3
  import { Address } from '../../keypair/Address.js';
4
4
  import { stringToBuffer } from '../../utils/StringToBuffer.js';
5
5
 
6
6
  export class EpochValidator {
7
7
  private static readonly BLOCKS_PER_EPOCH: bigint = 5n;
8
8
 
9
- /**
10
- * Convert Buffer to Uint8Array
11
- */
12
- public static bufferToUint8Array(buffer: Buffer): Uint8Array {
13
- return new Uint8Array(buffer);
14
- }
15
-
16
- /**
17
- * Convert Uint8Array to Buffer
18
- */
19
- public static uint8ArrayToBuffer(array: Uint8Array): Buffer {
20
- return Buffer.from(array);
21
- }
22
-
23
9
  /**
24
10
  * Calculate SHA-1 hash
25
11
  */
26
- public static sha1(data: Uint8Array | Buffer): Buffer {
27
- return crypto.sha1(Buffer.isBuffer(data) ? data : Buffer.from(data));
12
+ public static sha1(data: Uint8Array): Uint8Array {
13
+ return crypto.sha1(data);
28
14
  }
29
15
 
30
16
  /**
31
17
  * Calculate mining preimage
32
18
  */
33
- public static calculatePreimage(checksumRoot: Buffer, publicKey: Buffer, salt: Buffer): Buffer {
19
+ public static calculatePreimage(
20
+ checksumRoot: Uint8Array,
21
+ publicKey: Uint8Array,
22
+ salt: Uint8Array,
23
+ ): Uint8Array {
34
24
  // Ensure all are 32 bytes
35
25
  if (checksumRoot.length !== 32 || publicKey.length !== 32 || salt.length !== 32) {
36
26
  throw new Error('All inputs must be 32 bytes');
37
27
  }
38
28
 
39
- const preimage = Buffer.alloc(32);
29
+ const preimage = new Uint8Array(32);
40
30
  for (let i = 0; i < 32; i++) {
41
- preimage[i] = checksumRoot[i] ^ publicKey[i] ^ salt[i];
31
+ preimage[i] = (checksumRoot[i] as number) ^ (publicKey[i] as number) ^ (salt[i] as number);
42
32
  }
43
33
 
44
34
  return preimage;
@@ -47,7 +37,7 @@ export class EpochValidator {
47
37
  /**
48
38
  * Count matching bits between two hashes
49
39
  */
50
- public static countMatchingBits(hash1: Buffer, hash2: Buffer): number {
40
+ public static countMatchingBits(hash1: Uint8Array, hash2: Uint8Array): number {
51
41
  let matchingBits = 0;
52
42
  if (hash1.length !== hash2.length) {
53
43
  throw new Error('Hashes must be of the same length');
@@ -63,7 +53,7 @@ export class EpochValidator {
63
53
  } else {
64
54
  // Check individual bits
65
55
  for (let bit = 7; bit >= 0; bit--) {
66
- if (((byte1 >> bit) & 1) === ((byte2 >> bit) & 1)) {
56
+ if ((((byte1 as number) >> bit) & 1) === (((byte2 as number) >> bit) & 1)) {
67
57
  matchingBits++;
68
58
  } else {
69
59
  return matchingBits;
@@ -88,16 +78,12 @@ export class EpochValidator {
88
78
  );
89
79
 
90
80
  const computedSolution = this.sha1(calculatedPreimage);
91
- const computedSolutionBuffer = this.uint8ArrayToBuffer(computedSolution);
92
81
 
93
- if (!computedSolutionBuffer.equals(challenge.solution)) {
82
+ if (!equals(computedSolution, challenge.solution)) {
94
83
  return false;
95
84
  }
96
85
 
97
- const matchingBits = this.countMatchingBits(
98
- computedSolutionBuffer,
99
- verification.targetHash,
100
- );
86
+ const matchingBits = this.countMatchingBits(computedSolution, verification.targetHash);
101
87
 
102
88
  if (matchingBits !== challenge.difficulty) {
103
89
  return false;
@@ -159,16 +145,12 @@ export class EpochValidator {
159
145
  );
160
146
 
161
147
  const computedSolution = this.sha1(calculatedPreimage);
162
- const computedSolutionBuffer = this.uint8ArrayToBuffer(computedSolution);
163
148
 
164
- if (!computedSolutionBuffer.equals(solution)) {
149
+ if (!equals(computedSolution, solution)) {
165
150
  return false;
166
151
  }
167
152
 
168
- const matchingBits = this.countMatchingBits(
169
- computedSolutionBuffer,
170
- verification.targetHash,
171
- );
153
+ const matchingBits = this.countMatchingBits(computedSolution, verification.targetHash);
172
154
 
173
155
  if (matchingBits !== difficulty) {
174
156
  return false;
@@ -201,21 +183,20 @@ export class EpochValidator {
201
183
  * @returns The SHA-1 hash of the preimage
202
184
  */
203
185
  public static calculateSolution(
204
- targetChecksum: Buffer,
205
- publicKey: Buffer,
206
- salt: Buffer,
207
- ): Buffer {
186
+ targetChecksum: Uint8Array,
187
+ publicKey: Uint8Array,
188
+ salt: Uint8Array,
189
+ ): Uint8Array {
208
190
  const preimage = this.calculatePreimage(targetChecksum, publicKey, salt);
209
- const hash = this.sha1(this.bufferToUint8Array(preimage));
210
- return this.uint8ArrayToBuffer(hash);
191
+ return this.sha1(preimage);
211
192
  }
212
193
 
213
194
  /**
214
195
  * Check if a solution meets the minimum difficulty requirement
215
196
  */
216
197
  public static checkDifficulty(
217
- solution: Buffer,
218
- targetHash: Buffer,
198
+ solution: Uint8Array,
199
+ targetHash: Uint8Array,
219
200
  minDifficulty: number,
220
201
  ): { valid: boolean; difficulty: number } {
221
202
  const difficulty = this.countMatchingBits(solution, targetHash);
@@ -1,12 +1,12 @@
1
1
  import { bech32, bech32m } from 'bech32';
2
- import { initEccLib, Network, ripemd160 } from '@btc-vision/bitcoin';
3
- import * as ecc from '@bitcoinerlab/secp256k1';
2
+ import { initEccLib, type Network, ripemd160 } from '@btc-vision/bitcoin';
3
+ import { eccLib } from '../ecc/backend.js';
4
4
 
5
- initEccLib(ecc);
5
+ initEccLib(eccLib);
6
6
 
7
7
  export class AddressGenerator {
8
8
  // Generate a valid SegWit address from random bytes
9
- public static generatePKSH(sha256Hash: Buffer, network: Network): string {
9
+ public static generatePKSH(sha256Hash: Uint8Array, network: Network): string {
10
10
  if (sha256Hash.length !== 32) throw new Error('Invalid hash length');
11
11
 
12
12
  const pkh = ripemd160(sha256Hash);
@@ -14,7 +14,7 @@ export class AddressGenerator {
14
14
  }
15
15
 
16
16
  // Generate a valid Taproot address from a public key
17
- public static generateTaprootAddress(pubKey: Buffer, network: { bech32: string }): string {
17
+ public static generateTaprootAddress(pubKey: Uint8Array, network: { bech32: string }): string {
18
18
  if (pubKey.length !== 32) throw new Error('Invalid public key length');
19
19
 
20
20
  // Convert the public key to words
@@ -28,7 +28,7 @@ export class AddressGenerator {
28
28
  }
29
29
 
30
30
  // Convert a hash to a SegWit address
31
- private static toSegwitAddress(pkh: Buffer, network: Network): string {
31
+ private static toSegwitAddress(pkh: Uint8Array, network: Network): string {
32
32
  const words = bech32.toWords(pkh);
33
33
  words.unshift(0x00); // Add the witness version byte (0x00 for P2WPKH)
34
34
 
@@ -1,6 +1,6 @@
1
- import { LoadedStorage } from '../transaction/interfaces/ITransactionParameters.js';
2
- import { ChallengeSubmission } from '../epoch/ChallengeSolution.js';
3
- import { MLDSARequestData } from './MLDSAData.js';
1
+ import type { LoadedStorage } from '../transaction/interfaces/ITransactionParameters.js';
2
+ import type { ChallengeSubmission } from '../epoch/ChallengeSolution.js';
3
+ import type { MLDSARequestData } from './MLDSAData.js';
4
4
 
5
5
  export enum Features {
6
6
  ACCESS_LIST = 0b1,
@@ -1,6 +1,20 @@
1
- import { Network, networks, toXOnly } from '@btc-vision/bitcoin';
1
+ import {
2
+ alloc,
3
+ fromUtf8,
4
+ type Network,
5
+ networks,
6
+ type PublicKey,
7
+ toXOnly,
8
+ type XOnlyPublicKey,
9
+ } from '@btc-vision/bitcoin';
2
10
  import { BinaryWriter } from '../buffer/BinaryWriter.js';
3
- import { AccessListFeature, EpochSubmissionFeature, Feature, Features, MLDSALinkRequest, } from './Features.js';
11
+ import {
12
+ type AccessListFeature,
13
+ type EpochSubmissionFeature,
14
+ type Feature,
15
+ Features,
16
+ type MLDSALinkRequest,
17
+ } from './Features.js';
4
18
  import { Address } from '../keypair/Address.js';
5
19
  import { Compressor } from '../bytecode/Compressor.js';
6
20
 
@@ -14,25 +28,25 @@ export abstract class Generator {
14
28
  /**
15
29
  * The magic number of OPNet
16
30
  */
17
- public static readonly MAGIC: Buffer = Buffer.from('op', 'utf-8');
31
+ public static readonly MAGIC: Uint8Array = fromUtf8('op');
18
32
 
19
33
  /**
20
34
  * The public key of the sender
21
35
  * @protected
22
36
  */
23
- protected readonly senderPubKey: Buffer;
37
+ protected readonly senderPubKey: Uint8Array;
24
38
 
25
39
  /**
26
40
  * The public key of the sender
27
41
  * @protected
28
42
  */
29
- protected readonly xSenderPubKey: Buffer;
43
+ protected readonly xSenderPubKey: Uint8Array;
30
44
 
31
45
  /**
32
46
  * The public key of the contract salt
33
47
  * @protected
34
48
  */
35
- protected readonly contractSaltPubKey?: Buffer;
49
+ protected readonly contractSaltPubKey?: Uint8Array | undefined;
36
50
 
37
51
  /**
38
52
  * The network to use
@@ -41,8 +55,8 @@ export abstract class Generator {
41
55
  protected readonly network: Network = networks.bitcoin;
42
56
 
43
57
  protected constructor(
44
- senderPubKey: Buffer,
45
- contractSaltPubKey?: Buffer,
58
+ senderPubKey: PublicKey | XOnlyPublicKey,
59
+ contractSaltPubKey?: Uint8Array,
46
60
  network: Network = networks.bitcoin,
47
61
  ) {
48
62
  this.senderPubKey = senderPubKey;
@@ -51,52 +65,54 @@ export abstract class Generator {
51
65
  this.xSenderPubKey = toXOnly(senderPubKey);
52
66
  }
53
67
 
54
- public buildHeader(features: Features[]): Buffer {
68
+ public buildHeader(features: Features[]): Uint8Array {
55
69
  let flags: number = 0;
56
70
 
57
71
  for (const feature of features) {
58
72
  flags |= feature;
59
73
  }
60
74
 
61
- const bytesU24 = Buffer.alloc(3);
62
- bytesU24.writeUIntBE(flags, 0, 3);
75
+ const bytesU24 = alloc(3);
76
+ bytesU24[0] = (flags >> 16) & 0xff;
77
+ bytesU24[1] = (flags >> 8) & 0xff;
78
+ bytesU24[2] = flags & 0xff;
63
79
 
64
- return Buffer.from([this.senderPubKey[0], ...bytesU24]);
80
+ return Uint8Array.from([this.senderPubKey[0], ...bytesU24]);
65
81
  }
66
82
 
67
- public getHeader(maxPriority: bigint, features: Features[] = []): Buffer {
83
+ public getHeader(maxPriority: bigint, features: Features[] = []): Uint8Array {
68
84
  const writer = new BinaryWriter(12);
69
85
  writer.writeBytes(this.buildHeader(features));
70
86
  writer.writeU64(maxPriority);
71
87
 
72
- return Buffer.from(writer.getBuffer());
88
+ return new Uint8Array(writer.getBuffer());
73
89
  }
74
90
 
75
91
  /**
76
92
  * Compile the script
77
93
  * @param args - The arguments to use when compiling the script
78
- * @returns {Buffer} - The compiled script
94
+ * @returns {Uint8Array} - The compiled script
79
95
  */
80
- public abstract compile(...args: unknown[]): Buffer;
96
+ public abstract compile(...args: unknown[]): Uint8Array;
81
97
 
82
98
  /**
83
99
  * Split a buffer into chunks
84
- * @param {Buffer} buffer - The buffer to split
100
+ * @param {Uint8Array} buffer - The buffer to split
85
101
  * @param {number} chunkSize - The size of each chunk
86
102
  * @protected
87
- * @returns {Array<Buffer[]>} - The chunks
103
+ * @returns {Array<Uint8Array[]>} - The chunks
88
104
  */
89
105
  protected splitBufferIntoChunks(
90
- buffer: Buffer,
106
+ buffer: Uint8Array,
91
107
  chunkSize: number = Generator.DATA_CHUNK_SIZE,
92
- ): Array<Buffer[]> {
93
- const chunks: Array<Buffer[]> = [];
108
+ ): Array<Uint8Array[]> {
109
+ const chunks: Array<Uint8Array[]> = [];
94
110
  for (let i = 0; i < buffer.length; i += chunkSize) {
95
111
  const dataLength = Math.min(chunkSize, buffer.length - i);
96
112
 
97
- const buf2 = Buffer.alloc(dataLength);
113
+ const buf2 = alloc(dataLength);
98
114
  for (let j = 0; j < dataLength; j++) {
99
- buf2.writeUInt8(buffer[i + j], j);
115
+ buf2[j] = buffer[i + j] as number;
100
116
  }
101
117
 
102
118
  chunks.push([buf2]);
@@ -131,13 +147,13 @@ export abstract class Generator {
131
147
 
132
148
  for (const contract in feature.data) {
133
149
  const parsedContract = Address.fromString(contract);
134
- const data = feature.data[contract];
150
+ const data = feature.data[contract] as string[];
135
151
 
136
152
  writer.writeAddress(parsedContract);
137
153
  writer.writeU32(data.length);
138
154
 
139
155
  for (const pointer of data) {
140
- const pointerBuffer = Buffer.from(pointer, 'base64');
156
+ const pointerBuffer = Uint8Array.from(atob(pointer), (c) => c.charCodeAt(0));
141
157
 
142
158
  if (pointerBuffer.length !== 32) {
143
159
  throw new Error(`Invalid pointer length: ${pointerBuffer.length}`);
@@ -147,7 +163,7 @@ export abstract class Generator {
147
163
  }
148
164
  }
149
165
 
150
- finalBuffer.writeBytesWithLength(Compressor.compress(Buffer.from(writer.getBuffer())));
166
+ finalBuffer.writeBytesWithLength(Compressor.compress(new Uint8Array(writer.getBuffer())));
151
167
  }
152
168
 
153
169
  private encodeChallengeSubmission(
@@ -1,10 +1,10 @@
1
- import { crypto, Network, networks, opcodes, script } from '@btc-vision/bitcoin';
2
- import { ECPairInterface } from 'ecpair';
1
+ import { concat, crypto, type Network, networks, opcodes, type PublicKey, script } from '@btc-vision/bitcoin';
2
+ import { type UniversalSigner } from '@btc-vision/ecpair';
3
3
  import { Compressor } from '../../bytecode/Compressor.js';
4
4
  import { EcKeyPair } from '../../keypair/EcKeyPair.js';
5
- import { Feature, Features } from '../Features.js';
5
+ import { type Feature, Features } from '../Features.js';
6
6
  import { Generator } from '../Generator.js';
7
- import { IChallengeSolution } from '../../epoch/interfaces/IChallengeSolution.js';
7
+ import type { IChallengeSolution } from '../../epoch/interfaces/IChallengeSolution.js';
8
8
  import { BinaryWriter } from '../../buffer/BinaryWriter.js';
9
9
 
10
10
  /**
@@ -12,8 +12,8 @@ import { BinaryWriter } from '../../buffer/BinaryWriter.js';
12
12
  */
13
13
  export class CalldataGenerator extends Generator {
14
14
  constructor(
15
- senderPubKey: Buffer,
16
- contractSaltPubKey: Buffer,
15
+ senderPubKey: PublicKey,
16
+ contractSaltPubKey: Uint8Array,
17
17
  network: Network = networks.bitcoin,
18
18
  ) {
19
19
  super(senderPubKey, contractSaltPubKey, network);
@@ -21,16 +21,16 @@ export class CalldataGenerator extends Generator {
21
21
 
22
22
  /**
23
23
  * Get the public key as a buffer
24
- * @param {Buffer[]} witnessKeys - The public keys
24
+ * @param {Uint8Array[]} witnessKeys - The public keys
25
25
  * @param {Network} network - The network to use
26
26
  * @private
27
- * @returns {Buffer} - The public key as a buffer
27
+ * @returns {Uint8Array} - The public key as a buffer
28
28
  */
29
- public static getPubKeyAsBuffer(witnessKeys: Buffer[], network: Network): Buffer {
30
- let finalBuffer: Buffer = Buffer.alloc(0);
29
+ public static getPubKeyAsBuffer(witnessKeys: Uint8Array[], network: Network): Uint8Array {
30
+ let finalBuffer: Uint8Array = new Uint8Array(0);
31
31
 
32
32
  for (const pubKey of witnessKeys) {
33
- const key: ECPairInterface = EcKeyPair.fromPublicKey(pubKey, network);
33
+ const key: UniversalSigner = EcKeyPair.fromPublicKey(pubKey, network);
34
34
 
35
35
  if (!key.compressed) {
36
36
  throw new Error('Public key must be compressed');
@@ -40,11 +40,11 @@ export class CalldataGenerator extends Generator {
40
40
  throw new Error(`Public key must be 33 bytes, got ${pubKey.byteLength} bytes.`);
41
41
  }
42
42
 
43
- finalBuffer = Buffer.concat([finalBuffer, pubKey]);
43
+ finalBuffer = concat([finalBuffer, pubKey]);
44
44
  }
45
45
 
46
46
  // compress the public keys
47
- const compressed: Buffer = Compressor.compress(finalBuffer);
47
+ const compressed: Uint8Array = Compressor.compress(finalBuffer);
48
48
  if (compressed.byteLength >= finalBuffer.byteLength) {
49
49
  // we ensure that the user pays the smallest amount of fees. [micro-optimization]
50
50
  return finalBuffer;
@@ -56,28 +56,28 @@ export class CalldataGenerator extends Generator {
56
56
 
57
57
  /**
58
58
  * Compile an interaction bitcoin script
59
- * @param {Buffer} calldata - The calldata to use
60
- * @param {Buffer} contractSecret - The contract secret
59
+ * @param {Uint8Array} calldata - The calldata to use
60
+ * @param {Uint8Array} contractSecret - The contract secret
61
61
  * @param {IChallengeSolution} challenge
62
62
  * @param maxPriority - Amount of satoshis to spend max on priority fee
63
63
  * @param {Feature<Features>[]} featuresRaw - The features to use
64
- * @returns {Buffer} - The compiled script
64
+ * @returns {Uint8Array} - The compiled script
65
65
  * @throws {Error} - If something goes wrong
66
66
  */
67
67
  public compile(
68
- calldata: Buffer,
69
- contractSecret: Buffer,
68
+ calldata: Uint8Array,
69
+ contractSecret: Uint8Array,
70
70
  challenge: IChallengeSolution,
71
71
  maxPriority: bigint,
72
72
  featuresRaw: Feature<Features>[] = [],
73
- ): Buffer {
73
+ ): Uint8Array {
74
74
  if (!this.contractSaltPubKey) throw new Error('Contract salt public key not set');
75
75
 
76
- const dataChunks: Buffer[][] = this.splitBufferIntoChunks(calldata);
76
+ const dataChunks: Uint8Array[][] = this.splitBufferIntoChunks(calldata);
77
77
  if (!dataChunks.length) throw new Error('No data chunks found');
78
78
 
79
79
  const featuresList: Features[] = [];
80
- const featureData: (number | Buffer | Buffer[])[] = [];
80
+ const featureData: (number | Uint8Array | Uint8Array[])[] = [];
81
81
 
82
82
  if (featuresRaw && featuresRaw.length) {
83
83
  const features: Feature<Features>[] = featuresRaw.sort(
@@ -86,16 +86,18 @@ export class CalldataGenerator extends Generator {
86
86
 
87
87
  const finalBuffer = new BinaryWriter();
88
88
  for (let i = 0; i < features.length; i++) {
89
- const feature = features[i];
89
+ const feature = features[i] as Feature<Features>;
90
90
  featuresList.push(feature.opcode);
91
91
 
92
92
  this.encodeFeature(feature, finalBuffer);
93
93
  }
94
94
 
95
- featureData.push(...this.splitBufferIntoChunks(Buffer.from(finalBuffer.getBuffer())));
95
+ featureData.push(
96
+ ...this.splitBufferIntoChunks(new Uint8Array(finalBuffer.getBuffer())),
97
+ );
96
98
  }
97
99
 
98
- let compiledData: (number | Buffer | Buffer[])[] = [
100
+ let compiledData: (number | Uint8Array | Uint8Array[])[] = [
99
101
  this.getHeader(maxPriority, featuresList),
100
102
  opcodes.OP_TOALTSTACK,
101
103