@btc-vision/transaction 1.8.0-beta.3 → 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 +11999 -2647
- 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 +3583 -3184
- 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 +844 -2746
- package/browser/noble-hashes.js +1338 -2067
- 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 +14351 -10031
- 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 +446 -128
- 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 +219 -50
- 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 +12 -35
- 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/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 +114 -71
- package/src/keypair/AddressVerificator.ts +16 -147
- package/src/keypair/EcKeyPair.ts +105 -114
- 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,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { fromHex, Psbt, toSatoshi, toXOnly, Transaction, } from '@btc-vision/bitcoin';
|
|
2
|
+
import {} from '@btc-vision/ecpair';
|
|
3
3
|
import { TransactionType } from '../enums/TransactionType.js';
|
|
4
4
|
import { MINIMUM_AMOUNT_REWARD, TransactionBuilder } from './TransactionBuilder.js';
|
|
5
5
|
import { HashCommitmentGenerator } from '../../generators/builders/HashCommitmentGenerator.js';
|
|
@@ -10,11 +10,84 @@ import { BitcoinUtils } from '../../utils/BitcoinUtils.js';
|
|
|
10
10
|
import { Compressor } from '../../bytecode/Compressor.js';
|
|
11
11
|
import { FeaturePriority, Features } from '../../generators/Features.js';
|
|
12
12
|
import { AddressGenerator } from '../../generators/AddressGenerator.js';
|
|
13
|
+
/**
|
|
14
|
+
* Consolidated Interaction Transaction
|
|
15
|
+
*
|
|
16
|
+
* Drop-in replacement for InteractionTransaction that bypasses BIP110/Bitcoin Knots censorship.
|
|
17
|
+
*
|
|
18
|
+
* Uses the same parameters and sends the same data on-chain as InteractionTransaction,
|
|
19
|
+
* but embeds data in hash-committed P2WSH witnesses instead of Tapscript.
|
|
20
|
+
*
|
|
21
|
+
* Data is split into 80-byte chunks (P2WSH stack item limit), with up to 14 chunks
|
|
22
|
+
* batched per P2WSH output (~1,120 bytes per output). Each output's witness script
|
|
23
|
+
* commits to all its chunks via HASH160. When spent, all data chunks are revealed
|
|
24
|
+
* in the witness and verified at consensus level.
|
|
25
|
+
*
|
|
26
|
+
* Policy limits respected:
|
|
27
|
+
* - MAX_STANDARD_P2WSH_STACK_ITEM_SIZE = 80 bytes per chunk
|
|
28
|
+
* - g_script_size_policy_limit = 1650 bytes total witness size (serialized)
|
|
29
|
+
* - MAX_STANDARD_P2WSH_STACK_ITEMS = 100 items per witness
|
|
30
|
+
*
|
|
31
|
+
* Data integrity is consensus-enforced: if any data is stripped or modified,
|
|
32
|
+
* HASH160(data) != committed_hash and the transaction is INVALID.
|
|
33
|
+
*
|
|
34
|
+
* Capacity: ~1.1KB per P2WSH output, ~220 outputs per reveal tx, ~242KB max.
|
|
35
|
+
*
|
|
36
|
+
* Usage:
|
|
37
|
+
* ```typescript
|
|
38
|
+
* // Same parameters as InteractionTransaction
|
|
39
|
+
* const tx = new ConsolidatedInteractionTransaction({
|
|
40
|
+
* calldata: myCalldata,
|
|
41
|
+
* to: contractAddress,
|
|
42
|
+
* contract: contractSecret,
|
|
43
|
+
* challenge: myChallenge,
|
|
44
|
+
* utxos: myUtxos,
|
|
45
|
+
* signer: mySigner,
|
|
46
|
+
* network: networks.bitcoin,
|
|
47
|
+
* feeRate: 10,
|
|
48
|
+
* priorityFee: 0n,
|
|
49
|
+
* gasSatFee: 330n,
|
|
50
|
+
* });
|
|
51
|
+
*
|
|
52
|
+
* const result = await tx.build();
|
|
53
|
+
* // Broadcast setup first, then reveal (can use CPFP)
|
|
54
|
+
* broadcast(result.setup.txHex);
|
|
55
|
+
* broadcast(result.reveal.txHex);
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
13
58
|
export class ConsolidatedInteractionTransaction extends TransactionBuilder {
|
|
59
|
+
type = TransactionType.INTERACTION;
|
|
60
|
+
/** Random bytes for interaction (same as InteractionTransaction) */
|
|
61
|
+
randomBytes;
|
|
62
|
+
/** The contract address (same as InteractionTransaction.to) */
|
|
63
|
+
contractAddress;
|
|
64
|
+
/** The contract secret - 32 bytes (same as InteractionTransaction) */
|
|
65
|
+
contractSecret;
|
|
66
|
+
/** The compressed calldata (same as InteractionTransaction) */
|
|
67
|
+
calldata;
|
|
68
|
+
/** Challenge solution for epoch (same as InteractionTransaction) */
|
|
69
|
+
challenge;
|
|
70
|
+
/** Epoch challenge P2WSH address (same as InteractionTransaction) */
|
|
71
|
+
epochChallenge;
|
|
72
|
+
/** Script signer for interaction (same as InteractionTransaction) */
|
|
73
|
+
scriptSigner;
|
|
74
|
+
/** Calldata generator - produces same output as InteractionTransaction */
|
|
75
|
+
calldataGenerator;
|
|
76
|
+
/** Hash commitment generator for CHCT */
|
|
77
|
+
hashCommitmentGenerator;
|
|
78
|
+
/** The compiled operation data - SAME as InteractionTransaction's compiledTargetScript */
|
|
79
|
+
compiledTargetScript;
|
|
80
|
+
/** Generated hash-committed P2WSH outputs */
|
|
81
|
+
commitmentOutputs;
|
|
82
|
+
/** Disable auto refund (same as InteractionTransaction) */
|
|
83
|
+
disableAutoRefund;
|
|
84
|
+
/** Maximum chunk size (default: 80 bytes per P2WSH stack item limit) */
|
|
85
|
+
maxChunkSize;
|
|
86
|
+
/** Cached value per output (calculated once, used by setup and reveal) */
|
|
87
|
+
cachedValuePerOutput = null;
|
|
14
88
|
constructor(parameters) {
|
|
15
89
|
super(parameters);
|
|
16
|
-
|
|
17
|
-
this.cachedValuePerOutput = null;
|
|
90
|
+
// Same validation as InteractionTransaction
|
|
18
91
|
if (!parameters.to) {
|
|
19
92
|
throw new Error('Contract address (to) is required');
|
|
20
93
|
}
|
|
@@ -28,24 +101,30 @@ export class ConsolidatedInteractionTransaction extends TransactionBuilder {
|
|
|
28
101
|
throw new Error('Challenge solution is required');
|
|
29
102
|
}
|
|
30
103
|
this.contractAddress = parameters.to;
|
|
31
|
-
this.contractSecret =
|
|
104
|
+
this.contractSecret = fromHex(parameters.contract.replace('0x', ''));
|
|
32
105
|
this.disableAutoRefund = parameters.disableAutoRefund || false;
|
|
33
106
|
this.maxChunkSize = parameters.maxChunkSize ?? HashCommitmentGenerator.MAX_CHUNK_SIZE;
|
|
107
|
+
// Validate contract secret (same as InteractionTransaction)
|
|
34
108
|
if (this.contractSecret.length !== 32) {
|
|
35
109
|
throw new Error('Invalid contract secret length. Expected 32 bytes.');
|
|
36
110
|
}
|
|
111
|
+
// Compress calldata (same as SharedInteractionTransaction)
|
|
37
112
|
this.calldata = Compressor.compress(parameters.calldata);
|
|
113
|
+
// Generate random bytes and script signer (same as SharedInteractionTransaction)
|
|
38
114
|
this.randomBytes = parameters.randomBytes || BitcoinUtils.rndBytes();
|
|
39
115
|
this.scriptSigner = EcKeyPair.fromSeedKeyPair(this.randomBytes, this.network);
|
|
116
|
+
// Generate epoch challenge address (same as SharedInteractionTransaction)
|
|
40
117
|
this.challenge = parameters.challenge;
|
|
41
118
|
this.epochChallenge = TimeLockGenerator.generateTimeLockAddress(this.challenge.publicKey.originalPublicKeyBuffer(), this.network);
|
|
42
|
-
|
|
119
|
+
// Create calldata generator (same as SharedInteractionTransaction)
|
|
120
|
+
this.calldataGenerator = new CalldataGenerator(this.signer.publicKey, toXOnly(this.scriptSigner.publicKey), this.network);
|
|
121
|
+
// Compile the target script - SAME as InteractionTransaction
|
|
43
122
|
if (parameters.compiledTargetScript) {
|
|
44
|
-
if (
|
|
123
|
+
if (parameters.compiledTargetScript instanceof Uint8Array) {
|
|
45
124
|
this.compiledTargetScript = parameters.compiledTargetScript;
|
|
46
125
|
}
|
|
47
126
|
else if (typeof parameters.compiledTargetScript === 'string') {
|
|
48
|
-
this.compiledTargetScript =
|
|
127
|
+
this.compiledTargetScript = fromHex(parameters.compiledTargetScript);
|
|
49
128
|
}
|
|
50
129
|
else {
|
|
51
130
|
throw new Error('Invalid compiled target script format.');
|
|
@@ -54,36 +133,66 @@ export class ConsolidatedInteractionTransaction extends TransactionBuilder {
|
|
|
54
133
|
else {
|
|
55
134
|
this.compiledTargetScript = this.calldataGenerator.compile(this.calldata, this.contractSecret, this.challenge, this.priorityFee, this.generateFeatures(parameters));
|
|
56
135
|
}
|
|
57
|
-
|
|
136
|
+
// Create hash commitment generator
|
|
137
|
+
this.hashCommitmentGenerator = new HashCommitmentGenerator(this.signer.publicKey, this.network);
|
|
138
|
+
// Split compiled data into hash-committed chunks
|
|
58
139
|
this.commitmentOutputs = this.hashCommitmentGenerator.prepareChunks(this.compiledTargetScript, this.maxChunkSize);
|
|
140
|
+
// Validate output count
|
|
59
141
|
this.validateOutputCount();
|
|
60
142
|
const totalChunks = this.commitmentOutputs.reduce((sum, output) => sum + output.dataChunks.length, 0);
|
|
61
143
|
this.log(`ConsolidatedInteractionTransaction: ${this.commitmentOutputs.length} outputs, ` +
|
|
62
144
|
`${totalChunks} chunks from ${this.compiledTargetScript.length} bytes compiled data`);
|
|
63
145
|
this.internalInit();
|
|
64
146
|
}
|
|
147
|
+
/**
|
|
148
|
+
* Get the compiled target script (same as InteractionTransaction).
|
|
149
|
+
*/
|
|
65
150
|
exportCompiledTargetScript() {
|
|
66
151
|
return this.compiledTargetScript;
|
|
67
152
|
}
|
|
153
|
+
/**
|
|
154
|
+
* Get the contract secret (same as InteractionTransaction).
|
|
155
|
+
*/
|
|
68
156
|
getContractSecret() {
|
|
69
157
|
return this.contractSecret;
|
|
70
158
|
}
|
|
159
|
+
/**
|
|
160
|
+
* Get the random bytes (same as InteractionTransaction).
|
|
161
|
+
*/
|
|
71
162
|
getRndBytes() {
|
|
72
163
|
return this.randomBytes;
|
|
73
164
|
}
|
|
165
|
+
/**
|
|
166
|
+
* Get the challenge solution (same as InteractionTransaction).
|
|
167
|
+
*/
|
|
74
168
|
getChallenge() {
|
|
75
169
|
return this.challenge;
|
|
76
170
|
}
|
|
171
|
+
/**
|
|
172
|
+
* Get the commitment outputs for the setup transaction.
|
|
173
|
+
*/
|
|
77
174
|
getCommitmentOutputs() {
|
|
78
175
|
return this.commitmentOutputs;
|
|
79
176
|
}
|
|
177
|
+
/**
|
|
178
|
+
* Get the number of P2WSH outputs.
|
|
179
|
+
*/
|
|
80
180
|
getOutputCount() {
|
|
81
181
|
return this.commitmentOutputs.length;
|
|
82
182
|
}
|
|
183
|
+
/**
|
|
184
|
+
* Get the total number of 80-byte chunks across all outputs.
|
|
185
|
+
*/
|
|
83
186
|
getTotalChunkCount() {
|
|
84
187
|
return this.commitmentOutputs.reduce((sum, output) => sum + output.dataChunks.length, 0);
|
|
85
188
|
}
|
|
189
|
+
/**
|
|
190
|
+
* Build both setup and reveal transactions.
|
|
191
|
+
*
|
|
192
|
+
* @returns Complete result with both transactions
|
|
193
|
+
*/
|
|
86
194
|
async build() {
|
|
195
|
+
// Build and sign setup transaction using base class flow
|
|
87
196
|
const setupTx = await this.signTransaction();
|
|
88
197
|
const setupTxId = setupTx.getId();
|
|
89
198
|
const setup = {
|
|
@@ -95,6 +204,7 @@ export class ConsolidatedInteractionTransaction extends TransactionBuilder {
|
|
|
95
204
|
totalDataSize: this.compiledTargetScript.length,
|
|
96
205
|
};
|
|
97
206
|
this.log(`Setup transaction: ${setup.txId}`);
|
|
207
|
+
// Build reveal transaction
|
|
98
208
|
const reveal = this.buildRevealTransaction(setupTxId);
|
|
99
209
|
return {
|
|
100
210
|
setup,
|
|
@@ -102,9 +212,21 @@ export class ConsolidatedInteractionTransaction extends TransactionBuilder {
|
|
|
102
212
|
totalFees: setup.feesPaid + reveal.feesPaid,
|
|
103
213
|
};
|
|
104
214
|
}
|
|
215
|
+
/**
|
|
216
|
+
* Build the reveal transaction.
|
|
217
|
+
* Spends the P2WSH commitment outputs, revealing the compiled data in witnesses.
|
|
218
|
+
*
|
|
219
|
+
* Output structure matches InteractionTransaction:
|
|
220
|
+
* - Output to epochChallenge.address (miner reward)
|
|
221
|
+
* - Change output (if any)
|
|
222
|
+
*
|
|
223
|
+
* @param setupTxId The transaction ID of the setup transaction
|
|
224
|
+
*/
|
|
105
225
|
buildRevealTransaction(setupTxId) {
|
|
106
226
|
const revealPsbt = new Psbt({ network: this.network });
|
|
227
|
+
// Get the value per output (same as used in setup transaction)
|
|
107
228
|
const valuePerOutput = this.calculateValuePerOutput();
|
|
229
|
+
// Add commitment outputs as inputs (from setup tx)
|
|
108
230
|
for (let i = 0; i < this.commitmentOutputs.length; i++) {
|
|
109
231
|
const commitment = this.commitmentOutputs[i];
|
|
110
232
|
revealPsbt.addInput({
|
|
@@ -112,31 +234,38 @@ export class ConsolidatedInteractionTransaction extends TransactionBuilder {
|
|
|
112
234
|
index: i,
|
|
113
235
|
witnessUtxo: {
|
|
114
236
|
script: commitment.scriptPubKey,
|
|
115
|
-
value:
|
|
237
|
+
value: toSatoshi(valuePerOutput),
|
|
116
238
|
},
|
|
117
239
|
witnessScript: commitment.witnessScript,
|
|
118
240
|
});
|
|
119
241
|
}
|
|
242
|
+
// Calculate input value from commitments
|
|
120
243
|
const inputValue = BigInt(this.commitmentOutputs.length) * valuePerOutput;
|
|
244
|
+
// Calculate OPNet fee (same as InteractionTransaction)
|
|
121
245
|
const opnetFee = this.getTransactionOPNetFee();
|
|
122
246
|
const feeAmount = opnetFee < MINIMUM_AMOUNT_REWARD ? MINIMUM_AMOUNT_REWARD : opnetFee;
|
|
247
|
+
// Add output to epoch challenge address (same as InteractionTransaction)
|
|
123
248
|
revealPsbt.addOutput({
|
|
124
249
|
address: this.epochChallenge.address,
|
|
125
|
-
value:
|
|
250
|
+
value: toSatoshi(feeAmount),
|
|
126
251
|
});
|
|
252
|
+
// Estimate reveal transaction fee
|
|
127
253
|
const estimatedVBytes = this.estimateRevealVBytes();
|
|
128
254
|
const revealFee = BigInt(Math.ceil(estimatedVBytes * this.feeRate));
|
|
255
|
+
// Add change output if there's enough left
|
|
129
256
|
const changeValue = inputValue - feeAmount - revealFee;
|
|
130
257
|
if (changeValue > TransactionBuilder.MINIMUM_DUST) {
|
|
131
258
|
const refundAddress = this.getRefundAddress();
|
|
132
259
|
revealPsbt.addOutput({
|
|
133
260
|
address: refundAddress,
|
|
134
|
-
value:
|
|
261
|
+
value: toSatoshi(changeValue),
|
|
135
262
|
});
|
|
136
263
|
}
|
|
264
|
+
// Sign all commitment inputs
|
|
137
265
|
for (let i = 0; i < this.commitmentOutputs.length; i++) {
|
|
138
266
|
revealPsbt.signInput(i, this.signer);
|
|
139
267
|
}
|
|
268
|
+
// Finalize all inputs with hash-commitment finalizer
|
|
140
269
|
for (let i = 0; i < this.commitmentOutputs.length; i++) {
|
|
141
270
|
const commitment = this.commitmentOutputs[i];
|
|
142
271
|
revealPsbt.finalizeInput(i, (_inputIndex, input) => {
|
|
@@ -154,22 +283,44 @@ export class ConsolidatedInteractionTransaction extends TransactionBuilder {
|
|
|
154
283
|
this.log(`Reveal transaction: ${result.txId}`);
|
|
155
284
|
return result;
|
|
156
285
|
}
|
|
286
|
+
/**
|
|
287
|
+
* Get the value per commitment output (for external access).
|
|
288
|
+
*/
|
|
157
289
|
getValuePerOutput() {
|
|
158
290
|
return this.calculateValuePerOutput();
|
|
159
291
|
}
|
|
292
|
+
/**
|
|
293
|
+
* Build the setup transaction.
|
|
294
|
+
* Creates P2WSH outputs with hash commitments to the compiled data chunks.
|
|
295
|
+
* This is called by signTransaction() in the base class.
|
|
296
|
+
*/
|
|
160
297
|
async buildTransaction() {
|
|
298
|
+
// Add funding UTXOs as inputs
|
|
161
299
|
this.addInputsFromUTXO();
|
|
300
|
+
// Calculate value per output (includes reveal fee + OPNet fee)
|
|
162
301
|
const valuePerOutput = this.calculateValuePerOutput();
|
|
302
|
+
// Add each hash-committed P2WSH as an output
|
|
163
303
|
for (const commitment of this.commitmentOutputs) {
|
|
164
304
|
this.addOutput({
|
|
165
|
-
value:
|
|
305
|
+
value: toSatoshi(valuePerOutput),
|
|
166
306
|
address: commitment.address,
|
|
167
307
|
});
|
|
168
308
|
}
|
|
309
|
+
// Calculate total spent on commitment outputs
|
|
169
310
|
const totalCommitmentValue = BigInt(this.commitmentOutputs.length) * valuePerOutput;
|
|
311
|
+
// Add optional outputs
|
|
170
312
|
const optionalAmount = this.addOptionalOutputsAndGetAmount();
|
|
313
|
+
// Add refund/change output
|
|
171
314
|
await this.addRefundOutput(totalCommitmentValue + optionalAmount);
|
|
172
315
|
}
|
|
316
|
+
/**
|
|
317
|
+
* Finalize a commitment input.
|
|
318
|
+
*
|
|
319
|
+
* Witness stack: [signature, data_1, data_2, ..., data_N, witnessScript]
|
|
320
|
+
*
|
|
321
|
+
* The witness script verifies each data chunk against its committed hash.
|
|
322
|
+
* If any data is wrong or missing, the transaction is INVALID at consensus level.
|
|
323
|
+
*/
|
|
173
324
|
finalizeCommitmentInput(input, commitment) {
|
|
174
325
|
if (!input.partialSig || input.partialSig.length === 0) {
|
|
175
326
|
throw new Error('No signature for commitment input');
|
|
@@ -177,51 +328,73 @@ export class ConsolidatedInteractionTransaction extends TransactionBuilder {
|
|
|
177
328
|
if (!input.witnessScript) {
|
|
178
329
|
throw new Error('No witness script for commitment input');
|
|
179
330
|
}
|
|
331
|
+
// Witness stack for hash-committed P2WSH with multiple chunks
|
|
332
|
+
// Order: [signature, data_1, data_2, ..., data_N, witnessScript]
|
|
180
333
|
const witnessStack = [
|
|
181
|
-
input.partialSig[0].signature,
|
|
182
|
-
...commitment.dataChunks,
|
|
183
|
-
input.witnessScript,
|
|
334
|
+
input.partialSig[0].signature, // Signature for OP_CHECKSIG
|
|
335
|
+
...commitment.dataChunks, // All data chunks for OP_HASH160 verification
|
|
336
|
+
input.witnessScript, // The witness script
|
|
184
337
|
];
|
|
185
338
|
return {
|
|
186
339
|
finalScriptSig: undefined,
|
|
187
340
|
finalScriptWitness: TransactionBuilder.witnessStackToScriptWitness(witnessStack),
|
|
188
341
|
};
|
|
189
342
|
}
|
|
343
|
+
/**
|
|
344
|
+
* Estimate reveal transaction vBytes.
|
|
345
|
+
*/
|
|
190
346
|
estimateRevealVBytes() {
|
|
191
|
-
|
|
347
|
+
// Calculate actual witness weight based on chunks per output
|
|
192
348
|
let witnessWeight = 0;
|
|
193
349
|
for (const commitment of this.commitmentOutputs) {
|
|
350
|
+
// Per input: 41 bytes base (× 4) + witness data
|
|
351
|
+
// Witness: signature (~72) + chunks (N × 80) + script (N × 23 + 35) + overhead (~20)
|
|
194
352
|
const numChunks = commitment.dataChunks.length;
|
|
195
|
-
const chunkDataWeight = numChunks * 80;
|
|
196
|
-
const scriptWeight = numChunks * 23 + 35;
|
|
353
|
+
const chunkDataWeight = numChunks * 80; // actual data
|
|
354
|
+
const scriptWeight = numChunks * 23 + 35; // witness script
|
|
197
355
|
const sigWeight = 72;
|
|
198
356
|
const overheadWeight = 20;
|
|
199
357
|
witnessWeight += 164 + chunkDataWeight + scriptWeight + sigWeight + overheadWeight;
|
|
200
358
|
}
|
|
201
|
-
const weight = 40 + witnessWeight + 200;
|
|
359
|
+
const weight = 40 + witnessWeight + 200; // tx overhead + witnesses + outputs
|
|
202
360
|
return Math.ceil(weight / 4);
|
|
203
361
|
}
|
|
362
|
+
/**
|
|
363
|
+
* Calculate the required value per commitment output.
|
|
364
|
+
* This must cover: dust minimum + share of reveal fee + share of OPNet fee
|
|
365
|
+
*/
|
|
204
366
|
calculateValuePerOutput() {
|
|
367
|
+
// Return cached value if already calculated
|
|
205
368
|
if (this.cachedValuePerOutput !== null) {
|
|
206
369
|
return this.cachedValuePerOutput;
|
|
207
370
|
}
|
|
208
371
|
const numOutputs = this.commitmentOutputs.length;
|
|
372
|
+
// Calculate OPNet fee
|
|
209
373
|
const opnetFee = this.getTransactionOPNetFee();
|
|
210
374
|
const feeAmount = opnetFee < MINIMUM_AMOUNT_REWARD ? MINIMUM_AMOUNT_REWARD : opnetFee;
|
|
375
|
+
// Calculate reveal fee
|
|
211
376
|
const estimatedVBytes = this.estimateRevealVBytes();
|
|
212
377
|
const revealFee = BigInt(Math.ceil(estimatedVBytes * this.feeRate));
|
|
378
|
+
// Total needed: OPNet fee + reveal fee + dust for change
|
|
213
379
|
const totalNeeded = feeAmount + revealFee + TransactionBuilder.MINIMUM_DUST;
|
|
380
|
+
// Distribute across outputs, ensuring at least MIN_OUTPUT_VALUE per output
|
|
214
381
|
const valuePerOutput = BigInt(Math.ceil(Number(totalNeeded) / numOutputs));
|
|
215
382
|
const minValue = HashCommitmentGenerator.MIN_OUTPUT_VALUE;
|
|
216
383
|
this.cachedValuePerOutput = valuePerOutput > minValue ? valuePerOutput : minValue;
|
|
217
384
|
return this.cachedValuePerOutput;
|
|
218
385
|
}
|
|
386
|
+
/**
|
|
387
|
+
* Get refund address.
|
|
388
|
+
*/
|
|
219
389
|
getRefundAddress() {
|
|
220
390
|
if (this.from) {
|
|
221
391
|
return this.from;
|
|
222
392
|
}
|
|
223
393
|
return AddressGenerator.generatePKSH(this.signer.publicKey, this.network);
|
|
224
394
|
}
|
|
395
|
+
/**
|
|
396
|
+
* Generate features (same as InteractionTransaction).
|
|
397
|
+
*/
|
|
225
398
|
generateFeatures(parameters) {
|
|
226
399
|
const features = [];
|
|
227
400
|
if (parameters.loadedStorage) {
|
|
@@ -247,6 +420,9 @@ export class ConsolidatedInteractionTransaction extends TransactionBuilder {
|
|
|
247
420
|
}
|
|
248
421
|
return features;
|
|
249
422
|
}
|
|
423
|
+
/**
|
|
424
|
+
* Validate output count is within standard tx limits.
|
|
425
|
+
*/
|
|
250
426
|
validateOutputCount() {
|
|
251
427
|
const maxInputs = HashCommitmentGenerator.calculateMaxInputsPerTx();
|
|
252
428
|
if (this.commitmentOutputs.length > maxInputs) {
|
|
@@ -257,3 +433,4 @@ export class ConsolidatedInteractionTransaction extends TransactionBuilder {
|
|
|
257
433
|
}
|
|
258
434
|
}
|
|
259
435
|
}
|
|
436
|
+
//# sourceMappingURL=ConsolidatedInteractionTransaction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConsolidatedInteractionTransaction.js","sourceRoot":"","sources":["../../../src/transaction/builders/ConsolidatedInteractionTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,OAAO,EACP,IAAI,EAGJ,SAAS,EACT,OAAO,EACP,WAAW,GACd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAwB,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AACpF,OAAO,EAAE,uBAAuB,EAAE,MAAM,sDAAsD,CAAC;AAC/F,OAAO,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAC;AASnF,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAErE,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAgB,eAAe,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACvF,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAExE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,MAAM,OAAO,kCAAmC,SAAQ,kBAA+C;IACnF,IAAI,GAAgC,eAAe,CAAC,WAAW,CAAC;IAChF,oEAAoE;IACpD,WAAW,CAAa;IACxC,+DAA+D;IAC5C,eAAe,CAAS;IAC3C,sEAAsE;IACnD,cAAc,CAAa;IAC9C,+DAA+D;IAC5C,QAAQ,CAAa;IACxC,oEAAoE;IACjD,SAAS,CAAqB;IACjD,qEAAqE;IAClD,cAAc,CAAgB;IACjD,qEAAqE;IAClD,YAAY,CAAkB;IAEjD,0EAA0E;IACvD,iBAAiB,CAAoB;IAExD,yCAAyC;IACtB,uBAAuB,CAA0B;IAEpE,0FAA0F;IACvE,oBAAoB,CAAa;IAEpD,6CAA6C;IAC1B,iBAAiB,CAAwB;IAE5D,2DAA2D;IACxC,iBAAiB,CAAU;IAE9C,wEAAwE;IACrD,YAAY,CAAS;IAExC,0EAA0E;IAClE,oBAAoB,GAAkB,IAAI,CAAC;IAEnD,YAAY,UAA8C;QACtD,KAAK,CAAC,UAAU,CAAC,CAAC;QAElB,4CAA4C;QAC5C,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACzD,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC9D,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC5C,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACtD,CAAC;QAED,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,EAAE,CAAC;QACrC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,iBAAiB,GAAG,UAAU,CAAC,iBAAiB,IAAI,KAAK,CAAC;QAC/D,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,YAAY,IAAI,uBAAuB,CAAC,cAAc,CAAC;QAEtF,4DAA4D;QAC5D,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QAC1E,CAAC;QAED,2DAA2D;QAC3D,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAEzD,iFAAiF;QACjF,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW,IAAI,YAAY,CAAC,QAAQ,EAAE,CAAC;QACrE,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAE9E,0EAA0E;QAC1E,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;QACtC,IAAI,CAAC,cAAc,GAAG,iBAAiB,CAAC,uBAAuB,CAC3D,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,uBAAuB,EAAE,EAClD,IAAI,CAAC,OAAO,CACf,CAAC;QAEF,mEAAmE;QACnE,IAAI,CAAC,iBAAiB,GAAG,IAAI,iBAAiB,CAC1C,IAAI,CAAC,MAAM,CAAC,SAAS,EACrB,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,EACpC,IAAI,CAAC,OAAO,CACf,CAAC;QAEF,6DAA6D;QAC7D,IAAI,UAAU,CAAC,oBAAoB,EAAE,CAAC;YAClC,IAAI,UAAU,CAAC,oBAAoB,YAAY,UAAU,EAAE,CAAC;gBACxD,IAAI,CAAC,oBAAoB,GAAG,UAAU,CAAC,oBAAoB,CAAC;YAChE,CAAC;iBAAM,IAAI,OAAO,UAAU,CAAC,oBAAoB,KAAK,QAAQ,EAAE,CAAC;gBAC7D,IAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;YACzE,CAAC;iBAAM,CAAC;gBACJ,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;YAC9D,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CACtD,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CACpC,CAAC;QACN,CAAC;QAED,mCAAmC;QACnC,IAAI,CAAC,uBAAuB,GAAG,IAAI,uBAAuB,CACtD,IAAI,CAAC,MAAM,CAAC,SAAS,EACrB,IAAI,CAAC,OAAO,CACf,CAAC;QAEF,iDAAiD;QACjD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,uBAAuB,CAAC,aAAa,CAC/D,IAAI,CAAC,oBAAoB,EACzB,IAAI,CAAC,YAAY,CACpB,CAAC;QAEF,wBAAwB;QACxB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAE3B,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAC7C,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,EAC/C,CAAC,CACJ,CAAC;QACF,IAAI,CAAC,GAAG,CACJ,uCAAuC,IAAI,CAAC,iBAAiB,CAAC,MAAM,YAAY;YAC5E,GAAG,WAAW,gBAAgB,IAAI,CAAC,oBAAoB,CAAC,MAAM,sBAAsB,CAC3F,CAAC;QAEF,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAED;;OAEG;IACI,0BAA0B;QAC7B,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACrC,CAAC;IAED;;OAEG;IACI,iBAAiB;QACpB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IAED;;OAEG;IACI,WAAW;QACd,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAED;;OAEG;IACI,YAAY;QACf,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED;;OAEG;IACI,oBAAoB;QACvB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IAED;;OAEG;IACI,cAAc;QACjB,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;IACzC,CAAC;IAED;;OAEG;IACI,kBAAkB;QACrB,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC7F,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,KAAK;QACd,yDAAyD;QACzD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC7C,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;QAElC,MAAM,KAAK,GAA4B;YACnC,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE;YACtB,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,IAAI,CAAC,iBAAiB;YAC/B,QAAQ,EAAE,IAAI,CAAC,cAAc;YAC7B,UAAU,EAAE,IAAI,CAAC,kBAAkB,EAAE;YACrC,aAAa,EAAE,IAAI,CAAC,oBAAoB,CAAC,MAAM;SAClD,CAAC;QAEF,IAAI,CAAC,GAAG,CAAC,sBAAsB,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAE7C,2BAA2B;QAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;QAEtD,OAAO;YACH,KAAK;YACL,MAAM;YACN,SAAS,EAAE,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ;SAC9C,CAAC;IACN,CAAC;IAED;;;;;;;;;OASG;IACI,sBAAsB,CAAC,SAAiB;QAC3C,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAEvD,+DAA+D;QAC/D,MAAM,cAAc,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAEtD,mDAAmD;QACnD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrD,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAwB,CAAC;YAEpE,UAAU,CAAC,QAAQ,CAAC;gBAChB,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,CAAC;gBACR,WAAW,EAAE;oBACT,MAAM,EAAE,UAAU,CAAC,YAAsB;oBACzC,KAAK,EAAE,SAAS,CAAC,cAAc,CAAC;iBACnC;gBACD,aAAa,EAAE,UAAU,CAAC,aAAa;aAC1C,CAAC,CAAC;QACP,CAAC;QAED,yCAAyC;QACzC,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC;QAE1E,uDAAuD;QACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC/C,MAAM,SAAS,GAAG,QAAQ,GAAG,qBAAqB,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,QAAQ,CAAC;QAEtF,yEAAyE;QACzE,UAAU,CAAC,SAAS,CAAC;YACjB,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO;YACpC,KAAK,EAAE,SAAS,CAAC,SAAS,CAAC;SAC9B,CAAC,CAAC;QAEH,kCAAkC;QAClC,MAAM,eAAe,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QACpD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QAEpE,2CAA2C;QAC3C,MAAM,WAAW,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;QACvD,IAAI,WAAW,GAAG,kBAAkB,CAAC,YAAY,EAAE,CAAC;YAChD,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC9C,UAAU,CAAC,SAAS,CAAC;gBACjB,OAAO,EAAE,aAAa;gBACtB,KAAK,EAAE,SAAS,CAAC,WAAW,CAAC;aAChC,CAAC,CAAC;QACP,CAAC;QAED,6BAA6B;QAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrD,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACzC,CAAC;QAED,qDAAqD;QACrD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrD,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAwB,CAAC;YACpE,UAAU,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,WAAmB,EAAE,KAAgB,EAAE,EAAE;gBAClE,OAAO,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;YAC3D,CAAC,CAAC,CAAC;QACP,CAAC;QAED,MAAM,QAAQ,GAAgB,UAAU,CAAC,kBAAkB,EAAE,CAAC;QAE9D,MAAM,MAAM,GAA6B;YACrC,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE;YACvB,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE;YACtB,QAAQ,EAAE,IAAI,CAAC,oBAAoB,CAAC,MAAM;YAC1C,QAAQ,EAAE,SAAS;YACnB,UAAU,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM;SAC5C,CAAC;QAEF,IAAI,CAAC,GAAG,CAAC,uBAAuB,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAE/C,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;OAEG;IACI,iBAAiB;QACpB,OAAO,IAAI,CAAC,uBAAuB,EAAE,CAAC;IAC1C,CAAC;IAED;;;;OAIG;IACgB,KAAK,CAAC,gBAAgB;QACrC,8BAA8B;QAC9B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,+DAA+D;QAC/D,MAAM,cAAc,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAEtD,6CAA6C;QAC7C,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC9C,IAAI,CAAC,SAAS,CAAC;gBACX,KAAK,EAAE,SAAS,CAAC,cAAc,CAAC;gBAChC,OAAO,EAAE,UAAU,CAAC,OAAO;aAC9B,CAAC,CAAC;QACP,CAAC;QAED,8CAA8C;QAC9C,MAAM,oBAAoB,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC;QAEpF,uBAAuB;QACvB,MAAM,cAAc,GAAG,IAAI,CAAC,8BAA8B,EAAE,CAAC;QAE7D,2BAA2B;QAC3B,MAAM,IAAI,CAAC,eAAe,CAAC,oBAAoB,GAAG,cAAc,CAAC,CAAC;IACtE,CAAC;IAED;;;;;;;OAOG;IACK,uBAAuB,CAC3B,KAAgB,EAChB,UAA+B;QAK/B,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrD,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACzD,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC9D,CAAC;QAED,8DAA8D;QAC9D,iEAAiE;QACjE,MAAM,YAAY,GAAiB;YAC9B,KAAK,CAAC,UAAU,CAAC,CAAC,CAA+B,CAAC,SAAS,EAAE,4BAA4B;YAC1F,GAAG,UAAU,CAAC,UAAU,EAAE,8CAA8C;YACxE,KAAK,CAAC,aAAa,EAAE,qBAAqB;SAC7C,CAAC;QAEF,OAAO;YACH,cAAc,EAAE,SAAS;YACzB,kBAAkB,EAAE,kBAAkB,CAAC,2BAA2B,CAAC,YAAY,CAAC;SACnF,CAAC;IACN,CAAC;IAED;;OAEG;IACK,oBAAoB;QACxB,6DAA6D;QAC7D,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC9C,gDAAgD;YAChD,qFAAqF;YACrF,MAAM,SAAS,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC;YAC/C,MAAM,eAAe,GAAG,SAAS,GAAG,EAAE,CAAC,CAAC,cAAc;YACtD,MAAM,YAAY,GAAG,SAAS,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,iBAAiB;YAC3D,MAAM,SAAS,GAAG,EAAE,CAAC;YACrB,MAAM,cAAc,GAAG,EAAE,CAAC;YAE1B,aAAa,IAAI,GAAG,GAAG,eAAe,GAAG,YAAY,GAAG,SAAS,GAAG,cAAc,CAAC;QACvF,CAAC;QAED,MAAM,MAAM,GAAG,EAAE,GAAG,aAAa,GAAG,GAAG,CAAC,CAAC,oCAAoC;QAC7E,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACjC,CAAC;IAED;;;OAGG;IACK,uBAAuB;QAC3B,4CAA4C;QAC5C,IAAI,IAAI,CAAC,oBAAoB,KAAK,IAAI,EAAE,CAAC;YACrC,OAAO,IAAI,CAAC,oBAAoB,CAAC;QACrC,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;QAEjD,sBAAsB;QACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC/C,MAAM,SAAS,GAAG,QAAQ,GAAG,qBAAqB,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,QAAQ,CAAC;QAEtF,uBAAuB;QACvB,MAAM,eAAe,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QACpD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QAEpE,yDAAyD;QACzD,MAAM,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,kBAAkB,CAAC,YAAY,CAAC;QAE5E,2EAA2E;QAC3E,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;QAC3E,MAAM,QAAQ,GAAG,uBAAuB,CAAC,gBAAgB,CAAC;QAE1D,IAAI,CAAC,oBAAoB,GAAG,cAAc,GAAG,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC;QAClF,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACrC,CAAC;IAED;;OAEG;IACK,gBAAgB;QACpB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACZ,OAAO,IAAI,CAAC,IAAI,CAAC;QACrB,CAAC;QAED,OAAO,gBAAgB,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9E,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,UAA8C;QACnE,MAAM,QAAQ,GAAwB,EAAE,CAAC;QAEzC,IAAI,UAAU,CAAC,aAAa,EAAE,CAAC;YAC3B,QAAQ,CAAC,IAAI,CAAC;gBACV,QAAQ,EAAE,eAAe,CAAC,WAAW;gBACrC,MAAM,EAAE,QAAQ,CAAC,WAAW;gBAC5B,IAAI,EAAE,UAAU,CAAC,aAAa;aACjC,CAAC,CAAC;QACP,CAAC;QAED,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;QACxD,IAAI,UAAU,EAAE,CAAC;YACb,QAAQ,CAAC,IAAI,CAAC;gBACV,QAAQ,EAAE,eAAe,CAAC,gBAAgB;gBAC1C,MAAM,EAAE,QAAQ,CAAC,gBAAgB;gBACjC,IAAI,EAAE,UAAU;aACnB,CAAC,CAAC;QACP,CAAC;QAED,IAAI,UAAU,CAAC,oBAAoB,IAAI,CAAC,UAAU,CAAC,2BAA2B,EAAE,CAAC;YAC7E,MAAM,IAAI,KAAK,CACX,mFAAmF,CACtF,CAAC;QACN,CAAC;QAED,IAAI,UAAU,CAAC,2BAA2B,EAAE,CAAC;YACzC,IAAI,CAAC,wBAAwB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACxD,CAAC;QAED,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED;;OAEG;IACK,mBAAmB;QACvB,MAAM,SAAS,GAAG,uBAAuB,CAAC,uBAAuB,EAAE,CAAC;QAEpE,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;YAC5C,MAAM,OAAO,GAAG,uBAAuB,CAAC,qBAAqB,EAAE,CAAC;YAChE,MAAM,IAAI,KAAK,CACX,mBAAmB,IAAI,CAAC,iBAAiB,CAAC,MAAM,yBAAyB;gBACrE,OAAO,SAAS,+BAA+B,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO;gBAChF,kBAAkB,IAAI,CAAC,oBAAoB,CAAC,MAAM,SAAS,CAClE,CAAC;QACN,CAAC;IACL,CAAC;CACJ"}
|
|
@@ -1,37 +1,137 @@
|
|
|
1
|
-
import { P2TRPayment, Psbt, PsbtInput } from '@btc-vision/bitcoin';
|
|
1
|
+
import { type P2TRPayment, Psbt, type PsbtInput } from '@btc-vision/bitcoin';
|
|
2
2
|
import { TransactionType } from '../enums/TransactionType.js';
|
|
3
|
-
import { TapLeafScript } from '../interfaces/Tap.js';
|
|
3
|
+
import type { TapLeafScript } from '../interfaces/Tap.js';
|
|
4
4
|
import { TransactionBuilder } from './TransactionBuilder.js';
|
|
5
|
-
import { ICustomTransactionParameters } from '../interfaces/ICustomTransactionParameters.js';
|
|
5
|
+
import type { ICustomTransactionParameters } from '../interfaces/ICustomTransactionParameters.js';
|
|
6
|
+
/**
|
|
7
|
+
* Class for interaction transactions
|
|
8
|
+
* @class CustomScriptTransaction
|
|
9
|
+
*/
|
|
6
10
|
export declare class CustomScriptTransaction extends TransactionBuilder<TransactionType.CUSTOM_CODE> {
|
|
7
11
|
type: TransactionType.CUSTOM_CODE;
|
|
12
|
+
/**
|
|
13
|
+
* The contract address
|
|
14
|
+
* @protected
|
|
15
|
+
*/
|
|
8
16
|
protected readonly _scriptAddress: string;
|
|
17
|
+
/**
|
|
18
|
+
* The tap leaf script
|
|
19
|
+
* @private
|
|
20
|
+
*/
|
|
9
21
|
protected tapLeafScript: TapLeafScript | null;
|
|
22
|
+
/**
|
|
23
|
+
* The target script redeem
|
|
24
|
+
* @private
|
|
25
|
+
*/
|
|
10
26
|
private targetScriptRedeem;
|
|
27
|
+
/**
|
|
28
|
+
* The left over funds script redeem
|
|
29
|
+
* @private
|
|
30
|
+
*/
|
|
11
31
|
private leftOverFundsScriptRedeem;
|
|
32
|
+
/**
|
|
33
|
+
* The compiled target script
|
|
34
|
+
* @private
|
|
35
|
+
*/
|
|
12
36
|
private readonly compiledTargetScript;
|
|
37
|
+
/**
|
|
38
|
+
* The script tree
|
|
39
|
+
* @private
|
|
40
|
+
*/
|
|
13
41
|
private readonly scriptTree;
|
|
42
|
+
/**
|
|
43
|
+
* The deployment bitcoin generator
|
|
44
|
+
* @private
|
|
45
|
+
*/
|
|
14
46
|
private generator;
|
|
47
|
+
/**
|
|
48
|
+
* The contract seed
|
|
49
|
+
* @private
|
|
50
|
+
*/
|
|
15
51
|
private readonly scriptSeed;
|
|
52
|
+
/**
|
|
53
|
+
* The contract signer
|
|
54
|
+
* @private
|
|
55
|
+
*/
|
|
16
56
|
private readonly contractSigner;
|
|
57
|
+
/**
|
|
58
|
+
* The contract salt random bytes
|
|
59
|
+
* @private
|
|
60
|
+
*/
|
|
17
61
|
private readonly randomBytes;
|
|
62
|
+
/**
|
|
63
|
+
* The witnesses
|
|
64
|
+
* @private
|
|
65
|
+
*/
|
|
18
66
|
private readonly witnesses;
|
|
19
67
|
private readonly annexData?;
|
|
20
68
|
constructor(parameters: ICustomTransactionParameters);
|
|
69
|
+
/**
|
|
70
|
+
* @description Get the contract address (PKSH)
|
|
71
|
+
*/
|
|
21
72
|
get scriptAddress(): string;
|
|
73
|
+
/**
|
|
74
|
+
* @description Get the P2TR address
|
|
75
|
+
*/
|
|
22
76
|
get p2trAddress(): string;
|
|
23
|
-
exportCompiledTargetScript():
|
|
24
|
-
|
|
25
|
-
|
|
77
|
+
exportCompiledTargetScript(): Uint8Array;
|
|
78
|
+
/**
|
|
79
|
+
* Get the random bytes used for the interaction
|
|
80
|
+
* @returns {Buffer} The random bytes
|
|
81
|
+
*/
|
|
82
|
+
getRndBytes(): Uint8Array;
|
|
83
|
+
/**
|
|
84
|
+
* Get the contract signer public key
|
|
85
|
+
* @protected
|
|
86
|
+
*/
|
|
87
|
+
protected contractSignerXOnlyPubKey(): Uint8Array;
|
|
88
|
+
/**
|
|
89
|
+
* Build the transaction
|
|
90
|
+
* @protected
|
|
91
|
+
*/
|
|
26
92
|
protected buildTransaction(): Promise<void>;
|
|
93
|
+
/**
|
|
94
|
+
* Sign the inputs
|
|
95
|
+
* @param {Psbt} transaction The transaction to sign
|
|
96
|
+
* @protected
|
|
97
|
+
*/
|
|
27
98
|
protected signInputs(transaction: Psbt): Promise<void>;
|
|
99
|
+
/**
|
|
100
|
+
* Get the tap output
|
|
101
|
+
* @protected
|
|
102
|
+
*/
|
|
28
103
|
protected generateScriptAddress(): P2TRPayment;
|
|
104
|
+
/**
|
|
105
|
+
* Generate the tap data
|
|
106
|
+
* @protected
|
|
107
|
+
*/
|
|
29
108
|
protected generateTapData(): P2TRPayment;
|
|
30
|
-
protected getScriptSolution(input: PsbtInput):
|
|
109
|
+
protected getScriptSolution(input: PsbtInput): Uint8Array[];
|
|
110
|
+
/**
|
|
111
|
+
* Generate the contract seed for the deployment
|
|
112
|
+
* @private
|
|
113
|
+
*/
|
|
31
114
|
private getContractSeed;
|
|
115
|
+
/**
|
|
116
|
+
* Finalize the transaction
|
|
117
|
+
* @param _inputIndex
|
|
118
|
+
* @param input
|
|
119
|
+
*/
|
|
32
120
|
private customFinalizer;
|
|
33
|
-
|
|
121
|
+
/**
|
|
122
|
+
* Generate the redeem scripts
|
|
123
|
+
* @private
|
|
124
|
+
*/
|
|
34
125
|
private generateRedeemScripts;
|
|
126
|
+
/**
|
|
127
|
+
* Get the second leaf script
|
|
128
|
+
* @private
|
|
129
|
+
*/
|
|
35
130
|
private getLeafScript;
|
|
131
|
+
/**
|
|
132
|
+
* Get the script tree
|
|
133
|
+
* @private
|
|
134
|
+
*/
|
|
36
135
|
private getScriptTree;
|
|
37
136
|
}
|
|
137
|
+
//# sourceMappingURL=CustomScriptTransaction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CustomScriptTransaction.d.ts","sourceRoot":"","sources":["../../../src/transaction/builders/CustomScriptTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,KAAK,WAAW,EAEhB,IAAI,EACJ,KAAK,SAAS,EAMjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAO7D,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,+CAA+C,CAAC;AAElG;;;GAGG;AACH,qBAAa,uBAAwB,SAAQ,kBAAkB,CAAC,eAAe,CAAC,WAAW,CAAC;IACjF,IAAI,EAAE,eAAe,CAAC,WAAW,CAA+B;IAEvE;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAC1C;;;OAGG;IACH,UAAmB,aAAa,EAAE,aAAa,GAAG,IAAI,CAAQ;IAC9D;;;OAGG;IACH,OAAO,CAAC,kBAAkB,CAA4B;IACtD;;;OAGG;IACH,OAAO,CAAC,yBAAyB,CAA4B;IAC7D;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAa;IAClD;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAU;IACrC;;;OAGG;IACH,OAAO,CAAC,SAAS,CAAkB;IAEnC;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IAExC;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA2B;IAE1D;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IAEzC;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAa;gBAErB,UAAU,EAAE,4BAA4B;IAwB3D;;OAEG;IACH,IAAW,aAAa,IAAI,MAAM,CAEjC;IAED;;OAEG;IACH,IAAW,WAAW,IAAI,MAAM,CAE/B;IAEM,0BAA0B,IAAI,UAAU;IAI/C;;;OAGG;IACI,WAAW,IAAI,UAAU;IAIhC;;;OAGG;IACH,SAAS,CAAC,yBAAyB,IAAI,UAAU;IAIjD;;;OAGG;cACsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAsC1D;;;;OAIG;cACsB,UAAU,CAAC,WAAW,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAsDrE;;;OAGG;cACgB,qBAAqB,IAAI,WAAW;IASvD;;;OAGG;cACgB,eAAe,IAAI,WAAW;IAsBjD,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAE,SAAS,GAAG,UAAU,EAAE;IAe3D;;;OAGG;IACH,OAAO,CAAC,eAAe;IAIvB;;;;OAIG;IACH,OAAO,CAAC,eAAe,CA0BrB;IAEF;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAgB7B;;;OAGG;IACH,OAAO,CAAC,aAAa;IAIrB;;;OAGG;IACH,OAAO,CAAC,aAAa;CAcxB"}
|