@btc-vision/transaction 1.8.0-beta.1 → 1.8.0-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/browser/_version.d.ts +1 -0
- package/browser/_version.d.ts.map +1 -0
- package/browser/abi/ABICoder.d.ts +1 -1
- package/browser/abi/ABICoder.d.ts.map +1 -0
- package/browser/branded/Branded.d.ts +4 -0
- package/browser/branded/Branded.d.ts.map +1 -0
- package/browser/btc-vision-bitcoin.js +12420 -3637
- 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 +3602 -3203
- 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 +920 -2966
- package/browser/noble-hashes.js +2067 -1038
- package/browser/opnet.d.ts +22 -1
- package/browser/opnet.d.ts.map +1 -0
- package/browser/p2wda/P2WDADetector.d.ts +36 -9
- package/browser/p2wda/P2WDADetector.d.ts.map +1 -0
- package/browser/polyfill/disposable.d.ts +16 -0
- package/browser/polyfill/disposable.d.ts.map +1 -0
- package/browser/signer/AddressRotation.d.ts +36 -0
- package/browser/signer/AddressRotation.d.ts.map +1 -0
- package/browser/signer/IRotationSigner.d.ts +27 -3
- package/browser/signer/IRotationSigner.d.ts.map +1 -0
- package/browser/signer/ParallelSignerAdapter.d.ts +14 -0
- package/browser/signer/ParallelSignerAdapter.d.ts.map +1 -0
- package/browser/signer/SignerUtils.d.ts +11 -4
- package/browser/signer/SignerUtils.d.ts.map +1 -0
- package/browser/signer/TweakedSigner.d.ts +28 -4
- package/browser/signer/TweakedSigner.d.ts.map +1 -0
- package/browser/transaction/ContractAddress.d.ts +2 -2
- package/browser/transaction/ContractAddress.d.ts.map +1 -0
- package/browser/transaction/TransactionFactory.d.ts +140 -2
- package/browser/transaction/TransactionFactory.d.ts.map +1 -0
- package/browser/transaction/browser/BrowserSignerBase.d.ts +12 -6
- package/browser/transaction/browser/BrowserSignerBase.d.ts.map +1 -0
- package/browser/transaction/browser/WalletNetworks.d.ts +1 -0
- package/browser/transaction/browser/WalletNetworks.d.ts.map +1 -0
- package/browser/transaction/browser/Web3Provider.d.ts +27 -0
- package/browser/transaction/browser/Web3Provider.d.ts.map +1 -0
- package/browser/transaction/browser/extensions/UnisatSigner.d.ts +9 -7
- package/browser/transaction/browser/extensions/UnisatSigner.d.ts.map +1 -0
- package/browser/transaction/browser/extensions/XverseSigner.d.ts +9 -7
- package/browser/transaction/browser/extensions/XverseSigner.d.ts.map +1 -0
- package/browser/transaction/browser/types/OPWallet.d.ts +10 -0
- package/browser/transaction/browser/types/OPWallet.d.ts.map +1 -0
- package/browser/transaction/browser/types/Unisat.d.ts +1 -0
- package/browser/transaction/browser/types/Unisat.d.ts.map +1 -0
- package/browser/transaction/browser/types/Xverse.d.ts +1 -0
- package/browser/transaction/browser/types/Xverse.d.ts.map +1 -0
- package/browser/transaction/builders/CancelTransaction.d.ts +29 -4
- package/browser/transaction/builders/CancelTransaction.d.ts.map +1 -0
- package/browser/transaction/builders/ChallengeSolutionTransaction.d.ts +1 -0
- package/browser/transaction/builders/ChallengeSolutionTransaction.d.ts.map +1 -0
- package/browser/transaction/builders/ConsolidatedInteractionTransaction.d.ts +137 -10
- package/browser/transaction/builders/ConsolidatedInteractionTransaction.d.ts.map +1 -0
- package/browser/transaction/builders/CustomScriptTransaction.d.ts +106 -6
- package/browser/transaction/builders/CustomScriptTransaction.d.ts.map +1 -0
- package/browser/transaction/builders/DeploymentTransaction.d.ts +116 -5
- package/browser/transaction/builders/DeploymentTransaction.d.ts.map +1 -0
- package/browser/transaction/builders/FundingTransaction.d.ts +4 -3
- package/browser/transaction/builders/FundingTransaction.d.ts.map +1 -0
- package/browser/transaction/builders/InteractionTransaction.d.ts +12 -3
- package/browser/transaction/builders/InteractionTransaction.d.ts.map +1 -0
- package/browser/transaction/builders/InteractionTransactionP2WDA.d.ts +56 -5
- package/browser/transaction/builders/InteractionTransactionP2WDA.d.ts.map +1 -0
- package/browser/transaction/builders/MultiSignTransaction.d.ts +125 -16
- package/browser/transaction/builders/MultiSignTransaction.d.ts.map +1 -0
- package/browser/transaction/builders/SharedInteractionTransaction.d.ts +103 -15
- package/browser/transaction/builders/SharedInteractionTransaction.d.ts.map +1 -0
- package/browser/transaction/builders/TransactionBuilder.d.ts +243 -14
- package/browser/transaction/builders/TransactionBuilder.d.ts.map +1 -0
- package/browser/transaction/enums/TransactionType.d.ts +1 -0
- package/browser/transaction/enums/TransactionType.d.ts.map +1 -0
- package/browser/transaction/interfaces/ICancelTransactionParameters.d.ts +2 -1
- package/browser/transaction/interfaces/ICancelTransactionParameters.d.ts.map +1 -0
- package/browser/transaction/interfaces/IConsolidatedTransactionParameters.d.ts +46 -3
- package/browser/transaction/interfaces/IConsolidatedTransactionParameters.d.ts.map +1 -0
- package/browser/transaction/interfaces/ICustomTransactionParameters.d.ts +6 -4
- package/browser/transaction/interfaces/ICustomTransactionParameters.d.ts.map +1 -0
- package/browser/transaction/interfaces/ITransactionParameters.d.ts +22 -10
- package/browser/transaction/interfaces/ITransactionParameters.d.ts.map +1 -0
- package/browser/transaction/interfaces/ITransactionResponses.d.ts +1 -0
- package/browser/transaction/interfaces/ITransactionResponses.d.ts.map +1 -0
- package/browser/transaction/interfaces/ITweakedTransactionData.d.ts +18 -5
- package/browser/transaction/interfaces/ITweakedTransactionData.d.ts.map +1 -0
- package/browser/transaction/interfaces/IWeb3ProviderTypes.d.ts +26 -0
- package/browser/transaction/interfaces/IWeb3ProviderTypes.d.ts.map +1 -0
- package/browser/transaction/interfaces/Tap.d.ts +4 -3
- package/browser/transaction/interfaces/Tap.d.ts.map +1 -0
- package/browser/transaction/mineable/IP2WSHAddress.d.ts +2 -1
- package/browser/transaction/mineable/IP2WSHAddress.d.ts.map +1 -0
- package/browser/transaction/mineable/TimelockGenerator.d.ts +12 -3
- package/browser/transaction/mineable/TimelockGenerator.d.ts.map +1 -0
- package/browser/transaction/offline/OfflineTransactionManager.d.ts +190 -9
- package/browser/transaction/offline/OfflineTransactionManager.d.ts.map +1 -0
- package/browser/transaction/offline/TransactionReconstructor.d.ts +53 -3
- package/browser/transaction/offline/TransactionReconstructor.d.ts.map +1 -0
- package/browser/transaction/offline/TransactionSerializer.d.ts +53 -2
- package/browser/transaction/offline/TransactionSerializer.d.ts.map +1 -0
- package/browser/transaction/offline/TransactionStateCapture.d.ts +64 -5
- package/browser/transaction/offline/TransactionStateCapture.d.ts.map +1 -0
- package/browser/transaction/offline/interfaces/ISerializableState.d.ts +71 -0
- package/browser/transaction/offline/interfaces/ISerializableState.d.ts.map +1 -0
- package/browser/transaction/offline/interfaces/ITypeSpecificData.d.ts +76 -0
- package/browser/transaction/offline/interfaces/ITypeSpecificData.d.ts.map +1 -0
- package/browser/transaction/psbt/PSBTTypes.d.ts +1 -0
- package/browser/transaction/psbt/PSBTTypes.d.ts.map +1 -0
- package/browser/transaction/shared/P2TR_MS.d.ts +11 -2
- package/browser/transaction/shared/P2TR_MS.d.ts.map +1 -0
- package/browser/transaction/shared/TweakedTransaction.d.ts +275 -33
- package/browser/transaction/shared/TweakedTransaction.d.ts.map +1 -0
- package/browser/transaction/utils/WitnessUtils.d.ts +7 -1
- package/browser/transaction/utils/WitnessUtils.d.ts.map +1 -0
- package/browser/utils/BitcoinUtils.d.ts +19 -0
- package/browser/utils/BitcoinUtils.d.ts.map +1 -0
- package/browser/utils/BufferHelper.d.ts +1 -0
- package/browser/utils/BufferHelper.d.ts.map +1 -0
- package/browser/utils/StringToBuffer.d.ts +1 -0
- package/browser/utils/StringToBuffer.d.ts.map +1 -0
- package/browser/utils/lengths.d.ts +1 -0
- package/browser/utils/lengths.d.ts.map +1 -0
- package/browser/utils/types.d.ts +1 -0
- package/browser/utils/types.d.ts.map +1 -0
- package/browser/utxo/OPNetLimitedProvider.d.ts +37 -1
- package/browser/utxo/OPNetLimitedProvider.d.ts.map +1 -0
- package/browser/utxo/interfaces/BroadcastResponse.d.ts +1 -0
- package/browser/utxo/interfaces/BroadcastResponse.d.ts.map +1 -0
- package/browser/utxo/interfaces/IUTXO.d.ts +11 -5
- package/browser/utxo/interfaces/IUTXO.d.ts.map +1 -0
- package/browser/vendors.js +13940 -9389
- package/browser/verification/TapscriptVerificator.d.ts +10 -8
- package/browser/verification/TapscriptVerificator.d.ts.map +1 -0
- package/build/_version.d.ts +1 -0
- package/build/_version.d.ts.map +1 -0
- package/build/_version.js +1 -0
- package/build/_version.js.map +1 -0
- package/build/abi/ABICoder.d.ts +1 -1
- package/build/abi/ABICoder.d.ts.map +1 -0
- package/build/abi/ABICoder.js +9 -10
- package/build/abi/ABICoder.js.map +1 -0
- package/build/branded/Branded.d.ts +4 -0
- package/build/branded/Branded.d.ts.map +1 -0
- package/build/branded/Branded.js +2 -0
- package/build/branded/Branded.js.map +1 -0
- package/build/buffer/BinaryReader.d.ts +121 -2
- package/build/buffer/BinaryReader.d.ts.map +1 -0
- package/build/buffer/BinaryReader.js +129 -5
- package/build/buffer/BinaryReader.js.map +1 -0
- package/build/buffer/BinaryWriter.d.ts +52 -2
- package/build/buffer/BinaryWriter.d.ts.map +1 -0
- package/build/buffer/BinaryWriter.js +62 -2
- package/build/buffer/BinaryWriter.js.map +1 -0
- package/build/bytecode/Compressor.d.ts +12 -0
- package/build/bytecode/Compressor.d.ts.map +1 -0
- package/build/bytecode/Compressor.js +17 -5
- package/build/bytecode/Compressor.js.map +1 -0
- package/build/chain/ChainData.d.ts +2 -2
- package/build/chain/ChainData.d.ts.map +1 -0
- package/build/chain/ChainData.js +35 -17
- package/build/chain/ChainData.js.map +1 -0
- package/build/consensus/Consensus.d.ts +11 -3
- package/build/consensus/Consensus.d.ts.map +1 -0
- package/build/consensus/Consensus.js +8 -0
- package/build/consensus/Consensus.js.map +1 -0
- package/build/consensus/ConsensusConfig.d.ts +2 -1
- package/build/consensus/ConsensusConfig.d.ts.map +1 -0
- package/build/consensus/ConsensusConfig.js +1 -0
- package/build/consensus/ConsensusConfig.js.map +1 -0
- package/build/consensus/IConsensusConfig.d.ts +1 -0
- package/build/consensus/IConsensusConfig.d.ts.map +1 -0
- package/build/consensus/IConsensusConfig.js +2 -1
- package/build/consensus/IConsensusConfig.js.map +1 -0
- package/build/consensus/metadata/RoswellConsensus.d.ts +2 -1
- package/build/consensus/metadata/RoswellConsensus.d.ts.map +1 -0
- package/build/consensus/metadata/RoswellConsensus.js +2 -0
- package/build/consensus/metadata/RoswellConsensus.js.map +1 -0
- package/build/crypto/crypto.d.ts +1 -0
- package/build/crypto/crypto.d.ts.map +1 -0
- package/build/crypto/crypto.js +1 -0
- package/build/crypto/crypto.js.map +1 -0
- package/build/deterministic/AddressMap.d.ts +6 -1
- package/build/deterministic/AddressMap.d.ts.map +1 -0
- package/build/deterministic/AddressMap.js +8 -0
- package/build/deterministic/AddressMap.js.map +1 -0
- package/build/deterministic/AddressSet.d.ts +3 -1
- package/build/deterministic/AddressSet.d.ts.map +1 -0
- package/build/deterministic/AddressSet.js +7 -0
- package/build/deterministic/AddressSet.js.map +1 -0
- package/build/deterministic/CustomMap.d.ts +3 -1
- package/build/deterministic/CustomMap.d.ts.map +1 -0
- package/build/deterministic/CustomMap.js +65 -47
- package/build/deterministic/CustomMap.js.map +1 -0
- package/build/deterministic/DeterministicMap.d.ts +4 -2
- package/build/deterministic/DeterministicMap.d.ts.map +1 -0
- package/build/deterministic/DeterministicMap.js +24 -27
- package/build/deterministic/DeterministicMap.js.map +1 -0
- package/build/deterministic/DeterministicSet.d.ts +3 -1
- package/build/deterministic/DeterministicSet.d.ts.map +1 -0
- package/build/deterministic/DeterministicSet.js +6 -0
- package/build/deterministic/DeterministicSet.js.map +1 -0
- package/build/deterministic/ExtendedAddressMap.d.ts +7 -1
- package/build/deterministic/ExtendedAddressMap.d.ts.map +1 -0
- package/build/deterministic/ExtendedAddressMap.js +18 -2
- package/build/deterministic/ExtendedAddressMap.js.map +1 -0
- package/build/deterministic/FastMap.d.ts +7 -1
- package/build/deterministic/FastMap.d.ts.map +1 -0
- package/build/deterministic/FastMap.js +7 -2
- package/build/deterministic/FastMap.js.map +1 -0
- package/build/ecc/backend.d.ts +13 -0
- package/build/ecc/backend.d.ts.map +1 -0
- package/build/ecc/backend.js +15 -0
- package/build/ecc/backend.js.map +1 -0
- package/build/epoch/ChallengeSolution.d.ts +34 -2
- package/build/epoch/ChallengeSolution.d.ts.map +1 -0
- package/build/epoch/ChallengeSolution.js +52 -0
- package/build/epoch/ChallengeSolution.js.map +1 -0
- package/build/epoch/interfaces/IChallengeSolution.d.ts +14 -13
- package/build/epoch/interfaces/IChallengeSolution.d.ts.map +1 -0
- package/build/epoch/interfaces/IChallengeSolution.js +2 -1
- package/build/epoch/interfaces/IChallengeSolution.js.map +1 -0
- package/build/epoch/validator/EpochValidator.d.ts +38 -8
- package/build/epoch/validator/EpochValidator.d.ts.map +1 -0
- package/build/epoch/validator/EpochValidator.js +45 -19
- package/build/epoch/validator/EpochValidator.js.map +1 -0
- package/build/event/NetEvent.d.ts +1 -0
- package/build/event/NetEvent.d.ts.map +1 -0
- package/build/event/NetEvent.js +3 -0
- package/build/event/NetEvent.js.map +1 -0
- package/build/generators/AddressGenerator.d.ts +4 -3
- package/build/generators/AddressGenerator.d.ts.map +1 -0
- package/build/generators/AddressGenerator.js +10 -3
- package/build/generators/AddressGenerator.js.map +1 -0
- package/build/generators/Features.d.ts +4 -3
- package/build/generators/Features.d.ts.map +1 -0
- package/build/generators/Features.js +1 -0
- package/build/generators/Features.js.map +1 -0
- package/build/generators/Generator.d.ts +47 -11
- package/build/generators/Generator.d.ts.map +1 -0
- package/build/generators/Generator.js +48 -12
- package/build/generators/Generator.js.map +1 -0
- package/build/generators/MLDSAData.d.ts +1 -0
- package/build/generators/MLDSAData.d.ts.map +1 -0
- package/build/generators/MLDSAData.js +1 -0
- package/build/generators/MLDSAData.js.map +1 -0
- package/build/generators/builders/CalldataGenerator.d.ts +27 -6
- package/build/generators/builders/CalldataGenerator.d.ts.map +1 -0
- package/build/generators/builders/CalldataGenerator.js +33 -4
- package/build/generators/builders/CalldataGenerator.js.map +1 -0
- package/build/generators/builders/CustomGenerator.d.ts +13 -3
- package/build/generators/builders/CustomGenerator.d.ts.map +1 -0
- package/build/generators/builders/CustomGenerator.js +11 -0
- package/build/generators/builders/CustomGenerator.js.map +1 -0
- package/build/generators/builders/DeploymentGenerator.d.ts +17 -6
- package/build/generators/builders/DeploymentGenerator.d.ts.map +1 -0
- package/build/generators/builders/DeploymentGenerator.js +18 -2
- package/build/generators/builders/DeploymentGenerator.js.map +1 -0
- package/build/generators/builders/HashCommitmentGenerator.d.ts +166 -14
- package/build/generators/builders/HashCommitmentGenerator.d.ts.map +1 -0
- package/build/generators/builders/HashCommitmentGenerator.js +193 -27
- package/build/generators/builders/HashCommitmentGenerator.js.map +1 -0
- package/build/generators/builders/LegacyCalldataGenerator.d.ts +27 -5
- package/build/generators/builders/LegacyCalldataGenerator.d.ts.map +1 -0
- package/build/generators/builders/LegacyCalldataGenerator.js +35 -5
- package/build/generators/builders/LegacyCalldataGenerator.js.map +1 -0
- package/build/generators/builders/MultiSignGenerator.d.ts +6 -1
- package/build/generators/builders/MultiSignGenerator.d.ts.map +1 -0
- package/build/generators/builders/MultiSignGenerator.js +20 -10
- package/build/generators/builders/MultiSignGenerator.js.map +1 -0
- package/build/generators/builders/P2WDAGenerator.d.ts +44 -6
- package/build/generators/builders/P2WDAGenerator.d.ts.map +1 -0
- package/build/generators/builders/P2WDAGenerator.js +41 -2
- package/build/generators/builders/P2WDAGenerator.js.map +1 -0
- package/build/index.d.ts +1 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +1 -0
- package/build/index.js.map +1 -0
- package/build/keypair/Address.d.ts +284 -14
- package/build/keypair/Address.d.ts.map +1 -0
- package/build/keypair/Address.js +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 +6 -5
- package/build/keypair/AddressVerificator.js.map +1 -0
- package/build/keypair/EcKeyPair.d.ts +185 -23
- package/build/keypair/EcKeyPair.d.ts.map +1 -0
- package/build/keypair/EcKeyPair.js +223 -54
- package/build/keypair/EcKeyPair.js.map +1 -0
- package/build/keypair/MessageSigner.d.ts +18 -17
- package/build/keypair/MessageSigner.d.ts.map +1 -0
- package/build/keypair/MessageSigner.js +34 -25
- package/build/keypair/MessageSigner.js.map +1 -0
- package/build/keypair/Secp256k1PointDeriver.d.ts +55 -0
- package/build/keypair/Secp256k1PointDeriver.d.ts.map +1 -0
- package/build/keypair/Secp256k1PointDeriver.js +66 -0
- package/build/keypair/Secp256k1PointDeriver.js.map +1 -0
- package/build/keypair/Wallet.d.ts +29 -15
- package/build/keypair/Wallet.d.ts.map +1 -0
- package/build/keypair/Wallet.js +48 -14
- package/build/keypair/Wallet.js.map +1 -0
- package/build/keypair/interfaces/IWallet.d.ts +19 -0
- package/build/keypair/interfaces/IWallet.d.ts.map +1 -0
- package/build/keypair/interfaces/IWallet.js +1 -0
- package/build/keypair/interfaces/IWallet.js.map +1 -0
- package/build/metadata/ContractBaseMetadata.d.ts +10 -2
- package/build/metadata/ContractBaseMetadata.d.ts.map +1 -0
- package/build/metadata/ContractBaseMetadata.js +10 -1
- package/build/metadata/ContractBaseMetadata.js.map +1 -0
- package/build/mnemonic/BIPStandard.d.ts +59 -0
- package/build/mnemonic/BIPStandard.d.ts.map +1 -0
- package/build/mnemonic/BIPStandard.js +59 -0
- package/build/mnemonic/BIPStandard.js.map +1 -0
- package/build/mnemonic/Mnemonic.d.ts +16 -4
- package/build/mnemonic/Mnemonic.d.ts.map +1 -0
- package/build/mnemonic/Mnemonic.js +36 -8
- package/build/mnemonic/Mnemonic.js.map +1 -0
- package/build/mnemonic/MnemonicStrength.d.ts +6 -0
- package/build/mnemonic/MnemonicStrength.d.ts.map +1 -0
- package/build/mnemonic/MnemonicStrength.js +6 -0
- package/build/mnemonic/MnemonicStrength.js.map +1 -0
- package/build/network/ChainId.d.ts +1 -0
- package/build/network/ChainId.d.ts.map +1 -0
- package/build/network/ChainId.js +1 -0
- package/build/network/ChainId.js.map +1 -0
- package/build/opnet.d.ts +26 -3
- package/build/opnet.d.ts.map +1 -0
- package/build/opnet.js +23 -0
- package/build/opnet.js.map +1 -0
- package/build/p2wda/P2WDADetector.d.ts +38 -11
- package/build/p2wda/P2WDADetector.d.ts.map +1 -0
- package/build/p2wda/P2WDADetector.js +43 -10
- package/build/p2wda/P2WDADetector.js.map +1 -0
- package/build/polyfill/disposable.d.ts +16 -0
- package/build/polyfill/disposable.d.ts.map +1 -0
- package/build/polyfill/disposable.js +23 -0
- package/build/polyfill/disposable.js.map +1 -0
- package/build/signer/AddressRotation.d.ts +37 -1
- package/build/signer/AddressRotation.d.ts.map +1 -0
- package/build/signer/AddressRotation.js +16 -0
- package/build/signer/AddressRotation.js.map +1 -0
- package/build/signer/IRotationSigner.d.ts +27 -3
- package/build/signer/IRotationSigner.d.ts.map +1 -0
- package/build/signer/IRotationSigner.js +2 -1
- package/build/signer/IRotationSigner.js.map +1 -0
- package/build/signer/ParallelSignerAdapter.d.ts +14 -0
- package/build/signer/ParallelSignerAdapter.d.ts.map +1 -0
- package/build/signer/ParallelSignerAdapter.js +51 -0
- package/build/signer/ParallelSignerAdapter.js.map +1 -0
- package/build/signer/SignerUtils.d.ts +11 -4
- package/build/signer/SignerUtils.d.ts.map +1 -0
- package/build/signer/SignerUtils.js +16 -0
- package/build/signer/SignerUtils.js.map +1 -0
- package/build/signer/TweakedSigner.d.ts +28 -4
- package/build/signer/TweakedSigner.d.ts.map +1 -0
- package/build/signer/TweakedSigner.js +24 -6
- package/build/signer/TweakedSigner.js.map +1 -0
- package/build/transaction/ContractAddress.d.ts +2 -2
- package/build/transaction/ContractAddress.d.ts.map +1 -0
- package/build/transaction/ContractAddress.js +4 -8
- package/build/transaction/ContractAddress.js.map +1 -0
- package/build/transaction/TransactionFactory.d.ts +147 -9
- package/build/transaction/TransactionFactory.d.ts.map +1 -0
- package/build/transaction/TransactionFactory.js +145 -26
- package/build/transaction/TransactionFactory.js.map +1 -0
- package/build/transaction/browser/BrowserSignerBase.d.ts +12 -6
- package/build/transaction/browser/BrowserSignerBase.d.ts.map +1 -0
- package/build/transaction/browser/BrowserSignerBase.js +7 -0
- package/build/transaction/browser/BrowserSignerBase.js.map +1 -0
- package/build/transaction/browser/WalletNetworks.d.ts +1 -0
- package/build/transaction/browser/WalletNetworks.d.ts.map +1 -0
- package/build/transaction/browser/WalletNetworks.js +1 -0
- package/build/transaction/browser/WalletNetworks.js.map +1 -0
- package/build/transaction/browser/Web3Provider.d.ts +30 -3
- package/build/transaction/browser/Web3Provider.d.ts.map +1 -0
- package/build/transaction/browser/Web3Provider.js +1 -0
- package/build/transaction/browser/Web3Provider.js.map +1 -0
- package/build/transaction/browser/extensions/UnisatSigner.d.ts +11 -9
- package/build/transaction/browser/extensions/UnisatSigner.d.ts.map +1 -0
- package/build/transaction/browser/extensions/UnisatSigner.js +27 -17
- package/build/transaction/browser/extensions/UnisatSigner.js.map +1 -0
- package/build/transaction/browser/extensions/XverseSigner.d.ts +10 -8
- package/build/transaction/browser/extensions/XverseSigner.d.ts.map +1 -0
- package/build/transaction/browser/extensions/XverseSigner.js +25 -15
- package/build/transaction/browser/extensions/XverseSigner.js.map +1 -0
- package/build/transaction/browser/types/OPWallet.d.ts +12 -2
- package/build/transaction/browser/types/OPWallet.d.ts.map +1 -0
- package/build/transaction/browser/types/OPWallet.js +4 -0
- package/build/transaction/browser/types/OPWallet.js.map +1 -0
- package/build/transaction/browser/types/Unisat.d.ts +2 -1
- package/build/transaction/browser/types/Unisat.d.ts.map +1 -0
- package/build/transaction/browser/types/Unisat.js +2 -0
- package/build/transaction/browser/types/Unisat.js.map +1 -0
- package/build/transaction/browser/types/Xverse.d.ts +1 -0
- package/build/transaction/browser/types/Xverse.d.ts.map +1 -0
- package/build/transaction/browser/types/Xverse.js +1 -0
- package/build/transaction/browser/types/Xverse.js.map +1 -0
- package/build/transaction/builders/CancelTransaction.d.ts +31 -6
- package/build/transaction/builders/CancelTransaction.d.ts.map +1 -0
- package/build/transaction/builders/CancelTransaction.js +116 -33
- package/build/transaction/builders/CancelTransaction.js.map +1 -0
- package/build/transaction/builders/ChallengeSolutionTransaction.d.ts +1 -0
- package/build/transaction/builders/ChallengeSolutionTransaction.d.ts.map +1 -0
- package/build/transaction/builders/ChallengeSolutionTransaction.js +88 -0
- package/build/transaction/builders/ChallengeSolutionTransaction.js.map +1 -0
- package/build/transaction/builders/ConsolidatedInteractionTransaction.d.ts +140 -13
- package/build/transaction/builders/ConsolidatedInteractionTransaction.d.ts.map +1 -0
- package/build/transaction/builders/ConsolidatedInteractionTransaction.js +197 -20
- package/build/transaction/builders/ConsolidatedInteractionTransaction.js.map +1 -0
- package/build/transaction/builders/CustomScriptTransaction.d.ts +108 -8
- package/build/transaction/builders/CustomScriptTransaction.d.ts.map +1 -0
- package/build/transaction/builders/CustomScriptTransaction.js +176 -39
- package/build/transaction/builders/CustomScriptTransaction.js.map +1 -0
- package/build/transaction/builders/DeploymentTransaction.d.ts +120 -9
- package/build/transaction/builders/DeploymentTransaction.d.ts.map +1 -0
- package/build/transaction/builders/DeploymentTransaction.js +194 -51
- package/build/transaction/builders/DeploymentTransaction.js.map +1 -0
- package/build/transaction/builders/FundingTransaction.d.ts +5 -4
- package/build/transaction/builders/FundingTransaction.d.ts.map +1 -0
- package/build/transaction/builders/FundingTransaction.js +15 -8
- package/build/transaction/builders/FundingTransaction.js.map +1 -0
- package/build/transaction/builders/InteractionTransaction.d.ts +14 -5
- package/build/transaction/builders/InteractionTransaction.d.ts.map +1 -0
- package/build/transaction/builders/InteractionTransaction.js +18 -5
- package/build/transaction/builders/InteractionTransaction.js.map +1 -0
- package/build/transaction/builders/InteractionTransactionP2WDA.d.ts +58 -7
- package/build/transaction/builders/InteractionTransactionP2WDA.d.ts.map +1 -0
- package/build/transaction/builders/InteractionTransactionP2WDA.js +95 -18
- package/build/transaction/builders/InteractionTransactionP2WDA.js.map +1 -0
- package/build/transaction/builders/MultiSignTransaction.d.ts +126 -17
- package/build/transaction/builders/MultiSignTransaction.d.ts.map +1 -0
- package/build/transaction/builders/MultiSignTransaction.js +201 -76
- package/build/transaction/builders/MultiSignTransaction.js.map +1 -0
- package/build/transaction/builders/SharedInteractionTransaction.d.ts +106 -18
- package/build/transaction/builders/SharedInteractionTransaction.d.ts.map +1 -0
- package/build/transaction/builders/SharedInteractionTransaction.js +158 -40
- package/build/transaction/builders/SharedInteractionTransaction.js.map +1 -0
- package/build/transaction/builders/TransactionBuilder.d.ts +249 -19
- package/build/transaction/builders/TransactionBuilder.d.ts.map +1 -0
- package/build/transaction/builders/TransactionBuilder.js +377 -60
- package/build/transaction/builders/TransactionBuilder.js.map +1 -0
- package/build/transaction/enums/TransactionType.d.ts +1 -0
- package/build/transaction/enums/TransactionType.d.ts.map +1 -0
- package/build/transaction/enums/TransactionType.js +1 -0
- package/build/transaction/enums/TransactionType.js.map +1 -0
- package/build/transaction/interfaces/ICancelTransactionParameters.d.ts +3 -2
- package/build/transaction/interfaces/ICancelTransactionParameters.d.ts.map +1 -0
- package/build/transaction/interfaces/ICancelTransactionParameters.js +1 -0
- package/build/transaction/interfaces/ICancelTransactionParameters.js.map +1 -0
- package/build/transaction/interfaces/IConsolidatedTransactionParameters.d.ts +48 -5
- package/build/transaction/interfaces/IConsolidatedTransactionParameters.d.ts.map +1 -0
- package/build/transaction/interfaces/IConsolidatedTransactionParameters.js +1 -0
- package/build/transaction/interfaces/IConsolidatedTransactionParameters.js.map +1 -0
- package/build/transaction/interfaces/ICustomTransactionParameters.d.ts +7 -5
- package/build/transaction/interfaces/ICustomTransactionParameters.d.ts.map +1 -0
- package/build/transaction/interfaces/ICustomTransactionParameters.js +1 -0
- package/build/transaction/interfaces/ICustomTransactionParameters.js.map +1 -0
- package/build/transaction/interfaces/ITransactionParameters.d.ts +27 -15
- package/build/transaction/interfaces/ITransactionParameters.d.ts.map +1 -0
- package/build/transaction/interfaces/ITransactionParameters.js +1 -0
- package/build/transaction/interfaces/ITransactionParameters.js.map +1 -0
- package/build/transaction/interfaces/ITransactionResponses.d.ts +3 -2
- package/build/transaction/interfaces/ITransactionResponses.d.ts.map +1 -0
- package/build/transaction/interfaces/ITransactionResponses.js +1 -0
- package/build/transaction/interfaces/ITransactionResponses.js.map +1 -0
- package/build/transaction/interfaces/ITweakedTransactionData.d.ts +21 -8
- package/build/transaction/interfaces/ITweakedTransactionData.d.ts.map +1 -0
- package/build/transaction/interfaces/ITweakedTransactionData.js +1 -0
- package/build/transaction/interfaces/ITweakedTransactionData.js.map +1 -0
- package/build/transaction/interfaces/IWeb3ProviderTypes.d.ts +29 -3
- package/build/transaction/interfaces/IWeb3ProviderTypes.d.ts.map +1 -0
- package/build/transaction/interfaces/IWeb3ProviderTypes.js +2 -1
- package/build/transaction/interfaces/IWeb3ProviderTypes.js.map +1 -0
- package/build/transaction/interfaces/Tap.d.ts +4 -3
- package/build/transaction/interfaces/Tap.d.ts.map +1 -0
- package/build/transaction/interfaces/Tap.js +1 -0
- package/build/transaction/interfaces/Tap.js.map +1 -0
- package/build/transaction/mineable/IP2WSHAddress.d.ts +2 -1
- package/build/transaction/mineable/IP2WSHAddress.d.ts.map +1 -0
- package/build/transaction/mineable/IP2WSHAddress.js +1 -0
- package/build/transaction/mineable/IP2WSHAddress.js.map +1 -0
- package/build/transaction/mineable/TimelockGenerator.d.ts +13 -4
- package/build/transaction/mineable/TimelockGenerator.d.ts.map +1 -0
- package/build/transaction/mineable/TimelockGenerator.js +12 -3
- package/build/transaction/mineable/TimelockGenerator.js.map +1 -0
- package/build/transaction/offline/OfflineTransactionManager.d.ts +193 -12
- package/build/transaction/offline/OfflineTransactionManager.d.ts.map +1 -0
- package/build/transaction/offline/OfflineTransactionManager.js +192 -8
- package/build/transaction/offline/OfflineTransactionManager.js.map +1 -0
- package/build/transaction/offline/TransactionReconstructor.d.ts +56 -6
- package/build/transaction/offline/TransactionReconstructor.d.ts.map +1 -0
- package/build/transaction/offline/TransactionReconstructor.js +111 -75
- package/build/transaction/offline/TransactionReconstructor.js.map +1 -0
- package/build/transaction/offline/TransactionSerializer.d.ts +54 -3
- package/build/transaction/offline/TransactionSerializer.d.ts.map +1 -0
- package/build/transaction/offline/TransactionSerializer.js +206 -95
- package/build/transaction/offline/TransactionSerializer.js.map +1 -0
- package/build/transaction/offline/TransactionStateCapture.d.ts +66 -7
- package/build/transaction/offline/TransactionStateCapture.d.ts.map +1 -0
- package/build/transaction/offline/TransactionStateCapture.js +124 -60
- package/build/transaction/offline/TransactionStateCapture.js.map +1 -0
- package/build/transaction/offline/interfaces/ISerializableState.d.ts +72 -1
- package/build/transaction/offline/interfaces/ISerializableState.d.ts.map +1 -0
- package/build/transaction/offline/interfaces/ISerializableState.js +10 -1
- package/build/transaction/offline/interfaces/ISerializableState.js.map +1 -0
- package/build/transaction/offline/interfaces/ITypeSpecificData.d.ts +77 -1
- package/build/transaction/offline/interfaces/ITypeSpecificData.d.ts.map +1 -0
- package/build/transaction/offline/interfaces/ITypeSpecificData.js +19 -0
- package/build/transaction/offline/interfaces/ITypeSpecificData.js.map +1 -0
- package/build/transaction/psbt/PSBTTypes.d.ts +1 -0
- package/build/transaction/psbt/PSBTTypes.d.ts.map +1 -0
- package/build/transaction/psbt/PSBTTypes.js +1 -0
- package/build/transaction/psbt/PSBTTypes.js.map +1 -0
- package/build/transaction/shared/P2TR_MS.d.ts +11 -2
- package/build/transaction/shared/P2TR_MS.d.ts.map +1 -0
- package/build/transaction/shared/P2TR_MS.js +10 -0
- package/build/transaction/shared/P2TR_MS.js.map +1 -0
- package/build/transaction/shared/TweakedTransaction.d.ts +281 -38
- package/build/transaction/shared/TweakedTransaction.d.ts.map +1 -0
- package/build/transaction/shared/TweakedTransaction.js +576 -114
- package/build/transaction/shared/TweakedTransaction.js.map +1 -0
- package/build/transaction/utils/WitnessUtils.d.ts +7 -1
- package/build/transaction/utils/WitnessUtils.d.ts.map +1 -0
- package/build/transaction/utils/WitnessUtils.js +17 -3
- package/build/transaction/utils/WitnessUtils.js.map +1 -0
- package/build/tsconfig.build.tsbuildinfo +1 -1
- package/build/utils/BitcoinUtils.d.ts +19 -0
- package/build/utils/BitcoinUtils.d.ts.map +1 -0
- package/build/utils/BitcoinUtils.js +19 -0
- package/build/utils/BitcoinUtils.js.map +1 -0
- package/build/utils/BufferHelper.d.ts +2 -1
- package/build/utils/BufferHelper.d.ts.map +1 -0
- package/build/utils/BufferHelper.js +38 -32
- package/build/utils/BufferHelper.js.map +1 -0
- package/build/utils/StringToBuffer.d.ts +1 -0
- package/build/utils/StringToBuffer.d.ts.map +1 -0
- package/build/utils/StringToBuffer.js +1 -0
- package/build/utils/StringToBuffer.js.map +1 -0
- package/build/utils/lengths.d.ts +1 -0
- package/build/utils/lengths.d.ts.map +1 -0
- package/build/utils/lengths.js +1 -0
- package/build/utils/lengths.js.map +1 -0
- package/build/utils/types.d.ts +1 -0
- package/build/utils/types.d.ts.map +1 -0
- package/build/utils/types.js +2 -1
- package/build/utils/types.js.map +1 -0
- package/build/utxo/OPNetLimitedProvider.d.ts +39 -3
- package/build/utxo/OPNetLimitedProvider.d.ts.map +1 -0
- package/build/utxo/OPNetLimitedProvider.js +41 -3
- package/build/utxo/OPNetLimitedProvider.js.map +1 -0
- package/build/utxo/interfaces/BroadcastResponse.d.ts +1 -0
- package/build/utxo/interfaces/BroadcastResponse.d.ts.map +1 -0
- package/build/utxo/interfaces/BroadcastResponse.js +1 -0
- package/build/utxo/interfaces/BroadcastResponse.js.map +1 -0
- package/build/utxo/interfaces/IUTXO.d.ts +13 -7
- package/build/utxo/interfaces/IUTXO.d.ts.map +1 -0
- package/build/utxo/interfaces/IUTXO.js +1 -0
- package/build/utxo/interfaces/IUTXO.js.map +1 -0
- package/build/verification/TapscriptVerificator.d.ts +12 -10
- package/build/verification/TapscriptVerificator.d.ts.map +1 -0
- package/build/verification/TapscriptVerificator.js +28 -38
- package/build/verification/TapscriptVerificator.js.map +1 -0
- package/eslint.config.js +0 -1
- package/package.json +16 -39
- 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/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 +6 -6
- package/src/generators/Features.ts +3 -3
- package/src/generators/Generator.ts +42 -26
- package/src/generators/builders/CalldataGenerator.ts +26 -24
- package/src/generators/builders/CustomGenerator.ts +4 -4
- package/src/generators/builders/DeploymentGenerator.ts +25 -23
- package/src/generators/builders/HashCommitmentGenerator.ts +31 -31
- package/src/generators/builders/LegacyCalldataGenerator.ts +26 -24
- package/src/generators/builders/MultiSignGenerator.ts +12 -12
- package/src/generators/builders/P2WDAGenerator.ts +10 -10
- package/src/keypair/Address.ts +115 -72
- package/src/keypair/AddressVerificator.ts +16 -147
- package/src/keypair/EcKeyPair.ts +109 -118
- package/src/keypair/MessageSigner.ts +70 -150
- package/src/keypair/Wallet.ts +59 -240
- package/src/metadata/ContractBaseMetadata.ts +2 -2
- package/src/mnemonic/Mnemonic.ts +32 -221
- package/src/opnet.ts +12 -6
- package/src/p2wda/P2WDADetector.ts +23 -72
- package/src/polyfill/disposable.ts +29 -0
- package/src/signer/AddressRotation.ts +1 -1
- package/src/signer/IRotationSigner.ts +3 -3
- package/src/signer/ParallelSignerAdapter.ts +59 -0
- package/src/signer/SignerUtils.ts +4 -4
- package/src/signer/TweakedSigner.ts +28 -13
- package/src/transaction/ContractAddress.ts +3 -7
- package/src/transaction/TransactionFactory.ts +28 -50
- package/src/transaction/browser/BrowserSignerBase.ts +12 -6
- package/src/transaction/browser/Web3Provider.ts +3 -3
- package/src/transaction/browser/extensions/UnisatSigner.ts +52 -48
- package/src/transaction/browser/extensions/XverseSigner.ts +55 -38
- package/src/transaction/browser/types/OPWallet.ts +2 -2
- package/src/transaction/browser/types/Unisat.ts +1 -1
- package/src/transaction/builders/CancelTransaction.ts +59 -24
- package/src/transaction/builders/ChallengeSolutionTransaction.ts +3 -3
- package/src/transaction/builders/ConsolidatedInteractionTransaction.ts +39 -34
- package/src/transaction/builders/CustomScriptTransaction.ts +79 -56
- package/src/transaction/builders/DeploymentTransaction.ts +82 -63
- package/src/transaction/builders/FundingTransaction.ts +11 -11
- package/src/transaction/builders/InteractionTransaction.ts +10 -10
- package/src/transaction/builders/InteractionTransactionP2WDA.ts +38 -40
- package/src/transaction/builders/MultiSignTransaction.ts +68 -61
- package/src/transaction/builders/SharedInteractionTransaction.ts +81 -57
- package/src/transaction/builders/TransactionBuilder.ts +101 -79
- package/src/transaction/interfaces/ICancelTransactionParameters.ts +2 -2
- package/src/transaction/interfaces/IConsolidatedTransactionParameters.ts +5 -5
- package/src/transaction/interfaces/ICustomTransactionParameters.ts +5 -5
- package/src/transaction/interfaces/ITransactionParameters.ts +15 -15
- package/src/transaction/interfaces/ITransactionResponses.ts +2 -2
- package/src/transaction/interfaces/ITweakedTransactionData.ts +17 -8
- package/src/transaction/interfaces/IWeb3ProviderTypes.ts +3 -3
- package/src/transaction/interfaces/Tap.ts +3 -3
- package/src/transaction/mineable/IP2WSHAddress.ts +1 -1
- package/src/transaction/mineable/TimelockGenerator.ts +19 -12
- package/src/transaction/offline/OfflineTransactionManager.ts +22 -23
- package/src/transaction/offline/TransactionReconstructor.ts +83 -91
- package/src/transaction/offline/TransactionSerializer.ts +151 -101
- package/src/transaction/offline/TransactionStateCapture.ts +83 -79
- package/src/transaction/offline/interfaces/ISerializableState.ts +1 -1
- package/src/transaction/offline/interfaces/ITypeSpecificData.ts +1 -1
- package/src/transaction/shared/P2TR_MS.ts +4 -4
- package/src/transaction/shared/TweakedTransaction.ts +326 -124
- package/src/transaction/utils/WitnessUtils.ts +18 -9
- package/src/utils/BufferHelper.ts +39 -37
- package/src/utxo/OPNetLimitedProvider.ts +7 -7
- package/src/utxo/interfaces/IUTXO.ts +7 -7
- package/src/verification/TapscriptVerificator.ts +73 -86
- package/test/address-rotation.test.ts +24 -24
- package/test/address.test.ts +12 -12
- package/test/addressmap.test.ts +30 -30
- package/test/binary-reader-writer.test.ts +8 -8
- package/test/browser/offline-transaction.test.ts +2206 -0
- package/test/browser/parallel-signing.test.ts +316 -0
- package/test/browser/setup.ts +11 -0
- package/test/browser/transaction-signing.test.ts +416 -0
- package/test/buffer-helper.test.ts +287 -0
- package/test/derivePath.test.ts +4 -3
- package/test/disposable.test.ts +279 -0
- package/test/fastmap-setall.test.ts +1 -1
- package/test/fastmap.test.ts +3 -3
- package/test/messagesigner-mldsa.test.ts +3 -3
- package/test/messagesigner-schnorr.test.ts +9 -9
- package/test/offline-transaction.test.ts +461 -288
- package/test/old/FastBigIntMap.ts +3 -3
- package/test/oldfastmap.test.ts +6 -6
- package/test/transaction-builders.test.ts +321 -0
- package/tsconfig.base.json +34 -18
- package/tsconfig.browser.json +15 -0
- package/tsconfig.json +3 -8
- package/vite.config.browser.ts +4 -5
- package/vitest.config.browser.ts +68 -0
- package/vitest.config.ts +1 -1
- package/browser/valibot.js +0 -4948
- package/tsconfig.webpack.json +0 -18
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import { Network, networks, script, Stack } from '@btc-vision/bitcoin';
|
|
1
|
+
import { type Network, networks, script, type Stack, type XOnlyPublicKey } from '@btc-vision/bitcoin';
|
|
2
2
|
import { Generator } from '../Generator.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Class to generate bitcoin script for interaction transactions
|
|
6
6
|
*/
|
|
7
7
|
export class CustomGenerator extends Generator {
|
|
8
|
-
constructor(senderPubKey:
|
|
8
|
+
constructor(senderPubKey: XOnlyPublicKey, network: Network = networks.bitcoin) {
|
|
9
9
|
super(senderPubKey, undefined, network);
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* Compile an interaction bitcoin script
|
|
14
14
|
* @param compiledData - The compiled data
|
|
15
|
-
* @returns {
|
|
15
|
+
* @returns {Uint8Array} - The compiled script
|
|
16
16
|
* @throws {Error} - If something goes wrong
|
|
17
17
|
*/
|
|
18
|
-
public compile(compiledData: (
|
|
18
|
+
public compile(compiledData: (Uint8Array | Stack)[]): Uint8Array {
|
|
19
19
|
const asm = compiledData.flat();
|
|
20
20
|
const compiled = script.compile(asm);
|
|
21
21
|
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import { crypto, Network, networks, opcodes, script } from '@btc-vision/bitcoin';
|
|
1
|
+
import { crypto, type Network, networks, opcodes, type PublicKey, script } from '@btc-vision/bitcoin';
|
|
2
2
|
import { Generator } from '../Generator.js';
|
|
3
|
-
import { Feature, Features } from '../Features.js';
|
|
4
|
-
import { IChallengeSolution } from '../../epoch/interfaces/IChallengeSolution.js';
|
|
3
|
+
import { type Feature, Features } from '../Features.js';
|
|
4
|
+
import type { IChallengeSolution } from '../../epoch/interfaces/IChallengeSolution.js';
|
|
5
5
|
import { BinaryWriter } from '../../buffer/BinaryWriter.js';
|
|
6
6
|
|
|
7
7
|
export const OPNET_DEPLOYMENT_VERSION = 0x00;
|
|
8
|
-
export const versionBuffer =
|
|
8
|
+
export const versionBuffer = Uint8Array.from([OPNET_DEPLOYMENT_VERSION]);
|
|
9
9
|
|
|
10
10
|
export class DeploymentGenerator extends Generator {
|
|
11
11
|
constructor(
|
|
12
|
-
senderPubKey:
|
|
13
|
-
contractSaltPubKey:
|
|
12
|
+
senderPubKey: PublicKey,
|
|
13
|
+
contractSaltPubKey: Uint8Array,
|
|
14
14
|
network: Network = networks.bitcoin,
|
|
15
15
|
) {
|
|
16
16
|
super(senderPubKey, contractSaltPubKey, network);
|
|
@@ -18,22 +18,22 @@ export class DeploymentGenerator extends Generator {
|
|
|
18
18
|
|
|
19
19
|
/**
|
|
20
20
|
* Compile a bitcoin script representing a contract deployment
|
|
21
|
-
* @param {
|
|
22
|
-
* @param {
|
|
21
|
+
* @param {Uint8Array} contractBytecode - The contract bytecode
|
|
22
|
+
* @param {Uint8Array} contractSalt - The contract salt
|
|
23
23
|
* @param {ChallengeSolution} challenge - The challenge for reward
|
|
24
24
|
* @param {bigint} maxPriority - The maximum priority for the contract
|
|
25
|
-
* @param {
|
|
25
|
+
* @param {Uint8Array} [calldata] - The calldata to be passed to the contract
|
|
26
26
|
* @param {Feature<Features>[]} [features] - Optional features to include in the script
|
|
27
|
-
* @returns {
|
|
27
|
+
* @returns {Uint8Array} - The compiled script
|
|
28
28
|
*/
|
|
29
29
|
public compile(
|
|
30
|
-
contractBytecode:
|
|
31
|
-
contractSalt:
|
|
30
|
+
contractBytecode: Uint8Array,
|
|
31
|
+
contractSalt: Uint8Array,
|
|
32
32
|
challenge: IChallengeSolution,
|
|
33
33
|
maxPriority: bigint,
|
|
34
|
-
calldata?:
|
|
34
|
+
calldata?: Uint8Array,
|
|
35
35
|
features?: Feature<Features>[],
|
|
36
|
-
):
|
|
36
|
+
): Uint8Array {
|
|
37
37
|
const asm = this.getAsm(
|
|
38
38
|
contractBytecode,
|
|
39
39
|
contractSalt,
|
|
@@ -57,20 +57,20 @@ export class DeploymentGenerator extends Generator {
|
|
|
57
57
|
}
|
|
58
58
|
|
|
59
59
|
private getAsm(
|
|
60
|
-
contractBytecode:
|
|
61
|
-
contractSalt:
|
|
60
|
+
contractBytecode: Uint8Array,
|
|
61
|
+
contractSalt: Uint8Array,
|
|
62
62
|
challenge: IChallengeSolution,
|
|
63
63
|
maxPriority: bigint,
|
|
64
|
-
calldata?:
|
|
64
|
+
calldata?: Uint8Array,
|
|
65
65
|
featuresRaw?: Feature<Features>[],
|
|
66
|
-
): (number |
|
|
66
|
+
): (number | Uint8Array)[] {
|
|
67
67
|
if (!this.contractSaltPubKey) throw new Error('Contract salt public key not set');
|
|
68
68
|
|
|
69
|
-
const dataChunks:
|
|
70
|
-
const calldataChunks:
|
|
69
|
+
const dataChunks: Uint8Array[][] = this.splitBufferIntoChunks(contractBytecode);
|
|
70
|
+
const calldataChunks: Uint8Array[][] = calldata ? this.splitBufferIntoChunks(calldata) : [];
|
|
71
71
|
|
|
72
72
|
const featuresList: Features[] = [];
|
|
73
|
-
const featureData: (number |
|
|
73
|
+
const featureData: (number | Uint8Array | Uint8Array[])[] = [];
|
|
74
74
|
|
|
75
75
|
if (featuresRaw && featuresRaw.length) {
|
|
76
76
|
const features: Feature<Features>[] = featuresRaw.sort(
|
|
@@ -79,13 +79,15 @@ export class DeploymentGenerator extends Generator {
|
|
|
79
79
|
|
|
80
80
|
const finalBuffer = new BinaryWriter();
|
|
81
81
|
for (let i = 0; i < features.length; i++) {
|
|
82
|
-
const feature = features[i]
|
|
82
|
+
const feature = features[i] as Feature<Features>;
|
|
83
83
|
featuresList.push(feature.opcode);
|
|
84
84
|
|
|
85
85
|
this.encodeFeature(feature, finalBuffer);
|
|
86
86
|
}
|
|
87
87
|
|
|
88
|
-
featureData.push(
|
|
88
|
+
featureData.push(
|
|
89
|
+
...this.splitBufferIntoChunks(new Uint8Array(finalBuffer.getBuffer())),
|
|
90
|
+
);
|
|
89
91
|
}
|
|
90
92
|
|
|
91
93
|
const compiledData = [
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { crypto, Network, networks, opcodes, payments, script } from '@btc-vision/bitcoin';
|
|
2
|
-
import { IHashCommittedP2WSH } from '../../transaction/interfaces/IConsolidatedTransactionParameters.js';
|
|
3
|
-
import { IP2WSHAddress } from '../../transaction/mineable/IP2WSHAddress.js';
|
|
1
|
+
import { crypto, equals, type Network, networks, opcodes, payments, type Script, script, } from '@btc-vision/bitcoin';
|
|
2
|
+
import type { IHashCommittedP2WSH } from '../../transaction/interfaces/IConsolidatedTransactionParameters.js';
|
|
3
|
+
import type { IP2WSHAddress } from '../../transaction/mineable/IP2WSHAddress.js';
|
|
4
4
|
import { Logger } from '@btc-vision/logger';
|
|
5
5
|
|
|
6
6
|
/**
|
|
@@ -42,11 +42,6 @@ export class HashCommitmentGenerator extends Logger {
|
|
|
42
42
|
* OP_HASH160 (1) + push (1) + hash (20) + OP_EQUALVERIFY (1) = 23 bytes
|
|
43
43
|
*/
|
|
44
44
|
private static readonly BYTES_PER_COMMITMENT: number = 23;
|
|
45
|
-
/**
|
|
46
|
-
* Signature check bytes in witness script.
|
|
47
|
-
* push (1) + pubkey (33) + OP_CHECKSIG (1) = 35 bytes
|
|
48
|
-
*/
|
|
49
|
-
private static readonly SIG_CHECK_BYTES: number = 35;
|
|
50
45
|
/**
|
|
51
46
|
* Fixed overhead in witness serialization:
|
|
52
47
|
* - Stack item count: 1 byte
|
|
@@ -87,11 +82,11 @@ export class HashCommitmentGenerator extends Logger {
|
|
|
87
82
|
public static readonly WEIGHT_PER_INPUT: number =
|
|
88
83
|
HashCommitmentGenerator.INPUT_BASE_WEIGHT +
|
|
89
84
|
HashCommitmentGenerator.INPUT_WITNESS_WEIGHT_MAX;
|
|
90
|
-
public readonly logColor: string = '#4a90d9';
|
|
91
|
-
private readonly publicKey:
|
|
85
|
+
public override readonly logColor: string = '#4a90d9';
|
|
86
|
+
private readonly publicKey: Uint8Array;
|
|
92
87
|
private readonly network: Network;
|
|
93
88
|
|
|
94
|
-
constructor(publicKey:
|
|
89
|
+
constructor(publicKey: Uint8Array, network: Network = networks.bitcoin) {
|
|
95
90
|
super();
|
|
96
91
|
|
|
97
92
|
if (publicKey.length !== 33) {
|
|
@@ -164,7 +159,7 @@ export class HashCommitmentGenerator extends Logger {
|
|
|
164
159
|
* @param witnessScript The witness script to validate
|
|
165
160
|
* @returns true if valid hash-committed script
|
|
166
161
|
*/
|
|
167
|
-
public static validateHashCommittedScript(witnessScript:
|
|
162
|
+
public static validateHashCommittedScript(witnessScript: Uint8Array): boolean {
|
|
168
163
|
try {
|
|
169
164
|
const decompiled = script.decompile(witnessScript);
|
|
170
165
|
if (!decompiled || decompiled.length < 5) {
|
|
@@ -177,7 +172,7 @@ export class HashCommitmentGenerator extends Logger {
|
|
|
177
172
|
return false;
|
|
178
173
|
}
|
|
179
174
|
const pubkey = decompiled[lastIdx - 1];
|
|
180
|
-
if (!
|
|
175
|
+
if (!(pubkey instanceof Uint8Array) || pubkey.length !== 33) {
|
|
181
176
|
return false;
|
|
182
177
|
}
|
|
183
178
|
|
|
@@ -191,7 +186,7 @@ export class HashCommitmentGenerator extends Logger {
|
|
|
191
186
|
const hash = hashParts[i + 1];
|
|
192
187
|
if (
|
|
193
188
|
hashParts[i] !== opcodes.OP_HASH160 ||
|
|
194
|
-
!
|
|
189
|
+
!(hash instanceof Uint8Array) ||
|
|
195
190
|
hash.length !== 20 ||
|
|
196
191
|
hashParts[i + 2] !== opcodes.OP_EQUALVERIFY
|
|
197
192
|
) {
|
|
@@ -211,7 +206,7 @@ export class HashCommitmentGenerator extends Logger {
|
|
|
211
206
|
* @param witnessScript The witness script
|
|
212
207
|
* @returns Array of 20-byte data hashes (in data order), or null if invalid
|
|
213
208
|
*/
|
|
214
|
-
public static extractDataHashes(witnessScript:
|
|
209
|
+
public static extractDataHashes(witnessScript: Uint8Array): Uint8Array[] | null {
|
|
215
210
|
try {
|
|
216
211
|
const decompiled = script.decompile(witnessScript);
|
|
217
212
|
if (
|
|
@@ -223,10 +218,10 @@ export class HashCommitmentGenerator extends Logger {
|
|
|
223
218
|
|
|
224
219
|
// Extract hashes from triplets (they're in reverse order in script)
|
|
225
220
|
const hashParts = decompiled.slice(0, -2);
|
|
226
|
-
const hashes:
|
|
221
|
+
const hashes: Uint8Array[] = [];
|
|
227
222
|
|
|
228
223
|
for (let i = 0; i < hashParts.length; i += 3) {
|
|
229
|
-
hashes.push(hashParts[i + 1] as
|
|
224
|
+
hashes.push(hashParts[i + 1] as Uint8Array);
|
|
230
225
|
}
|
|
231
226
|
|
|
232
227
|
// Reverse to get data order (script has them reversed)
|
|
@@ -242,7 +237,7 @@ export class HashCommitmentGenerator extends Logger {
|
|
|
242
237
|
* @param witnessScript The witness script
|
|
243
238
|
* @returns The 33-byte public key, or null if invalid script
|
|
244
239
|
*/
|
|
245
|
-
public static extractPublicKey(witnessScript:
|
|
240
|
+
public static extractPublicKey(witnessScript: Uint8Array): Uint8Array | null {
|
|
246
241
|
try {
|
|
247
242
|
const decompiled = script.decompile(witnessScript);
|
|
248
243
|
if (
|
|
@@ -251,7 +246,7 @@ export class HashCommitmentGenerator extends Logger {
|
|
|
251
246
|
) {
|
|
252
247
|
return null;
|
|
253
248
|
}
|
|
254
|
-
return decompiled[decompiled.length - 2] as
|
|
249
|
+
return decompiled[decompiled.length - 2] as Uint8Array;
|
|
255
250
|
} catch {
|
|
256
251
|
return null;
|
|
257
252
|
}
|
|
@@ -264,15 +259,18 @@ export class HashCommitmentGenerator extends Logger {
|
|
|
264
259
|
* @param witnessScript The witness script containing the hash commitments
|
|
265
260
|
* @returns true if all chunks match their commitments
|
|
266
261
|
*/
|
|
267
|
-
public static verifyChunkCommitments(
|
|
262
|
+
public static verifyChunkCommitments(
|
|
263
|
+
dataChunks: Uint8Array[],
|
|
264
|
+
witnessScript: Uint8Array,
|
|
265
|
+
): boolean {
|
|
268
266
|
const committedHashes = HashCommitmentGenerator.extractDataHashes(witnessScript);
|
|
269
267
|
if (!committedHashes || committedHashes.length !== dataChunks.length) {
|
|
270
268
|
return false;
|
|
271
269
|
}
|
|
272
270
|
|
|
273
271
|
for (let i = 0; i < dataChunks.length; i++) {
|
|
274
|
-
const actualHash = crypto.hash160(dataChunks[i]);
|
|
275
|
-
if (!committedHashes[i]
|
|
272
|
+
const actualHash = crypto.hash160(dataChunks[i] as Uint8Array);
|
|
273
|
+
if (!equals(committedHashes[i] as Uint8Array, actualHash)) {
|
|
276
274
|
return false;
|
|
277
275
|
}
|
|
278
276
|
}
|
|
@@ -344,7 +342,7 @@ export class HashCommitmentGenerator extends Logger {
|
|
|
344
342
|
* Calculate the HASH160 of a data chunk.
|
|
345
343
|
* HASH160 = RIPEMD160(SHA256(data))
|
|
346
344
|
*/
|
|
347
|
-
public hashChunk(data:
|
|
345
|
+
public hashChunk(data: Uint8Array): Uint8Array {
|
|
348
346
|
return crypto.hash160(data);
|
|
349
347
|
}
|
|
350
348
|
|
|
@@ -365,7 +363,7 @@ export class HashCommitmentGenerator extends Logger {
|
|
|
365
363
|
* @param dataHashes Array of HASH160 values (in data order, will be reversed in script)
|
|
366
364
|
* @returns The compiled witness script
|
|
367
365
|
*/
|
|
368
|
-
public generateWitnessScript(dataHashes:
|
|
366
|
+
public generateWitnessScript(dataHashes: Uint8Array[]): Uint8Array {
|
|
369
367
|
if (dataHashes.length === 0) {
|
|
370
368
|
throw new Error('At least one data hash is required');
|
|
371
369
|
}
|
|
@@ -383,12 +381,12 @@ export class HashCommitmentGenerator extends Logger {
|
|
|
383
381
|
}
|
|
384
382
|
|
|
385
383
|
// Build script parts - hashes in reverse order (last data chunk verified first)
|
|
386
|
-
const scriptParts: (number |
|
|
384
|
+
const scriptParts: (number | Uint8Array)[] = [];
|
|
387
385
|
|
|
388
386
|
// Add hash commitments in reverse order
|
|
389
387
|
for (let i = dataHashes.length - 1; i >= 0; i--) {
|
|
390
388
|
scriptParts.push(opcodes.OP_HASH160);
|
|
391
|
-
scriptParts.push(dataHashes[i]);
|
|
389
|
+
scriptParts.push(dataHashes[i] as Uint8Array);
|
|
392
390
|
scriptParts.push(opcodes.OP_EQUALVERIFY);
|
|
393
391
|
}
|
|
394
392
|
|
|
@@ -405,9 +403,11 @@ export class HashCommitmentGenerator extends Logger {
|
|
|
405
403
|
* @param witnessScript The witness script
|
|
406
404
|
* @returns P2WSH address info
|
|
407
405
|
*/
|
|
408
|
-
public generateP2WSHAddress(
|
|
406
|
+
public generateP2WSHAddress(
|
|
407
|
+
witnessScript: Uint8Array | Script,
|
|
408
|
+
): IP2WSHAddress & { scriptPubKey: Uint8Array } {
|
|
409
409
|
const p2wsh = payments.p2wsh({
|
|
410
|
-
redeem: { output: witnessScript },
|
|
410
|
+
redeem: { output: witnessScript as Script },
|
|
411
411
|
network: this.network,
|
|
412
412
|
});
|
|
413
413
|
|
|
@@ -433,7 +433,7 @@ export class HashCommitmentGenerator extends Logger {
|
|
|
433
433
|
* @returns Array of hash-committed P2WSH outputs
|
|
434
434
|
*/
|
|
435
435
|
public prepareChunks(
|
|
436
|
-
data:
|
|
436
|
+
data: Uint8Array,
|
|
437
437
|
maxChunkSize: number = HashCommitmentGenerator.MAX_CHUNK_SIZE,
|
|
438
438
|
): IHashCommittedP2WSH[] {
|
|
439
439
|
if (maxChunkSize > HashCommitmentGenerator.MAX_CHUNK_SIZE) {
|
|
@@ -447,12 +447,12 @@ export class HashCommitmentGenerator extends Logger {
|
|
|
447
447
|
}
|
|
448
448
|
|
|
449
449
|
// First, split data into 80-byte chunks
|
|
450
|
-
const allChunks:
|
|
450
|
+
const allChunks: Uint8Array[] = [];
|
|
451
451
|
let offset = 0;
|
|
452
452
|
|
|
453
453
|
while (offset < data.length) {
|
|
454
454
|
const chunkSize = Math.min(maxChunkSize, data.length - offset);
|
|
455
|
-
allChunks.push(
|
|
455
|
+
allChunks.push(new Uint8Array(data.subarray(offset, offset + chunkSize)));
|
|
456
456
|
offset += chunkSize;
|
|
457
457
|
}
|
|
458
458
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { crypto, Network, networks, opcodes, script } from '@btc-vision/bitcoin';
|
|
2
|
-
import {
|
|
1
|
+
import { concat, crypto, type Network, networks, opcodes, type PublicKey, script } from '@btc-vision/bitcoin';
|
|
2
|
+
import { type UniversalSigner } from '@btc-vision/ecpair';
|
|
3
3
|
import { Compressor } from '../../bytecode/Compressor.js';
|
|
4
4
|
import { EcKeyPair } from '../../keypair/EcKeyPair.js';
|
|
5
5
|
import { Generator } from '../Generator.js';
|
|
6
|
-
import { Feature, Features } from '../Features.js';
|
|
6
|
+
import { type Feature, Features } from '../Features.js';
|
|
7
7
|
import { BinaryWriter } from '../../buffer/BinaryWriter.js';
|
|
8
8
|
|
|
9
9
|
/**
|
|
@@ -11,22 +11,22 @@ import { BinaryWriter } from '../../buffer/BinaryWriter.js';
|
|
|
11
11
|
* @deprecated
|
|
12
12
|
*/
|
|
13
13
|
export class LegacyCalldataGenerator extends Generator {
|
|
14
|
-
constructor(senderPubKey:
|
|
15
|
-
super(senderPubKey,
|
|
14
|
+
constructor(senderPubKey: PublicKey, network: Network = networks.bitcoin) {
|
|
15
|
+
super(senderPubKey, new Uint8Array(0), network);
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
/**
|
|
19
19
|
* Get the public key as a buffer
|
|
20
|
-
* @param {
|
|
20
|
+
* @param {Uint8Array[]} witnessKeys - The public keys
|
|
21
21
|
* @param {Network} network - The network to use
|
|
22
22
|
* @private
|
|
23
|
-
* @returns {
|
|
23
|
+
* @returns {Uint8Array} - The public key as a buffer
|
|
24
24
|
*/
|
|
25
|
-
public static getPubKeyAsBuffer(witnessKeys:
|
|
26
|
-
let finalBuffer:
|
|
25
|
+
public static getPubKeyAsBuffer(witnessKeys: Uint8Array[], network: Network): Uint8Array {
|
|
26
|
+
let finalBuffer: Uint8Array = new Uint8Array(0);
|
|
27
27
|
|
|
28
28
|
for (const pubKey of witnessKeys) {
|
|
29
|
-
const key:
|
|
29
|
+
const key: UniversalSigner = EcKeyPair.fromPublicKey(pubKey, network);
|
|
30
30
|
|
|
31
31
|
if (!key.compressed) {
|
|
32
32
|
throw new Error('Public key must be compressed');
|
|
@@ -36,11 +36,11 @@ export class LegacyCalldataGenerator extends Generator {
|
|
|
36
36
|
throw new Error(`Public key must be 33 bytes, got ${pubKey.byteLength} bytes.`);
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
-
finalBuffer =
|
|
39
|
+
finalBuffer = concat([finalBuffer, pubKey]);
|
|
40
40
|
}
|
|
41
41
|
|
|
42
42
|
// compress the public keys
|
|
43
|
-
const compressed:
|
|
43
|
+
const compressed: Uint8Array = Compressor.compress(finalBuffer);
|
|
44
44
|
if (compressed.byteLength >= finalBuffer.byteLength) {
|
|
45
45
|
// we ensure that the user pays the smallest amount of fees. [micro-optimization]
|
|
46
46
|
return finalBuffer;
|
|
@@ -52,26 +52,26 @@ export class LegacyCalldataGenerator extends Generator {
|
|
|
52
52
|
|
|
53
53
|
/**
|
|
54
54
|
* Compile an interaction bitcoin script
|
|
55
|
-
* @param {
|
|
56
|
-
* @param {
|
|
57
|
-
* @param {
|
|
55
|
+
* @param {Uint8Array} calldata - The calldata to use
|
|
56
|
+
* @param {Uint8Array} contractSecret - The contract secret
|
|
57
|
+
* @param {Uint8Array} challenge - The challenge to use
|
|
58
58
|
* @param {bigint} maxPriority - The maximum priority
|
|
59
59
|
* @param {number[]} [featuresRaw=[]] - The features to use (optional)
|
|
60
|
-
* @returns {
|
|
60
|
+
* @returns {Uint8Array} - The compiled script
|
|
61
61
|
* @throws {Error} - If something goes wrong
|
|
62
62
|
*/
|
|
63
63
|
public compile(
|
|
64
|
-
calldata:
|
|
65
|
-
contractSecret:
|
|
66
|
-
challenge:
|
|
64
|
+
calldata: Uint8Array,
|
|
65
|
+
contractSecret: Uint8Array,
|
|
66
|
+
challenge: Uint8Array,
|
|
67
67
|
maxPriority: bigint,
|
|
68
68
|
featuresRaw: Feature<Features>[] = [],
|
|
69
|
-
):
|
|
70
|
-
const dataChunks:
|
|
69
|
+
): Uint8Array {
|
|
70
|
+
const dataChunks: Uint8Array[][] = this.splitBufferIntoChunks(calldata);
|
|
71
71
|
if (!dataChunks.length) throw new Error('No data chunks found');
|
|
72
72
|
|
|
73
73
|
const featuresList: Features[] = [];
|
|
74
|
-
const featureData: (number |
|
|
74
|
+
const featureData: (number | Uint8Array | Uint8Array[])[] = [];
|
|
75
75
|
|
|
76
76
|
if (featuresRaw && featuresRaw.length) {
|
|
77
77
|
const features: Feature<Features>[] = featuresRaw.sort(
|
|
@@ -80,13 +80,15 @@ export class LegacyCalldataGenerator extends Generator {
|
|
|
80
80
|
|
|
81
81
|
const finalBuffer = new BinaryWriter();
|
|
82
82
|
for (let i = 0; i < features.length; i++) {
|
|
83
|
-
const feature = features[i]
|
|
83
|
+
const feature = features[i] as Feature<Features>;
|
|
84
84
|
featuresList.push(feature.opcode);
|
|
85
85
|
|
|
86
86
|
this.encodeFeature(feature, finalBuffer);
|
|
87
87
|
}
|
|
88
88
|
|
|
89
|
-
featureData.push(
|
|
89
|
+
featureData.push(
|
|
90
|
+
...this.splitBufferIntoChunks(new Uint8Array(finalBuffer.getBuffer())),
|
|
91
|
+
);
|
|
90
92
|
}
|
|
91
93
|
|
|
92
94
|
let compiledData = [
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { opcodes, script, toXOnly } from '@btc-vision/bitcoin';
|
|
1
|
+
import { alloc, compare, equals, opcodes, type PublicKey, script, toXOnly, type XOnlyPublicKey, } from '@btc-vision/bitcoin';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Generate a bitcoin script for a multisign interaction
|
|
@@ -7,10 +7,10 @@ export class MultiSignGenerator {
|
|
|
7
7
|
public static readonly MAXIMUM_SUPPORTED_SIGNATURE = 255;
|
|
8
8
|
|
|
9
9
|
public static compile(
|
|
10
|
-
vaultPublicKeys:
|
|
10
|
+
vaultPublicKeys: Uint8Array[] | PublicKey[],
|
|
11
11
|
minimumSignatures: number = 0,
|
|
12
|
-
internal?:
|
|
13
|
-
):
|
|
12
|
+
internal?: Uint8Array | XOnlyPublicKey,
|
|
13
|
+
): Uint8Array {
|
|
14
14
|
if (minimumSignatures < 2) {
|
|
15
15
|
throw new Error('Minimum signatures must be greater than 1');
|
|
16
16
|
}
|
|
@@ -25,27 +25,27 @@ export class MultiSignGenerator {
|
|
|
25
25
|
);
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
-
const minimumRequired =
|
|
29
|
-
minimumRequired
|
|
28
|
+
const minimumRequired = alloc(1);
|
|
29
|
+
minimumRequired[0] = minimumSignatures;
|
|
30
30
|
|
|
31
31
|
/** Remove duplicates **/
|
|
32
32
|
vaultPublicKeys = vaultPublicKeys.filter(
|
|
33
|
-
(buf, index, self) => index === self.findIndex((otherBuf) =>
|
|
33
|
+
(buf, index, self) => index === self.findIndex((otherBuf) => equals(buf, otherBuf)),
|
|
34
34
|
);
|
|
35
35
|
|
|
36
36
|
/** We must order the pub keys. */
|
|
37
|
-
vaultPublicKeys = vaultPublicKeys.sort((a, b) =>
|
|
37
|
+
vaultPublicKeys = vaultPublicKeys.sort((a, b) => compare(a, b));
|
|
38
38
|
|
|
39
39
|
let included = false;
|
|
40
40
|
const data = vaultPublicKeys.map((key) => {
|
|
41
|
-
const newKey = toXOnly(key);
|
|
42
|
-
if (internal && !included) included =
|
|
41
|
+
const newKey = toXOnly(key as PublicKey);
|
|
42
|
+
if (internal && !included) included = equals(internal, newKey);
|
|
43
43
|
|
|
44
44
|
return newKey;
|
|
45
45
|
});
|
|
46
46
|
|
|
47
|
-
if (internal && !included) data.push(internal);
|
|
48
|
-
const compiledData: (number |
|
|
47
|
+
if (internal && !included) data.push(internal as XOnlyPublicKey);
|
|
48
|
+
const compiledData: (number | Uint8Array)[] = [
|
|
49
49
|
// Push the initial 0 (for OP_CHECKSIGADD)
|
|
50
50
|
opcodes.OP_0,
|
|
51
51
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { Network, networks } from '@btc-vision/bitcoin';
|
|
1
|
+
import { type Network, networks, type PublicKey } from '@btc-vision/bitcoin';
|
|
2
2
|
import { BinaryWriter } from '../../buffer/BinaryWriter.js';
|
|
3
|
-
import { Feature, Features } from '../Features.js';
|
|
3
|
+
import { type Feature, Features } from '../Features.js';
|
|
4
4
|
import { Generator } from '../Generator.js';
|
|
5
|
-
import { IChallengeSolution } from '../../epoch/interfaces/IChallengeSolution.js';
|
|
5
|
+
import type { IChallengeSolution } from '../../epoch/interfaces/IChallengeSolution.js';
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* @category Generators
|
|
@@ -12,8 +12,8 @@ export class P2WDAGenerator extends Generator {
|
|
|
12
12
|
private static readonly P2WDA_VERSION = 0x01;
|
|
13
13
|
|
|
14
14
|
constructor(
|
|
15
|
-
senderPubKey:
|
|
16
|
-
contractSaltPubKey:
|
|
15
|
+
senderPubKey: PublicKey,
|
|
16
|
+
contractSaltPubKey: Uint8Array,
|
|
17
17
|
network: Network = networks.bitcoin,
|
|
18
18
|
) {
|
|
19
19
|
super(senderPubKey, contractSaltPubKey, network);
|
|
@@ -60,12 +60,12 @@ export class P2WDAGenerator extends Generator {
|
|
|
60
60
|
* @returns Raw operation data ready for signing and compression
|
|
61
61
|
*/
|
|
62
62
|
public compile(
|
|
63
|
-
calldata:
|
|
64
|
-
contractSecret:
|
|
63
|
+
calldata: Uint8Array,
|
|
64
|
+
contractSecret: Uint8Array,
|
|
65
65
|
challenge: IChallengeSolution,
|
|
66
66
|
maxPriority: bigint,
|
|
67
67
|
featuresRaw: Feature<Features>[] = [],
|
|
68
|
-
):
|
|
68
|
+
): Uint8Array {
|
|
69
69
|
if (!this.contractSaltPubKey) {
|
|
70
70
|
throw new Error('Contract salt public key not set');
|
|
71
71
|
}
|
|
@@ -97,10 +97,10 @@ export class P2WDAGenerator extends Generator {
|
|
|
97
97
|
|
|
98
98
|
this.writeFeatures(writer, features);
|
|
99
99
|
|
|
100
|
-
return
|
|
100
|
+
return new Uint8Array(writer.getBuffer());
|
|
101
101
|
}
|
|
102
102
|
|
|
103
|
-
public override getHeader(maxPriority: bigint, features: Features[] = []):
|
|
103
|
+
public override getHeader(maxPriority: bigint, features: Features[] = []): Uint8Array {
|
|
104
104
|
return super.getHeader(maxPriority, features);
|
|
105
105
|
}
|
|
106
106
|
|