@btc-vision/transaction 1.8.0-beta.3 → 1.8.0-beta.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/browser/_version.d.ts +1 -0
- package/browser/_version.d.ts.map +1 -0
- package/browser/abi/ABICoder.d.ts +1 -1
- package/browser/abi/ABICoder.d.ts.map +1 -0
- package/browser/branded/Branded.d.ts +4 -0
- package/browser/branded/Branded.d.ts.map +1 -0
- package/browser/btc-vision-bitcoin.js +11999 -2647
- package/browser/buffer/BinaryReader.d.ts +120 -1
- package/browser/buffer/BinaryReader.d.ts.map +1 -0
- package/browser/buffer/BinaryWriter.d.ts +51 -1
- package/browser/buffer/BinaryWriter.d.ts.map +1 -0
- package/browser/bytecode/Compressor.d.ts +12 -0
- package/browser/bytecode/Compressor.d.ts.map +1 -0
- package/browser/chain/ChainData.d.ts +2 -2
- package/browser/chain/ChainData.d.ts.map +1 -0
- package/browser/consensus/Consensus.d.ts +11 -3
- package/browser/consensus/Consensus.d.ts.map +1 -0
- package/browser/consensus/ConsensusConfig.d.ts +1 -0
- package/browser/consensus/ConsensusConfig.d.ts.map +1 -0
- package/browser/consensus/IConsensusConfig.d.ts +1 -0
- package/browser/consensus/IConsensusConfig.d.ts.map +1 -0
- package/browser/consensus/metadata/RoswellConsensus.d.ts +1 -0
- package/browser/consensus/metadata/RoswellConsensus.d.ts.map +1 -0
- package/browser/crypto/crypto.d.ts +1 -0
- package/browser/crypto/crypto.d.ts.map +1 -0
- package/browser/deterministic/AddressMap.d.ts +6 -1
- package/browser/deterministic/AddressMap.d.ts.map +1 -0
- package/browser/deterministic/AddressSet.d.ts +3 -1
- package/browser/deterministic/AddressSet.d.ts.map +1 -0
- package/browser/deterministic/CustomMap.d.ts +3 -1
- package/browser/deterministic/CustomMap.d.ts.map +1 -0
- package/browser/deterministic/DeterministicMap.d.ts +3 -1
- package/browser/deterministic/DeterministicMap.d.ts.map +1 -0
- package/browser/deterministic/DeterministicSet.d.ts +3 -1
- package/browser/deterministic/DeterministicSet.d.ts.map +1 -0
- package/browser/deterministic/ExtendedAddressMap.d.ts +7 -1
- package/browser/deterministic/ExtendedAddressMap.d.ts.map +1 -0
- package/browser/deterministic/FastMap.d.ts +7 -1
- package/browser/deterministic/FastMap.d.ts.map +1 -0
- package/browser/ecc/backend.d.ts +13 -0
- package/browser/ecc/backend.d.ts.map +1 -0
- package/browser/epoch/ChallengeSolution.d.ts +33 -1
- package/browser/epoch/ChallengeSolution.d.ts.map +1 -0
- package/browser/epoch/interfaces/IChallengeSolution.d.ts +14 -13
- package/browser/epoch/interfaces/IChallengeSolution.d.ts.map +1 -0
- package/browser/epoch/validator/EpochValidator.d.ts +37 -7
- package/browser/epoch/validator/EpochValidator.d.ts.map +1 -0
- package/browser/event/NetEvent.d.ts +1 -0
- package/browser/event/NetEvent.d.ts.map +1 -0
- package/browser/generators/AddressGenerator.d.ts +4 -3
- package/browser/generators/AddressGenerator.d.ts.map +1 -0
- package/browser/generators/Features.d.ts +1 -0
- package/browser/generators/Features.d.ts.map +1 -0
- package/browser/generators/Generator.d.ts +46 -10
- package/browser/generators/Generator.d.ts.map +1 -0
- package/browser/generators/MLDSAData.d.ts +1 -0
- package/browser/generators/MLDSAData.d.ts.map +1 -0
- package/browser/generators/builders/CalldataGenerator.d.ts +25 -4
- package/browser/generators/builders/CalldataGenerator.d.ts.map +1 -0
- package/browser/generators/builders/CustomGenerator.d.ts +13 -3
- package/browser/generators/builders/CustomGenerator.d.ts.map +1 -0
- package/browser/generators/builders/DeploymentGenerator.d.ts +15 -4
- package/browser/generators/builders/DeploymentGenerator.d.ts.map +1 -0
- package/browser/generators/builders/HashCommitmentGenerator.d.ts +164 -12
- package/browser/generators/builders/HashCommitmentGenerator.d.ts.map +1 -0
- package/browser/generators/builders/LegacyCalldataGenerator.d.ts +26 -4
- package/browser/generators/builders/LegacyCalldataGenerator.d.ts.map +1 -0
- package/browser/generators/builders/MultiSignGenerator.d.ts +6 -1
- package/browser/generators/builders/MultiSignGenerator.d.ts.map +1 -0
- package/browser/generators/builders/P2WDAGenerator.d.ts +42 -4
- package/browser/generators/builders/P2WDAGenerator.d.ts.map +1 -0
- package/browser/index.d.ts +1 -0
- package/browser/index.d.ts.map +1 -0
- package/browser/index.js +3558 -3167
- package/browser/keypair/Address.d.ts +283 -13
- package/browser/keypair/Address.d.ts.map +1 -0
- package/browser/keypair/AddressVerificator.d.ts +7 -6
- package/browser/keypair/AddressVerificator.d.ts.map +1 -0
- package/browser/keypair/EcKeyPair.d.ts +183 -21
- package/browser/keypair/EcKeyPair.d.ts.map +1 -0
- package/browser/keypair/MessageSigner.d.ts +17 -16
- package/browser/keypair/MessageSigner.d.ts.map +1 -0
- package/browser/keypair/Secp256k1PointDeriver.d.ts +55 -0
- package/browser/keypair/Secp256k1PointDeriver.d.ts.map +1 -0
- package/browser/keypair/Wallet.d.ts +27 -13
- package/browser/keypair/Wallet.d.ts.map +1 -0
- package/browser/keypair/interfaces/IWallet.d.ts +19 -0
- package/browser/keypair/interfaces/IWallet.d.ts.map +1 -0
- package/browser/metadata/ContractBaseMetadata.d.ts +10 -2
- package/browser/metadata/ContractBaseMetadata.d.ts.map +1 -0
- package/browser/mnemonic/BIPStandard.d.ts +59 -0
- package/browser/mnemonic/BIPStandard.d.ts.map +1 -0
- package/browser/mnemonic/Mnemonic.d.ts +15 -3
- package/browser/mnemonic/Mnemonic.d.ts.map +1 -0
- package/browser/mnemonic/MnemonicStrength.d.ts +6 -0
- package/browser/mnemonic/MnemonicStrength.d.ts.map +1 -0
- package/browser/network/ChainId.d.ts +1 -0
- package/browser/network/ChainId.d.ts.map +1 -0
- package/browser/noble-curves.js +844 -2746
- package/browser/noble-hashes.js +1338 -2067
- package/browser/opnet.d.ts +22 -1
- package/browser/opnet.d.ts.map +1 -0
- package/browser/p2wda/P2WDADetector.d.ts +36 -9
- package/browser/p2wda/P2WDADetector.d.ts.map +1 -0
- package/browser/polyfill/disposable.d.ts +16 -0
- package/browser/polyfill/disposable.d.ts.map +1 -0
- package/browser/signer/AddressRotation.d.ts +36 -0
- package/browser/signer/AddressRotation.d.ts.map +1 -0
- package/browser/signer/IRotationSigner.d.ts +27 -3
- package/browser/signer/IRotationSigner.d.ts.map +1 -0
- package/browser/signer/ParallelSignerAdapter.d.ts +14 -0
- package/browser/signer/ParallelSignerAdapter.d.ts.map +1 -0
- package/browser/signer/SignerUtils.d.ts +11 -4
- package/browser/signer/SignerUtils.d.ts.map +1 -0
- package/browser/signer/TweakedSigner.d.ts +28 -4
- package/browser/signer/TweakedSigner.d.ts.map +1 -0
- package/browser/transaction/ContractAddress.d.ts +2 -2
- package/browser/transaction/ContractAddress.d.ts.map +1 -0
- package/browser/transaction/TransactionFactory.d.ts +140 -2
- package/browser/transaction/TransactionFactory.d.ts.map +1 -0
- package/browser/transaction/browser/BrowserSignerBase.d.ts +12 -6
- package/browser/transaction/browser/BrowserSignerBase.d.ts.map +1 -0
- package/browser/transaction/browser/WalletNetworks.d.ts +1 -0
- package/browser/transaction/browser/WalletNetworks.d.ts.map +1 -0
- package/browser/transaction/browser/Web3Provider.d.ts +27 -0
- package/browser/transaction/browser/Web3Provider.d.ts.map +1 -0
- package/browser/transaction/browser/extensions/UnisatSigner.d.ts +9 -7
- package/browser/transaction/browser/extensions/UnisatSigner.d.ts.map +1 -0
- package/browser/transaction/browser/extensions/XverseSigner.d.ts +9 -7
- package/browser/transaction/browser/extensions/XverseSigner.d.ts.map +1 -0
- package/browser/transaction/browser/types/OPWallet.d.ts +10 -0
- package/browser/transaction/browser/types/OPWallet.d.ts.map +1 -0
- package/browser/transaction/browser/types/Unisat.d.ts +1 -0
- package/browser/transaction/browser/types/Unisat.d.ts.map +1 -0
- package/browser/transaction/browser/types/Xverse.d.ts +1 -0
- package/browser/transaction/browser/types/Xverse.d.ts.map +1 -0
- package/browser/transaction/builders/CancelTransaction.d.ts +29 -4
- package/browser/transaction/builders/CancelTransaction.d.ts.map +1 -0
- package/browser/transaction/builders/ChallengeSolutionTransaction.d.ts +1 -0
- package/browser/transaction/builders/ChallengeSolutionTransaction.d.ts.map +1 -0
- package/browser/transaction/builders/ConsolidatedInteractionTransaction.d.ts +137 -10
- package/browser/transaction/builders/ConsolidatedInteractionTransaction.d.ts.map +1 -0
- package/browser/transaction/builders/CustomScriptTransaction.d.ts +106 -6
- package/browser/transaction/builders/CustomScriptTransaction.d.ts.map +1 -0
- package/browser/transaction/builders/DeploymentTransaction.d.ts +116 -5
- package/browser/transaction/builders/DeploymentTransaction.d.ts.map +1 -0
- package/browser/transaction/builders/FundingTransaction.d.ts +4 -3
- package/browser/transaction/builders/FundingTransaction.d.ts.map +1 -0
- package/browser/transaction/builders/InteractionTransaction.d.ts +12 -3
- package/browser/transaction/builders/InteractionTransaction.d.ts.map +1 -0
- package/browser/transaction/builders/InteractionTransactionP2WDA.d.ts +56 -5
- package/browser/transaction/builders/InteractionTransactionP2WDA.d.ts.map +1 -0
- package/browser/transaction/builders/MultiSignTransaction.d.ts +125 -16
- package/browser/transaction/builders/MultiSignTransaction.d.ts.map +1 -0
- package/browser/transaction/builders/SharedInteractionTransaction.d.ts +103 -15
- package/browser/transaction/builders/SharedInteractionTransaction.d.ts.map +1 -0
- package/browser/transaction/builders/TransactionBuilder.d.ts +243 -14
- package/browser/transaction/builders/TransactionBuilder.d.ts.map +1 -0
- package/browser/transaction/enums/TransactionType.d.ts +1 -0
- package/browser/transaction/enums/TransactionType.d.ts.map +1 -0
- package/browser/transaction/interfaces/ICancelTransactionParameters.d.ts +2 -1
- package/browser/transaction/interfaces/ICancelTransactionParameters.d.ts.map +1 -0
- package/browser/transaction/interfaces/IConsolidatedTransactionParameters.d.ts +46 -3
- package/browser/transaction/interfaces/IConsolidatedTransactionParameters.d.ts.map +1 -0
- package/browser/transaction/interfaces/ICustomTransactionParameters.d.ts +6 -4
- package/browser/transaction/interfaces/ICustomTransactionParameters.d.ts.map +1 -0
- package/browser/transaction/interfaces/ITransactionParameters.d.ts +22 -10
- package/browser/transaction/interfaces/ITransactionParameters.d.ts.map +1 -0
- package/browser/transaction/interfaces/ITransactionResponses.d.ts +1 -0
- package/browser/transaction/interfaces/ITransactionResponses.d.ts.map +1 -0
- package/browser/transaction/interfaces/ITweakedTransactionData.d.ts +17 -5
- package/browser/transaction/interfaces/ITweakedTransactionData.d.ts.map +1 -0
- package/browser/transaction/interfaces/IWeb3ProviderTypes.d.ts +26 -0
- package/browser/transaction/interfaces/IWeb3ProviderTypes.d.ts.map +1 -0
- package/browser/transaction/interfaces/Tap.d.ts +4 -3
- package/browser/transaction/interfaces/Tap.d.ts.map +1 -0
- package/browser/transaction/mineable/IP2WSHAddress.d.ts +2 -1
- package/browser/transaction/mineable/IP2WSHAddress.d.ts.map +1 -0
- package/browser/transaction/mineable/TimelockGenerator.d.ts +12 -3
- package/browser/transaction/mineable/TimelockGenerator.d.ts.map +1 -0
- package/browser/transaction/offline/OfflineTransactionManager.d.ts +190 -9
- package/browser/transaction/offline/OfflineTransactionManager.d.ts.map +1 -0
- package/browser/transaction/offline/TransactionReconstructor.d.ts +53 -3
- package/browser/transaction/offline/TransactionReconstructor.d.ts.map +1 -0
- package/browser/transaction/offline/TransactionSerializer.d.ts +53 -2
- package/browser/transaction/offline/TransactionSerializer.d.ts.map +1 -0
- package/browser/transaction/offline/TransactionStateCapture.d.ts +64 -5
- package/browser/transaction/offline/TransactionStateCapture.d.ts.map +1 -0
- package/browser/transaction/offline/interfaces/ISerializableState.d.ts +71 -0
- package/browser/transaction/offline/interfaces/ISerializableState.d.ts.map +1 -0
- package/browser/transaction/offline/interfaces/ITypeSpecificData.d.ts +76 -0
- package/browser/transaction/offline/interfaces/ITypeSpecificData.d.ts.map +1 -0
- package/browser/transaction/psbt/PSBTTypes.d.ts +1 -0
- package/browser/transaction/psbt/PSBTTypes.d.ts.map +1 -0
- package/browser/transaction/shared/P2TR_MS.d.ts +11 -2
- package/browser/transaction/shared/P2TR_MS.d.ts.map +1 -0
- package/browser/transaction/shared/TweakedTransaction.d.ts +274 -33
- package/browser/transaction/shared/TweakedTransaction.d.ts.map +1 -0
- package/browser/transaction/utils/WitnessUtils.d.ts +7 -1
- package/browser/transaction/utils/WitnessUtils.d.ts.map +1 -0
- package/browser/utils/BitcoinUtils.d.ts +19 -0
- package/browser/utils/BitcoinUtils.d.ts.map +1 -0
- package/browser/utils/BufferHelper.d.ts +1 -0
- package/browser/utils/BufferHelper.d.ts.map +1 -0
- package/browser/utils/StringToBuffer.d.ts +1 -0
- package/browser/utils/StringToBuffer.d.ts.map +1 -0
- package/browser/utils/lengths.d.ts +1 -0
- package/browser/utils/lengths.d.ts.map +1 -0
- package/browser/utils/types.d.ts +1 -0
- package/browser/utils/types.d.ts.map +1 -0
- package/browser/utxo/OPNetLimitedProvider.d.ts +37 -1
- package/browser/utxo/OPNetLimitedProvider.d.ts.map +1 -0
- package/browser/utxo/interfaces/BroadcastResponse.d.ts +1 -0
- package/browser/utxo/interfaces/BroadcastResponse.d.ts.map +1 -0
- package/browser/utxo/interfaces/IUTXO.d.ts +11 -5
- package/browser/utxo/interfaces/IUTXO.d.ts.map +1 -0
- package/browser/vendors.js +14351 -10031
- package/browser/verification/TapscriptVerificator.d.ts +10 -8
- package/browser/verification/TapscriptVerificator.d.ts.map +1 -0
- package/build/_version.d.ts +1 -0
- package/build/_version.d.ts.map +1 -0
- package/build/_version.js +1 -0
- package/build/_version.js.map +1 -0
- package/build/abi/ABICoder.d.ts +1 -1
- package/build/abi/ABICoder.d.ts.map +1 -0
- package/build/abi/ABICoder.js +9 -10
- package/build/abi/ABICoder.js.map +1 -0
- package/build/branded/Branded.d.ts +4 -0
- package/build/branded/Branded.d.ts.map +1 -0
- package/build/branded/Branded.js +2 -0
- package/build/branded/Branded.js.map +1 -0
- package/build/buffer/BinaryReader.d.ts +121 -2
- package/build/buffer/BinaryReader.d.ts.map +1 -0
- package/build/buffer/BinaryReader.js +129 -5
- package/build/buffer/BinaryReader.js.map +1 -0
- package/build/buffer/BinaryWriter.d.ts +52 -2
- package/build/buffer/BinaryWriter.d.ts.map +1 -0
- package/build/buffer/BinaryWriter.js +62 -2
- package/build/buffer/BinaryWriter.js.map +1 -0
- package/build/bytecode/Compressor.d.ts +12 -0
- package/build/bytecode/Compressor.d.ts.map +1 -0
- package/build/bytecode/Compressor.js +17 -5
- package/build/bytecode/Compressor.js.map +1 -0
- package/build/chain/ChainData.d.ts +2 -2
- package/build/chain/ChainData.d.ts.map +1 -0
- package/build/chain/ChainData.js +35 -17
- package/build/chain/ChainData.js.map +1 -0
- package/build/consensus/Consensus.d.ts +11 -3
- package/build/consensus/Consensus.d.ts.map +1 -0
- package/build/consensus/Consensus.js +8 -0
- package/build/consensus/Consensus.js.map +1 -0
- package/build/consensus/ConsensusConfig.d.ts +2 -1
- package/build/consensus/ConsensusConfig.d.ts.map +1 -0
- package/build/consensus/ConsensusConfig.js +1 -0
- package/build/consensus/ConsensusConfig.js.map +1 -0
- package/build/consensus/IConsensusConfig.d.ts +1 -0
- package/build/consensus/IConsensusConfig.d.ts.map +1 -0
- package/build/consensus/IConsensusConfig.js +2 -1
- package/build/consensus/IConsensusConfig.js.map +1 -0
- package/build/consensus/metadata/RoswellConsensus.d.ts +2 -1
- package/build/consensus/metadata/RoswellConsensus.d.ts.map +1 -0
- package/build/consensus/metadata/RoswellConsensus.js +2 -0
- package/build/consensus/metadata/RoswellConsensus.js.map +1 -0
- package/build/crypto/crypto.d.ts +1 -0
- package/build/crypto/crypto.d.ts.map +1 -0
- package/build/crypto/crypto.js +1 -0
- package/build/crypto/crypto.js.map +1 -0
- package/build/deterministic/AddressMap.d.ts +6 -1
- package/build/deterministic/AddressMap.d.ts.map +1 -0
- package/build/deterministic/AddressMap.js +8 -0
- package/build/deterministic/AddressMap.js.map +1 -0
- package/build/deterministic/AddressSet.d.ts +3 -1
- package/build/deterministic/AddressSet.d.ts.map +1 -0
- package/build/deterministic/AddressSet.js +7 -0
- package/build/deterministic/AddressSet.js.map +1 -0
- package/build/deterministic/CustomMap.d.ts +3 -1
- package/build/deterministic/CustomMap.d.ts.map +1 -0
- package/build/deterministic/CustomMap.js +65 -47
- package/build/deterministic/CustomMap.js.map +1 -0
- package/build/deterministic/DeterministicMap.d.ts +4 -2
- package/build/deterministic/DeterministicMap.d.ts.map +1 -0
- package/build/deterministic/DeterministicMap.js +24 -27
- package/build/deterministic/DeterministicMap.js.map +1 -0
- package/build/deterministic/DeterministicSet.d.ts +3 -1
- package/build/deterministic/DeterministicSet.d.ts.map +1 -0
- package/build/deterministic/DeterministicSet.js +6 -0
- package/build/deterministic/DeterministicSet.js.map +1 -0
- package/build/deterministic/ExtendedAddressMap.d.ts +7 -1
- package/build/deterministic/ExtendedAddressMap.d.ts.map +1 -0
- package/build/deterministic/ExtendedAddressMap.js +18 -2
- package/build/deterministic/ExtendedAddressMap.js.map +1 -0
- package/build/deterministic/FastMap.d.ts +7 -1
- package/build/deterministic/FastMap.d.ts.map +1 -0
- package/build/deterministic/FastMap.js +7 -2
- package/build/deterministic/FastMap.js.map +1 -0
- package/build/ecc/backend.d.ts +13 -0
- package/build/ecc/backend.d.ts.map +1 -0
- package/build/ecc/backend.js +15 -0
- package/build/ecc/backend.js.map +1 -0
- package/build/epoch/ChallengeSolution.d.ts +34 -2
- package/build/epoch/ChallengeSolution.d.ts.map +1 -0
- package/build/epoch/ChallengeSolution.js +52 -0
- package/build/epoch/ChallengeSolution.js.map +1 -0
- package/build/epoch/interfaces/IChallengeSolution.d.ts +14 -13
- package/build/epoch/interfaces/IChallengeSolution.d.ts.map +1 -0
- package/build/epoch/interfaces/IChallengeSolution.js +2 -1
- package/build/epoch/interfaces/IChallengeSolution.js.map +1 -0
- package/build/epoch/validator/EpochValidator.d.ts +38 -8
- package/build/epoch/validator/EpochValidator.d.ts.map +1 -0
- package/build/epoch/validator/EpochValidator.js +45 -19
- package/build/epoch/validator/EpochValidator.js.map +1 -0
- package/build/event/NetEvent.d.ts +1 -0
- package/build/event/NetEvent.d.ts.map +1 -0
- package/build/event/NetEvent.js +3 -0
- package/build/event/NetEvent.js.map +1 -0
- package/build/generators/AddressGenerator.d.ts +4 -3
- package/build/generators/AddressGenerator.d.ts.map +1 -0
- package/build/generators/AddressGenerator.js +9 -4
- package/build/generators/AddressGenerator.js.map +1 -0
- package/build/generators/Features.d.ts +4 -3
- package/build/generators/Features.d.ts.map +1 -0
- package/build/generators/Features.js +1 -0
- package/build/generators/Features.js.map +1 -0
- package/build/generators/Generator.d.ts +47 -11
- package/build/generators/Generator.d.ts.map +1 -0
- package/build/generators/Generator.js +48 -12
- package/build/generators/Generator.js.map +1 -0
- package/build/generators/MLDSAData.d.ts +1 -0
- package/build/generators/MLDSAData.d.ts.map +1 -0
- package/build/generators/MLDSAData.js +1 -0
- package/build/generators/MLDSAData.js.map +1 -0
- package/build/generators/builders/CalldataGenerator.d.ts +27 -6
- package/build/generators/builders/CalldataGenerator.d.ts.map +1 -0
- package/build/generators/builders/CalldataGenerator.js +33 -4
- package/build/generators/builders/CalldataGenerator.js.map +1 -0
- package/build/generators/builders/CustomGenerator.d.ts +13 -3
- package/build/generators/builders/CustomGenerator.d.ts.map +1 -0
- package/build/generators/builders/CustomGenerator.js +11 -0
- package/build/generators/builders/CustomGenerator.js.map +1 -0
- package/build/generators/builders/DeploymentGenerator.d.ts +17 -6
- package/build/generators/builders/DeploymentGenerator.d.ts.map +1 -0
- package/build/generators/builders/DeploymentGenerator.js +18 -2
- package/build/generators/builders/DeploymentGenerator.js.map +1 -0
- package/build/generators/builders/HashCommitmentGenerator.d.ts +166 -14
- package/build/generators/builders/HashCommitmentGenerator.d.ts.map +1 -0
- package/build/generators/builders/HashCommitmentGenerator.js +193 -27
- package/build/generators/builders/HashCommitmentGenerator.js.map +1 -0
- package/build/generators/builders/LegacyCalldataGenerator.d.ts +27 -5
- package/build/generators/builders/LegacyCalldataGenerator.d.ts.map +1 -0
- package/build/generators/builders/LegacyCalldataGenerator.js +35 -5
- package/build/generators/builders/LegacyCalldataGenerator.js.map +1 -0
- package/build/generators/builders/MultiSignGenerator.d.ts +6 -1
- package/build/generators/builders/MultiSignGenerator.d.ts.map +1 -0
- package/build/generators/builders/MultiSignGenerator.js +20 -10
- package/build/generators/builders/MultiSignGenerator.js.map +1 -0
- package/build/generators/builders/P2WDAGenerator.d.ts +44 -6
- package/build/generators/builders/P2WDAGenerator.d.ts.map +1 -0
- package/build/generators/builders/P2WDAGenerator.js +41 -2
- package/build/generators/builders/P2WDAGenerator.js.map +1 -0
- package/build/index.d.ts +1 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +1 -0
- package/build/index.js.map +1 -0
- package/build/keypair/Address.d.ts +284 -14
- package/build/keypair/Address.d.ts.map +1 -0
- package/build/keypair/Address.js +446 -128
- package/build/keypair/Address.js.map +1 -0
- package/build/keypair/AddressVerificator.d.ts +7 -6
- package/build/keypair/AddressVerificator.d.ts.map +1 -0
- package/build/keypair/AddressVerificator.js +4 -5
- package/build/keypair/AddressVerificator.js.map +1 -0
- package/build/keypair/EcKeyPair.d.ts +185 -23
- package/build/keypair/EcKeyPair.d.ts.map +1 -0
- package/build/keypair/EcKeyPair.js +218 -50
- package/build/keypair/EcKeyPair.js.map +1 -0
- package/build/keypair/MessageSigner.d.ts +18 -17
- package/build/keypair/MessageSigner.d.ts.map +1 -0
- package/build/keypair/MessageSigner.js +34 -25
- package/build/keypair/MessageSigner.js.map +1 -0
- package/build/keypair/Secp256k1PointDeriver.d.ts +55 -0
- package/build/keypair/Secp256k1PointDeriver.d.ts.map +1 -0
- package/build/keypair/Secp256k1PointDeriver.js +66 -0
- package/build/keypair/Secp256k1PointDeriver.js.map +1 -0
- package/build/keypair/Wallet.d.ts +29 -15
- package/build/keypair/Wallet.d.ts.map +1 -0
- package/build/keypair/Wallet.js +46 -14
- package/build/keypair/Wallet.js.map +1 -0
- package/build/keypair/interfaces/IWallet.d.ts +19 -0
- package/build/keypair/interfaces/IWallet.d.ts.map +1 -0
- package/build/keypair/interfaces/IWallet.js +1 -0
- package/build/keypair/interfaces/IWallet.js.map +1 -0
- package/build/metadata/ContractBaseMetadata.d.ts +10 -2
- package/build/metadata/ContractBaseMetadata.d.ts.map +1 -0
- package/build/metadata/ContractBaseMetadata.js +10 -1
- package/build/metadata/ContractBaseMetadata.js.map +1 -0
- package/build/mnemonic/BIPStandard.d.ts +59 -0
- package/build/mnemonic/BIPStandard.d.ts.map +1 -0
- package/build/mnemonic/BIPStandard.js +59 -0
- package/build/mnemonic/BIPStandard.js.map +1 -0
- package/build/mnemonic/Mnemonic.d.ts +16 -4
- package/build/mnemonic/Mnemonic.d.ts.map +1 -0
- package/build/mnemonic/Mnemonic.js +35 -8
- package/build/mnemonic/Mnemonic.js.map +1 -0
- package/build/mnemonic/MnemonicStrength.d.ts +6 -0
- package/build/mnemonic/MnemonicStrength.d.ts.map +1 -0
- package/build/mnemonic/MnemonicStrength.js +6 -0
- package/build/mnemonic/MnemonicStrength.js.map +1 -0
- package/build/network/ChainId.d.ts +1 -0
- package/build/network/ChainId.d.ts.map +1 -0
- package/build/network/ChainId.js +1 -0
- package/build/network/ChainId.js.map +1 -0
- package/build/opnet.d.ts +26 -3
- package/build/opnet.d.ts.map +1 -0
- package/build/opnet.js +23 -0
- package/build/opnet.js.map +1 -0
- package/build/p2wda/P2WDADetector.d.ts +38 -11
- package/build/p2wda/P2WDADetector.d.ts.map +1 -0
- package/build/p2wda/P2WDADetector.js +43 -10
- package/build/p2wda/P2WDADetector.js.map +1 -0
- package/build/polyfill/disposable.d.ts +16 -0
- package/build/polyfill/disposable.d.ts.map +1 -0
- package/build/polyfill/disposable.js +23 -0
- package/build/polyfill/disposable.js.map +1 -0
- package/build/signer/AddressRotation.d.ts +37 -1
- package/build/signer/AddressRotation.d.ts.map +1 -0
- package/build/signer/AddressRotation.js +16 -0
- package/build/signer/AddressRotation.js.map +1 -0
- package/build/signer/IRotationSigner.d.ts +27 -3
- package/build/signer/IRotationSigner.d.ts.map +1 -0
- package/build/signer/IRotationSigner.js +2 -1
- package/build/signer/IRotationSigner.js.map +1 -0
- package/build/signer/ParallelSignerAdapter.d.ts +14 -0
- package/build/signer/ParallelSignerAdapter.d.ts.map +1 -0
- package/build/signer/ParallelSignerAdapter.js +51 -0
- package/build/signer/ParallelSignerAdapter.js.map +1 -0
- package/build/signer/SignerUtils.d.ts +11 -4
- package/build/signer/SignerUtils.d.ts.map +1 -0
- package/build/signer/SignerUtils.js +16 -0
- package/build/signer/SignerUtils.js.map +1 -0
- package/build/signer/TweakedSigner.d.ts +28 -4
- package/build/signer/TweakedSigner.d.ts.map +1 -0
- package/build/signer/TweakedSigner.js +23 -6
- package/build/signer/TweakedSigner.js.map +1 -0
- package/build/transaction/ContractAddress.d.ts +2 -2
- package/build/transaction/ContractAddress.d.ts.map +1 -0
- package/build/transaction/ContractAddress.js +4 -8
- package/build/transaction/ContractAddress.js.map +1 -0
- package/build/transaction/TransactionFactory.d.ts +147 -9
- package/build/transaction/TransactionFactory.d.ts.map +1 -0
- package/build/transaction/TransactionFactory.js +145 -26
- package/build/transaction/TransactionFactory.js.map +1 -0
- package/build/transaction/browser/BrowserSignerBase.d.ts +12 -6
- package/build/transaction/browser/BrowserSignerBase.d.ts.map +1 -0
- package/build/transaction/browser/BrowserSignerBase.js +7 -0
- package/build/transaction/browser/BrowserSignerBase.js.map +1 -0
- package/build/transaction/browser/WalletNetworks.d.ts +1 -0
- package/build/transaction/browser/WalletNetworks.d.ts.map +1 -0
- package/build/transaction/browser/WalletNetworks.js +1 -0
- package/build/transaction/browser/WalletNetworks.js.map +1 -0
- package/build/transaction/browser/Web3Provider.d.ts +30 -3
- package/build/transaction/browser/Web3Provider.d.ts.map +1 -0
- package/build/transaction/browser/Web3Provider.js +1 -0
- package/build/transaction/browser/Web3Provider.js.map +1 -0
- package/build/transaction/browser/extensions/UnisatSigner.d.ts +11 -9
- package/build/transaction/browser/extensions/UnisatSigner.d.ts.map +1 -0
- package/build/transaction/browser/extensions/UnisatSigner.js +27 -17
- package/build/transaction/browser/extensions/UnisatSigner.js.map +1 -0
- package/build/transaction/browser/extensions/XverseSigner.d.ts +10 -8
- package/build/transaction/browser/extensions/XverseSigner.d.ts.map +1 -0
- package/build/transaction/browser/extensions/XverseSigner.js +25 -15
- package/build/transaction/browser/extensions/XverseSigner.js.map +1 -0
- package/build/transaction/browser/types/OPWallet.d.ts +12 -2
- package/build/transaction/browser/types/OPWallet.d.ts.map +1 -0
- package/build/transaction/browser/types/OPWallet.js +4 -0
- package/build/transaction/browser/types/OPWallet.js.map +1 -0
- package/build/transaction/browser/types/Unisat.d.ts +2 -1
- package/build/transaction/browser/types/Unisat.d.ts.map +1 -0
- package/build/transaction/browser/types/Unisat.js +2 -0
- package/build/transaction/browser/types/Unisat.js.map +1 -0
- package/build/transaction/browser/types/Xverse.d.ts +1 -0
- package/build/transaction/browser/types/Xverse.d.ts.map +1 -0
- package/build/transaction/browser/types/Xverse.js +1 -0
- package/build/transaction/browser/types/Xverse.js.map +1 -0
- package/build/transaction/builders/CancelTransaction.d.ts +31 -6
- package/build/transaction/builders/CancelTransaction.d.ts.map +1 -0
- package/build/transaction/builders/CancelTransaction.js +116 -33
- package/build/transaction/builders/CancelTransaction.js.map +1 -0
- package/build/transaction/builders/ChallengeSolutionTransaction.d.ts +1 -0
- package/build/transaction/builders/ChallengeSolutionTransaction.d.ts.map +1 -0
- package/build/transaction/builders/ChallengeSolutionTransaction.js +88 -0
- package/build/transaction/builders/ChallengeSolutionTransaction.js.map +1 -0
- package/build/transaction/builders/ConsolidatedInteractionTransaction.d.ts +140 -13
- package/build/transaction/builders/ConsolidatedInteractionTransaction.d.ts.map +1 -0
- package/build/transaction/builders/ConsolidatedInteractionTransaction.js +197 -20
- package/build/transaction/builders/ConsolidatedInteractionTransaction.js.map +1 -0
- package/build/transaction/builders/CustomScriptTransaction.d.ts +108 -8
- package/build/transaction/builders/CustomScriptTransaction.d.ts.map +1 -0
- package/build/transaction/builders/CustomScriptTransaction.js +176 -39
- package/build/transaction/builders/CustomScriptTransaction.js.map +1 -0
- package/build/transaction/builders/DeploymentTransaction.d.ts +120 -9
- package/build/transaction/builders/DeploymentTransaction.d.ts.map +1 -0
- package/build/transaction/builders/DeploymentTransaction.js +194 -51
- package/build/transaction/builders/DeploymentTransaction.js.map +1 -0
- package/build/transaction/builders/FundingTransaction.d.ts +5 -4
- package/build/transaction/builders/FundingTransaction.d.ts.map +1 -0
- package/build/transaction/builders/FundingTransaction.js +15 -8
- package/build/transaction/builders/FundingTransaction.js.map +1 -0
- package/build/transaction/builders/InteractionTransaction.d.ts +14 -5
- package/build/transaction/builders/InteractionTransaction.d.ts.map +1 -0
- package/build/transaction/builders/InteractionTransaction.js +18 -5
- package/build/transaction/builders/InteractionTransaction.js.map +1 -0
- package/build/transaction/builders/InteractionTransactionP2WDA.d.ts +58 -7
- package/build/transaction/builders/InteractionTransactionP2WDA.d.ts.map +1 -0
- package/build/transaction/builders/InteractionTransactionP2WDA.js +95 -18
- package/build/transaction/builders/InteractionTransactionP2WDA.js.map +1 -0
- package/build/transaction/builders/MultiSignTransaction.d.ts +126 -17
- package/build/transaction/builders/MultiSignTransaction.d.ts.map +1 -0
- package/build/transaction/builders/MultiSignTransaction.js +201 -76
- package/build/transaction/builders/MultiSignTransaction.js.map +1 -0
- package/build/transaction/builders/SharedInteractionTransaction.d.ts +106 -18
- package/build/transaction/builders/SharedInteractionTransaction.d.ts.map +1 -0
- package/build/transaction/builders/SharedInteractionTransaction.js +158 -40
- package/build/transaction/builders/SharedInteractionTransaction.js.map +1 -0
- package/build/transaction/builders/TransactionBuilder.d.ts +249 -19
- package/build/transaction/builders/TransactionBuilder.d.ts.map +1 -0
- package/build/transaction/builders/TransactionBuilder.js +375 -60
- package/build/transaction/builders/TransactionBuilder.js.map +1 -0
- package/build/transaction/enums/TransactionType.d.ts +1 -0
- package/build/transaction/enums/TransactionType.d.ts.map +1 -0
- package/build/transaction/enums/TransactionType.js +1 -0
- package/build/transaction/enums/TransactionType.js.map +1 -0
- package/build/transaction/interfaces/ICancelTransactionParameters.d.ts +3 -2
- package/build/transaction/interfaces/ICancelTransactionParameters.d.ts.map +1 -0
- package/build/transaction/interfaces/ICancelTransactionParameters.js +1 -0
- package/build/transaction/interfaces/ICancelTransactionParameters.js.map +1 -0
- package/build/transaction/interfaces/IConsolidatedTransactionParameters.d.ts +48 -5
- package/build/transaction/interfaces/IConsolidatedTransactionParameters.d.ts.map +1 -0
- package/build/transaction/interfaces/IConsolidatedTransactionParameters.js +1 -0
- package/build/transaction/interfaces/IConsolidatedTransactionParameters.js.map +1 -0
- package/build/transaction/interfaces/ICustomTransactionParameters.d.ts +7 -5
- package/build/transaction/interfaces/ICustomTransactionParameters.d.ts.map +1 -0
- package/build/transaction/interfaces/ICustomTransactionParameters.js +1 -0
- package/build/transaction/interfaces/ICustomTransactionParameters.js.map +1 -0
- package/build/transaction/interfaces/ITransactionParameters.d.ts +27 -15
- package/build/transaction/interfaces/ITransactionParameters.d.ts.map +1 -0
- package/build/transaction/interfaces/ITransactionParameters.js +1 -0
- package/build/transaction/interfaces/ITransactionParameters.js.map +1 -0
- package/build/transaction/interfaces/ITransactionResponses.d.ts +3 -2
- package/build/transaction/interfaces/ITransactionResponses.d.ts.map +1 -0
- package/build/transaction/interfaces/ITransactionResponses.js +1 -0
- package/build/transaction/interfaces/ITransactionResponses.js.map +1 -0
- package/build/transaction/interfaces/ITweakedTransactionData.d.ts +21 -8
- package/build/transaction/interfaces/ITweakedTransactionData.d.ts.map +1 -0
- package/build/transaction/interfaces/ITweakedTransactionData.js +1 -0
- package/build/transaction/interfaces/ITweakedTransactionData.js.map +1 -0
- package/build/transaction/interfaces/IWeb3ProviderTypes.d.ts +29 -3
- package/build/transaction/interfaces/IWeb3ProviderTypes.d.ts.map +1 -0
- package/build/transaction/interfaces/IWeb3ProviderTypes.js +2 -1
- package/build/transaction/interfaces/IWeb3ProviderTypes.js.map +1 -0
- package/build/transaction/interfaces/Tap.d.ts +4 -3
- package/build/transaction/interfaces/Tap.d.ts.map +1 -0
- package/build/transaction/interfaces/Tap.js +1 -0
- package/build/transaction/interfaces/Tap.js.map +1 -0
- package/build/transaction/mineable/IP2WSHAddress.d.ts +2 -1
- package/build/transaction/mineable/IP2WSHAddress.d.ts.map +1 -0
- package/build/transaction/mineable/IP2WSHAddress.js +1 -0
- package/build/transaction/mineable/IP2WSHAddress.js.map +1 -0
- package/build/transaction/mineable/TimelockGenerator.d.ts +13 -4
- package/build/transaction/mineable/TimelockGenerator.d.ts.map +1 -0
- package/build/transaction/mineable/TimelockGenerator.js +12 -3
- package/build/transaction/mineable/TimelockGenerator.js.map +1 -0
- package/build/transaction/offline/OfflineTransactionManager.d.ts +193 -12
- package/build/transaction/offline/OfflineTransactionManager.d.ts.map +1 -0
- package/build/transaction/offline/OfflineTransactionManager.js +192 -8
- package/build/transaction/offline/OfflineTransactionManager.js.map +1 -0
- package/build/transaction/offline/TransactionReconstructor.d.ts +56 -6
- package/build/transaction/offline/TransactionReconstructor.d.ts.map +1 -0
- package/build/transaction/offline/TransactionReconstructor.js +111 -75
- package/build/transaction/offline/TransactionReconstructor.js.map +1 -0
- package/build/transaction/offline/TransactionSerializer.d.ts +54 -3
- package/build/transaction/offline/TransactionSerializer.d.ts.map +1 -0
- package/build/transaction/offline/TransactionSerializer.js +206 -95
- package/build/transaction/offline/TransactionSerializer.js.map +1 -0
- package/build/transaction/offline/TransactionStateCapture.d.ts +66 -7
- package/build/transaction/offline/TransactionStateCapture.d.ts.map +1 -0
- package/build/transaction/offline/TransactionStateCapture.js +124 -60
- package/build/transaction/offline/TransactionStateCapture.js.map +1 -0
- package/build/transaction/offline/interfaces/ISerializableState.d.ts +72 -1
- package/build/transaction/offline/interfaces/ISerializableState.d.ts.map +1 -0
- package/build/transaction/offline/interfaces/ISerializableState.js +10 -1
- package/build/transaction/offline/interfaces/ISerializableState.js.map +1 -0
- package/build/transaction/offline/interfaces/ITypeSpecificData.d.ts +77 -1
- package/build/transaction/offline/interfaces/ITypeSpecificData.d.ts.map +1 -0
- package/build/transaction/offline/interfaces/ITypeSpecificData.js +19 -0
- package/build/transaction/offline/interfaces/ITypeSpecificData.js.map +1 -0
- package/build/transaction/psbt/PSBTTypes.d.ts +1 -0
- package/build/transaction/psbt/PSBTTypes.d.ts.map +1 -0
- package/build/transaction/psbt/PSBTTypes.js +1 -0
- package/build/transaction/psbt/PSBTTypes.js.map +1 -0
- package/build/transaction/shared/P2TR_MS.d.ts +11 -2
- package/build/transaction/shared/P2TR_MS.d.ts.map +1 -0
- package/build/transaction/shared/P2TR_MS.js +10 -0
- package/build/transaction/shared/P2TR_MS.js.map +1 -0
- package/build/transaction/shared/TweakedTransaction.d.ts +281 -38
- package/build/transaction/shared/TweakedTransaction.d.ts.map +1 -0
- package/build/transaction/shared/TweakedTransaction.js +576 -114
- package/build/transaction/shared/TweakedTransaction.js.map +1 -0
- package/build/transaction/utils/WitnessUtils.d.ts +7 -1
- package/build/transaction/utils/WitnessUtils.d.ts.map +1 -0
- package/build/transaction/utils/WitnessUtils.js +17 -3
- package/build/transaction/utils/WitnessUtils.js.map +1 -0
- package/build/tsconfig.build.tsbuildinfo +1 -1
- package/build/utils/BitcoinUtils.d.ts +19 -0
- package/build/utils/BitcoinUtils.d.ts.map +1 -0
- package/build/utils/BitcoinUtils.js +19 -0
- package/build/utils/BitcoinUtils.js.map +1 -0
- package/build/utils/BufferHelper.d.ts +2 -1
- package/build/utils/BufferHelper.d.ts.map +1 -0
- package/build/utils/BufferHelper.js +38 -32
- package/build/utils/BufferHelper.js.map +1 -0
- package/build/utils/StringToBuffer.d.ts +1 -0
- package/build/utils/StringToBuffer.d.ts.map +1 -0
- package/build/utils/StringToBuffer.js +1 -0
- package/build/utils/StringToBuffer.js.map +1 -0
- package/build/utils/lengths.d.ts +1 -0
- package/build/utils/lengths.d.ts.map +1 -0
- package/build/utils/lengths.js +1 -0
- package/build/utils/lengths.js.map +1 -0
- package/build/utils/types.d.ts +1 -0
- package/build/utils/types.d.ts.map +1 -0
- package/build/utils/types.js +2 -1
- package/build/utils/types.js.map +1 -0
- package/build/utxo/OPNetLimitedProvider.d.ts +39 -3
- package/build/utxo/OPNetLimitedProvider.d.ts.map +1 -0
- package/build/utxo/OPNetLimitedProvider.js +43 -5
- package/build/utxo/OPNetLimitedProvider.js.map +1 -0
- package/build/utxo/interfaces/BroadcastResponse.d.ts +1 -0
- package/build/utxo/interfaces/BroadcastResponse.d.ts.map +1 -0
- package/build/utxo/interfaces/BroadcastResponse.js +1 -0
- package/build/utxo/interfaces/BroadcastResponse.js.map +1 -0
- package/build/utxo/interfaces/IUTXO.d.ts +13 -7
- package/build/utxo/interfaces/IUTXO.d.ts.map +1 -0
- package/build/utxo/interfaces/IUTXO.js +1 -0
- package/build/utxo/interfaces/IUTXO.js.map +1 -0
- package/build/verification/TapscriptVerificator.d.ts +12 -10
- package/build/verification/TapscriptVerificator.d.ts.map +1 -0
- package/build/verification/TapscriptVerificator.js +28 -38
- package/build/verification/TapscriptVerificator.js.map +1 -0
- package/eslint.config.js +0 -1
- package/package.json +12 -35
- package/src/abi/ABICoder.ts +0 -13
- package/src/branded/Branded.ts +5 -0
- package/src/buffer/BinaryReader.ts +7 -7
- package/src/buffer/BinaryWriter.ts +29 -24
- package/src/bytecode/Compressor.ts +1 -1
- package/src/chain/ChainData.ts +34 -27
- package/src/consensus/ConsensusConfig.ts +1 -1
- package/src/consensus/IConsensusConfig.ts +0 -17
- package/src/consensus/metadata/RoswellConsensus.ts +1 -17
- package/src/deterministic/AddressMap.ts +5 -1
- package/src/deterministic/AddressSet.ts +5 -1
- package/src/deterministic/CustomMap.ts +6 -2
- package/src/deterministic/DeterministicMap.ts +8 -4
- package/src/deterministic/DeterministicSet.ts +6 -2
- package/src/deterministic/ExtendedAddressMap.ts +9 -4
- package/src/deterministic/FastMap.ts +9 -5
- package/src/ecc/backend.ts +17 -0
- package/src/epoch/ChallengeSolution.ts +3 -3
- package/src/epoch/interfaces/IChallengeSolution.ts +13 -13
- package/src/epoch/validator/EpochValidator.ts +24 -43
- package/src/generators/AddressGenerator.ts +4 -7
- package/src/generators/Features.ts +3 -3
- package/src/generators/Generator.ts +42 -26
- package/src/generators/builders/CalldataGenerator.ts +26 -24
- package/src/generators/builders/CustomGenerator.ts +4 -4
- package/src/generators/builders/DeploymentGenerator.ts +25 -23
- package/src/generators/builders/HashCommitmentGenerator.ts +31 -31
- package/src/generators/builders/LegacyCalldataGenerator.ts +26 -24
- package/src/generators/builders/MultiSignGenerator.ts +12 -12
- package/src/generators/builders/P2WDAGenerator.ts +10 -10
- package/src/keypair/Address.ts +114 -71
- package/src/keypair/AddressVerificator.ts +14 -148
- package/src/keypair/EcKeyPair.ts +104 -116
- package/src/keypair/MessageSigner.ts +70 -150
- package/src/keypair/Wallet.ts +56 -241
- package/src/metadata/ContractBaseMetadata.ts +2 -2
- package/src/mnemonic/Mnemonic.ts +31 -222
- package/src/opnet.ts +12 -6
- package/src/p2wda/P2WDADetector.ts +23 -72
- package/src/polyfill/disposable.ts +29 -0
- package/src/signer/AddressRotation.ts +1 -1
- package/src/signer/IRotationSigner.ts +3 -3
- package/src/signer/ParallelSignerAdapter.ts +59 -0
- package/src/signer/SignerUtils.ts +4 -4
- package/src/signer/TweakedSigner.ts +26 -14
- package/src/transaction/ContractAddress.ts +3 -7
- package/src/transaction/TransactionFactory.ts +28 -50
- package/src/transaction/browser/BrowserSignerBase.ts +12 -6
- package/src/transaction/browser/Web3Provider.ts +3 -3
- package/src/transaction/browser/extensions/UnisatSigner.ts +52 -48
- package/src/transaction/browser/extensions/XverseSigner.ts +55 -38
- package/src/transaction/browser/types/OPWallet.ts +2 -2
- package/src/transaction/browser/types/Unisat.ts +1 -1
- package/src/transaction/builders/CancelTransaction.ts +59 -24
- package/src/transaction/builders/ChallengeSolutionTransaction.ts +3 -3
- package/src/transaction/builders/ConsolidatedInteractionTransaction.ts +39 -34
- package/src/transaction/builders/CustomScriptTransaction.ts +79 -56
- package/src/transaction/builders/DeploymentTransaction.ts +82 -63
- package/src/transaction/builders/FundingTransaction.ts +11 -11
- package/src/transaction/builders/InteractionTransaction.ts +10 -10
- package/src/transaction/builders/InteractionTransactionP2WDA.ts +38 -40
- package/src/transaction/builders/MultiSignTransaction.ts +68 -61
- package/src/transaction/builders/SharedInteractionTransaction.ts +81 -57
- package/src/transaction/builders/TransactionBuilder.ts +99 -81
- package/src/transaction/interfaces/ICancelTransactionParameters.ts +2 -2
- package/src/transaction/interfaces/IConsolidatedTransactionParameters.ts +5 -5
- package/src/transaction/interfaces/ICustomTransactionParameters.ts +5 -5
- package/src/transaction/interfaces/ITransactionParameters.ts +15 -15
- package/src/transaction/interfaces/ITransactionResponses.ts +2 -2
- package/src/transaction/interfaces/ITweakedTransactionData.ts +17 -8
- package/src/transaction/interfaces/IWeb3ProviderTypes.ts +3 -3
- package/src/transaction/interfaces/Tap.ts +3 -3
- package/src/transaction/mineable/IP2WSHAddress.ts +1 -1
- package/src/transaction/mineable/TimelockGenerator.ts +19 -12
- package/src/transaction/offline/OfflineTransactionManager.ts +22 -23
- package/src/transaction/offline/TransactionReconstructor.ts +83 -91
- package/src/transaction/offline/TransactionSerializer.ts +151 -101
- package/src/transaction/offline/TransactionStateCapture.ts +83 -79
- package/src/transaction/offline/interfaces/ISerializableState.ts +1 -1
- package/src/transaction/offline/interfaces/ITypeSpecificData.ts +1 -1
- package/src/transaction/shared/P2TR_MS.ts +4 -4
- package/src/transaction/shared/TweakedTransaction.ts +326 -124
- package/src/transaction/utils/WitnessUtils.ts +18 -9
- package/src/utils/BufferHelper.ts +39 -37
- package/src/utxo/OPNetLimitedProvider.ts +9 -9
- package/src/utxo/interfaces/IUTXO.ts +7 -7
- package/src/verification/TapscriptVerificator.ts +73 -86
- package/test/address-rotation.test.ts +24 -24
- package/test/address.test.ts +12 -12
- package/test/addressmap.test.ts +30 -30
- package/test/binary-reader-writer.test.ts +8 -8
- package/test/browser/offline-transaction.test.ts +2206 -0
- package/test/browser/parallel-signing.test.ts +316 -0
- package/test/browser/setup.ts +11 -0
- package/test/browser/transaction-signing.test.ts +416 -0
- package/test/buffer-helper.test.ts +287 -0
- package/test/derivePath.test.ts +4 -3
- package/test/disposable.test.ts +279 -0
- package/test/fastmap-setall.test.ts +1 -1
- package/test/fastmap.test.ts +3 -3
- package/test/messagesigner-mldsa.test.ts +3 -3
- package/test/messagesigner-schnorr.test.ts +9 -9
- package/test/offline-transaction.test.ts +461 -288
- package/test/old/FastBigIntMap.ts +3 -3
- package/test/oldfastmap.test.ts +6 -6
- package/test/transaction-builders.test.ts +321 -0
- package/tsconfig.base.json +34 -18
- package/tsconfig.browser.json +15 -0
- package/tsconfig.json +3 -8
- package/vite.config.browser.ts +4 -5
- package/vitest.config.browser.ts +68 -0
- package/vitest.config.ts +1 -1
- package/browser/valibot.js +0 -4948
- package/tsconfig.webpack.json +0 -18
|
@@ -1,27 +1,80 @@
|
|
|
1
|
-
import { Signer } from '@btc-vision/bitcoin';
|
|
2
|
-
import {
|
|
1
|
+
import { type Signer } from '@btc-vision/bitcoin';
|
|
2
|
+
import { type UniversalSigner } from '@btc-vision/ecpair';
|
|
3
3
|
import { TransactionType } from '../enums/TransactionType.js';
|
|
4
4
|
import { TransactionBuilder } from '../builders/TransactionBuilder.js';
|
|
5
|
-
import { ISerializableTransactionState, PrecomputedData } from './interfaces/ISerializableState.js';
|
|
6
|
-
import { ReconstructionOptions } from './TransactionReconstructor.js';
|
|
7
|
-
import { IDeploymentParameters, IFundingTransactionParameters, IInteractionParameters, ITransactionParameters } from '../interfaces/ITransactionParameters.js';
|
|
5
|
+
import type { ISerializableTransactionState, PrecomputedData } from './interfaces/ISerializableState.js';
|
|
6
|
+
import { type ReconstructionOptions } from './TransactionReconstructor.js';
|
|
7
|
+
import type { IDeploymentParameters, IFundingTransactionParameters, IInteractionParameters, ITransactionParameters } from '../interfaces/ITransactionParameters.js';
|
|
8
|
+
/**
|
|
9
|
+
* Export options for offline transaction signing
|
|
10
|
+
*/
|
|
8
11
|
export interface ExportOptions {
|
|
12
|
+
/** The original transaction parameters */
|
|
9
13
|
params: ITransactionParameters;
|
|
14
|
+
/** Transaction type */
|
|
10
15
|
type: TransactionType;
|
|
16
|
+
/** Precomputed data from the builder */
|
|
11
17
|
precomputed?: Partial<PrecomputedData>;
|
|
12
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* Main entry point for offline transaction signing workflow.
|
|
21
|
+
*
|
|
22
|
+
* This class provides a complete API for:
|
|
23
|
+
* 1. Phase 1 (Online): Building transactions and exporting state for offline signing
|
|
24
|
+
* 2. Phase 2 (Offline): Importing state, providing signers, and signing transactions
|
|
25
|
+
*
|
|
26
|
+
* Also supports fee bumping by allowing reconstruction with new fee parameters.
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```typescript
|
|
30
|
+
* // Phase 1 (Online environment)
|
|
31
|
+
* const params: IFundingTransactionParameters = { ... };
|
|
32
|
+
* const state = OfflineTransactionManager.exportFunding(params);
|
|
33
|
+
* // Send state to offline environment
|
|
34
|
+
*
|
|
35
|
+
* // Phase 2 (Offline environment)
|
|
36
|
+
* const signedTxHex = await OfflineTransactionManager.importSignAndExport(state, {
|
|
37
|
+
* signer: offlineSigner,
|
|
38
|
+
* });
|
|
39
|
+
* // Send signedTxHex back to online environment for broadcast
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
13
42
|
export declare class OfflineTransactionManager {
|
|
43
|
+
/**
|
|
44
|
+
* Export a FundingTransaction for offline signing
|
|
45
|
+
* @param params - Funding transaction parameters
|
|
46
|
+
* @param precomputed - Optional precomputed data
|
|
47
|
+
* @returns Base64-encoded serialized state
|
|
48
|
+
*/
|
|
14
49
|
static exportFunding(params: IFundingTransactionParameters, precomputed?: Partial<PrecomputedData>): string;
|
|
50
|
+
/**
|
|
51
|
+
* Export a DeploymentTransaction for offline signing
|
|
52
|
+
* @param params - Deployment transaction parameters
|
|
53
|
+
* @param precomputed - Required precomputed data (randomBytes, compiledTargetScript)
|
|
54
|
+
* @returns Base64-encoded serialized state
|
|
55
|
+
*/
|
|
15
56
|
static exportDeployment(params: IDeploymentParameters, precomputed: Partial<PrecomputedData> & {
|
|
16
57
|
compiledTargetScript: string;
|
|
17
58
|
randomBytes: string;
|
|
18
59
|
}): string;
|
|
60
|
+
/**
|
|
61
|
+
* Export an InteractionTransaction for offline signing
|
|
62
|
+
* @param params - Interaction transaction parameters
|
|
63
|
+
* @param precomputed - Required precomputed data (randomBytes, compiledTargetScript)
|
|
64
|
+
* @returns Base64-encoded serialized state
|
|
65
|
+
*/
|
|
19
66
|
static exportInteraction(params: IInteractionParameters, precomputed: Partial<PrecomputedData> & {
|
|
20
67
|
compiledTargetScript: string;
|
|
21
68
|
randomBytes: string;
|
|
22
69
|
}): string;
|
|
70
|
+
/**
|
|
71
|
+
* Export a MultiSignTransaction for offline signing
|
|
72
|
+
* @param params - MultiSig transaction parameters
|
|
73
|
+
* @param precomputed - Optional precomputed data
|
|
74
|
+
* @returns Base64-encoded serialized state
|
|
75
|
+
*/
|
|
23
76
|
static exportMultiSig(params: ITransactionParameters & {
|
|
24
|
-
pubkeys:
|
|
77
|
+
pubkeys: Uint8Array[];
|
|
25
78
|
minimumSignatures: number;
|
|
26
79
|
receiver: string;
|
|
27
80
|
requestedAmount: bigint;
|
|
@@ -29,41 +82,169 @@ export declare class OfflineTransactionManager {
|
|
|
29
82
|
originalInputCount?: number;
|
|
30
83
|
existingPsbtBase64?: string;
|
|
31
84
|
}, precomputed?: Partial<PrecomputedData>): string;
|
|
85
|
+
/**
|
|
86
|
+
* Export a CustomScriptTransaction for offline signing
|
|
87
|
+
* @param params - Custom script transaction parameters
|
|
88
|
+
* @param precomputed - Optional precomputed data
|
|
89
|
+
* @returns Base64-encoded serialized state
|
|
90
|
+
*/
|
|
32
91
|
static exportCustomScript(params: ITransactionParameters & {
|
|
33
|
-
scriptElements: (
|
|
34
|
-
witnesses:
|
|
35
|
-
annex?:
|
|
92
|
+
scriptElements: (Uint8Array | number)[];
|
|
93
|
+
witnesses: Uint8Array[];
|
|
94
|
+
annex?: Uint8Array;
|
|
36
95
|
}, precomputed?: Partial<PrecomputedData>): string;
|
|
96
|
+
/**
|
|
97
|
+
* Export a CancelTransaction for offline signing
|
|
98
|
+
* @param params - Cancel transaction parameters
|
|
99
|
+
* @param precomputed - Optional precomputed data
|
|
100
|
+
* @returns Base64-encoded serialized state
|
|
101
|
+
*/
|
|
37
102
|
static exportCancel(params: ITransactionParameters & {
|
|
38
|
-
compiledTargetScript:
|
|
103
|
+
compiledTargetScript: Uint8Array | string;
|
|
39
104
|
}, precomputed?: Partial<PrecomputedData>): string;
|
|
105
|
+
/**
|
|
106
|
+
* Export transaction state from a builder instance.
|
|
107
|
+
* The builder must have been built but not yet signed.
|
|
108
|
+
* @param builder - Transaction builder instance
|
|
109
|
+
* @param params - Original construction parameters
|
|
110
|
+
* @param precomputed - Precomputed data from the builder
|
|
111
|
+
* @returns Base64-encoded serialized state
|
|
112
|
+
*/
|
|
40
113
|
static exportFromBuilder<T extends TransactionType>(builder: TransactionBuilder<T>, params: ITransactionParameters, precomputed?: Partial<PrecomputedData>): string;
|
|
114
|
+
/**
|
|
115
|
+
* Import and reconstruct transaction for signing
|
|
116
|
+
* @param serializedState - Base64-encoded state from Phase 1
|
|
117
|
+
* @param options - Signer(s) and optional fee overrides
|
|
118
|
+
* @returns Reconstructed transaction builder ready for signing
|
|
119
|
+
*/
|
|
41
120
|
static importForSigning(serializedState: string, options: ReconstructionOptions): TransactionBuilder<TransactionType>;
|
|
121
|
+
/**
|
|
122
|
+
* Complete signing and export signed transaction
|
|
123
|
+
* @param builder - Reconstructed builder from importForSigning
|
|
124
|
+
* @returns Signed transaction hex ready for broadcast
|
|
125
|
+
*/
|
|
42
126
|
static signAndExport(builder: TransactionBuilder<TransactionType>): Promise<string>;
|
|
127
|
+
/**
|
|
128
|
+
* Convenience: Full Phase 2 in one call - import, sign, and export
|
|
129
|
+
* @param serializedState - Base64-encoded state
|
|
130
|
+
* @param options - Signer(s) and optional fee overrides
|
|
131
|
+
* @returns Signed transaction hex ready for broadcast
|
|
132
|
+
*/
|
|
43
133
|
static importSignAndExport(serializedState: string, options: ReconstructionOptions): Promise<string>;
|
|
134
|
+
/**
|
|
135
|
+
* Rebuild transaction with new fee rate (fee bumping)
|
|
136
|
+
* @param serializedState - Original state
|
|
137
|
+
* @param newFeeRate - New fee rate in sat/vB
|
|
138
|
+
* @returns New serialized state with updated fees (not signed yet)
|
|
139
|
+
*/
|
|
44
140
|
static rebuildWithNewFees(serializedState: string, newFeeRate: number): string;
|
|
141
|
+
/**
|
|
142
|
+
* Rebuild and immediately sign with new fee rate
|
|
143
|
+
* @param serializedState - Original state
|
|
144
|
+
* @param newFeeRate - New fee rate in sat/vB
|
|
145
|
+
* @param options - Signer options
|
|
146
|
+
* @returns Signed transaction hex with new fees
|
|
147
|
+
*/
|
|
45
148
|
static rebuildSignAndExport(serializedState: string, newFeeRate: number, options: ReconstructionOptions): Promise<string>;
|
|
149
|
+
/**
|
|
150
|
+
* Inspect serialized state without signing
|
|
151
|
+
* @param serializedState - Base64-encoded state
|
|
152
|
+
* @returns Parsed state object for inspection
|
|
153
|
+
*/
|
|
46
154
|
static inspect(serializedState: string): ISerializableTransactionState;
|
|
155
|
+
/**
|
|
156
|
+
* Validate serialized state integrity
|
|
157
|
+
* @param serializedState - Base64-encoded state
|
|
158
|
+
* @returns True if checksum and format are valid
|
|
159
|
+
*/
|
|
47
160
|
static validate(serializedState: string): boolean;
|
|
161
|
+
/**
|
|
162
|
+
* Get transaction type from serialized state
|
|
163
|
+
* @param serializedState - Base64-encoded state
|
|
164
|
+
* @returns Transaction type enum value
|
|
165
|
+
*/
|
|
48
166
|
static getType(serializedState: string): TransactionType;
|
|
167
|
+
/**
|
|
168
|
+
* Parse base64-encoded state into state object
|
|
169
|
+
* @param base64State - Base64-encoded state
|
|
170
|
+
* @returns Parsed state object
|
|
171
|
+
*/
|
|
49
172
|
static fromBase64(base64State: string): ISerializableTransactionState;
|
|
173
|
+
/**
|
|
174
|
+
* Serialize state object to base64
|
|
175
|
+
* @param state - State object to serialize
|
|
176
|
+
* @returns Base64-encoded state
|
|
177
|
+
*/
|
|
50
178
|
static toBase64(state: ISerializableTransactionState): string;
|
|
179
|
+
/**
|
|
180
|
+
* Convert serialized state to hex format
|
|
181
|
+
* @param serializedState - Base64-encoded state
|
|
182
|
+
* @returns Hex-encoded state
|
|
183
|
+
*/
|
|
51
184
|
static toHex(serializedState: string): string;
|
|
185
|
+
/**
|
|
186
|
+
* Convert hex format back to base64
|
|
187
|
+
* @param hexState - Hex-encoded state
|
|
188
|
+
* @returns Base64-encoded state
|
|
189
|
+
*/
|
|
52
190
|
static fromHex(hexState: string): string;
|
|
53
|
-
|
|
191
|
+
/**
|
|
192
|
+
* Add a partial signature to a multisig transaction state.
|
|
193
|
+
* This method signs the transaction with the provided signer and returns
|
|
194
|
+
* updated state with the new signature included.
|
|
195
|
+
*
|
|
196
|
+
* @param serializedState - Base64-encoded multisig state
|
|
197
|
+
* @param signer - The signer to add a signature with
|
|
198
|
+
* @returns Updated state with new signature, and signing result
|
|
199
|
+
*/
|
|
200
|
+
static multiSigAddSignature(serializedState: string, signer: Signer | UniversalSigner): Promise<{
|
|
54
201
|
state: string;
|
|
55
202
|
signed: boolean;
|
|
56
203
|
final: boolean;
|
|
57
204
|
psbtBase64: string;
|
|
58
205
|
}>;
|
|
59
|
-
|
|
206
|
+
/**
|
|
207
|
+
* Check if a public key has already signed a multisig transaction
|
|
208
|
+
*
|
|
209
|
+
* @param serializedState - Base64-encoded multisig state
|
|
210
|
+
* @param signerPubKey - Public key to check (Buffer or hex string)
|
|
211
|
+
* @returns True if the public key has already signed
|
|
212
|
+
*/
|
|
213
|
+
static multiSigHasSigned(serializedState: string, signerPubKey: Uint8Array | string): boolean;
|
|
214
|
+
/**
|
|
215
|
+
* Get the current signature count for a multisig transaction
|
|
216
|
+
*
|
|
217
|
+
* @param serializedState - Base64-encoded multisig state
|
|
218
|
+
* @returns Object with signature count info
|
|
219
|
+
*/
|
|
60
220
|
static multiSigGetSignatureStatus(serializedState: string): {
|
|
61
221
|
required: number;
|
|
62
222
|
collected: number;
|
|
63
223
|
isComplete: boolean;
|
|
64
224
|
signers: string[];
|
|
65
225
|
};
|
|
226
|
+
/**
|
|
227
|
+
* Finalize a multisig transaction and extract the signed transaction hex.
|
|
228
|
+
* Only call this when all required signatures have been collected.
|
|
229
|
+
*
|
|
230
|
+
* @param serializedState - Base64-encoded multisig state with all signatures
|
|
231
|
+
* @returns Signed transaction hex ready for broadcast
|
|
232
|
+
*/
|
|
66
233
|
static multiSigFinalize(serializedState: string): string;
|
|
234
|
+
/**
|
|
235
|
+
* Get the PSBT from a multisig state (for external signing tools)
|
|
236
|
+
*
|
|
237
|
+
* @param serializedState - Base64-encoded multisig state
|
|
238
|
+
* @returns PSBT in base64 format, or null if not yet built
|
|
239
|
+
*/
|
|
67
240
|
static multiSigGetPsbt(serializedState: string): string | null;
|
|
241
|
+
/**
|
|
242
|
+
* Update the PSBT in a multisig state (after external signing)
|
|
243
|
+
*
|
|
244
|
+
* @param serializedState - Base64-encoded multisig state
|
|
245
|
+
* @param psbtBase64 - New PSBT with additional signatures
|
|
246
|
+
* @returns Updated state
|
|
247
|
+
*/
|
|
68
248
|
static multiSigUpdatePsbt(serializedState: string, psbtBase64: string): string;
|
|
69
249
|
}
|
|
250
|
+
//# sourceMappingURL=OfflineTransactionManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OfflineTransactionManager.d.ts","sourceRoot":"","sources":["../../../src/transaction/offline/OfflineTransactionManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { Psbt } from '@btc-vision/bitcoin';
|
|
1
|
+
import { fromHex, Psbt, toHex } from '@btc-vision/bitcoin';
|
|
2
|
+
import {} from '@btc-vision/ecpair';
|
|
2
3
|
import { TransactionType } from '../enums/TransactionType.js';
|
|
3
4
|
import { TransactionBuilder } from '../builders/TransactionBuilder.js';
|
|
4
5
|
import { MultiSignTransaction } from '../builders/MultiSignTransaction.js';
|
|
@@ -6,31 +7,98 @@ import { TransactionSerializer } from './TransactionSerializer.js';
|
|
|
6
7
|
import { TransactionReconstructor } from './TransactionReconstructor.js';
|
|
7
8
|
import { TransactionStateCapture } from './TransactionStateCapture.js';
|
|
8
9
|
import { isMultiSigSpecificData } from './interfaces/ITypeSpecificData.js';
|
|
10
|
+
/**
|
|
11
|
+
* Main entry point for offline transaction signing workflow.
|
|
12
|
+
*
|
|
13
|
+
* This class provides a complete API for:
|
|
14
|
+
* 1. Phase 1 (Online): Building transactions and exporting state for offline signing
|
|
15
|
+
* 2. Phase 2 (Offline): Importing state, providing signers, and signing transactions
|
|
16
|
+
*
|
|
17
|
+
* Also supports fee bumping by allowing reconstruction with new fee parameters.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```typescript
|
|
21
|
+
* // Phase 1 (Online environment)
|
|
22
|
+
* const params: IFundingTransactionParameters = { ... };
|
|
23
|
+
* const state = OfflineTransactionManager.exportFunding(params);
|
|
24
|
+
* // Send state to offline environment
|
|
25
|
+
*
|
|
26
|
+
* // Phase 2 (Offline environment)
|
|
27
|
+
* const signedTxHex = await OfflineTransactionManager.importSignAndExport(state, {
|
|
28
|
+
* signer: offlineSigner,
|
|
29
|
+
* });
|
|
30
|
+
* // Send signedTxHex back to online environment for broadcast
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
9
33
|
export class OfflineTransactionManager {
|
|
34
|
+
/**
|
|
35
|
+
* Export a FundingTransaction for offline signing
|
|
36
|
+
* @param params - Funding transaction parameters
|
|
37
|
+
* @param precomputed - Optional precomputed data
|
|
38
|
+
* @returns Base64-encoded serialized state
|
|
39
|
+
*/
|
|
10
40
|
static exportFunding(params, precomputed) {
|
|
11
41
|
const state = TransactionStateCapture.fromFunding(params, precomputed);
|
|
12
42
|
return TransactionSerializer.toBase64(state);
|
|
13
43
|
}
|
|
44
|
+
/**
|
|
45
|
+
* Export a DeploymentTransaction for offline signing
|
|
46
|
+
* @param params - Deployment transaction parameters
|
|
47
|
+
* @param precomputed - Required precomputed data (randomBytes, compiledTargetScript)
|
|
48
|
+
* @returns Base64-encoded serialized state
|
|
49
|
+
*/
|
|
14
50
|
static exportDeployment(params, precomputed) {
|
|
15
51
|
const state = TransactionStateCapture.fromDeployment(params, precomputed);
|
|
16
52
|
return TransactionSerializer.toBase64(state);
|
|
17
53
|
}
|
|
54
|
+
/**
|
|
55
|
+
* Export an InteractionTransaction for offline signing
|
|
56
|
+
* @param params - Interaction transaction parameters
|
|
57
|
+
* @param precomputed - Required precomputed data (randomBytes, compiledTargetScript)
|
|
58
|
+
* @returns Base64-encoded serialized state
|
|
59
|
+
*/
|
|
18
60
|
static exportInteraction(params, precomputed) {
|
|
19
61
|
const state = TransactionStateCapture.fromInteraction(params, precomputed);
|
|
20
62
|
return TransactionSerializer.toBase64(state);
|
|
21
63
|
}
|
|
64
|
+
/**
|
|
65
|
+
* Export a MultiSignTransaction for offline signing
|
|
66
|
+
* @param params - MultiSig transaction parameters
|
|
67
|
+
* @param precomputed - Optional precomputed data
|
|
68
|
+
* @returns Base64-encoded serialized state
|
|
69
|
+
*/
|
|
22
70
|
static exportMultiSig(params, precomputed) {
|
|
23
71
|
const state = TransactionStateCapture.fromMultiSig(params, precomputed);
|
|
24
72
|
return TransactionSerializer.toBase64(state);
|
|
25
73
|
}
|
|
74
|
+
/**
|
|
75
|
+
* Export a CustomScriptTransaction for offline signing
|
|
76
|
+
* @param params - Custom script transaction parameters
|
|
77
|
+
* @param precomputed - Optional precomputed data
|
|
78
|
+
* @returns Base64-encoded serialized state
|
|
79
|
+
*/
|
|
26
80
|
static exportCustomScript(params, precomputed) {
|
|
27
81
|
const state = TransactionStateCapture.fromCustomScript(params, precomputed);
|
|
28
82
|
return TransactionSerializer.toBase64(state);
|
|
29
83
|
}
|
|
84
|
+
/**
|
|
85
|
+
* Export a CancelTransaction for offline signing
|
|
86
|
+
* @param params - Cancel transaction parameters
|
|
87
|
+
* @param precomputed - Optional precomputed data
|
|
88
|
+
* @returns Base64-encoded serialized state
|
|
89
|
+
*/
|
|
30
90
|
static exportCancel(params, precomputed) {
|
|
31
91
|
const state = TransactionStateCapture.fromCancel(params, precomputed);
|
|
32
92
|
return TransactionSerializer.toBase64(state);
|
|
33
93
|
}
|
|
94
|
+
/**
|
|
95
|
+
* Export transaction state from a builder instance.
|
|
96
|
+
* The builder must have been built but not yet signed.
|
|
97
|
+
* @param builder - Transaction builder instance
|
|
98
|
+
* @param params - Original construction parameters
|
|
99
|
+
* @param precomputed - Precomputed data from the builder
|
|
100
|
+
* @returns Base64-encoded serialized state
|
|
101
|
+
*/
|
|
34
102
|
static exportFromBuilder(builder, params, precomputed) {
|
|
35
103
|
const type = builder.type;
|
|
36
104
|
let state;
|
|
@@ -49,20 +117,45 @@ export class OfflineTransactionManager {
|
|
|
49
117
|
}
|
|
50
118
|
return TransactionSerializer.toBase64(state);
|
|
51
119
|
}
|
|
120
|
+
/**
|
|
121
|
+
* Import and reconstruct transaction for signing
|
|
122
|
+
* @param serializedState - Base64-encoded state from Phase 1
|
|
123
|
+
* @param options - Signer(s) and optional fee overrides
|
|
124
|
+
* @returns Reconstructed transaction builder ready for signing
|
|
125
|
+
*/
|
|
52
126
|
static importForSigning(serializedState, options) {
|
|
53
127
|
const state = TransactionSerializer.fromBase64(serializedState);
|
|
54
128
|
return TransactionReconstructor.reconstruct(state, options);
|
|
55
129
|
}
|
|
130
|
+
/**
|
|
131
|
+
* Complete signing and export signed transaction
|
|
132
|
+
* @param builder - Reconstructed builder from importForSigning
|
|
133
|
+
* @returns Signed transaction hex ready for broadcast
|
|
134
|
+
*/
|
|
56
135
|
static async signAndExport(builder) {
|
|
57
136
|
const tx = await builder.signTransaction();
|
|
58
137
|
return tx.toHex();
|
|
59
138
|
}
|
|
139
|
+
/**
|
|
140
|
+
* Convenience: Full Phase 2 in one call - import, sign, and export
|
|
141
|
+
* @param serializedState - Base64-encoded state
|
|
142
|
+
* @param options - Signer(s) and optional fee overrides
|
|
143
|
+
* @returns Signed transaction hex ready for broadcast
|
|
144
|
+
*/
|
|
60
145
|
static async importSignAndExport(serializedState, options) {
|
|
61
146
|
const builder = this.importForSigning(serializedState, options);
|
|
62
147
|
return this.signAndExport(builder);
|
|
63
148
|
}
|
|
149
|
+
/**
|
|
150
|
+
* Rebuild transaction with new fee rate (fee bumping)
|
|
151
|
+
* @param serializedState - Original state
|
|
152
|
+
* @param newFeeRate - New fee rate in sat/vB
|
|
153
|
+
* @returns New serialized state with updated fees (not signed yet)
|
|
154
|
+
*/
|
|
64
155
|
static rebuildWithNewFees(serializedState, newFeeRate) {
|
|
156
|
+
// Parse the existing state
|
|
65
157
|
const state = TransactionSerializer.fromBase64(serializedState);
|
|
158
|
+
// Create a new state with updated fee rate
|
|
66
159
|
const newState = {
|
|
67
160
|
...state,
|
|
68
161
|
baseParams: {
|
|
@@ -72,6 +165,13 @@ export class OfflineTransactionManager {
|
|
|
72
165
|
};
|
|
73
166
|
return TransactionSerializer.toBase64(newState);
|
|
74
167
|
}
|
|
168
|
+
/**
|
|
169
|
+
* Rebuild and immediately sign with new fee rate
|
|
170
|
+
* @param serializedState - Original state
|
|
171
|
+
* @param newFeeRate - New fee rate in sat/vB
|
|
172
|
+
* @param options - Signer options
|
|
173
|
+
* @returns Signed transaction hex with new fees
|
|
174
|
+
*/
|
|
75
175
|
static async rebuildSignAndExport(serializedState, newFeeRate, options) {
|
|
76
176
|
const builder = this.importForSigning(serializedState, {
|
|
77
177
|
...options,
|
|
@@ -79,9 +179,19 @@ export class OfflineTransactionManager {
|
|
|
79
179
|
});
|
|
80
180
|
return this.signAndExport(builder);
|
|
81
181
|
}
|
|
182
|
+
/**
|
|
183
|
+
* Inspect serialized state without signing
|
|
184
|
+
* @param serializedState - Base64-encoded state
|
|
185
|
+
* @returns Parsed state object for inspection
|
|
186
|
+
*/
|
|
82
187
|
static inspect(serializedState) {
|
|
83
188
|
return TransactionSerializer.fromBase64(serializedState);
|
|
84
189
|
}
|
|
190
|
+
/**
|
|
191
|
+
* Validate serialized state integrity
|
|
192
|
+
* @param serializedState - Base64-encoded state
|
|
193
|
+
* @returns True if checksum and format are valid
|
|
194
|
+
*/
|
|
85
195
|
static validate(serializedState) {
|
|
86
196
|
try {
|
|
87
197
|
TransactionSerializer.fromBase64(serializedState);
|
|
@@ -91,53 +201,93 @@ export class OfflineTransactionManager {
|
|
|
91
201
|
return false;
|
|
92
202
|
}
|
|
93
203
|
}
|
|
204
|
+
/**
|
|
205
|
+
* Get transaction type from serialized state
|
|
206
|
+
* @param serializedState - Base64-encoded state
|
|
207
|
+
* @returns Transaction type enum value
|
|
208
|
+
*/
|
|
94
209
|
static getType(serializedState) {
|
|
95
210
|
const state = TransactionSerializer.fromBase64(serializedState);
|
|
96
211
|
return state.header.transactionType;
|
|
97
212
|
}
|
|
213
|
+
/**
|
|
214
|
+
* Parse base64-encoded state into state object
|
|
215
|
+
* @param base64State - Base64-encoded state
|
|
216
|
+
* @returns Parsed state object
|
|
217
|
+
*/
|
|
98
218
|
static fromBase64(base64State) {
|
|
99
219
|
return TransactionSerializer.fromBase64(base64State);
|
|
100
220
|
}
|
|
221
|
+
/**
|
|
222
|
+
* Serialize state object to base64
|
|
223
|
+
* @param state - State object to serialize
|
|
224
|
+
* @returns Base64-encoded state
|
|
225
|
+
*/
|
|
101
226
|
static toBase64(state) {
|
|
102
227
|
return TransactionSerializer.toBase64(state);
|
|
103
228
|
}
|
|
229
|
+
/**
|
|
230
|
+
* Convert serialized state to hex format
|
|
231
|
+
* @param serializedState - Base64-encoded state
|
|
232
|
+
* @returns Hex-encoded state
|
|
233
|
+
*/
|
|
104
234
|
static toHex(serializedState) {
|
|
105
235
|
const state = TransactionSerializer.fromBase64(serializedState);
|
|
106
236
|
return TransactionSerializer.toHex(state);
|
|
107
237
|
}
|
|
238
|
+
/**
|
|
239
|
+
* Convert hex format back to base64
|
|
240
|
+
* @param hexState - Hex-encoded state
|
|
241
|
+
* @returns Base64-encoded state
|
|
242
|
+
*/
|
|
108
243
|
static fromHex(hexState) {
|
|
109
244
|
const state = TransactionSerializer.fromHex(hexState);
|
|
110
245
|
return TransactionSerializer.toBase64(state);
|
|
111
246
|
}
|
|
247
|
+
/**
|
|
248
|
+
* Add a partial signature to a multisig transaction state.
|
|
249
|
+
* This method signs the transaction with the provided signer and returns
|
|
250
|
+
* updated state with the new signature included.
|
|
251
|
+
*
|
|
252
|
+
* @param serializedState - Base64-encoded multisig state
|
|
253
|
+
* @param signer - The signer to add a signature with
|
|
254
|
+
* @returns Updated state with new signature, and signing result
|
|
255
|
+
*/
|
|
112
256
|
static async multiSigAddSignature(serializedState, signer) {
|
|
113
257
|
const state = TransactionSerializer.fromBase64(serializedState);
|
|
114
258
|
if (!isMultiSigSpecificData(state.typeSpecificData)) {
|
|
115
259
|
throw new Error('State is not a multisig transaction');
|
|
116
260
|
}
|
|
117
261
|
const typeData = state.typeSpecificData;
|
|
118
|
-
const pubkeys = typeData.pubkeys.map((pk) =>
|
|
262
|
+
const pubkeys = typeData.pubkeys.map((pk) => fromHex(pk));
|
|
263
|
+
// Parse existing PSBT or create new one
|
|
119
264
|
let psbt;
|
|
120
265
|
const network = TransactionReconstructor['nameToNetwork'](state.baseParams.networkName);
|
|
121
266
|
if (typeData.existingPsbtBase64) {
|
|
122
267
|
psbt = Psbt.fromBase64(typeData.existingPsbtBase64, { network });
|
|
123
268
|
}
|
|
124
269
|
else {
|
|
270
|
+
// Need to build the transaction first
|
|
125
271
|
const builder = this.importForSigning(serializedState, {
|
|
126
272
|
signer,
|
|
127
273
|
});
|
|
128
274
|
psbt = await builder.signPSBT();
|
|
129
275
|
}
|
|
276
|
+
// Calculate minimums array for each input
|
|
130
277
|
const minimums = [];
|
|
131
278
|
for (let i = typeData.originalInputCount; i < psbt.data.inputs.length; i++) {
|
|
132
279
|
minimums.push(typeData.minimumSignatures);
|
|
133
280
|
}
|
|
281
|
+
// Sign the PSBT
|
|
134
282
|
const result = MultiSignTransaction.signPartial(psbt, signer, typeData.originalInputCount, minimums);
|
|
283
|
+
// Finalize inputs (partial finalization to preserve signatures)
|
|
135
284
|
const orderedPubKeys = [];
|
|
136
285
|
for (let i = typeData.originalInputCount; i < psbt.data.inputs.length; i++) {
|
|
137
286
|
orderedPubKeys.push(pubkeys);
|
|
138
287
|
}
|
|
139
288
|
MultiSignTransaction.attemptFinalizeInputs(psbt, typeData.originalInputCount, orderedPubKeys, result.final);
|
|
140
289
|
const newPsbtBase64 = psbt.toBase64();
|
|
290
|
+
// Update the state with new PSBT
|
|
141
291
|
const newState = {
|
|
142
292
|
...state,
|
|
143
293
|
typeSpecificData: {
|
|
@@ -152,6 +302,13 @@ export class OfflineTransactionManager {
|
|
|
152
302
|
psbtBase64: newPsbtBase64,
|
|
153
303
|
};
|
|
154
304
|
}
|
|
305
|
+
/**
|
|
306
|
+
* Check if a public key has already signed a multisig transaction
|
|
307
|
+
*
|
|
308
|
+
* @param serializedState - Base64-encoded multisig state
|
|
309
|
+
* @param signerPubKey - Public key to check (Buffer or hex string)
|
|
310
|
+
* @returns True if the public key has already signed
|
|
311
|
+
*/
|
|
155
312
|
static multiSigHasSigned(serializedState, signerPubKey) {
|
|
156
313
|
const state = TransactionSerializer.fromBase64(serializedState);
|
|
157
314
|
if (!isMultiSigSpecificData(state.typeSpecificData)) {
|
|
@@ -163,11 +320,15 @@ export class OfflineTransactionManager {
|
|
|
163
320
|
}
|
|
164
321
|
const network = TransactionReconstructor['nameToNetwork'](state.baseParams.networkName);
|
|
165
322
|
const psbt = Psbt.fromBase64(typeData.existingPsbtBase64, { network });
|
|
166
|
-
const pubKeyBuffer =
|
|
167
|
-
? signerPubKey
|
|
168
|
-
: Buffer.from(signerPubKey, 'hex');
|
|
323
|
+
const pubKeyBuffer = signerPubKey instanceof Uint8Array ? signerPubKey : fromHex(signerPubKey);
|
|
169
324
|
return MultiSignTransaction.verifyIfSigned(psbt, pubKeyBuffer);
|
|
170
325
|
}
|
|
326
|
+
/**
|
|
327
|
+
* Get the current signature count for a multisig transaction
|
|
328
|
+
*
|
|
329
|
+
* @param serializedState - Base64-encoded multisig state
|
|
330
|
+
* @returns Object with signature count info
|
|
331
|
+
*/
|
|
171
332
|
static multiSigGetSignatureStatus(serializedState) {
|
|
172
333
|
const state = TransactionSerializer.fromBase64(serializedState);
|
|
173
334
|
if (!isMultiSigSpecificData(state.typeSpecificData)) {
|
|
@@ -185,19 +346,20 @@ export class OfflineTransactionManager {
|
|
|
185
346
|
}
|
|
186
347
|
const network = TransactionReconstructor['nameToNetwork'](state.baseParams.networkName);
|
|
187
348
|
const psbt = Psbt.fromBase64(typeData.existingPsbtBase64, { network });
|
|
349
|
+
// Collect signers from all inputs
|
|
188
350
|
const signerSet = new Set();
|
|
189
351
|
for (let i = typeData.originalInputCount; i < psbt.data.inputs.length; i++) {
|
|
190
352
|
const input = psbt.data.inputs[i];
|
|
191
353
|
if (input.tapScriptSig) {
|
|
192
354
|
for (const sig of input.tapScriptSig) {
|
|
193
|
-
signerSet.add(sig.pubkey
|
|
355
|
+
signerSet.add(toHex(sig.pubkey));
|
|
194
356
|
}
|
|
195
357
|
}
|
|
196
358
|
if (input.finalScriptWitness) {
|
|
197
359
|
const decoded = TransactionBuilder.readScriptWitnessToWitnessStack(input.finalScriptWitness);
|
|
198
360
|
for (let j = 0; j < decoded.length - 2; j += 3) {
|
|
199
361
|
const pubKey = decoded[j + 2];
|
|
200
|
-
signerSet.add(pubKey
|
|
362
|
+
signerSet.add(toHex(pubKey));
|
|
201
363
|
}
|
|
202
364
|
}
|
|
203
365
|
}
|
|
@@ -209,6 +371,13 @@ export class OfflineTransactionManager {
|
|
|
209
371
|
signers,
|
|
210
372
|
};
|
|
211
373
|
}
|
|
374
|
+
/**
|
|
375
|
+
* Finalize a multisig transaction and extract the signed transaction hex.
|
|
376
|
+
* Only call this when all required signatures have been collected.
|
|
377
|
+
*
|
|
378
|
+
* @param serializedState - Base64-encoded multisig state with all signatures
|
|
379
|
+
* @returns Signed transaction hex ready for broadcast
|
|
380
|
+
*/
|
|
212
381
|
static multiSigFinalize(serializedState) {
|
|
213
382
|
const state = TransactionSerializer.fromBase64(serializedState);
|
|
214
383
|
if (!isMultiSigSpecificData(state.typeSpecificData)) {
|
|
@@ -220,17 +389,24 @@ export class OfflineTransactionManager {
|
|
|
220
389
|
}
|
|
221
390
|
const network = TransactionReconstructor['nameToNetwork'](state.baseParams.networkName);
|
|
222
391
|
const psbt = Psbt.fromBase64(typeData.existingPsbtBase64, { network });
|
|
223
|
-
const pubkeys = typeData.pubkeys.map((pk) =>
|
|
392
|
+
const pubkeys = typeData.pubkeys.map((pk) => fromHex(pk));
|
|
224
393
|
const orderedPubKeys = [];
|
|
225
394
|
for (let i = typeData.originalInputCount; i < psbt.data.inputs.length; i++) {
|
|
226
395
|
orderedPubKeys.push(pubkeys);
|
|
227
396
|
}
|
|
397
|
+
// Final finalization
|
|
228
398
|
const success = MultiSignTransaction.attemptFinalizeInputs(psbt, typeData.originalInputCount, orderedPubKeys, true);
|
|
229
399
|
if (!success) {
|
|
230
400
|
throw new Error('Failed to finalize multisig transaction - not enough signatures');
|
|
231
401
|
}
|
|
232
402
|
return psbt.extractTransaction(true, true).toHex();
|
|
233
403
|
}
|
|
404
|
+
/**
|
|
405
|
+
* Get the PSBT from a multisig state (for external signing tools)
|
|
406
|
+
*
|
|
407
|
+
* @param serializedState - Base64-encoded multisig state
|
|
408
|
+
* @returns PSBT in base64 format, or null if not yet built
|
|
409
|
+
*/
|
|
234
410
|
static multiSigGetPsbt(serializedState) {
|
|
235
411
|
const state = TransactionSerializer.fromBase64(serializedState);
|
|
236
412
|
if (!isMultiSigSpecificData(state.typeSpecificData)) {
|
|
@@ -238,6 +414,13 @@ export class OfflineTransactionManager {
|
|
|
238
414
|
}
|
|
239
415
|
return state.typeSpecificData.existingPsbtBase64 || null;
|
|
240
416
|
}
|
|
417
|
+
/**
|
|
418
|
+
* Update the PSBT in a multisig state (after external signing)
|
|
419
|
+
*
|
|
420
|
+
* @param serializedState - Base64-encoded multisig state
|
|
421
|
+
* @param psbtBase64 - New PSBT with additional signatures
|
|
422
|
+
* @returns Updated state
|
|
423
|
+
*/
|
|
241
424
|
static multiSigUpdatePsbt(serializedState, psbtBase64) {
|
|
242
425
|
const state = TransactionSerializer.fromBase64(serializedState);
|
|
243
426
|
if (!isMultiSigSpecificData(state.typeSpecificData)) {
|
|
@@ -253,3 +436,4 @@ export class OfflineTransactionManager {
|
|
|
253
436
|
return TransactionSerializer.toBase64(newState);
|
|
254
437
|
}
|
|
255
438
|
}
|
|
439
|
+
//# sourceMappingURL=OfflineTransactionManager.js.map
|