@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
@@ -1,33 +1,147 @@
1
- import { Network } from '@btc-vision/bitcoin';
2
- import { IHashCommittedP2WSH } from '../../transaction/interfaces/IConsolidatedTransactionParameters.js';
3
- import { IP2WSHAddress } from '../../transaction/mineable/IP2WSHAddress.js';
1
+ import { type Network, type Script } from '@btc-vision/bitcoin';
2
+ import type { IHashCommittedP2WSH } from '../../transaction/interfaces/IConsolidatedTransactionParameters.js';
3
+ import type { IP2WSHAddress } from '../../transaction/mineable/IP2WSHAddress.js';
4
4
  import { Logger } from '@btc-vision/logger';
5
+ /**
6
+ * Generates hash-committed P2WSH addresses for the Consolidated Hash-Committed Transaction (CHCT) system.
7
+ *
8
+ * These P2WSH scripts enforce that specific data must be provided in the witness to spend the output.
9
+ * If data is stripped or modified, the transaction fails at Bitcoin consensus level.
10
+ *
11
+ * Witness Script Structure (58 bytes):
12
+ * OP_HASH160 <20-byte-hash> OP_EQUALVERIFY <33-byte-pubkey> OP_CHECKSIG
13
+ *
14
+ * Witness Stack (when spending):
15
+ * [signature, data_chunk, witnessScript]
16
+ */
5
17
  export declare class HashCommitmentGenerator extends Logger {
18
+ /**
19
+ * Maximum chunk size per Bitcoin P2WSH stack item limit.
20
+ * See policy.h: MAX_STANDARD_P2WSH_STACK_ITEM_SIZE = 80
21
+ */
6
22
  static readonly MAX_CHUNK_SIZE: number;
23
+ /**
24
+ * Maximum stack items per P2WSH input.
25
+ * See policy.h: MAX_STANDARD_P2WSH_STACK_ITEMS = 100
26
+ */
7
27
  static readonly MAX_STACK_ITEMS: number;
28
+ /**
29
+ * Maximum total witness size (serialized).
30
+ * See policy.cpp: GetSerializeSize(tx.vin[i].scriptWitness.stack) > g_script_size_policy_limit
31
+ * Default: 1650 bytes
32
+ */
8
33
  static readonly MAX_WITNESS_SIZE: number;
34
+ /** Maximum weight per standard transaction */
9
35
  static readonly MAX_STANDARD_WEIGHT: number;
36
+ /** Minimum satoshis per output (dust limit) */
10
37
  static readonly MIN_OUTPUT_VALUE: bigint;
38
+ /**
39
+ * Bytes per hash commitment in witness script.
40
+ * OP_HASH160 (1) + push (1) + hash (20) + OP_EQUALVERIFY (1) = 23 bytes
41
+ */
11
42
  private static readonly BYTES_PER_COMMITMENT;
12
- private static readonly SIG_CHECK_BYTES;
43
+ /**
44
+ * Fixed overhead in witness serialization:
45
+ * - Stack item count: 1 byte
46
+ * - Signature: 73 bytes (72 + 1 length prefix)
47
+ * - Script length prefix: 3 bytes (varInt for sizes 253-65535)
48
+ * - Script base (pubkey + checksig): 35 bytes
49
+ */
13
50
  private static readonly WITNESS_FIXED_OVERHEAD;
51
+ /**
52
+ * Per-chunk overhead in witness:
53
+ * - Data: 81 bytes (80 + 1 length prefix)
54
+ * - Script commitment: 23 bytes
55
+ * Total: 104 bytes per chunk
56
+ */
14
57
  private static readonly WITNESS_PER_CHUNK_OVERHEAD;
58
+ /**
59
+ * Maximum data chunks per P2WSH output.
60
+ * Limited by total witness size: (1650 - 112) / 104 = 14 chunks
61
+ */
15
62
  static readonly MAX_CHUNKS_PER_OUTPUT: number;
63
+ /** Base weight per input (non-witness): 41 bytes * 4 = 164 */
16
64
  private static readonly INPUT_BASE_WEIGHT;
65
+ /**
66
+ * Witness weight per input with max chunks:
67
+ * Total witness size is ~1566 bytes (under 1650 limit)
68
+ * Witness bytes count as 1 weight unit each.
69
+ */
17
70
  private static readonly INPUT_WITNESS_WEIGHT_MAX;
71
+ /** Total weight per input (with max chunks) */
18
72
  static readonly WEIGHT_PER_INPUT: number;
19
73
  readonly logColor: string;
20
74
  private readonly publicKey;
21
75
  private readonly network;
22
- constructor(publicKey: Buffer, network?: Network);
76
+ constructor(publicKey: Uint8Array, network?: Network);
77
+ /**
78
+ * Calculate the maximum number of inputs per standard reveal transaction.
79
+ *
80
+ * Standard tx weight limit: 400,000
81
+ * With max chunks per input (~10,385 weight), only ~38 inputs fit
82
+ *
83
+ * @returns Maximum inputs per reveal tx (~38 with max chunks)
84
+ */
23
85
  static calculateMaxInputsPerTx(): number;
86
+ /**
87
+ * Calculate maximum data per standard reveal transaction.
88
+ *
89
+ * @returns Maximum data in bytes (~300KB with batched chunks at 70 chunks/output)
90
+ */
24
91
  static calculateMaxDataPerTx(): number;
92
+ /**
93
+ * Estimate the number of P2WSH outputs needed for a given data size.
94
+ *
95
+ * @param dataSize Data size in bytes
96
+ * @returns Number of P2WSH outputs needed
97
+ */
25
98
  static estimateOutputCount(dataSize: number): number;
99
+ /**
100
+ * Estimate the number of 80-byte chunks for a given data size.
101
+ *
102
+ * @param dataSize Data size in bytes
103
+ * @returns Number of 80-byte chunks needed
104
+ */
26
105
  static estimateChunkCount(dataSize: number): number;
27
- static validateHashCommittedScript(witnessScript: Buffer): boolean;
28
- static extractDataHashes(witnessScript: Buffer): Buffer[] | null;
29
- static extractPublicKey(witnessScript: Buffer): Buffer | null;
30
- static verifyChunkCommitments(dataChunks: Buffer[], witnessScript: Buffer): boolean;
106
+ /**
107
+ * Validate that a witness script is a valid multi-hash committed script.
108
+ *
109
+ * Script structure: (OP_HASH160 <hash> OP_EQUALVERIFY)+ <pubkey> OP_CHECKSIG
110
+ *
111
+ * @param witnessScript The witness script to validate
112
+ * @returns true if valid hash-committed script
113
+ */
114
+ static validateHashCommittedScript(witnessScript: Uint8Array): boolean;
115
+ /**
116
+ * Extract all data hashes from a hash-committed witness script.
117
+ *
118
+ * @param witnessScript The witness script
119
+ * @returns Array of 20-byte data hashes (in data order), or null if invalid
120
+ */
121
+ static extractDataHashes(witnessScript: Uint8Array): Uint8Array[] | null;
122
+ /**
123
+ * Extract the public key from a hash-committed witness script.
124
+ *
125
+ * @param witnessScript The witness script
126
+ * @returns The 33-byte public key, or null if invalid script
127
+ */
128
+ static extractPublicKey(witnessScript: Uint8Array): Uint8Array | null;
129
+ /**
130
+ * Verify that data chunks match their committed hashes.
131
+ *
132
+ * @param dataChunks Array of data chunks (in order)
133
+ * @param witnessScript The witness script containing the hash commitments
134
+ * @returns true if all chunks match their commitments
135
+ */
136
+ static verifyChunkCommitments(dataChunks: Uint8Array[], witnessScript: Uint8Array): boolean;
137
+ /**
138
+ * Estimate fees for a complete CHCT flow (setup + reveal).
139
+ *
140
+ * @param dataSize Data size in bytes (before compression)
141
+ * @param feeRate Fee rate in sat/vB
142
+ * @param compressionRatio Expected compression ratio (default: 0.7)
143
+ * @returns Fee estimates
144
+ */
31
145
  static estimateFees(dataSize: number, feeRate: number, compressionRatio?: number): {
32
146
  compressedSize: number;
33
147
  outputCount: number;
@@ -40,10 +154,48 @@ export declare class HashCommitmentGenerator extends Logger {
40
154
  outputsValue: bigint;
41
155
  totalCost: bigint;
42
156
  };
43
- hashChunk(data: Buffer): Buffer;
44
- generateWitnessScript(dataHashes: Buffer[]): Buffer;
45
- generateP2WSHAddress(witnessScript: Buffer): IP2WSHAddress & {
46
- scriptPubKey: Buffer;
157
+ /**
158
+ * Calculate the HASH160 of a data chunk.
159
+ * HASH160 = RIPEMD160(SHA256(data))
160
+ */
161
+ hashChunk(data: Uint8Array): Uint8Array;
162
+ /**
163
+ * Generate a hash-committed witness script for multiple data chunks.
164
+ *
165
+ * Script structure (for N chunks):
166
+ * OP_HASH160 <hash_N> OP_EQUALVERIFY
167
+ * OP_HASH160 <hash_N-1> OP_EQUALVERIFY
168
+ * ...
169
+ * OP_HASH160 <hash_1> OP_EQUALVERIFY
170
+ * <pubkey> OP_CHECKSIG
171
+ *
172
+ * Hashes are in reverse order because witness stack is LIFO.
173
+ * Witness stack: [sig, data_1, data_2, ..., data_N, witnessScript]
174
+ * Stack before execution: [sig, data_1, data_2, ..., data_N] (data_N on top)
175
+ *
176
+ * @param dataHashes Array of HASH160 values (in data order, will be reversed in script)
177
+ * @returns The compiled witness script
178
+ */
179
+ generateWitnessScript(dataHashes: Uint8Array[]): Uint8Array;
180
+ /**
181
+ * Generate a P2WSH address from a witness script.
182
+ *
183
+ * @param witnessScript The witness script
184
+ * @returns P2WSH address info
185
+ */
186
+ generateP2WSHAddress(witnessScript: Uint8Array | Script): IP2WSHAddress & {
187
+ scriptPubKey: Uint8Array;
47
188
  };
48
- prepareChunks(data: Buffer, maxChunkSize?: number): IHashCommittedP2WSH[];
189
+ /**
190
+ * Split data into chunks and generate hash-committed P2WSH outputs.
191
+ *
192
+ * Each output commits to up to 98 data chunks (80 bytes each = 7,840 bytes).
193
+ * This is MUCH more efficient than one output per chunk.
194
+ *
195
+ * @param data The data to chunk and commit
196
+ * @param maxChunkSize Maximum bytes per stack item (default: 80, P2WSH stack item limit)
197
+ * @returns Array of hash-committed P2WSH outputs
198
+ */
199
+ prepareChunks(data: Uint8Array, maxChunkSize?: number): IHashCommittedP2WSH[];
49
200
  }
201
+ //# sourceMappingURL=HashCommitmentGenerator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HashCommitmentGenerator.d.ts","sourceRoot":"","sources":["../../../src/generators/builders/HashCommitmentGenerator.ts"],"names":[],"mappings":"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"}
@@ -1,48 +1,155 @@
1
- import { crypto, networks, opcodes, payments, script } from '@btc-vision/bitcoin';
1
+ import { crypto, equals, networks, opcodes, payments, script, } from '@btc-vision/bitcoin';
2
2
  import { Logger } from '@btc-vision/logger';
3
+ /**
4
+ * Generates hash-committed P2WSH addresses for the Consolidated Hash-Committed Transaction (CHCT) system.
5
+ *
6
+ * These P2WSH scripts enforce that specific data must be provided in the witness to spend the output.
7
+ * If data is stripped or modified, the transaction fails at Bitcoin consensus level.
8
+ *
9
+ * Witness Script Structure (58 bytes):
10
+ * OP_HASH160 <20-byte-hash> OP_EQUALVERIFY <33-byte-pubkey> OP_CHECKSIG
11
+ *
12
+ * Witness Stack (when spending):
13
+ * [signature, data_chunk, witnessScript]
14
+ */
3
15
  export class HashCommitmentGenerator extends Logger {
16
+ /**
17
+ * Maximum chunk size per Bitcoin P2WSH stack item limit.
18
+ * See policy.h: MAX_STANDARD_P2WSH_STACK_ITEM_SIZE = 80
19
+ */
20
+ static MAX_CHUNK_SIZE = 80;
21
+ /**
22
+ * Maximum stack items per P2WSH input.
23
+ * See policy.h: MAX_STANDARD_P2WSH_STACK_ITEMS = 100
24
+ */
25
+ static MAX_STACK_ITEMS = 100;
26
+ /**
27
+ * Maximum total witness size (serialized).
28
+ * See policy.cpp: GetSerializeSize(tx.vin[i].scriptWitness.stack) > g_script_size_policy_limit
29
+ * Default: 1650 bytes
30
+ */
31
+ static MAX_WITNESS_SIZE = 1650;
32
+ /** Maximum weight per standard transaction */
33
+ static MAX_STANDARD_WEIGHT = 400000;
34
+ /** Minimum satoshis per output (dust limit) */
35
+ static MIN_OUTPUT_VALUE = 330n;
36
+ /**
37
+ * Bytes per hash commitment in witness script.
38
+ * OP_HASH160 (1) + push (1) + hash (20) + OP_EQUALVERIFY (1) = 23 bytes
39
+ */
40
+ static BYTES_PER_COMMITMENT = 23;
41
+ /**
42
+ * Fixed overhead in witness serialization:
43
+ * - Stack item count: 1 byte
44
+ * - Signature: 73 bytes (72 + 1 length prefix)
45
+ * - Script length prefix: 3 bytes (varInt for sizes 253-65535)
46
+ * - Script base (pubkey + checksig): 35 bytes
47
+ */
48
+ static WITNESS_FIXED_OVERHEAD = 1 + 73 + 3 + 35;
49
+ /**
50
+ * Per-chunk overhead in witness:
51
+ * - Data: 81 bytes (80 + 1 length prefix)
52
+ * - Script commitment: 23 bytes
53
+ * Total: 104 bytes per chunk
54
+ */
55
+ static WITNESS_PER_CHUNK_OVERHEAD = HashCommitmentGenerator.MAX_CHUNK_SIZE + 1 + HashCommitmentGenerator.BYTES_PER_COMMITMENT;
56
+ /**
57
+ * Maximum data chunks per P2WSH output.
58
+ * Limited by total witness size: (1650 - 112) / 104 = 14 chunks
59
+ */
60
+ static MAX_CHUNKS_PER_OUTPUT = Math.floor((HashCommitmentGenerator.MAX_WITNESS_SIZE -
61
+ HashCommitmentGenerator.WITNESS_FIXED_OVERHEAD) /
62
+ HashCommitmentGenerator.WITNESS_PER_CHUNK_OVERHEAD);
63
+ /** Base weight per input (non-witness): 41 bytes * 4 = 164 */
64
+ static INPUT_BASE_WEIGHT = 164;
65
+ /**
66
+ * Witness weight per input with max chunks:
67
+ * Total witness size is ~1566 bytes (under 1650 limit)
68
+ * Witness bytes count as 1 weight unit each.
69
+ */
70
+ static INPUT_WITNESS_WEIGHT_MAX = HashCommitmentGenerator.MAX_WITNESS_SIZE; // Use max as upper bound
71
+ /** Total weight per input (with max chunks) */
72
+ static WEIGHT_PER_INPUT = HashCommitmentGenerator.INPUT_BASE_WEIGHT +
73
+ HashCommitmentGenerator.INPUT_WITNESS_WEIGHT_MAX;
74
+ logColor = '#4a90d9';
75
+ publicKey;
76
+ network;
4
77
  constructor(publicKey, network = networks.bitcoin) {
5
78
  super();
6
- this.logColor = '#4a90d9';
7
79
  if (publicKey.length !== 33) {
8
80
  throw new Error('Public key must be 33 bytes (compressed)');
9
81
  }
10
82
  this.publicKey = publicKey;
11
83
  this.network = network;
12
84
  }
85
+ /**
86
+ * Calculate the maximum number of inputs per standard reveal transaction.
87
+ *
88
+ * Standard tx weight limit: 400,000
89
+ * With max chunks per input (~10,385 weight), only ~38 inputs fit
90
+ *
91
+ * @returns Maximum inputs per reveal tx (~38 with max chunks)
92
+ */
13
93
  static calculateMaxInputsPerTx() {
14
- const txOverhead = 40;
15
- const outputOverhead = 200;
94
+ const txOverhead = 40; // version, locktime, input/output counts
95
+ const outputOverhead = 200; // typical outputs (contract, change)
16
96
  const availableWeight = HashCommitmentGenerator.MAX_STANDARD_WEIGHT - txOverhead - outputOverhead;
17
97
  return Math.floor(availableWeight / HashCommitmentGenerator.WEIGHT_PER_INPUT);
18
98
  }
99
+ /**
100
+ * Calculate maximum data per standard reveal transaction.
101
+ *
102
+ * @returns Maximum data in bytes (~300KB with batched chunks at 70 chunks/output)
103
+ */
19
104
  static calculateMaxDataPerTx() {
20
105
  return (HashCommitmentGenerator.calculateMaxInputsPerTx() *
21
106
  HashCommitmentGenerator.MAX_CHUNKS_PER_OUTPUT *
22
107
  HashCommitmentGenerator.MAX_CHUNK_SIZE);
23
108
  }
109
+ /**
110
+ * Estimate the number of P2WSH outputs needed for a given data size.
111
+ *
112
+ * @param dataSize Data size in bytes
113
+ * @returns Number of P2WSH outputs needed
114
+ */
24
115
  static estimateOutputCount(dataSize) {
25
116
  return Math.ceil(dataSize /
26
117
  (HashCommitmentGenerator.MAX_CHUNKS_PER_OUTPUT *
27
118
  HashCommitmentGenerator.MAX_CHUNK_SIZE));
28
119
  }
120
+ /**
121
+ * Estimate the number of 80-byte chunks for a given data size.
122
+ *
123
+ * @param dataSize Data size in bytes
124
+ * @returns Number of 80-byte chunks needed
125
+ */
29
126
  static estimateChunkCount(dataSize) {
30
127
  return Math.ceil(dataSize / HashCommitmentGenerator.MAX_CHUNK_SIZE);
31
128
  }
129
+ /**
130
+ * Validate that a witness script is a valid multi-hash committed script.
131
+ *
132
+ * Script structure: (OP_HASH160 <hash> OP_EQUALVERIFY)+ <pubkey> OP_CHECKSIG
133
+ *
134
+ * @param witnessScript The witness script to validate
135
+ * @returns true if valid hash-committed script
136
+ */
32
137
  static validateHashCommittedScript(witnessScript) {
33
138
  try {
34
139
  const decompiled = script.decompile(witnessScript);
35
140
  if (!decompiled || decompiled.length < 5) {
36
141
  return false;
37
142
  }
143
+ // Last two elements must be pubkey and OP_CHECKSIG
38
144
  const lastIdx = decompiled.length - 1;
39
145
  if (decompiled[lastIdx] !== opcodes.OP_CHECKSIG) {
40
146
  return false;
41
147
  }
42
148
  const pubkey = decompiled[lastIdx - 1];
43
- if (!Buffer.isBuffer(pubkey) || pubkey.length !== 33) {
149
+ if (!(pubkey instanceof Uint8Array) || pubkey.length !== 33) {
44
150
  return false;
45
151
  }
152
+ // Everything before must be (OP_HASH160 <hash> OP_EQUALVERIFY) triplets
46
153
  const hashParts = decompiled.slice(0, -2);
47
154
  if (hashParts.length % 3 !== 0 || hashParts.length === 0) {
48
155
  return false;
@@ -50,7 +157,7 @@ export class HashCommitmentGenerator extends Logger {
50
157
  for (let i = 0; i < hashParts.length; i += 3) {
51
158
  const hash = hashParts[i + 1];
52
159
  if (hashParts[i] !== opcodes.OP_HASH160 ||
53
- !Buffer.isBuffer(hash) ||
160
+ !(hash instanceof Uint8Array) ||
54
161
  hash.length !== 20 ||
55
162
  hashParts[i + 2] !== opcodes.OP_EQUALVERIFY) {
56
163
  return false;
@@ -62,6 +169,12 @@ export class HashCommitmentGenerator extends Logger {
62
169
  return false;
63
170
  }
64
171
  }
172
+ /**
173
+ * Extract all data hashes from a hash-committed witness script.
174
+ *
175
+ * @param witnessScript The witness script
176
+ * @returns Array of 20-byte data hashes (in data order), or null if invalid
177
+ */
65
178
  static extractDataHashes(witnessScript) {
66
179
  try {
67
180
  const decompiled = script.decompile(witnessScript);
@@ -69,17 +182,25 @@ export class HashCommitmentGenerator extends Logger {
69
182
  !HashCommitmentGenerator.validateHashCommittedScript(witnessScript)) {
70
183
  return null;
71
184
  }
185
+ // Extract hashes from triplets (they're in reverse order in script)
72
186
  const hashParts = decompiled.slice(0, -2);
73
187
  const hashes = [];
74
188
  for (let i = 0; i < hashParts.length; i += 3) {
75
189
  hashes.push(hashParts[i + 1]);
76
190
  }
191
+ // Reverse to get data order (script has them reversed)
77
192
  return hashes.reverse();
78
193
  }
79
194
  catch {
80
195
  return null;
81
196
  }
82
197
  }
198
+ /**
199
+ * Extract the public key from a hash-committed witness script.
200
+ *
201
+ * @param witnessScript The witness script
202
+ * @returns The 33-byte public key, or null if invalid script
203
+ */
83
204
  static extractPublicKey(witnessScript) {
84
205
  try {
85
206
  const decompiled = script.decompile(witnessScript);
@@ -93,6 +214,13 @@ export class HashCommitmentGenerator extends Logger {
93
214
  return null;
94
215
  }
95
216
  }
217
+ /**
218
+ * Verify that data chunks match their committed hashes.
219
+ *
220
+ * @param dataChunks Array of data chunks (in order)
221
+ * @param witnessScript The witness script containing the hash commitments
222
+ * @returns true if all chunks match their commitments
223
+ */
96
224
  static verifyChunkCommitments(dataChunks, witnessScript) {
97
225
  const committedHashes = HashCommitmentGenerator.extractDataHashes(witnessScript);
98
226
  if (!committedHashes || committedHashes.length !== dataChunks.length) {
@@ -100,20 +228,31 @@ export class HashCommitmentGenerator extends Logger {
100
228
  }
101
229
  for (let i = 0; i < dataChunks.length; i++) {
102
230
  const actualHash = crypto.hash160(dataChunks[i]);
103
- if (!committedHashes[i].equals(actualHash)) {
231
+ if (!equals(committedHashes[i], actualHash)) {
104
232
  return false;
105
233
  }
106
234
  }
107
235
  return true;
108
236
  }
237
+ /**
238
+ * Estimate fees for a complete CHCT flow (setup + reveal).
239
+ *
240
+ * @param dataSize Data size in bytes (before compression)
241
+ * @param feeRate Fee rate in sat/vB
242
+ * @param compressionRatio Expected compression ratio (default: 0.7)
243
+ * @returns Fee estimates
244
+ */
109
245
  static estimateFees(dataSize, feeRate, compressionRatio = 0.7) {
110
246
  const compressedSize = Math.ceil(dataSize * compressionRatio);
111
247
  const outputCount = HashCommitmentGenerator.estimateOutputCount(compressedSize);
112
248
  const chunkCount = HashCommitmentGenerator.estimateChunkCount(compressedSize);
113
- const setupInputVBytes = 2 * 58;
114
- const setupOutputVBytes = outputCount * 43 + 43;
115
- const setupOverhead = 11;
249
+ // Setup tx: inputs (funding) + outputs (P2WSH commitments + change)
250
+ // Estimate: 2 P2TR inputs + N P2WSH outputs + 1 change output
251
+ const setupInputVBytes = 2 * 58; // P2TR inputs ~58 vB each
252
+ const setupOutputVBytes = outputCount * 43 + 43; // P2WSH outputs ~43 vB, change ~43 vB
253
+ const setupOverhead = 11; // version, locktime, counts
116
254
  const setupVBytes = setupOverhead + setupInputVBytes + setupOutputVBytes;
255
+ // Reveal tx: N P2WSH inputs (each with up to 98 data chunks) + contract output + change
117
256
  const revealWeight = 40 + outputCount * HashCommitmentGenerator.WEIGHT_PER_INPUT + 200;
118
257
  const revealVBytes = Math.ceil(revealWeight / 4);
119
258
  const setupFee = BigInt(Math.ceil(setupVBytes * feeRate));
@@ -134,9 +273,30 @@ export class HashCommitmentGenerator extends Logger {
134
273
  totalCost,
135
274
  };
136
275
  }
276
+ /**
277
+ * Calculate the HASH160 of a data chunk.
278
+ * HASH160 = RIPEMD160(SHA256(data))
279
+ */
137
280
  hashChunk(data) {
138
281
  return crypto.hash160(data);
139
282
  }
283
+ /**
284
+ * Generate a hash-committed witness script for multiple data chunks.
285
+ *
286
+ * Script structure (for N chunks):
287
+ * OP_HASH160 <hash_N> OP_EQUALVERIFY
288
+ * OP_HASH160 <hash_N-1> OP_EQUALVERIFY
289
+ * ...
290
+ * OP_HASH160 <hash_1> OP_EQUALVERIFY
291
+ * <pubkey> OP_CHECKSIG
292
+ *
293
+ * Hashes are in reverse order because witness stack is LIFO.
294
+ * Witness stack: [sig, data_1, data_2, ..., data_N, witnessScript]
295
+ * Stack before execution: [sig, data_1, data_2, ..., data_N] (data_N on top)
296
+ *
297
+ * @param dataHashes Array of HASH160 values (in data order, will be reversed in script)
298
+ * @returns The compiled witness script
299
+ */
140
300
  generateWitnessScript(dataHashes) {
141
301
  if (dataHashes.length === 0) {
142
302
  throw new Error('At least one data hash is required');
@@ -149,16 +309,25 @@ export class HashCommitmentGenerator extends Logger {
149
309
  throw new Error(`HASH160 requires 20-byte hash, got ${hash.length}`);
150
310
  }
151
311
  }
312
+ // Build script parts - hashes in reverse order (last data chunk verified first)
152
313
  const scriptParts = [];
314
+ // Add hash commitments in reverse order
153
315
  for (let i = dataHashes.length - 1; i >= 0; i--) {
154
316
  scriptParts.push(opcodes.OP_HASH160);
155
317
  scriptParts.push(dataHashes[i]);
156
318
  scriptParts.push(opcodes.OP_EQUALVERIFY);
157
319
  }
320
+ // Add signature check
158
321
  scriptParts.push(this.publicKey);
159
322
  scriptParts.push(opcodes.OP_CHECKSIG);
160
323
  return script.compile(scriptParts);
161
324
  }
325
+ /**
326
+ * Generate a P2WSH address from a witness script.
327
+ *
328
+ * @param witnessScript The witness script
329
+ * @returns P2WSH address info
330
+ */
162
331
  generateP2WSHAddress(witnessScript) {
163
332
  const p2wsh = payments.p2wsh({
164
333
  redeem: { output: witnessScript },
@@ -173,6 +342,16 @@ export class HashCommitmentGenerator extends Logger {
173
342
  scriptPubKey: p2wsh.output,
174
343
  };
175
344
  }
345
+ /**
346
+ * Split data into chunks and generate hash-committed P2WSH outputs.
347
+ *
348
+ * Each output commits to up to 98 data chunks (80 bytes each = 7,840 bytes).
349
+ * This is MUCH more efficient than one output per chunk.
350
+ *
351
+ * @param data The data to chunk and commit
352
+ * @param maxChunkSize Maximum bytes per stack item (default: 80, P2WSH stack item limit)
353
+ * @returns Array of hash-committed P2WSH outputs
354
+ */
176
355
  prepareChunks(data, maxChunkSize = HashCommitmentGenerator.MAX_CHUNK_SIZE) {
177
356
  if (maxChunkSize > HashCommitmentGenerator.MAX_CHUNK_SIZE) {
178
357
  throw new Error(`Chunk size ${maxChunkSize} exceeds P2WSH stack item limit of ${HashCommitmentGenerator.MAX_CHUNK_SIZE}`);
@@ -180,13 +359,15 @@ export class HashCommitmentGenerator extends Logger {
180
359
  if (data.length === 0) {
181
360
  throw new Error('Data cannot be empty');
182
361
  }
362
+ // First, split data into 80-byte chunks
183
363
  const allChunks = [];
184
364
  let offset = 0;
185
365
  while (offset < data.length) {
186
366
  const chunkSize = Math.min(maxChunkSize, data.length - offset);
187
- allChunks.push(Buffer.from(data.subarray(offset, offset + chunkSize)));
367
+ allChunks.push(new Uint8Array(data.subarray(offset, offset + chunkSize)));
188
368
  offset += chunkSize;
189
369
  }
370
+ // Now batch chunks into outputs (up to 98 chunks per output)
190
371
  const outputs = [];
191
372
  let chunkIndex = 0;
192
373
  while (chunkIndex < allChunks.length) {
@@ -211,19 +392,4 @@ export class HashCommitmentGenerator extends Logger {
211
392
  return outputs;
212
393
  }
213
394
  }
214
- HashCommitmentGenerator.MAX_CHUNK_SIZE = 80;
215
- HashCommitmentGenerator.MAX_STACK_ITEMS = 100;
216
- HashCommitmentGenerator.MAX_WITNESS_SIZE = 1650;
217
- HashCommitmentGenerator.MAX_STANDARD_WEIGHT = 400000;
218
- HashCommitmentGenerator.MIN_OUTPUT_VALUE = 330n;
219
- HashCommitmentGenerator.BYTES_PER_COMMITMENT = 23;
220
- HashCommitmentGenerator.SIG_CHECK_BYTES = 35;
221
- HashCommitmentGenerator.WITNESS_FIXED_OVERHEAD = 1 + 73 + 3 + 35;
222
- HashCommitmentGenerator.WITNESS_PER_CHUNK_OVERHEAD = HashCommitmentGenerator.MAX_CHUNK_SIZE + 1 + HashCommitmentGenerator.BYTES_PER_COMMITMENT;
223
- HashCommitmentGenerator.MAX_CHUNKS_PER_OUTPUT = Math.floor((HashCommitmentGenerator.MAX_WITNESS_SIZE -
224
- HashCommitmentGenerator.WITNESS_FIXED_OVERHEAD) /
225
- HashCommitmentGenerator.WITNESS_PER_CHUNK_OVERHEAD);
226
- HashCommitmentGenerator.INPUT_BASE_WEIGHT = 164;
227
- HashCommitmentGenerator.INPUT_WITNESS_WEIGHT_MAX = HashCommitmentGenerator.MAX_WITNESS_SIZE;
228
- HashCommitmentGenerator.WEIGHT_PER_INPUT = HashCommitmentGenerator.INPUT_BASE_WEIGHT +
229
- HashCommitmentGenerator.INPUT_WITNESS_WEIGHT_MAX;
395
+ //# sourceMappingURL=HashCommitmentGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HashCommitmentGenerator.js","sourceRoot":"","sources":["../../../src/generators/builders/HashCommitmentGenerator.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,30 @@
1
- import { Network } from '@btc-vision/bitcoin';
1
+ import { type Network, type PublicKey } from '@btc-vision/bitcoin';
2
2
  import { Generator } from '../Generator.js';
3
- import { Feature, Features } from '../Features.js';
3
+ import { type Feature, Features } from '../Features.js';
4
+ /**
5
+ * Class to generate bitcoin script for interaction transactions
6
+ * @deprecated
7
+ */
4
8
  export declare class LegacyCalldataGenerator extends Generator {
5
- constructor(senderPubKey: Buffer, network?: Network);
6
- static getPubKeyAsBuffer(witnessKeys: Buffer[], network: Network): Buffer;
7
- compile(calldata: Buffer, contractSecret: Buffer, challenge: Buffer, maxPriority: bigint, featuresRaw?: Feature<Features>[]): Buffer;
9
+ constructor(senderPubKey: PublicKey, network?: Network);
10
+ /**
11
+ * Get the public key as a buffer
12
+ * @param {Uint8Array[]} witnessKeys - The public keys
13
+ * @param {Network} network - The network to use
14
+ * @private
15
+ * @returns {Uint8Array} - The public key as a buffer
16
+ */
17
+ static getPubKeyAsBuffer(witnessKeys: Uint8Array[], network: Network): Uint8Array;
18
+ /**
19
+ * Compile an interaction bitcoin script
20
+ * @param {Uint8Array} calldata - The calldata to use
21
+ * @param {Uint8Array} contractSecret - The contract secret
22
+ * @param {Uint8Array} challenge - The challenge to use
23
+ * @param {bigint} maxPriority - The maximum priority
24
+ * @param {number[]} [featuresRaw=[]] - The features to use (optional)
25
+ * @returns {Uint8Array} - The compiled script
26
+ * @throws {Error} - If something goes wrong
27
+ */
28
+ compile(calldata: Uint8Array, contractSecret: Uint8Array, challenge: Uint8Array, maxPriority: bigint, featuresRaw?: Feature<Features>[]): Uint8Array;
8
29
  }
30
+ //# sourceMappingURL=LegacyCalldataGenerator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LegacyCalldataGenerator.d.ts","sourceRoot":"","sources":["../../../src/generators/builders/LegacyCalldataGenerator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,OAAO,EAAqB,KAAK,SAAS,EAAU,MAAM,qBAAqB,CAAC;AAI9G,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,KAAK,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAGxD;;;GAGG;AACH,qBAAa,uBAAwB,SAAQ,SAAS;gBACtC,YAAY,EAAE,SAAS,EAAE,OAAO,GAAE,OAA0B;IAIxE;;;;;;OAMG;WACW,iBAAiB,CAAC,WAAW,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,OAAO,GAAG,UAAU;IA4BxF;;;;;;;;;OASG;IACI,OAAO,CACV,QAAQ,EAAE,UAAU,EACpB,cAAc,EAAE,UAAU,EAC1B,SAAS,EAAE,UAAU,EACrB,WAAW,EAAE,MAAM,EACnB,WAAW,GAAE,OAAO,CAAC,QAAQ,CAAC,EAAO,GACtC,UAAU;CAoEhB"}