@btc-vision/transaction 1.8.0-beta.0 → 1.8.0-beta.10
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 +2 -1
- package/browser/_version.d.ts.map +1 -0
- package/browser/abi/ABICoder.d.ts +15 -36
- package/browser/abi/ABICoder.d.ts.map +1 -0
- package/browser/abi/ABIDataTypes.d.ts +35 -0
- package/browser/abi/ABIDataTypes.d.ts.map +1 -0
- package/browser/abi/AbiTypes.d.ts +50 -0
- package/browser/abi/AbiTypes.d.ts.map +1 -0
- package/browser/abi/TupleUtils.d.ts +25 -0
- package/browser/abi/TupleUtils.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 +12388 -3684
- 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 +3921 -3450
- 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 -20
- 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 +920 -2966
- package/browser/noble-hashes.js +2067 -1038
- package/browser/opnet.d.ts +25 -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 +5 -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 +238 -15
- 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 +33 -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 +13940 -9389
- package/browser/verification/TapscriptVerificator.d.ts +10 -8
- package/browser/verification/TapscriptVerificator.d.ts.map +1 -0
- package/build/_version.d.ts +2 -1
- package/build/_version.d.ts.map +1 -0
- package/build/_version.js +2 -1
- package/build/_version.js.map +1 -0
- package/build/abi/ABICoder.d.ts +15 -36
- package/build/abi/ABICoder.d.ts.map +1 -0
- package/build/abi/ABICoder.js +120 -143
- package/build/abi/ABICoder.js.map +1 -0
- package/build/abi/ABIDataTypes.d.ts +35 -0
- package/build/abi/ABIDataTypes.d.ts.map +1 -0
- package/build/abi/ABIDataTypes.js +42 -0
- package/build/abi/ABIDataTypes.js.map +1 -0
- package/build/abi/AbiTypes.d.ts +50 -0
- package/build/abi/AbiTypes.d.ts.map +1 -0
- package/build/abi/AbiTypes.js +78 -0
- package/build/abi/AbiTypes.js.map +1 -0
- package/build/abi/TupleUtils.d.ts +25 -0
- package/build/abi/TupleUtils.d.ts.map +1 -0
- package/build/abi/TupleUtils.js +50 -0
- package/build/abi/TupleUtils.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 +37 -16
- 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 +447 -129
- 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 -22
- package/build/keypair/EcKeyPair.d.ts.map +1 -0
- package/build/keypair/EcKeyPair.js +226 -49
- 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 +29 -3
- package/build/opnet.d.ts.map +1 -0
- package/build/opnet.js +26 -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 +6 -4
- package/build/transaction/builders/FundingTransaction.d.ts.map +1 -0
- package/build/transaction/builders/FundingTransaction.js +50 -9
- 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 +244 -20
- package/build/transaction/builders/TransactionBuilder.d.ts.map +1 -0
- package/build/transaction/builders/TransactionBuilder.js +371 -152
- 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 +38 -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 +280 -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/documentation/offline-transaction-signing.md +10 -8
- package/documentation/quantum-support/01-introduction.md +2 -2
- package/documentation/quantum-support/02-mnemonic-and-wallet.md +5 -3
- package/documentation/quantum-support/03-address-generation.md +6 -4
- package/documentation/quantum-support/04-message-signing.md +36 -43
- package/documentation/quantum-support/05-address-verification.md +13 -18
- package/documentation/quantum-support/README.md +1 -1
- package/documentation/transaction-building.md +9 -9
- package/eslint.config.js +0 -1
- package/package.json +16 -39
- package/src/_version.ts +1 -1
- package/src/abi/ABICoder.ts +131 -154
- package/src/abi/ABIDataTypes.ts +45 -0
- package/src/abi/AbiTypes.ts +183 -0
- package/src/abi/TupleUtils.ts +57 -0
- 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 +36 -25
- package/src/consensus/ConsensusConfig.ts +1 -1
- package/src/consensus/IConsensusConfig.ts +0 -17
- package/src/consensus/metadata/RoswellConsensus.ts +1 -17
- package/src/crypto/crypto-browser.js +3 -4
- 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 +115 -72
- package/src/keypair/AddressVerificator.ts +14 -148
- package/src/keypair/EcKeyPair.ts +110 -111
- 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 +15 -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 +38 -53
- 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 +53 -12
- 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 +159 -255
- 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 +28 -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 +318 -125
- 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/add-refund-output.test.ts +535 -0
- 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 +482 -0
- package/tsconfig.base.json +34 -18
- package/tsconfig.browser.json +15 -0
- package/tsconfig.json +3 -8
- package/vite.config.browser.ts +4 -5
- package/vitest.config.browser.ts +68 -0
- package/vitest.config.ts +1 -1
- package/browser/valibot.js +0 -4948
- package/tsconfig.webpack.json +0 -18
|
@@ -1,17 +1,23 @@
|
|
|
1
1
|
import { TransactionType } from '../enums/TransactionType.js';
|
|
2
|
-
import { IDeploymentParameters } from '../interfaces/ITransactionParameters.js';
|
|
2
|
+
import type { IDeploymentParameters } from '../interfaces/ITransactionParameters.js';
|
|
3
3
|
import {
|
|
4
|
+
concat,
|
|
4
5
|
crypto as bitCrypto,
|
|
5
|
-
|
|
6
|
+
type FinalScriptsFunc,
|
|
7
|
+
fromHex,
|
|
8
|
+
type P2TRPayment,
|
|
6
9
|
PaymentType,
|
|
7
10
|
Psbt,
|
|
8
|
-
PsbtInput,
|
|
9
|
-
|
|
10
|
-
|
|
11
|
+
type PsbtInput,
|
|
12
|
+
type Script,
|
|
13
|
+
type Signer,
|
|
14
|
+
type TapScriptSig,
|
|
15
|
+
type Taptree,
|
|
16
|
+
toHex,
|
|
11
17
|
toXOnly,
|
|
12
18
|
} from '@btc-vision/bitcoin';
|
|
13
19
|
import { TransactionBuilder } from './TransactionBuilder.js';
|
|
14
|
-
import { TapLeafScript } from '../interfaces/Tap.js';
|
|
20
|
+
import type { TapLeafScript } from '../interfaces/Tap.js';
|
|
15
21
|
import {
|
|
16
22
|
DeploymentGenerator,
|
|
17
23
|
versionBuffer,
|
|
@@ -20,13 +26,14 @@ import { EcKeyPair } from '../../keypair/EcKeyPair.js';
|
|
|
20
26
|
import { BitcoinUtils } from '../../utils/BitcoinUtils.js';
|
|
21
27
|
import { Compressor } from '../../bytecode/Compressor.js';
|
|
22
28
|
import { SharedInteractionTransaction } from './SharedInteractionTransaction.js';
|
|
23
|
-
import {
|
|
29
|
+
import { type UniversalSigner } from '@btc-vision/ecpair';
|
|
30
|
+
import { isUniversalSigner } from '../../signer/TweakedSigner.js';
|
|
24
31
|
import { Address } from '../../keypair/Address.js';
|
|
25
32
|
import { UnisatSigner } from '../browser/extensions/UnisatSigner.js';
|
|
26
33
|
import { TimeLockGenerator } from '../mineable/TimelockGenerator.js';
|
|
27
|
-
import { IChallengeSolution } from '../../epoch/interfaces/IChallengeSolution.js';
|
|
28
|
-
import { Feature, FeaturePriority, Features } from '../../generators/Features.js';
|
|
29
|
-
import { IP2WSHAddress } from '../mineable/IP2WSHAddress.js';
|
|
34
|
+
import type { IChallengeSolution } from '../../epoch/interfaces/IChallengeSolution.js';
|
|
35
|
+
import { type Feature, FeaturePriority, Features } from '../../generators/Features.js';
|
|
36
|
+
import type { IP2WSHAddress } from '../mineable/IP2WSHAddress.js';
|
|
30
37
|
|
|
31
38
|
export class DeploymentTransaction extends TransactionBuilder<TransactionType.DEPLOYMENT> {
|
|
32
39
|
public static readonly MAXIMUM_CONTRACT_SIZE = 128 * 1024;
|
|
@@ -45,7 +52,7 @@ export class DeploymentTransaction extends TransactionBuilder<TransactionType.DE
|
|
|
45
52
|
* The tap leaf script
|
|
46
53
|
* @private
|
|
47
54
|
*/
|
|
48
|
-
protected tapLeafScript: TapLeafScript | null = null;
|
|
55
|
+
protected override tapLeafScript: TapLeafScript | null = null;
|
|
49
56
|
private readonly deploymentVersion: number = 0x00;
|
|
50
57
|
/**
|
|
51
58
|
* The target script redeem
|
|
@@ -61,7 +68,7 @@ export class DeploymentTransaction extends TransactionBuilder<TransactionType.DE
|
|
|
61
68
|
* The compiled target script
|
|
62
69
|
* @private
|
|
63
70
|
*/
|
|
64
|
-
private readonly compiledTargetScript:
|
|
71
|
+
private readonly compiledTargetScript: Uint8Array;
|
|
65
72
|
/**
|
|
66
73
|
* The script tree
|
|
67
74
|
* @private
|
|
@@ -77,25 +84,25 @@ export class DeploymentTransaction extends TransactionBuilder<TransactionType.DE
|
|
|
77
84
|
* The contract seed
|
|
78
85
|
* @private
|
|
79
86
|
*/
|
|
80
|
-
private readonly contractSeed:
|
|
87
|
+
private readonly contractSeed: Uint8Array;
|
|
81
88
|
|
|
82
89
|
/**
|
|
83
90
|
* The contract bytecode
|
|
84
91
|
* @private
|
|
85
92
|
*/
|
|
86
|
-
private readonly bytecode:
|
|
93
|
+
private readonly bytecode: Uint8Array;
|
|
87
94
|
|
|
88
95
|
/**
|
|
89
96
|
* Constructor calldata
|
|
90
97
|
* @private
|
|
91
98
|
*/
|
|
92
|
-
private readonly calldata?:
|
|
99
|
+
private readonly calldata?: Uint8Array;
|
|
93
100
|
|
|
94
101
|
/**
|
|
95
102
|
* The contract signer
|
|
96
103
|
* @private
|
|
97
104
|
*/
|
|
98
|
-
private readonly contractSigner: Signer |
|
|
105
|
+
private readonly contractSigner: Signer | UniversalSigner;
|
|
99
106
|
|
|
100
107
|
/**
|
|
101
108
|
* The contract public key
|
|
@@ -107,7 +114,7 @@ export class DeploymentTransaction extends TransactionBuilder<TransactionType.DE
|
|
|
107
114
|
* The contract salt random bytes
|
|
108
115
|
* @private
|
|
109
116
|
*/
|
|
110
|
-
private readonly randomBytes:
|
|
117
|
+
private readonly randomBytes: Uint8Array;
|
|
111
118
|
private _computedAddress: string | undefined;
|
|
112
119
|
|
|
113
120
|
public constructor(parameters: IDeploymentParameters) {
|
|
@@ -117,7 +124,9 @@ export class DeploymentTransaction extends TransactionBuilder<TransactionType.DE
|
|
|
117
124
|
throw new Error('MLDSA signer must be defined to deploy a contract.');
|
|
118
125
|
}
|
|
119
126
|
|
|
120
|
-
this.bytecode = Compressor.compress(
|
|
127
|
+
this.bytecode = Compressor.compress(
|
|
128
|
+
new Uint8Array([...versionBuffer, ...parameters.bytecode]),
|
|
129
|
+
);
|
|
121
130
|
|
|
122
131
|
this.verifyBytecode();
|
|
123
132
|
|
|
@@ -141,16 +150,16 @@ export class DeploymentTransaction extends TransactionBuilder<TransactionType.DE
|
|
|
141
150
|
this.contractSigner = EcKeyPair.fromSeedKeyPair(this.contractSeed, this.network);
|
|
142
151
|
|
|
143
152
|
this.deploymentGenerator = new DeploymentGenerator(
|
|
144
|
-
|
|
153
|
+
this.signer.publicKey,
|
|
145
154
|
this.contractSignerXOnlyPubKey(),
|
|
146
155
|
this.network,
|
|
147
156
|
);
|
|
148
157
|
|
|
149
158
|
if (parameters.compiledTargetScript) {
|
|
150
|
-
if (
|
|
159
|
+
if (parameters.compiledTargetScript instanceof Uint8Array) {
|
|
151
160
|
this.compiledTargetScript = parameters.compiledTargetScript;
|
|
152
161
|
} else if (typeof parameters.compiledTargetScript === 'string') {
|
|
153
|
-
this.compiledTargetScript =
|
|
162
|
+
this.compiledTargetScript = fromHex(parameters.compiledTargetScript);
|
|
154
163
|
} else {
|
|
155
164
|
throw new Error('Invalid compiled target script format.');
|
|
156
165
|
}
|
|
@@ -169,7 +178,7 @@ export class DeploymentTransaction extends TransactionBuilder<TransactionType.DE
|
|
|
169
178
|
|
|
170
179
|
this.internalInit();
|
|
171
180
|
|
|
172
|
-
this._contractPubKey = '0x' + this.contractSeed
|
|
181
|
+
this._contractPubKey = '0x' + toHex(this.contractSeed);
|
|
173
182
|
this._contractAddress = new Address(this.contractSeed);
|
|
174
183
|
}
|
|
175
184
|
|
|
@@ -194,7 +203,7 @@ export class DeploymentTransaction extends TransactionBuilder<TransactionType.DE
|
|
|
194
203
|
return this.to || this.getScriptAddress();
|
|
195
204
|
}
|
|
196
205
|
|
|
197
|
-
public exportCompiledTargetScript():
|
|
206
|
+
public exportCompiledTargetScript(): Uint8Array {
|
|
198
207
|
return this.compiledTargetScript;
|
|
199
208
|
}
|
|
200
209
|
|
|
@@ -202,7 +211,7 @@ export class DeploymentTransaction extends TransactionBuilder<TransactionType.DE
|
|
|
202
211
|
* Get the random bytes used for the interaction
|
|
203
212
|
* @returns {Buffer} The random bytes
|
|
204
213
|
*/
|
|
205
|
-
public getRndBytes():
|
|
214
|
+
public getRndBytes(): Uint8Array {
|
|
206
215
|
return this.randomBytes;
|
|
207
216
|
}
|
|
208
217
|
|
|
@@ -232,8 +241,8 @@ export class DeploymentTransaction extends TransactionBuilder<TransactionType.DE
|
|
|
232
241
|
* Get the contract signer public key
|
|
233
242
|
* @protected
|
|
234
243
|
*/
|
|
235
|
-
protected contractSignerXOnlyPubKey():
|
|
236
|
-
return toXOnly(
|
|
244
|
+
protected contractSignerXOnlyPubKey(): Uint8Array {
|
|
245
|
+
return toXOnly(this.contractSigner.publicKey);
|
|
237
246
|
}
|
|
238
247
|
|
|
239
248
|
/**
|
|
@@ -279,7 +288,7 @@ export class DeploymentTransaction extends TransactionBuilder<TransactionType.DE
|
|
|
279
288
|
const signer: UnisatSigner = this.signer as UnisatSigner;
|
|
280
289
|
|
|
281
290
|
// first, we sign the first input with the script signer.
|
|
282
|
-
await this.signInput(transaction, transaction.data.inputs[0], 0, this.contractSigner);
|
|
291
|
+
await this.signInput(transaction, transaction.data.inputs[0] as PsbtInput, 0, this.contractSigner);
|
|
283
292
|
|
|
284
293
|
// then, we sign all the remaining inputs with the wallet signer.
|
|
285
294
|
await signer.multiSignPsbt([transaction]);
|
|
@@ -303,7 +312,7 @@ export class DeploymentTransaction extends TransactionBuilder<TransactionType.DE
|
|
|
303
312
|
* @param {Psbt} transaction The transaction to sign
|
|
304
313
|
* @protected
|
|
305
314
|
*/
|
|
306
|
-
protected async signInputs(transaction: Psbt): Promise<void> {
|
|
315
|
+
protected override async signInputs(transaction: Psbt): Promise<void> {
|
|
307
316
|
if (!this.contractSigner) {
|
|
308
317
|
await super.signInputs(transaction);
|
|
309
318
|
|
|
@@ -315,21 +324,45 @@ export class DeploymentTransaction extends TransactionBuilder<TransactionType.DE
|
|
|
315
324
|
return;
|
|
316
325
|
}
|
|
317
326
|
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
327
|
+
// Input 0: sequential (contractSigner + main signer, custom finalizer)
|
|
328
|
+
transaction.signInput(0, this.contractSigner);
|
|
329
|
+
transaction.signInput(0, this.getSignerKey());
|
|
330
|
+
transaction.finalizeInput(0, this.customFinalizer.bind(this));
|
|
331
|
+
|
|
332
|
+
// Inputs 1+: parallel key-path if available, then sequential for remaining
|
|
333
|
+
const signedIndices = new Set<number>([0]);
|
|
334
|
+
|
|
335
|
+
if (this.canUseParallelSigning && isUniversalSigner(this.signer)) {
|
|
336
|
+
try {
|
|
337
|
+
const result = await this.signKeyPathInputsParallel(
|
|
338
|
+
transaction,
|
|
339
|
+
new Set([0]),
|
|
340
|
+
);
|
|
341
|
+
if (result.success) {
|
|
342
|
+
for (const idx of result.signatures.keys()) signedIndices.add(idx);
|
|
343
|
+
}
|
|
344
|
+
} catch (e) {
|
|
345
|
+
this.error(
|
|
346
|
+
`Parallel signing failed: ${(e as Error).message}`,
|
|
347
|
+
);
|
|
348
|
+
}
|
|
349
|
+
}
|
|
323
350
|
|
|
324
|
-
|
|
325
|
-
|
|
351
|
+
for (let i = 1; i < transaction.data.inputs.length; i++) {
|
|
352
|
+
if (!signedIndices.has(i)) {
|
|
326
353
|
transaction.signInput(i, this.getSignerKey());
|
|
354
|
+
}
|
|
355
|
+
}
|
|
327
356
|
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
357
|
+
// Finalize inputs 1+
|
|
358
|
+
for (let i = 1; i < transaction.data.inputs.length; i++) {
|
|
359
|
+
try {
|
|
360
|
+
transaction.finalizeInput(
|
|
361
|
+
i,
|
|
362
|
+
this.customFinalizerP2SH.bind(this) as FinalScriptsFunc,
|
|
363
|
+
);
|
|
364
|
+
} catch {
|
|
365
|
+
transaction.finalizeInput(i);
|
|
333
366
|
}
|
|
334
367
|
}
|
|
335
368
|
}
|
|
@@ -419,16 +452,16 @@ export class DeploymentTransaction extends TransactionBuilder<TransactionType.DE
|
|
|
419
452
|
* Generate the contract seed for the deployment
|
|
420
453
|
* @private
|
|
421
454
|
*/
|
|
422
|
-
private getContractSeed():
|
|
455
|
+
private getContractSeed(): Uint8Array {
|
|
423
456
|
if (!this.bytecode) {
|
|
424
457
|
throw new Error('Bytecode is required');
|
|
425
458
|
}
|
|
426
459
|
|
|
427
460
|
// Concatenate deployer pubkey, salt, and sha256(bytecode)
|
|
428
|
-
const deployerPubKey
|
|
429
|
-
const salt
|
|
430
|
-
const sha256OfBytecode
|
|
431
|
-
const buf
|
|
461
|
+
const deployerPubKey = this.internalPubKeyToXOnly();
|
|
462
|
+
const salt = bitCrypto.hash256(this.randomBytes);
|
|
463
|
+
const sha256OfBytecode = bitCrypto.hash256(this.bytecode);
|
|
464
|
+
const buf = concat([deployerPubKey, salt, sha256OfBytecode]);
|
|
432
465
|
|
|
433
466
|
return bitCrypto.hash256(buf);
|
|
434
467
|
}
|
|
@@ -449,8 +482,8 @@ export class DeploymentTransaction extends TransactionBuilder<TransactionType.DE
|
|
|
449
482
|
|
|
450
483
|
const scriptSolution = [
|
|
451
484
|
this.randomBytes,
|
|
452
|
-
input.tapScriptSig[0].signature,
|
|
453
|
-
input.tapScriptSig[1].signature,
|
|
485
|
+
(input.tapScriptSig[0] as TapScriptSig).signature,
|
|
486
|
+
(input.tapScriptSig[1] as TapScriptSig).signature,
|
|
454
487
|
];
|
|
455
488
|
|
|
456
489
|
const witness = scriptSolution
|
|
@@ -462,20 +495,6 @@ export class DeploymentTransaction extends TransactionBuilder<TransactionType.DE
|
|
|
462
495
|
};
|
|
463
496
|
};
|
|
464
497
|
|
|
465
|
-
/**
|
|
466
|
-
* Get the public keys for the redeem scripts
|
|
467
|
-
* @private
|
|
468
|
-
*/
|
|
469
|
-
private getPubKeys(): Buffer[] {
|
|
470
|
-
const pubkeys = [Buffer.from(this.signer.publicKey)];
|
|
471
|
-
|
|
472
|
-
if (this.contractSigner) {
|
|
473
|
-
pubkeys.push(Buffer.from(this.contractSigner.publicKey));
|
|
474
|
-
}
|
|
475
|
-
|
|
476
|
-
return pubkeys;
|
|
477
|
-
}
|
|
478
|
-
|
|
479
498
|
/**
|
|
480
499
|
* Generate the redeem scripts
|
|
481
500
|
* @private
|
|
@@ -484,7 +503,7 @@ export class DeploymentTransaction extends TransactionBuilder<TransactionType.DE
|
|
|
484
503
|
this.targetScriptRedeem = {
|
|
485
504
|
name: PaymentType.P2TR,
|
|
486
505
|
//pubkeys: this.getPubKeys(),
|
|
487
|
-
output: this.compiledTargetScript,
|
|
506
|
+
output: this.compiledTargetScript as Script,
|
|
488
507
|
redeemVersion: 192,
|
|
489
508
|
};
|
|
490
509
|
|
|
@@ -500,7 +519,7 @@ export class DeploymentTransaction extends TransactionBuilder<TransactionType.DE
|
|
|
500
519
|
* Get the second leaf script
|
|
501
520
|
* @private
|
|
502
521
|
*/
|
|
503
|
-
private getLeafScript():
|
|
522
|
+
private getLeafScript(): Script {
|
|
504
523
|
return this.LOCK_LEAF_SCRIPT;
|
|
505
524
|
}
|
|
506
525
|
|
|
@@ -1,20 +1,25 @@
|
|
|
1
1
|
import { TransactionType } from '../enums/TransactionType.js';
|
|
2
|
-
import { IFundingTransactionParameters } from '../interfaces/ITransactionParameters.js';
|
|
3
|
-
import { opcodes, script, Signer } from '@btc-vision/bitcoin';
|
|
2
|
+
import type { IFundingTransactionParameters } from '../interfaces/ITransactionParameters.js';
|
|
3
|
+
import { fromHex, opcodes, type Script, script, type Signer, toSatoshi } from '@btc-vision/bitcoin';
|
|
4
4
|
import { TransactionBuilder } from './TransactionBuilder.js';
|
|
5
|
-
import {
|
|
5
|
+
import { type UniversalSigner } from '@btc-vision/ecpair';
|
|
6
6
|
|
|
7
7
|
export class FundingTransaction extends TransactionBuilder<TransactionType.FUNDING> {
|
|
8
8
|
public readonly type: TransactionType.FUNDING = TransactionType.FUNDING;
|
|
9
9
|
|
|
10
10
|
protected amount: bigint;
|
|
11
11
|
protected splitInputsInto: number;
|
|
12
|
+
protected autoAdjustAmount: boolean;
|
|
12
13
|
|
|
13
14
|
constructor(parameters: IFundingTransactionParameters) {
|
|
14
|
-
|
|
15
|
+
const mergedParams = parameters.feeUtxos?.length
|
|
16
|
+
? { ...parameters, utxos: [...parameters.utxos, ...parameters.feeUtxos] }
|
|
17
|
+
: parameters;
|
|
18
|
+
super(mergedParams);
|
|
15
19
|
|
|
16
20
|
this.amount = parameters.amount;
|
|
17
21
|
this.splitInputsInto = parameters.splitInputsInto ?? 1;
|
|
22
|
+
this.autoAdjustAmount = parameters.autoAdjustAmount ?? false;
|
|
18
23
|
|
|
19
24
|
this.internalInit();
|
|
20
25
|
}
|
|
@@ -26,22 +31,58 @@ export class FundingTransaction extends TransactionBuilder<TransactionType.FUNDI
|
|
|
26
31
|
|
|
27
32
|
this.addInputsFromUTXO();
|
|
28
33
|
|
|
34
|
+
// When autoAdjustAmount is enabled and the amount would leave no room for fees,
|
|
35
|
+
// estimate the fee first and reduce the output amount accordingly.
|
|
36
|
+
if (this.autoAdjustAmount && this.amount >= this.totalInputAmount) {
|
|
37
|
+
// Add a temporary output at full amount to get an accurate fee estimate
|
|
38
|
+
if (this.isPubKeyDestination) {
|
|
39
|
+
const pubKeyScript: Script = script.compile([
|
|
40
|
+
fromHex(this.to.replace('0x', '')),
|
|
41
|
+
opcodes.OP_CHECKSIG,
|
|
42
|
+
]);
|
|
43
|
+
|
|
44
|
+
this.addOutput({
|
|
45
|
+
value: toSatoshi(this.amount),
|
|
46
|
+
script: pubKeyScript,
|
|
47
|
+
});
|
|
48
|
+
} else {
|
|
49
|
+
this.addOutput({
|
|
50
|
+
value: toSatoshi(this.amount),
|
|
51
|
+
address: this.to,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
const estimatedFee = await this.estimateTransactionFees();
|
|
56
|
+
|
|
57
|
+
// Remove the temporary output
|
|
58
|
+
this.outputs.pop();
|
|
59
|
+
|
|
60
|
+
const adjustedAmount = this.totalInputAmount - estimatedFee;
|
|
61
|
+
if (adjustedAmount < TransactionBuilder.MINIMUM_DUST) {
|
|
62
|
+
throw new Error(
|
|
63
|
+
`Insufficient funds: after deducting fee of ${estimatedFee} sats, remaining amount ${adjustedAmount} sats is below minimum dust`,
|
|
64
|
+
);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
this.amount = adjustedAmount;
|
|
68
|
+
}
|
|
69
|
+
|
|
29
70
|
// Add the primary output(s) first
|
|
30
71
|
if (this.splitInputsInto > 1) {
|
|
31
72
|
this.splitInputs(this.amount);
|
|
32
73
|
} else if (this.isPubKeyDestination) {
|
|
33
|
-
const pubKeyScript = script.compile([
|
|
34
|
-
|
|
74
|
+
const pubKeyScript: Script = script.compile([
|
|
75
|
+
fromHex(this.to.replace('0x', '')),
|
|
35
76
|
opcodes.OP_CHECKSIG,
|
|
36
77
|
]);
|
|
37
78
|
|
|
38
79
|
this.addOutput({
|
|
39
|
-
value:
|
|
80
|
+
value: toSatoshi(this.amount),
|
|
40
81
|
script: pubKeyScript,
|
|
41
82
|
});
|
|
42
83
|
} else {
|
|
43
84
|
this.addOutput({
|
|
44
|
-
value:
|
|
85
|
+
value: toSatoshi(this.amount),
|
|
45
86
|
address: this.to,
|
|
46
87
|
});
|
|
47
88
|
}
|
|
@@ -63,19 +104,19 @@ export class FundingTransaction extends TransactionBuilder<TransactionType.FUNDI
|
|
|
63
104
|
for (let i = 0; i < this.splitInputsInto; i++) {
|
|
64
105
|
if (this.isPubKeyDestination) {
|
|
65
106
|
this.addOutput({
|
|
66
|
-
value:
|
|
67
|
-
script:
|
|
107
|
+
value: toSatoshi(splitAmount),
|
|
108
|
+
script: fromHex(this.to.slice(2)) as Script,
|
|
68
109
|
});
|
|
69
110
|
} else {
|
|
70
111
|
this.addOutput({
|
|
71
|
-
value:
|
|
112
|
+
value: toSatoshi(splitAmount),
|
|
72
113
|
address: this.to,
|
|
73
114
|
});
|
|
74
115
|
}
|
|
75
116
|
}
|
|
76
117
|
}
|
|
77
118
|
|
|
78
|
-
protected override getSignerKey(): Signer |
|
|
119
|
+
protected override getSignerKey(): Signer | UniversalSigner {
|
|
79
120
|
return this.signer;
|
|
80
121
|
}
|
|
81
122
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { Taptree } from '@btc-vision/bitcoin';
|
|
1
|
+
import { fromHex, type Taptree } from '@btc-vision/bitcoin';
|
|
2
2
|
import { TransactionType } from '../enums/TransactionType.js';
|
|
3
|
-
import { TapLeafScript } from '../interfaces/Tap.js';
|
|
4
|
-
import { IInteractionParameters } from '../interfaces/ITransactionParameters.js';
|
|
3
|
+
import type { TapLeafScript } from '../interfaces/Tap.js';
|
|
4
|
+
import type { IInteractionParameters } from '../interfaces/ITransactionParameters.js';
|
|
5
5
|
import { SharedInteractionTransaction } from './SharedInteractionTransaction.js';
|
|
6
|
-
import { Feature, FeaturePriority, Features } from '../../generators/Features.js';
|
|
6
|
+
import { type Feature, FeaturePriority, Features } from '../../generators/Features.js';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* Class for interaction transactions
|
|
@@ -12,16 +12,16 @@ import { Feature, FeaturePriority, Features } from '../../generators/Features.js
|
|
|
12
12
|
export class InteractionTransaction extends SharedInteractionTransaction<TransactionType.INTERACTION> {
|
|
13
13
|
public type: TransactionType.INTERACTION = TransactionType.INTERACTION;
|
|
14
14
|
|
|
15
|
-
protected readonly compiledTargetScript:
|
|
15
|
+
protected readonly compiledTargetScript: Uint8Array;
|
|
16
16
|
protected readonly scriptTree: Taptree;
|
|
17
17
|
|
|
18
|
-
protected tapLeafScript: TapLeafScript | null = null;
|
|
18
|
+
protected override tapLeafScript: TapLeafScript | null = null;
|
|
19
19
|
|
|
20
20
|
/**
|
|
21
21
|
* Contract secret for the interaction
|
|
22
22
|
* @protected
|
|
23
23
|
*/
|
|
24
|
-
protected readonly contractSecret:
|
|
24
|
+
protected readonly contractSecret: Uint8Array;
|
|
25
25
|
|
|
26
26
|
public constructor(parameters: IInteractionParameters) {
|
|
27
27
|
super(parameters);
|
|
@@ -30,17 +30,17 @@ export class InteractionTransaction extends SharedInteractionTransaction<Transac
|
|
|
30
30
|
throw new Error('parameters.contract is required for interaction transaction.');
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
this.contractSecret =
|
|
33
|
+
this.contractSecret = fromHex(parameters.contract.replace('0x', ''));
|
|
34
34
|
|
|
35
35
|
if (this.contractSecret.length !== 32) {
|
|
36
36
|
throw new Error('Invalid contract secret length. Expected 32 bytes.');
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
if (parameters.compiledTargetScript) {
|
|
40
|
-
if (
|
|
40
|
+
if (parameters.compiledTargetScript instanceof Uint8Array) {
|
|
41
41
|
this.compiledTargetScript = parameters.compiledTargetScript;
|
|
42
42
|
} else if (typeof parameters.compiledTargetScript === 'string') {
|
|
43
|
-
this.compiledTargetScript =
|
|
43
|
+
this.compiledTargetScript = fromHex(parameters.compiledTargetScript);
|
|
44
44
|
} else {
|
|
45
45
|
throw new Error('Invalid compiled target script format.');
|
|
46
46
|
}
|