@btc-vision/transaction 1.8.0-beta.0 → 1.8.0-beta.10

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 (796) hide show
  1. package/browser/_version.d.ts +2 -1
  2. package/browser/_version.d.ts.map +1 -0
  3. package/browser/abi/ABICoder.d.ts +15 -36
  4. package/browser/abi/ABICoder.d.ts.map +1 -0
  5. package/browser/abi/ABIDataTypes.d.ts +35 -0
  6. package/browser/abi/ABIDataTypes.d.ts.map +1 -0
  7. package/browser/abi/AbiTypes.d.ts +50 -0
  8. package/browser/abi/AbiTypes.d.ts.map +1 -0
  9. package/browser/abi/TupleUtils.d.ts +25 -0
  10. package/browser/abi/TupleUtils.d.ts.map +1 -0
  11. package/browser/branded/Branded.d.ts +4 -0
  12. package/browser/branded/Branded.d.ts.map +1 -0
  13. package/browser/btc-vision-bitcoin.js +12388 -3684
  14. package/browser/buffer/BinaryReader.d.ts +120 -1
  15. package/browser/buffer/BinaryReader.d.ts.map +1 -0
  16. package/browser/buffer/BinaryWriter.d.ts +51 -1
  17. package/browser/buffer/BinaryWriter.d.ts.map +1 -0
  18. package/browser/bytecode/Compressor.d.ts +12 -0
  19. package/browser/bytecode/Compressor.d.ts.map +1 -0
  20. package/browser/chain/ChainData.d.ts +2 -2
  21. package/browser/chain/ChainData.d.ts.map +1 -0
  22. package/browser/consensus/Consensus.d.ts +11 -3
  23. package/browser/consensus/Consensus.d.ts.map +1 -0
  24. package/browser/consensus/ConsensusConfig.d.ts +1 -0
  25. package/browser/consensus/ConsensusConfig.d.ts.map +1 -0
  26. package/browser/consensus/IConsensusConfig.d.ts +1 -0
  27. package/browser/consensus/IConsensusConfig.d.ts.map +1 -0
  28. package/browser/consensus/metadata/RoswellConsensus.d.ts +1 -0
  29. package/browser/consensus/metadata/RoswellConsensus.d.ts.map +1 -0
  30. package/browser/crypto/crypto.d.ts +1 -0
  31. package/browser/crypto/crypto.d.ts.map +1 -0
  32. package/browser/deterministic/AddressMap.d.ts +6 -1
  33. package/browser/deterministic/AddressMap.d.ts.map +1 -0
  34. package/browser/deterministic/AddressSet.d.ts +3 -1
  35. package/browser/deterministic/AddressSet.d.ts.map +1 -0
  36. package/browser/deterministic/CustomMap.d.ts +3 -1
  37. package/browser/deterministic/CustomMap.d.ts.map +1 -0
  38. package/browser/deterministic/DeterministicMap.d.ts +3 -1
  39. package/browser/deterministic/DeterministicMap.d.ts.map +1 -0
  40. package/browser/deterministic/DeterministicSet.d.ts +3 -1
  41. package/browser/deterministic/DeterministicSet.d.ts.map +1 -0
  42. package/browser/deterministic/ExtendedAddressMap.d.ts +7 -1
  43. package/browser/deterministic/ExtendedAddressMap.d.ts.map +1 -0
  44. package/browser/deterministic/FastMap.d.ts +7 -1
  45. package/browser/deterministic/FastMap.d.ts.map +1 -0
  46. package/browser/ecc/backend.d.ts +13 -0
  47. package/browser/ecc/backend.d.ts.map +1 -0
  48. package/browser/epoch/ChallengeSolution.d.ts +33 -1
  49. package/browser/epoch/ChallengeSolution.d.ts.map +1 -0
  50. package/browser/epoch/interfaces/IChallengeSolution.d.ts +14 -13
  51. package/browser/epoch/interfaces/IChallengeSolution.d.ts.map +1 -0
  52. package/browser/epoch/validator/EpochValidator.d.ts +37 -7
  53. package/browser/epoch/validator/EpochValidator.d.ts.map +1 -0
  54. package/browser/event/NetEvent.d.ts +1 -0
  55. package/browser/event/NetEvent.d.ts.map +1 -0
  56. package/browser/generators/AddressGenerator.d.ts +4 -3
  57. package/browser/generators/AddressGenerator.d.ts.map +1 -0
  58. package/browser/generators/Features.d.ts +1 -0
  59. package/browser/generators/Features.d.ts.map +1 -0
  60. package/browser/generators/Generator.d.ts +46 -10
  61. package/browser/generators/Generator.d.ts.map +1 -0
  62. package/browser/generators/MLDSAData.d.ts +1 -0
  63. package/browser/generators/MLDSAData.d.ts.map +1 -0
  64. package/browser/generators/builders/CalldataGenerator.d.ts +25 -4
  65. package/browser/generators/builders/CalldataGenerator.d.ts.map +1 -0
  66. package/browser/generators/builders/CustomGenerator.d.ts +13 -3
  67. package/browser/generators/builders/CustomGenerator.d.ts.map +1 -0
  68. package/browser/generators/builders/DeploymentGenerator.d.ts +15 -4
  69. package/browser/generators/builders/DeploymentGenerator.d.ts.map +1 -0
  70. package/browser/generators/builders/HashCommitmentGenerator.d.ts +164 -12
  71. package/browser/generators/builders/HashCommitmentGenerator.d.ts.map +1 -0
  72. package/browser/generators/builders/LegacyCalldataGenerator.d.ts +26 -4
  73. package/browser/generators/builders/LegacyCalldataGenerator.d.ts.map +1 -0
  74. package/browser/generators/builders/MultiSignGenerator.d.ts +6 -1
  75. package/browser/generators/builders/MultiSignGenerator.d.ts.map +1 -0
  76. package/browser/generators/builders/P2WDAGenerator.d.ts +42 -4
  77. package/browser/generators/builders/P2WDAGenerator.d.ts.map +1 -0
  78. package/browser/index.d.ts +1 -0
  79. package/browser/index.d.ts.map +1 -0
  80. package/browser/index.js +3921 -3450
  81. package/browser/keypair/Address.d.ts +283 -13
  82. package/browser/keypair/Address.d.ts.map +1 -0
  83. package/browser/keypair/AddressVerificator.d.ts +7 -6
  84. package/browser/keypair/AddressVerificator.d.ts.map +1 -0
  85. package/browser/keypair/EcKeyPair.d.ts +183 -20
  86. package/browser/keypair/EcKeyPair.d.ts.map +1 -0
  87. package/browser/keypair/MessageSigner.d.ts +17 -16
  88. package/browser/keypair/MessageSigner.d.ts.map +1 -0
  89. package/browser/keypair/Secp256k1PointDeriver.d.ts +55 -0
  90. package/browser/keypair/Secp256k1PointDeriver.d.ts.map +1 -0
  91. package/browser/keypair/Wallet.d.ts +27 -13
  92. package/browser/keypair/Wallet.d.ts.map +1 -0
  93. package/browser/keypair/interfaces/IWallet.d.ts +19 -0
  94. package/browser/keypair/interfaces/IWallet.d.ts.map +1 -0
  95. package/browser/metadata/ContractBaseMetadata.d.ts +10 -2
  96. package/browser/metadata/ContractBaseMetadata.d.ts.map +1 -0
  97. package/browser/mnemonic/BIPStandard.d.ts +59 -0
  98. package/browser/mnemonic/BIPStandard.d.ts.map +1 -0
  99. package/browser/mnemonic/Mnemonic.d.ts +15 -3
  100. package/browser/mnemonic/Mnemonic.d.ts.map +1 -0
  101. package/browser/mnemonic/MnemonicStrength.d.ts +6 -0
  102. package/browser/mnemonic/MnemonicStrength.d.ts.map +1 -0
  103. package/browser/network/ChainId.d.ts +1 -0
  104. package/browser/network/ChainId.d.ts.map +1 -0
  105. package/browser/noble-curves.js +920 -2966
  106. package/browser/noble-hashes.js +2067 -1038
  107. package/browser/opnet.d.ts +25 -1
  108. package/browser/opnet.d.ts.map +1 -0
  109. package/browser/p2wda/P2WDADetector.d.ts +36 -9
  110. package/browser/p2wda/P2WDADetector.d.ts.map +1 -0
  111. package/browser/polyfill/disposable.d.ts +16 -0
  112. package/browser/polyfill/disposable.d.ts.map +1 -0
  113. package/browser/signer/AddressRotation.d.ts +36 -0
  114. package/browser/signer/AddressRotation.d.ts.map +1 -0
  115. package/browser/signer/IRotationSigner.d.ts +27 -3
  116. package/browser/signer/IRotationSigner.d.ts.map +1 -0
  117. package/browser/signer/ParallelSignerAdapter.d.ts +14 -0
  118. package/browser/signer/ParallelSignerAdapter.d.ts.map +1 -0
  119. package/browser/signer/SignerUtils.d.ts +11 -4
  120. package/browser/signer/SignerUtils.d.ts.map +1 -0
  121. package/browser/signer/TweakedSigner.d.ts +28 -4
  122. package/browser/signer/TweakedSigner.d.ts.map +1 -0
  123. package/browser/transaction/ContractAddress.d.ts +2 -2
  124. package/browser/transaction/ContractAddress.d.ts.map +1 -0
  125. package/browser/transaction/TransactionFactory.d.ts +140 -2
  126. package/browser/transaction/TransactionFactory.d.ts.map +1 -0
  127. package/browser/transaction/browser/BrowserSignerBase.d.ts +12 -6
  128. package/browser/transaction/browser/BrowserSignerBase.d.ts.map +1 -0
  129. package/browser/transaction/browser/WalletNetworks.d.ts +1 -0
  130. package/browser/transaction/browser/WalletNetworks.d.ts.map +1 -0
  131. package/browser/transaction/browser/Web3Provider.d.ts +27 -0
  132. package/browser/transaction/browser/Web3Provider.d.ts.map +1 -0
  133. package/browser/transaction/browser/extensions/UnisatSigner.d.ts +9 -7
  134. package/browser/transaction/browser/extensions/UnisatSigner.d.ts.map +1 -0
  135. package/browser/transaction/browser/extensions/XverseSigner.d.ts +9 -7
  136. package/browser/transaction/browser/extensions/XverseSigner.d.ts.map +1 -0
  137. package/browser/transaction/browser/types/OPWallet.d.ts +10 -0
  138. package/browser/transaction/browser/types/OPWallet.d.ts.map +1 -0
  139. package/browser/transaction/browser/types/Unisat.d.ts +1 -0
  140. package/browser/transaction/browser/types/Unisat.d.ts.map +1 -0
  141. package/browser/transaction/browser/types/Xverse.d.ts +1 -0
  142. package/browser/transaction/browser/types/Xverse.d.ts.map +1 -0
  143. package/browser/transaction/builders/CancelTransaction.d.ts +29 -4
  144. package/browser/transaction/builders/CancelTransaction.d.ts.map +1 -0
  145. package/browser/transaction/builders/ChallengeSolutionTransaction.d.ts +1 -0
  146. package/browser/transaction/builders/ChallengeSolutionTransaction.d.ts.map +1 -0
  147. package/browser/transaction/builders/ConsolidatedInteractionTransaction.d.ts +137 -10
  148. package/browser/transaction/builders/ConsolidatedInteractionTransaction.d.ts.map +1 -0
  149. package/browser/transaction/builders/CustomScriptTransaction.d.ts +106 -6
  150. package/browser/transaction/builders/CustomScriptTransaction.d.ts.map +1 -0
  151. package/browser/transaction/builders/DeploymentTransaction.d.ts +116 -5
  152. package/browser/transaction/builders/DeploymentTransaction.d.ts.map +1 -0
  153. package/browser/transaction/builders/FundingTransaction.d.ts +5 -3
  154. package/browser/transaction/builders/FundingTransaction.d.ts.map +1 -0
  155. package/browser/transaction/builders/InteractionTransaction.d.ts +12 -3
  156. package/browser/transaction/builders/InteractionTransaction.d.ts.map +1 -0
  157. package/browser/transaction/builders/InteractionTransactionP2WDA.d.ts +56 -5
  158. package/browser/transaction/builders/InteractionTransactionP2WDA.d.ts.map +1 -0
  159. package/browser/transaction/builders/MultiSignTransaction.d.ts +125 -16
  160. package/browser/transaction/builders/MultiSignTransaction.d.ts.map +1 -0
  161. package/browser/transaction/builders/SharedInteractionTransaction.d.ts +103 -15
  162. package/browser/transaction/builders/SharedInteractionTransaction.d.ts.map +1 -0
  163. package/browser/transaction/builders/TransactionBuilder.d.ts +238 -15
  164. package/browser/transaction/builders/TransactionBuilder.d.ts.map +1 -0
  165. package/browser/transaction/enums/TransactionType.d.ts +1 -0
  166. package/browser/transaction/enums/TransactionType.d.ts.map +1 -0
  167. package/browser/transaction/interfaces/ICancelTransactionParameters.d.ts +2 -1
  168. package/browser/transaction/interfaces/ICancelTransactionParameters.d.ts.map +1 -0
  169. package/browser/transaction/interfaces/IConsolidatedTransactionParameters.d.ts +46 -3
  170. package/browser/transaction/interfaces/IConsolidatedTransactionParameters.d.ts.map +1 -0
  171. package/browser/transaction/interfaces/ICustomTransactionParameters.d.ts +6 -4
  172. package/browser/transaction/interfaces/ICustomTransactionParameters.d.ts.map +1 -0
  173. package/browser/transaction/interfaces/ITransactionParameters.d.ts +33 -10
  174. package/browser/transaction/interfaces/ITransactionParameters.d.ts.map +1 -0
  175. package/browser/transaction/interfaces/ITransactionResponses.d.ts +1 -0
  176. package/browser/transaction/interfaces/ITransactionResponses.d.ts.map +1 -0
  177. package/browser/transaction/interfaces/ITweakedTransactionData.d.ts +17 -5
  178. package/browser/transaction/interfaces/ITweakedTransactionData.d.ts.map +1 -0
  179. package/browser/transaction/interfaces/IWeb3ProviderTypes.d.ts +26 -0
  180. package/browser/transaction/interfaces/IWeb3ProviderTypes.d.ts.map +1 -0
  181. package/browser/transaction/interfaces/Tap.d.ts +4 -3
  182. package/browser/transaction/interfaces/Tap.d.ts.map +1 -0
  183. package/browser/transaction/mineable/IP2WSHAddress.d.ts +2 -1
  184. package/browser/transaction/mineable/IP2WSHAddress.d.ts.map +1 -0
  185. package/browser/transaction/mineable/TimelockGenerator.d.ts +12 -3
  186. package/browser/transaction/mineable/TimelockGenerator.d.ts.map +1 -0
  187. package/browser/transaction/offline/OfflineTransactionManager.d.ts +190 -9
  188. package/browser/transaction/offline/OfflineTransactionManager.d.ts.map +1 -0
  189. package/browser/transaction/offline/TransactionReconstructor.d.ts +53 -3
  190. package/browser/transaction/offline/TransactionReconstructor.d.ts.map +1 -0
  191. package/browser/transaction/offline/TransactionSerializer.d.ts +53 -2
  192. package/browser/transaction/offline/TransactionSerializer.d.ts.map +1 -0
  193. package/browser/transaction/offline/TransactionStateCapture.d.ts +64 -5
  194. package/browser/transaction/offline/TransactionStateCapture.d.ts.map +1 -0
  195. package/browser/transaction/offline/interfaces/ISerializableState.d.ts +71 -0
  196. package/browser/transaction/offline/interfaces/ISerializableState.d.ts.map +1 -0
  197. package/browser/transaction/offline/interfaces/ITypeSpecificData.d.ts +76 -0
  198. package/browser/transaction/offline/interfaces/ITypeSpecificData.d.ts.map +1 -0
  199. package/browser/transaction/psbt/PSBTTypes.d.ts +1 -0
  200. package/browser/transaction/psbt/PSBTTypes.d.ts.map +1 -0
  201. package/browser/transaction/shared/P2TR_MS.d.ts +11 -2
  202. package/browser/transaction/shared/P2TR_MS.d.ts.map +1 -0
  203. package/browser/transaction/shared/TweakedTransaction.d.ts +274 -33
  204. package/browser/transaction/shared/TweakedTransaction.d.ts.map +1 -0
  205. package/browser/transaction/utils/WitnessUtils.d.ts +7 -1
  206. package/browser/transaction/utils/WitnessUtils.d.ts.map +1 -0
  207. package/browser/utils/BitcoinUtils.d.ts +19 -0
  208. package/browser/utils/BitcoinUtils.d.ts.map +1 -0
  209. package/browser/utils/BufferHelper.d.ts +1 -0
  210. package/browser/utils/BufferHelper.d.ts.map +1 -0
  211. package/browser/utils/StringToBuffer.d.ts +1 -0
  212. package/browser/utils/StringToBuffer.d.ts.map +1 -0
  213. package/browser/utils/lengths.d.ts +1 -0
  214. package/browser/utils/lengths.d.ts.map +1 -0
  215. package/browser/utils/types.d.ts +1 -0
  216. package/browser/utils/types.d.ts.map +1 -0
  217. package/browser/utxo/OPNetLimitedProvider.d.ts +37 -1
  218. package/browser/utxo/OPNetLimitedProvider.d.ts.map +1 -0
  219. package/browser/utxo/interfaces/BroadcastResponse.d.ts +1 -0
  220. package/browser/utxo/interfaces/BroadcastResponse.d.ts.map +1 -0
  221. package/browser/utxo/interfaces/IUTXO.d.ts +11 -5
  222. package/browser/utxo/interfaces/IUTXO.d.ts.map +1 -0
  223. package/browser/vendors.js +13940 -9389
  224. package/browser/verification/TapscriptVerificator.d.ts +10 -8
  225. package/browser/verification/TapscriptVerificator.d.ts.map +1 -0
  226. package/build/_version.d.ts +2 -1
  227. package/build/_version.d.ts.map +1 -0
  228. package/build/_version.js +2 -1
  229. package/build/_version.js.map +1 -0
  230. package/build/abi/ABICoder.d.ts +15 -36
  231. package/build/abi/ABICoder.d.ts.map +1 -0
  232. package/build/abi/ABICoder.js +120 -143
  233. package/build/abi/ABICoder.js.map +1 -0
  234. package/build/abi/ABIDataTypes.d.ts +35 -0
  235. package/build/abi/ABIDataTypes.d.ts.map +1 -0
  236. package/build/abi/ABIDataTypes.js +42 -0
  237. package/build/abi/ABIDataTypes.js.map +1 -0
  238. package/build/abi/AbiTypes.d.ts +50 -0
  239. package/build/abi/AbiTypes.d.ts.map +1 -0
  240. package/build/abi/AbiTypes.js +78 -0
  241. package/build/abi/AbiTypes.js.map +1 -0
  242. package/build/abi/TupleUtils.d.ts +25 -0
  243. package/build/abi/TupleUtils.d.ts.map +1 -0
  244. package/build/abi/TupleUtils.js +50 -0
  245. package/build/abi/TupleUtils.js.map +1 -0
  246. package/build/branded/Branded.d.ts +4 -0
  247. package/build/branded/Branded.d.ts.map +1 -0
  248. package/build/branded/Branded.js +2 -0
  249. package/build/branded/Branded.js.map +1 -0
  250. package/build/buffer/BinaryReader.d.ts +121 -2
  251. package/build/buffer/BinaryReader.d.ts.map +1 -0
  252. package/build/buffer/BinaryReader.js +129 -5
  253. package/build/buffer/BinaryReader.js.map +1 -0
  254. package/build/buffer/BinaryWriter.d.ts +52 -2
  255. package/build/buffer/BinaryWriter.d.ts.map +1 -0
  256. package/build/buffer/BinaryWriter.js +62 -2
  257. package/build/buffer/BinaryWriter.js.map +1 -0
  258. package/build/bytecode/Compressor.d.ts +12 -0
  259. package/build/bytecode/Compressor.d.ts.map +1 -0
  260. package/build/bytecode/Compressor.js +17 -5
  261. package/build/bytecode/Compressor.js.map +1 -0
  262. package/build/chain/ChainData.d.ts +2 -2
  263. package/build/chain/ChainData.d.ts.map +1 -0
  264. package/build/chain/ChainData.js +37 -16
  265. package/build/chain/ChainData.js.map +1 -0
  266. package/build/consensus/Consensus.d.ts +11 -3
  267. package/build/consensus/Consensus.d.ts.map +1 -0
  268. package/build/consensus/Consensus.js +8 -0
  269. package/build/consensus/Consensus.js.map +1 -0
  270. package/build/consensus/ConsensusConfig.d.ts +2 -1
  271. package/build/consensus/ConsensusConfig.d.ts.map +1 -0
  272. package/build/consensus/ConsensusConfig.js +1 -0
  273. package/build/consensus/ConsensusConfig.js.map +1 -0
  274. package/build/consensus/IConsensusConfig.d.ts +1 -0
  275. package/build/consensus/IConsensusConfig.d.ts.map +1 -0
  276. package/build/consensus/IConsensusConfig.js +2 -1
  277. package/build/consensus/IConsensusConfig.js.map +1 -0
  278. package/build/consensus/metadata/RoswellConsensus.d.ts +2 -1
  279. package/build/consensus/metadata/RoswellConsensus.d.ts.map +1 -0
  280. package/build/consensus/metadata/RoswellConsensus.js +2 -0
  281. package/build/consensus/metadata/RoswellConsensus.js.map +1 -0
  282. package/build/crypto/crypto.d.ts +1 -0
  283. package/build/crypto/crypto.d.ts.map +1 -0
  284. package/build/crypto/crypto.js +1 -0
  285. package/build/crypto/crypto.js.map +1 -0
  286. package/build/deterministic/AddressMap.d.ts +6 -1
  287. package/build/deterministic/AddressMap.d.ts.map +1 -0
  288. package/build/deterministic/AddressMap.js +8 -0
  289. package/build/deterministic/AddressMap.js.map +1 -0
  290. package/build/deterministic/AddressSet.d.ts +3 -1
  291. package/build/deterministic/AddressSet.d.ts.map +1 -0
  292. package/build/deterministic/AddressSet.js +7 -0
  293. package/build/deterministic/AddressSet.js.map +1 -0
  294. package/build/deterministic/CustomMap.d.ts +3 -1
  295. package/build/deterministic/CustomMap.d.ts.map +1 -0
  296. package/build/deterministic/CustomMap.js +65 -47
  297. package/build/deterministic/CustomMap.js.map +1 -0
  298. package/build/deterministic/DeterministicMap.d.ts +4 -2
  299. package/build/deterministic/DeterministicMap.d.ts.map +1 -0
  300. package/build/deterministic/DeterministicMap.js +24 -27
  301. package/build/deterministic/DeterministicMap.js.map +1 -0
  302. package/build/deterministic/DeterministicSet.d.ts +3 -1
  303. package/build/deterministic/DeterministicSet.d.ts.map +1 -0
  304. package/build/deterministic/DeterministicSet.js +6 -0
  305. package/build/deterministic/DeterministicSet.js.map +1 -0
  306. package/build/deterministic/ExtendedAddressMap.d.ts +7 -1
  307. package/build/deterministic/ExtendedAddressMap.d.ts.map +1 -0
  308. package/build/deterministic/ExtendedAddressMap.js +18 -2
  309. package/build/deterministic/ExtendedAddressMap.js.map +1 -0
  310. package/build/deterministic/FastMap.d.ts +7 -1
  311. package/build/deterministic/FastMap.d.ts.map +1 -0
  312. package/build/deterministic/FastMap.js +7 -2
  313. package/build/deterministic/FastMap.js.map +1 -0
  314. package/build/ecc/backend.d.ts +13 -0
  315. package/build/ecc/backend.d.ts.map +1 -0
  316. package/build/ecc/backend.js +15 -0
  317. package/build/ecc/backend.js.map +1 -0
  318. package/build/epoch/ChallengeSolution.d.ts +34 -2
  319. package/build/epoch/ChallengeSolution.d.ts.map +1 -0
  320. package/build/epoch/ChallengeSolution.js +52 -0
  321. package/build/epoch/ChallengeSolution.js.map +1 -0
  322. package/build/epoch/interfaces/IChallengeSolution.d.ts +14 -13
  323. package/build/epoch/interfaces/IChallengeSolution.d.ts.map +1 -0
  324. package/build/epoch/interfaces/IChallengeSolution.js +2 -1
  325. package/build/epoch/interfaces/IChallengeSolution.js.map +1 -0
  326. package/build/epoch/validator/EpochValidator.d.ts +38 -8
  327. package/build/epoch/validator/EpochValidator.d.ts.map +1 -0
  328. package/build/epoch/validator/EpochValidator.js +45 -19
  329. package/build/epoch/validator/EpochValidator.js.map +1 -0
  330. package/build/event/NetEvent.d.ts +1 -0
  331. package/build/event/NetEvent.d.ts.map +1 -0
  332. package/build/event/NetEvent.js +3 -0
  333. package/build/event/NetEvent.js.map +1 -0
  334. package/build/generators/AddressGenerator.d.ts +4 -3
  335. package/build/generators/AddressGenerator.d.ts.map +1 -0
  336. package/build/generators/AddressGenerator.js +9 -4
  337. package/build/generators/AddressGenerator.js.map +1 -0
  338. package/build/generators/Features.d.ts +4 -3
  339. package/build/generators/Features.d.ts.map +1 -0
  340. package/build/generators/Features.js +1 -0
  341. package/build/generators/Features.js.map +1 -0
  342. package/build/generators/Generator.d.ts +47 -11
  343. package/build/generators/Generator.d.ts.map +1 -0
  344. package/build/generators/Generator.js +48 -12
  345. package/build/generators/Generator.js.map +1 -0
  346. package/build/generators/MLDSAData.d.ts +1 -0
  347. package/build/generators/MLDSAData.d.ts.map +1 -0
  348. package/build/generators/MLDSAData.js +1 -0
  349. package/build/generators/MLDSAData.js.map +1 -0
  350. package/build/generators/builders/CalldataGenerator.d.ts +27 -6
  351. package/build/generators/builders/CalldataGenerator.d.ts.map +1 -0
  352. package/build/generators/builders/CalldataGenerator.js +33 -4
  353. package/build/generators/builders/CalldataGenerator.js.map +1 -0
  354. package/build/generators/builders/CustomGenerator.d.ts +13 -3
  355. package/build/generators/builders/CustomGenerator.d.ts.map +1 -0
  356. package/build/generators/builders/CustomGenerator.js +11 -0
  357. package/build/generators/builders/CustomGenerator.js.map +1 -0
  358. package/build/generators/builders/DeploymentGenerator.d.ts +17 -6
  359. package/build/generators/builders/DeploymentGenerator.d.ts.map +1 -0
  360. package/build/generators/builders/DeploymentGenerator.js +18 -2
  361. package/build/generators/builders/DeploymentGenerator.js.map +1 -0
  362. package/build/generators/builders/HashCommitmentGenerator.d.ts +166 -14
  363. package/build/generators/builders/HashCommitmentGenerator.d.ts.map +1 -0
  364. package/build/generators/builders/HashCommitmentGenerator.js +193 -27
  365. package/build/generators/builders/HashCommitmentGenerator.js.map +1 -0
  366. package/build/generators/builders/LegacyCalldataGenerator.d.ts +27 -5
  367. package/build/generators/builders/LegacyCalldataGenerator.d.ts.map +1 -0
  368. package/build/generators/builders/LegacyCalldataGenerator.js +35 -5
  369. package/build/generators/builders/LegacyCalldataGenerator.js.map +1 -0
  370. package/build/generators/builders/MultiSignGenerator.d.ts +6 -1
  371. package/build/generators/builders/MultiSignGenerator.d.ts.map +1 -0
  372. package/build/generators/builders/MultiSignGenerator.js +20 -10
  373. package/build/generators/builders/MultiSignGenerator.js.map +1 -0
  374. package/build/generators/builders/P2WDAGenerator.d.ts +44 -6
  375. package/build/generators/builders/P2WDAGenerator.d.ts.map +1 -0
  376. package/build/generators/builders/P2WDAGenerator.js +41 -2
  377. package/build/generators/builders/P2WDAGenerator.js.map +1 -0
  378. package/build/index.d.ts +1 -0
  379. package/build/index.d.ts.map +1 -0
  380. package/build/index.js +1 -0
  381. package/build/index.js.map +1 -0
  382. package/build/keypair/Address.d.ts +284 -14
  383. package/build/keypair/Address.d.ts.map +1 -0
  384. package/build/keypair/Address.js +447 -129
  385. package/build/keypair/Address.js.map +1 -0
  386. package/build/keypair/AddressVerificator.d.ts +7 -6
  387. package/build/keypair/AddressVerificator.d.ts.map +1 -0
  388. package/build/keypair/AddressVerificator.js +4 -5
  389. package/build/keypair/AddressVerificator.js.map +1 -0
  390. package/build/keypair/EcKeyPair.d.ts +185 -22
  391. package/build/keypair/EcKeyPair.d.ts.map +1 -0
  392. package/build/keypair/EcKeyPair.js +226 -49
  393. package/build/keypair/EcKeyPair.js.map +1 -0
  394. package/build/keypair/MessageSigner.d.ts +18 -17
  395. package/build/keypair/MessageSigner.d.ts.map +1 -0
  396. package/build/keypair/MessageSigner.js +34 -25
  397. package/build/keypair/MessageSigner.js.map +1 -0
  398. package/build/keypair/Secp256k1PointDeriver.d.ts +55 -0
  399. package/build/keypair/Secp256k1PointDeriver.d.ts.map +1 -0
  400. package/build/keypair/Secp256k1PointDeriver.js +66 -0
  401. package/build/keypair/Secp256k1PointDeriver.js.map +1 -0
  402. package/build/keypair/Wallet.d.ts +29 -15
  403. package/build/keypair/Wallet.d.ts.map +1 -0
  404. package/build/keypair/Wallet.js +46 -14
  405. package/build/keypair/Wallet.js.map +1 -0
  406. package/build/keypair/interfaces/IWallet.d.ts +19 -0
  407. package/build/keypair/interfaces/IWallet.d.ts.map +1 -0
  408. package/build/keypair/interfaces/IWallet.js +1 -0
  409. package/build/keypair/interfaces/IWallet.js.map +1 -0
  410. package/build/metadata/ContractBaseMetadata.d.ts +10 -2
  411. package/build/metadata/ContractBaseMetadata.d.ts.map +1 -0
  412. package/build/metadata/ContractBaseMetadata.js +10 -1
  413. package/build/metadata/ContractBaseMetadata.js.map +1 -0
  414. package/build/mnemonic/BIPStandard.d.ts +59 -0
  415. package/build/mnemonic/BIPStandard.d.ts.map +1 -0
  416. package/build/mnemonic/BIPStandard.js +59 -0
  417. package/build/mnemonic/BIPStandard.js.map +1 -0
  418. package/build/mnemonic/Mnemonic.d.ts +16 -4
  419. package/build/mnemonic/Mnemonic.d.ts.map +1 -0
  420. package/build/mnemonic/Mnemonic.js +35 -8
  421. package/build/mnemonic/Mnemonic.js.map +1 -0
  422. package/build/mnemonic/MnemonicStrength.d.ts +6 -0
  423. package/build/mnemonic/MnemonicStrength.d.ts.map +1 -0
  424. package/build/mnemonic/MnemonicStrength.js +6 -0
  425. package/build/mnemonic/MnemonicStrength.js.map +1 -0
  426. package/build/network/ChainId.d.ts +1 -0
  427. package/build/network/ChainId.d.ts.map +1 -0
  428. package/build/network/ChainId.js +1 -0
  429. package/build/network/ChainId.js.map +1 -0
  430. package/build/opnet.d.ts +29 -3
  431. package/build/opnet.d.ts.map +1 -0
  432. package/build/opnet.js +26 -0
  433. package/build/opnet.js.map +1 -0
  434. package/build/p2wda/P2WDADetector.d.ts +38 -11
  435. package/build/p2wda/P2WDADetector.d.ts.map +1 -0
  436. package/build/p2wda/P2WDADetector.js +43 -10
  437. package/build/p2wda/P2WDADetector.js.map +1 -0
  438. package/build/polyfill/disposable.d.ts +16 -0
  439. package/build/polyfill/disposable.d.ts.map +1 -0
  440. package/build/polyfill/disposable.js +23 -0
  441. package/build/polyfill/disposable.js.map +1 -0
  442. package/build/signer/AddressRotation.d.ts +37 -1
  443. package/build/signer/AddressRotation.d.ts.map +1 -0
  444. package/build/signer/AddressRotation.js +16 -0
  445. package/build/signer/AddressRotation.js.map +1 -0
  446. package/build/signer/IRotationSigner.d.ts +27 -3
  447. package/build/signer/IRotationSigner.d.ts.map +1 -0
  448. package/build/signer/IRotationSigner.js +2 -1
  449. package/build/signer/IRotationSigner.js.map +1 -0
  450. package/build/signer/ParallelSignerAdapter.d.ts +14 -0
  451. package/build/signer/ParallelSignerAdapter.d.ts.map +1 -0
  452. package/build/signer/ParallelSignerAdapter.js +51 -0
  453. package/build/signer/ParallelSignerAdapter.js.map +1 -0
  454. package/build/signer/SignerUtils.d.ts +11 -4
  455. package/build/signer/SignerUtils.d.ts.map +1 -0
  456. package/build/signer/SignerUtils.js +16 -0
  457. package/build/signer/SignerUtils.js.map +1 -0
  458. package/build/signer/TweakedSigner.d.ts +28 -4
  459. package/build/signer/TweakedSigner.d.ts.map +1 -0
  460. package/build/signer/TweakedSigner.js +23 -6
  461. package/build/signer/TweakedSigner.js.map +1 -0
  462. package/build/transaction/ContractAddress.d.ts +2 -2
  463. package/build/transaction/ContractAddress.d.ts.map +1 -0
  464. package/build/transaction/ContractAddress.js +4 -8
  465. package/build/transaction/ContractAddress.js.map +1 -0
  466. package/build/transaction/TransactionFactory.d.ts +147 -9
  467. package/build/transaction/TransactionFactory.d.ts.map +1 -0
  468. package/build/transaction/TransactionFactory.js +145 -26
  469. package/build/transaction/TransactionFactory.js.map +1 -0
  470. package/build/transaction/browser/BrowserSignerBase.d.ts +12 -6
  471. package/build/transaction/browser/BrowserSignerBase.d.ts.map +1 -0
  472. package/build/transaction/browser/BrowserSignerBase.js +7 -0
  473. package/build/transaction/browser/BrowserSignerBase.js.map +1 -0
  474. package/build/transaction/browser/WalletNetworks.d.ts +1 -0
  475. package/build/transaction/browser/WalletNetworks.d.ts.map +1 -0
  476. package/build/transaction/browser/WalletNetworks.js +1 -0
  477. package/build/transaction/browser/WalletNetworks.js.map +1 -0
  478. package/build/transaction/browser/Web3Provider.d.ts +30 -3
  479. package/build/transaction/browser/Web3Provider.d.ts.map +1 -0
  480. package/build/transaction/browser/Web3Provider.js +1 -0
  481. package/build/transaction/browser/Web3Provider.js.map +1 -0
  482. package/build/transaction/browser/extensions/UnisatSigner.d.ts +11 -9
  483. package/build/transaction/browser/extensions/UnisatSigner.d.ts.map +1 -0
  484. package/build/transaction/browser/extensions/UnisatSigner.js +27 -17
  485. package/build/transaction/browser/extensions/UnisatSigner.js.map +1 -0
  486. package/build/transaction/browser/extensions/XverseSigner.d.ts +10 -8
  487. package/build/transaction/browser/extensions/XverseSigner.d.ts.map +1 -0
  488. package/build/transaction/browser/extensions/XverseSigner.js +25 -15
  489. package/build/transaction/browser/extensions/XverseSigner.js.map +1 -0
  490. package/build/transaction/browser/types/OPWallet.d.ts +12 -2
  491. package/build/transaction/browser/types/OPWallet.d.ts.map +1 -0
  492. package/build/transaction/browser/types/OPWallet.js +4 -0
  493. package/build/transaction/browser/types/OPWallet.js.map +1 -0
  494. package/build/transaction/browser/types/Unisat.d.ts +2 -1
  495. package/build/transaction/browser/types/Unisat.d.ts.map +1 -0
  496. package/build/transaction/browser/types/Unisat.js +2 -0
  497. package/build/transaction/browser/types/Unisat.js.map +1 -0
  498. package/build/transaction/browser/types/Xverse.d.ts +1 -0
  499. package/build/transaction/browser/types/Xverse.d.ts.map +1 -0
  500. package/build/transaction/browser/types/Xverse.js +1 -0
  501. package/build/transaction/browser/types/Xverse.js.map +1 -0
  502. package/build/transaction/builders/CancelTransaction.d.ts +31 -6
  503. package/build/transaction/builders/CancelTransaction.d.ts.map +1 -0
  504. package/build/transaction/builders/CancelTransaction.js +116 -33
  505. package/build/transaction/builders/CancelTransaction.js.map +1 -0
  506. package/build/transaction/builders/ChallengeSolutionTransaction.d.ts +1 -0
  507. package/build/transaction/builders/ChallengeSolutionTransaction.d.ts.map +1 -0
  508. package/build/transaction/builders/ChallengeSolutionTransaction.js +88 -0
  509. package/build/transaction/builders/ChallengeSolutionTransaction.js.map +1 -0
  510. package/build/transaction/builders/ConsolidatedInteractionTransaction.d.ts +140 -13
  511. package/build/transaction/builders/ConsolidatedInteractionTransaction.d.ts.map +1 -0
  512. package/build/transaction/builders/ConsolidatedInteractionTransaction.js +197 -20
  513. package/build/transaction/builders/ConsolidatedInteractionTransaction.js.map +1 -0
  514. package/build/transaction/builders/CustomScriptTransaction.d.ts +108 -8
  515. package/build/transaction/builders/CustomScriptTransaction.d.ts.map +1 -0
  516. package/build/transaction/builders/CustomScriptTransaction.js +176 -39
  517. package/build/transaction/builders/CustomScriptTransaction.js.map +1 -0
  518. package/build/transaction/builders/DeploymentTransaction.d.ts +120 -9
  519. package/build/transaction/builders/DeploymentTransaction.d.ts.map +1 -0
  520. package/build/transaction/builders/DeploymentTransaction.js +194 -51
  521. package/build/transaction/builders/DeploymentTransaction.js.map +1 -0
  522. package/build/transaction/builders/FundingTransaction.d.ts +6 -4
  523. package/build/transaction/builders/FundingTransaction.d.ts.map +1 -0
  524. package/build/transaction/builders/FundingTransaction.js +50 -9
  525. package/build/transaction/builders/FundingTransaction.js.map +1 -0
  526. package/build/transaction/builders/InteractionTransaction.d.ts +14 -5
  527. package/build/transaction/builders/InteractionTransaction.d.ts.map +1 -0
  528. package/build/transaction/builders/InteractionTransaction.js +18 -5
  529. package/build/transaction/builders/InteractionTransaction.js.map +1 -0
  530. package/build/transaction/builders/InteractionTransactionP2WDA.d.ts +58 -7
  531. package/build/transaction/builders/InteractionTransactionP2WDA.d.ts.map +1 -0
  532. package/build/transaction/builders/InteractionTransactionP2WDA.js +95 -18
  533. package/build/transaction/builders/InteractionTransactionP2WDA.js.map +1 -0
  534. package/build/transaction/builders/MultiSignTransaction.d.ts +126 -17
  535. package/build/transaction/builders/MultiSignTransaction.d.ts.map +1 -0
  536. package/build/transaction/builders/MultiSignTransaction.js +201 -76
  537. package/build/transaction/builders/MultiSignTransaction.js.map +1 -0
  538. package/build/transaction/builders/SharedInteractionTransaction.d.ts +106 -18
  539. package/build/transaction/builders/SharedInteractionTransaction.d.ts.map +1 -0
  540. package/build/transaction/builders/SharedInteractionTransaction.js +158 -40
  541. package/build/transaction/builders/SharedInteractionTransaction.js.map +1 -0
  542. package/build/transaction/builders/TransactionBuilder.d.ts +244 -20
  543. package/build/transaction/builders/TransactionBuilder.d.ts.map +1 -0
  544. package/build/transaction/builders/TransactionBuilder.js +371 -152
  545. package/build/transaction/builders/TransactionBuilder.js.map +1 -0
  546. package/build/transaction/enums/TransactionType.d.ts +1 -0
  547. package/build/transaction/enums/TransactionType.d.ts.map +1 -0
  548. package/build/transaction/enums/TransactionType.js +1 -0
  549. package/build/transaction/enums/TransactionType.js.map +1 -0
  550. package/build/transaction/interfaces/ICancelTransactionParameters.d.ts +3 -2
  551. package/build/transaction/interfaces/ICancelTransactionParameters.d.ts.map +1 -0
  552. package/build/transaction/interfaces/ICancelTransactionParameters.js +1 -0
  553. package/build/transaction/interfaces/ICancelTransactionParameters.js.map +1 -0
  554. package/build/transaction/interfaces/IConsolidatedTransactionParameters.d.ts +48 -5
  555. package/build/transaction/interfaces/IConsolidatedTransactionParameters.d.ts.map +1 -0
  556. package/build/transaction/interfaces/IConsolidatedTransactionParameters.js +1 -0
  557. package/build/transaction/interfaces/IConsolidatedTransactionParameters.js.map +1 -0
  558. package/build/transaction/interfaces/ICustomTransactionParameters.d.ts +7 -5
  559. package/build/transaction/interfaces/ICustomTransactionParameters.d.ts.map +1 -0
  560. package/build/transaction/interfaces/ICustomTransactionParameters.js +1 -0
  561. package/build/transaction/interfaces/ICustomTransactionParameters.js.map +1 -0
  562. package/build/transaction/interfaces/ITransactionParameters.d.ts +38 -15
  563. package/build/transaction/interfaces/ITransactionParameters.d.ts.map +1 -0
  564. package/build/transaction/interfaces/ITransactionParameters.js +1 -0
  565. package/build/transaction/interfaces/ITransactionParameters.js.map +1 -0
  566. package/build/transaction/interfaces/ITransactionResponses.d.ts +3 -2
  567. package/build/transaction/interfaces/ITransactionResponses.d.ts.map +1 -0
  568. package/build/transaction/interfaces/ITransactionResponses.js +1 -0
  569. package/build/transaction/interfaces/ITransactionResponses.js.map +1 -0
  570. package/build/transaction/interfaces/ITweakedTransactionData.d.ts +21 -8
  571. package/build/transaction/interfaces/ITweakedTransactionData.d.ts.map +1 -0
  572. package/build/transaction/interfaces/ITweakedTransactionData.js +1 -0
  573. package/build/transaction/interfaces/ITweakedTransactionData.js.map +1 -0
  574. package/build/transaction/interfaces/IWeb3ProviderTypes.d.ts +29 -3
  575. package/build/transaction/interfaces/IWeb3ProviderTypes.d.ts.map +1 -0
  576. package/build/transaction/interfaces/IWeb3ProviderTypes.js +2 -1
  577. package/build/transaction/interfaces/IWeb3ProviderTypes.js.map +1 -0
  578. package/build/transaction/interfaces/Tap.d.ts +4 -3
  579. package/build/transaction/interfaces/Tap.d.ts.map +1 -0
  580. package/build/transaction/interfaces/Tap.js +1 -0
  581. package/build/transaction/interfaces/Tap.js.map +1 -0
  582. package/build/transaction/mineable/IP2WSHAddress.d.ts +2 -1
  583. package/build/transaction/mineable/IP2WSHAddress.d.ts.map +1 -0
  584. package/build/transaction/mineable/IP2WSHAddress.js +1 -0
  585. package/build/transaction/mineable/IP2WSHAddress.js.map +1 -0
  586. package/build/transaction/mineable/TimelockGenerator.d.ts +13 -4
  587. package/build/transaction/mineable/TimelockGenerator.d.ts.map +1 -0
  588. package/build/transaction/mineable/TimelockGenerator.js +12 -3
  589. package/build/transaction/mineable/TimelockGenerator.js.map +1 -0
  590. package/build/transaction/offline/OfflineTransactionManager.d.ts +193 -12
  591. package/build/transaction/offline/OfflineTransactionManager.d.ts.map +1 -0
  592. package/build/transaction/offline/OfflineTransactionManager.js +192 -8
  593. package/build/transaction/offline/OfflineTransactionManager.js.map +1 -0
  594. package/build/transaction/offline/TransactionReconstructor.d.ts +56 -6
  595. package/build/transaction/offline/TransactionReconstructor.d.ts.map +1 -0
  596. package/build/transaction/offline/TransactionReconstructor.js +111 -75
  597. package/build/transaction/offline/TransactionReconstructor.js.map +1 -0
  598. package/build/transaction/offline/TransactionSerializer.d.ts +54 -3
  599. package/build/transaction/offline/TransactionSerializer.d.ts.map +1 -0
  600. package/build/transaction/offline/TransactionSerializer.js +206 -95
  601. package/build/transaction/offline/TransactionSerializer.js.map +1 -0
  602. package/build/transaction/offline/TransactionStateCapture.d.ts +66 -7
  603. package/build/transaction/offline/TransactionStateCapture.d.ts.map +1 -0
  604. package/build/transaction/offline/TransactionStateCapture.js +124 -60
  605. package/build/transaction/offline/TransactionStateCapture.js.map +1 -0
  606. package/build/transaction/offline/interfaces/ISerializableState.d.ts +72 -1
  607. package/build/transaction/offline/interfaces/ISerializableState.d.ts.map +1 -0
  608. package/build/transaction/offline/interfaces/ISerializableState.js +10 -1
  609. package/build/transaction/offline/interfaces/ISerializableState.js.map +1 -0
  610. package/build/transaction/offline/interfaces/ITypeSpecificData.d.ts +77 -1
  611. package/build/transaction/offline/interfaces/ITypeSpecificData.d.ts.map +1 -0
  612. package/build/transaction/offline/interfaces/ITypeSpecificData.js +19 -0
  613. package/build/transaction/offline/interfaces/ITypeSpecificData.js.map +1 -0
  614. package/build/transaction/psbt/PSBTTypes.d.ts +1 -0
  615. package/build/transaction/psbt/PSBTTypes.d.ts.map +1 -0
  616. package/build/transaction/psbt/PSBTTypes.js +1 -0
  617. package/build/transaction/psbt/PSBTTypes.js.map +1 -0
  618. package/build/transaction/shared/P2TR_MS.d.ts +11 -2
  619. package/build/transaction/shared/P2TR_MS.d.ts.map +1 -0
  620. package/build/transaction/shared/P2TR_MS.js +10 -0
  621. package/build/transaction/shared/P2TR_MS.js.map +1 -0
  622. package/build/transaction/shared/TweakedTransaction.d.ts +280 -38
  623. package/build/transaction/shared/TweakedTransaction.d.ts.map +1 -0
  624. package/build/transaction/shared/TweakedTransaction.js +576 -114
  625. package/build/transaction/shared/TweakedTransaction.js.map +1 -0
  626. package/build/transaction/utils/WitnessUtils.d.ts +7 -1
  627. package/build/transaction/utils/WitnessUtils.d.ts.map +1 -0
  628. package/build/transaction/utils/WitnessUtils.js +17 -3
  629. package/build/transaction/utils/WitnessUtils.js.map +1 -0
  630. package/build/tsconfig.build.tsbuildinfo +1 -1
  631. package/build/utils/BitcoinUtils.d.ts +19 -0
  632. package/build/utils/BitcoinUtils.d.ts.map +1 -0
  633. package/build/utils/BitcoinUtils.js +19 -0
  634. package/build/utils/BitcoinUtils.js.map +1 -0
  635. package/build/utils/BufferHelper.d.ts +2 -1
  636. package/build/utils/BufferHelper.d.ts.map +1 -0
  637. package/build/utils/BufferHelper.js +38 -32
  638. package/build/utils/BufferHelper.js.map +1 -0
  639. package/build/utils/StringToBuffer.d.ts +1 -0
  640. package/build/utils/StringToBuffer.d.ts.map +1 -0
  641. package/build/utils/StringToBuffer.js +1 -0
  642. package/build/utils/StringToBuffer.js.map +1 -0
  643. package/build/utils/lengths.d.ts +1 -0
  644. package/build/utils/lengths.d.ts.map +1 -0
  645. package/build/utils/lengths.js +1 -0
  646. package/build/utils/lengths.js.map +1 -0
  647. package/build/utils/types.d.ts +1 -0
  648. package/build/utils/types.d.ts.map +1 -0
  649. package/build/utils/types.js +2 -1
  650. package/build/utils/types.js.map +1 -0
  651. package/build/utxo/OPNetLimitedProvider.d.ts +39 -3
  652. package/build/utxo/OPNetLimitedProvider.d.ts.map +1 -0
  653. package/build/utxo/OPNetLimitedProvider.js +43 -5
  654. package/build/utxo/OPNetLimitedProvider.js.map +1 -0
  655. package/build/utxo/interfaces/BroadcastResponse.d.ts +1 -0
  656. package/build/utxo/interfaces/BroadcastResponse.d.ts.map +1 -0
  657. package/build/utxo/interfaces/BroadcastResponse.js +1 -0
  658. package/build/utxo/interfaces/BroadcastResponse.js.map +1 -0
  659. package/build/utxo/interfaces/IUTXO.d.ts +13 -7
  660. package/build/utxo/interfaces/IUTXO.d.ts.map +1 -0
  661. package/build/utxo/interfaces/IUTXO.js +1 -0
  662. package/build/utxo/interfaces/IUTXO.js.map +1 -0
  663. package/build/verification/TapscriptVerificator.d.ts +12 -10
  664. package/build/verification/TapscriptVerificator.d.ts.map +1 -0
  665. package/build/verification/TapscriptVerificator.js +28 -38
  666. package/build/verification/TapscriptVerificator.js.map +1 -0
  667. package/documentation/offline-transaction-signing.md +10 -8
  668. package/documentation/quantum-support/01-introduction.md +2 -2
  669. package/documentation/quantum-support/02-mnemonic-and-wallet.md +5 -3
  670. package/documentation/quantum-support/03-address-generation.md +6 -4
  671. package/documentation/quantum-support/04-message-signing.md +36 -43
  672. package/documentation/quantum-support/05-address-verification.md +13 -18
  673. package/documentation/quantum-support/README.md +1 -1
  674. package/documentation/transaction-building.md +9 -9
  675. package/eslint.config.js +0 -1
  676. package/package.json +16 -39
  677. package/src/_version.ts +1 -1
  678. package/src/abi/ABICoder.ts +131 -154
  679. package/src/abi/ABIDataTypes.ts +45 -0
  680. package/src/abi/AbiTypes.ts +183 -0
  681. package/src/abi/TupleUtils.ts +57 -0
  682. package/src/branded/Branded.ts +5 -0
  683. package/src/buffer/BinaryReader.ts +7 -7
  684. package/src/buffer/BinaryWriter.ts +29 -24
  685. package/src/bytecode/Compressor.ts +1 -1
  686. package/src/chain/ChainData.ts +36 -25
  687. package/src/consensus/ConsensusConfig.ts +1 -1
  688. package/src/consensus/IConsensusConfig.ts +0 -17
  689. package/src/consensus/metadata/RoswellConsensus.ts +1 -17
  690. package/src/crypto/crypto-browser.js +3 -4
  691. package/src/deterministic/AddressMap.ts +5 -1
  692. package/src/deterministic/AddressSet.ts +5 -1
  693. package/src/deterministic/CustomMap.ts +6 -2
  694. package/src/deterministic/DeterministicMap.ts +8 -4
  695. package/src/deterministic/DeterministicSet.ts +6 -2
  696. package/src/deterministic/ExtendedAddressMap.ts +9 -4
  697. package/src/deterministic/FastMap.ts +9 -5
  698. package/src/ecc/backend.ts +17 -0
  699. package/src/epoch/ChallengeSolution.ts +3 -3
  700. package/src/epoch/interfaces/IChallengeSolution.ts +13 -13
  701. package/src/epoch/validator/EpochValidator.ts +24 -43
  702. package/src/generators/AddressGenerator.ts +4 -7
  703. package/src/generators/Features.ts +3 -3
  704. package/src/generators/Generator.ts +42 -26
  705. package/src/generators/builders/CalldataGenerator.ts +26 -24
  706. package/src/generators/builders/CustomGenerator.ts +4 -4
  707. package/src/generators/builders/DeploymentGenerator.ts +25 -23
  708. package/src/generators/builders/HashCommitmentGenerator.ts +31 -31
  709. package/src/generators/builders/LegacyCalldataGenerator.ts +26 -24
  710. package/src/generators/builders/MultiSignGenerator.ts +12 -12
  711. package/src/generators/builders/P2WDAGenerator.ts +10 -10
  712. package/src/keypair/Address.ts +115 -72
  713. package/src/keypair/AddressVerificator.ts +14 -148
  714. package/src/keypair/EcKeyPair.ts +110 -111
  715. package/src/keypair/MessageSigner.ts +70 -150
  716. package/src/keypair/Wallet.ts +56 -241
  717. package/src/metadata/ContractBaseMetadata.ts +2 -2
  718. package/src/mnemonic/Mnemonic.ts +31 -222
  719. package/src/opnet.ts +15 -6
  720. package/src/p2wda/P2WDADetector.ts +23 -72
  721. package/src/polyfill/disposable.ts +29 -0
  722. package/src/signer/AddressRotation.ts +1 -1
  723. package/src/signer/IRotationSigner.ts +3 -3
  724. package/src/signer/ParallelSignerAdapter.ts +59 -0
  725. package/src/signer/SignerUtils.ts +4 -4
  726. package/src/signer/TweakedSigner.ts +26 -14
  727. package/src/transaction/ContractAddress.ts +3 -7
  728. package/src/transaction/TransactionFactory.ts +38 -53
  729. package/src/transaction/browser/BrowserSignerBase.ts +12 -6
  730. package/src/transaction/browser/Web3Provider.ts +3 -3
  731. package/src/transaction/browser/extensions/UnisatSigner.ts +52 -48
  732. package/src/transaction/browser/extensions/XverseSigner.ts +55 -38
  733. package/src/transaction/browser/types/OPWallet.ts +2 -2
  734. package/src/transaction/browser/types/Unisat.ts +1 -1
  735. package/src/transaction/builders/CancelTransaction.ts +59 -24
  736. package/src/transaction/builders/ChallengeSolutionTransaction.ts +3 -3
  737. package/src/transaction/builders/ConsolidatedInteractionTransaction.ts +39 -34
  738. package/src/transaction/builders/CustomScriptTransaction.ts +79 -56
  739. package/src/transaction/builders/DeploymentTransaction.ts +82 -63
  740. package/src/transaction/builders/FundingTransaction.ts +53 -12
  741. package/src/transaction/builders/InteractionTransaction.ts +10 -10
  742. package/src/transaction/builders/InteractionTransactionP2WDA.ts +38 -40
  743. package/src/transaction/builders/MultiSignTransaction.ts +68 -61
  744. package/src/transaction/builders/SharedInteractionTransaction.ts +81 -57
  745. package/src/transaction/builders/TransactionBuilder.ts +159 -255
  746. package/src/transaction/interfaces/ICancelTransactionParameters.ts +2 -2
  747. package/src/transaction/interfaces/IConsolidatedTransactionParameters.ts +5 -5
  748. package/src/transaction/interfaces/ICustomTransactionParameters.ts +5 -5
  749. package/src/transaction/interfaces/ITransactionParameters.ts +28 -15
  750. package/src/transaction/interfaces/ITransactionResponses.ts +2 -2
  751. package/src/transaction/interfaces/ITweakedTransactionData.ts +17 -8
  752. package/src/transaction/interfaces/IWeb3ProviderTypes.ts +3 -3
  753. package/src/transaction/interfaces/Tap.ts +3 -3
  754. package/src/transaction/mineable/IP2WSHAddress.ts +1 -1
  755. package/src/transaction/mineable/TimelockGenerator.ts +19 -12
  756. package/src/transaction/offline/OfflineTransactionManager.ts +22 -23
  757. package/src/transaction/offline/TransactionReconstructor.ts +83 -91
  758. package/src/transaction/offline/TransactionSerializer.ts +151 -101
  759. package/src/transaction/offline/TransactionStateCapture.ts +83 -79
  760. package/src/transaction/offline/interfaces/ISerializableState.ts +1 -1
  761. package/src/transaction/offline/interfaces/ITypeSpecificData.ts +1 -1
  762. package/src/transaction/shared/P2TR_MS.ts +4 -4
  763. package/src/transaction/shared/TweakedTransaction.ts +318 -125
  764. package/src/transaction/utils/WitnessUtils.ts +18 -9
  765. package/src/utils/BufferHelper.ts +39 -37
  766. package/src/utxo/OPNetLimitedProvider.ts +9 -9
  767. package/src/utxo/interfaces/IUTXO.ts +7 -7
  768. package/src/verification/TapscriptVerificator.ts +73 -86
  769. package/test/add-refund-output.test.ts +535 -0
  770. package/test/address-rotation.test.ts +24 -24
  771. package/test/address.test.ts +12 -12
  772. package/test/addressmap.test.ts +30 -30
  773. package/test/binary-reader-writer.test.ts +8 -8
  774. package/test/browser/offline-transaction.test.ts +2206 -0
  775. package/test/browser/parallel-signing.test.ts +316 -0
  776. package/test/browser/setup.ts +11 -0
  777. package/test/browser/transaction-signing.test.ts +416 -0
  778. package/test/buffer-helper.test.ts +287 -0
  779. package/test/derivePath.test.ts +4 -3
  780. package/test/disposable.test.ts +279 -0
  781. package/test/fastmap-setall.test.ts +1 -1
  782. package/test/fastmap.test.ts +3 -3
  783. package/test/messagesigner-mldsa.test.ts +3 -3
  784. package/test/messagesigner-schnorr.test.ts +9 -9
  785. package/test/offline-transaction.test.ts +461 -288
  786. package/test/old/FastBigIntMap.ts +3 -3
  787. package/test/oldfastmap.test.ts +6 -6
  788. package/test/transaction-builders.test.ts +482 -0
  789. package/tsconfig.base.json +34 -18
  790. package/tsconfig.browser.json +15 -0
  791. package/tsconfig.json +3 -8
  792. package/vite.config.browser.ts +4 -5
  793. package/vitest.config.browser.ts +68 -0
  794. package/vitest.config.ts +1 -1
  795. package/browser/valibot.js +0 -4948
  796. package/tsconfig.webpack.json +0 -18
@@ -0,0 +1,25 @@
1
+ import { ABIDataTypes } from './ABIDataTypes.js';
2
+ import type { AbiType } from './AbiTypes.js';
3
+ /**
4
+ * Type guard: returns true if the ABI type is a tuple (ordered array of types).
5
+ */
6
+ export declare function isAbiTuple(type: AbiType): type is AbiType[];
7
+ /**
8
+ * Type guard: returns true if the ABI type is a struct (named fields).
9
+ */
10
+ export declare function isAbiStruct(type: AbiType): type is {
11
+ [field: string]: AbiType;
12
+ };
13
+ /**
14
+ * Type guard: returns true if the ABI type is a simple ABIDataTypes enum value.
15
+ */
16
+ export declare function isSimpleAbiType(type: AbiType): type is ABIDataTypes;
17
+ /**
18
+ * Converts a structured AbiType into a canonical selector string.
19
+ * - Simple: ABIDataTypes.ADDRESS → "address"
20
+ * - Struct: { a: ADDRESS, b: UINT256 } → "tuple(address,uint256)" (inline, no [])
21
+ * - Single-element tuple: [UINT256] → "uint256[]"
22
+ * - Multi-element tuple: [ADDRESS, UINT256] → "tuple(address,uint256)[]"
23
+ */
24
+ export declare function abiTypeToSelectorString(type: AbiType): string;
25
+ //# sourceMappingURL=TupleUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TupleUtils.d.ts","sourceRoot":"","sources":["../../src/abi/TupleUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAG7C;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,OAAO,EAAE,CAE3D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAE/E;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,YAAY,CAEnE;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAwB7D"}
@@ -0,0 +1,50 @@
1
+ import { ABIDataTypes } from './ABIDataTypes.js';
2
+ import { AbiTypeToStr } from './AbiTypes.js';
3
+ /**
4
+ * Type guard: returns true if the ABI type is a tuple (ordered array of types).
5
+ */
6
+ export function isAbiTuple(type) {
7
+ return Array.isArray(type);
8
+ }
9
+ /**
10
+ * Type guard: returns true if the ABI type is a struct (named fields).
11
+ */
12
+ export function isAbiStruct(type) {
13
+ return typeof type === 'object' && type !== null && !Array.isArray(type);
14
+ }
15
+ /**
16
+ * Type guard: returns true if the ABI type is a simple ABIDataTypes enum value.
17
+ */
18
+ export function isSimpleAbiType(type) {
19
+ return typeof type === 'string';
20
+ }
21
+ /**
22
+ * Converts a structured AbiType into a canonical selector string.
23
+ * - Simple: ABIDataTypes.ADDRESS → "address"
24
+ * - Struct: { a: ADDRESS, b: UINT256 } → "tuple(address,uint256)" (inline, no [])
25
+ * - Single-element tuple: [UINT256] → "uint256[]"
26
+ * - Multi-element tuple: [ADDRESS, UINT256] → "tuple(address,uint256)[]"
27
+ */
28
+ export function abiTypeToSelectorString(type) {
29
+ if (isSimpleAbiType(type)) {
30
+ const str = AbiTypeToStr[type];
31
+ if (!str) {
32
+ throw new Error(`Unknown ABI type: ${type}`);
33
+ }
34
+ return str;
35
+ }
36
+ // Struct: inline tuple (no [] suffix)
37
+ if (isAbiStruct(type)) {
38
+ const inner = Object.values(type).map((t) => abiTypeToSelectorString(t)).join(',');
39
+ return `tuple(${inner})`;
40
+ }
41
+ // Single-element tuple: unwrap to "type[]"
42
+ const firstType = type[0];
43
+ if (type.length === 1 && firstType !== undefined) {
44
+ return `${abiTypeToSelectorString(firstType)}[]`;
45
+ }
46
+ // Multi-element tuple: "tuple(types...)[]"
47
+ const inner = type.map((t) => abiTypeToSelectorString(t)).join(',');
48
+ return `tuple(${inner})[]`;
49
+ }
50
+ //# sourceMappingURL=TupleUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TupleUtils.js","sourceRoot":"","sources":["../../src/abi/TupleUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,IAAa;IACpC,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,IAAa;IACrC,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC7E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,IAAa;IACzC,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC;AACpC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAAa;IACjD,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,GAAG,EAAE,CAAC;YACP,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,GAAG,CAAC;IACf,CAAC;IAED,sCAAsC;IACtC,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;QACpB,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnF,OAAO,SAAS,KAAK,GAAG,CAAC;IAC7B,CAAC;IAED,2CAA2C;IAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAC1B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC/C,OAAO,GAAG,uBAAuB,CAAC,SAAS,CAAC,IAAI,CAAC;IACrD,CAAC;IAED,2CAA2C;IAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpE,OAAO,SAAS,KAAK,KAAK,CAAC;AAC/B,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Brand } from '@btc-vision/ecpair';
2
+ export type MLDSAHashedPublicKey = Brand<Uint8Array, 'MLDSAHashedPublicKey'>;
3
+ export type HybridPublicKey = Brand<Uint8Array, 'HybridPublicKey'>;
4
+ //# sourceMappingURL=Branded.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Branded.d.ts","sourceRoot":"","sources":["../../src/branded/Branded.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAEhD,MAAM,MAAM,oBAAoB,GAAG,KAAK,CAAC,UAAU,EAAE,sBAAsB,CAAC,CAAC;AAE7E,MAAM,MAAM,eAAe,GAAG,KAAK,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Branded.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Branded.js","sourceRoot":"","sources":["../../src/branded/Branded.ts"],"names":[],"mappings":""}
@@ -1,42 +1,138 @@
1
1
  import { AddressMap } from '../deterministic/AddressMap.js';
2
2
  import { ExtendedAddressMap } from '../deterministic/ExtendedAddressMap.js';
3
3
  import { Address } from '../keypair/Address.js';
4
- import { BufferLike, i16, i32, i64, i8, Selector, u16, u32, u8 } from '../utils/types.js';
4
+ import type { BufferLike, i16, i32, i64, i8, Selector, u16, u32, u8 } from '../utils/types.js';
5
+ /**
6
+ * Represents a Schnorr signature paired with the signer's Address.
7
+ * This class bundles a 64-byte Schnorr signature with its associated
8
+ * full Address (both MLDSA and tweaked keys), providing a complete signed data structure
9
+ * for Bitcoin Taproot-compatible signatures.
10
+ */
5
11
  export interface SchnorrSignature {
12
+ /** The signer's Address containing both MLDSA and tweaked public keys */
6
13
  readonly address: Address;
14
+ /** The 64-byte Schnorr signature */
7
15
  readonly signature: Uint8Array;
8
16
  }
9
17
  export declare class BinaryReader {
10
18
  private buffer;
11
19
  private currentOffset;
12
20
  constructor(bytes: BufferLike);
21
+ get byteLength(): number;
13
22
  static stringCompare(a: string, b: string): number;
14
23
  static bigintCompare(a: bigint, b: bigint): number;
15
24
  static numberCompare(a: number, b: number): number;
16
25
  setBuffer(bytes: BufferLike): void;
17
- get byteLength(): number;
18
26
  length(): number;
19
27
  bytesLeft(): number;
28
+ /**
29
+ * Reads a single signed byte (i8).
30
+ */
20
31
  readI8(): i8;
32
+ /**
33
+ * Reads a signed 16-bit integer. By default, big-endian.
34
+ * @param be - Endianness; true means big-endian (the default).
35
+ */
21
36
  readI16(be?: boolean): i16;
37
+ /**
38
+ * Reads a signed 32-bit integer. By default, big-endian.
39
+ * @param be - Endianness; true means big-endian (the default).
40
+ */
22
41
  readI32(be?: boolean): i32;
42
+ /**
43
+ * Reads a signed 64-bit integer. By default, big-endian.
44
+ * @param be - Endianness; true means big-endian (the default).
45
+ */
23
46
  readI64(be?: boolean): i64;
47
+ /**
48
+ * Reads a single unsigned byte (u8).
49
+ */
24
50
  readU8(): u8;
51
+ /**
52
+ * Reads an unsigned 16-bit integer. By default, big-endian.
53
+ * @param be - Endianness; true means big-endian (the default).
54
+ */
25
55
  readU16(be?: boolean): u16;
56
+ /**
57
+ * Reads an unsigned 32-bit integer. By default, big-endian.
58
+ * @param be - Endianness; true means big-endian (the default).
59
+ */
26
60
  readU32(be?: boolean): u32;
61
+ /**
62
+ * Reads an unsigned 64-bit integer. By default, big-endian.
63
+ * @param be - Endianness; true means big-endian (the default).
64
+ */
27
65
  readU64(be?: boolean): bigint;
66
+ /**
67
+ * Reads a 128-bit unsigned integer. By default, read big-endian.
68
+ * @param be - Endianness; true => big-endian (default).
69
+ */
28
70
  readU128(be?: boolean): bigint;
71
+ /**
72
+ * Reads a 256-bit unsigned integer. Same approach as readU128.
73
+ * @param be - Endianness; true => big-endian (default).
74
+ */
29
75
  readU256(be?: boolean): bigint;
76
+ /**
77
+ * Reads a 128-bit signed integer. Interpret the sign bit if big-endian.
78
+ * @param be - Endianness; true => big-endian (default).
79
+ */
30
80
  readI128(be?: boolean): bigint;
81
+ /**
82
+ * Read a boolean (u8 != 0).
83
+ */
31
84
  readBoolean(): boolean;
85
+ /**
86
+ * Reads 32 bits
87
+ */
32
88
  readSelector(): Selector;
89
+ /**
90
+ * Reads a raw sequence of bytes (length must be known).
91
+ * If zeroStop = true, stops if we encounter 0x00 early.
92
+ */
33
93
  readBytes(length: u32, zeroStop?: boolean): Uint8Array;
94
+ /**
95
+ * Reads a string of the given length in raw bytes. By default, do NOT zero-stop
96
+ * (matching how we wrote the raw bytes).
97
+ */
34
98
  readString(length: u32): string;
99
+ /**
100
+ * Reads a string that was written as [u16 length][raw bytes].
101
+ */
35
102
  readStringWithLength(be?: boolean): string;
103
+ /**
104
+ * Reads an address (32 bytes MLDSA key hash only).
105
+ */
36
106
  readAddress(): Address;
107
+ /**
108
+ * Reads the tweaked public key portion (32 bytes) and returns it as a raw Uint8Array.
109
+ * Use this when you only need the tweaked key without the full Address object.
110
+ */
37
111
  readTweakedPublicKey(): Uint8Array;
112
+ /**
113
+ * Reads a full address with both MLDSA key hash and tweaked public key (64 bytes total).
114
+ * Format: [32 bytes tweakedPublicKey][32 bytes MLDSA key hash]
115
+ *
116
+ * This is the equivalent of btc-runtime's readExtendedAddress().
117
+ *
118
+ * @returns An Address instance with both keys set
119
+ */
38
120
  readExtendedAddress(): Address;
121
+ /**
122
+ * Reads a Schnorr signature with its associated full Address.
123
+ * Format: [64 bytes full Address][64 bytes signature]
124
+ *
125
+ * Used for deserializing signed data where both the signer's address
126
+ * and their Schnorr signature are stored together.
127
+ *
128
+ * @returns A SchnorrSignature containing the address and signature
129
+ */
39
130
  readSchnorrSignature(): SchnorrSignature;
131
+ /**
132
+ * Reads bytes written as [u32 length][bytes].
133
+ * @param maxLength if > 0, enforces an upper bound
134
+ * @param be
135
+ */
40
136
  readBytesWithLength(maxLength?: number, be?: boolean): Uint8Array;
41
137
  readArrayOfBuffer(be?: boolean): Uint8Array[];
42
138
  readAddressArray(be?: boolean): Address[];
@@ -48,12 +144,35 @@ export declare class BinaryReader {
48
144
  readU8Array(): u8[];
49
145
  readStringArray(be?: boolean): string[];
50
146
  readBytesArray(be?: boolean): Uint8Array[];
147
+ /**
148
+ * Reads [u16 length][ (address, u256) pairs ].
149
+ */
51
150
  readAddressValueTuple(be?: boolean): AddressMap<bigint>;
151
+ /**
152
+ * Reads an array of full addresses (64 bytes each).
153
+ * Format: [u16 length][FullAddress 0][FullAddress 1]...
154
+ */
52
155
  readExtendedAddressArray(be?: boolean): Address[];
156
+ /**
157
+ * Reads a map of full Address -> u256 using the tweaked key for map lookup.
158
+ * Format: [u16 length][FullAddress key][u256 value]...
159
+ *
160
+ * This is the equivalent of btc-runtime's readExtendedAddressMapU256().
161
+ */
53
162
  readExtendedAddressMapU256(be?: boolean): ExtendedAddressMap<bigint>;
54
163
  getOffset(): u16;
55
164
  setOffset(offset: u16): void;
165
+ /**
166
+ * Verifies we have enough bytes in the buffer to read up to `size`.
167
+ */
56
168
  verifyEnd(size: number): void;
169
+ /**
170
+ * Utility: reverses a byte array in-place or returns a reversed copy.
171
+ */
57
172
  private reverseBytes;
173
+ /**
174
+ * Utility: turn bytes into a hex string without `0x` prefix.
175
+ */
58
176
  private toHexString;
59
177
  }
178
+ //# sourceMappingURL=BinaryReader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BinaryReader.d.ts","sourceRoot":"","sources":["../../src/buffer/BinaryReader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAiBhD,OAAO,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AAE/F;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC7B,yEAAyE;IACzE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,oCAAoC;IACpC,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;CAClC;AAED,qBAAa,YAAY;IACrB,OAAO,CAAC,MAAM,CAAW;IACzB,OAAO,CAAC,aAAa,CAAa;gBAEtB,KAAK,EAAE,UAAU;IAI7B,IAAW,UAAU,IAAI,MAAM,CAE9B;WAGa,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM;WAI3C,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM;WAM3C,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM;IAMlD,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAKlC,MAAM,IAAI,MAAM;IAIhB,SAAS,IAAI,MAAM;IAM1B;;OAEG;IACI,MAAM,IAAI,EAAE;IAOnB;;;OAGG;IACI,OAAO,CAAC,EAAE,GAAE,OAAc,GAAG,GAAG;IAOvC;;;OAGG;IACI,OAAO,CAAC,EAAE,GAAE,OAAc,GAAG,GAAG;IAOvC;;;OAGG;IACI,OAAO,CAAC,EAAE,GAAE,OAAc,GAAG,GAAG;IASvC;;OAEG;IACI,MAAM,IAAI,EAAE;IAOnB;;;OAGG;IACI,OAAO,CAAC,EAAE,GAAE,OAAc,GAAG,GAAG;IAOvC;;;OAGG;IACI,OAAO,CAAC,EAAE,GAAE,OAAc,GAAG,GAAG;IAOvC;;;OAGG;IACI,OAAO,CAAC,EAAE,GAAE,OAAc,GAAG,MAAM;IAO1C;;;OAGG;IACI,QAAQ,CAAC,EAAE,GAAE,OAAc,GAAG,MAAM;IAU3C;;;OAGG;IACI,QAAQ,CAAC,EAAE,GAAE,OAAc,GAAG,MAAM;IAS3C;;;OAGG;IACI,QAAQ,CAAC,EAAE,GAAE,OAAc,GAAG,MAAM;IAqB3C;;OAEG;IACI,WAAW,IAAI,OAAO;IAI7B;;OAEG;IACI,YAAY,IAAI,QAAQ;IAI/B;;;OAGG;IACI,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,GAAE,OAAe,GAAG,UAAU;IAepE;;;OAGG;IACI,UAAU,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM;IAMtC;;OAEG;IACI,oBAAoB,CAAC,EAAE,GAAE,OAAc,GAAG,MAAM;IAKvD;;OAEG;IACI,WAAW,IAAI,OAAO;IAK7B;;;OAGG;IACI,oBAAoB,IAAI,UAAU;IAKzC;;;;;;;OAOG;IACI,mBAAmB,IAAI,OAAO;IAYrC;;;;;;;;OAQG;IACI,oBAAoB,IAAI,gBAAgB;IAW/C;;;;OAIG;IACI,mBAAmB,CAAC,SAAS,GAAE,MAAU,EAAE,EAAE,GAAE,OAAc,GAAG,UAAU;IAW1E,iBAAiB,CAAC,EAAE,GAAE,OAAc,GAAG,UAAU,EAAE;IASnD,gBAAgB,CAAC,EAAE,GAAE,OAAc,GAAG,OAAO,EAAE;IAS/C,aAAa,CAAC,EAAE,GAAE,OAAc,GAAG,MAAM,EAAE;IAS3C,aAAa,CAAC,EAAE,GAAE,OAAc,GAAG,MAAM,EAAE;IAS3C,YAAY,CAAC,EAAE,GAAE,OAAc,GAAG,MAAM,EAAE;IAS1C,YAAY,CAAC,EAAE,GAAE,OAAc,GAAG,GAAG,EAAE;IASvC,YAAY,CAAC,EAAE,GAAE,OAAc,GAAG,GAAG,EAAE;IASvC,WAAW,IAAI,EAAE,EAAE;IASnB,eAAe,CAAC,EAAE,GAAE,OAAc,GAAG,MAAM,EAAE;IAS7C,cAAc,CAAC,EAAE,GAAE,OAAc,GAAG,UAAU,EAAE;IASvD;;OAEG;IACI,qBAAqB,CAAC,EAAE,GAAE,OAAc,GAAG,UAAU,CAAC,MAAM,CAAC;IAgBpE;;;OAGG;IACI,wBAAwB,CAAC,EAAE,GAAE,OAAc,GAAG,OAAO,EAAE;IAS9D;;;;;OAKG;IACI,0BAA0B,CAAC,EAAE,GAAE,OAAc,GAAG,kBAAkB,CAAC,MAAM,CAAC;IAmB1E,SAAS,IAAI,GAAG;IAIhB,SAAS,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI;IAInC;;OAEG;IACI,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAQpC;;OAEG;IACH,OAAO,CAAC,YAAY;IAQpB;;OAEG;IACH,OAAO,CAAC,WAAW;CAGtB"}
@@ -3,10 +3,15 @@ import { ExtendedAddressMap } from '../deterministic/ExtendedAddressMap.js';
3
3
  import { Address } from '../keypair/Address.js';
4
4
  import { ADDRESS_BYTE_LENGTH, EXTENDED_ADDRESS_BYTE_LENGTH, I128_BYTE_LENGTH, I16_BYTE_LENGTH, I32_BYTE_LENGTH, I64_BYTE_LENGTH, I8_BYTE_LENGTH, SCHNORR_SIGNATURE_BYTE_LENGTH, U128_BYTE_LENGTH, U16_BYTE_LENGTH, U256_BYTE_LENGTH, U32_BYTE_LENGTH, U64_BYTE_LENGTH, U8_BYTE_LENGTH, } from '../utils/lengths.js';
5
5
  export class BinaryReader {
6
+ buffer;
7
+ currentOffset = 0;
6
8
  constructor(bytes) {
7
- this.currentOffset = 0;
8
9
  this.buffer = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
9
10
  }
11
+ get byteLength() {
12
+ return this.buffer.byteLength;
13
+ }
14
+ // Helpers for comparisons; unchanged
10
15
  static stringCompare(a, b) {
11
16
  return a.localeCompare(b);
12
17
  }
@@ -28,71 +33,109 @@ export class BinaryReader {
28
33
  this.buffer = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
29
34
  this.currentOffset = 0;
30
35
  }
31
- get byteLength() {
32
- return this.buffer.byteLength;
33
- }
34
36
  length() {
35
37
  return this.buffer.byteLength;
36
38
  }
37
39
  bytesLeft() {
38
40
  return this.buffer.byteLength - this.currentOffset;
39
41
  }
42
+ // ------------------- Signed Integer Readers ------------------- //
43
+ /**
44
+ * Reads a single signed byte (i8).
45
+ */
40
46
  readI8() {
41
47
  this.verifyEnd(this.currentOffset + I8_BYTE_LENGTH);
42
48
  const value = this.buffer.getInt8(this.currentOffset);
43
49
  this.currentOffset += I8_BYTE_LENGTH;
44
50
  return value;
45
51
  }
52
+ /**
53
+ * Reads a signed 16-bit integer. By default, big-endian.
54
+ * @param be - Endianness; true means big-endian (the default).
55
+ */
46
56
  readI16(be = true) {
47
57
  this.verifyEnd(this.currentOffset + I16_BYTE_LENGTH);
48
58
  const value = this.buffer.getInt16(this.currentOffset, !be);
49
59
  this.currentOffset += I16_BYTE_LENGTH;
50
60
  return value;
51
61
  }
62
+ /**
63
+ * Reads a signed 32-bit integer. By default, big-endian.
64
+ * @param be - Endianness; true means big-endian (the default).
65
+ */
52
66
  readI32(be = true) {
53
67
  this.verifyEnd(this.currentOffset + I32_BYTE_LENGTH);
54
68
  const value = this.buffer.getInt32(this.currentOffset, !be);
55
69
  this.currentOffset += I32_BYTE_LENGTH;
56
70
  return value;
57
71
  }
72
+ /**
73
+ * Reads a signed 64-bit integer. By default, big-endian.
74
+ * @param be - Endianness; true means big-endian (the default).
75
+ */
58
76
  readI64(be = true) {
59
77
  this.verifyEnd(this.currentOffset + I64_BYTE_LENGTH);
60
78
  const value = this.buffer.getBigInt64(this.currentOffset, !be);
61
79
  this.currentOffset += I64_BYTE_LENGTH;
62
80
  return value;
63
81
  }
82
+ // ------------------- Unsigned Integer Readers ------------------- //
83
+ /**
84
+ * Reads a single unsigned byte (u8).
85
+ */
64
86
  readU8() {
65
87
  this.verifyEnd(this.currentOffset + U8_BYTE_LENGTH);
66
88
  const value = this.buffer.getUint8(this.currentOffset);
67
89
  this.currentOffset += U8_BYTE_LENGTH;
68
90
  return value;
69
91
  }
92
+ /**
93
+ * Reads an unsigned 16-bit integer. By default, big-endian.
94
+ * @param be - Endianness; true means big-endian (the default).
95
+ */
70
96
  readU16(be = true) {
71
97
  this.verifyEnd(this.currentOffset + U16_BYTE_LENGTH);
72
98
  const value = this.buffer.getUint16(this.currentOffset, !be);
73
99
  this.currentOffset += U16_BYTE_LENGTH;
74
100
  return value;
75
101
  }
102
+ /**
103
+ * Reads an unsigned 32-bit integer. By default, big-endian.
104
+ * @param be - Endianness; true means big-endian (the default).
105
+ */
76
106
  readU32(be = true) {
77
107
  this.verifyEnd(this.currentOffset + U32_BYTE_LENGTH);
78
108
  const value = this.buffer.getUint32(this.currentOffset, !be);
79
109
  this.currentOffset += U32_BYTE_LENGTH;
80
110
  return value;
81
111
  }
112
+ /**
113
+ * Reads an unsigned 64-bit integer. By default, big-endian.
114
+ * @param be - Endianness; true means big-endian (the default).
115
+ */
82
116
  readU64(be = true) {
83
117
  this.verifyEnd(this.currentOffset + U64_BYTE_LENGTH);
84
118
  const value = this.buffer.getBigUint64(this.currentOffset, !be);
85
119
  this.currentOffset += U64_BYTE_LENGTH;
86
120
  return value;
87
121
  }
122
+ /**
123
+ * Reads a 128-bit unsigned integer. By default, read big-endian.
124
+ * @param be - Endianness; true => big-endian (default).
125
+ */
88
126
  readU128(be = true) {
89
127
  const raw = this.readBytes(U128_BYTE_LENGTH);
90
128
  let bytes = raw;
129
+ // If data was written in little-endian, we reverse before interpreting
91
130
  if (!be) {
92
131
  bytes = this.reverseBytes(raw);
93
132
  }
94
133
  return BigInt('0x' + this.toHexString(bytes));
95
134
  }
135
+ /**
136
+ * Reads a 256-bit unsigned integer. Same approach as readU128.
137
+ * @param be - Endianness; true => big-endian (default).
138
+ */
96
139
  readU256(be = true) {
97
140
  const raw = this.readBytes(U256_BYTE_LENGTH);
98
141
  let bytes = raw;
@@ -101,26 +144,44 @@ export class BinaryReader {
101
144
  }
102
145
  return BigInt('0x' + this.toHexString(bytes));
103
146
  }
147
+ /**
148
+ * Reads a 128-bit signed integer. Interpret the sign bit if big-endian.
149
+ * @param be - Endianness; true => big-endian (default).
150
+ */
104
151
  readI128(be = true) {
105
152
  const raw = this.readBytes(I128_BYTE_LENGTH);
106
153
  let bytes = raw;
107
154
  if (!be) {
108
155
  bytes = this.reverseBytes(raw);
109
156
  }
157
+ // Construct as a 128-bit two's complement
110
158
  let value = BigInt('0x' + this.toHexString(bytes));
159
+ // If the top bit is set (sign bit in big-endian), interpret negative
111
160
  const signBitMask = 0x80;
112
161
  if (bytes[0] & signBitMask) {
162
+ // (1 << 128)
113
163
  const twoTo128 = BigInt(1) << BigInt(128);
164
+ // 2's complement
114
165
  value = value - twoTo128;
115
166
  }
116
167
  return value;
117
168
  }
169
+ /**
170
+ * Read a boolean (u8 != 0).
171
+ */
118
172
  readBoolean() {
119
173
  return this.readU8() !== 0;
120
174
  }
175
+ /**
176
+ * Reads 32 bits
177
+ */
121
178
  readSelector() {
122
179
  return this.readU32(true);
123
180
  }
181
+ /**
182
+ * Reads a raw sequence of bytes (length must be known).
183
+ * If zeroStop = true, stops if we encounter 0x00 early.
184
+ */
124
185
  readBytes(length, zeroStop = false) {
125
186
  this.verifyEnd(this.currentOffset + length);
126
187
  let bytes = new Uint8Array(length);
@@ -134,35 +195,73 @@ export class BinaryReader {
134
195
  }
135
196
  return bytes;
136
197
  }
198
+ /**
199
+ * Reads a string of the given length in raw bytes. By default, do NOT zero-stop
200
+ * (matching how we wrote the raw bytes).
201
+ */
137
202
  readString(length) {
138
203
  const textDecoder = new TextDecoder();
139
204
  const bytes = this.readBytes(length, false);
140
205
  return textDecoder.decode(bytes);
141
206
  }
207
+ /**
208
+ * Reads a string that was written as [u16 length][raw bytes].
209
+ */
142
210
  readStringWithLength(be = true) {
143
211
  const length = this.readU32(be);
144
212
  return this.readString(length);
145
213
  }
214
+ /**
215
+ * Reads an address (32 bytes MLDSA key hash only).
216
+ */
146
217
  readAddress() {
147
218
  const bytes = Array.from(this.readBytes(ADDRESS_BYTE_LENGTH));
148
219
  return new Address(bytes);
149
220
  }
221
+ /**
222
+ * Reads the tweaked public key portion (32 bytes) and returns it as a raw Uint8Array.
223
+ * Use this when you only need the tweaked key without the full Address object.
224
+ */
150
225
  readTweakedPublicKey() {
151
226
  this.verifyEnd(this.currentOffset + ADDRESS_BYTE_LENGTH);
152
227
  return this.readBytes(ADDRESS_BYTE_LENGTH);
153
228
  }
229
+ /**
230
+ * Reads a full address with both MLDSA key hash and tweaked public key (64 bytes total).
231
+ * Format: [32 bytes tweakedPublicKey][32 bytes MLDSA key hash]
232
+ *
233
+ * This is the equivalent of btc-runtime's readExtendedAddress().
234
+ *
235
+ * @returns An Address instance with both keys set
236
+ */
154
237
  readExtendedAddress() {
155
238
  this.verifyEnd(this.currentOffset + EXTENDED_ADDRESS_BYTE_LENGTH);
239
+ // Read tweaked public key first (32 bytes)
156
240
  const tweakedPublicKey = Array.from(this.readBytes(ADDRESS_BYTE_LENGTH));
241
+ // Read MLDSA key hash (32 bytes)
157
242
  const mldsaKeyHash = Array.from(this.readBytes(ADDRESS_BYTE_LENGTH));
158
243
  return new Address(mldsaKeyHash, tweakedPublicKey);
159
244
  }
245
+ /**
246
+ * Reads a Schnorr signature with its associated full Address.
247
+ * Format: [64 bytes full Address][64 bytes signature]
248
+ *
249
+ * Used for deserializing signed data where both the signer's address
250
+ * and their Schnorr signature are stored together.
251
+ *
252
+ * @returns A SchnorrSignature containing the address and signature
253
+ */
160
254
  readSchnorrSignature() {
161
255
  this.verifyEnd(this.currentOffset + EXTENDED_ADDRESS_BYTE_LENGTH + SCHNORR_SIGNATURE_BYTE_LENGTH);
162
256
  const address = this.readExtendedAddress();
163
257
  const signature = this.readBytes(SCHNORR_SIGNATURE_BYTE_LENGTH);
164
258
  return { address, signature };
165
259
  }
260
+ /**
261
+ * Reads bytes written as [u32 length][bytes].
262
+ * @param maxLength if > 0, enforces an upper bound
263
+ * @param be
264
+ */
166
265
  readBytesWithLength(maxLength = 0, be = true) {
167
266
  const length = this.readU32(be);
168
267
  if (maxLength > 0 && length > maxLength) {
@@ -170,6 +269,7 @@ export class BinaryReader {
170
269
  }
171
270
  return this.readBytes(length);
172
271
  }
272
+ // ------------------ Array readers ------------------ //
173
273
  readArrayOfBuffer(be = true) {
174
274
  const length = this.readU16(be);
175
275
  const result = new Array(length);
@@ -227,7 +327,7 @@ export class BinaryReader {
227
327
  return result;
228
328
  }
229
329
  readU8Array() {
230
- const length = this.readU16(true);
330
+ const length = this.readU16(true); // by default big-endian
231
331
  const result = new Array(length);
232
332
  for (let i = 0; i < length; i++) {
233
333
  result[i] = this.readU8();
@@ -250,6 +350,9 @@ export class BinaryReader {
250
350
  }
251
351
  return result;
252
352
  }
353
+ /**
354
+ * Reads [u16 length][ (address, u256) pairs ].
355
+ */
253
356
  readAddressValueTuple(be = true) {
254
357
  const length = this.readU16(be);
255
358
  const result = new AddressMap();
@@ -263,6 +366,10 @@ export class BinaryReader {
263
366
  }
264
367
  return result;
265
368
  }
369
+ /**
370
+ * Reads an array of full addresses (64 bytes each).
371
+ * Format: [u16 length][FullAddress 0][FullAddress 1]...
372
+ */
266
373
  readExtendedAddressArray(be = true) {
267
374
  const length = this.readU16(be);
268
375
  const result = new Array(length);
@@ -271,6 +378,12 @@ export class BinaryReader {
271
378
  }
272
379
  return result;
273
380
  }
381
+ /**
382
+ * Reads a map of full Address -> u256 using the tweaked key for map lookup.
383
+ * Format: [u16 length][FullAddress key][u256 value]...
384
+ *
385
+ * This is the equivalent of btc-runtime's readExtendedAddressMapU256().
386
+ */
274
387
  readExtendedAddressMapU256(be = true) {
275
388
  const length = this.readU16(be);
276
389
  const result = new ExtendedAddressMap();
@@ -284,17 +397,24 @@ export class BinaryReader {
284
397
  }
285
398
  return result;
286
399
  }
400
+ // --------------------------------------------------- //
287
401
  getOffset() {
288
402
  return this.currentOffset;
289
403
  }
290
404
  setOffset(offset) {
291
405
  this.currentOffset = offset;
292
406
  }
407
+ /**
408
+ * Verifies we have enough bytes in the buffer to read up to `size`.
409
+ */
293
410
  verifyEnd(size) {
294
411
  if (size > this.buffer.byteLength) {
295
412
  throw new Error(`Attempt to read beyond buffer length: requested up to byte offset ${size}, but buffer is only ${this.buffer.byteLength} bytes.`);
296
413
  }
297
414
  }
415
+ /**
416
+ * Utility: reverses a byte array in-place or returns a reversed copy.
417
+ */
298
418
  reverseBytes(bytes) {
299
419
  const out = new Uint8Array(bytes.length);
300
420
  for (let i = 0; i < bytes.length; i++) {
@@ -302,7 +422,11 @@ export class BinaryReader {
302
422
  }
303
423
  return out;
304
424
  }
425
+ /**
426
+ * Utility: turn bytes into a hex string without `0x` prefix.
427
+ */
305
428
  toHexString(bytes) {
306
429
  return Array.from(bytes, (b) => b.toString(16).padStart(2, '0')).join('');
307
430
  }
308
431
  }
432
+ //# sourceMappingURL=BinaryReader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BinaryReader.js","sourceRoot":"","sources":["../../src/buffer/BinaryReader.ts"],"names":[],"mappings":"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"}