@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,17 +1,26 @@
|
|
|
1
|
-
import { Buffer } from 'buffer';
|
|
2
1
|
import { Psbt } from '@btc-vision/bitcoin';
|
|
3
2
|
import { TransactionType } from '../enums/TransactionType.js';
|
|
4
|
-
import { IInteractionParameters } from '../interfaces/ITransactionParameters.js';
|
|
3
|
+
import type { IInteractionParameters } from '../interfaces/ITransactionParameters.js';
|
|
5
4
|
import { TransactionBuilder } from './TransactionBuilder.js';
|
|
6
|
-
import { IChallengeSolution } from '../../epoch/interfaces/IChallengeSolution.js';
|
|
7
|
-
import { IP2WSHAddress } from '../mineable/IP2WSHAddress.js';
|
|
5
|
+
import type { IChallengeSolution } from '../../epoch/interfaces/IChallengeSolution.js';
|
|
6
|
+
import type { IP2WSHAddress } from '../mineable/IP2WSHAddress.js';
|
|
7
|
+
/**
|
|
8
|
+
* P2WDA Interaction Transaction
|
|
9
|
+
*
|
|
10
|
+
* This transaction type uses the exact same operation data as regular interactions
|
|
11
|
+
* (via CalldataGenerator), but embeds it in the witness field instead of a taproot script.
|
|
12
|
+
* This achieves 75% cost reduction through the witness discount.
|
|
13
|
+
*/
|
|
8
14
|
export declare class InteractionTransactionP2WDA extends TransactionBuilder<TransactionType.INTERACTION> {
|
|
9
15
|
private static readonly MAX_WITNESS_FIELDS;
|
|
10
16
|
private static readonly MAX_BYTES_PER_WITNESS;
|
|
11
17
|
readonly type: TransactionType.INTERACTION;
|
|
12
18
|
protected readonly epochChallenge: IP2WSHAddress;
|
|
19
|
+
/**
|
|
20
|
+
* Disable auto refund
|
|
21
|
+
* @protected
|
|
22
|
+
*/
|
|
13
23
|
protected readonly disableAutoRefund: boolean;
|
|
14
|
-
private readonly contractAddress;
|
|
15
24
|
private readonly contractSecret;
|
|
16
25
|
private readonly calldata;
|
|
17
26
|
private readonly challenge;
|
|
@@ -19,19 +28,61 @@ export declare class InteractionTransactionP2WDA extends TransactionBuilder<Tran
|
|
|
19
28
|
private p2wdaGenerator;
|
|
20
29
|
private scriptSigner;
|
|
21
30
|
private p2wdaInputIndices;
|
|
31
|
+
/**
|
|
32
|
+
* The compiled operation data from CalldataGenerator
|
|
33
|
+
* This is exactly what would go in a taproot script, but we put it in witness instead
|
|
34
|
+
*/
|
|
22
35
|
private readonly compiledOperationData;
|
|
23
36
|
constructor(parameters: IInteractionParameters);
|
|
24
|
-
|
|
37
|
+
/**
|
|
38
|
+
* Get random bytes (for compatibility if needed elsewhere)
|
|
39
|
+
*/
|
|
40
|
+
getRndBytes(): Uint8Array;
|
|
41
|
+
/**
|
|
42
|
+
* Get the challenge (for compatibility if needed elsewhere)
|
|
43
|
+
*/
|
|
25
44
|
getChallenge(): IChallengeSolution;
|
|
26
|
-
|
|
45
|
+
/**
|
|
46
|
+
* Get contract secret (for compatibility if needed elsewhere)
|
|
47
|
+
*/
|
|
48
|
+
getContractSecret(): Uint8Array;
|
|
49
|
+
/**
|
|
50
|
+
* Build the transaction
|
|
51
|
+
*/
|
|
27
52
|
protected buildTransaction(): Promise<void>;
|
|
28
53
|
protected createMineableRewardOutputs(): Promise<void>;
|
|
54
|
+
/**
|
|
55
|
+
* Sign inputs with P2WDA-specific handling
|
|
56
|
+
*/
|
|
29
57
|
protected signInputs(transaction: Psbt): Promise<void>;
|
|
58
|
+
/**
|
|
59
|
+
* Generate features array (same as InteractionTransaction)
|
|
60
|
+
*/
|
|
30
61
|
private generateFeatures;
|
|
62
|
+
/**
|
|
63
|
+
* Generate keypair from seed (same as SharedInteractionTransaction)
|
|
64
|
+
*/
|
|
31
65
|
private generateKeyPairFromSeed;
|
|
66
|
+
/**
|
|
67
|
+
* Get script signer x-only pubkey (same as SharedInteractionTransaction)
|
|
68
|
+
*/
|
|
32
69
|
private scriptSignerXOnlyPubKey;
|
|
70
|
+
/**
|
|
71
|
+
* Validate that input 0 is P2WDA
|
|
72
|
+
*/
|
|
33
73
|
private validateP2WDAInputs;
|
|
74
|
+
/**
|
|
75
|
+
* Validate the compiled operation data will fit in witness fields
|
|
76
|
+
*/
|
|
34
77
|
private validateOperationDataSize;
|
|
78
|
+
/**
|
|
79
|
+
* Finalize primary P2WDA input with the operation data
|
|
80
|
+
* This is where we create the signature and compress everything
|
|
81
|
+
*/
|
|
35
82
|
private finalizePrimaryP2WDA;
|
|
83
|
+
/**
|
|
84
|
+
* Split data into 80-byte chunks
|
|
85
|
+
*/
|
|
36
86
|
private splitIntoWitnessChunks;
|
|
37
87
|
}
|
|
88
|
+
//# sourceMappingURL=InteractionTransactionP2WDA.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InteractionTransactionP2WDA.d.ts","sourceRoot":"","sources":["../../../src/transaction/builders/InteractionTransactionP2WDA.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,IAAI,EAA2B,MAAM,qBAAqB,CAAC;AAErF,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACtF,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAO7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAGvF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAGlE;;;;;;GAMG;AACH,qBAAa,2BAA4B,SAAQ,kBAAkB,CAAC,eAAe,CAAC,WAAW,CAAC;IAC5F,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAM;IAChD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAM;IAEnD,SAAgB,IAAI,EAAE,eAAe,CAAC,WAAW,CAA+B;IAChF,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,aAAa,CAAC;IACjD;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IAC9C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAa;IAC5C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAa;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;IAC/C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IACzC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,YAAY,CAAkB;IACtC,OAAO,CAAC,iBAAiB,CAA0B;IACnD;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAA2B;gBAE9C,UAAU,EAAE,sBAAsB;IAyErD;;OAEG;IACI,WAAW,IAAI,UAAU;IAIhC;;OAEG;IACI,YAAY,IAAI,kBAAkB;IAIzC;;OAEG;IACI,iBAAiB,IAAI,UAAU;IAItC;;OAEG;cACa,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;cASjC,2BAA2B,IAAI,OAAO,CAAC,IAAI,CAAC;IAa5D;;OAEG;cACsB,UAAU,CAAC,WAAW,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBrE;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAuBxB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAI/B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAI/B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAoB3B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAyBjC;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IA0D5B;;OAEG;IACH,OAAO,CAAC,sBAAsB;CAejC"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { toXOnly } from '@btc-vision/bitcoin';
|
|
1
|
+
import { concat, fromHex, Psbt, toXOnly } from '@btc-vision/bitcoin';
|
|
3
2
|
import { TransactionType } from '../enums/TransactionType.js';
|
|
4
3
|
import { TransactionBuilder } from './TransactionBuilder.js';
|
|
5
4
|
import { MessageSigner } from '../../keypair/MessageSigner.js';
|
|
@@ -8,14 +7,40 @@ import { P2WDAGenerator } from '../../generators/builders/P2WDAGenerator.js';
|
|
|
8
7
|
import { FeaturePriority, Features } from '../../generators/Features.js';
|
|
9
8
|
import { BitcoinUtils } from '../../utils/BitcoinUtils.js';
|
|
10
9
|
import { EcKeyPair } from '../../keypair/EcKeyPair.js';
|
|
10
|
+
import {} from '@btc-vision/ecpair';
|
|
11
11
|
import { P2WDADetector } from '../../p2wda/P2WDADetector.js';
|
|
12
12
|
import { TimeLockGenerator } from '../mineable/TimelockGenerator.js';
|
|
13
|
+
/**
|
|
14
|
+
* P2WDA Interaction Transaction
|
|
15
|
+
*
|
|
16
|
+
* This transaction type uses the exact same operation data as regular interactions
|
|
17
|
+
* (via CalldataGenerator), but embeds it in the witness field instead of a taproot script.
|
|
18
|
+
* This achieves 75% cost reduction through the witness discount.
|
|
19
|
+
*/
|
|
13
20
|
export class InteractionTransactionP2WDA extends TransactionBuilder {
|
|
21
|
+
static MAX_WITNESS_FIELDS = 10;
|
|
22
|
+
static MAX_BYTES_PER_WITNESS = 80;
|
|
23
|
+
type = TransactionType.INTERACTION;
|
|
24
|
+
epochChallenge;
|
|
25
|
+
/**
|
|
26
|
+
* Disable auto refund
|
|
27
|
+
* @protected
|
|
28
|
+
*/
|
|
29
|
+
disableAutoRefund;
|
|
30
|
+
contractSecret;
|
|
31
|
+
calldata;
|
|
32
|
+
challenge;
|
|
33
|
+
randomBytes;
|
|
34
|
+
p2wdaGenerator;
|
|
35
|
+
scriptSigner;
|
|
36
|
+
p2wdaInputIndices = new Set();
|
|
37
|
+
/**
|
|
38
|
+
* The compiled operation data from CalldataGenerator
|
|
39
|
+
* This is exactly what would go in a taproot script, but we put it in witness instead
|
|
40
|
+
*/
|
|
41
|
+
compiledOperationData = null;
|
|
14
42
|
constructor(parameters) {
|
|
15
43
|
super(parameters);
|
|
16
|
-
this.type = TransactionType.INTERACTION;
|
|
17
|
-
this.p2wdaInputIndices = new Set();
|
|
18
|
-
this.compiledOperationData = null;
|
|
19
44
|
if (!parameters.to) {
|
|
20
45
|
throw new Error('Contract address (to) is required');
|
|
21
46
|
}
|
|
@@ -29,24 +54,28 @@ export class InteractionTransactionP2WDA extends TransactionBuilder {
|
|
|
29
54
|
throw new Error('Challenge solution is required');
|
|
30
55
|
}
|
|
31
56
|
this.disableAutoRefund = parameters.disableAutoRefund || false;
|
|
32
|
-
this.
|
|
33
|
-
this.contractSecret = Buffer.from(parameters.contract.replace('0x', ''), 'hex');
|
|
57
|
+
this.contractSecret = fromHex(parameters.contract.replace('0x', ''));
|
|
34
58
|
this.calldata = Compressor.compress(parameters.calldata);
|
|
35
59
|
this.challenge = parameters.challenge;
|
|
36
60
|
this.randomBytes = parameters.randomBytes || BitcoinUtils.rndBytes();
|
|
61
|
+
// Create the script signer (same as SharedInteractionTransaction does)
|
|
37
62
|
this.scriptSigner = this.generateKeyPairFromSeed();
|
|
38
|
-
|
|
63
|
+
// Create the P2WDA generator instead of CalldataGenerator
|
|
64
|
+
// P2WDA needs a different data format optimized for witness embedding
|
|
65
|
+
this.p2wdaGenerator = new P2WDAGenerator(this.signer.publicKey, this.scriptSignerXOnlyPubKey(), this.network);
|
|
66
|
+
// Validate contract secret
|
|
39
67
|
if (this.contractSecret.length !== 32) {
|
|
40
68
|
throw new Error('Invalid contract secret length. Expected 32 bytes.');
|
|
41
69
|
}
|
|
42
70
|
this.epochChallenge = TimeLockGenerator.generateTimeLockAddress(this.challenge.publicKey.originalPublicKeyBuffer(), this.network);
|
|
71
|
+
// Validate P2WDA inputs
|
|
43
72
|
this.validateP2WDAInputs();
|
|
44
73
|
if (parameters.compiledTargetScript) {
|
|
45
|
-
if (
|
|
74
|
+
if (parameters.compiledTargetScript instanceof Uint8Array) {
|
|
46
75
|
this.compiledOperationData = parameters.compiledTargetScript;
|
|
47
76
|
}
|
|
48
77
|
else if (typeof parameters.compiledTargetScript === 'string') {
|
|
49
|
-
this.compiledOperationData =
|
|
78
|
+
this.compiledOperationData = fromHex(parameters.compiledTargetScript);
|
|
50
79
|
}
|
|
51
80
|
else {
|
|
52
81
|
throw new Error('Invalid compiled target script format.');
|
|
@@ -55,22 +84,36 @@ export class InteractionTransactionP2WDA extends TransactionBuilder {
|
|
|
55
84
|
else {
|
|
56
85
|
this.compiledOperationData = this.p2wdaGenerator.compile(this.calldata, this.contractSecret, this.challenge, this.priorityFee, this.generateFeatures(parameters));
|
|
57
86
|
}
|
|
87
|
+
// Validate size early
|
|
58
88
|
this.validateOperationDataSize();
|
|
59
89
|
this.internalInit();
|
|
60
90
|
}
|
|
91
|
+
/**
|
|
92
|
+
* Get random bytes (for compatibility if needed elsewhere)
|
|
93
|
+
*/
|
|
61
94
|
getRndBytes() {
|
|
62
95
|
return this.randomBytes;
|
|
63
96
|
}
|
|
97
|
+
/**
|
|
98
|
+
* Get the challenge (for compatibility if needed elsewhere)
|
|
99
|
+
*/
|
|
64
100
|
getChallenge() {
|
|
65
101
|
return this.challenge;
|
|
66
102
|
}
|
|
103
|
+
/**
|
|
104
|
+
* Get contract secret (for compatibility if needed elsewhere)
|
|
105
|
+
*/
|
|
67
106
|
getContractSecret() {
|
|
68
107
|
return this.contractSecret;
|
|
69
108
|
}
|
|
109
|
+
/**
|
|
110
|
+
* Build the transaction
|
|
111
|
+
*/
|
|
70
112
|
async buildTransaction() {
|
|
71
113
|
if (!this.regenerated) {
|
|
72
114
|
this.addInputsFromUTXO();
|
|
73
115
|
}
|
|
116
|
+
// Add refund
|
|
74
117
|
await this.createMineableRewardOutputs();
|
|
75
118
|
}
|
|
76
119
|
async createMineableRewardOutputs() {
|
|
@@ -83,10 +126,15 @@ export class InteractionTransactionP2WDA extends TransactionBuilder {
|
|
|
83
126
|
await this.addRefundOutput(amountSpent + amount);
|
|
84
127
|
}
|
|
85
128
|
}
|
|
129
|
+
/**
|
|
130
|
+
* Sign inputs with P2WDA-specific handling
|
|
131
|
+
*/
|
|
86
132
|
async signInputs(transaction) {
|
|
133
|
+
// Sign all inputs
|
|
87
134
|
for (let i = 0; i < transaction.data.inputs.length; i++) {
|
|
88
135
|
await this.signInput(transaction, transaction.data.inputs[i], i, this.signer);
|
|
89
136
|
}
|
|
137
|
+
// Finalize with appropriate finalizers
|
|
90
138
|
for (let i = 0; i < transaction.data.inputs.length; i++) {
|
|
91
139
|
if (this.p2wdaInputIndices.has(i)) {
|
|
92
140
|
if (i === 0) {
|
|
@@ -102,6 +150,9 @@ export class InteractionTransactionP2WDA extends TransactionBuilder {
|
|
|
102
150
|
}
|
|
103
151
|
this.finalized = true;
|
|
104
152
|
}
|
|
153
|
+
/**
|
|
154
|
+
* Generate features array (same as InteractionTransaction)
|
|
155
|
+
*/
|
|
105
156
|
generateFeatures(parameters) {
|
|
106
157
|
const features = [];
|
|
107
158
|
if (parameters.loadedStorage) {
|
|
@@ -121,16 +172,26 @@ export class InteractionTransactionP2WDA extends TransactionBuilder {
|
|
|
121
172
|
}
|
|
122
173
|
return features;
|
|
123
174
|
}
|
|
175
|
+
/**
|
|
176
|
+
* Generate keypair from seed (same as SharedInteractionTransaction)
|
|
177
|
+
*/
|
|
124
178
|
generateKeyPairFromSeed() {
|
|
125
179
|
return EcKeyPair.fromSeedKeyPair(this.randomBytes, this.network);
|
|
126
180
|
}
|
|
181
|
+
/**
|
|
182
|
+
* Get script signer x-only pubkey (same as SharedInteractionTransaction)
|
|
183
|
+
*/
|
|
127
184
|
scriptSignerXOnlyPubKey() {
|
|
128
|
-
return toXOnly(
|
|
185
|
+
return toXOnly(this.scriptSigner.publicKey);
|
|
129
186
|
}
|
|
187
|
+
/**
|
|
188
|
+
* Validate that input 0 is P2WDA
|
|
189
|
+
*/
|
|
130
190
|
validateP2WDAInputs() {
|
|
131
191
|
if (this.utxos.length === 0 || !P2WDADetector.isP2WDAUTXO(this.utxos[0])) {
|
|
132
192
|
throw new Error('Input 0 must be a P2WDA UTXO');
|
|
133
193
|
}
|
|
194
|
+
// Track all P2WDA inputs
|
|
134
195
|
for (let i = 0; i < this.utxos.length; i++) {
|
|
135
196
|
if (P2WDADetector.isP2WDAUTXO(this.utxos[i])) {
|
|
136
197
|
this.p2wdaInputIndices.add(i);
|
|
@@ -143,10 +204,15 @@ export class InteractionTransactionP2WDA extends TransactionBuilder {
|
|
|
143
204
|
}
|
|
144
205
|
}
|
|
145
206
|
}
|
|
207
|
+
/**
|
|
208
|
+
* Validate the compiled operation data will fit in witness fields
|
|
209
|
+
*/
|
|
146
210
|
validateOperationDataSize() {
|
|
147
211
|
if (!this.compiledOperationData) {
|
|
148
212
|
throw new Error('Operation data not compiled');
|
|
149
213
|
}
|
|
214
|
+
// The data that goes in witness: COMPRESS(signature + compiledOperationData)
|
|
215
|
+
// Signature is 64 bytes
|
|
150
216
|
const estimatedSize = this.compiledOperationData.length;
|
|
151
217
|
if (!P2WDAGenerator.validateWitnessSize(estimatedSize)) {
|
|
152
218
|
const signatureSize = 64;
|
|
@@ -158,6 +224,10 @@ export class InteractionTransactionP2WDA extends TransactionBuilder {
|
|
|
158
224
|
`needs ${requiredFields} witness fields, max is ${InteractionTransactionP2WDA.MAX_WITNESS_FIELDS}`);
|
|
159
225
|
}
|
|
160
226
|
}
|
|
227
|
+
/**
|
|
228
|
+
* Finalize primary P2WDA input with the operation data
|
|
229
|
+
* This is where we create the signature and compress everything
|
|
230
|
+
*/
|
|
161
231
|
finalizePrimaryP2WDA(inputIndex, input) {
|
|
162
232
|
if (!input.partialSig || input.partialSig.length === 0) {
|
|
163
233
|
throw new Error(`No signature for P2WDA input #${inputIndex}`);
|
|
@@ -169,18 +239,23 @@ export class InteractionTransactionP2WDA extends TransactionBuilder {
|
|
|
169
239
|
throw new Error('Operation data not compiled');
|
|
170
240
|
}
|
|
171
241
|
const txSignature = input.partialSig[0].signature;
|
|
172
|
-
const messageToSign =
|
|
242
|
+
const messageToSign = concat([txSignature, this.compiledOperationData]);
|
|
173
243
|
const signedMessage = MessageSigner.signMessage(this.signer, messageToSign);
|
|
174
|
-
const schnorrSignature =
|
|
175
|
-
|
|
244
|
+
const schnorrSignature = signedMessage.signature;
|
|
245
|
+
// Combine and compress: COMPRESS(signature + compiledOperationData)
|
|
246
|
+
const fullData = concat([schnorrSignature, this.compiledOperationData]);
|
|
176
247
|
const compressedData = Compressor.compress(fullData);
|
|
248
|
+
// Split into chunks
|
|
177
249
|
const chunks = this.splitIntoWitnessChunks(compressedData);
|
|
178
250
|
if (chunks.length > InteractionTransactionP2WDA.MAX_WITNESS_FIELDS) {
|
|
179
251
|
throw new Error(`Compressed data needs ${chunks.length} witness fields, max is ${InteractionTransactionP2WDA.MAX_WITNESS_FIELDS}`);
|
|
180
252
|
}
|
|
253
|
+
// Build witness stack
|
|
181
254
|
const witnessStack = [txSignature];
|
|
255
|
+
// Add exactly 10 data fields
|
|
256
|
+
// Bitcoin stack is reversed!
|
|
182
257
|
for (let i = 0; i < InteractionTransactionP2WDA.MAX_WITNESS_FIELDS; i++) {
|
|
183
|
-
witnessStack.push(i < chunks.length ? chunks[i] :
|
|
258
|
+
witnessStack.push(i < chunks.length ? chunks[i] : new Uint8Array(0));
|
|
184
259
|
}
|
|
185
260
|
witnessStack.push(input.witnessScript);
|
|
186
261
|
return {
|
|
@@ -188,16 +263,18 @@ export class InteractionTransactionP2WDA extends TransactionBuilder {
|
|
|
188
263
|
finalScriptWitness: TransactionBuilder.witnessStackToScriptWitness(witnessStack),
|
|
189
264
|
};
|
|
190
265
|
}
|
|
266
|
+
/**
|
|
267
|
+
* Split data into 80-byte chunks
|
|
268
|
+
*/
|
|
191
269
|
splitIntoWitnessChunks(data) {
|
|
192
270
|
const chunks = [];
|
|
193
271
|
let offset = 0;
|
|
194
272
|
while (offset < data.length) {
|
|
195
273
|
const size = Math.min(InteractionTransactionP2WDA.MAX_BYTES_PER_WITNESS, data.length - offset);
|
|
196
|
-
chunks.push(
|
|
274
|
+
chunks.push(data.slice(offset, offset + size));
|
|
197
275
|
offset += size;
|
|
198
276
|
}
|
|
199
277
|
return chunks;
|
|
200
278
|
}
|
|
201
279
|
}
|
|
202
|
-
InteractionTransactionP2WDA.
|
|
203
|
-
InteractionTransactionP2WDA.MAX_BYTES_PER_WITNESS = 80;
|
|
280
|
+
//# sourceMappingURL=InteractionTransactionP2WDA.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InteractionTransactionP2WDA.js","sourceRoot":"","sources":["../../../src/transaction/builders/InteractionTransactionP2WDA.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { P2TRPayment, Psbt, PsbtInput, Signer, TapScriptSig, Taptree } from '@btc-vision/bitcoin';
|
|
1
|
+
import { type P2TRPayment, Psbt, type PsbtInput, type PublicKey, type Script, type Signer, type TapScriptSig, type Taptree } from '@btc-vision/bitcoin';
|
|
2
2
|
import { TransactionBuilder } from './TransactionBuilder.js';
|
|
3
3
|
import { TransactionType } from '../enums/TransactionType.js';
|
|
4
|
-
import { ITransactionParameters } from '../interfaces/ITransactionParameters.js';
|
|
5
|
-
import {
|
|
6
|
-
export interface MultiSignParameters extends Omit<ITransactionParameters, 'gasSatFee' | 'priorityFee' | 'signer'> {
|
|
7
|
-
readonly pubkeys:
|
|
4
|
+
import type { ITransactionParameters } from '../interfaces/ITransactionParameters.js';
|
|
5
|
+
import { type UniversalSigner } from '@btc-vision/ecpair';
|
|
6
|
+
export interface MultiSignParameters extends Omit<ITransactionParameters, 'gasSatFee' | 'priorityFee' | 'signer' | 'from' | 'to'> {
|
|
7
|
+
readonly pubkeys: Uint8Array[];
|
|
8
8
|
readonly minimumSignatures: number;
|
|
9
|
-
readonly from?: undefined;
|
|
10
|
-
readonly to?: undefined;
|
|
9
|
+
readonly from?: string | undefined;
|
|
10
|
+
readonly to?: string | undefined;
|
|
11
11
|
readonly psbt?: Psbt;
|
|
12
12
|
readonly receiver: string;
|
|
13
13
|
readonly requestedAmount: bigint;
|
|
@@ -16,45 +16,154 @@ export interface MultiSignParameters extends Omit<ITransactionParameters, 'gasSa
|
|
|
16
16
|
export interface MultiSignFromBase64Params extends Omit<MultiSignParameters, 'psbt'> {
|
|
17
17
|
readonly psbt: string;
|
|
18
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* Create a multi sign p2tr transaction
|
|
21
|
+
* @class MultiSignTransaction
|
|
22
|
+
*/
|
|
19
23
|
export declare class MultiSignTransaction extends TransactionBuilder<TransactionType.MULTI_SIG> {
|
|
20
|
-
static readonly LOCK_LEAF_SCRIPT:
|
|
24
|
+
static readonly LOCK_LEAF_SCRIPT: Script;
|
|
21
25
|
static readonly signHashTypesArray: number[];
|
|
22
|
-
static readonly numsPoint:
|
|
26
|
+
static readonly numsPoint: PublicKey;
|
|
23
27
|
type: TransactionType.MULTI_SIG;
|
|
24
28
|
protected targetScriptRedeem: P2TRPayment | null;
|
|
25
29
|
protected leftOverFundsScriptRedeem: P2TRPayment | null;
|
|
26
|
-
protected readonly compiledTargetScript:
|
|
30
|
+
protected readonly compiledTargetScript: Uint8Array;
|
|
27
31
|
protected readonly scriptTree: Taptree;
|
|
28
|
-
protected readonly publicKeys:
|
|
32
|
+
protected readonly publicKeys: Uint8Array[];
|
|
29
33
|
protected readonly minimumSignatures: number;
|
|
30
34
|
protected readonly originalInputCount: number;
|
|
31
35
|
protected readonly requestedAmount: bigint;
|
|
32
36
|
protected readonly receiver: string;
|
|
33
37
|
protected readonly refundVault: string;
|
|
38
|
+
/**
|
|
39
|
+
* @description Sign hash types
|
|
40
|
+
* @protected
|
|
41
|
+
*/
|
|
34
42
|
protected readonly sighashTypes: number[];
|
|
35
43
|
constructor(parameters: MultiSignParameters);
|
|
44
|
+
/**
|
|
45
|
+
* Generate a multisig transaction from a base64 psbt.
|
|
46
|
+
* @param {MultiSignFromBase64Params} params The parameters
|
|
47
|
+
* @returns {MultiSignTransaction} The multisig transaction
|
|
48
|
+
*/
|
|
36
49
|
static fromBase64(params: MultiSignFromBase64Params): MultiSignTransaction;
|
|
37
|
-
|
|
38
|
-
|
|
50
|
+
/**
|
|
51
|
+
* Verify if that public key already signed the transaction
|
|
52
|
+
* @param {Psbt} psbt The psbt
|
|
53
|
+
* @param {Buffer} signerPubKey The signer public key
|
|
54
|
+
* @returns {boolean} True if the public key signed the transaction
|
|
55
|
+
*/
|
|
56
|
+
static verifyIfSigned(psbt: Psbt, signerPubKey: Uint8Array): boolean;
|
|
57
|
+
/**
|
|
58
|
+
* Partially sign the transaction
|
|
59
|
+
* @returns {boolean} True if the transaction was signed
|
|
60
|
+
* @public
|
|
61
|
+
*/
|
|
62
|
+
static signPartial(psbt: Psbt, signer: Signer | UniversalSigner, originalInputCount: number, minimums: number[]): {
|
|
39
63
|
final: boolean;
|
|
40
64
|
signed: boolean;
|
|
41
65
|
};
|
|
42
|
-
|
|
43
|
-
|
|
66
|
+
/**
|
|
67
|
+
* Partially finalize a P2TR MS transaction
|
|
68
|
+
* @param {number} inputIndex The input index
|
|
69
|
+
* @param {PsbtInput} input The input
|
|
70
|
+
* @param {Buffer[]} partialSignatures The partial signatures
|
|
71
|
+
* @param {Buffer[]} orderedPubKeys The ordered public keys
|
|
72
|
+
* @param {boolean} isFinal If the transaction is final
|
|
73
|
+
*/
|
|
74
|
+
static partialFinalizer: (inputIndex: number, input: PsbtInput, partialSignatures: Uint8Array[], orderedPubKeys: Uint8Array[], isFinal: boolean) => {
|
|
75
|
+
finalScriptWitness: Uint8Array<ArrayBufferLike>;
|
|
44
76
|
};
|
|
77
|
+
/**
|
|
78
|
+
* Dedupe signatures
|
|
79
|
+
* @param {TapScriptSig[]} original The original signatures
|
|
80
|
+
* @param {TapScriptSig[]} partial The partial signatures
|
|
81
|
+
* @returns {TapScriptSig[]} The deduped signatures
|
|
82
|
+
*/
|
|
45
83
|
static dedupeSignatures(original: TapScriptSig[], partial: TapScriptSig[]): TapScriptSig[];
|
|
46
|
-
|
|
84
|
+
/**
|
|
85
|
+
* Attempt to finalize the inputs
|
|
86
|
+
* @param {Psbt} psbt The psbt
|
|
87
|
+
* @param {number} startIndex The start index
|
|
88
|
+
* @param {Buffer[]} orderedPubKeys The ordered public keys
|
|
89
|
+
* @param {boolean} isFinal If the transaction is final
|
|
90
|
+
* @returns {boolean} True if the inputs were finalized
|
|
91
|
+
*/
|
|
92
|
+
static attemptFinalizeInputs(psbt: Psbt, startIndex: number, orderedPubKeys: Uint8Array[][], isFinal: boolean): boolean;
|
|
93
|
+
/**
|
|
94
|
+
* Finalize the psbt multisig transaction
|
|
95
|
+
*/
|
|
47
96
|
finalizeTransactionInputs(): boolean;
|
|
97
|
+
/**
|
|
98
|
+
* @description Signs the transaction
|
|
99
|
+
* @public
|
|
100
|
+
* @returns {Promise<Psbt>} - The signed transaction in hex format
|
|
101
|
+
* @throws {Error} - If something went wrong
|
|
102
|
+
*/
|
|
48
103
|
signPSBT(): Promise<Psbt>;
|
|
104
|
+
/**
|
|
105
|
+
* Build the transaction
|
|
106
|
+
* @protected
|
|
107
|
+
*
|
|
108
|
+
* @throws {Error} If the left over funds script redeem is required
|
|
109
|
+
* @throws {Error} If the left over funds script redeem version is required
|
|
110
|
+
* @throws {Error} If the left over funds script redeem output is required
|
|
111
|
+
*/
|
|
49
112
|
protected buildTransaction(): Promise<void>;
|
|
113
|
+
/**
|
|
114
|
+
* Builds the transaction.
|
|
115
|
+
* @param {Psbt} transaction - The transaction to build
|
|
116
|
+
* @param checkPartialSigs
|
|
117
|
+
* @protected
|
|
118
|
+
* @returns {Promise<boolean>}
|
|
119
|
+
* @throws {Error} - If something went wrong while building the transaction
|
|
120
|
+
*/
|
|
50
121
|
protected internalBuildTransaction(transaction: Psbt, checkPartialSigs?: boolean): Promise<boolean>;
|
|
122
|
+
/**
|
|
123
|
+
* Sign the inputs
|
|
124
|
+
* @protected
|
|
125
|
+
*/
|
|
51
126
|
protected signInputs(_transaction: Psbt): Promise<void>;
|
|
52
127
|
protected generateScriptAddress(): P2TRPayment;
|
|
53
128
|
protected generateTapData(): P2TRPayment;
|
|
54
|
-
|
|
129
|
+
/**
|
|
130
|
+
* Generate the script solution
|
|
131
|
+
* @param {PsbtInput} input The input
|
|
132
|
+
* @protected
|
|
133
|
+
*
|
|
134
|
+
* @returns {Buffer[]} The script solution
|
|
135
|
+
*/
|
|
136
|
+
protected getScriptSolution(input: PsbtInput): Uint8Array[];
|
|
137
|
+
/**
|
|
138
|
+
* Get the script tree
|
|
139
|
+
* @private
|
|
140
|
+
*
|
|
141
|
+
* @returns {Taptree} The script tree
|
|
142
|
+
*/
|
|
55
143
|
protected getScriptTree(): Taptree;
|
|
56
144
|
private getTotalOutputAmount;
|
|
145
|
+
/**
|
|
146
|
+
* @description Calculate the amount left to refund to the first vault.
|
|
147
|
+
* @private
|
|
148
|
+
* @returns {bigint} The amount left
|
|
149
|
+
*/
|
|
57
150
|
private calculateOutputLeftAmountFromVaults;
|
|
151
|
+
/**
|
|
152
|
+
* Transaction finalizer
|
|
153
|
+
* @param {number} _inputIndex The input index
|
|
154
|
+
* @param {PsbtInput} input The input
|
|
155
|
+
*/
|
|
58
156
|
private customFinalizer;
|
|
157
|
+
/**
|
|
158
|
+
* Generate the redeem scripts
|
|
159
|
+
* @private
|
|
160
|
+
*
|
|
161
|
+
* @throws {Error} If the public keys are required
|
|
162
|
+
* @throws {Error} If the leaf script is required
|
|
163
|
+
* @throws {Error} If the leaf script version is required
|
|
164
|
+
* @throws {Error} If the leaf script output is required
|
|
165
|
+
* @throws {Error} If the target script redeem is required
|
|
166
|
+
*/
|
|
59
167
|
private generateRedeemScripts;
|
|
60
168
|
}
|
|
169
|
+
//# sourceMappingURL=MultiSignTransaction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MultiSignTransaction.d.ts","sourceRoot":"","sources":["../../../src/transaction/builders/MultiSignTransaction.ts"],"names":[],"mappings":"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"}
|