@btc-vision/transaction 1.8.6 → 1.8.7-beta.0

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 (692) hide show
  1. package/browser/index.js +1448 -1266
  2. package/browser/noble-curves.js +2179 -1307
  3. package/browser/noble-hashes.js +282 -261
  4. package/browser/rolldown-runtime.js +7 -7
  5. package/browser/src/_version.d.ts +1 -0
  6. package/browser/{abi → src/abi}/ABICoder.d.ts +0 -1
  7. package/browser/{abi → src/abi}/ABIDataTypes.d.ts +0 -1
  8. package/browser/{abi → src/abi}/AbiTypes.d.ts +0 -1
  9. package/browser/{abi → src/abi}/TupleUtils.d.ts +0 -1
  10. package/browser/{branded → src/branded}/Branded.d.ts +0 -1
  11. package/browser/{buffer → src/buffer}/BinaryReader.d.ts +0 -1
  12. package/browser/{buffer → src/buffer}/BinaryWriter.d.ts +0 -1
  13. package/browser/{bytecode → src/bytecode}/Compressor.d.ts +0 -1
  14. package/browser/{chain → src/chain}/ChainData.d.ts +1 -2
  15. package/browser/{consensus → src/consensus}/Consensus.d.ts +0 -1
  16. package/browser/{consensus → src/consensus}/ConsensusConfig.d.ts +0 -1
  17. package/browser/{consensus → src/consensus}/IConsensusConfig.d.ts +0 -1
  18. package/browser/{consensus → src/consensus}/metadata/RoswellConsensus.d.ts +0 -1
  19. package/browser/{crypto → src/crypto}/crypto.d.ts +1 -2
  20. package/browser/{deterministic → src/deterministic}/AddressMap.d.ts +0 -1
  21. package/browser/{deterministic → src/deterministic}/AddressSet.d.ts +0 -1
  22. package/browser/{deterministic → src/deterministic}/CustomMap.d.ts +0 -1
  23. package/browser/{deterministic → src/deterministic}/DeterministicMap.d.ts +0 -1
  24. package/browser/{deterministic → src/deterministic}/DeterministicSet.d.ts +0 -1
  25. package/browser/{deterministic → src/deterministic}/ExtendedAddressMap.d.ts +0 -1
  26. package/browser/{deterministic → src/deterministic}/FastMap.d.ts +0 -1
  27. package/browser/{ecc → src/ecc}/backend.d.ts +1 -2
  28. package/browser/{epoch → src/epoch}/ChallengeSolution.d.ts +0 -1
  29. package/browser/{epoch → src/epoch}/interfaces/IChallengeSolution.d.ts +0 -1
  30. package/browser/{epoch → src/epoch}/validator/EpochValidator.d.ts +0 -1
  31. package/browser/{event → src/event}/NetEvent.d.ts +0 -1
  32. package/browser/{generators → src/generators}/AddressGenerator.d.ts +1 -2
  33. package/browser/{generators → src/generators}/Features.d.ts +0 -1
  34. package/browser/{generators → src/generators}/Generator.d.ts +1 -2
  35. package/browser/{generators → src/generators}/MLDSAData.d.ts +1 -2
  36. package/browser/{generators → src/generators}/builders/CalldataGenerator.d.ts +1 -2
  37. package/browser/{generators → src/generators}/builders/CustomGenerator.d.ts +1 -2
  38. package/browser/{generators → src/generators}/builders/DeploymentGenerator.d.ts +1 -2
  39. package/browser/{generators → src/generators}/builders/HashCommitmentGenerator.d.ts +1 -2
  40. package/browser/{generators → src/generators}/builders/LegacyCalldataGenerator.d.ts +1 -2
  41. package/browser/{generators → src/generators}/builders/MultiSignGenerator.d.ts +1 -2
  42. package/browser/{generators → src/generators}/builders/P2WDAGenerator.d.ts +1 -2
  43. package/browser/{index.d.ts → src/index.d.ts} +0 -1
  44. package/browser/{keypair → src/keypair}/Address.d.ts +2 -3
  45. package/browser/{keypair → src/keypair}/AddressVerificator.d.ts +2 -3
  46. package/browser/{keypair → src/keypair}/EcKeyPair.d.ts +2 -3
  47. package/browser/{keypair → src/keypair}/MessageSigner.d.ts +2 -3
  48. package/browser/{keypair → src/keypair}/Secp256k1PointDeriver.d.ts +0 -1
  49. package/browser/{keypair → src/keypair}/Wallet.d.ts +2 -3
  50. package/browser/{keypair → src/keypair}/interfaces/IWallet.d.ts +0 -1
  51. package/browser/{metadata → src/metadata}/ContractBaseMetadata.d.ts +1 -2
  52. package/browser/{mnemonic → src/mnemonic}/BIPStandard.d.ts +0 -1
  53. package/browser/{mnemonic → src/mnemonic}/Mnemonic.d.ts +2 -3
  54. package/browser/{mnemonic → src/mnemonic}/MnemonicStrength.d.ts +0 -1
  55. package/browser/{network → src/network}/ChainId.d.ts +0 -1
  56. package/browser/{opnet.d.ts → src/opnet.d.ts} +2 -2
  57. package/browser/{p2wda → src/p2wda}/P2WDADetector.d.ts +1 -2
  58. package/browser/{polyfill → src/polyfill}/disposable.d.ts +0 -1
  59. package/browser/{signer → src/signer}/AddressRotation.d.ts +0 -1
  60. package/browser/{signer → src/signer}/IRotationSigner.d.ts +1 -2
  61. package/browser/{signer → src/signer}/ParallelSignerAdapter.d.ts +1 -2
  62. package/browser/{signer → src/signer}/SignerUtils.d.ts +1 -2
  63. package/browser/{signer → src/signer}/TweakedSigner.d.ts +1 -2
  64. package/browser/{transaction → src/transaction}/ContractAddress.d.ts +0 -1
  65. package/browser/{transaction → src/transaction}/TransactionFactory.d.ts +1 -2
  66. package/browser/{transaction → src/transaction}/browser/BrowserSignerBase.d.ts +1 -2
  67. package/browser/{transaction → src/transaction}/browser/WalletNetworks.d.ts +0 -1
  68. package/browser/{transaction → src/transaction}/browser/Web3Provider.d.ts +0 -1
  69. package/browser/{transaction → src/transaction}/browser/extensions/UnisatSigner.d.ts +1 -2
  70. package/browser/{transaction → src/transaction}/browser/extensions/XverseSigner.d.ts +1 -2
  71. package/browser/{transaction → src/transaction}/browser/types/OPWallet.d.ts +0 -1
  72. package/browser/{transaction → src/transaction}/browser/types/Unisat.d.ts +0 -1
  73. package/browser/{transaction → src/transaction}/browser/types/Xverse.d.ts +0 -1
  74. package/browser/{transaction → src/transaction}/builders/CancelTransaction.d.ts +1 -2
  75. package/browser/src/transaction/builders/ChallengeSolutionTransaction.d.ts +1 -0
  76. package/browser/{transaction → src/transaction}/builders/ConsolidatedInteractionTransaction.d.ts +0 -1
  77. package/browser/{transaction → src/transaction}/builders/CustomScriptTransaction.d.ts +1 -2
  78. package/browser/{transaction → src/transaction}/builders/DeploymentTransaction.d.ts +1 -2
  79. package/browser/{transaction → src/transaction}/builders/FundingTransaction.d.ts +1 -2
  80. package/browser/{transaction → src/transaction}/builders/InteractionTransaction.d.ts +1 -2
  81. package/browser/{transaction → src/transaction}/builders/InteractionTransactionP2WDA.d.ts +1 -2
  82. package/browser/{transaction → src/transaction}/builders/MultiSignTransaction.d.ts +1 -2
  83. package/browser/{transaction → src/transaction}/builders/SharedInteractionTransaction.d.ts +1 -2
  84. package/browser/{transaction → src/transaction}/builders/TransactionBuilder.d.ts +1 -2
  85. package/browser/{transaction → src/transaction}/enums/TransactionType.d.ts +0 -1
  86. package/browser/{transaction → src/transaction}/interfaces/ICancelTransactionParameters.d.ts +0 -1
  87. package/browser/{transaction → src/transaction}/interfaces/IConsolidatedTransactionParameters.d.ts +0 -1
  88. package/browser/{transaction → src/transaction}/interfaces/ICustomTransactionParameters.d.ts +1 -2
  89. package/browser/{transaction → src/transaction}/interfaces/ITransactionParameters.d.ts +1 -2
  90. package/browser/{transaction → src/transaction}/interfaces/ITransactionResponses.d.ts +0 -1
  91. package/browser/{transaction → src/transaction}/interfaces/ITweakedTransactionData.d.ts +2 -3
  92. package/browser/{transaction → src/transaction}/interfaces/IWeb3ProviderTypes.d.ts +1 -2
  93. package/browser/{transaction → src/transaction}/interfaces/Tap.d.ts +1 -2
  94. package/browser/src/transaction/mineable/CSVMultisigProvider.d.ts +102 -0
  95. package/browser/{transaction → src/transaction}/mineable/IP2WSHAddress.d.ts +0 -1
  96. package/browser/{transaction → src/transaction}/mineable/TimelockGenerator.d.ts +1 -2
  97. package/browser/{transaction → src/transaction}/offline/OfflineTransactionManager.d.ts +1 -2
  98. package/browser/{transaction → src/transaction}/offline/TransactionReconstructor.d.ts +2 -3
  99. package/browser/{transaction → src/transaction}/offline/TransactionSerializer.d.ts +0 -1
  100. package/browser/{transaction → src/transaction}/offline/TransactionStateCapture.d.ts +0 -1
  101. package/browser/{transaction → src/transaction}/offline/interfaces/ISerializableState.d.ts +0 -1
  102. package/browser/{transaction → src/transaction}/offline/interfaces/ITypeSpecificData.d.ts +0 -1
  103. package/browser/{transaction → src/transaction}/psbt/PSBTTypes.d.ts +0 -1
  104. package/browser/{transaction → src/transaction}/shared/P2MR_MS.d.ts +1 -2
  105. package/browser/{transaction → src/transaction}/shared/P2TR_MS.d.ts +1 -2
  106. package/browser/{transaction → src/transaction}/shared/TweakedTransaction.d.ts +21 -3
  107. package/browser/{transaction → src/transaction}/utils/WitnessUtils.d.ts +0 -1
  108. package/browser/{utils → src/utils}/BitcoinUtils.d.ts +0 -1
  109. package/browser/{utils → src/utils}/BufferHelper.d.ts +0 -1
  110. package/browser/{utils → src/utils}/StringToBuffer.d.ts +0 -1
  111. package/browser/{utils → src/utils}/lengths.d.ts +0 -1
  112. package/browser/{utils → src/utils}/types.d.ts +0 -1
  113. package/browser/{utxo → src/utxo}/OPNetLimitedProvider.d.ts +1 -2
  114. package/browser/{utxo → src/utxo}/interfaces/BroadcastResponse.d.ts +0 -1
  115. package/browser/{utxo → src/utxo}/interfaces/IUTXO.d.ts +0 -1
  116. package/browser/{verification → src/verification}/TapscriptVerificator.d.ts +1 -2
  117. package/browser/vendors.js +13 -13
  118. package/build/_version.d.ts +1 -2
  119. package/build/_version.js +1 -2
  120. package/build/abi/ABICoder.d.ts +0 -1
  121. package/build/abi/ABICoder.js +0 -1
  122. package/build/abi/ABIDataTypes.d.ts +0 -1
  123. package/build/abi/ABIDataTypes.js +0 -1
  124. package/build/abi/AbiTypes.d.ts +0 -1
  125. package/build/abi/AbiTypes.js +0 -1
  126. package/build/abi/TupleUtils.d.ts +0 -1
  127. package/build/abi/TupleUtils.js +0 -1
  128. package/build/branded/Branded.d.ts +0 -1
  129. package/build/branded/Branded.js +0 -1
  130. package/build/buffer/BinaryReader.d.ts +0 -1
  131. package/build/buffer/BinaryReader.js +0 -1
  132. package/build/buffer/BinaryWriter.d.ts +0 -1
  133. package/build/buffer/BinaryWriter.js +0 -1
  134. package/build/bytecode/Compressor.d.ts +0 -1
  135. package/build/bytecode/Compressor.js +0 -1
  136. package/build/chain/ChainData.d.ts +0 -1
  137. package/build/chain/ChainData.js +0 -1
  138. package/build/consensus/Consensus.d.ts +0 -1
  139. package/build/consensus/Consensus.js +0 -1
  140. package/build/consensus/ConsensusConfig.d.ts +0 -1
  141. package/build/consensus/ConsensusConfig.js +0 -1
  142. package/build/consensus/IConsensusConfig.d.ts +0 -1
  143. package/build/consensus/IConsensusConfig.js +0 -1
  144. package/build/consensus/metadata/RoswellConsensus.d.ts +0 -1
  145. package/build/consensus/metadata/RoswellConsensus.js +0 -1
  146. package/build/crypto/crypto.d.ts +0 -1
  147. package/build/crypto/crypto.js +0 -1
  148. package/build/deterministic/AddressMap.d.ts +0 -1
  149. package/build/deterministic/AddressMap.js +0 -1
  150. package/build/deterministic/AddressSet.d.ts +0 -1
  151. package/build/deterministic/AddressSet.js +0 -1
  152. package/build/deterministic/CustomMap.d.ts +0 -1
  153. package/build/deterministic/CustomMap.js +0 -1
  154. package/build/deterministic/DeterministicMap.d.ts +0 -1
  155. package/build/deterministic/DeterministicMap.js +0 -1
  156. package/build/deterministic/DeterministicSet.d.ts +0 -1
  157. package/build/deterministic/DeterministicSet.js +0 -1
  158. package/build/deterministic/ExtendedAddressMap.d.ts +0 -1
  159. package/build/deterministic/ExtendedAddressMap.js +0 -1
  160. package/build/deterministic/FastMap.d.ts +0 -1
  161. package/build/deterministic/FastMap.js +0 -1
  162. package/build/ecc/backend.d.ts +0 -1
  163. package/build/ecc/backend.js +0 -1
  164. package/build/epoch/ChallengeSolution.d.ts +0 -1
  165. package/build/epoch/ChallengeSolution.js +0 -1
  166. package/build/epoch/interfaces/IChallengeSolution.d.ts +0 -1
  167. package/build/epoch/interfaces/IChallengeSolution.js +0 -1
  168. package/build/epoch/validator/EpochValidator.d.ts +0 -1
  169. package/build/epoch/validator/EpochValidator.js +0 -1
  170. package/build/event/NetEvent.d.ts +0 -1
  171. package/build/event/NetEvent.js +0 -1
  172. package/build/generators/AddressGenerator.d.ts +0 -1
  173. package/build/generators/AddressGenerator.js +0 -1
  174. package/build/generators/Features.d.ts +0 -1
  175. package/build/generators/Features.js +0 -1
  176. package/build/generators/Generator.d.ts +0 -1
  177. package/build/generators/Generator.js +0 -1
  178. package/build/generators/MLDSAData.d.ts +0 -1
  179. package/build/generators/MLDSAData.js +0 -1
  180. package/build/generators/builders/CalldataGenerator.d.ts +0 -1
  181. package/build/generators/builders/CalldataGenerator.js +0 -1
  182. package/build/generators/builders/CustomGenerator.d.ts +0 -1
  183. package/build/generators/builders/CustomGenerator.js +0 -1
  184. package/build/generators/builders/DeploymentGenerator.d.ts +0 -1
  185. package/build/generators/builders/DeploymentGenerator.js +0 -1
  186. package/build/generators/builders/HashCommitmentGenerator.d.ts +0 -1
  187. package/build/generators/builders/HashCommitmentGenerator.js +0 -1
  188. package/build/generators/builders/LegacyCalldataGenerator.d.ts +0 -1
  189. package/build/generators/builders/LegacyCalldataGenerator.js +0 -1
  190. package/build/generators/builders/MultiSignGenerator.d.ts +0 -1
  191. package/build/generators/builders/MultiSignGenerator.js +0 -1
  192. package/build/generators/builders/P2WDAGenerator.d.ts +0 -1
  193. package/build/generators/builders/P2WDAGenerator.js +0 -1
  194. package/build/index.d.ts +0 -1
  195. package/build/index.js +0 -1
  196. package/build/keypair/Address.d.ts +0 -1
  197. package/build/keypair/Address.js +0 -1
  198. package/build/keypair/AddressVerificator.d.ts +0 -1
  199. package/build/keypair/AddressVerificator.js +0 -1
  200. package/build/keypair/EcKeyPair.d.ts +0 -1
  201. package/build/keypair/EcKeyPair.js +0 -1
  202. package/build/keypair/MessageSigner.d.ts +0 -1
  203. package/build/keypair/MessageSigner.js +0 -1
  204. package/build/keypair/Secp256k1PointDeriver.d.ts +0 -1
  205. package/build/keypair/Secp256k1PointDeriver.js +0 -1
  206. package/build/keypair/Wallet.d.ts +0 -1
  207. package/build/keypair/Wallet.js +0 -1
  208. package/build/keypair/interfaces/IWallet.d.ts +0 -1
  209. package/build/keypair/interfaces/IWallet.js +0 -1
  210. package/build/metadata/ContractBaseMetadata.d.ts +0 -1
  211. package/build/metadata/ContractBaseMetadata.js +0 -1
  212. package/build/mnemonic/BIPStandard.d.ts +0 -1
  213. package/build/mnemonic/BIPStandard.js +0 -1
  214. package/build/mnemonic/Mnemonic.d.ts +0 -1
  215. package/build/mnemonic/Mnemonic.js +0 -1
  216. package/build/mnemonic/MnemonicStrength.d.ts +0 -1
  217. package/build/mnemonic/MnemonicStrength.js +0 -1
  218. package/build/network/ChainId.d.ts +0 -1
  219. package/build/network/ChainId.js +0 -1
  220. package/build/opnet.d.ts +1 -1
  221. package/build/opnet.js +1 -1
  222. package/build/p2wda/P2WDADetector.d.ts +0 -1
  223. package/build/p2wda/P2WDADetector.js +0 -1
  224. package/build/polyfill/disposable.d.ts +0 -1
  225. package/build/polyfill/disposable.js +0 -1
  226. package/build/signer/AddressRotation.d.ts +0 -1
  227. package/build/signer/AddressRotation.js +0 -1
  228. package/build/signer/IRotationSigner.d.ts +0 -1
  229. package/build/signer/IRotationSigner.js +0 -1
  230. package/build/signer/ParallelSignerAdapter.d.ts +0 -1
  231. package/build/signer/ParallelSignerAdapter.js +0 -1
  232. package/build/signer/SignerUtils.d.ts +0 -1
  233. package/build/signer/SignerUtils.js +0 -1
  234. package/build/signer/TweakedSigner.d.ts +0 -1
  235. package/build/signer/TweakedSigner.js +0 -1
  236. package/build/transaction/ContractAddress.d.ts +0 -1
  237. package/build/transaction/ContractAddress.js +0 -1
  238. package/build/transaction/TransactionFactory.d.ts +0 -1
  239. package/build/transaction/TransactionFactory.js +0 -1
  240. package/build/transaction/browser/BrowserSignerBase.d.ts +0 -1
  241. package/build/transaction/browser/BrowserSignerBase.js +0 -1
  242. package/build/transaction/browser/WalletNetworks.d.ts +0 -1
  243. package/build/transaction/browser/WalletNetworks.js +0 -1
  244. package/build/transaction/browser/Web3Provider.d.ts +0 -1
  245. package/build/transaction/browser/Web3Provider.js +0 -1
  246. package/build/transaction/browser/extensions/UnisatSigner.d.ts +0 -1
  247. package/build/transaction/browser/extensions/UnisatSigner.js +0 -1
  248. package/build/transaction/browser/extensions/XverseSigner.d.ts +0 -1
  249. package/build/transaction/browser/extensions/XverseSigner.js +0 -1
  250. package/build/transaction/browser/types/OPWallet.d.ts +0 -1
  251. package/build/transaction/browser/types/OPWallet.js +0 -1
  252. package/build/transaction/browser/types/Unisat.d.ts +0 -1
  253. package/build/transaction/browser/types/Unisat.js +0 -1
  254. package/build/transaction/browser/types/Xverse.d.ts +0 -1
  255. package/build/transaction/browser/types/Xverse.js +0 -1
  256. package/build/transaction/builders/CancelTransaction.d.ts +0 -1
  257. package/build/transaction/builders/CancelTransaction.js +0 -1
  258. package/build/transaction/builders/ChallengeSolutionTransaction.d.ts +0 -1
  259. package/build/transaction/builders/ChallengeSolutionTransaction.js +0 -1
  260. package/build/transaction/builders/ConsolidatedInteractionTransaction.d.ts +0 -1
  261. package/build/transaction/builders/ConsolidatedInteractionTransaction.js +0 -1
  262. package/build/transaction/builders/CustomScriptTransaction.d.ts +0 -1
  263. package/build/transaction/builders/CustomScriptTransaction.js +0 -1
  264. package/build/transaction/builders/DeploymentTransaction.d.ts +0 -1
  265. package/build/transaction/builders/DeploymentTransaction.js +0 -1
  266. package/build/transaction/builders/FundingTransaction.d.ts +0 -1
  267. package/build/transaction/builders/FundingTransaction.js +0 -1
  268. package/build/transaction/builders/InteractionTransaction.d.ts +0 -1
  269. package/build/transaction/builders/InteractionTransaction.js +0 -1
  270. package/build/transaction/builders/InteractionTransactionP2WDA.d.ts +0 -1
  271. package/build/transaction/builders/InteractionTransactionP2WDA.js +0 -1
  272. package/build/transaction/builders/MultiSignTransaction.d.ts +0 -1
  273. package/build/transaction/builders/MultiSignTransaction.js +0 -1
  274. package/build/transaction/builders/SharedInteractionTransaction.d.ts +0 -1
  275. package/build/transaction/builders/SharedInteractionTransaction.js +0 -1
  276. package/build/transaction/builders/TransactionBuilder.d.ts +0 -1
  277. package/build/transaction/builders/TransactionBuilder.js +7 -1
  278. package/build/transaction/enums/TransactionType.d.ts +0 -1
  279. package/build/transaction/enums/TransactionType.js +0 -1
  280. package/build/transaction/interfaces/ICancelTransactionParameters.d.ts +0 -1
  281. package/build/transaction/interfaces/ICancelTransactionParameters.js +0 -1
  282. package/build/transaction/interfaces/IConsolidatedTransactionParameters.d.ts +0 -1
  283. package/build/transaction/interfaces/IConsolidatedTransactionParameters.js +0 -1
  284. package/build/transaction/interfaces/ICustomTransactionParameters.d.ts +0 -1
  285. package/build/transaction/interfaces/ICustomTransactionParameters.js +0 -1
  286. package/build/transaction/interfaces/ITransactionParameters.d.ts +0 -1
  287. package/build/transaction/interfaces/ITransactionParameters.js +0 -1
  288. package/build/transaction/interfaces/ITransactionResponses.d.ts +0 -1
  289. package/build/transaction/interfaces/ITransactionResponses.js +0 -1
  290. package/build/transaction/interfaces/ITweakedTransactionData.d.ts +0 -1
  291. package/build/transaction/interfaces/ITweakedTransactionData.js +0 -1
  292. package/build/transaction/interfaces/IWeb3ProviderTypes.d.ts +0 -1
  293. package/build/transaction/interfaces/IWeb3ProviderTypes.js +0 -1
  294. package/build/transaction/interfaces/Tap.d.ts +0 -1
  295. package/build/transaction/interfaces/Tap.js +0 -1
  296. package/build/transaction/mineable/CSVMultisigProvider.d.ts +102 -0
  297. package/build/transaction/mineable/CSVMultisigProvider.js +348 -0
  298. package/build/transaction/mineable/IP2WSHAddress.d.ts +0 -1
  299. package/build/transaction/mineable/IP2WSHAddress.js +0 -1
  300. package/build/transaction/mineable/TimelockGenerator.d.ts +0 -1
  301. package/build/transaction/mineable/TimelockGenerator.js +0 -1
  302. package/build/transaction/offline/OfflineTransactionManager.d.ts +0 -1
  303. package/build/transaction/offline/OfflineTransactionManager.js +0 -1
  304. package/build/transaction/offline/TransactionReconstructor.d.ts +0 -1
  305. package/build/transaction/offline/TransactionReconstructor.js +0 -1
  306. package/build/transaction/offline/TransactionSerializer.d.ts +0 -1
  307. package/build/transaction/offline/TransactionSerializer.js +0 -1
  308. package/build/transaction/offline/TransactionStateCapture.d.ts +0 -1
  309. package/build/transaction/offline/TransactionStateCapture.js +0 -1
  310. package/build/transaction/offline/interfaces/ISerializableState.d.ts +0 -1
  311. package/build/transaction/offline/interfaces/ISerializableState.js +0 -1
  312. package/build/transaction/offline/interfaces/ITypeSpecificData.d.ts +0 -1
  313. package/build/transaction/offline/interfaces/ITypeSpecificData.js +0 -1
  314. package/build/transaction/psbt/PSBTTypes.d.ts +0 -1
  315. package/build/transaction/psbt/PSBTTypes.js +0 -1
  316. package/build/transaction/shared/P2MR_MS.d.ts +0 -1
  317. package/build/transaction/shared/P2MR_MS.js +0 -1
  318. package/build/transaction/shared/P2TR_MS.d.ts +0 -1
  319. package/build/transaction/shared/P2TR_MS.js +0 -1
  320. package/build/transaction/shared/TweakedTransaction.d.ts +19 -1
  321. package/build/transaction/shared/TweakedTransaction.js +69 -7
  322. package/build/transaction/utils/WitnessUtils.d.ts +0 -1
  323. package/build/transaction/utils/WitnessUtils.js +0 -1
  324. package/build/utils/BitcoinUtils.d.ts +0 -1
  325. package/build/utils/BitcoinUtils.js +0 -1
  326. package/build/utils/BufferHelper.d.ts +0 -1
  327. package/build/utils/BufferHelper.js +0 -1
  328. package/build/utils/StringToBuffer.d.ts +0 -1
  329. package/build/utils/StringToBuffer.js +0 -1
  330. package/build/utils/lengths.d.ts +0 -1
  331. package/build/utils/lengths.js +0 -1
  332. package/build/utils/types.d.ts +0 -1
  333. package/build/utils/types.js +0 -1
  334. package/build/utxo/OPNetLimitedProvider.d.ts +0 -1
  335. package/build/utxo/OPNetLimitedProvider.js +0 -1
  336. package/build/utxo/interfaces/BroadcastResponse.d.ts +0 -1
  337. package/build/utxo/interfaces/BroadcastResponse.js +0 -1
  338. package/build/utxo/interfaces/IUTXO.d.ts +0 -1
  339. package/build/utxo/interfaces/IUTXO.js +0 -1
  340. package/build/verification/TapscriptVerificator.d.ts +0 -1
  341. package/build/verification/TapscriptVerificator.js +0 -1
  342. package/eslint.config.js +5 -0
  343. package/package.json +20 -17
  344. package/src/_version.ts +1 -1
  345. package/src/keypair/Address.ts +1 -1
  346. package/src/opnet.ts +1 -0
  347. package/src/transaction/builders/TransactionBuilder.ts +10 -0
  348. package/src/transaction/mineable/CSVMultisigProvider.ts +465 -0
  349. package/src/transaction/shared/TweakedTransaction.ts +90 -5
  350. package/test/csv-multisig-spend.test.ts +363 -0
  351. package/test/web3-provider-types.test.ts +349 -0
  352. package/test/zero-amount-funding.test.ts +311 -0
  353. package/tsconfig.base.json +2 -2
  354. package/tsconfig.build.json +4 -1
  355. package/tsconfig.build.tsbuildinfo +1 -0
  356. package/tsconfig.json +9 -3
  357. package/browser/_version.d.ts +0 -2
  358. package/browser/_version.d.ts.map +0 -1
  359. package/browser/abi/ABICoder.d.ts.map +0 -1
  360. package/browser/abi/ABIDataTypes.d.ts.map +0 -1
  361. package/browser/abi/AbiTypes.d.ts.map +0 -1
  362. package/browser/abi/TupleUtils.d.ts.map +0 -1
  363. package/browser/branded/Branded.d.ts.map +0 -1
  364. package/browser/buffer/BinaryReader.d.ts.map +0 -1
  365. package/browser/buffer/BinaryWriter.d.ts.map +0 -1
  366. package/browser/bytecode/Compressor.d.ts.map +0 -1
  367. package/browser/chain/ChainData.d.ts.map +0 -1
  368. package/browser/consensus/Consensus.d.ts.map +0 -1
  369. package/browser/consensus/ConsensusConfig.d.ts.map +0 -1
  370. package/browser/consensus/IConsensusConfig.d.ts.map +0 -1
  371. package/browser/consensus/metadata/RoswellConsensus.d.ts.map +0 -1
  372. package/browser/crypto/crypto.d.ts.map +0 -1
  373. package/browser/deterministic/AddressMap.d.ts.map +0 -1
  374. package/browser/deterministic/AddressSet.d.ts.map +0 -1
  375. package/browser/deterministic/CustomMap.d.ts.map +0 -1
  376. package/browser/deterministic/DeterministicMap.d.ts.map +0 -1
  377. package/browser/deterministic/DeterministicSet.d.ts.map +0 -1
  378. package/browser/deterministic/ExtendedAddressMap.d.ts.map +0 -1
  379. package/browser/deterministic/FastMap.d.ts.map +0 -1
  380. package/browser/ecc/backend.d.ts.map +0 -1
  381. package/browser/epoch/ChallengeSolution.d.ts.map +0 -1
  382. package/browser/epoch/interfaces/IChallengeSolution.d.ts.map +0 -1
  383. package/browser/epoch/validator/EpochValidator.d.ts.map +0 -1
  384. package/browser/event/NetEvent.d.ts.map +0 -1
  385. package/browser/generators/AddressGenerator.d.ts.map +0 -1
  386. package/browser/generators/Features.d.ts.map +0 -1
  387. package/browser/generators/Generator.d.ts.map +0 -1
  388. package/browser/generators/MLDSAData.d.ts.map +0 -1
  389. package/browser/generators/builders/CalldataGenerator.d.ts.map +0 -1
  390. package/browser/generators/builders/CustomGenerator.d.ts.map +0 -1
  391. package/browser/generators/builders/DeploymentGenerator.d.ts.map +0 -1
  392. package/browser/generators/builders/HashCommitmentGenerator.d.ts.map +0 -1
  393. package/browser/generators/builders/LegacyCalldataGenerator.d.ts.map +0 -1
  394. package/browser/generators/builders/MultiSignGenerator.d.ts.map +0 -1
  395. package/browser/generators/builders/P2WDAGenerator.d.ts.map +0 -1
  396. package/browser/index.d.ts.map +0 -1
  397. package/browser/keypair/Address.d.ts.map +0 -1
  398. package/browser/keypair/AddressVerificator.d.ts.map +0 -1
  399. package/browser/keypair/EcKeyPair.d.ts.map +0 -1
  400. package/browser/keypair/MessageSigner.d.ts.map +0 -1
  401. package/browser/keypair/Secp256k1PointDeriver.d.ts.map +0 -1
  402. package/browser/keypair/Wallet.d.ts.map +0 -1
  403. package/browser/keypair/interfaces/IWallet.d.ts.map +0 -1
  404. package/browser/metadata/ContractBaseMetadata.d.ts.map +0 -1
  405. package/browser/mnemonic/BIPStandard.d.ts.map +0 -1
  406. package/browser/mnemonic/Mnemonic.d.ts.map +0 -1
  407. package/browser/mnemonic/MnemonicStrength.d.ts.map +0 -1
  408. package/browser/network/ChainId.d.ts.map +0 -1
  409. package/browser/opnet.d.ts.map +0 -1
  410. package/browser/p2wda/P2WDADetector.d.ts.map +0 -1
  411. package/browser/polyfill/disposable.d.ts.map +0 -1
  412. package/browser/signer/AddressRotation.d.ts.map +0 -1
  413. package/browser/signer/IRotationSigner.d.ts.map +0 -1
  414. package/browser/signer/ParallelSignerAdapter.d.ts.map +0 -1
  415. package/browser/signer/SignerUtils.d.ts.map +0 -1
  416. package/browser/signer/TweakedSigner.d.ts.map +0 -1
  417. package/browser/transaction/ContractAddress.d.ts.map +0 -1
  418. package/browser/transaction/TransactionFactory.d.ts.map +0 -1
  419. package/browser/transaction/browser/BrowserSignerBase.d.ts.map +0 -1
  420. package/browser/transaction/browser/WalletNetworks.d.ts.map +0 -1
  421. package/browser/transaction/browser/Web3Provider.d.ts.map +0 -1
  422. package/browser/transaction/browser/extensions/UnisatSigner.d.ts.map +0 -1
  423. package/browser/transaction/browser/extensions/XverseSigner.d.ts.map +0 -1
  424. package/browser/transaction/browser/types/OPWallet.d.ts.map +0 -1
  425. package/browser/transaction/browser/types/Unisat.d.ts.map +0 -1
  426. package/browser/transaction/browser/types/Xverse.d.ts.map +0 -1
  427. package/browser/transaction/builders/CancelTransaction.d.ts.map +0 -1
  428. package/browser/transaction/builders/ChallengeSolutionTransaction.d.ts +0 -2
  429. package/browser/transaction/builders/ChallengeSolutionTransaction.d.ts.map +0 -1
  430. package/browser/transaction/builders/ConsolidatedInteractionTransaction.d.ts.map +0 -1
  431. package/browser/transaction/builders/CustomScriptTransaction.d.ts.map +0 -1
  432. package/browser/transaction/builders/DeploymentTransaction.d.ts.map +0 -1
  433. package/browser/transaction/builders/FundingTransaction.d.ts.map +0 -1
  434. package/browser/transaction/builders/InteractionTransaction.d.ts.map +0 -1
  435. package/browser/transaction/builders/InteractionTransactionP2WDA.d.ts.map +0 -1
  436. package/browser/transaction/builders/MultiSignTransaction.d.ts.map +0 -1
  437. package/browser/transaction/builders/SharedInteractionTransaction.d.ts.map +0 -1
  438. package/browser/transaction/builders/TransactionBuilder.d.ts.map +0 -1
  439. package/browser/transaction/enums/TransactionType.d.ts.map +0 -1
  440. package/browser/transaction/interfaces/ICancelTransactionParameters.d.ts.map +0 -1
  441. package/browser/transaction/interfaces/IConsolidatedTransactionParameters.d.ts.map +0 -1
  442. package/browser/transaction/interfaces/ICustomTransactionParameters.d.ts.map +0 -1
  443. package/browser/transaction/interfaces/ITransactionParameters.d.ts.map +0 -1
  444. package/browser/transaction/interfaces/ITransactionResponses.d.ts.map +0 -1
  445. package/browser/transaction/interfaces/ITweakedTransactionData.d.ts.map +0 -1
  446. package/browser/transaction/interfaces/IWeb3ProviderTypes.d.ts.map +0 -1
  447. package/browser/transaction/interfaces/Tap.d.ts.map +0 -1
  448. package/browser/transaction/mineable/IP2WSHAddress.d.ts.map +0 -1
  449. package/browser/transaction/mineable/TimelockGenerator.d.ts.map +0 -1
  450. package/browser/transaction/offline/OfflineTransactionManager.d.ts.map +0 -1
  451. package/browser/transaction/offline/TransactionReconstructor.d.ts.map +0 -1
  452. package/browser/transaction/offline/TransactionSerializer.d.ts.map +0 -1
  453. package/browser/transaction/offline/TransactionStateCapture.d.ts.map +0 -1
  454. package/browser/transaction/offline/interfaces/ISerializableState.d.ts.map +0 -1
  455. package/browser/transaction/offline/interfaces/ITypeSpecificData.d.ts.map +0 -1
  456. package/browser/transaction/psbt/PSBTTypes.d.ts.map +0 -1
  457. package/browser/transaction/shared/P2MR_MS.d.ts.map +0 -1
  458. package/browser/transaction/shared/P2TR_MS.d.ts.map +0 -1
  459. package/browser/transaction/shared/TweakedTransaction.d.ts.map +0 -1
  460. package/browser/transaction/utils/WitnessUtils.d.ts.map +0 -1
  461. package/browser/utils/BitcoinUtils.d.ts.map +0 -1
  462. package/browser/utils/BufferHelper.d.ts.map +0 -1
  463. package/browser/utils/StringToBuffer.d.ts.map +0 -1
  464. package/browser/utils/lengths.d.ts.map +0 -1
  465. package/browser/utils/types.d.ts.map +0 -1
  466. package/browser/utxo/OPNetLimitedProvider.d.ts.map +0 -1
  467. package/browser/utxo/interfaces/BroadcastResponse.d.ts.map +0 -1
  468. package/browser/utxo/interfaces/IUTXO.d.ts.map +0 -1
  469. package/browser/verification/TapscriptVerificator.d.ts.map +0 -1
  470. package/build/_version.d.ts.map +0 -1
  471. package/build/_version.js.map +0 -1
  472. package/build/abi/ABICoder.d.ts.map +0 -1
  473. package/build/abi/ABICoder.js.map +0 -1
  474. package/build/abi/ABIDataTypes.d.ts.map +0 -1
  475. package/build/abi/ABIDataTypes.js.map +0 -1
  476. package/build/abi/AbiTypes.d.ts.map +0 -1
  477. package/build/abi/AbiTypes.js.map +0 -1
  478. package/build/abi/TupleUtils.d.ts.map +0 -1
  479. package/build/abi/TupleUtils.js.map +0 -1
  480. package/build/branded/Branded.d.ts.map +0 -1
  481. package/build/branded/Branded.js.map +0 -1
  482. package/build/buffer/BinaryReader.d.ts.map +0 -1
  483. package/build/buffer/BinaryReader.js.map +0 -1
  484. package/build/buffer/BinaryWriter.d.ts.map +0 -1
  485. package/build/buffer/BinaryWriter.js.map +0 -1
  486. package/build/bytecode/Compressor.d.ts.map +0 -1
  487. package/build/bytecode/Compressor.js.map +0 -1
  488. package/build/chain/ChainData.d.ts.map +0 -1
  489. package/build/chain/ChainData.js.map +0 -1
  490. package/build/consensus/Consensus.d.ts.map +0 -1
  491. package/build/consensus/Consensus.js.map +0 -1
  492. package/build/consensus/ConsensusConfig.d.ts.map +0 -1
  493. package/build/consensus/ConsensusConfig.js.map +0 -1
  494. package/build/consensus/IConsensusConfig.d.ts.map +0 -1
  495. package/build/consensus/IConsensusConfig.js.map +0 -1
  496. package/build/consensus/metadata/RoswellConsensus.d.ts.map +0 -1
  497. package/build/consensus/metadata/RoswellConsensus.js.map +0 -1
  498. package/build/crypto/crypto.d.ts.map +0 -1
  499. package/build/crypto/crypto.js.map +0 -1
  500. package/build/deterministic/AddressMap.d.ts.map +0 -1
  501. package/build/deterministic/AddressMap.js.map +0 -1
  502. package/build/deterministic/AddressSet.d.ts.map +0 -1
  503. package/build/deterministic/AddressSet.js.map +0 -1
  504. package/build/deterministic/CustomMap.d.ts.map +0 -1
  505. package/build/deterministic/CustomMap.js.map +0 -1
  506. package/build/deterministic/DeterministicMap.d.ts.map +0 -1
  507. package/build/deterministic/DeterministicMap.js.map +0 -1
  508. package/build/deterministic/DeterministicSet.d.ts.map +0 -1
  509. package/build/deterministic/DeterministicSet.js.map +0 -1
  510. package/build/deterministic/ExtendedAddressMap.d.ts.map +0 -1
  511. package/build/deterministic/ExtendedAddressMap.js.map +0 -1
  512. package/build/deterministic/FastMap.d.ts.map +0 -1
  513. package/build/deterministic/FastMap.js.map +0 -1
  514. package/build/ecc/backend.d.ts.map +0 -1
  515. package/build/ecc/backend.js.map +0 -1
  516. package/build/epoch/ChallengeSolution.d.ts.map +0 -1
  517. package/build/epoch/ChallengeSolution.js.map +0 -1
  518. package/build/epoch/interfaces/IChallengeSolution.d.ts.map +0 -1
  519. package/build/epoch/interfaces/IChallengeSolution.js.map +0 -1
  520. package/build/epoch/validator/EpochValidator.d.ts.map +0 -1
  521. package/build/epoch/validator/EpochValidator.js.map +0 -1
  522. package/build/event/NetEvent.d.ts.map +0 -1
  523. package/build/event/NetEvent.js.map +0 -1
  524. package/build/generators/AddressGenerator.d.ts.map +0 -1
  525. package/build/generators/AddressGenerator.js.map +0 -1
  526. package/build/generators/Features.d.ts.map +0 -1
  527. package/build/generators/Features.js.map +0 -1
  528. package/build/generators/Generator.d.ts.map +0 -1
  529. package/build/generators/Generator.js.map +0 -1
  530. package/build/generators/MLDSAData.d.ts.map +0 -1
  531. package/build/generators/MLDSAData.js.map +0 -1
  532. package/build/generators/builders/CalldataGenerator.d.ts.map +0 -1
  533. package/build/generators/builders/CalldataGenerator.js.map +0 -1
  534. package/build/generators/builders/CustomGenerator.d.ts.map +0 -1
  535. package/build/generators/builders/CustomGenerator.js.map +0 -1
  536. package/build/generators/builders/DeploymentGenerator.d.ts.map +0 -1
  537. package/build/generators/builders/DeploymentGenerator.js.map +0 -1
  538. package/build/generators/builders/HashCommitmentGenerator.d.ts.map +0 -1
  539. package/build/generators/builders/HashCommitmentGenerator.js.map +0 -1
  540. package/build/generators/builders/LegacyCalldataGenerator.d.ts.map +0 -1
  541. package/build/generators/builders/LegacyCalldataGenerator.js.map +0 -1
  542. package/build/generators/builders/MultiSignGenerator.d.ts.map +0 -1
  543. package/build/generators/builders/MultiSignGenerator.js.map +0 -1
  544. package/build/generators/builders/P2WDAGenerator.d.ts.map +0 -1
  545. package/build/generators/builders/P2WDAGenerator.js.map +0 -1
  546. package/build/index.d.ts.map +0 -1
  547. package/build/index.js.map +0 -1
  548. package/build/keypair/Address.d.ts.map +0 -1
  549. package/build/keypair/Address.js.map +0 -1
  550. package/build/keypair/AddressVerificator.d.ts.map +0 -1
  551. package/build/keypair/AddressVerificator.js.map +0 -1
  552. package/build/keypair/EcKeyPair.d.ts.map +0 -1
  553. package/build/keypair/EcKeyPair.js.map +0 -1
  554. package/build/keypair/MessageSigner.d.ts.map +0 -1
  555. package/build/keypair/MessageSigner.js.map +0 -1
  556. package/build/keypair/Secp256k1PointDeriver.d.ts.map +0 -1
  557. package/build/keypair/Secp256k1PointDeriver.js.map +0 -1
  558. package/build/keypair/Wallet.d.ts.map +0 -1
  559. package/build/keypair/Wallet.js.map +0 -1
  560. package/build/keypair/interfaces/IWallet.d.ts.map +0 -1
  561. package/build/keypair/interfaces/IWallet.js.map +0 -1
  562. package/build/metadata/ContractBaseMetadata.d.ts.map +0 -1
  563. package/build/metadata/ContractBaseMetadata.js.map +0 -1
  564. package/build/mnemonic/BIPStandard.d.ts.map +0 -1
  565. package/build/mnemonic/BIPStandard.js.map +0 -1
  566. package/build/mnemonic/Mnemonic.d.ts.map +0 -1
  567. package/build/mnemonic/Mnemonic.js.map +0 -1
  568. package/build/mnemonic/MnemonicStrength.d.ts.map +0 -1
  569. package/build/mnemonic/MnemonicStrength.js.map +0 -1
  570. package/build/network/ChainId.d.ts.map +0 -1
  571. package/build/network/ChainId.js.map +0 -1
  572. package/build/opnet.d.ts.map +0 -1
  573. package/build/opnet.js.map +0 -1
  574. package/build/p2wda/P2WDADetector.d.ts.map +0 -1
  575. package/build/p2wda/P2WDADetector.js.map +0 -1
  576. package/build/polyfill/disposable.d.ts.map +0 -1
  577. package/build/polyfill/disposable.js.map +0 -1
  578. package/build/signer/AddressRotation.d.ts.map +0 -1
  579. package/build/signer/AddressRotation.js.map +0 -1
  580. package/build/signer/IRotationSigner.d.ts.map +0 -1
  581. package/build/signer/IRotationSigner.js.map +0 -1
  582. package/build/signer/ParallelSignerAdapter.d.ts.map +0 -1
  583. package/build/signer/ParallelSignerAdapter.js.map +0 -1
  584. package/build/signer/SignerUtils.d.ts.map +0 -1
  585. package/build/signer/SignerUtils.js.map +0 -1
  586. package/build/signer/TweakedSigner.d.ts.map +0 -1
  587. package/build/signer/TweakedSigner.js.map +0 -1
  588. package/build/transaction/ContractAddress.d.ts.map +0 -1
  589. package/build/transaction/ContractAddress.js.map +0 -1
  590. package/build/transaction/TransactionFactory.d.ts.map +0 -1
  591. package/build/transaction/TransactionFactory.js.map +0 -1
  592. package/build/transaction/browser/BrowserSignerBase.d.ts.map +0 -1
  593. package/build/transaction/browser/BrowserSignerBase.js.map +0 -1
  594. package/build/transaction/browser/WalletNetworks.d.ts.map +0 -1
  595. package/build/transaction/browser/WalletNetworks.js.map +0 -1
  596. package/build/transaction/browser/Web3Provider.d.ts.map +0 -1
  597. package/build/transaction/browser/Web3Provider.js.map +0 -1
  598. package/build/transaction/browser/extensions/UnisatSigner.d.ts.map +0 -1
  599. package/build/transaction/browser/extensions/UnisatSigner.js.map +0 -1
  600. package/build/transaction/browser/extensions/XverseSigner.d.ts.map +0 -1
  601. package/build/transaction/browser/extensions/XverseSigner.js.map +0 -1
  602. package/build/transaction/browser/types/OPWallet.d.ts.map +0 -1
  603. package/build/transaction/browser/types/OPWallet.js.map +0 -1
  604. package/build/transaction/browser/types/Unisat.d.ts.map +0 -1
  605. package/build/transaction/browser/types/Unisat.js.map +0 -1
  606. package/build/transaction/browser/types/Xverse.d.ts.map +0 -1
  607. package/build/transaction/browser/types/Xverse.js.map +0 -1
  608. package/build/transaction/builders/CancelTransaction.d.ts.map +0 -1
  609. package/build/transaction/builders/CancelTransaction.js.map +0 -1
  610. package/build/transaction/builders/ChallengeSolutionTransaction.d.ts.map +0 -1
  611. package/build/transaction/builders/ChallengeSolutionTransaction.js.map +0 -1
  612. package/build/transaction/builders/ConsolidatedInteractionTransaction.d.ts.map +0 -1
  613. package/build/transaction/builders/ConsolidatedInteractionTransaction.js.map +0 -1
  614. package/build/transaction/builders/CustomScriptTransaction.d.ts.map +0 -1
  615. package/build/transaction/builders/CustomScriptTransaction.js.map +0 -1
  616. package/build/transaction/builders/DeploymentTransaction.d.ts.map +0 -1
  617. package/build/transaction/builders/DeploymentTransaction.js.map +0 -1
  618. package/build/transaction/builders/FundingTransaction.d.ts.map +0 -1
  619. package/build/transaction/builders/FundingTransaction.js.map +0 -1
  620. package/build/transaction/builders/InteractionTransaction.d.ts.map +0 -1
  621. package/build/transaction/builders/InteractionTransaction.js.map +0 -1
  622. package/build/transaction/builders/InteractionTransactionP2WDA.d.ts.map +0 -1
  623. package/build/transaction/builders/InteractionTransactionP2WDA.js.map +0 -1
  624. package/build/transaction/builders/MultiSignTransaction.d.ts.map +0 -1
  625. package/build/transaction/builders/MultiSignTransaction.js.map +0 -1
  626. package/build/transaction/builders/SharedInteractionTransaction.d.ts.map +0 -1
  627. package/build/transaction/builders/SharedInteractionTransaction.js.map +0 -1
  628. package/build/transaction/builders/TransactionBuilder.d.ts.map +0 -1
  629. package/build/transaction/builders/TransactionBuilder.js.map +0 -1
  630. package/build/transaction/enums/TransactionType.d.ts.map +0 -1
  631. package/build/transaction/enums/TransactionType.js.map +0 -1
  632. package/build/transaction/interfaces/ICancelTransactionParameters.d.ts.map +0 -1
  633. package/build/transaction/interfaces/ICancelTransactionParameters.js.map +0 -1
  634. package/build/transaction/interfaces/IConsolidatedTransactionParameters.d.ts.map +0 -1
  635. package/build/transaction/interfaces/IConsolidatedTransactionParameters.js.map +0 -1
  636. package/build/transaction/interfaces/ICustomTransactionParameters.d.ts.map +0 -1
  637. package/build/transaction/interfaces/ICustomTransactionParameters.js.map +0 -1
  638. package/build/transaction/interfaces/ITransactionParameters.d.ts.map +0 -1
  639. package/build/transaction/interfaces/ITransactionParameters.js.map +0 -1
  640. package/build/transaction/interfaces/ITransactionResponses.d.ts.map +0 -1
  641. package/build/transaction/interfaces/ITransactionResponses.js.map +0 -1
  642. package/build/transaction/interfaces/ITweakedTransactionData.d.ts.map +0 -1
  643. package/build/transaction/interfaces/ITweakedTransactionData.js.map +0 -1
  644. package/build/transaction/interfaces/IWeb3ProviderTypes.d.ts.map +0 -1
  645. package/build/transaction/interfaces/IWeb3ProviderTypes.js.map +0 -1
  646. package/build/transaction/interfaces/Tap.d.ts.map +0 -1
  647. package/build/transaction/interfaces/Tap.js.map +0 -1
  648. package/build/transaction/mineable/IP2WSHAddress.d.ts.map +0 -1
  649. package/build/transaction/mineable/IP2WSHAddress.js.map +0 -1
  650. package/build/transaction/mineable/TimelockGenerator.d.ts.map +0 -1
  651. package/build/transaction/mineable/TimelockGenerator.js.map +0 -1
  652. package/build/transaction/offline/OfflineTransactionManager.d.ts.map +0 -1
  653. package/build/transaction/offline/OfflineTransactionManager.js.map +0 -1
  654. package/build/transaction/offline/TransactionReconstructor.d.ts.map +0 -1
  655. package/build/transaction/offline/TransactionReconstructor.js.map +0 -1
  656. package/build/transaction/offline/TransactionSerializer.d.ts.map +0 -1
  657. package/build/transaction/offline/TransactionSerializer.js.map +0 -1
  658. package/build/transaction/offline/TransactionStateCapture.d.ts.map +0 -1
  659. package/build/transaction/offline/TransactionStateCapture.js.map +0 -1
  660. package/build/transaction/offline/interfaces/ISerializableState.d.ts.map +0 -1
  661. package/build/transaction/offline/interfaces/ISerializableState.js.map +0 -1
  662. package/build/transaction/offline/interfaces/ITypeSpecificData.d.ts.map +0 -1
  663. package/build/transaction/offline/interfaces/ITypeSpecificData.js.map +0 -1
  664. package/build/transaction/psbt/PSBTTypes.d.ts.map +0 -1
  665. package/build/transaction/psbt/PSBTTypes.js.map +0 -1
  666. package/build/transaction/shared/P2MR_MS.d.ts.map +0 -1
  667. package/build/transaction/shared/P2MR_MS.js.map +0 -1
  668. package/build/transaction/shared/P2TR_MS.d.ts.map +0 -1
  669. package/build/transaction/shared/P2TR_MS.js.map +0 -1
  670. package/build/transaction/shared/TweakedTransaction.d.ts.map +0 -1
  671. package/build/transaction/shared/TweakedTransaction.js.map +0 -1
  672. package/build/transaction/utils/WitnessUtils.d.ts.map +0 -1
  673. package/build/transaction/utils/WitnessUtils.js.map +0 -1
  674. package/build/tsconfig.build.tsbuildinfo +0 -1
  675. package/build/utils/BitcoinUtils.d.ts.map +0 -1
  676. package/build/utils/BitcoinUtils.js.map +0 -1
  677. package/build/utils/BufferHelper.d.ts.map +0 -1
  678. package/build/utils/BufferHelper.js.map +0 -1
  679. package/build/utils/StringToBuffer.d.ts.map +0 -1
  680. package/build/utils/StringToBuffer.js.map +0 -1
  681. package/build/utils/lengths.d.ts.map +0 -1
  682. package/build/utils/lengths.js.map +0 -1
  683. package/build/utils/types.d.ts.map +0 -1
  684. package/build/utils/types.js.map +0 -1
  685. package/build/utxo/OPNetLimitedProvider.d.ts.map +0 -1
  686. package/build/utxo/OPNetLimitedProvider.js.map +0 -1
  687. package/build/utxo/interfaces/BroadcastResponse.d.ts.map +0 -1
  688. package/build/utxo/interfaces/BroadcastResponse.js.map +0 -1
  689. package/build/utxo/interfaces/IUTXO.d.ts.map +0 -1
  690. package/build/utxo/interfaces/IUTXO.js.map +0 -1
  691. package/build/verification/TapscriptVerificator.d.ts.map +0 -1
  692. package/build/verification/TapscriptVerificator.js.map +0 -1
@@ -0,0 +1,349 @@
1
+ import { beforeAll, describe, expect, it } from 'vitest';
2
+ import { networks, payments, toHex } from '@btc-vision/bitcoin';
3
+ import type { UniversalSigner } from '@btc-vision/ecpair';
4
+ import type {
5
+ BitcoinTransferBase,
6
+ IFundingTransactionParametersWithoutSigner,
7
+ UTXO,
8
+ } from '../build/opnet.js';
9
+ import {
10
+ FundingTransaction,
11
+ MessageSigner,
12
+ MLDSASecurityLevel,
13
+ Mnemonic,
14
+ TransactionFactory,
15
+ } from '../build/opnet.js';
16
+
17
+ const network = networks.regtest;
18
+ const testMnemonic =
19
+ 'abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about';
20
+
21
+ function createTaprootUtxo(
22
+ addr: string,
23
+ value: bigint,
24
+ txId: string = '0'.repeat(64),
25
+ index: number = 0,
26
+ ): UTXO {
27
+ const p2tr = payments.p2tr({ address: addr, network });
28
+ return {
29
+ transactionId: txId,
30
+ outputIndex: index,
31
+ value,
32
+ scriptPubKey: {
33
+ hex: toHex(p2tr.output as Uint8Array),
34
+ address: addr,
35
+ },
36
+ };
37
+ }
38
+
39
+ describe('IFundingTransactionParametersWithoutSigner', () => {
40
+ it('should allow constructing params without signer, network, mldsaSigner, gasSatFee', () => {
41
+ const params: IFundingTransactionParametersWithoutSigner = {
42
+ amount: 50_000n,
43
+ to: 'bcrt1pexample',
44
+ from: 'bcrt1pexample',
45
+ feeRate: 2,
46
+ priorityFee: 0n,
47
+ utxos: [],
48
+ };
49
+
50
+ expect(params.amount).toBe(50_000n);
51
+ expect(params.feeRate).toBe(2);
52
+ expect(params.priorityFee).toBe(0n);
53
+ // signer, network, mldsaSigner, gasSatFee should NOT be present
54
+ expect('signer' in params).toBe(false);
55
+ expect('network' in params).toBe(false);
56
+ expect('mldsaSigner' in params).toBe(false);
57
+ expect('gasSatFee' in params).toBe(false);
58
+ });
59
+
60
+ it('should accept optional fields: splitInputsInto, autoAdjustAmount, feeUtxos, note', () => {
61
+ const params: IFundingTransactionParametersWithoutSigner = {
62
+ amount: 100_000n,
63
+ to: 'bcrt1pexample',
64
+ feeRate: 5,
65
+ priorityFee: 0n,
66
+ utxos: [],
67
+ splitInputsInto: 3,
68
+ autoAdjustAmount: true,
69
+ feeUtxos: [],
70
+ note: 'test memo',
71
+ };
72
+
73
+ expect(params.splitInputsInto).toBe(3);
74
+ expect(params.autoAdjustAmount).toBe(true);
75
+ expect(params.feeUtxos).toEqual([]);
76
+ expect(params.note).toBe('test memo');
77
+ });
78
+ });
79
+
80
+ describe('BitcoinTransferBase', () => {
81
+ it('should be the return type of createBTCTransfer (no original field)', async () => {
82
+ const mnemonic = new Mnemonic(testMnemonic, '', network, MLDSASecurityLevel.LEVEL2);
83
+ const wallet = mnemonic.derive(0);
84
+ const utxo = createTaprootUtxo(wallet.p2tr, 100_000n);
85
+
86
+ const factory = new TransactionFactory();
87
+ const result: BitcoinTransferBase = await factory.createBTCTransfer({
88
+ signer: wallet.keypair,
89
+ mldsaSigner: wallet.mldsaKeypair,
90
+ network,
91
+ utxos: [utxo],
92
+ to: wallet.p2tr,
93
+ from: wallet.p2tr,
94
+ amount: 50_000n,
95
+ feeRate: 1,
96
+ priorityFee: 0n,
97
+ gasSatFee: 0n,
98
+ });
99
+
100
+ expect(result.tx).toBeTruthy();
101
+ expect(typeof result.tx).toBe('string');
102
+ expect(typeof result.estimatedFees).toBe('bigint');
103
+ expect(Array.isArray(result.nextUTXOs)).toBe(true);
104
+ expect(Array.isArray(result.inputUtxos)).toBe(true);
105
+ });
106
+
107
+ it('should return inputUtxos matching the provided utxos', async () => {
108
+ const mnemonic = new Mnemonic(testMnemonic, '', network, MLDSASecurityLevel.LEVEL2);
109
+ const wallet = mnemonic.derive(0);
110
+ const utxo = createTaprootUtxo(wallet.p2tr, 200_000n, 'a'.repeat(64), 0);
111
+
112
+ const factory = new TransactionFactory();
113
+ const result = await factory.createBTCTransfer({
114
+ signer: wallet.keypair,
115
+ mldsaSigner: wallet.mldsaKeypair,
116
+ network,
117
+ utxos: [utxo],
118
+ to: wallet.p2tr,
119
+ from: wallet.p2tr,
120
+ amount: 50_000n,
121
+ feeRate: 1,
122
+ priorityFee: 0n,
123
+ gasSatFee: 0n,
124
+ });
125
+
126
+ expect(result.inputUtxos.length).toBe(1);
127
+ expect(result.inputUtxos[0]!.transactionId).toBe('a'.repeat(64));
128
+ });
129
+
130
+ it('should produce nextUTXOs for change', async () => {
131
+ const mnemonic = new Mnemonic(testMnemonic, '', network, MLDSASecurityLevel.LEVEL2);
132
+ const wallet = mnemonic.derive(0);
133
+ const utxo = createTaprootUtxo(wallet.p2tr, 500_000n);
134
+
135
+ const factory = new TransactionFactory();
136
+ const result = await factory.createBTCTransfer({
137
+ signer: wallet.keypair,
138
+ mldsaSigner: wallet.mldsaKeypair,
139
+ network,
140
+ utxos: [utxo],
141
+ to: wallet.p2tr,
142
+ from: wallet.p2tr,
143
+ amount: 10_000n,
144
+ feeRate: 1,
145
+ priorityFee: 0n,
146
+ gasSatFee: 0n,
147
+ });
148
+
149
+ expect(result.nextUTXOs.length).toBeGreaterThan(0);
150
+ });
151
+ });
152
+
153
+ describe('TransactionFactory.createBTCTransfer', () => {
154
+ let signer: UniversalSigner;
155
+ let taprootAddress: string;
156
+
157
+ beforeAll(() => {
158
+ const mnemonic = new Mnemonic(testMnemonic, '', network, MLDSASecurityLevel.LEVEL2);
159
+ const wallet = mnemonic.derive(0);
160
+ signer = wallet.keypair;
161
+ taprootAddress = wallet.p2tr;
162
+ });
163
+
164
+ it('should throw when "to" is missing', async () => {
165
+ const utxo = createTaprootUtxo(taprootAddress, 100_000n);
166
+ const factory = new TransactionFactory();
167
+
168
+ await expect(
169
+ factory.createBTCTransfer({
170
+ signer,
171
+ network,
172
+ utxos: [utxo],
173
+ from: taprootAddress,
174
+ amount: 50_000n,
175
+ feeRate: 1,
176
+ priorityFee: 0n,
177
+ gasSatFee: 0n,
178
+ mldsaSigner: null,
179
+ }),
180
+ ).rejects.toThrow(/to/i);
181
+ });
182
+
183
+ it('should throw when "from" is missing', async () => {
184
+ const utxo = createTaprootUtxo(taprootAddress, 100_000n);
185
+ const factory = new TransactionFactory();
186
+
187
+ await expect(
188
+ factory.createBTCTransfer({
189
+ signer,
190
+ network,
191
+ utxos: [utxo],
192
+ to: taprootAddress,
193
+ amount: 50_000n,
194
+ feeRate: 1,
195
+ priorityFee: 0n,
196
+ gasSatFee: 0n,
197
+ mldsaSigner: null,
198
+ }),
199
+ ).rejects.toThrow(/from/i);
200
+ });
201
+
202
+ it('should throw when utxos are empty', async () => {
203
+ const factory = new TransactionFactory();
204
+
205
+ await expect(
206
+ factory.createBTCTransfer({
207
+ signer,
208
+ network,
209
+ utxos: [],
210
+ to: taprootAddress,
211
+ from: taprootAddress,
212
+ amount: 50_000n,
213
+ feeRate: 1,
214
+ priorityFee: 0n,
215
+ gasSatFee: 0n,
216
+ mldsaSigner: null,
217
+ }),
218
+ ).rejects.toThrow(/UTXO/i);
219
+ });
220
+
221
+ it('should handle autoAdjustAmount for send-max', async () => {
222
+ const utxo = createTaprootUtxo(taprootAddress, 100_000n);
223
+ const factory = new TransactionFactory();
224
+
225
+ const result = await factory.createBTCTransfer({
226
+ signer,
227
+ network,
228
+ utxos: [utxo],
229
+ to: taprootAddress,
230
+ from: taprootAddress,
231
+ amount: 100_000n,
232
+ autoAdjustAmount: true,
233
+ feeRate: 1,
234
+ priorityFee: 0n,
235
+ gasSatFee: 0n,
236
+ mldsaSigner: null,
237
+ });
238
+
239
+ // Should succeed (fees deducted from amount) instead of throwing insufficient funds
240
+ expect(result.tx).toBeTruthy();
241
+ expect(typeof result.estimatedFees).toBe('bigint');
242
+ });
243
+
244
+ it('should handle optionalOutputs (extra outputs)', async () => {
245
+ const mnemonic = new Mnemonic(testMnemonic, '', network, MLDSASecurityLevel.LEVEL2);
246
+ const wallet = mnemonic.derive(0);
247
+ const wallet2 = mnemonic.derive(1);
248
+ const utxo = createTaprootUtxo(wallet.p2tr, 300_000n);
249
+
250
+ const factory = new TransactionFactory();
251
+ const result = await factory.createBTCTransfer({
252
+ signer: wallet.keypair,
253
+ mldsaSigner: wallet.mldsaKeypair,
254
+ network,
255
+ utxos: [utxo],
256
+ to: wallet.p2tr,
257
+ from: wallet.p2tr,
258
+ amount: 50_000n,
259
+ feeRate: 1,
260
+ priorityFee: 0n,
261
+ gasSatFee: 0n,
262
+ optionalOutputs: [
263
+ { address: wallet2.p2tr, value: 10_000n },
264
+ ],
265
+ });
266
+
267
+ expect(result.tx).toBeTruthy();
268
+ expect(typeof result.estimatedFees).toBe('bigint');
269
+ });
270
+ });
271
+
272
+ describe('MessageSigner.sha256 for signData hash verification', () => {
273
+ it('should produce consistent SHA-256 hashes', () => {
274
+ const message = 'Hello, OPNet!';
275
+ const buffer = new TextEncoder().encode(message);
276
+ const hash1 = MessageSigner.sha256(buffer);
277
+ const hash2 = MessageSigner.sha256(buffer);
278
+
279
+ expect(hash1).toEqual(hash2);
280
+ expect(hash1.length).toBe(32);
281
+ });
282
+
283
+ it('should produce the correct hex hash for signData verification flow', () => {
284
+ const originalMessage = '{"action":"verify","nonce":42}';
285
+ const messageBuffer = new TextEncoder().encode(originalMessage);
286
+ const hashedMessage = MessageSigner.sha256(messageBuffer);
287
+ const messageHex = toHex(hashedMessage);
288
+
289
+ // Verify it's a valid 64-char hex string (32 bytes)
290
+ expect(messageHex).toMatch(/^[0-9a-f]{64}$/);
291
+
292
+ // Verify the same input produces the same output (deterministic)
293
+ const messageBuffer2 = new TextEncoder().encode(originalMessage);
294
+ const hashedMessage2 = MessageSigner.sha256(messageBuffer2);
295
+ const messageHex2 = toHex(hashedMessage2);
296
+ expect(messageHex).toBe(messageHex2);
297
+ });
298
+
299
+ it('should produce different hashes for different messages', () => {
300
+ const hash1 = toHex(MessageSigner.sha256(new TextEncoder().encode('message A')));
301
+ const hash2 = toHex(MessageSigner.sha256(new TextEncoder().encode('message B')));
302
+
303
+ expect(hash1).not.toBe(hash2);
304
+ });
305
+ });
306
+
307
+ describe('Unisat interface - signData with originalMessage', () => {
308
+ it('should accept signData type with optional originalMessage parameter', () => {
309
+ const mockUnisat = {
310
+ signData: async (
311
+ _hex: string,
312
+ _type?: string,
313
+ _originalMessage?: string,
314
+ ): Promise<string> => {
315
+ return 'signature_hex';
316
+ },
317
+ };
318
+
319
+ expect(typeof mockUnisat.signData).toBe('function');
320
+ expect(mockUnisat.signData.length).toBeLessThanOrEqual(3);
321
+ });
322
+ });
323
+
324
+ describe('FundingTransaction with feeUtxos', () => {
325
+ it('should accept feeUtxos parameter', async () => {
326
+ const mnemonic = new Mnemonic(testMnemonic, '', network, MLDSASecurityLevel.LEVEL2);
327
+ const wallet = mnemonic.derive(0);
328
+ const mainUtxo = createTaprootUtxo(wallet.p2tr, 50_000n, 'a'.repeat(64), 0);
329
+ const feeUtxo = createTaprootUtxo(wallet.p2tr, 50_000n, 'b'.repeat(64), 0);
330
+
331
+ const tx = new FundingTransaction({
332
+ signer: wallet.keypair,
333
+ mldsaSigner: wallet.mldsaKeypair,
334
+ network,
335
+ utxos: [mainUtxo],
336
+ feeUtxos: [feeUtxo],
337
+ to: wallet.p2tr,
338
+ amount: 50_000n,
339
+ feeRate: 1,
340
+ priorityFee: 0n,
341
+ gasSatFee: 0n,
342
+ });
343
+
344
+ const signed = await tx.signTransaction();
345
+ // Should use both UTXOs (main + fee)
346
+ expect(signed.ins.length).toBe(2);
347
+ expect(signed.toHex()).toBeTruthy();
348
+ });
349
+ });
@@ -0,0 +1,311 @@
1
+ import { beforeAll, describe, expect, it } from 'vitest';
2
+ import { networks, payments, toHex, toXOnly, Transaction } from '@btc-vision/bitcoin';
3
+ import { type UniversalSigner } from '@btc-vision/ecpair';
4
+ import type { IChallengeSolution, IChallengeVerification, UTXO } from '../build/opnet.js';
5
+ import {
6
+ Address,
7
+ EcKeyPair,
8
+ FundingTransaction,
9
+ MLDSASecurityLevel,
10
+ Mnemonic,
11
+ TransactionBuilder,
12
+ TransactionFactory,
13
+ } from '../build/opnet.js';
14
+
15
+ const network = networks.regtest;
16
+ const testMnemonic =
17
+ 'abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about';
18
+
19
+ function createTaprootUtxo(
20
+ addr: string,
21
+ value: bigint,
22
+ txId: string = '0'.repeat(64),
23
+ index: number = 0,
24
+ ): UTXO {
25
+ const p2tr = payments.p2tr({ address: addr, network });
26
+ return {
27
+ transactionId: txId,
28
+ outputIndex: index,
29
+ value,
30
+ scriptPubKey: {
31
+ hex: toHex(p2tr.output as Uint8Array),
32
+ address: addr,
33
+ },
34
+ };
35
+ }
36
+
37
+ /**
38
+ * Create a UTXO with a full nonWitnessUtxo (required for optional inputs
39
+ * that the interaction transaction will consume).
40
+ */
41
+ function createUtxoWithWitness(
42
+ addr: string,
43
+ value: bigint,
44
+ signer: UniversalSigner,
45
+ txId: string = '1'.repeat(64),
46
+ index: number = 0,
47
+ ): UTXO {
48
+ // Build a minimal valid transaction that pays to addr
49
+ const tx = new Transaction();
50
+ const p2tr = payments.p2tr({ address: addr, network });
51
+ tx.addOutput(p2tr.output as Uint8Array, value);
52
+
53
+ return {
54
+ transactionId: txId,
55
+ outputIndex: index,
56
+ value,
57
+ scriptPubKey: {
58
+ hex: toHex(p2tr.output as Uint8Array),
59
+ address: addr,
60
+ },
61
+ nonWitnessUtxo: tx.toBuffer(),
62
+ };
63
+ }
64
+
65
+ function createMockChallenge(publicKey: Address): IChallengeSolution {
66
+ const verification: IChallengeVerification = {
67
+ epochHash: new Uint8Array(32),
68
+ epochRoot: new Uint8Array(32),
69
+ targetHash: new Uint8Array(32),
70
+ targetChecksum: new Uint8Array(32),
71
+ startBlock: 0n,
72
+ endBlock: 100n,
73
+ proofs: [],
74
+ };
75
+
76
+ return {
77
+ epochNumber: 1n,
78
+ publicKey,
79
+ solution: new Uint8Array(32),
80
+ salt: new Uint8Array(32),
81
+ graffiti: new Uint8Array(32),
82
+ difficulty: 1,
83
+ verification,
84
+ verifySubmissionSignature: () => true,
85
+ getSubmission: () => undefined,
86
+ toRaw: () => ({
87
+ epochNumber: '1',
88
+ mldsaPublicKey: '',
89
+ legacyPublicKey: '',
90
+ solution: '00'.repeat(32),
91
+ salt: '00'.repeat(32),
92
+ graffiti: '00'.repeat(32),
93
+ difficulty: 1,
94
+ verification: {
95
+ epochHash: '00'.repeat(32),
96
+ epochRoot: '00'.repeat(32),
97
+ targetHash: '00'.repeat(32),
98
+ targetChecksum: '00'.repeat(32),
99
+ startBlock: '0',
100
+ endBlock: '100',
101
+ proofs: [],
102
+ },
103
+ }),
104
+ verify: () => true,
105
+ toBuffer: () => new Uint8Array(0),
106
+ toHex: () => '',
107
+ calculateSolution: () => new Uint8Array(32),
108
+ checkDifficulty: () => ({ valid: true, difficulty: 1 }),
109
+ getMiningTargetBlock: () => null,
110
+ };
111
+ }
112
+
113
+ describe('Zero-amount funding bug', () => {
114
+ let signer: UniversalSigner;
115
+ let taprootAddress: string;
116
+ let walletAddress: Address;
117
+
118
+ beforeAll(() => {
119
+ const mnemonic = new Mnemonic(testMnemonic, '', network, MLDSASecurityLevel.LEVEL2);
120
+ const wallet = mnemonic.derive(0);
121
+ signer = wallet.keypair;
122
+ walletAddress = wallet.address;
123
+ taprootAddress = wallet.p2tr;
124
+ });
125
+
126
+ describe('FundingTransaction with zero amount', () => {
127
+ it('should throw "Output value is 0" when amount is 0n (root cause)', async () => {
128
+ const utxo = createTaprootUtxo(taprootAddress, 100_000n);
129
+
130
+ const tx = new FundingTransaction({
131
+ signer,
132
+ network,
133
+ utxos: [utxo],
134
+ to: taprootAddress,
135
+ amount: 0n,
136
+ feeRate: 1,
137
+ priorityFee: 0n,
138
+ gasSatFee: 0n,
139
+ mldsaSigner: null,
140
+ });
141
+
142
+ await expect(tx.signTransaction()).rejects.toThrow(
143
+ /Output value is 0 and no script provided/,
144
+ );
145
+ });
146
+
147
+ it('should succeed when amount is MINIMUM_DUST (330 sats)', async () => {
148
+ const utxo = createTaprootUtxo(taprootAddress, 100_000n);
149
+
150
+ const tx = new FundingTransaction({
151
+ signer,
152
+ network,
153
+ utxos: [utxo],
154
+ to: taprootAddress,
155
+ amount: TransactionBuilder.MINIMUM_DUST,
156
+ feeRate: 1,
157
+ priorityFee: 0n,
158
+ gasSatFee: 0n,
159
+ mldsaSigner: null,
160
+ });
161
+
162
+ const signed = await tx.signTransaction();
163
+ expect(signed.ins.length).toBeGreaterThan(0);
164
+ expect(signed.outs.length).toBeGreaterThan(0);
165
+
166
+ // The primary output should be at least MINIMUM_DUST
167
+ const outputValues = signed.outs.map((o) => BigInt(o.value));
168
+ expect(outputValues.some((v) => v >= TransactionBuilder.MINIMUM_DUST)).toBe(true);
169
+ });
170
+ });
171
+
172
+ describe('TransactionFactory.signInteraction with subtractExtraUTXOFromAmountRequired', () => {
173
+ it('should not throw when optional inputs fully cover costs', async () => {
174
+ const contract = '0x' + '00'.repeat(32);
175
+
176
+ // Primary UTXO for the wallet (used by funding tx)
177
+ const walletUtxo = createTaprootUtxo(taprootAddress, 500_000n);
178
+
179
+ // Optional input with a very large value that covers all costs
180
+ const optionalInput = createUtxoWithWitness(
181
+ taprootAddress,
182
+ 10_000_000n,
183
+ signer,
184
+ 'ab'.repeat(32),
185
+ 0,
186
+ );
187
+
188
+ const factory = new TransactionFactory();
189
+ const challenge = createMockChallenge(walletAddress);
190
+
191
+ // This should NOT throw — the fix clamps to MINIMUM_DUST
192
+ const result = await factory.signInteraction({
193
+ signer,
194
+ network,
195
+ utxos: [walletUtxo],
196
+ to: taprootAddress,
197
+ from: taprootAddress,
198
+ calldata: new Uint8Array([0x01, 0x02, 0x03, 0x04]),
199
+ challenge,
200
+ contract,
201
+ feeRate: 1,
202
+ priorityFee: 330n,
203
+ gasSatFee: 330n,
204
+ mldsaSigner: null,
205
+ optionalInputs: [optionalInput],
206
+ subtractExtraUTXOFromAmountRequired: true,
207
+ });
208
+
209
+ expect(result).toBeDefined();
210
+ expect(result.interactionTransaction).toBeTruthy();
211
+ expect(result.fundingTransaction).toBeTruthy();
212
+ });
213
+
214
+ it('should not throw when optional inputs partially cover costs', async () => {
215
+ const contract = '0x' + '00'.repeat(32);
216
+
217
+ const walletUtxo = createTaprootUtxo(taprootAddress, 500_000n);
218
+
219
+ // Optional input with a small value (partial coverage)
220
+ const optionalInput = createUtxoWithWitness(
221
+ taprootAddress,
222
+ 500n,
223
+ signer,
224
+ 'cd'.repeat(32),
225
+ 0,
226
+ );
227
+
228
+ const factory = new TransactionFactory();
229
+ const challenge = createMockChallenge(walletAddress);
230
+
231
+ const result = await factory.signInteraction({
232
+ signer,
233
+ network,
234
+ utxos: [walletUtxo],
235
+ to: taprootAddress,
236
+ from: taprootAddress,
237
+ calldata: new Uint8Array([0x01, 0x02, 0x03, 0x04]),
238
+ challenge,
239
+ contract,
240
+ feeRate: 1,
241
+ priorityFee: 330n,
242
+ gasSatFee: 330n,
243
+ mldsaSigner: null,
244
+ optionalInputs: [optionalInput],
245
+ subtractExtraUTXOFromAmountRequired: true,
246
+ });
247
+
248
+ expect(result).toBeDefined();
249
+ expect(result.interactionTransaction).toBeTruthy();
250
+ expect(result.fundingTransaction).toBeTruthy();
251
+ });
252
+
253
+ it('should work normally without subtractExtraUTXOFromAmountRequired', async () => {
254
+ const contract = '0x' + '00'.repeat(32);
255
+
256
+ const walletUtxo = createTaprootUtxo(taprootAddress, 500_000n);
257
+
258
+ const factory = new TransactionFactory();
259
+ const challenge = createMockChallenge(walletAddress);
260
+
261
+ const result = await factory.signInteraction({
262
+ signer,
263
+ network,
264
+ utxos: [walletUtxo],
265
+ to: taprootAddress,
266
+ from: taprootAddress,
267
+ calldata: new Uint8Array([0x01, 0x02, 0x03, 0x04]),
268
+ challenge,
269
+ contract,
270
+ feeRate: 1,
271
+ priorityFee: 330n,
272
+ gasSatFee: 330n,
273
+ mldsaSigner: null,
274
+ });
275
+
276
+ expect(result).toBeDefined();
277
+ expect(result.interactionTransaction).toBeTruthy();
278
+ expect(result.fundingTransaction).toBeTruthy();
279
+ });
280
+
281
+ it('should work with empty optional inputs and subtractExtraUTXOFromAmountRequired', async () => {
282
+ const contract = '0x' + '00'.repeat(32);
283
+
284
+ const walletUtxo = createTaprootUtxo(taprootAddress, 500_000n);
285
+
286
+ const factory = new TransactionFactory();
287
+ const challenge = createMockChallenge(walletAddress);
288
+
289
+ const result = await factory.signInteraction({
290
+ signer,
291
+ network,
292
+ utxos: [walletUtxo],
293
+ to: taprootAddress,
294
+ from: taprootAddress,
295
+ calldata: new Uint8Array([0x01, 0x02, 0x03, 0x04]),
296
+ challenge,
297
+ contract,
298
+ feeRate: 1,
299
+ priorityFee: 330n,
300
+ gasSatFee: 330n,
301
+ mldsaSigner: null,
302
+ optionalInputs: [],
303
+ subtractExtraUTXOFromAmountRequired: true,
304
+ });
305
+
306
+ expect(result).toBeDefined();
307
+ expect(result.interactionTransaction).toBeTruthy();
308
+ expect(result.fundingTransaction).toBeTruthy();
309
+ });
310
+ });
311
+ });
@@ -33,8 +33,8 @@
33
33
  "esModuleInterop": true,
34
34
  "resolveJsonModule": true,
35
35
  "declaration": true,
36
- "declarationMap": true,
37
- "sourceMap": true,
36
+ "declarationMap": false,
37
+ "sourceMap": false,
38
38
  "forceConsistentCasingInFileNames": true,
39
39
  "skipLibCheck": true,
40
40
  "moduleDetection": "force",
@@ -1,5 +1,8 @@
1
1
  {
2
2
  "extends": "./tsconfig.json",
3
3
  "include": ["src/**/*.ts"],
4
- "exclude": ["node_modules", "test"]
4
+ "exclude": ["node_modules", "test"],
5
+ "compilerOptions": {
6
+ "rootDir": "src"
7
+ }
5
8
  }