@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,34 +1,41 @@
|
|
|
1
1
|
import {
|
|
2
2
|
crypto as bitcoinCrypto,
|
|
3
|
+
equals,
|
|
4
|
+
fromHex,
|
|
3
5
|
opcodes,
|
|
4
|
-
P2TRPayment,
|
|
6
|
+
type P2TRPayment,
|
|
5
7
|
PaymentType,
|
|
6
8
|
Psbt,
|
|
7
|
-
PsbtInput,
|
|
8
|
-
PsbtInputExtended,
|
|
9
|
-
PsbtOutputExtended,
|
|
9
|
+
type PsbtInput,
|
|
10
|
+
type PsbtInputExtended,
|
|
11
|
+
type PsbtOutputExtended,
|
|
12
|
+
type PublicKey,
|
|
13
|
+
type Script,
|
|
10
14
|
script,
|
|
11
|
-
Signer,
|
|
12
|
-
TapScriptSig,
|
|
13
|
-
Taptree,
|
|
15
|
+
type Signer,
|
|
16
|
+
type TapScriptSig,
|
|
17
|
+
type Taptree,
|
|
18
|
+
toHex,
|
|
19
|
+
toSatoshi,
|
|
14
20
|
toXOnly,
|
|
15
21
|
} from '@btc-vision/bitcoin';
|
|
16
22
|
import { TransactionBuilder } from './TransactionBuilder.js';
|
|
17
23
|
import { TransactionType } from '../enums/TransactionType.js';
|
|
18
|
-
import {
|
|
24
|
+
import type { UpdateInput } from '../interfaces/Tap.js';
|
|
25
|
+
import type { ITransactionParameters } from '../interfaces/ITransactionParameters.js';
|
|
19
26
|
import { MultiSignGenerator } from '../../generators/builders/MultiSignGenerator.js';
|
|
20
|
-
import { UTXO } from '../../utxo/interfaces/IUTXO.js';
|
|
27
|
+
import type { UTXO } from '../../utxo/interfaces/IUTXO.js';
|
|
21
28
|
import { EcKeyPair } from '../../keypair/EcKeyPair.js';
|
|
22
|
-
import {
|
|
29
|
+
import { type UniversalSigner } from '@btc-vision/ecpair';
|
|
23
30
|
|
|
24
31
|
export interface MultiSignParameters extends Omit<
|
|
25
32
|
ITransactionParameters,
|
|
26
|
-
'gasSatFee' | 'priorityFee' | 'signer'
|
|
33
|
+
'gasSatFee' | 'priorityFee' | 'signer' | 'from' | 'to'
|
|
27
34
|
> {
|
|
28
|
-
readonly pubkeys:
|
|
35
|
+
readonly pubkeys: Uint8Array[];
|
|
29
36
|
readonly minimumSignatures: number;
|
|
30
|
-
readonly from?: undefined;
|
|
31
|
-
readonly to?: undefined;
|
|
37
|
+
readonly from?: string | undefined;
|
|
38
|
+
readonly to?: string | undefined;
|
|
32
39
|
readonly psbt?: Psbt;
|
|
33
40
|
readonly receiver: string;
|
|
34
41
|
readonly requestedAmount: bigint;
|
|
@@ -44,7 +51,7 @@ export interface MultiSignFromBase64Params extends Omit<MultiSignParameters, 'ps
|
|
|
44
51
|
* @class MultiSignTransaction
|
|
45
52
|
*/
|
|
46
53
|
export class MultiSignTransaction extends TransactionBuilder<TransactionType.MULTI_SIG> {
|
|
47
|
-
public static readonly LOCK_LEAF_SCRIPT:
|
|
54
|
+
public static readonly LOCK_LEAF_SCRIPT: Script = script.compile([
|
|
48
55
|
opcodes.OP_XOR,
|
|
49
56
|
opcodes.OP_NOP,
|
|
50
57
|
opcodes.OP_CODESEPARATOR,
|
|
@@ -54,20 +61,19 @@ export class MultiSignTransaction extends TransactionBuilder<TransactionType.MUL
|
|
|
54
61
|
//Transaction.SIGHASH_ALL,
|
|
55
62
|
//Transaction.SIGHASH_ANYONECANPAY,
|
|
56
63
|
];
|
|
57
|
-
public static readonly numsPoint =
|
|
64
|
+
public static readonly numsPoint: PublicKey = fromHex(
|
|
58
65
|
'50929b74c1a04954b78b4b6035e97a5e078a5a0f28ec96d547bfee9ace803ac0',
|
|
59
|
-
|
|
60
|
-
);
|
|
66
|
+
) as PublicKey;
|
|
61
67
|
|
|
62
68
|
public type: TransactionType.MULTI_SIG = TransactionType.MULTI_SIG;
|
|
63
69
|
|
|
64
70
|
protected targetScriptRedeem: P2TRPayment | null = null;
|
|
65
71
|
protected leftOverFundsScriptRedeem: P2TRPayment | null = null;
|
|
66
72
|
|
|
67
|
-
protected readonly compiledTargetScript:
|
|
73
|
+
protected readonly compiledTargetScript: Uint8Array;
|
|
68
74
|
protected readonly scriptTree: Taptree;
|
|
69
75
|
|
|
70
|
-
protected readonly publicKeys:
|
|
76
|
+
protected readonly publicKeys: Uint8Array[];
|
|
71
77
|
protected readonly minimumSignatures: number;
|
|
72
78
|
|
|
73
79
|
protected readonly originalInputCount: number = 0;
|
|
@@ -79,7 +85,7 @@ export class MultiSignTransaction extends TransactionBuilder<TransactionType.MUL
|
|
|
79
85
|
* @description Sign hash types
|
|
80
86
|
* @protected
|
|
81
87
|
*/
|
|
82
|
-
protected readonly sighashTypes: number[] = MultiSignTransaction.signHashTypesArray;
|
|
88
|
+
protected override readonly sighashTypes: number[] = MultiSignTransaction.signHashTypesArray;
|
|
83
89
|
|
|
84
90
|
public constructor(parameters: MultiSignParameters) {
|
|
85
91
|
if (!parameters.refundVault) {
|
|
@@ -97,11 +103,11 @@ export class MultiSignTransaction extends TransactionBuilder<TransactionType.MUL
|
|
|
97
103
|
super({
|
|
98
104
|
...parameters,
|
|
99
105
|
signer: EcKeyPair.fromPrivateKey(
|
|
100
|
-
bitcoinCrypto.sha256(
|
|
106
|
+
bitcoinCrypto.sha256(new TextEncoder().encode('aaaaaaaa')),
|
|
101
107
|
),
|
|
102
108
|
priorityFee: 0n,
|
|
103
109
|
gasSatFee: 0n,
|
|
104
|
-
});
|
|
110
|
+
} as ITransactionParameters);
|
|
105
111
|
|
|
106
112
|
if (!parameters.pubkeys) {
|
|
107
113
|
throw new Error('Pubkeys are required');
|
|
@@ -149,10 +155,10 @@ export class MultiSignTransaction extends TransactionBuilder<TransactionType.MUL
|
|
|
149
155
|
* @param {Buffer} signerPubKey The signer public key
|
|
150
156
|
* @returns {boolean} True if the public key signed the transaction
|
|
151
157
|
*/
|
|
152
|
-
public static verifyIfSigned(psbt: Psbt, signerPubKey:
|
|
158
|
+
public static verifyIfSigned(psbt: Psbt, signerPubKey: Uint8Array): boolean {
|
|
153
159
|
let alreadySigned: boolean = false;
|
|
154
160
|
for (let i = 1; i < psbt.data.inputs.length; i++) {
|
|
155
|
-
const input: PsbtInput = psbt.data.inputs[i];
|
|
161
|
+
const input: PsbtInput = psbt.data.inputs[i] as PsbtInput;
|
|
156
162
|
if (!input.finalScriptWitness) {
|
|
157
163
|
continue;
|
|
158
164
|
}
|
|
@@ -166,9 +172,9 @@ export class MultiSignTransaction extends TransactionBuilder<TransactionType.MUL
|
|
|
166
172
|
}
|
|
167
173
|
|
|
168
174
|
for (let j = 0; j < decoded.length - 2; j += 3) {
|
|
169
|
-
const pubKey = decoded[j + 2];
|
|
175
|
+
const pubKey = decoded[j + 2] as Uint8Array;
|
|
170
176
|
|
|
171
|
-
if (
|
|
177
|
+
if (equals(pubKey, signerPubKey)) {
|
|
172
178
|
alreadySigned = true;
|
|
173
179
|
break;
|
|
174
180
|
}
|
|
@@ -185,7 +191,7 @@ export class MultiSignTransaction extends TransactionBuilder<TransactionType.MUL
|
|
|
185
191
|
*/
|
|
186
192
|
public static signPartial(
|
|
187
193
|
psbt: Psbt,
|
|
188
|
-
signer: Signer |
|
|
194
|
+
signer: Signer | UniversalSigner,
|
|
189
195
|
originalInputCount: number,
|
|
190
196
|
minimums: number[],
|
|
191
197
|
): {
|
|
@@ -196,7 +202,7 @@ export class MultiSignTransaction extends TransactionBuilder<TransactionType.MUL
|
|
|
196
202
|
let final: boolean = true;
|
|
197
203
|
|
|
198
204
|
for (let i = originalInputCount; i < psbt.data.inputs.length; i++) {
|
|
199
|
-
const input: PsbtInput = psbt.data.inputs[i];
|
|
205
|
+
const input: PsbtInput = psbt.data.inputs[i] as PsbtInput;
|
|
200
206
|
if (!input.tapInternalKey) {
|
|
201
207
|
input.tapInternalKey = toXOnly(MultiSignTransaction.numsPoint);
|
|
202
208
|
}
|
|
@@ -210,17 +216,17 @@ export class MultiSignTransaction extends TransactionBuilder<TransactionType.MUL
|
|
|
210
216
|
input.tapLeafScript = [
|
|
211
217
|
{
|
|
212
218
|
leafVersion: 192,
|
|
213
|
-
script: decoded[decoded.length - 2],
|
|
214
|
-
controlBlock: decoded[decoded.length - 1],
|
|
219
|
+
script: decoded[decoded.length - 2] as Uint8Array,
|
|
220
|
+
controlBlock: decoded[decoded.length - 1] as Uint8Array,
|
|
215
221
|
},
|
|
216
222
|
];
|
|
217
223
|
|
|
218
224
|
// we must insert all the partial signatures, decoded.length - 2
|
|
219
225
|
for (let j = 0; j < decoded.length - 2; j += 3) {
|
|
220
226
|
partialSignatures.push({
|
|
221
|
-
signature: decoded[j],
|
|
222
|
-
leafHash: decoded[j + 1],
|
|
223
|
-
pubkey: decoded[j + 2],
|
|
227
|
+
signature: decoded[j] as Uint8Array,
|
|
228
|
+
leafHash: decoded[j + 1] as Uint8Array,
|
|
229
|
+
pubkey: decoded[j + 2] as Uint8Array,
|
|
224
230
|
});
|
|
225
231
|
}
|
|
226
232
|
|
|
@@ -266,14 +272,14 @@ export class MultiSignTransaction extends TransactionBuilder<TransactionType.MUL
|
|
|
266
272
|
public static partialFinalizer = (
|
|
267
273
|
inputIndex: number,
|
|
268
274
|
input: PsbtInput,
|
|
269
|
-
partialSignatures:
|
|
270
|
-
orderedPubKeys:
|
|
275
|
+
partialSignatures: Uint8Array[],
|
|
276
|
+
orderedPubKeys: Uint8Array[],
|
|
271
277
|
isFinal: boolean,
|
|
272
278
|
) => {
|
|
273
279
|
if (
|
|
274
280
|
!input.tapLeafScript ||
|
|
275
|
-
!input.tapLeafScript[0]
|
|
276
|
-
!input.tapLeafScript[0]
|
|
281
|
+
!input.tapLeafScript[0]?.script ||
|
|
282
|
+
!input.tapLeafScript[0]?.controlBlock
|
|
277
283
|
) {
|
|
278
284
|
throw new Error('Tap leaf script is required');
|
|
279
285
|
}
|
|
@@ -282,7 +288,7 @@ export class MultiSignTransaction extends TransactionBuilder<TransactionType.MUL
|
|
|
282
288
|
throw new Error(`No new signatures for input ${inputIndex}.`);
|
|
283
289
|
}
|
|
284
290
|
|
|
285
|
-
let scriptSolution:
|
|
291
|
+
let scriptSolution: Uint8Array[] = [];
|
|
286
292
|
if (!isFinal) {
|
|
287
293
|
scriptSolution = input.tapScriptSig
|
|
288
294
|
.map((sig) => {
|
|
@@ -294,14 +300,14 @@ export class MultiSignTransaction extends TransactionBuilder<TransactionType.MUL
|
|
|
294
300
|
for (const pubKey of orderedPubKeys) {
|
|
295
301
|
let found = false;
|
|
296
302
|
for (const sig of input.tapScriptSig) {
|
|
297
|
-
if (sig.pubkey
|
|
303
|
+
if (equals(sig.pubkey, toXOnly(pubKey as PublicKey))) {
|
|
298
304
|
scriptSolution.push(sig.signature);
|
|
299
305
|
found = true;
|
|
300
306
|
}
|
|
301
307
|
}
|
|
302
308
|
|
|
303
309
|
if (!found) {
|
|
304
|
-
scriptSolution.push(
|
|
310
|
+
scriptSolution.push(new Uint8Array(0));
|
|
305
311
|
}
|
|
306
312
|
}
|
|
307
313
|
|
|
@@ -312,9 +318,10 @@ export class MultiSignTransaction extends TransactionBuilder<TransactionType.MUL
|
|
|
312
318
|
scriptSolution = scriptSolution.concat(partialSignatures);
|
|
313
319
|
}
|
|
314
320
|
|
|
321
|
+
const tapLeaf = input.tapLeafScript[0] as { script: Uint8Array; controlBlock: Uint8Array };
|
|
315
322
|
const witness = scriptSolution
|
|
316
|
-
.concat(
|
|
317
|
-
.concat(
|
|
323
|
+
.concat(tapLeaf.script)
|
|
324
|
+
.concat(tapLeaf.controlBlock);
|
|
318
325
|
|
|
319
326
|
return {
|
|
320
327
|
finalScriptWitness: TransactionBuilder.witnessStackToScriptWitness(witness),
|
|
@@ -333,12 +340,12 @@ export class MultiSignTransaction extends TransactionBuilder<TransactionType.MUL
|
|
|
333
340
|
): TapScriptSig[] {
|
|
334
341
|
const signatures = new Map<string, TapScriptSig>();
|
|
335
342
|
for (const sig of original) {
|
|
336
|
-
signatures.set(sig.pubkey
|
|
343
|
+
signatures.set(toHex(sig.pubkey), sig);
|
|
337
344
|
}
|
|
338
345
|
|
|
339
346
|
for (const sig of partial) {
|
|
340
|
-
if (!signatures.has(sig.pubkey
|
|
341
|
-
signatures.set(sig.pubkey
|
|
347
|
+
if (!signatures.has(toHex(sig.pubkey))) {
|
|
348
|
+
signatures.set(toHex(sig.pubkey), sig);
|
|
342
349
|
}
|
|
343
350
|
}
|
|
344
351
|
|
|
@@ -356,13 +363,13 @@ export class MultiSignTransaction extends TransactionBuilder<TransactionType.MUL
|
|
|
356
363
|
public static attemptFinalizeInputs(
|
|
357
364
|
psbt: Psbt,
|
|
358
365
|
startIndex: number,
|
|
359
|
-
orderedPubKeys:
|
|
366
|
+
orderedPubKeys: Uint8Array[][],
|
|
360
367
|
isFinal: boolean,
|
|
361
368
|
): boolean {
|
|
362
369
|
let finalizedInputs = 0;
|
|
363
370
|
for (let i = startIndex; i < psbt.data.inputs.length; i++) {
|
|
364
371
|
try {
|
|
365
|
-
const input = psbt.data.inputs[i];
|
|
372
|
+
const input = psbt.data.inputs[i] as PsbtInput;
|
|
366
373
|
|
|
367
374
|
if (!input.tapInternalKey) {
|
|
368
375
|
input.tapInternalKey = toXOnly(MultiSignTransaction.numsPoint);
|
|
@@ -377,17 +384,17 @@ export class MultiSignTransaction extends TransactionBuilder<TransactionType.MUL
|
|
|
377
384
|
// we must insert all the partial signatures, decoded.length - 2
|
|
378
385
|
for (let j = 0; j < decoded.length - 2; j += 3) {
|
|
379
386
|
partialSignatures.push({
|
|
380
|
-
signature: decoded[j],
|
|
381
|
-
leafHash: decoded[j + 1],
|
|
382
|
-
pubkey: decoded[j + 2],
|
|
387
|
+
signature: decoded[j] as Uint8Array,
|
|
388
|
+
leafHash: decoded[j + 1] as Uint8Array,
|
|
389
|
+
pubkey: decoded[j + 2] as Uint8Array,
|
|
383
390
|
});
|
|
384
391
|
}
|
|
385
392
|
|
|
386
393
|
input.tapLeafScript = [
|
|
387
394
|
{
|
|
388
395
|
leafVersion: 192,
|
|
389
|
-
script: decoded[decoded.length - 2],
|
|
390
|
-
controlBlock: decoded[decoded.length - 1],
|
|
396
|
+
script: decoded[decoded.length - 2] as Uint8Array,
|
|
397
|
+
controlBlock: decoded[decoded.length - 1] as Uint8Array,
|
|
391
398
|
},
|
|
392
399
|
];
|
|
393
400
|
|
|
@@ -405,13 +412,13 @@ export class MultiSignTransaction extends TransactionBuilder<TransactionType.MUL
|
|
|
405
412
|
inputIndex: number,
|
|
406
413
|
input: PsbtInput,
|
|
407
414
|
): {
|
|
408
|
-
finalScriptWitness:
|
|
415
|
+
finalScriptWitness: Uint8Array | undefined;
|
|
409
416
|
} => {
|
|
410
417
|
return MultiSignTransaction.partialFinalizer(
|
|
411
418
|
inputIndex,
|
|
412
419
|
input,
|
|
413
420
|
[],
|
|
414
|
-
orderedPubKeys[i - startIndex],
|
|
421
|
+
orderedPubKeys[i - startIndex] as Uint8Array[],
|
|
415
422
|
isFinal,
|
|
416
423
|
);
|
|
417
424
|
},
|
|
@@ -448,7 +455,7 @@ export class MultiSignTransaction extends TransactionBuilder<TransactionType.MUL
|
|
|
448
455
|
* @returns {Promise<Psbt>} - The signed transaction in hex format
|
|
449
456
|
* @throws {Error} - If something went wrong
|
|
450
457
|
*/
|
|
451
|
-
public async signPSBT(): Promise<Psbt> {
|
|
458
|
+
public override async signPSBT(): Promise<Psbt> {
|
|
452
459
|
if (await this.signTransaction()) {
|
|
453
460
|
return this.transaction;
|
|
454
461
|
}
|
|
@@ -494,12 +501,12 @@ export class MultiSignTransaction extends TransactionBuilder<TransactionType.MUL
|
|
|
494
501
|
|
|
495
502
|
this.addOutput({
|
|
496
503
|
address: this.refundVault,
|
|
497
|
-
value:
|
|
504
|
+
value: toSatoshi(outputLeftAmount),
|
|
498
505
|
});
|
|
499
506
|
|
|
500
507
|
this.addOutput({
|
|
501
508
|
address: this.receiver,
|
|
502
|
-
value:
|
|
509
|
+
value: toSatoshi(this.requestedAmount),
|
|
503
510
|
});
|
|
504
511
|
}
|
|
505
512
|
|
|
@@ -522,7 +529,7 @@ export class MultiSignTransaction extends TransactionBuilder<TransactionType.MUL
|
|
|
522
529
|
transaction.addInputs(inputs, checkPartialSigs);
|
|
523
530
|
|
|
524
531
|
for (let i = 0; i < this.updateInputs.length; i++) {
|
|
525
|
-
transaction.updateInput(i, this.updateInputs[i]);
|
|
532
|
+
transaction.updateInput(i, this.updateInputs[i] as UpdateInput);
|
|
526
533
|
}
|
|
527
534
|
|
|
528
535
|
transaction.addOutputs(outputs);
|
|
@@ -583,7 +590,7 @@ export class MultiSignTransaction extends TransactionBuilder<TransactionType.MUL
|
|
|
583
590
|
*
|
|
584
591
|
* @returns {Buffer[]} The script solution
|
|
585
592
|
*/
|
|
586
|
-
protected getScriptSolution(input: PsbtInput):
|
|
593
|
+
protected getScriptSolution(input: PsbtInput): Uint8Array[] {
|
|
587
594
|
if (!input.tapScriptSig) {
|
|
588
595
|
return [];
|
|
589
596
|
}
|
|
@@ -667,7 +674,7 @@ export class MultiSignTransaction extends TransactionBuilder<TransactionType.MUL
|
|
|
667
674
|
private generateRedeemScripts(): void {
|
|
668
675
|
this.targetScriptRedeem = {
|
|
669
676
|
name: PaymentType.P2TR,
|
|
670
|
-
output: this.compiledTargetScript,
|
|
677
|
+
output: this.compiledTargetScript as Script,
|
|
671
678
|
redeemVersion: 192,
|
|
672
679
|
};
|
|
673
680
|
|
|
@@ -1,16 +1,28 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import {
|
|
2
|
+
type FinalScriptsFunc,
|
|
3
|
+
type P2TRPayment,
|
|
4
|
+
PaymentType,
|
|
5
|
+
Psbt,
|
|
6
|
+
type PsbtInput,
|
|
7
|
+
type Script,
|
|
8
|
+
type Signer,
|
|
9
|
+
type TapScriptSig,
|
|
10
|
+
type Taptree,
|
|
11
|
+
toXOnly,
|
|
12
|
+
} from '@btc-vision/bitcoin';
|
|
13
|
+
import { type UniversalSigner } from '@btc-vision/ecpair';
|
|
14
|
+
import { isUniversalSigner } from '../../signer/TweakedSigner.js';
|
|
3
15
|
import { MINIMUM_AMOUNT_REWARD, TransactionBuilder } from './TransactionBuilder.js';
|
|
4
16
|
import { TransactionType } from '../enums/TransactionType.js';
|
|
5
17
|
import { CalldataGenerator } from '../../generators/builders/CalldataGenerator.js';
|
|
6
|
-
import { SharedInteractionParameters } from '../interfaces/ITransactionParameters.js';
|
|
18
|
+
import type { SharedInteractionParameters } from '../interfaces/ITransactionParameters.js';
|
|
7
19
|
import { Compressor } from '../../bytecode/Compressor.js';
|
|
8
20
|
import { EcKeyPair } from '../../keypair/EcKeyPair.js';
|
|
9
21
|
import { BitcoinUtils } from '../../utils/BitcoinUtils.js';
|
|
10
22
|
import { UnisatSigner } from '../browser/extensions/UnisatSigner.js';
|
|
11
23
|
import { TimeLockGenerator } from '../mineable/TimelockGenerator.js';
|
|
12
|
-
import { IChallengeSolution } from '../../epoch/interfaces/IChallengeSolution.js';
|
|
13
|
-
import { IP2WSHAddress } from '../mineable/IP2WSHAddress.js';
|
|
24
|
+
import type { IChallengeSolution } from '../../epoch/interfaces/IChallengeSolution.js';
|
|
25
|
+
import type { IP2WSHAddress } from '../mineable/IP2WSHAddress.js';
|
|
14
26
|
|
|
15
27
|
/**
|
|
16
28
|
* Shared interaction transaction
|
|
@@ -25,12 +37,12 @@ export abstract class SharedInteractionTransaction<
|
|
|
25
37
|
* Random salt for the interaction
|
|
26
38
|
* @type {Buffer}
|
|
27
39
|
*/
|
|
28
|
-
public readonly randomBytes:
|
|
40
|
+
public readonly randomBytes: Uint8Array;
|
|
29
41
|
|
|
30
42
|
protected targetScriptRedeem: P2TRPayment | null = null;
|
|
31
43
|
protected leftOverFundsScriptRedeem: P2TRPayment | null = null;
|
|
32
44
|
|
|
33
|
-
protected abstract readonly compiledTargetScript:
|
|
45
|
+
protected abstract readonly compiledTargetScript: Uint8Array;
|
|
34
46
|
protected abstract readonly scriptTree: Taptree;
|
|
35
47
|
|
|
36
48
|
protected readonly challenge: IChallengeSolution;
|
|
@@ -42,19 +54,19 @@ export abstract class SharedInteractionTransaction<
|
|
|
42
54
|
* Calldata for the interaction
|
|
43
55
|
* @protected
|
|
44
56
|
*/
|
|
45
|
-
protected readonly calldata:
|
|
57
|
+
protected readonly calldata: Uint8Array;
|
|
46
58
|
|
|
47
59
|
/**
|
|
48
60
|
* Contract secret for the interaction
|
|
49
61
|
* @protected
|
|
50
62
|
*/
|
|
51
|
-
protected abstract readonly contractSecret:
|
|
63
|
+
protected abstract readonly contractSecret: Uint8Array;
|
|
52
64
|
|
|
53
65
|
/**
|
|
54
66
|
* Script signer for the interaction
|
|
55
67
|
* @protected
|
|
56
68
|
*/
|
|
57
|
-
protected readonly scriptSigner: Signer |
|
|
69
|
+
protected readonly scriptSigner: Signer | UniversalSigner;
|
|
58
70
|
|
|
59
71
|
/**
|
|
60
72
|
* Disable auto refund
|
|
@@ -89,13 +101,13 @@ export abstract class SharedInteractionTransaction<
|
|
|
89
101
|
this.scriptSigner = this.generateKeyPairFromSeed();
|
|
90
102
|
|
|
91
103
|
this.calldataGenerator = new CalldataGenerator(
|
|
92
|
-
|
|
104
|
+
this.signer.publicKey,
|
|
93
105
|
this.scriptSignerXOnlyPubKey(),
|
|
94
106
|
this.network,
|
|
95
107
|
);
|
|
96
108
|
}
|
|
97
109
|
|
|
98
|
-
public exportCompiledTargetScript():
|
|
110
|
+
public exportCompiledTargetScript(): Uint8Array {
|
|
99
111
|
return this.compiledTargetScript;
|
|
100
112
|
}
|
|
101
113
|
|
|
@@ -103,7 +115,7 @@ export abstract class SharedInteractionTransaction<
|
|
|
103
115
|
* Get the contract secret
|
|
104
116
|
* @returns {Buffer} The contract secret
|
|
105
117
|
*/
|
|
106
|
-
public getContractSecret():
|
|
118
|
+
public getContractSecret(): Uint8Array {
|
|
107
119
|
return this.contractSecret;
|
|
108
120
|
}
|
|
109
121
|
|
|
@@ -111,7 +123,7 @@ export abstract class SharedInteractionTransaction<
|
|
|
111
123
|
* Get the random bytes used for the interaction
|
|
112
124
|
* @returns {Buffer} The random bytes
|
|
113
125
|
*/
|
|
114
|
-
public getRndBytes():
|
|
126
|
+
public getRndBytes(): Uint8Array {
|
|
115
127
|
return this.randomBytes;
|
|
116
128
|
}
|
|
117
129
|
|
|
@@ -127,17 +139,17 @@ export abstract class SharedInteractionTransaction<
|
|
|
127
139
|
* @protected
|
|
128
140
|
* @returns {Buffer} The internal pubkey as an x-only key
|
|
129
141
|
*/
|
|
130
|
-
protected scriptSignerXOnlyPubKey():
|
|
131
|
-
return toXOnly(
|
|
142
|
+
protected scriptSignerXOnlyPubKey(): Uint8Array {
|
|
143
|
+
return toXOnly(this.scriptSigner.publicKey);
|
|
132
144
|
}
|
|
133
145
|
|
|
134
146
|
/**
|
|
135
147
|
* Generate a key pair from the seed
|
|
136
148
|
* @protected
|
|
137
149
|
*
|
|
138
|
-
* @returns {
|
|
150
|
+
* @returns {UniversalSigner} The key pair
|
|
139
151
|
*/
|
|
140
|
-
protected generateKeyPairFromSeed():
|
|
152
|
+
protected generateKeyPairFromSeed(): UniversalSigner {
|
|
141
153
|
return EcKeyPair.fromSeedKeyPair(this.randomBytes, this.network);
|
|
142
154
|
}
|
|
143
155
|
|
|
@@ -237,16 +249,16 @@ export abstract class SharedInteractionTransaction<
|
|
|
237
249
|
*
|
|
238
250
|
* @returns {Buffer[]} The script solution
|
|
239
251
|
*/
|
|
240
|
-
protected getScriptSolution(input: PsbtInput):
|
|
252
|
+
protected getScriptSolution(input: PsbtInput): Uint8Array[] {
|
|
241
253
|
if (!input.tapScriptSig) {
|
|
242
254
|
throw new Error('Tap script signature is required');
|
|
243
255
|
}
|
|
244
256
|
|
|
245
257
|
return [
|
|
246
258
|
this.contractSecret,
|
|
247
|
-
input.tapScriptSig[0].signature,
|
|
248
|
-
input.tapScriptSig[1].signature,
|
|
249
|
-
] as
|
|
259
|
+
(input.tapScriptSig[0] as TapScriptSig).signature,
|
|
260
|
+
(input.tapScriptSig[1] as TapScriptSig).signature,
|
|
261
|
+
] as Uint8Array[];
|
|
250
262
|
}
|
|
251
263
|
|
|
252
264
|
/**
|
|
@@ -303,7 +315,7 @@ export abstract class SharedInteractionTransaction<
|
|
|
303
315
|
const signer: UnisatSigner = this.signer as UnisatSigner;
|
|
304
316
|
|
|
305
317
|
// first, we sign the first input with the script signer.
|
|
306
|
-
await this.signInput(transaction, transaction.data.inputs[0], 0, this.scriptSigner);
|
|
318
|
+
await this.signInput(transaction, transaction.data.inputs[0] as PsbtInput, 0, this.scriptSigner);
|
|
307
319
|
|
|
308
320
|
// then, we sign all the remaining inputs with the wallet signer.
|
|
309
321
|
await signer.multiSignPsbt([transaction]);
|
|
@@ -323,28 +335,56 @@ export abstract class SharedInteractionTransaction<
|
|
|
323
335
|
}
|
|
324
336
|
|
|
325
337
|
protected override async signInputsNonWalletBased(transaction: Psbt): Promise<void> {
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
338
|
+
// Input 0: always sequential (needs scriptSigner + main signer, custom finalizer)
|
|
339
|
+
await this.signInput(transaction, transaction.data.inputs[0] as PsbtInput, 0, this.scriptSigner);
|
|
340
|
+
await this.signInput(transaction, transaction.data.inputs[0] as PsbtInput, 0, this.getSignerKey());
|
|
341
|
+
transaction.finalizeInput(0, this.customFinalizer.bind(this));
|
|
342
|
+
|
|
343
|
+
// Inputs 1+: parallel key-path if available, then sequential for remaining
|
|
344
|
+
if (this.canUseParallelSigning && isUniversalSigner(this.signer)) {
|
|
345
|
+
let parallelSignedIndices = new Set<number>();
|
|
346
|
+
|
|
347
|
+
try {
|
|
348
|
+
const result = await this.signKeyPathInputsParallel(transaction, new Set([0]));
|
|
349
|
+
if (result.success) {
|
|
350
|
+
parallelSignedIndices = new Set(result.signatures.keys());
|
|
351
|
+
}
|
|
352
|
+
} catch (e) {
|
|
353
|
+
this.error(
|
|
354
|
+
`Parallel signing failed, falling back to sequential: ${(e as Error).message}`,
|
|
335
355
|
);
|
|
356
|
+
}
|
|
336
357
|
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
358
|
+
// Sign remaining inputs 1+ that weren't handled by parallel signing
|
|
359
|
+
for (let i = 1; i < transaction.data.inputs.length; i++) {
|
|
360
|
+
if (!parallelSignedIndices.has(i)) {
|
|
361
|
+
await this.signInput(
|
|
362
|
+
transaction,
|
|
363
|
+
transaction.data.inputs[i] as PsbtInput,
|
|
364
|
+
i,
|
|
365
|
+
this.signer,
|
|
366
|
+
);
|
|
345
367
|
}
|
|
346
368
|
}
|
|
369
|
+
} else {
|
|
370
|
+
for (let i = 1; i < transaction.data.inputs.length; i++) {
|
|
371
|
+
await this.signInput(transaction, transaction.data.inputs[i] as PsbtInput, i, this.signer);
|
|
372
|
+
}
|
|
347
373
|
}
|
|
374
|
+
|
|
375
|
+
// Finalize inputs 1+
|
|
376
|
+
for (let i = 1; i < transaction.data.inputs.length; i++) {
|
|
377
|
+
try {
|
|
378
|
+
transaction.finalizeInput(
|
|
379
|
+
i,
|
|
380
|
+
this.customFinalizerP2SH.bind(this) as FinalScriptsFunc,
|
|
381
|
+
);
|
|
382
|
+
} catch {
|
|
383
|
+
transaction.finalizeInput(i);
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
this.finalized = true;
|
|
348
388
|
}
|
|
349
389
|
|
|
350
390
|
protected async createMineableRewardOutputs(): Promise<void> {
|
|
@@ -367,22 +407,6 @@ export abstract class SharedInteractionTransaction<
|
|
|
367
407
|
}
|
|
368
408
|
}
|
|
369
409
|
|
|
370
|
-
/**
|
|
371
|
-
* Get the public keys
|
|
372
|
-
* @private
|
|
373
|
-
*
|
|
374
|
-
* @returns {Buffer[]} The public keys
|
|
375
|
-
*/
|
|
376
|
-
private getPubKeys(): Buffer[] {
|
|
377
|
-
const pubKeys = [Buffer.from(this.signer.publicKey)];
|
|
378
|
-
|
|
379
|
-
if (this.scriptSigner) {
|
|
380
|
-
pubKeys.push(Buffer.from(this.scriptSigner.publicKey));
|
|
381
|
-
}
|
|
382
|
-
|
|
383
|
-
return pubKeys;
|
|
384
|
-
}
|
|
385
|
-
|
|
386
410
|
/**
|
|
387
411
|
* Generate the redeem scripts
|
|
388
412
|
* @private
|
|
@@ -396,7 +420,7 @@ export abstract class SharedInteractionTransaction<
|
|
|
396
420
|
private generateRedeemScripts(): void {
|
|
397
421
|
this.targetScriptRedeem = {
|
|
398
422
|
name: PaymentType.P2TR,
|
|
399
|
-
output: this.compiledTargetScript,
|
|
423
|
+
output: this.compiledTargetScript as Script,
|
|
400
424
|
redeemVersion: 192,
|
|
401
425
|
};
|
|
402
426
|
|