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