@btc-vision/transaction 1.8.0-beta.3 → 1.8.0-beta.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (764) hide show
  1. package/browser/_version.d.ts +1 -0
  2. package/browser/_version.d.ts.map +1 -0
  3. package/browser/abi/ABICoder.d.ts +1 -1
  4. package/browser/abi/ABICoder.d.ts.map +1 -0
  5. package/browser/branded/Branded.d.ts +4 -0
  6. package/browser/branded/Branded.d.ts.map +1 -0
  7. package/browser/btc-vision-bitcoin.js +11999 -2647
  8. package/browser/buffer/BinaryReader.d.ts +120 -1
  9. package/browser/buffer/BinaryReader.d.ts.map +1 -0
  10. package/browser/buffer/BinaryWriter.d.ts +51 -1
  11. package/browser/buffer/BinaryWriter.d.ts.map +1 -0
  12. package/browser/bytecode/Compressor.d.ts +12 -0
  13. package/browser/bytecode/Compressor.d.ts.map +1 -0
  14. package/browser/chain/ChainData.d.ts +2 -2
  15. package/browser/chain/ChainData.d.ts.map +1 -0
  16. package/browser/consensus/Consensus.d.ts +11 -3
  17. package/browser/consensus/Consensus.d.ts.map +1 -0
  18. package/browser/consensus/ConsensusConfig.d.ts +1 -0
  19. package/browser/consensus/ConsensusConfig.d.ts.map +1 -0
  20. package/browser/consensus/IConsensusConfig.d.ts +1 -0
  21. package/browser/consensus/IConsensusConfig.d.ts.map +1 -0
  22. package/browser/consensus/metadata/RoswellConsensus.d.ts +1 -0
  23. package/browser/consensus/metadata/RoswellConsensus.d.ts.map +1 -0
  24. package/browser/crypto/crypto.d.ts +1 -0
  25. package/browser/crypto/crypto.d.ts.map +1 -0
  26. package/browser/deterministic/AddressMap.d.ts +6 -1
  27. package/browser/deterministic/AddressMap.d.ts.map +1 -0
  28. package/browser/deterministic/AddressSet.d.ts +3 -1
  29. package/browser/deterministic/AddressSet.d.ts.map +1 -0
  30. package/browser/deterministic/CustomMap.d.ts +3 -1
  31. package/browser/deterministic/CustomMap.d.ts.map +1 -0
  32. package/browser/deterministic/DeterministicMap.d.ts +3 -1
  33. package/browser/deterministic/DeterministicMap.d.ts.map +1 -0
  34. package/browser/deterministic/DeterministicSet.d.ts +3 -1
  35. package/browser/deterministic/DeterministicSet.d.ts.map +1 -0
  36. package/browser/deterministic/ExtendedAddressMap.d.ts +7 -1
  37. package/browser/deterministic/ExtendedAddressMap.d.ts.map +1 -0
  38. package/browser/deterministic/FastMap.d.ts +7 -1
  39. package/browser/deterministic/FastMap.d.ts.map +1 -0
  40. package/browser/ecc/backend.d.ts +13 -0
  41. package/browser/ecc/backend.d.ts.map +1 -0
  42. package/browser/epoch/ChallengeSolution.d.ts +33 -1
  43. package/browser/epoch/ChallengeSolution.d.ts.map +1 -0
  44. package/browser/epoch/interfaces/IChallengeSolution.d.ts +14 -13
  45. package/browser/epoch/interfaces/IChallengeSolution.d.ts.map +1 -0
  46. package/browser/epoch/validator/EpochValidator.d.ts +37 -7
  47. package/browser/epoch/validator/EpochValidator.d.ts.map +1 -0
  48. package/browser/event/NetEvent.d.ts +1 -0
  49. package/browser/event/NetEvent.d.ts.map +1 -0
  50. package/browser/generators/AddressGenerator.d.ts +4 -3
  51. package/browser/generators/AddressGenerator.d.ts.map +1 -0
  52. package/browser/generators/Features.d.ts +1 -0
  53. package/browser/generators/Features.d.ts.map +1 -0
  54. package/browser/generators/Generator.d.ts +46 -10
  55. package/browser/generators/Generator.d.ts.map +1 -0
  56. package/browser/generators/MLDSAData.d.ts +1 -0
  57. package/browser/generators/MLDSAData.d.ts.map +1 -0
  58. package/browser/generators/builders/CalldataGenerator.d.ts +25 -4
  59. package/browser/generators/builders/CalldataGenerator.d.ts.map +1 -0
  60. package/browser/generators/builders/CustomGenerator.d.ts +13 -3
  61. package/browser/generators/builders/CustomGenerator.d.ts.map +1 -0
  62. package/browser/generators/builders/DeploymentGenerator.d.ts +15 -4
  63. package/browser/generators/builders/DeploymentGenerator.d.ts.map +1 -0
  64. package/browser/generators/builders/HashCommitmentGenerator.d.ts +164 -12
  65. package/browser/generators/builders/HashCommitmentGenerator.d.ts.map +1 -0
  66. package/browser/generators/builders/LegacyCalldataGenerator.d.ts +26 -4
  67. package/browser/generators/builders/LegacyCalldataGenerator.d.ts.map +1 -0
  68. package/browser/generators/builders/MultiSignGenerator.d.ts +6 -1
  69. package/browser/generators/builders/MultiSignGenerator.d.ts.map +1 -0
  70. package/browser/generators/builders/P2WDAGenerator.d.ts +42 -4
  71. package/browser/generators/builders/P2WDAGenerator.d.ts.map +1 -0
  72. package/browser/index.d.ts +1 -0
  73. package/browser/index.d.ts.map +1 -0
  74. package/browser/index.js +3558 -3167
  75. package/browser/keypair/Address.d.ts +283 -13
  76. package/browser/keypair/Address.d.ts.map +1 -0
  77. package/browser/keypair/AddressVerificator.d.ts +7 -6
  78. package/browser/keypair/AddressVerificator.d.ts.map +1 -0
  79. package/browser/keypair/EcKeyPair.d.ts +183 -21
  80. package/browser/keypair/EcKeyPair.d.ts.map +1 -0
  81. package/browser/keypair/MessageSigner.d.ts +17 -16
  82. package/browser/keypair/MessageSigner.d.ts.map +1 -0
  83. package/browser/keypair/Secp256k1PointDeriver.d.ts +55 -0
  84. package/browser/keypair/Secp256k1PointDeriver.d.ts.map +1 -0
  85. package/browser/keypair/Wallet.d.ts +27 -13
  86. package/browser/keypair/Wallet.d.ts.map +1 -0
  87. package/browser/keypair/interfaces/IWallet.d.ts +19 -0
  88. package/browser/keypair/interfaces/IWallet.d.ts.map +1 -0
  89. package/browser/metadata/ContractBaseMetadata.d.ts +10 -2
  90. package/browser/metadata/ContractBaseMetadata.d.ts.map +1 -0
  91. package/browser/mnemonic/BIPStandard.d.ts +59 -0
  92. package/browser/mnemonic/BIPStandard.d.ts.map +1 -0
  93. package/browser/mnemonic/Mnemonic.d.ts +15 -3
  94. package/browser/mnemonic/Mnemonic.d.ts.map +1 -0
  95. package/browser/mnemonic/MnemonicStrength.d.ts +6 -0
  96. package/browser/mnemonic/MnemonicStrength.d.ts.map +1 -0
  97. package/browser/network/ChainId.d.ts +1 -0
  98. package/browser/network/ChainId.d.ts.map +1 -0
  99. package/browser/noble-curves.js +844 -2746
  100. package/browser/noble-hashes.js +1338 -2067
  101. package/browser/opnet.d.ts +22 -1
  102. package/browser/opnet.d.ts.map +1 -0
  103. package/browser/p2wda/P2WDADetector.d.ts +36 -9
  104. package/browser/p2wda/P2WDADetector.d.ts.map +1 -0
  105. package/browser/polyfill/disposable.d.ts +16 -0
  106. package/browser/polyfill/disposable.d.ts.map +1 -0
  107. package/browser/signer/AddressRotation.d.ts +36 -0
  108. package/browser/signer/AddressRotation.d.ts.map +1 -0
  109. package/browser/signer/IRotationSigner.d.ts +27 -3
  110. package/browser/signer/IRotationSigner.d.ts.map +1 -0
  111. package/browser/signer/ParallelSignerAdapter.d.ts +14 -0
  112. package/browser/signer/ParallelSignerAdapter.d.ts.map +1 -0
  113. package/browser/signer/SignerUtils.d.ts +11 -4
  114. package/browser/signer/SignerUtils.d.ts.map +1 -0
  115. package/browser/signer/TweakedSigner.d.ts +28 -4
  116. package/browser/signer/TweakedSigner.d.ts.map +1 -0
  117. package/browser/transaction/ContractAddress.d.ts +2 -2
  118. package/browser/transaction/ContractAddress.d.ts.map +1 -0
  119. package/browser/transaction/TransactionFactory.d.ts +140 -2
  120. package/browser/transaction/TransactionFactory.d.ts.map +1 -0
  121. package/browser/transaction/browser/BrowserSignerBase.d.ts +12 -6
  122. package/browser/transaction/browser/BrowserSignerBase.d.ts.map +1 -0
  123. package/browser/transaction/browser/WalletNetworks.d.ts +1 -0
  124. package/browser/transaction/browser/WalletNetworks.d.ts.map +1 -0
  125. package/browser/transaction/browser/Web3Provider.d.ts +27 -0
  126. package/browser/transaction/browser/Web3Provider.d.ts.map +1 -0
  127. package/browser/transaction/browser/extensions/UnisatSigner.d.ts +9 -7
  128. package/browser/transaction/browser/extensions/UnisatSigner.d.ts.map +1 -0
  129. package/browser/transaction/browser/extensions/XverseSigner.d.ts +9 -7
  130. package/browser/transaction/browser/extensions/XverseSigner.d.ts.map +1 -0
  131. package/browser/transaction/browser/types/OPWallet.d.ts +10 -0
  132. package/browser/transaction/browser/types/OPWallet.d.ts.map +1 -0
  133. package/browser/transaction/browser/types/Unisat.d.ts +1 -0
  134. package/browser/transaction/browser/types/Unisat.d.ts.map +1 -0
  135. package/browser/transaction/browser/types/Xverse.d.ts +1 -0
  136. package/browser/transaction/browser/types/Xverse.d.ts.map +1 -0
  137. package/browser/transaction/builders/CancelTransaction.d.ts +29 -4
  138. package/browser/transaction/builders/CancelTransaction.d.ts.map +1 -0
  139. package/browser/transaction/builders/ChallengeSolutionTransaction.d.ts +1 -0
  140. package/browser/transaction/builders/ChallengeSolutionTransaction.d.ts.map +1 -0
  141. package/browser/transaction/builders/ConsolidatedInteractionTransaction.d.ts +137 -10
  142. package/browser/transaction/builders/ConsolidatedInteractionTransaction.d.ts.map +1 -0
  143. package/browser/transaction/builders/CustomScriptTransaction.d.ts +106 -6
  144. package/browser/transaction/builders/CustomScriptTransaction.d.ts.map +1 -0
  145. package/browser/transaction/builders/DeploymentTransaction.d.ts +116 -5
  146. package/browser/transaction/builders/DeploymentTransaction.d.ts.map +1 -0
  147. package/browser/transaction/builders/FundingTransaction.d.ts +4 -3
  148. package/browser/transaction/builders/FundingTransaction.d.ts.map +1 -0
  149. package/browser/transaction/builders/InteractionTransaction.d.ts +12 -3
  150. package/browser/transaction/builders/InteractionTransaction.d.ts.map +1 -0
  151. package/browser/transaction/builders/InteractionTransactionP2WDA.d.ts +56 -5
  152. package/browser/transaction/builders/InteractionTransactionP2WDA.d.ts.map +1 -0
  153. package/browser/transaction/builders/MultiSignTransaction.d.ts +125 -16
  154. package/browser/transaction/builders/MultiSignTransaction.d.ts.map +1 -0
  155. package/browser/transaction/builders/SharedInteractionTransaction.d.ts +103 -15
  156. package/browser/transaction/builders/SharedInteractionTransaction.d.ts.map +1 -0
  157. package/browser/transaction/builders/TransactionBuilder.d.ts +243 -14
  158. package/browser/transaction/builders/TransactionBuilder.d.ts.map +1 -0
  159. package/browser/transaction/enums/TransactionType.d.ts +1 -0
  160. package/browser/transaction/enums/TransactionType.d.ts.map +1 -0
  161. package/browser/transaction/interfaces/ICancelTransactionParameters.d.ts +2 -1
  162. package/browser/transaction/interfaces/ICancelTransactionParameters.d.ts.map +1 -0
  163. package/browser/transaction/interfaces/IConsolidatedTransactionParameters.d.ts +46 -3
  164. package/browser/transaction/interfaces/IConsolidatedTransactionParameters.d.ts.map +1 -0
  165. package/browser/transaction/interfaces/ICustomTransactionParameters.d.ts +6 -4
  166. package/browser/transaction/interfaces/ICustomTransactionParameters.d.ts.map +1 -0
  167. package/browser/transaction/interfaces/ITransactionParameters.d.ts +22 -10
  168. package/browser/transaction/interfaces/ITransactionParameters.d.ts.map +1 -0
  169. package/browser/transaction/interfaces/ITransactionResponses.d.ts +1 -0
  170. package/browser/transaction/interfaces/ITransactionResponses.d.ts.map +1 -0
  171. package/browser/transaction/interfaces/ITweakedTransactionData.d.ts +17 -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 +274 -33
  198. package/browser/transaction/shared/TweakedTransaction.d.ts.map +1 -0
  199. package/browser/transaction/utils/WitnessUtils.d.ts +7 -1
  200. package/browser/transaction/utils/WitnessUtils.d.ts.map +1 -0
  201. package/browser/utils/BitcoinUtils.d.ts +19 -0
  202. package/browser/utils/BitcoinUtils.d.ts.map +1 -0
  203. package/browser/utils/BufferHelper.d.ts +1 -0
  204. package/browser/utils/BufferHelper.d.ts.map +1 -0
  205. package/browser/utils/StringToBuffer.d.ts +1 -0
  206. package/browser/utils/StringToBuffer.d.ts.map +1 -0
  207. package/browser/utils/lengths.d.ts +1 -0
  208. package/browser/utils/lengths.d.ts.map +1 -0
  209. package/browser/utils/types.d.ts +1 -0
  210. package/browser/utils/types.d.ts.map +1 -0
  211. package/browser/utxo/OPNetLimitedProvider.d.ts +37 -1
  212. package/browser/utxo/OPNetLimitedProvider.d.ts.map +1 -0
  213. package/browser/utxo/interfaces/BroadcastResponse.d.ts +1 -0
  214. package/browser/utxo/interfaces/BroadcastResponse.d.ts.map +1 -0
  215. package/browser/utxo/interfaces/IUTXO.d.ts +11 -5
  216. package/browser/utxo/interfaces/IUTXO.d.ts.map +1 -0
  217. package/browser/vendors.js +14351 -10031
  218. package/browser/verification/TapscriptVerificator.d.ts +10 -8
  219. package/browser/verification/TapscriptVerificator.d.ts.map +1 -0
  220. package/build/_version.d.ts +1 -0
  221. package/build/_version.d.ts.map +1 -0
  222. package/build/_version.js +1 -0
  223. package/build/_version.js.map +1 -0
  224. package/build/abi/ABICoder.d.ts +1 -1
  225. package/build/abi/ABICoder.d.ts.map +1 -0
  226. package/build/abi/ABICoder.js +9 -10
  227. package/build/abi/ABICoder.js.map +1 -0
  228. package/build/branded/Branded.d.ts +4 -0
  229. package/build/branded/Branded.d.ts.map +1 -0
  230. package/build/branded/Branded.js +2 -0
  231. package/build/branded/Branded.js.map +1 -0
  232. package/build/buffer/BinaryReader.d.ts +121 -2
  233. package/build/buffer/BinaryReader.d.ts.map +1 -0
  234. package/build/buffer/BinaryReader.js +129 -5
  235. package/build/buffer/BinaryReader.js.map +1 -0
  236. package/build/buffer/BinaryWriter.d.ts +52 -2
  237. package/build/buffer/BinaryWriter.d.ts.map +1 -0
  238. package/build/buffer/BinaryWriter.js +62 -2
  239. package/build/buffer/BinaryWriter.js.map +1 -0
  240. package/build/bytecode/Compressor.d.ts +12 -0
  241. package/build/bytecode/Compressor.d.ts.map +1 -0
  242. package/build/bytecode/Compressor.js +17 -5
  243. package/build/bytecode/Compressor.js.map +1 -0
  244. package/build/chain/ChainData.d.ts +2 -2
  245. package/build/chain/ChainData.d.ts.map +1 -0
  246. package/build/chain/ChainData.js +35 -17
  247. package/build/chain/ChainData.js.map +1 -0
  248. package/build/consensus/Consensus.d.ts +11 -3
  249. package/build/consensus/Consensus.d.ts.map +1 -0
  250. package/build/consensus/Consensus.js +8 -0
  251. package/build/consensus/Consensus.js.map +1 -0
  252. package/build/consensus/ConsensusConfig.d.ts +2 -1
  253. package/build/consensus/ConsensusConfig.d.ts.map +1 -0
  254. package/build/consensus/ConsensusConfig.js +1 -0
  255. package/build/consensus/ConsensusConfig.js.map +1 -0
  256. package/build/consensus/IConsensusConfig.d.ts +1 -0
  257. package/build/consensus/IConsensusConfig.d.ts.map +1 -0
  258. package/build/consensus/IConsensusConfig.js +2 -1
  259. package/build/consensus/IConsensusConfig.js.map +1 -0
  260. package/build/consensus/metadata/RoswellConsensus.d.ts +2 -1
  261. package/build/consensus/metadata/RoswellConsensus.d.ts.map +1 -0
  262. package/build/consensus/metadata/RoswellConsensus.js +2 -0
  263. package/build/consensus/metadata/RoswellConsensus.js.map +1 -0
  264. package/build/crypto/crypto.d.ts +1 -0
  265. package/build/crypto/crypto.d.ts.map +1 -0
  266. package/build/crypto/crypto.js +1 -0
  267. package/build/crypto/crypto.js.map +1 -0
  268. package/build/deterministic/AddressMap.d.ts +6 -1
  269. package/build/deterministic/AddressMap.d.ts.map +1 -0
  270. package/build/deterministic/AddressMap.js +8 -0
  271. package/build/deterministic/AddressMap.js.map +1 -0
  272. package/build/deterministic/AddressSet.d.ts +3 -1
  273. package/build/deterministic/AddressSet.d.ts.map +1 -0
  274. package/build/deterministic/AddressSet.js +7 -0
  275. package/build/deterministic/AddressSet.js.map +1 -0
  276. package/build/deterministic/CustomMap.d.ts +3 -1
  277. package/build/deterministic/CustomMap.d.ts.map +1 -0
  278. package/build/deterministic/CustomMap.js +65 -47
  279. package/build/deterministic/CustomMap.js.map +1 -0
  280. package/build/deterministic/DeterministicMap.d.ts +4 -2
  281. package/build/deterministic/DeterministicMap.d.ts.map +1 -0
  282. package/build/deterministic/DeterministicMap.js +24 -27
  283. package/build/deterministic/DeterministicMap.js.map +1 -0
  284. package/build/deterministic/DeterministicSet.d.ts +3 -1
  285. package/build/deterministic/DeterministicSet.d.ts.map +1 -0
  286. package/build/deterministic/DeterministicSet.js +6 -0
  287. package/build/deterministic/DeterministicSet.js.map +1 -0
  288. package/build/deterministic/ExtendedAddressMap.d.ts +7 -1
  289. package/build/deterministic/ExtendedAddressMap.d.ts.map +1 -0
  290. package/build/deterministic/ExtendedAddressMap.js +18 -2
  291. package/build/deterministic/ExtendedAddressMap.js.map +1 -0
  292. package/build/deterministic/FastMap.d.ts +7 -1
  293. package/build/deterministic/FastMap.d.ts.map +1 -0
  294. package/build/deterministic/FastMap.js +7 -2
  295. package/build/deterministic/FastMap.js.map +1 -0
  296. package/build/ecc/backend.d.ts +13 -0
  297. package/build/ecc/backend.d.ts.map +1 -0
  298. package/build/ecc/backend.js +15 -0
  299. package/build/ecc/backend.js.map +1 -0
  300. package/build/epoch/ChallengeSolution.d.ts +34 -2
  301. package/build/epoch/ChallengeSolution.d.ts.map +1 -0
  302. package/build/epoch/ChallengeSolution.js +52 -0
  303. package/build/epoch/ChallengeSolution.js.map +1 -0
  304. package/build/epoch/interfaces/IChallengeSolution.d.ts +14 -13
  305. package/build/epoch/interfaces/IChallengeSolution.d.ts.map +1 -0
  306. package/build/epoch/interfaces/IChallengeSolution.js +2 -1
  307. package/build/epoch/interfaces/IChallengeSolution.js.map +1 -0
  308. package/build/epoch/validator/EpochValidator.d.ts +38 -8
  309. package/build/epoch/validator/EpochValidator.d.ts.map +1 -0
  310. package/build/epoch/validator/EpochValidator.js +45 -19
  311. package/build/epoch/validator/EpochValidator.js.map +1 -0
  312. package/build/event/NetEvent.d.ts +1 -0
  313. package/build/event/NetEvent.d.ts.map +1 -0
  314. package/build/event/NetEvent.js +3 -0
  315. package/build/event/NetEvent.js.map +1 -0
  316. package/build/generators/AddressGenerator.d.ts +4 -3
  317. package/build/generators/AddressGenerator.d.ts.map +1 -0
  318. package/build/generators/AddressGenerator.js +9 -4
  319. package/build/generators/AddressGenerator.js.map +1 -0
  320. package/build/generators/Features.d.ts +4 -3
  321. package/build/generators/Features.d.ts.map +1 -0
  322. package/build/generators/Features.js +1 -0
  323. package/build/generators/Features.js.map +1 -0
  324. package/build/generators/Generator.d.ts +47 -11
  325. package/build/generators/Generator.d.ts.map +1 -0
  326. package/build/generators/Generator.js +48 -12
  327. package/build/generators/Generator.js.map +1 -0
  328. package/build/generators/MLDSAData.d.ts +1 -0
  329. package/build/generators/MLDSAData.d.ts.map +1 -0
  330. package/build/generators/MLDSAData.js +1 -0
  331. package/build/generators/MLDSAData.js.map +1 -0
  332. package/build/generators/builders/CalldataGenerator.d.ts +27 -6
  333. package/build/generators/builders/CalldataGenerator.d.ts.map +1 -0
  334. package/build/generators/builders/CalldataGenerator.js +33 -4
  335. package/build/generators/builders/CalldataGenerator.js.map +1 -0
  336. package/build/generators/builders/CustomGenerator.d.ts +13 -3
  337. package/build/generators/builders/CustomGenerator.d.ts.map +1 -0
  338. package/build/generators/builders/CustomGenerator.js +11 -0
  339. package/build/generators/builders/CustomGenerator.js.map +1 -0
  340. package/build/generators/builders/DeploymentGenerator.d.ts +17 -6
  341. package/build/generators/builders/DeploymentGenerator.d.ts.map +1 -0
  342. package/build/generators/builders/DeploymentGenerator.js +18 -2
  343. package/build/generators/builders/DeploymentGenerator.js.map +1 -0
  344. package/build/generators/builders/HashCommitmentGenerator.d.ts +166 -14
  345. package/build/generators/builders/HashCommitmentGenerator.d.ts.map +1 -0
  346. package/build/generators/builders/HashCommitmentGenerator.js +193 -27
  347. package/build/generators/builders/HashCommitmentGenerator.js.map +1 -0
  348. package/build/generators/builders/LegacyCalldataGenerator.d.ts +27 -5
  349. package/build/generators/builders/LegacyCalldataGenerator.d.ts.map +1 -0
  350. package/build/generators/builders/LegacyCalldataGenerator.js +35 -5
  351. package/build/generators/builders/LegacyCalldataGenerator.js.map +1 -0
  352. package/build/generators/builders/MultiSignGenerator.d.ts +6 -1
  353. package/build/generators/builders/MultiSignGenerator.d.ts.map +1 -0
  354. package/build/generators/builders/MultiSignGenerator.js +20 -10
  355. package/build/generators/builders/MultiSignGenerator.js.map +1 -0
  356. package/build/generators/builders/P2WDAGenerator.d.ts +44 -6
  357. package/build/generators/builders/P2WDAGenerator.d.ts.map +1 -0
  358. package/build/generators/builders/P2WDAGenerator.js +41 -2
  359. package/build/generators/builders/P2WDAGenerator.js.map +1 -0
  360. package/build/index.d.ts +1 -0
  361. package/build/index.d.ts.map +1 -0
  362. package/build/index.js +1 -0
  363. package/build/index.js.map +1 -0
  364. package/build/keypair/Address.d.ts +284 -14
  365. package/build/keypair/Address.d.ts.map +1 -0
  366. package/build/keypair/Address.js +446 -128
  367. package/build/keypair/Address.js.map +1 -0
  368. package/build/keypair/AddressVerificator.d.ts +7 -6
  369. package/build/keypair/AddressVerificator.d.ts.map +1 -0
  370. package/build/keypair/AddressVerificator.js +4 -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 +218 -50
  375. package/build/keypair/EcKeyPair.js.map +1 -0
  376. package/build/keypair/MessageSigner.d.ts +18 -17
  377. package/build/keypair/MessageSigner.d.ts.map +1 -0
  378. package/build/keypair/MessageSigner.js +34 -25
  379. package/build/keypair/MessageSigner.js.map +1 -0
  380. package/build/keypair/Secp256k1PointDeriver.d.ts +55 -0
  381. package/build/keypair/Secp256k1PointDeriver.d.ts.map +1 -0
  382. package/build/keypair/Secp256k1PointDeriver.js +66 -0
  383. package/build/keypair/Secp256k1PointDeriver.js.map +1 -0
  384. package/build/keypair/Wallet.d.ts +29 -15
  385. package/build/keypair/Wallet.d.ts.map +1 -0
  386. package/build/keypair/Wallet.js +46 -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 +35 -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 +23 -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 +375 -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 +43 -5
  636. package/build/utxo/OPNetLimitedProvider.js.map +1 -0
  637. package/build/utxo/interfaces/BroadcastResponse.d.ts +1 -0
  638. package/build/utxo/interfaces/BroadcastResponse.d.ts.map +1 -0
  639. package/build/utxo/interfaces/BroadcastResponse.js +1 -0
  640. package/build/utxo/interfaces/BroadcastResponse.js.map +1 -0
  641. package/build/utxo/interfaces/IUTXO.d.ts +13 -7
  642. package/build/utxo/interfaces/IUTXO.d.ts.map +1 -0
  643. package/build/utxo/interfaces/IUTXO.js +1 -0
  644. package/build/utxo/interfaces/IUTXO.js.map +1 -0
  645. package/build/verification/TapscriptVerificator.d.ts +12 -10
  646. package/build/verification/TapscriptVerificator.d.ts.map +1 -0
  647. package/build/verification/TapscriptVerificator.js +28 -38
  648. package/build/verification/TapscriptVerificator.js.map +1 -0
  649. package/eslint.config.js +0 -1
  650. package/package.json +12 -35
  651. package/src/abi/ABICoder.ts +0 -13
  652. package/src/branded/Branded.ts +5 -0
  653. package/src/buffer/BinaryReader.ts +7 -7
  654. package/src/buffer/BinaryWriter.ts +29 -24
  655. package/src/bytecode/Compressor.ts +1 -1
  656. package/src/chain/ChainData.ts +34 -27
  657. package/src/consensus/ConsensusConfig.ts +1 -1
  658. package/src/consensus/IConsensusConfig.ts +0 -17
  659. package/src/consensus/metadata/RoswellConsensus.ts +1 -17
  660. package/src/deterministic/AddressMap.ts +5 -1
  661. package/src/deterministic/AddressSet.ts +5 -1
  662. package/src/deterministic/CustomMap.ts +6 -2
  663. package/src/deterministic/DeterministicMap.ts +8 -4
  664. package/src/deterministic/DeterministicSet.ts +6 -2
  665. package/src/deterministic/ExtendedAddressMap.ts +9 -4
  666. package/src/deterministic/FastMap.ts +9 -5
  667. package/src/ecc/backend.ts +17 -0
  668. package/src/epoch/ChallengeSolution.ts +3 -3
  669. package/src/epoch/interfaces/IChallengeSolution.ts +13 -13
  670. package/src/epoch/validator/EpochValidator.ts +24 -43
  671. package/src/generators/AddressGenerator.ts +4 -7
  672. package/src/generators/Features.ts +3 -3
  673. package/src/generators/Generator.ts +42 -26
  674. package/src/generators/builders/CalldataGenerator.ts +26 -24
  675. package/src/generators/builders/CustomGenerator.ts +4 -4
  676. package/src/generators/builders/DeploymentGenerator.ts +25 -23
  677. package/src/generators/builders/HashCommitmentGenerator.ts +31 -31
  678. package/src/generators/builders/LegacyCalldataGenerator.ts +26 -24
  679. package/src/generators/builders/MultiSignGenerator.ts +12 -12
  680. package/src/generators/builders/P2WDAGenerator.ts +10 -10
  681. package/src/keypair/Address.ts +114 -71
  682. package/src/keypair/AddressVerificator.ts +14 -148
  683. package/src/keypair/EcKeyPair.ts +104 -116
  684. package/src/keypair/MessageSigner.ts +70 -150
  685. package/src/keypair/Wallet.ts +56 -241
  686. package/src/metadata/ContractBaseMetadata.ts +2 -2
  687. package/src/mnemonic/Mnemonic.ts +31 -222
  688. package/src/opnet.ts +12 -6
  689. package/src/p2wda/P2WDADetector.ts +23 -72
  690. package/src/polyfill/disposable.ts +29 -0
  691. package/src/signer/AddressRotation.ts +1 -1
  692. package/src/signer/IRotationSigner.ts +3 -3
  693. package/src/signer/ParallelSignerAdapter.ts +59 -0
  694. package/src/signer/SignerUtils.ts +4 -4
  695. package/src/signer/TweakedSigner.ts +26 -14
  696. package/src/transaction/ContractAddress.ts +3 -7
  697. package/src/transaction/TransactionFactory.ts +28 -50
  698. package/src/transaction/browser/BrowserSignerBase.ts +12 -6
  699. package/src/transaction/browser/Web3Provider.ts +3 -3
  700. package/src/transaction/browser/extensions/UnisatSigner.ts +52 -48
  701. package/src/transaction/browser/extensions/XverseSigner.ts +55 -38
  702. package/src/transaction/browser/types/OPWallet.ts +2 -2
  703. package/src/transaction/browser/types/Unisat.ts +1 -1
  704. package/src/transaction/builders/CancelTransaction.ts +59 -24
  705. package/src/transaction/builders/ChallengeSolutionTransaction.ts +3 -3
  706. package/src/transaction/builders/ConsolidatedInteractionTransaction.ts +39 -34
  707. package/src/transaction/builders/CustomScriptTransaction.ts +79 -56
  708. package/src/transaction/builders/DeploymentTransaction.ts +82 -63
  709. package/src/transaction/builders/FundingTransaction.ts +11 -11
  710. package/src/transaction/builders/InteractionTransaction.ts +10 -10
  711. package/src/transaction/builders/InteractionTransactionP2WDA.ts +38 -40
  712. package/src/transaction/builders/MultiSignTransaction.ts +68 -61
  713. package/src/transaction/builders/SharedInteractionTransaction.ts +81 -57
  714. package/src/transaction/builders/TransactionBuilder.ts +99 -81
  715. package/src/transaction/interfaces/ICancelTransactionParameters.ts +2 -2
  716. package/src/transaction/interfaces/IConsolidatedTransactionParameters.ts +5 -5
  717. package/src/transaction/interfaces/ICustomTransactionParameters.ts +5 -5
  718. package/src/transaction/interfaces/ITransactionParameters.ts +15 -15
  719. package/src/transaction/interfaces/ITransactionResponses.ts +2 -2
  720. package/src/transaction/interfaces/ITweakedTransactionData.ts +17 -8
  721. package/src/transaction/interfaces/IWeb3ProviderTypes.ts +3 -3
  722. package/src/transaction/interfaces/Tap.ts +3 -3
  723. package/src/transaction/mineable/IP2WSHAddress.ts +1 -1
  724. package/src/transaction/mineable/TimelockGenerator.ts +19 -12
  725. package/src/transaction/offline/OfflineTransactionManager.ts +22 -23
  726. package/src/transaction/offline/TransactionReconstructor.ts +83 -91
  727. package/src/transaction/offline/TransactionSerializer.ts +151 -101
  728. package/src/transaction/offline/TransactionStateCapture.ts +83 -79
  729. package/src/transaction/offline/interfaces/ISerializableState.ts +1 -1
  730. package/src/transaction/offline/interfaces/ITypeSpecificData.ts +1 -1
  731. package/src/transaction/shared/P2TR_MS.ts +4 -4
  732. package/src/transaction/shared/TweakedTransaction.ts +326 -124
  733. package/src/transaction/utils/WitnessUtils.ts +18 -9
  734. package/src/utils/BufferHelper.ts +39 -37
  735. package/src/utxo/OPNetLimitedProvider.ts +9 -9
  736. package/src/utxo/interfaces/IUTXO.ts +7 -7
  737. package/src/verification/TapscriptVerificator.ts +73 -86
  738. package/test/address-rotation.test.ts +24 -24
  739. package/test/address.test.ts +12 -12
  740. package/test/addressmap.test.ts +30 -30
  741. package/test/binary-reader-writer.test.ts +8 -8
  742. package/test/browser/offline-transaction.test.ts +2206 -0
  743. package/test/browser/parallel-signing.test.ts +316 -0
  744. package/test/browser/setup.ts +11 -0
  745. package/test/browser/transaction-signing.test.ts +416 -0
  746. package/test/buffer-helper.test.ts +287 -0
  747. package/test/derivePath.test.ts +4 -3
  748. package/test/disposable.test.ts +279 -0
  749. package/test/fastmap-setall.test.ts +1 -1
  750. package/test/fastmap.test.ts +3 -3
  751. package/test/messagesigner-mldsa.test.ts +3 -3
  752. package/test/messagesigner-schnorr.test.ts +9 -9
  753. package/test/offline-transaction.test.ts +461 -288
  754. package/test/old/FastBigIntMap.ts +3 -3
  755. package/test/oldfastmap.test.ts +6 -6
  756. package/test/transaction-builders.test.ts +321 -0
  757. package/tsconfig.base.json +34 -18
  758. package/tsconfig.browser.json +15 -0
  759. package/tsconfig.json +3 -8
  760. package/vite.config.browser.ts +4 -5
  761. package/vitest.config.browser.ts +68 -0
  762. package/vitest.config.ts +1 -1
  763. package/browser/valibot.js +0 -4948
  764. package/tsconfig.webpack.json +0 -18
@@ -1,91 +1,34 @@
1
1
  import * as bip39 from 'bip39';
2
2
  import {
3
3
  BIP32Factory,
4
- BIP32Interface,
4
+ type BIP32Interface,
5
5
  MLDSASecurityLevel,
6
6
  QuantumBIP32Factory,
7
- QuantumBIP32Interface,
7
+ type QuantumBIP32Interface,
8
8
  } from '@btc-vision/bip32';
9
- import * as ecc from '@bitcoinerlab/secp256k1';
10
- import { initEccLib, Network, networks } from '@btc-vision/bitcoin';
9
+ import { type Network, networks, toHex } from '@btc-vision/bitcoin';
10
+ import { backend } from '../ecc/backend.js';
11
11
  import { Wallet } from '../keypair/Wallet.js';
12
12
  import { MnemonicStrength } from './MnemonicStrength.js';
13
13
  import { BIPStandard, buildBIPPath } from './BIPStandard.js';
14
14
  import { AddressTypes } from '../keypair/AddressVerificator.js';
15
15
 
16
- initEccLib(ecc);
17
-
18
- const bip32 = BIP32Factory(ecc);
16
+ const bip32 = BIP32Factory(backend);
19
17
 
20
18
  export { BIPStandard, getBIPDescription } from './BIPStandard.js';
21
19
 
22
20
  /**
23
21
  * Mnemonic class for managing BIP39 mnemonic phrases with BIP360 quantum support
24
- *
25
- * This class provides methods to generate, validate, and derive wallets from mnemonic phrases.
26
- * It supports both classical Bitcoin derivation paths (BIP44, BIP84, etc.) and quantum-resistant
27
- * ML-DSA keys via BIP360.
28
- *
29
- * @example
30
- * ```typescript
31
- * // Generate a new mnemonic
32
- * const mnemonic = Mnemonic.generate();
33
- *
34
- * // Derive a wallet at index 0
35
- * const wallet = mnemonic.derive(0);
36
- *
37
- * // Derive multiple wallets
38
- * const wallets = mnemonic.deriveMultiple(5);
39
- *
40
- * // Load from existing mnemonic
41
- * const existingMnemonic = new Mnemonic('your twelve word mnemonic phrase here...');
42
- * ```
43
22
  */
44
- export class Mnemonic {
45
- /**
46
- * The BIP39 mnemonic phrase
47
- */
23
+ export class Mnemonic implements Disposable {
48
24
  private readonly _phrase: string;
49
-
50
- /**
51
- * Optional BIP39 passphrase for additional security
52
- */
53
25
  private readonly _passphrase: string;
54
-
55
- /**
56
- * The network to use for derivation
57
- */
58
26
  private readonly _network: Network;
59
-
60
- /**
61
- * The ML-DSA security level for quantum keys
62
- */
63
27
  private readonly _securityLevel: MLDSASecurityLevel;
64
-
65
- /**
66
- * The seed derived from the mnemonic
67
- */
68
- private readonly _seed: Buffer;
69
-
70
- /**
71
- * The classical BIP32 root for Bitcoin keys
72
- */
28
+ private readonly _seed: Uint8Array;
73
29
  private readonly _classicalRoot: BIP32Interface;
74
-
75
- /**
76
- * The quantum BIP32 root for ML-DSA keys
77
- */
78
30
  private readonly _quantumRoot: QuantumBIP32Interface;
79
31
 
80
- /**
81
- * Create a new Mnemonic instance from an existing phrase
82
- *
83
- * @param phrase - The BIP39 mnemonic phrase (12, 15, 18, 21, or 24 words)
84
- * @param passphrase - Optional BIP39 passphrase for additional security (default: '')
85
- * @param network - The Bitcoin network to use (default: bitcoin mainnet)
86
- * @param securityLevel - The ML-DSA security level for quantum keys (default: LEVEL2/44)
87
- * @throws {Error} If the mnemonic phrase is invalid
88
- */
89
32
  constructor(
90
33
  phrase: string,
91
34
  passphrase: string = '',
@@ -115,63 +58,42 @@ export class Mnemonic {
115
58
  );
116
59
  }
117
60
 
118
- /**
119
- * Get the mnemonic phrase
120
- *
121
- * @warning This phrase is highly sensitive and can be used to derive all keys in the wallet.
122
- * Handle with extreme care, never log or transmit insecurely, and store only in secure environments.
123
- *
124
- * @returns The BIP39 mnemonic phrase
125
- */
126
61
  public get phrase(): string {
127
62
  return this._phrase;
128
63
  }
129
64
 
130
- /**
131
- * Get the network
132
- */
133
65
  public get network(): Network {
134
66
  return this._network;
135
67
  }
136
68
 
137
- /**
138
- * Get the ML-DSA security level
139
- */
140
69
  public get securityLevel(): MLDSASecurityLevel {
141
70
  return this._securityLevel;
142
71
  }
143
72
 
144
- /**
145
- * Get the seed derived from the mnemonic phrase
146
- *
147
- * @warning This seed is highly sensitive and can be used to derive all keys in the wallet.
148
- * Handle with extreme care, never log or transmit insecurely, and store only in secure environments.
149
- *
150
- * @returns A copy of the seed buffer to prevent external modification
151
- */
152
- public get seed(): Buffer {
153
- return Buffer.from(this._seed);
73
+ public get seed(): Uint8Array {
74
+ return new Uint8Array(this._seed);
154
75
  }
155
76
 
156
77
  /**
157
- * Generate a new mnemonic phrase
78
+ * Best-effort zeroing of secret material held by this mnemonic.
158
79
  *
159
- * @param strength - The entropy strength in bits (default: 256 for 24 words)
160
- * @returns A new random mnemonic phrase
80
+ * Zeros the seed buffer and root private keys in-place.
81
+ * The mnemonic phrase and passphrase are JS strings and cannot be zeroed.
161
82
  */
83
+ public zeroize(): void {
84
+ this._seed.fill(0);
85
+ this._classicalRoot.privateKey?.fill(0);
86
+ this._quantumRoot.privateKey?.fill(0);
87
+ }
88
+
89
+ public [Symbol.dispose](): void {
90
+ this.zeroize();
91
+ }
92
+
162
93
  public static generatePhrase(strength: MnemonicStrength = MnemonicStrength.MAXIMUM): string {
163
94
  return bip39.generateMnemonic(strength);
164
95
  }
165
96
 
166
- /**
167
- * Generate a new Mnemonic instance with a random phrase
168
- *
169
- * @param strength - The entropy strength in bits (default: 256 for 24 words)
170
- * @param passphrase - Optional BIP39 passphrase for additional security (default: '')
171
- * @param network - The Bitcoin network to use (default: bitcoin mainnet)
172
- * @param securityLevel - The ML-DSA security level for quantum keys (default: LEVEL2/44)
173
- * @returns A new Mnemonic instance
174
- */
175
97
  public static generate(
176
98
  strength: MnemonicStrength = MnemonicStrength.MAXIMUM,
177
99
  passphrase: string = '',
@@ -182,47 +104,16 @@ export class Mnemonic {
182
104
  return new Mnemonic(phrase, passphrase, network, securityLevel);
183
105
  }
184
106
 
185
- /**
186
- * Validate a mnemonic phrase
187
- *
188
- * @param phrase - The mnemonic phrase to validate
189
- * @returns True if the phrase is valid, false otherwise
190
- */
191
107
  public static validate(phrase: string): boolean {
192
108
  return bip39.validateMnemonic(phrase);
193
109
  }
194
110
 
195
- /**
196
- * Derive a wallet at a specific index using BIP360 (quantum) and configurable BIP standard (classical) paths
197
- *
198
- * This method derives both classical ECDSA/Schnorr keys and quantum-resistant ML-DSA keys
199
- * for the wallet, providing hybrid post-quantum security.
200
- *
201
- * @param index - The address index to derive (default: 0)
202
- * @param account - The account index (default: 0)
203
- * @param isChange - Whether this is a change address (default: false)
204
- * @param bipStandard - The BIP standard to use for classical derivation (default: BIP84)
205
- * @returns A Wallet instance with both classical and quantum keys
206
- *
207
- * @example
208
- * ```typescript
209
- * // Default: BIP84 (Native SegWit)
210
- * const wallet1 = mnemonic.derive(0);
211
- *
212
- * // BIP44 (Compatible with Unisat)
213
- * const wallet2 = mnemonic.derive(0, 0, false, BIPStandard.BIP44);
214
- *
215
- * // BIP86 (Taproot)
216
- * const wallet3 = mnemonic.derive(0, 0, false, BIPStandard.BIP86);
217
- * ```
218
- */
219
111
  public derive(
220
112
  index: number = 0,
221
113
  account: number = 0,
222
114
  isChange: boolean = false,
223
115
  bipStandard: BIPStandard = BIPStandard.BIP84,
224
116
  ): Wallet {
225
- // Derive classical key using specified BIP standard
226
117
  const classicalPath = this.buildClassicalPath(account, index, isChange, bipStandard);
227
118
  const classicalChild = this._classicalRoot.derivePath(classicalPath);
228
119
 
@@ -230,7 +121,6 @@ export class Mnemonic {
230
121
  throw new Error(`Failed to derive classical private key at index ${index}`);
231
122
  }
232
123
 
233
- // Derive quantum key using BIP360
234
124
  const quantumPath = this.buildQuantumPath(account, index, isChange);
235
125
  const quantumChild = this._quantumRoot.derivePath(quantumPath);
236
126
 
@@ -238,38 +128,21 @@ export class Mnemonic {
238
128
  throw new Error(`Failed to derive quantum private key at index ${index}`);
239
129
  }
240
130
 
241
- // Create a wallet with both keys
242
131
  return new Wallet(
243
- Buffer.from(classicalChild.privateKey).toString('hex'),
244
- Buffer.from(quantumChild.privateKey).toString('hex'),
132
+ toHex(new Uint8Array(classicalChild.privateKey)),
133
+ toHex(new Uint8Array(quantumChild.privateKey)),
245
134
  this._network,
246
135
  this._securityLevel,
247
- Buffer.from(this._quantumRoot.chainCode),
136
+ new Uint8Array(this._quantumRoot.chainCode),
248
137
  );
249
138
  }
250
139
 
251
- /**
252
- * Derive a Unisat-compatible wallet
253
- *
254
- * Unisat uses different derivation paths based on address type:
255
- * - Legacy (P2PKH): m/44'/coinType'/account'/change/index
256
- * - Nested SegWit (P2SH-P2WPKH): m/49'/coinType'/account'/change/index
257
- * - Native SegWit (P2WPKH): m/84'/coinType'/account'/change/index
258
- * - Taproot (P2TR): m/86'/coinType'/account'/change/index
259
- *
260
- * @param addressType - The address type to generate
261
- * @param index - The address index (default: 0)
262
- * @param account - The account index (default: 0)
263
- * @param isChange - Whether this is a change address (default: false)
264
- * @returns A Wallet instance with both classical and quantum keys
265
- */
266
140
  public deriveOPWallet(
267
141
  addressType: AddressTypes = AddressTypes.P2TR,
268
142
  index: number = 0,
269
143
  account: number = 0,
270
144
  isChange: boolean = false,
271
145
  ): Wallet {
272
- // Determine BIP purpose based on address type
273
146
  let purpose: number;
274
147
  switch (addressType) {
275
148
  case AddressTypes.P2PKH:
@@ -288,19 +161,16 @@ export class Mnemonic {
288
161
  throw new Error(`Unsupported address type: ${addressType}`);
289
162
  }
290
163
 
291
- // Build classical derivation path for Unisat
292
164
  const coinType = this.getCoinType();
293
165
  const change = isChange ? 1 : 0;
294
166
  const classicalPath = `m/${purpose}'/0'/${account}'/${change}/${index}`;
295
167
 
296
- // Derive classical key
297
168
  const classicalChild = this._classicalRoot.derivePath(classicalPath);
298
169
 
299
170
  if (!classicalChild.privateKey) {
300
171
  throw new Error(`Failed to derive classical private key at path ${classicalPath}`);
301
172
  }
302
173
 
303
- // Derive quantum key using BIP360
304
174
  const quantumPath = `m/360'/${coinType}'/${account}'/${change}/${index}`;
305
175
  const quantumChild = this._quantumRoot.derivePath(quantumPath);
306
176
 
@@ -308,26 +178,15 @@ export class Mnemonic {
308
178
  throw new Error(`Failed to derive quantum private key at path ${quantumPath}`);
309
179
  }
310
180
 
311
- // Create wallet with both classical and quantum keys
312
181
  return new Wallet(
313
- Buffer.from(classicalChild.privateKey).toString('hex'),
314
- Buffer.from(quantumChild.privateKey).toString('hex'),
182
+ toHex(new Uint8Array(classicalChild.privateKey)),
183
+ toHex(new Uint8Array(quantumChild.privateKey)),
315
184
  this._network,
316
185
  this._securityLevel,
317
- Buffer.from(this._quantumRoot.chainCode),
186
+ new Uint8Array(this._quantumRoot.chainCode),
318
187
  );
319
188
  }
320
189
 
321
- /**
322
- * Derive multiple Unisat-compatible wallets
323
- *
324
- * @param addressType - The address type to generate
325
- * @param count - Number of wallets to derive
326
- * @param startIndex - Starting index (default: 0)
327
- * @param account - The account index (default: 0)
328
- * @param isChange - Whether these are change addresses (default: false)
329
- * @returns Array of Wallet instances
330
- */
331
190
  public deriveMultipleUnisat(
332
191
  addressType: AddressTypes = AddressTypes.P2TR,
333
192
  count: number = 5,
@@ -344,16 +203,6 @@ export class Mnemonic {
344
203
  return wallets;
345
204
  }
346
205
 
347
- /**
348
- * Derive multiple wallets with sequential indices
349
- *
350
- * @param count - The number of wallets to derive
351
- * @param startIndex - The starting address index (default: 0)
352
- * @param account - The account index (default: 0)
353
- * @param isChange - Whether these are change addresses (default: false)
354
- * @param bipStandard - The BIP standard to use for classical derivation (default: BIP84)
355
- * @returns An array of Wallet instances
356
- */
357
206
  public deriveMultiple(
358
207
  count: number,
359
208
  startIndex: number = 0,
@@ -370,13 +219,6 @@ export class Mnemonic {
370
219
  return wallets;
371
220
  }
372
221
 
373
- /**
374
- * Derive a wallet using a custom derivation path
375
- *
376
- * @param classicalPath - The BIP32 path for classical keys (e.g., "m/84'/0'/0'/0/0")
377
- * @param quantumPath - The BIP360 path for quantum keys (e.g., "m/360'/0'/0'/0/0")
378
- * @returns A Wallet instance
379
- */
380
222
  public deriveCustomPath(classicalPath: string, quantumPath: string): Wallet {
381
223
  const classicalChild = this._classicalRoot.derivePath(classicalPath);
382
224
  const quantumChild = this._quantumRoot.derivePath(quantumPath);
@@ -389,43 +231,23 @@ export class Mnemonic {
389
231
  throw new Error(`Failed to derive quantum private key at path ${quantumPath}`);
390
232
  }
391
233
 
392
- // Create wallet with both classical and ML-DSA private keys
393
234
  return new Wallet(
394
- Buffer.from(classicalChild.privateKey).toString('hex'),
395
- Buffer.from(quantumChild.privateKey).toString('hex'),
235
+ toHex(new Uint8Array(classicalChild.privateKey)),
236
+ toHex(new Uint8Array(quantumChild.privateKey)),
396
237
  this._network,
397
238
  this._securityLevel,
398
- Buffer.from(this._quantumRoot.chainCode),
239
+ new Uint8Array(this._quantumRoot.chainCode),
399
240
  );
400
241
  }
401
242
 
402
- /**
403
- * Get the classical BIP32 root
404
- *
405
- * @returns The classical BIP32Interface for manual derivation
406
- */
407
243
  public getClassicalRoot(): BIP32Interface {
408
244
  return this._classicalRoot;
409
245
  }
410
246
 
411
- /**
412
- * Get the quantum BIP32 root
413
- *
414
- * @returns The quantum BIP32Interface for manual derivation
415
- */
416
247
  public getQuantumRoot(): QuantumBIP32Interface {
417
248
  return this._quantumRoot;
418
249
  }
419
250
 
420
- /**
421
- * Build a classical derivation path using specified BIP standard
422
- *
423
- * @param account - The account index
424
- * @param index - The address index
425
- * @param isChange - Whether this is a change address
426
- * @param bipStandard - The BIP standard to use (default: BIP84)
427
- * @returns The derivation path string
428
- */
429
251
  private buildClassicalPath(
430
252
  account: number,
431
253
  index: number,
@@ -437,25 +259,12 @@ export class Mnemonic {
437
259
  return buildBIPPath(bipStandard, coinType, account, change, index);
438
260
  }
439
261
 
440
- /**
441
- * Build a quantum derivation path (BIP360)
442
- *
443
- * @param account - The account index
444
- * @param index - The address index
445
- * @param isChange - Whether this is a change address
446
- * @returns The derivation path string
447
- */
448
262
  private buildQuantumPath(account: number, index: number, isChange: boolean): string {
449
263
  const coinType = this.getCoinType();
450
264
  const change = isChange ? 1 : 0;
451
265
  return `m/360'/${coinType}'/${account}'/${change}/${index}`;
452
266
  }
453
267
 
454
- /**
455
- * Get the coin type based on the network
456
- *
457
- * @returns The coin type (0 for mainnet, 1 for testnet/regtest)
458
- */
459
268
  private getCoinType(): number {
460
269
  if (
461
270
  this._network.bech32 === networks.testnet.bech32 ||
package/src/opnet.ts CHANGED
@@ -1,5 +1,8 @@
1
- import { Unisat } from './transaction/browser/types/Unisat.js';
2
- import { OPWallet } from './transaction/browser/types/OPWallet.js';
1
+ /** Polyfill Symbol.dispose / Symbol.asyncDispose for Safari & Android WebView */
2
+ import './polyfill/disposable.js';
3
+
4
+ import type { Unisat } from './transaction/browser/types/Unisat.js';
5
+ import type { OPWallet } from './transaction/browser/types/OPWallet.js';
3
6
 
4
7
  export { version } from './_version.js';
5
8
 
@@ -40,10 +43,10 @@ export * from './mnemonic/BIPStandard.js';
40
43
  /** Quantum (ML-DSA) */
41
44
  export {
42
45
  MLDSASecurityLevel,
43
- MLDSAKeyPair,
44
- QuantumBIP32Interface,
45
- QuantumBIP32API,
46
- QuantumSigner,
46
+ type MLDSAKeyPair,
47
+ type QuantumBIP32Interface,
48
+ type QuantumBIP32API,
49
+ type QuantumSigner,
47
50
  QuantumBIP32Factory,
48
51
  QuantumDerivationPath,
49
52
  } from '@btc-vision/bip32';
@@ -59,6 +62,9 @@ export * from './signer/TweakedSigner.js';
59
62
  export * from './signer/IRotationSigner.js';
60
63
  export * from './signer/AddressRotation.js';
61
64
 
65
+ /** Parallel Signing */
66
+ export * from './signer/ParallelSignerAdapter.js';
67
+
62
68
  /** Transaction */
63
69
  export * from './transaction/enums/TransactionType.js';
64
70
  export * from './transaction/interfaces/ITransactionParameters.js';
@@ -1,44 +1,31 @@
1
- import { Buffer } from 'buffer';
2
- import { Network, opcodes, payments, script } from '@btc-vision/bitcoin';
3
- import { UTXO } from '../utxo/interfaces/IUTXO.js';
4
- import { IP2WSHAddress } from '../transaction/mineable/IP2WSHAddress.js';
1
+ import { fromHex, type Network, opcodes, payments, script } from '@btc-vision/bitcoin';
2
+ import type { UTXO } from '../utxo/interfaces/IUTXO.js';
3
+ import type { IP2WSHAddress } from '../transaction/mineable/IP2WSHAddress.js';
5
4
 
6
5
  /**
7
6
  * P2WDA Detection and Validation Utilities
8
- *
9
- * This class provides methods to detect and validate P2WDA (Pay-to-Witness-Data-Authentication) addresses
10
- * and UTXOs. P2WDA addresses have a specific witness script pattern that allows for efficient data storage.
11
7
  */
12
8
  export class P2WDADetector {
13
9
  /**
14
10
  * Check if a UTXO is a P2WDA output by examining its script structure
15
- *
16
- * @param utxo The UTXO to check
17
- * @returns true if this is a P2WDA UTXO
18
11
  */
19
12
  public static isP2WDAUTXO(utxo: UTXO): boolean {
20
- // P2WDA outputs are P2WSH outputs with a specific witness script pattern
21
13
  if (!utxo.witnessScript) {
22
14
  return false;
23
15
  }
24
16
 
25
- const witnessScript = Buffer.isBuffer(utxo.witnessScript)
26
- ? utxo.witnessScript
27
- : Buffer.from(utxo.witnessScript, 'hex');
17
+ const witnessScript =
18
+ utxo.witnessScript instanceof Uint8Array
19
+ ? utxo.witnessScript
20
+ : fromHex(utxo.witnessScript);
28
21
 
29
22
  return this.isP2WDAWitnessScript(witnessScript);
30
23
  }
31
24
 
32
25
  /**
33
26
  * Check if a witness script follows the P2WDA pattern
34
- *
35
- * P2WDA witness script pattern: (OP_2DROP * 5) <pubkey> OP_CHECKSIG
36
- * This allows for up to 10 witness data fields (5 * 2 = 10)
37
- *
38
- * @param witnessScript The witness script to check
39
- * @returns true if this is a P2WDA witness script
40
27
  */
41
- public static isP2WDAWitnessScript(witnessScript: Buffer): boolean {
28
+ public static isP2WDAWitnessScript(witnessScript: Uint8Array): boolean {
42
29
  try {
43
30
  const decompiled = script.decompile(witnessScript);
44
31
 
@@ -55,7 +42,7 @@ export class P2WDADetector {
55
42
 
56
43
  // Check for pubkey and OP_CHECKSIG
57
44
  return (
58
- Buffer.isBuffer(decompiled[5]) &&
45
+ decompiled[5] instanceof Uint8Array &&
59
46
  decompiled[5].length === 33 && // Compressed public key
60
47
  decompiled[6] === opcodes.OP_CHECKSIG
61
48
  );
@@ -66,16 +53,12 @@ export class P2WDADetector {
66
53
 
67
54
  /**
68
55
  * Generate a P2WDA address from a public key
69
- *
70
- * @param publicKey The public key to use (33 bytes compressed)
71
- * @param network The Bitcoin network
72
- * @returns The P2WDA address and related payment information
73
56
  */
74
57
  public static generateP2WDAAddress(
75
- publicKey: Buffer,
58
+ publicKey: Uint8Array,
76
59
  network: Network,
77
60
  ): IP2WSHAddress & {
78
- scriptPubKey: Buffer;
61
+ scriptPubKey: Uint8Array;
79
62
  } {
80
63
  if (publicKey.length !== 33) {
81
64
  throw new Error('Public key must be 33 bytes (compressed)');
@@ -111,11 +94,8 @@ export class P2WDADetector {
111
94
 
112
95
  /**
113
96
  * Extract the public key from a P2WDA witness script
114
- *
115
- * @param witnessScript The P2WDA witness script
116
- * @returns The public key or null if not a valid P2WDA script
117
97
  */
118
- public static extractPublicKeyFromP2WDA(witnessScript: Buffer): Buffer | null {
98
+ public static extractPublicKeyFromP2WDA(witnessScript: Uint8Array): Uint8Array | null {
119
99
  try {
120
100
  const decompiled = script.decompile(witnessScript);
121
101
 
@@ -131,7 +111,7 @@ export class P2WDADetector {
131
111
  }
132
112
 
133
113
  if (
134
- Buffer.isBuffer(decompiled[5]) &&
114
+ decompiled[5] instanceof Uint8Array &&
135
115
  decompiled[5].length === 33 &&
136
116
  decompiled[6] === opcodes.OP_CHECKSIG
137
117
  ) {
@@ -146,23 +126,16 @@ export class P2WDADetector {
146
126
 
147
127
  /**
148
128
  * Create witness data for a simple P2WDA spend (no operation data)
149
- *
150
- * For simple transfers, P2WDA requires 10 dummy witness items (zeros) before the signature
151
- *
152
- * @param transactionSignature The transaction signature
153
- * @param witnessScript The P2WDA witness script
154
- * @returns The witness stack for a simple P2WDA spend
155
129
  */
156
130
  public static createSimpleP2WDAWitness(
157
- transactionSignature: Buffer,
158
- witnessScript: Buffer,
159
- ): Buffer[] {
160
- const witnessStack: Buffer[] = [transactionSignature];
131
+ transactionSignature: Uint8Array,
132
+ witnessScript: Uint8Array,
133
+ ): Uint8Array[] {
134
+ const witnessStack: Uint8Array[] = [transactionSignature];
161
135
 
162
136
  // Add 10 empty buffers for the 5x OP_2DROP operations
163
- // Bitcoin stack is reversed!
164
137
  for (let i = 0; i < 10; i++) {
165
- witnessStack.push(Buffer.alloc(0));
138
+ witnessStack.push(new Uint8Array(0));
166
139
  }
167
140
 
168
141
  witnessStack.push(witnessScript);
@@ -171,48 +144,26 @@ export class P2WDADetector {
171
144
 
172
145
  /**
173
146
  * Validate P2WDA operation data signature
174
- *
175
- * @param publicKey The public key from the witness script
176
- * @param dataSignature The Schnorr signature
177
- * @param operationData The operation data that was signed
178
- * @returns true if the signature is valid
179
147
  */
180
148
  public static validateP2WDASignature(
181
- publicKey: Buffer,
182
- dataSignature: Buffer,
183
- operationData: Buffer,
149
+ _publicKey: Uint8Array,
150
+ dataSignature: Uint8Array,
151
+ _operationData: Uint8Array,
184
152
  ): boolean {
185
- // This would use MessageSigner.verifySignature internally
186
- // For now, we'll assume the signature validation is handled by MessageSigner
187
153
  return dataSignature.length === 64; // Schnorr signatures are always 64 bytes
188
154
  }
189
155
 
190
156
  /**
191
157
  * Calculate the witness size for P2WDA transaction estimation
192
- *
193
- * @param dataSize The size of the operation data (0 for simple transfers)
194
- * @returns The estimated witness size in bytes
195
158
  */
196
159
  public static estimateP2WDAWitnessSize(dataSize: number = 0): number {
197
- // Witness structure:
198
- // - Transaction signature: ~72 bytes
199
- // - 10 data fields (can be empty or contain data)
200
- // - Witness script: 39 bytes (5x OP_2DROP + 33-byte pubkey + OP_CHECKSIG)
201
- // - Overhead for length prefixes: ~12 bytes (1 byte per witness element)
202
-
203
- // For simple transfers, dataSize is 0 (10 empty fields)
204
- // For interactions, dataSize is the total size of data split across fields
205
160
  return 72 + dataSize + 39 + 12;
206
161
  }
207
162
 
208
163
  /**
209
164
  * Check if a scriptPubKey is a P2WSH that could be P2WDA
210
- *
211
- * @param scriptPubKey The script public key to check
212
- * @returns true if this could be a P2WDA output
213
165
  */
214
- public static couldBeP2WDA(scriptPubKey: Buffer): boolean {
215
- // P2WDA uses P2WSH, which is version 0 witness with 32-byte program
216
- return scriptPubKey.length === 34 && scriptPubKey[0] === 0x00 && scriptPubKey[1] === 0x20; // 32 bytes
166
+ public static couldBeP2WDA(scriptPubKey: Uint8Array): boolean {
167
+ return scriptPubKey.length === 34 && scriptPubKey[0] === 0x00 && scriptPubKey[1] === 0x20;
217
168
  }
218
169
  }
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Polyfill for Symbol.dispose and Symbol.asyncDispose.
3
+ *
4
+ * ES2024 Explicit Resource Management defines these well-known symbols,
5
+ * but Safari and Android WebView do not yet support them. This polyfill
6
+ * creates globally-shared symbols via Symbol.for() so that classes can
7
+ * implement [Symbol.dispose]() and [Symbol.asyncDispose]() today.
8
+ *
9
+ * When native support lands, the guards prevent the polyfill from running
10
+ * and the native symbols are used transparently.
11
+ *
12
+ * NOTE: This file must be imported before any module that references
13
+ * Symbol.dispose or Symbol.asyncDispose at the module-evaluation scope.
14
+ */
15
+
16
+ interface PolyfillableSymbolConstructor {
17
+ dispose?: symbol;
18
+ asyncDispose?: symbol;
19
+ }
20
+
21
+ const S = Symbol as unknown as PolyfillableSymbolConstructor;
22
+
23
+ if (typeof S.dispose !== 'symbol') {
24
+ S.dispose = Symbol.for('Symbol.dispose');
25
+ }
26
+
27
+ if (typeof S.asyncDispose !== 'symbol') {
28
+ S.asyncDispose = Symbol.for('Symbol.asyncDispose');
29
+ }
@@ -1,4 +1,4 @@
1
- import { RotationSignerBase } from './IRotationSigner.js';
1
+ import type { RotationSignerBase } from './IRotationSigner.js';
2
2
  import { UnisatSigner } from '../transaction/browser/extensions/UnisatSigner.js';
3
3
 
4
4
  /**