@btc-vision/transaction 1.8.0-beta.3 → 1.8.0-beta.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +3558 -3167
- 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 +17 -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 +274 -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 +9 -4
- 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 +4 -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 +218 -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 +46 -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 +35 -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 +23 -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 +375 -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 +43 -5
- 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 +4 -7
- 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 +14 -148
- package/src/keypair/EcKeyPair.ts +104 -116
- package/src/keypair/MessageSigner.ts +70 -150
- package/src/keypair/Wallet.ts +56 -241
- package/src/metadata/ContractBaseMetadata.ts +2 -2
- package/src/mnemonic/Mnemonic.ts +31 -222
- 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 +26 -14
- 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 +99 -81
- 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 +9 -9
- 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,17 +1,23 @@
|
|
|
1
1
|
import { TransactionType } from '../enums/TransactionType.js';
|
|
2
|
-
import { IDeploymentParameters } from '../interfaces/ITransactionParameters.js';
|
|
2
|
+
import type { IDeploymentParameters } from '../interfaces/ITransactionParameters.js';
|
|
3
3
|
import {
|
|
4
|
+
concat,
|
|
4
5
|
crypto as bitCrypto,
|
|
5
|
-
|
|
6
|
+
type FinalScriptsFunc,
|
|
7
|
+
fromHex,
|
|
8
|
+
type P2TRPayment,
|
|
6
9
|
PaymentType,
|
|
7
10
|
Psbt,
|
|
8
|
-
PsbtInput,
|
|
9
|
-
|
|
10
|
-
|
|
11
|
+
type PsbtInput,
|
|
12
|
+
type Script,
|
|
13
|
+
type Signer,
|
|
14
|
+
type TapScriptSig,
|
|
15
|
+
type Taptree,
|
|
16
|
+
toHex,
|
|
11
17
|
toXOnly,
|
|
12
18
|
} from '@btc-vision/bitcoin';
|
|
13
19
|
import { TransactionBuilder } from './TransactionBuilder.js';
|
|
14
|
-
import { TapLeafScript } from '../interfaces/Tap.js';
|
|
20
|
+
import type { TapLeafScript } from '../interfaces/Tap.js';
|
|
15
21
|
import {
|
|
16
22
|
DeploymentGenerator,
|
|
17
23
|
versionBuffer,
|
|
@@ -20,13 +26,14 @@ import { EcKeyPair } from '../../keypair/EcKeyPair.js';
|
|
|
20
26
|
import { BitcoinUtils } from '../../utils/BitcoinUtils.js';
|
|
21
27
|
import { Compressor } from '../../bytecode/Compressor.js';
|
|
22
28
|
import { SharedInteractionTransaction } from './SharedInteractionTransaction.js';
|
|
23
|
-
import {
|
|
29
|
+
import { type UniversalSigner } from '@btc-vision/ecpair';
|
|
30
|
+
import { isUniversalSigner } from '../../signer/TweakedSigner.js';
|
|
24
31
|
import { Address } from '../../keypair/Address.js';
|
|
25
32
|
import { UnisatSigner } from '../browser/extensions/UnisatSigner.js';
|
|
26
33
|
import { TimeLockGenerator } from '../mineable/TimelockGenerator.js';
|
|
27
|
-
import { IChallengeSolution } from '../../epoch/interfaces/IChallengeSolution.js';
|
|
28
|
-
import { Feature, FeaturePriority, Features } from '../../generators/Features.js';
|
|
29
|
-
import { IP2WSHAddress } from '../mineable/IP2WSHAddress.js';
|
|
34
|
+
import type { IChallengeSolution } from '../../epoch/interfaces/IChallengeSolution.js';
|
|
35
|
+
import { type Feature, FeaturePriority, Features } from '../../generators/Features.js';
|
|
36
|
+
import type { IP2WSHAddress } from '../mineable/IP2WSHAddress.js';
|
|
30
37
|
|
|
31
38
|
export class DeploymentTransaction extends TransactionBuilder<TransactionType.DEPLOYMENT> {
|
|
32
39
|
public static readonly MAXIMUM_CONTRACT_SIZE = 128 * 1024;
|
|
@@ -45,7 +52,7 @@ export class DeploymentTransaction extends TransactionBuilder<TransactionType.DE
|
|
|
45
52
|
* The tap leaf script
|
|
46
53
|
* @private
|
|
47
54
|
*/
|
|
48
|
-
protected tapLeafScript: TapLeafScript | null = null;
|
|
55
|
+
protected override tapLeafScript: TapLeafScript | null = null;
|
|
49
56
|
private readonly deploymentVersion: number = 0x00;
|
|
50
57
|
/**
|
|
51
58
|
* The target script redeem
|
|
@@ -61,7 +68,7 @@ export class DeploymentTransaction extends TransactionBuilder<TransactionType.DE
|
|
|
61
68
|
* The compiled target script
|
|
62
69
|
* @private
|
|
63
70
|
*/
|
|
64
|
-
private readonly compiledTargetScript:
|
|
71
|
+
private readonly compiledTargetScript: Uint8Array;
|
|
65
72
|
/**
|
|
66
73
|
* The script tree
|
|
67
74
|
* @private
|
|
@@ -77,25 +84,25 @@ export class DeploymentTransaction extends TransactionBuilder<TransactionType.DE
|
|
|
77
84
|
* The contract seed
|
|
78
85
|
* @private
|
|
79
86
|
*/
|
|
80
|
-
private readonly contractSeed:
|
|
87
|
+
private readonly contractSeed: Uint8Array;
|
|
81
88
|
|
|
82
89
|
/**
|
|
83
90
|
* The contract bytecode
|
|
84
91
|
* @private
|
|
85
92
|
*/
|
|
86
|
-
private readonly bytecode:
|
|
93
|
+
private readonly bytecode: Uint8Array;
|
|
87
94
|
|
|
88
95
|
/**
|
|
89
96
|
* Constructor calldata
|
|
90
97
|
* @private
|
|
91
98
|
*/
|
|
92
|
-
private readonly calldata?:
|
|
99
|
+
private readonly calldata?: Uint8Array;
|
|
93
100
|
|
|
94
101
|
/**
|
|
95
102
|
* The contract signer
|
|
96
103
|
* @private
|
|
97
104
|
*/
|
|
98
|
-
private readonly contractSigner: Signer |
|
|
105
|
+
private readonly contractSigner: Signer | UniversalSigner;
|
|
99
106
|
|
|
100
107
|
/**
|
|
101
108
|
* The contract public key
|
|
@@ -107,7 +114,7 @@ export class DeploymentTransaction extends TransactionBuilder<TransactionType.DE
|
|
|
107
114
|
* The contract salt random bytes
|
|
108
115
|
* @private
|
|
109
116
|
*/
|
|
110
|
-
private readonly randomBytes:
|
|
117
|
+
private readonly randomBytes: Uint8Array;
|
|
111
118
|
private _computedAddress: string | undefined;
|
|
112
119
|
|
|
113
120
|
public constructor(parameters: IDeploymentParameters) {
|
|
@@ -117,7 +124,9 @@ export class DeploymentTransaction extends TransactionBuilder<TransactionType.DE
|
|
|
117
124
|
throw new Error('MLDSA signer must be defined to deploy a contract.');
|
|
118
125
|
}
|
|
119
126
|
|
|
120
|
-
this.bytecode = Compressor.compress(
|
|
127
|
+
this.bytecode = Compressor.compress(
|
|
128
|
+
new Uint8Array([...versionBuffer, ...parameters.bytecode]),
|
|
129
|
+
);
|
|
121
130
|
|
|
122
131
|
this.verifyBytecode();
|
|
123
132
|
|
|
@@ -141,16 +150,16 @@ export class DeploymentTransaction extends TransactionBuilder<TransactionType.DE
|
|
|
141
150
|
this.contractSigner = EcKeyPair.fromSeedKeyPair(this.contractSeed, this.network);
|
|
142
151
|
|
|
143
152
|
this.deploymentGenerator = new DeploymentGenerator(
|
|
144
|
-
|
|
153
|
+
this.signer.publicKey,
|
|
145
154
|
this.contractSignerXOnlyPubKey(),
|
|
146
155
|
this.network,
|
|
147
156
|
);
|
|
148
157
|
|
|
149
158
|
if (parameters.compiledTargetScript) {
|
|
150
|
-
if (
|
|
159
|
+
if (parameters.compiledTargetScript instanceof Uint8Array) {
|
|
151
160
|
this.compiledTargetScript = parameters.compiledTargetScript;
|
|
152
161
|
} else if (typeof parameters.compiledTargetScript === 'string') {
|
|
153
|
-
this.compiledTargetScript =
|
|
162
|
+
this.compiledTargetScript = fromHex(parameters.compiledTargetScript);
|
|
154
163
|
} else {
|
|
155
164
|
throw new Error('Invalid compiled target script format.');
|
|
156
165
|
}
|
|
@@ -169,7 +178,7 @@ export class DeploymentTransaction extends TransactionBuilder<TransactionType.DE
|
|
|
169
178
|
|
|
170
179
|
this.internalInit();
|
|
171
180
|
|
|
172
|
-
this._contractPubKey = '0x' + this.contractSeed
|
|
181
|
+
this._contractPubKey = '0x' + toHex(this.contractSeed);
|
|
173
182
|
this._contractAddress = new Address(this.contractSeed);
|
|
174
183
|
}
|
|
175
184
|
|
|
@@ -194,7 +203,7 @@ export class DeploymentTransaction extends TransactionBuilder<TransactionType.DE
|
|
|
194
203
|
return this.to || this.getScriptAddress();
|
|
195
204
|
}
|
|
196
205
|
|
|
197
|
-
public exportCompiledTargetScript():
|
|
206
|
+
public exportCompiledTargetScript(): Uint8Array {
|
|
198
207
|
return this.compiledTargetScript;
|
|
199
208
|
}
|
|
200
209
|
|
|
@@ -202,7 +211,7 @@ export class DeploymentTransaction extends TransactionBuilder<TransactionType.DE
|
|
|
202
211
|
* Get the random bytes used for the interaction
|
|
203
212
|
* @returns {Buffer} The random bytes
|
|
204
213
|
*/
|
|
205
|
-
public getRndBytes():
|
|
214
|
+
public getRndBytes(): Uint8Array {
|
|
206
215
|
return this.randomBytes;
|
|
207
216
|
}
|
|
208
217
|
|
|
@@ -232,8 +241,8 @@ export class DeploymentTransaction extends TransactionBuilder<TransactionType.DE
|
|
|
232
241
|
* Get the contract signer public key
|
|
233
242
|
* @protected
|
|
234
243
|
*/
|
|
235
|
-
protected contractSignerXOnlyPubKey():
|
|
236
|
-
return toXOnly(
|
|
244
|
+
protected contractSignerXOnlyPubKey(): Uint8Array {
|
|
245
|
+
return toXOnly(this.contractSigner.publicKey);
|
|
237
246
|
}
|
|
238
247
|
|
|
239
248
|
/**
|
|
@@ -279,7 +288,7 @@ export class DeploymentTransaction extends TransactionBuilder<TransactionType.DE
|
|
|
279
288
|
const signer: UnisatSigner = this.signer as UnisatSigner;
|
|
280
289
|
|
|
281
290
|
// first, we sign the first input with the script signer.
|
|
282
|
-
await this.signInput(transaction, transaction.data.inputs[0], 0, this.contractSigner);
|
|
291
|
+
await this.signInput(transaction, transaction.data.inputs[0] as PsbtInput, 0, this.contractSigner);
|
|
283
292
|
|
|
284
293
|
// then, we sign all the remaining inputs with the wallet signer.
|
|
285
294
|
await signer.multiSignPsbt([transaction]);
|
|
@@ -303,7 +312,7 @@ export class DeploymentTransaction extends TransactionBuilder<TransactionType.DE
|
|
|
303
312
|
* @param {Psbt} transaction The transaction to sign
|
|
304
313
|
* @protected
|
|
305
314
|
*/
|
|
306
|
-
protected async signInputs(transaction: Psbt): Promise<void> {
|
|
315
|
+
protected override async signInputs(transaction: Psbt): Promise<void> {
|
|
307
316
|
if (!this.contractSigner) {
|
|
308
317
|
await super.signInputs(transaction);
|
|
309
318
|
|
|
@@ -315,21 +324,45 @@ export class DeploymentTransaction extends TransactionBuilder<TransactionType.DE
|
|
|
315
324
|
return;
|
|
316
325
|
}
|
|
317
326
|
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
327
|
+
// Input 0: sequential (contractSigner + main signer, custom finalizer)
|
|
328
|
+
transaction.signInput(0, this.contractSigner);
|
|
329
|
+
transaction.signInput(0, this.getSignerKey());
|
|
330
|
+
transaction.finalizeInput(0, this.customFinalizer.bind(this));
|
|
331
|
+
|
|
332
|
+
// Inputs 1+: parallel key-path if available, then sequential for remaining
|
|
333
|
+
const signedIndices = new Set<number>([0]);
|
|
334
|
+
|
|
335
|
+
if (this.canUseParallelSigning && isUniversalSigner(this.signer)) {
|
|
336
|
+
try {
|
|
337
|
+
const result = await this.signKeyPathInputsParallel(
|
|
338
|
+
transaction,
|
|
339
|
+
new Set([0]),
|
|
340
|
+
);
|
|
341
|
+
if (result.success) {
|
|
342
|
+
for (const idx of result.signatures.keys()) signedIndices.add(idx);
|
|
343
|
+
}
|
|
344
|
+
} catch (e) {
|
|
345
|
+
this.error(
|
|
346
|
+
`Parallel signing failed: ${(e as Error).message}`,
|
|
347
|
+
);
|
|
348
|
+
}
|
|
349
|
+
}
|
|
323
350
|
|
|
324
|
-
|
|
325
|
-
|
|
351
|
+
for (let i = 1; i < transaction.data.inputs.length; i++) {
|
|
352
|
+
if (!signedIndices.has(i)) {
|
|
326
353
|
transaction.signInput(i, this.getSignerKey());
|
|
354
|
+
}
|
|
355
|
+
}
|
|
327
356
|
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
357
|
+
// Finalize inputs 1+
|
|
358
|
+
for (let i = 1; i < transaction.data.inputs.length; i++) {
|
|
359
|
+
try {
|
|
360
|
+
transaction.finalizeInput(
|
|
361
|
+
i,
|
|
362
|
+
this.customFinalizerP2SH.bind(this) as FinalScriptsFunc,
|
|
363
|
+
);
|
|
364
|
+
} catch {
|
|
365
|
+
transaction.finalizeInput(i);
|
|
333
366
|
}
|
|
334
367
|
}
|
|
335
368
|
}
|
|
@@ -419,16 +452,16 @@ export class DeploymentTransaction extends TransactionBuilder<TransactionType.DE
|
|
|
419
452
|
* Generate the contract seed for the deployment
|
|
420
453
|
* @private
|
|
421
454
|
*/
|
|
422
|
-
private getContractSeed():
|
|
455
|
+
private getContractSeed(): Uint8Array {
|
|
423
456
|
if (!this.bytecode) {
|
|
424
457
|
throw new Error('Bytecode is required');
|
|
425
458
|
}
|
|
426
459
|
|
|
427
460
|
// Concatenate deployer pubkey, salt, and sha256(bytecode)
|
|
428
|
-
const deployerPubKey
|
|
429
|
-
const salt
|
|
430
|
-
const sha256OfBytecode
|
|
431
|
-
const buf
|
|
461
|
+
const deployerPubKey = this.internalPubKeyToXOnly();
|
|
462
|
+
const salt = bitCrypto.hash256(this.randomBytes);
|
|
463
|
+
const sha256OfBytecode = bitCrypto.hash256(this.bytecode);
|
|
464
|
+
const buf = concat([deployerPubKey, salt, sha256OfBytecode]);
|
|
432
465
|
|
|
433
466
|
return bitCrypto.hash256(buf);
|
|
434
467
|
}
|
|
@@ -449,8 +482,8 @@ export class DeploymentTransaction extends TransactionBuilder<TransactionType.DE
|
|
|
449
482
|
|
|
450
483
|
const scriptSolution = [
|
|
451
484
|
this.randomBytes,
|
|
452
|
-
input.tapScriptSig[0].signature,
|
|
453
|
-
input.tapScriptSig[1].signature,
|
|
485
|
+
(input.tapScriptSig[0] as TapScriptSig).signature,
|
|
486
|
+
(input.tapScriptSig[1] as TapScriptSig).signature,
|
|
454
487
|
];
|
|
455
488
|
|
|
456
489
|
const witness = scriptSolution
|
|
@@ -462,20 +495,6 @@ export class DeploymentTransaction extends TransactionBuilder<TransactionType.DE
|
|
|
462
495
|
};
|
|
463
496
|
};
|
|
464
497
|
|
|
465
|
-
/**
|
|
466
|
-
* Get the public keys for the redeem scripts
|
|
467
|
-
* @private
|
|
468
|
-
*/
|
|
469
|
-
private getPubKeys(): Buffer[] {
|
|
470
|
-
const pubkeys = [Buffer.from(this.signer.publicKey)];
|
|
471
|
-
|
|
472
|
-
if (this.contractSigner) {
|
|
473
|
-
pubkeys.push(Buffer.from(this.contractSigner.publicKey));
|
|
474
|
-
}
|
|
475
|
-
|
|
476
|
-
return pubkeys;
|
|
477
|
-
}
|
|
478
|
-
|
|
479
498
|
/**
|
|
480
499
|
* Generate the redeem scripts
|
|
481
500
|
* @private
|
|
@@ -484,7 +503,7 @@ export class DeploymentTransaction extends TransactionBuilder<TransactionType.DE
|
|
|
484
503
|
this.targetScriptRedeem = {
|
|
485
504
|
name: PaymentType.P2TR,
|
|
486
505
|
//pubkeys: this.getPubKeys(),
|
|
487
|
-
output: this.compiledTargetScript,
|
|
506
|
+
output: this.compiledTargetScript as Script,
|
|
488
507
|
redeemVersion: 192,
|
|
489
508
|
};
|
|
490
509
|
|
|
@@ -500,7 +519,7 @@ export class DeploymentTransaction extends TransactionBuilder<TransactionType.DE
|
|
|
500
519
|
* Get the second leaf script
|
|
501
520
|
* @private
|
|
502
521
|
*/
|
|
503
|
-
private getLeafScript():
|
|
522
|
+
private getLeafScript(): Script {
|
|
504
523
|
return this.LOCK_LEAF_SCRIPT;
|
|
505
524
|
}
|
|
506
525
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { TransactionType } from '../enums/TransactionType.js';
|
|
2
|
-
import { IFundingTransactionParameters } from '../interfaces/ITransactionParameters.js';
|
|
3
|
-
import { opcodes, script, Signer } from '@btc-vision/bitcoin';
|
|
2
|
+
import type { IFundingTransactionParameters } from '../interfaces/ITransactionParameters.js';
|
|
3
|
+
import { fromHex, opcodes, type Script, script, type Signer, toSatoshi } from '@btc-vision/bitcoin';
|
|
4
4
|
import { TransactionBuilder } from './TransactionBuilder.js';
|
|
5
|
-
import {
|
|
5
|
+
import { type UniversalSigner } from '@btc-vision/ecpair';
|
|
6
6
|
|
|
7
7
|
export class FundingTransaction extends TransactionBuilder<TransactionType.FUNDING> {
|
|
8
8
|
public readonly type: TransactionType.FUNDING = TransactionType.FUNDING;
|
|
@@ -30,18 +30,18 @@ export class FundingTransaction extends TransactionBuilder<TransactionType.FUNDI
|
|
|
30
30
|
if (this.splitInputsInto > 1) {
|
|
31
31
|
this.splitInputs(this.amount);
|
|
32
32
|
} else if (this.isPubKeyDestination) {
|
|
33
|
-
const pubKeyScript = script.compile([
|
|
34
|
-
|
|
33
|
+
const pubKeyScript: Script = script.compile([
|
|
34
|
+
fromHex(this.to.replace('0x', '')),
|
|
35
35
|
opcodes.OP_CHECKSIG,
|
|
36
36
|
]);
|
|
37
37
|
|
|
38
38
|
this.addOutput({
|
|
39
|
-
value:
|
|
39
|
+
value: toSatoshi(this.amount),
|
|
40
40
|
script: pubKeyScript,
|
|
41
41
|
});
|
|
42
42
|
} else {
|
|
43
43
|
this.addOutput({
|
|
44
|
-
value:
|
|
44
|
+
value: toSatoshi(this.amount),
|
|
45
45
|
address: this.to,
|
|
46
46
|
});
|
|
47
47
|
}
|
|
@@ -63,19 +63,19 @@ export class FundingTransaction extends TransactionBuilder<TransactionType.FUNDI
|
|
|
63
63
|
for (let i = 0; i < this.splitInputsInto; i++) {
|
|
64
64
|
if (this.isPubKeyDestination) {
|
|
65
65
|
this.addOutput({
|
|
66
|
-
value:
|
|
67
|
-
script:
|
|
66
|
+
value: toSatoshi(splitAmount),
|
|
67
|
+
script: fromHex(this.to.slice(2)) as Script,
|
|
68
68
|
});
|
|
69
69
|
} else {
|
|
70
70
|
this.addOutput({
|
|
71
|
-
value:
|
|
71
|
+
value: toSatoshi(splitAmount),
|
|
72
72
|
address: this.to,
|
|
73
73
|
});
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
77
|
|
|
78
|
-
protected override getSignerKey(): Signer |
|
|
78
|
+
protected override getSignerKey(): Signer | UniversalSigner {
|
|
79
79
|
return this.signer;
|
|
80
80
|
}
|
|
81
81
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { Taptree } from '@btc-vision/bitcoin';
|
|
1
|
+
import { fromHex, type Taptree } from '@btc-vision/bitcoin';
|
|
2
2
|
import { TransactionType } from '../enums/TransactionType.js';
|
|
3
|
-
import { TapLeafScript } from '../interfaces/Tap.js';
|
|
4
|
-
import { IInteractionParameters } from '../interfaces/ITransactionParameters.js';
|
|
3
|
+
import type { TapLeafScript } from '../interfaces/Tap.js';
|
|
4
|
+
import type { IInteractionParameters } from '../interfaces/ITransactionParameters.js';
|
|
5
5
|
import { SharedInteractionTransaction } from './SharedInteractionTransaction.js';
|
|
6
|
-
import { Feature, FeaturePriority, Features } from '../../generators/Features.js';
|
|
6
|
+
import { type Feature, FeaturePriority, Features } from '../../generators/Features.js';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* Class for interaction transactions
|
|
@@ -12,16 +12,16 @@ import { Feature, FeaturePriority, Features } from '../../generators/Features.js
|
|
|
12
12
|
export class InteractionTransaction extends SharedInteractionTransaction<TransactionType.INTERACTION> {
|
|
13
13
|
public type: TransactionType.INTERACTION = TransactionType.INTERACTION;
|
|
14
14
|
|
|
15
|
-
protected readonly compiledTargetScript:
|
|
15
|
+
protected readonly compiledTargetScript: Uint8Array;
|
|
16
16
|
protected readonly scriptTree: Taptree;
|
|
17
17
|
|
|
18
|
-
protected tapLeafScript: TapLeafScript | null = null;
|
|
18
|
+
protected override tapLeafScript: TapLeafScript | null = null;
|
|
19
19
|
|
|
20
20
|
/**
|
|
21
21
|
* Contract secret for the interaction
|
|
22
22
|
* @protected
|
|
23
23
|
*/
|
|
24
|
-
protected readonly contractSecret:
|
|
24
|
+
protected readonly contractSecret: Uint8Array;
|
|
25
25
|
|
|
26
26
|
public constructor(parameters: IInteractionParameters) {
|
|
27
27
|
super(parameters);
|
|
@@ -30,17 +30,17 @@ export class InteractionTransaction extends SharedInteractionTransaction<Transac
|
|
|
30
30
|
throw new Error('parameters.contract is required for interaction transaction.');
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
this.contractSecret =
|
|
33
|
+
this.contractSecret = fromHex(parameters.contract.replace('0x', ''));
|
|
34
34
|
|
|
35
35
|
if (this.contractSecret.length !== 32) {
|
|
36
36
|
throw new Error('Invalid contract secret length. Expected 32 bytes.');
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
if (parameters.compiledTargetScript) {
|
|
40
|
-
if (
|
|
40
|
+
if (parameters.compiledTargetScript instanceof Uint8Array) {
|
|
41
41
|
this.compiledTargetScript = parameters.compiledTargetScript;
|
|
42
42
|
} else if (typeof parameters.compiledTargetScript === 'string') {
|
|
43
|
-
this.compiledTargetScript =
|
|
43
|
+
this.compiledTargetScript = fromHex(parameters.compiledTargetScript);
|
|
44
44
|
} else {
|
|
45
45
|
throw new Error('Invalid compiled target script format.');
|
|
46
46
|
}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { concat, fromHex, Psbt, type PsbtInput, toXOnly } from '@btc-vision/bitcoin';
|
|
2
|
+
import type { UTXO } from '../../utxo/interfaces/IUTXO.js';
|
|
3
3
|
import { TransactionType } from '../enums/TransactionType.js';
|
|
4
|
-
import { IInteractionParameters } from '../interfaces/ITransactionParameters.js';
|
|
4
|
+
import type { IInteractionParameters } from '../interfaces/ITransactionParameters.js';
|
|
5
5
|
import { TransactionBuilder } from './TransactionBuilder.js';
|
|
6
6
|
import { MessageSigner } from '../../keypair/MessageSigner.js';
|
|
7
7
|
import { Compressor } from '../../bytecode/Compressor.js';
|
|
8
8
|
import { P2WDAGenerator } from '../../generators/builders/P2WDAGenerator.js';
|
|
9
|
-
import { Feature, FeaturePriority, Features } from '../../generators/Features.js';
|
|
9
|
+
import { type Feature, FeaturePriority, Features } from '../../generators/Features.js';
|
|
10
10
|
import { BitcoinUtils } from '../../utils/BitcoinUtils.js';
|
|
11
11
|
import { EcKeyPair } from '../../keypair/EcKeyPair.js';
|
|
12
|
-
import { IChallengeSolution } from '../../epoch/interfaces/IChallengeSolution.js';
|
|
13
|
-
import {
|
|
12
|
+
import type { IChallengeSolution } from '../../epoch/interfaces/IChallengeSolution.js';
|
|
13
|
+
import { type UniversalSigner } from '@btc-vision/ecpair';
|
|
14
14
|
import { P2WDADetector } from '../../p2wda/P2WDADetector.js';
|
|
15
|
-
import { IP2WSHAddress } from '../mineable/IP2WSHAddress.js';
|
|
15
|
+
import type { IP2WSHAddress } from '../mineable/IP2WSHAddress.js';
|
|
16
16
|
import { TimeLockGenerator } from '../mineable/TimelockGenerator.js';
|
|
17
17
|
|
|
18
18
|
/**
|
|
@@ -33,19 +33,18 @@ export class InteractionTransactionP2WDA extends TransactionBuilder<TransactionT
|
|
|
33
33
|
* @protected
|
|
34
34
|
*/
|
|
35
35
|
protected readonly disableAutoRefund: boolean;
|
|
36
|
-
private readonly
|
|
37
|
-
private readonly
|
|
38
|
-
private readonly calldata: Buffer;
|
|
36
|
+
private readonly contractSecret: Uint8Array;
|
|
37
|
+
private readonly calldata: Uint8Array;
|
|
39
38
|
private readonly challenge: IChallengeSolution;
|
|
40
|
-
private readonly randomBytes:
|
|
39
|
+
private readonly randomBytes: Uint8Array;
|
|
41
40
|
private p2wdaGenerator: P2WDAGenerator;
|
|
42
|
-
private scriptSigner:
|
|
41
|
+
private scriptSigner: UniversalSigner;
|
|
43
42
|
private p2wdaInputIndices: Set<number> = new Set();
|
|
44
43
|
/**
|
|
45
44
|
* The compiled operation data from CalldataGenerator
|
|
46
45
|
* This is exactly what would go in a taproot script, but we put it in witness instead
|
|
47
46
|
*/
|
|
48
|
-
private readonly compiledOperationData:
|
|
47
|
+
private readonly compiledOperationData: Uint8Array | null = null;
|
|
49
48
|
|
|
50
49
|
public constructor(parameters: IInteractionParameters) {
|
|
51
50
|
super(parameters);
|
|
@@ -67,8 +66,7 @@ export class InteractionTransactionP2WDA extends TransactionBuilder<TransactionT
|
|
|
67
66
|
}
|
|
68
67
|
|
|
69
68
|
this.disableAutoRefund = parameters.disableAutoRefund || false;
|
|
70
|
-
this.
|
|
71
|
-
this.contractSecret = Buffer.from(parameters.contract.replace('0x', ''), 'hex');
|
|
69
|
+
this.contractSecret = fromHex(parameters.contract.replace('0x', ''));
|
|
72
70
|
this.calldata = Compressor.compress(parameters.calldata);
|
|
73
71
|
this.challenge = parameters.challenge;
|
|
74
72
|
this.randomBytes = parameters.randomBytes || BitcoinUtils.rndBytes();
|
|
@@ -79,7 +77,7 @@ export class InteractionTransactionP2WDA extends TransactionBuilder<TransactionT
|
|
|
79
77
|
// Create the P2WDA generator instead of CalldataGenerator
|
|
80
78
|
// P2WDA needs a different data format optimized for witness embedding
|
|
81
79
|
this.p2wdaGenerator = new P2WDAGenerator(
|
|
82
|
-
|
|
80
|
+
this.signer.publicKey,
|
|
83
81
|
this.scriptSignerXOnlyPubKey(),
|
|
84
82
|
this.network,
|
|
85
83
|
);
|
|
@@ -98,10 +96,10 @@ export class InteractionTransactionP2WDA extends TransactionBuilder<TransactionT
|
|
|
98
96
|
this.validateP2WDAInputs();
|
|
99
97
|
|
|
100
98
|
if (parameters.compiledTargetScript) {
|
|
101
|
-
if (
|
|
99
|
+
if (parameters.compiledTargetScript instanceof Uint8Array) {
|
|
102
100
|
this.compiledOperationData = parameters.compiledTargetScript;
|
|
103
101
|
} else if (typeof parameters.compiledTargetScript === 'string') {
|
|
104
|
-
this.compiledOperationData =
|
|
102
|
+
this.compiledOperationData = fromHex(parameters.compiledTargetScript);
|
|
105
103
|
} else {
|
|
106
104
|
throw new Error('Invalid compiled target script format.');
|
|
107
105
|
}
|
|
@@ -124,7 +122,7 @@ export class InteractionTransactionP2WDA extends TransactionBuilder<TransactionT
|
|
|
124
122
|
/**
|
|
125
123
|
* Get random bytes (for compatibility if needed elsewhere)
|
|
126
124
|
*/
|
|
127
|
-
public getRndBytes():
|
|
125
|
+
public getRndBytes(): Uint8Array {
|
|
128
126
|
return this.randomBytes;
|
|
129
127
|
}
|
|
130
128
|
|
|
@@ -138,7 +136,7 @@ export class InteractionTransactionP2WDA extends TransactionBuilder<TransactionT
|
|
|
138
136
|
/**
|
|
139
137
|
* Get contract secret (for compatibility if needed elsewhere)
|
|
140
138
|
*/
|
|
141
|
-
public getContractSecret():
|
|
139
|
+
public getContractSecret(): Uint8Array {
|
|
142
140
|
return this.contractSecret;
|
|
143
141
|
}
|
|
144
142
|
|
|
@@ -173,7 +171,7 @@ export class InteractionTransactionP2WDA extends TransactionBuilder<TransactionT
|
|
|
173
171
|
protected override async signInputs(transaction: Psbt): Promise<void> {
|
|
174
172
|
// Sign all inputs
|
|
175
173
|
for (let i = 0; i < transaction.data.inputs.length; i++) {
|
|
176
|
-
await this.signInput(transaction, transaction.data.inputs[i], i, this.signer);
|
|
174
|
+
await this.signInput(transaction, transaction.data.inputs[i] as PsbtInput, i, this.signer);
|
|
177
175
|
}
|
|
178
176
|
|
|
179
177
|
// Finalize with appropriate finalizers
|
|
@@ -221,35 +219,35 @@ export class InteractionTransactionP2WDA extends TransactionBuilder<TransactionT
|
|
|
221
219
|
/**
|
|
222
220
|
* Generate keypair from seed (same as SharedInteractionTransaction)
|
|
223
221
|
*/
|
|
224
|
-
private generateKeyPairFromSeed():
|
|
222
|
+
private generateKeyPairFromSeed(): UniversalSigner {
|
|
225
223
|
return EcKeyPair.fromSeedKeyPair(this.randomBytes, this.network);
|
|
226
224
|
}
|
|
227
225
|
|
|
228
226
|
/**
|
|
229
227
|
* Get script signer x-only pubkey (same as SharedInteractionTransaction)
|
|
230
228
|
*/
|
|
231
|
-
private scriptSignerXOnlyPubKey():
|
|
232
|
-
return toXOnly(
|
|
229
|
+
private scriptSignerXOnlyPubKey(): Uint8Array {
|
|
230
|
+
return toXOnly(this.scriptSigner.publicKey);
|
|
233
231
|
}
|
|
234
232
|
|
|
235
233
|
/**
|
|
236
234
|
* Validate that input 0 is P2WDA
|
|
237
235
|
*/
|
|
238
236
|
private validateP2WDAInputs(): void {
|
|
239
|
-
if (this.utxos.length === 0 || !P2WDADetector.isP2WDAUTXO(this.utxos[0])) {
|
|
237
|
+
if (this.utxos.length === 0 || !P2WDADetector.isP2WDAUTXO(this.utxos[0] as UTXO)) {
|
|
240
238
|
throw new Error('Input 0 must be a P2WDA UTXO');
|
|
241
239
|
}
|
|
242
240
|
|
|
243
241
|
// Track all P2WDA inputs
|
|
244
242
|
for (let i = 0; i < this.utxos.length; i++) {
|
|
245
|
-
if (P2WDADetector.isP2WDAUTXO(this.utxos[i])) {
|
|
243
|
+
if (P2WDADetector.isP2WDAUTXO(this.utxos[i] as UTXO)) {
|
|
246
244
|
this.p2wdaInputIndices.add(i);
|
|
247
245
|
}
|
|
248
246
|
}
|
|
249
247
|
|
|
250
248
|
for (let i = 0; i < this.optionalInputs.length; i++) {
|
|
251
249
|
const actualIndex = this.utxos.length + i;
|
|
252
|
-
if (P2WDADetector.isP2WDAUTXO(this.optionalInputs[i])) {
|
|
250
|
+
if (P2WDADetector.isP2WDAUTXO(this.optionalInputs[i] as UTXO)) {
|
|
253
251
|
this.p2wdaInputIndices.add(actualIndex);
|
|
254
252
|
}
|
|
255
253
|
}
|
|
@@ -291,8 +289,8 @@ export class InteractionTransactionP2WDA extends TransactionBuilder<TransactionT
|
|
|
291
289
|
inputIndex: number,
|
|
292
290
|
input: PsbtInput,
|
|
293
291
|
): {
|
|
294
|
-
finalScriptSig:
|
|
295
|
-
finalScriptWitness:
|
|
292
|
+
finalScriptSig: Uint8Array | undefined;
|
|
293
|
+
finalScriptWitness: Uint8Array | undefined;
|
|
296
294
|
} {
|
|
297
295
|
if (!input.partialSig || input.partialSig.length === 0) {
|
|
298
296
|
throw new Error(`No signature for P2WDA input #${inputIndex}`);
|
|
@@ -306,17 +304,17 @@ export class InteractionTransactionP2WDA extends TransactionBuilder<TransactionT
|
|
|
306
304
|
throw new Error('Operation data not compiled');
|
|
307
305
|
}
|
|
308
306
|
|
|
309
|
-
const txSignature = input.partialSig[0].signature;
|
|
310
|
-
const messageToSign =
|
|
307
|
+
const txSignature = (input.partialSig[0] as { signature: Uint8Array }).signature;
|
|
308
|
+
const messageToSign = concat([txSignature, this.compiledOperationData]);
|
|
311
309
|
const signedMessage = MessageSigner.signMessage(
|
|
312
|
-
this.signer as
|
|
310
|
+
this.signer as UniversalSigner,
|
|
313
311
|
messageToSign,
|
|
314
312
|
);
|
|
315
313
|
|
|
316
|
-
const schnorrSignature =
|
|
314
|
+
const schnorrSignature = signedMessage.signature;
|
|
317
315
|
|
|
318
316
|
// Combine and compress: COMPRESS(signature + compiledOperationData)
|
|
319
|
-
const fullData =
|
|
317
|
+
const fullData = concat([schnorrSignature, this.compiledOperationData]);
|
|
320
318
|
const compressedData = Compressor.compress(fullData);
|
|
321
319
|
|
|
322
320
|
// Split into chunks
|
|
@@ -329,15 +327,15 @@ export class InteractionTransactionP2WDA extends TransactionBuilder<TransactionT
|
|
|
329
327
|
}
|
|
330
328
|
|
|
331
329
|
// Build witness stack
|
|
332
|
-
const witnessStack:
|
|
330
|
+
const witnessStack: Uint8Array[] = [txSignature];
|
|
333
331
|
|
|
334
332
|
// Add exactly 10 data fields
|
|
335
333
|
// Bitcoin stack is reversed!
|
|
336
334
|
for (let i = 0; i < InteractionTransactionP2WDA.MAX_WITNESS_FIELDS; i++) {
|
|
337
|
-
witnessStack.push(i < chunks.length ? chunks[i] :
|
|
335
|
+
witnessStack.push(i < chunks.length ? (chunks[i] as Uint8Array) : new Uint8Array(0));
|
|
338
336
|
}
|
|
339
337
|
|
|
340
|
-
witnessStack.push(input.witnessScript);
|
|
338
|
+
witnessStack.push(input.witnessScript as Uint8Array);
|
|
341
339
|
|
|
342
340
|
return {
|
|
343
341
|
finalScriptSig: undefined,
|
|
@@ -348,8 +346,8 @@ export class InteractionTransactionP2WDA extends TransactionBuilder<TransactionT
|
|
|
348
346
|
/**
|
|
349
347
|
* Split data into 80-byte chunks
|
|
350
348
|
*/
|
|
351
|
-
private splitIntoWitnessChunks(data:
|
|
352
|
-
const chunks:
|
|
349
|
+
private splitIntoWitnessChunks(data: Uint8Array): Uint8Array[] {
|
|
350
|
+
const chunks: Uint8Array[] = [];
|
|
353
351
|
let offset = 0;
|
|
354
352
|
|
|
355
353
|
while (offset < data.length) {
|
|
@@ -357,7 +355,7 @@ export class InteractionTransactionP2WDA extends TransactionBuilder<TransactionT
|
|
|
357
355
|
InteractionTransactionP2WDA.MAX_BYTES_PER_WITNESS,
|
|
358
356
|
data.length - offset,
|
|
359
357
|
);
|
|
360
|
-
chunks.push(
|
|
358
|
+
chunks.push(data.slice(offset, offset + size));
|
|
361
359
|
offset += size;
|
|
362
360
|
}
|
|
363
361
|
|