@btc-vision/transaction 1.8.0-beta.3 → 1.8.0-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/browser/_version.d.ts +1 -0
- package/browser/_version.d.ts.map +1 -0
- package/browser/abi/ABICoder.d.ts +1 -1
- package/browser/abi/ABICoder.d.ts.map +1 -0
- package/browser/branded/Branded.d.ts +4 -0
- package/browser/branded/Branded.d.ts.map +1 -0
- package/browser/btc-vision-bitcoin.js +11999 -2647
- package/browser/buffer/BinaryReader.d.ts +120 -1
- package/browser/buffer/BinaryReader.d.ts.map +1 -0
- package/browser/buffer/BinaryWriter.d.ts +51 -1
- package/browser/buffer/BinaryWriter.d.ts.map +1 -0
- package/browser/bytecode/Compressor.d.ts +12 -0
- package/browser/bytecode/Compressor.d.ts.map +1 -0
- package/browser/chain/ChainData.d.ts +2 -2
- package/browser/chain/ChainData.d.ts.map +1 -0
- package/browser/consensus/Consensus.d.ts +11 -3
- package/browser/consensus/Consensus.d.ts.map +1 -0
- package/browser/consensus/ConsensusConfig.d.ts +1 -0
- package/browser/consensus/ConsensusConfig.d.ts.map +1 -0
- package/browser/consensus/IConsensusConfig.d.ts +1 -0
- package/browser/consensus/IConsensusConfig.d.ts.map +1 -0
- package/browser/consensus/metadata/RoswellConsensus.d.ts +1 -0
- package/browser/consensus/metadata/RoswellConsensus.d.ts.map +1 -0
- package/browser/crypto/crypto.d.ts +1 -0
- package/browser/crypto/crypto.d.ts.map +1 -0
- package/browser/deterministic/AddressMap.d.ts +6 -1
- package/browser/deterministic/AddressMap.d.ts.map +1 -0
- package/browser/deterministic/AddressSet.d.ts +3 -1
- package/browser/deterministic/AddressSet.d.ts.map +1 -0
- package/browser/deterministic/CustomMap.d.ts +3 -1
- package/browser/deterministic/CustomMap.d.ts.map +1 -0
- package/browser/deterministic/DeterministicMap.d.ts +3 -1
- package/browser/deterministic/DeterministicMap.d.ts.map +1 -0
- package/browser/deterministic/DeterministicSet.d.ts +3 -1
- package/browser/deterministic/DeterministicSet.d.ts.map +1 -0
- package/browser/deterministic/ExtendedAddressMap.d.ts +7 -1
- package/browser/deterministic/ExtendedAddressMap.d.ts.map +1 -0
- package/browser/deterministic/FastMap.d.ts +7 -1
- package/browser/deterministic/FastMap.d.ts.map +1 -0
- package/browser/ecc/backend.d.ts +13 -0
- package/browser/ecc/backend.d.ts.map +1 -0
- package/browser/epoch/ChallengeSolution.d.ts +33 -1
- package/browser/epoch/ChallengeSolution.d.ts.map +1 -0
- package/browser/epoch/interfaces/IChallengeSolution.d.ts +14 -13
- package/browser/epoch/interfaces/IChallengeSolution.d.ts.map +1 -0
- package/browser/epoch/validator/EpochValidator.d.ts +37 -7
- package/browser/epoch/validator/EpochValidator.d.ts.map +1 -0
- package/browser/event/NetEvent.d.ts +1 -0
- package/browser/event/NetEvent.d.ts.map +1 -0
- package/browser/generators/AddressGenerator.d.ts +4 -3
- package/browser/generators/AddressGenerator.d.ts.map +1 -0
- package/browser/generators/Features.d.ts +1 -0
- package/browser/generators/Features.d.ts.map +1 -0
- package/browser/generators/Generator.d.ts +46 -10
- package/browser/generators/Generator.d.ts.map +1 -0
- package/browser/generators/MLDSAData.d.ts +1 -0
- package/browser/generators/MLDSAData.d.ts.map +1 -0
- package/browser/generators/builders/CalldataGenerator.d.ts +25 -4
- package/browser/generators/builders/CalldataGenerator.d.ts.map +1 -0
- package/browser/generators/builders/CustomGenerator.d.ts +13 -3
- package/browser/generators/builders/CustomGenerator.d.ts.map +1 -0
- package/browser/generators/builders/DeploymentGenerator.d.ts +15 -4
- package/browser/generators/builders/DeploymentGenerator.d.ts.map +1 -0
- package/browser/generators/builders/HashCommitmentGenerator.d.ts +164 -12
- package/browser/generators/builders/HashCommitmentGenerator.d.ts.map +1 -0
- package/browser/generators/builders/LegacyCalldataGenerator.d.ts +26 -4
- package/browser/generators/builders/LegacyCalldataGenerator.d.ts.map +1 -0
- package/browser/generators/builders/MultiSignGenerator.d.ts +6 -1
- package/browser/generators/builders/MultiSignGenerator.d.ts.map +1 -0
- package/browser/generators/builders/P2WDAGenerator.d.ts +42 -4
- package/browser/generators/builders/P2WDAGenerator.d.ts.map +1 -0
- package/browser/index.d.ts +1 -0
- package/browser/index.d.ts.map +1 -0
- package/browser/index.js +3583 -3184
- package/browser/keypair/Address.d.ts +283 -13
- package/browser/keypair/Address.d.ts.map +1 -0
- package/browser/keypair/AddressVerificator.d.ts +7 -6
- package/browser/keypair/AddressVerificator.d.ts.map +1 -0
- package/browser/keypair/EcKeyPair.d.ts +183 -21
- package/browser/keypair/EcKeyPair.d.ts.map +1 -0
- package/browser/keypair/MessageSigner.d.ts +17 -16
- package/browser/keypair/MessageSigner.d.ts.map +1 -0
- package/browser/keypair/Secp256k1PointDeriver.d.ts +55 -0
- package/browser/keypair/Secp256k1PointDeriver.d.ts.map +1 -0
- package/browser/keypair/Wallet.d.ts +27 -13
- package/browser/keypair/Wallet.d.ts.map +1 -0
- package/browser/keypair/interfaces/IWallet.d.ts +19 -0
- package/browser/keypair/interfaces/IWallet.d.ts.map +1 -0
- package/browser/metadata/ContractBaseMetadata.d.ts +10 -2
- package/browser/metadata/ContractBaseMetadata.d.ts.map +1 -0
- package/browser/mnemonic/BIPStandard.d.ts +59 -0
- package/browser/mnemonic/BIPStandard.d.ts.map +1 -0
- package/browser/mnemonic/Mnemonic.d.ts +15 -3
- package/browser/mnemonic/Mnemonic.d.ts.map +1 -0
- package/browser/mnemonic/MnemonicStrength.d.ts +6 -0
- package/browser/mnemonic/MnemonicStrength.d.ts.map +1 -0
- package/browser/network/ChainId.d.ts +1 -0
- package/browser/network/ChainId.d.ts.map +1 -0
- package/browser/noble-curves.js +844 -2746
- package/browser/noble-hashes.js +1338 -2067
- package/browser/opnet.d.ts +22 -1
- package/browser/opnet.d.ts.map +1 -0
- package/browser/p2wda/P2WDADetector.d.ts +36 -9
- package/browser/p2wda/P2WDADetector.d.ts.map +1 -0
- package/browser/polyfill/disposable.d.ts +16 -0
- package/browser/polyfill/disposable.d.ts.map +1 -0
- package/browser/signer/AddressRotation.d.ts +36 -0
- package/browser/signer/AddressRotation.d.ts.map +1 -0
- package/browser/signer/IRotationSigner.d.ts +27 -3
- package/browser/signer/IRotationSigner.d.ts.map +1 -0
- package/browser/signer/ParallelSignerAdapter.d.ts +14 -0
- package/browser/signer/ParallelSignerAdapter.d.ts.map +1 -0
- package/browser/signer/SignerUtils.d.ts +11 -4
- package/browser/signer/SignerUtils.d.ts.map +1 -0
- package/browser/signer/TweakedSigner.d.ts +28 -4
- package/browser/signer/TweakedSigner.d.ts.map +1 -0
- package/browser/transaction/ContractAddress.d.ts +2 -2
- package/browser/transaction/ContractAddress.d.ts.map +1 -0
- package/browser/transaction/TransactionFactory.d.ts +140 -2
- package/browser/transaction/TransactionFactory.d.ts.map +1 -0
- package/browser/transaction/browser/BrowserSignerBase.d.ts +12 -6
- package/browser/transaction/browser/BrowserSignerBase.d.ts.map +1 -0
- package/browser/transaction/browser/WalletNetworks.d.ts +1 -0
- package/browser/transaction/browser/WalletNetworks.d.ts.map +1 -0
- package/browser/transaction/browser/Web3Provider.d.ts +27 -0
- package/browser/transaction/browser/Web3Provider.d.ts.map +1 -0
- package/browser/transaction/browser/extensions/UnisatSigner.d.ts +9 -7
- package/browser/transaction/browser/extensions/UnisatSigner.d.ts.map +1 -0
- package/browser/transaction/browser/extensions/XverseSigner.d.ts +9 -7
- package/browser/transaction/browser/extensions/XverseSigner.d.ts.map +1 -0
- package/browser/transaction/browser/types/OPWallet.d.ts +10 -0
- package/browser/transaction/browser/types/OPWallet.d.ts.map +1 -0
- package/browser/transaction/browser/types/Unisat.d.ts +1 -0
- package/browser/transaction/browser/types/Unisat.d.ts.map +1 -0
- package/browser/transaction/browser/types/Xverse.d.ts +1 -0
- package/browser/transaction/browser/types/Xverse.d.ts.map +1 -0
- package/browser/transaction/builders/CancelTransaction.d.ts +29 -4
- package/browser/transaction/builders/CancelTransaction.d.ts.map +1 -0
- package/browser/transaction/builders/ChallengeSolutionTransaction.d.ts +1 -0
- package/browser/transaction/builders/ChallengeSolutionTransaction.d.ts.map +1 -0
- package/browser/transaction/builders/ConsolidatedInteractionTransaction.d.ts +137 -10
- package/browser/transaction/builders/ConsolidatedInteractionTransaction.d.ts.map +1 -0
- package/browser/transaction/builders/CustomScriptTransaction.d.ts +106 -6
- package/browser/transaction/builders/CustomScriptTransaction.d.ts.map +1 -0
- package/browser/transaction/builders/DeploymentTransaction.d.ts +116 -5
- package/browser/transaction/builders/DeploymentTransaction.d.ts.map +1 -0
- package/browser/transaction/builders/FundingTransaction.d.ts +4 -3
- package/browser/transaction/builders/FundingTransaction.d.ts.map +1 -0
- package/browser/transaction/builders/InteractionTransaction.d.ts +12 -3
- package/browser/transaction/builders/InteractionTransaction.d.ts.map +1 -0
- package/browser/transaction/builders/InteractionTransactionP2WDA.d.ts +56 -5
- package/browser/transaction/builders/InteractionTransactionP2WDA.d.ts.map +1 -0
- package/browser/transaction/builders/MultiSignTransaction.d.ts +125 -16
- package/browser/transaction/builders/MultiSignTransaction.d.ts.map +1 -0
- package/browser/transaction/builders/SharedInteractionTransaction.d.ts +103 -15
- package/browser/transaction/builders/SharedInteractionTransaction.d.ts.map +1 -0
- package/browser/transaction/builders/TransactionBuilder.d.ts +243 -14
- package/browser/transaction/builders/TransactionBuilder.d.ts.map +1 -0
- package/browser/transaction/enums/TransactionType.d.ts +1 -0
- package/browser/transaction/enums/TransactionType.d.ts.map +1 -0
- package/browser/transaction/interfaces/ICancelTransactionParameters.d.ts +2 -1
- package/browser/transaction/interfaces/ICancelTransactionParameters.d.ts.map +1 -0
- package/browser/transaction/interfaces/IConsolidatedTransactionParameters.d.ts +46 -3
- package/browser/transaction/interfaces/IConsolidatedTransactionParameters.d.ts.map +1 -0
- package/browser/transaction/interfaces/ICustomTransactionParameters.d.ts +6 -4
- package/browser/transaction/interfaces/ICustomTransactionParameters.d.ts.map +1 -0
- package/browser/transaction/interfaces/ITransactionParameters.d.ts +22 -10
- package/browser/transaction/interfaces/ITransactionParameters.d.ts.map +1 -0
- package/browser/transaction/interfaces/ITransactionResponses.d.ts +1 -0
- package/browser/transaction/interfaces/ITransactionResponses.d.ts.map +1 -0
- package/browser/transaction/interfaces/ITweakedTransactionData.d.ts +18 -5
- package/browser/transaction/interfaces/ITweakedTransactionData.d.ts.map +1 -0
- package/browser/transaction/interfaces/IWeb3ProviderTypes.d.ts +26 -0
- package/browser/transaction/interfaces/IWeb3ProviderTypes.d.ts.map +1 -0
- package/browser/transaction/interfaces/Tap.d.ts +4 -3
- package/browser/transaction/interfaces/Tap.d.ts.map +1 -0
- package/browser/transaction/mineable/IP2WSHAddress.d.ts +2 -1
- package/browser/transaction/mineable/IP2WSHAddress.d.ts.map +1 -0
- package/browser/transaction/mineable/TimelockGenerator.d.ts +12 -3
- package/browser/transaction/mineable/TimelockGenerator.d.ts.map +1 -0
- package/browser/transaction/offline/OfflineTransactionManager.d.ts +190 -9
- package/browser/transaction/offline/OfflineTransactionManager.d.ts.map +1 -0
- package/browser/transaction/offline/TransactionReconstructor.d.ts +53 -3
- package/browser/transaction/offline/TransactionReconstructor.d.ts.map +1 -0
- package/browser/transaction/offline/TransactionSerializer.d.ts +53 -2
- package/browser/transaction/offline/TransactionSerializer.d.ts.map +1 -0
- package/browser/transaction/offline/TransactionStateCapture.d.ts +64 -5
- package/browser/transaction/offline/TransactionStateCapture.d.ts.map +1 -0
- package/browser/transaction/offline/interfaces/ISerializableState.d.ts +71 -0
- package/browser/transaction/offline/interfaces/ISerializableState.d.ts.map +1 -0
- package/browser/transaction/offline/interfaces/ITypeSpecificData.d.ts +76 -0
- package/browser/transaction/offline/interfaces/ITypeSpecificData.d.ts.map +1 -0
- package/browser/transaction/psbt/PSBTTypes.d.ts +1 -0
- package/browser/transaction/psbt/PSBTTypes.d.ts.map +1 -0
- package/browser/transaction/shared/P2TR_MS.d.ts +11 -2
- package/browser/transaction/shared/P2TR_MS.d.ts.map +1 -0
- package/browser/transaction/shared/TweakedTransaction.d.ts +275 -33
- package/browser/transaction/shared/TweakedTransaction.d.ts.map +1 -0
- package/browser/transaction/utils/WitnessUtils.d.ts +7 -1
- package/browser/transaction/utils/WitnessUtils.d.ts.map +1 -0
- package/browser/utils/BitcoinUtils.d.ts +19 -0
- package/browser/utils/BitcoinUtils.d.ts.map +1 -0
- package/browser/utils/BufferHelper.d.ts +1 -0
- package/browser/utils/BufferHelper.d.ts.map +1 -0
- package/browser/utils/StringToBuffer.d.ts +1 -0
- package/browser/utils/StringToBuffer.d.ts.map +1 -0
- package/browser/utils/lengths.d.ts +1 -0
- package/browser/utils/lengths.d.ts.map +1 -0
- package/browser/utils/types.d.ts +1 -0
- package/browser/utils/types.d.ts.map +1 -0
- package/browser/utxo/OPNetLimitedProvider.d.ts +37 -1
- package/browser/utxo/OPNetLimitedProvider.d.ts.map +1 -0
- package/browser/utxo/interfaces/BroadcastResponse.d.ts +1 -0
- package/browser/utxo/interfaces/BroadcastResponse.d.ts.map +1 -0
- package/browser/utxo/interfaces/IUTXO.d.ts +11 -5
- package/browser/utxo/interfaces/IUTXO.d.ts.map +1 -0
- package/browser/vendors.js +14351 -10031
- package/browser/verification/TapscriptVerificator.d.ts +10 -8
- package/browser/verification/TapscriptVerificator.d.ts.map +1 -0
- package/build/_version.d.ts +1 -0
- package/build/_version.d.ts.map +1 -0
- package/build/_version.js +1 -0
- package/build/_version.js.map +1 -0
- package/build/abi/ABICoder.d.ts +1 -1
- package/build/abi/ABICoder.d.ts.map +1 -0
- package/build/abi/ABICoder.js +9 -10
- package/build/abi/ABICoder.js.map +1 -0
- package/build/branded/Branded.d.ts +4 -0
- package/build/branded/Branded.d.ts.map +1 -0
- package/build/branded/Branded.js +2 -0
- package/build/branded/Branded.js.map +1 -0
- package/build/buffer/BinaryReader.d.ts +121 -2
- package/build/buffer/BinaryReader.d.ts.map +1 -0
- package/build/buffer/BinaryReader.js +129 -5
- package/build/buffer/BinaryReader.js.map +1 -0
- package/build/buffer/BinaryWriter.d.ts +52 -2
- package/build/buffer/BinaryWriter.d.ts.map +1 -0
- package/build/buffer/BinaryWriter.js +62 -2
- package/build/buffer/BinaryWriter.js.map +1 -0
- package/build/bytecode/Compressor.d.ts +12 -0
- package/build/bytecode/Compressor.d.ts.map +1 -0
- package/build/bytecode/Compressor.js +17 -5
- package/build/bytecode/Compressor.js.map +1 -0
- package/build/chain/ChainData.d.ts +2 -2
- package/build/chain/ChainData.d.ts.map +1 -0
- package/build/chain/ChainData.js +35 -17
- package/build/chain/ChainData.js.map +1 -0
- package/build/consensus/Consensus.d.ts +11 -3
- package/build/consensus/Consensus.d.ts.map +1 -0
- package/build/consensus/Consensus.js +8 -0
- package/build/consensus/Consensus.js.map +1 -0
- package/build/consensus/ConsensusConfig.d.ts +2 -1
- package/build/consensus/ConsensusConfig.d.ts.map +1 -0
- package/build/consensus/ConsensusConfig.js +1 -0
- package/build/consensus/ConsensusConfig.js.map +1 -0
- package/build/consensus/IConsensusConfig.d.ts +1 -0
- package/build/consensus/IConsensusConfig.d.ts.map +1 -0
- package/build/consensus/IConsensusConfig.js +2 -1
- package/build/consensus/IConsensusConfig.js.map +1 -0
- package/build/consensus/metadata/RoswellConsensus.d.ts +2 -1
- package/build/consensus/metadata/RoswellConsensus.d.ts.map +1 -0
- package/build/consensus/metadata/RoswellConsensus.js +2 -0
- package/build/consensus/metadata/RoswellConsensus.js.map +1 -0
- package/build/crypto/crypto.d.ts +1 -0
- package/build/crypto/crypto.d.ts.map +1 -0
- package/build/crypto/crypto.js +1 -0
- package/build/crypto/crypto.js.map +1 -0
- package/build/deterministic/AddressMap.d.ts +6 -1
- package/build/deterministic/AddressMap.d.ts.map +1 -0
- package/build/deterministic/AddressMap.js +8 -0
- package/build/deterministic/AddressMap.js.map +1 -0
- package/build/deterministic/AddressSet.d.ts +3 -1
- package/build/deterministic/AddressSet.d.ts.map +1 -0
- package/build/deterministic/AddressSet.js +7 -0
- package/build/deterministic/AddressSet.js.map +1 -0
- package/build/deterministic/CustomMap.d.ts +3 -1
- package/build/deterministic/CustomMap.d.ts.map +1 -0
- package/build/deterministic/CustomMap.js +65 -47
- package/build/deterministic/CustomMap.js.map +1 -0
- package/build/deterministic/DeterministicMap.d.ts +4 -2
- package/build/deterministic/DeterministicMap.d.ts.map +1 -0
- package/build/deterministic/DeterministicMap.js +24 -27
- package/build/deterministic/DeterministicMap.js.map +1 -0
- package/build/deterministic/DeterministicSet.d.ts +3 -1
- package/build/deterministic/DeterministicSet.d.ts.map +1 -0
- package/build/deterministic/DeterministicSet.js +6 -0
- package/build/deterministic/DeterministicSet.js.map +1 -0
- package/build/deterministic/ExtendedAddressMap.d.ts +7 -1
- package/build/deterministic/ExtendedAddressMap.d.ts.map +1 -0
- package/build/deterministic/ExtendedAddressMap.js +18 -2
- package/build/deterministic/ExtendedAddressMap.js.map +1 -0
- package/build/deterministic/FastMap.d.ts +7 -1
- package/build/deterministic/FastMap.d.ts.map +1 -0
- package/build/deterministic/FastMap.js +7 -2
- package/build/deterministic/FastMap.js.map +1 -0
- package/build/ecc/backend.d.ts +13 -0
- package/build/ecc/backend.d.ts.map +1 -0
- package/build/ecc/backend.js +15 -0
- package/build/ecc/backend.js.map +1 -0
- package/build/epoch/ChallengeSolution.d.ts +34 -2
- package/build/epoch/ChallengeSolution.d.ts.map +1 -0
- package/build/epoch/ChallengeSolution.js +52 -0
- package/build/epoch/ChallengeSolution.js.map +1 -0
- package/build/epoch/interfaces/IChallengeSolution.d.ts +14 -13
- package/build/epoch/interfaces/IChallengeSolution.d.ts.map +1 -0
- package/build/epoch/interfaces/IChallengeSolution.js +2 -1
- package/build/epoch/interfaces/IChallengeSolution.js.map +1 -0
- package/build/epoch/validator/EpochValidator.d.ts +38 -8
- package/build/epoch/validator/EpochValidator.d.ts.map +1 -0
- package/build/epoch/validator/EpochValidator.js +45 -19
- package/build/epoch/validator/EpochValidator.js.map +1 -0
- package/build/event/NetEvent.d.ts +1 -0
- package/build/event/NetEvent.d.ts.map +1 -0
- package/build/event/NetEvent.js +3 -0
- package/build/event/NetEvent.js.map +1 -0
- package/build/generators/AddressGenerator.d.ts +4 -3
- package/build/generators/AddressGenerator.d.ts.map +1 -0
- package/build/generators/AddressGenerator.js +10 -3
- package/build/generators/AddressGenerator.js.map +1 -0
- package/build/generators/Features.d.ts +4 -3
- package/build/generators/Features.d.ts.map +1 -0
- package/build/generators/Features.js +1 -0
- package/build/generators/Features.js.map +1 -0
- package/build/generators/Generator.d.ts +47 -11
- package/build/generators/Generator.d.ts.map +1 -0
- package/build/generators/Generator.js +48 -12
- package/build/generators/Generator.js.map +1 -0
- package/build/generators/MLDSAData.d.ts +1 -0
- package/build/generators/MLDSAData.d.ts.map +1 -0
- package/build/generators/MLDSAData.js +1 -0
- package/build/generators/MLDSAData.js.map +1 -0
- package/build/generators/builders/CalldataGenerator.d.ts +27 -6
- package/build/generators/builders/CalldataGenerator.d.ts.map +1 -0
- package/build/generators/builders/CalldataGenerator.js +33 -4
- package/build/generators/builders/CalldataGenerator.js.map +1 -0
- package/build/generators/builders/CustomGenerator.d.ts +13 -3
- package/build/generators/builders/CustomGenerator.d.ts.map +1 -0
- package/build/generators/builders/CustomGenerator.js +11 -0
- package/build/generators/builders/CustomGenerator.js.map +1 -0
- package/build/generators/builders/DeploymentGenerator.d.ts +17 -6
- package/build/generators/builders/DeploymentGenerator.d.ts.map +1 -0
- package/build/generators/builders/DeploymentGenerator.js +18 -2
- package/build/generators/builders/DeploymentGenerator.js.map +1 -0
- package/build/generators/builders/HashCommitmentGenerator.d.ts +166 -14
- package/build/generators/builders/HashCommitmentGenerator.d.ts.map +1 -0
- package/build/generators/builders/HashCommitmentGenerator.js +193 -27
- package/build/generators/builders/HashCommitmentGenerator.js.map +1 -0
- package/build/generators/builders/LegacyCalldataGenerator.d.ts +27 -5
- package/build/generators/builders/LegacyCalldataGenerator.d.ts.map +1 -0
- package/build/generators/builders/LegacyCalldataGenerator.js +35 -5
- package/build/generators/builders/LegacyCalldataGenerator.js.map +1 -0
- package/build/generators/builders/MultiSignGenerator.d.ts +6 -1
- package/build/generators/builders/MultiSignGenerator.d.ts.map +1 -0
- package/build/generators/builders/MultiSignGenerator.js +20 -10
- package/build/generators/builders/MultiSignGenerator.js.map +1 -0
- package/build/generators/builders/P2WDAGenerator.d.ts +44 -6
- package/build/generators/builders/P2WDAGenerator.d.ts.map +1 -0
- package/build/generators/builders/P2WDAGenerator.js +41 -2
- package/build/generators/builders/P2WDAGenerator.js.map +1 -0
- package/build/index.d.ts +1 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +1 -0
- package/build/index.js.map +1 -0
- package/build/keypair/Address.d.ts +284 -14
- package/build/keypair/Address.d.ts.map +1 -0
- package/build/keypair/Address.js +446 -128
- package/build/keypair/Address.js.map +1 -0
- package/build/keypair/AddressVerificator.d.ts +7 -6
- package/build/keypair/AddressVerificator.d.ts.map +1 -0
- package/build/keypair/AddressVerificator.js +6 -5
- package/build/keypair/AddressVerificator.js.map +1 -0
- package/build/keypair/EcKeyPair.d.ts +185 -23
- package/build/keypair/EcKeyPair.d.ts.map +1 -0
- package/build/keypair/EcKeyPair.js +219 -50
- package/build/keypair/EcKeyPair.js.map +1 -0
- package/build/keypair/MessageSigner.d.ts +18 -17
- package/build/keypair/MessageSigner.d.ts.map +1 -0
- package/build/keypair/MessageSigner.js +34 -25
- package/build/keypair/MessageSigner.js.map +1 -0
- package/build/keypair/Secp256k1PointDeriver.d.ts +55 -0
- package/build/keypair/Secp256k1PointDeriver.d.ts.map +1 -0
- package/build/keypair/Secp256k1PointDeriver.js +66 -0
- package/build/keypair/Secp256k1PointDeriver.js.map +1 -0
- package/build/keypair/Wallet.d.ts +29 -15
- package/build/keypair/Wallet.d.ts.map +1 -0
- package/build/keypair/Wallet.js +48 -14
- package/build/keypair/Wallet.js.map +1 -0
- package/build/keypair/interfaces/IWallet.d.ts +19 -0
- package/build/keypair/interfaces/IWallet.d.ts.map +1 -0
- package/build/keypair/interfaces/IWallet.js +1 -0
- package/build/keypair/interfaces/IWallet.js.map +1 -0
- package/build/metadata/ContractBaseMetadata.d.ts +10 -2
- package/build/metadata/ContractBaseMetadata.d.ts.map +1 -0
- package/build/metadata/ContractBaseMetadata.js +10 -1
- package/build/metadata/ContractBaseMetadata.js.map +1 -0
- package/build/mnemonic/BIPStandard.d.ts +59 -0
- package/build/mnemonic/BIPStandard.d.ts.map +1 -0
- package/build/mnemonic/BIPStandard.js +59 -0
- package/build/mnemonic/BIPStandard.js.map +1 -0
- package/build/mnemonic/Mnemonic.d.ts +16 -4
- package/build/mnemonic/Mnemonic.d.ts.map +1 -0
- package/build/mnemonic/Mnemonic.js +36 -8
- package/build/mnemonic/Mnemonic.js.map +1 -0
- package/build/mnemonic/MnemonicStrength.d.ts +6 -0
- package/build/mnemonic/MnemonicStrength.d.ts.map +1 -0
- package/build/mnemonic/MnemonicStrength.js +6 -0
- package/build/mnemonic/MnemonicStrength.js.map +1 -0
- package/build/network/ChainId.d.ts +1 -0
- package/build/network/ChainId.d.ts.map +1 -0
- package/build/network/ChainId.js +1 -0
- package/build/network/ChainId.js.map +1 -0
- package/build/opnet.d.ts +26 -3
- package/build/opnet.d.ts.map +1 -0
- package/build/opnet.js +23 -0
- package/build/opnet.js.map +1 -0
- package/build/p2wda/P2WDADetector.d.ts +38 -11
- package/build/p2wda/P2WDADetector.d.ts.map +1 -0
- package/build/p2wda/P2WDADetector.js +43 -10
- package/build/p2wda/P2WDADetector.js.map +1 -0
- package/build/polyfill/disposable.d.ts +16 -0
- package/build/polyfill/disposable.d.ts.map +1 -0
- package/build/polyfill/disposable.js +23 -0
- package/build/polyfill/disposable.js.map +1 -0
- package/build/signer/AddressRotation.d.ts +37 -1
- package/build/signer/AddressRotation.d.ts.map +1 -0
- package/build/signer/AddressRotation.js +16 -0
- package/build/signer/AddressRotation.js.map +1 -0
- package/build/signer/IRotationSigner.d.ts +27 -3
- package/build/signer/IRotationSigner.d.ts.map +1 -0
- package/build/signer/IRotationSigner.js +2 -1
- package/build/signer/IRotationSigner.js.map +1 -0
- package/build/signer/ParallelSignerAdapter.d.ts +14 -0
- package/build/signer/ParallelSignerAdapter.d.ts.map +1 -0
- package/build/signer/ParallelSignerAdapter.js +51 -0
- package/build/signer/ParallelSignerAdapter.js.map +1 -0
- package/build/signer/SignerUtils.d.ts +11 -4
- package/build/signer/SignerUtils.d.ts.map +1 -0
- package/build/signer/SignerUtils.js +16 -0
- package/build/signer/SignerUtils.js.map +1 -0
- package/build/signer/TweakedSigner.d.ts +28 -4
- package/build/signer/TweakedSigner.d.ts.map +1 -0
- package/build/signer/TweakedSigner.js +24 -6
- package/build/signer/TweakedSigner.js.map +1 -0
- package/build/transaction/ContractAddress.d.ts +2 -2
- package/build/transaction/ContractAddress.d.ts.map +1 -0
- package/build/transaction/ContractAddress.js +4 -8
- package/build/transaction/ContractAddress.js.map +1 -0
- package/build/transaction/TransactionFactory.d.ts +147 -9
- package/build/transaction/TransactionFactory.d.ts.map +1 -0
- package/build/transaction/TransactionFactory.js +145 -26
- package/build/transaction/TransactionFactory.js.map +1 -0
- package/build/transaction/browser/BrowserSignerBase.d.ts +12 -6
- package/build/transaction/browser/BrowserSignerBase.d.ts.map +1 -0
- package/build/transaction/browser/BrowserSignerBase.js +7 -0
- package/build/transaction/browser/BrowserSignerBase.js.map +1 -0
- package/build/transaction/browser/WalletNetworks.d.ts +1 -0
- package/build/transaction/browser/WalletNetworks.d.ts.map +1 -0
- package/build/transaction/browser/WalletNetworks.js +1 -0
- package/build/transaction/browser/WalletNetworks.js.map +1 -0
- package/build/transaction/browser/Web3Provider.d.ts +30 -3
- package/build/transaction/browser/Web3Provider.d.ts.map +1 -0
- package/build/transaction/browser/Web3Provider.js +1 -0
- package/build/transaction/browser/Web3Provider.js.map +1 -0
- package/build/transaction/browser/extensions/UnisatSigner.d.ts +11 -9
- package/build/transaction/browser/extensions/UnisatSigner.d.ts.map +1 -0
- package/build/transaction/browser/extensions/UnisatSigner.js +27 -17
- package/build/transaction/browser/extensions/UnisatSigner.js.map +1 -0
- package/build/transaction/browser/extensions/XverseSigner.d.ts +10 -8
- package/build/transaction/browser/extensions/XverseSigner.d.ts.map +1 -0
- package/build/transaction/browser/extensions/XverseSigner.js +25 -15
- package/build/transaction/browser/extensions/XverseSigner.js.map +1 -0
- package/build/transaction/browser/types/OPWallet.d.ts +12 -2
- package/build/transaction/browser/types/OPWallet.d.ts.map +1 -0
- package/build/transaction/browser/types/OPWallet.js +4 -0
- package/build/transaction/browser/types/OPWallet.js.map +1 -0
- package/build/transaction/browser/types/Unisat.d.ts +2 -1
- package/build/transaction/browser/types/Unisat.d.ts.map +1 -0
- package/build/transaction/browser/types/Unisat.js +2 -0
- package/build/transaction/browser/types/Unisat.js.map +1 -0
- package/build/transaction/browser/types/Xverse.d.ts +1 -0
- package/build/transaction/browser/types/Xverse.d.ts.map +1 -0
- package/build/transaction/browser/types/Xverse.js +1 -0
- package/build/transaction/browser/types/Xverse.js.map +1 -0
- package/build/transaction/builders/CancelTransaction.d.ts +31 -6
- package/build/transaction/builders/CancelTransaction.d.ts.map +1 -0
- package/build/transaction/builders/CancelTransaction.js +116 -33
- package/build/transaction/builders/CancelTransaction.js.map +1 -0
- package/build/transaction/builders/ChallengeSolutionTransaction.d.ts +1 -0
- package/build/transaction/builders/ChallengeSolutionTransaction.d.ts.map +1 -0
- package/build/transaction/builders/ChallengeSolutionTransaction.js +88 -0
- package/build/transaction/builders/ChallengeSolutionTransaction.js.map +1 -0
- package/build/transaction/builders/ConsolidatedInteractionTransaction.d.ts +140 -13
- package/build/transaction/builders/ConsolidatedInteractionTransaction.d.ts.map +1 -0
- package/build/transaction/builders/ConsolidatedInteractionTransaction.js +197 -20
- package/build/transaction/builders/ConsolidatedInteractionTransaction.js.map +1 -0
- package/build/transaction/builders/CustomScriptTransaction.d.ts +108 -8
- package/build/transaction/builders/CustomScriptTransaction.d.ts.map +1 -0
- package/build/transaction/builders/CustomScriptTransaction.js +176 -39
- package/build/transaction/builders/CustomScriptTransaction.js.map +1 -0
- package/build/transaction/builders/DeploymentTransaction.d.ts +120 -9
- package/build/transaction/builders/DeploymentTransaction.d.ts.map +1 -0
- package/build/transaction/builders/DeploymentTransaction.js +194 -51
- package/build/transaction/builders/DeploymentTransaction.js.map +1 -0
- package/build/transaction/builders/FundingTransaction.d.ts +5 -4
- package/build/transaction/builders/FundingTransaction.d.ts.map +1 -0
- package/build/transaction/builders/FundingTransaction.js +15 -8
- package/build/transaction/builders/FundingTransaction.js.map +1 -0
- package/build/transaction/builders/InteractionTransaction.d.ts +14 -5
- package/build/transaction/builders/InteractionTransaction.d.ts.map +1 -0
- package/build/transaction/builders/InteractionTransaction.js +18 -5
- package/build/transaction/builders/InteractionTransaction.js.map +1 -0
- package/build/transaction/builders/InteractionTransactionP2WDA.d.ts +58 -7
- package/build/transaction/builders/InteractionTransactionP2WDA.d.ts.map +1 -0
- package/build/transaction/builders/InteractionTransactionP2WDA.js +95 -18
- package/build/transaction/builders/InteractionTransactionP2WDA.js.map +1 -0
- package/build/transaction/builders/MultiSignTransaction.d.ts +126 -17
- package/build/transaction/builders/MultiSignTransaction.d.ts.map +1 -0
- package/build/transaction/builders/MultiSignTransaction.js +201 -76
- package/build/transaction/builders/MultiSignTransaction.js.map +1 -0
- package/build/transaction/builders/SharedInteractionTransaction.d.ts +106 -18
- package/build/transaction/builders/SharedInteractionTransaction.d.ts.map +1 -0
- package/build/transaction/builders/SharedInteractionTransaction.js +158 -40
- package/build/transaction/builders/SharedInteractionTransaction.js.map +1 -0
- package/build/transaction/builders/TransactionBuilder.d.ts +249 -19
- package/build/transaction/builders/TransactionBuilder.d.ts.map +1 -0
- package/build/transaction/builders/TransactionBuilder.js +377 -60
- package/build/transaction/builders/TransactionBuilder.js.map +1 -0
- package/build/transaction/enums/TransactionType.d.ts +1 -0
- package/build/transaction/enums/TransactionType.d.ts.map +1 -0
- package/build/transaction/enums/TransactionType.js +1 -0
- package/build/transaction/enums/TransactionType.js.map +1 -0
- package/build/transaction/interfaces/ICancelTransactionParameters.d.ts +3 -2
- package/build/transaction/interfaces/ICancelTransactionParameters.d.ts.map +1 -0
- package/build/transaction/interfaces/ICancelTransactionParameters.js +1 -0
- package/build/transaction/interfaces/ICancelTransactionParameters.js.map +1 -0
- package/build/transaction/interfaces/IConsolidatedTransactionParameters.d.ts +48 -5
- package/build/transaction/interfaces/IConsolidatedTransactionParameters.d.ts.map +1 -0
- package/build/transaction/interfaces/IConsolidatedTransactionParameters.js +1 -0
- package/build/transaction/interfaces/IConsolidatedTransactionParameters.js.map +1 -0
- package/build/transaction/interfaces/ICustomTransactionParameters.d.ts +7 -5
- package/build/transaction/interfaces/ICustomTransactionParameters.d.ts.map +1 -0
- package/build/transaction/interfaces/ICustomTransactionParameters.js +1 -0
- package/build/transaction/interfaces/ICustomTransactionParameters.js.map +1 -0
- package/build/transaction/interfaces/ITransactionParameters.d.ts +27 -15
- package/build/transaction/interfaces/ITransactionParameters.d.ts.map +1 -0
- package/build/transaction/interfaces/ITransactionParameters.js +1 -0
- package/build/transaction/interfaces/ITransactionParameters.js.map +1 -0
- package/build/transaction/interfaces/ITransactionResponses.d.ts +3 -2
- package/build/transaction/interfaces/ITransactionResponses.d.ts.map +1 -0
- package/build/transaction/interfaces/ITransactionResponses.js +1 -0
- package/build/transaction/interfaces/ITransactionResponses.js.map +1 -0
- package/build/transaction/interfaces/ITweakedTransactionData.d.ts +21 -8
- package/build/transaction/interfaces/ITweakedTransactionData.d.ts.map +1 -0
- package/build/transaction/interfaces/ITweakedTransactionData.js +1 -0
- package/build/transaction/interfaces/ITweakedTransactionData.js.map +1 -0
- package/build/transaction/interfaces/IWeb3ProviderTypes.d.ts +29 -3
- package/build/transaction/interfaces/IWeb3ProviderTypes.d.ts.map +1 -0
- package/build/transaction/interfaces/IWeb3ProviderTypes.js +2 -1
- package/build/transaction/interfaces/IWeb3ProviderTypes.js.map +1 -0
- package/build/transaction/interfaces/Tap.d.ts +4 -3
- package/build/transaction/interfaces/Tap.d.ts.map +1 -0
- package/build/transaction/interfaces/Tap.js +1 -0
- package/build/transaction/interfaces/Tap.js.map +1 -0
- package/build/transaction/mineable/IP2WSHAddress.d.ts +2 -1
- package/build/transaction/mineable/IP2WSHAddress.d.ts.map +1 -0
- package/build/transaction/mineable/IP2WSHAddress.js +1 -0
- package/build/transaction/mineable/IP2WSHAddress.js.map +1 -0
- package/build/transaction/mineable/TimelockGenerator.d.ts +13 -4
- package/build/transaction/mineable/TimelockGenerator.d.ts.map +1 -0
- package/build/transaction/mineable/TimelockGenerator.js +12 -3
- package/build/transaction/mineable/TimelockGenerator.js.map +1 -0
- package/build/transaction/offline/OfflineTransactionManager.d.ts +193 -12
- package/build/transaction/offline/OfflineTransactionManager.d.ts.map +1 -0
- package/build/transaction/offline/OfflineTransactionManager.js +192 -8
- package/build/transaction/offline/OfflineTransactionManager.js.map +1 -0
- package/build/transaction/offline/TransactionReconstructor.d.ts +56 -6
- package/build/transaction/offline/TransactionReconstructor.d.ts.map +1 -0
- package/build/transaction/offline/TransactionReconstructor.js +111 -75
- package/build/transaction/offline/TransactionReconstructor.js.map +1 -0
- package/build/transaction/offline/TransactionSerializer.d.ts +54 -3
- package/build/transaction/offline/TransactionSerializer.d.ts.map +1 -0
- package/build/transaction/offline/TransactionSerializer.js +206 -95
- package/build/transaction/offline/TransactionSerializer.js.map +1 -0
- package/build/transaction/offline/TransactionStateCapture.d.ts +66 -7
- package/build/transaction/offline/TransactionStateCapture.d.ts.map +1 -0
- package/build/transaction/offline/TransactionStateCapture.js +124 -60
- package/build/transaction/offline/TransactionStateCapture.js.map +1 -0
- package/build/transaction/offline/interfaces/ISerializableState.d.ts +72 -1
- package/build/transaction/offline/interfaces/ISerializableState.d.ts.map +1 -0
- package/build/transaction/offline/interfaces/ISerializableState.js +10 -1
- package/build/transaction/offline/interfaces/ISerializableState.js.map +1 -0
- package/build/transaction/offline/interfaces/ITypeSpecificData.d.ts +77 -1
- package/build/transaction/offline/interfaces/ITypeSpecificData.d.ts.map +1 -0
- package/build/transaction/offline/interfaces/ITypeSpecificData.js +19 -0
- package/build/transaction/offline/interfaces/ITypeSpecificData.js.map +1 -0
- package/build/transaction/psbt/PSBTTypes.d.ts +1 -0
- package/build/transaction/psbt/PSBTTypes.d.ts.map +1 -0
- package/build/transaction/psbt/PSBTTypes.js +1 -0
- package/build/transaction/psbt/PSBTTypes.js.map +1 -0
- package/build/transaction/shared/P2TR_MS.d.ts +11 -2
- package/build/transaction/shared/P2TR_MS.d.ts.map +1 -0
- package/build/transaction/shared/P2TR_MS.js +10 -0
- package/build/transaction/shared/P2TR_MS.js.map +1 -0
- package/build/transaction/shared/TweakedTransaction.d.ts +281 -38
- package/build/transaction/shared/TweakedTransaction.d.ts.map +1 -0
- package/build/transaction/shared/TweakedTransaction.js +576 -114
- package/build/transaction/shared/TweakedTransaction.js.map +1 -0
- package/build/transaction/utils/WitnessUtils.d.ts +7 -1
- package/build/transaction/utils/WitnessUtils.d.ts.map +1 -0
- package/build/transaction/utils/WitnessUtils.js +17 -3
- package/build/transaction/utils/WitnessUtils.js.map +1 -0
- package/build/tsconfig.build.tsbuildinfo +1 -1
- package/build/utils/BitcoinUtils.d.ts +19 -0
- package/build/utils/BitcoinUtils.d.ts.map +1 -0
- package/build/utils/BitcoinUtils.js +19 -0
- package/build/utils/BitcoinUtils.js.map +1 -0
- package/build/utils/BufferHelper.d.ts +2 -1
- package/build/utils/BufferHelper.d.ts.map +1 -0
- package/build/utils/BufferHelper.js +38 -32
- package/build/utils/BufferHelper.js.map +1 -0
- package/build/utils/StringToBuffer.d.ts +1 -0
- package/build/utils/StringToBuffer.d.ts.map +1 -0
- package/build/utils/StringToBuffer.js +1 -0
- package/build/utils/StringToBuffer.js.map +1 -0
- package/build/utils/lengths.d.ts +1 -0
- package/build/utils/lengths.d.ts.map +1 -0
- package/build/utils/lengths.js +1 -0
- package/build/utils/lengths.js.map +1 -0
- package/build/utils/types.d.ts +1 -0
- package/build/utils/types.d.ts.map +1 -0
- package/build/utils/types.js +2 -1
- package/build/utils/types.js.map +1 -0
- package/build/utxo/OPNetLimitedProvider.d.ts +39 -3
- package/build/utxo/OPNetLimitedProvider.d.ts.map +1 -0
- package/build/utxo/OPNetLimitedProvider.js +41 -3
- package/build/utxo/OPNetLimitedProvider.js.map +1 -0
- package/build/utxo/interfaces/BroadcastResponse.d.ts +1 -0
- package/build/utxo/interfaces/BroadcastResponse.d.ts.map +1 -0
- package/build/utxo/interfaces/BroadcastResponse.js +1 -0
- package/build/utxo/interfaces/BroadcastResponse.js.map +1 -0
- package/build/utxo/interfaces/IUTXO.d.ts +13 -7
- package/build/utxo/interfaces/IUTXO.d.ts.map +1 -0
- package/build/utxo/interfaces/IUTXO.js +1 -0
- package/build/utxo/interfaces/IUTXO.js.map +1 -0
- package/build/verification/TapscriptVerificator.d.ts +12 -10
- package/build/verification/TapscriptVerificator.d.ts.map +1 -0
- package/build/verification/TapscriptVerificator.js +28 -38
- package/build/verification/TapscriptVerificator.js.map +1 -0
- package/eslint.config.js +0 -1
- package/package.json +12 -35
- package/src/abi/ABICoder.ts +0 -13
- package/src/branded/Branded.ts +5 -0
- package/src/buffer/BinaryReader.ts +7 -7
- package/src/buffer/BinaryWriter.ts +29 -24
- package/src/bytecode/Compressor.ts +1 -1
- package/src/chain/ChainData.ts +34 -27
- package/src/consensus/ConsensusConfig.ts +1 -1
- package/src/consensus/IConsensusConfig.ts +0 -17
- package/src/consensus/metadata/RoswellConsensus.ts +1 -17
- package/src/deterministic/AddressMap.ts +5 -1
- package/src/deterministic/AddressSet.ts +5 -1
- package/src/deterministic/CustomMap.ts +6 -2
- package/src/deterministic/DeterministicMap.ts +8 -4
- package/src/deterministic/DeterministicSet.ts +6 -2
- package/src/deterministic/ExtendedAddressMap.ts +9 -4
- package/src/deterministic/FastMap.ts +9 -5
- package/src/ecc/backend.ts +17 -0
- package/src/epoch/ChallengeSolution.ts +3 -3
- package/src/epoch/interfaces/IChallengeSolution.ts +13 -13
- package/src/epoch/validator/EpochValidator.ts +24 -43
- package/src/generators/AddressGenerator.ts +6 -6
- package/src/generators/Features.ts +3 -3
- package/src/generators/Generator.ts +42 -26
- package/src/generators/builders/CalldataGenerator.ts +26 -24
- package/src/generators/builders/CustomGenerator.ts +4 -4
- package/src/generators/builders/DeploymentGenerator.ts +25 -23
- package/src/generators/builders/HashCommitmentGenerator.ts +31 -31
- package/src/generators/builders/LegacyCalldataGenerator.ts +26 -24
- package/src/generators/builders/MultiSignGenerator.ts +12 -12
- package/src/generators/builders/P2WDAGenerator.ts +10 -10
- package/src/keypair/Address.ts +114 -71
- package/src/keypair/AddressVerificator.ts +16 -147
- package/src/keypair/EcKeyPair.ts +105 -114
- package/src/keypair/MessageSigner.ts +70 -150
- package/src/keypair/Wallet.ts +59 -240
- package/src/metadata/ContractBaseMetadata.ts +2 -2
- package/src/mnemonic/Mnemonic.ts +32 -221
- package/src/opnet.ts +12 -6
- package/src/p2wda/P2WDADetector.ts +23 -72
- package/src/polyfill/disposable.ts +29 -0
- package/src/signer/AddressRotation.ts +1 -1
- package/src/signer/IRotationSigner.ts +3 -3
- package/src/signer/ParallelSignerAdapter.ts +59 -0
- package/src/signer/SignerUtils.ts +4 -4
- package/src/signer/TweakedSigner.ts +28 -13
- package/src/transaction/ContractAddress.ts +3 -7
- package/src/transaction/TransactionFactory.ts +28 -50
- package/src/transaction/browser/BrowserSignerBase.ts +12 -6
- package/src/transaction/browser/Web3Provider.ts +3 -3
- package/src/transaction/browser/extensions/UnisatSigner.ts +52 -48
- package/src/transaction/browser/extensions/XverseSigner.ts +55 -38
- package/src/transaction/browser/types/OPWallet.ts +2 -2
- package/src/transaction/browser/types/Unisat.ts +1 -1
- package/src/transaction/builders/CancelTransaction.ts +59 -24
- package/src/transaction/builders/ChallengeSolutionTransaction.ts +3 -3
- package/src/transaction/builders/ConsolidatedInteractionTransaction.ts +39 -34
- package/src/transaction/builders/CustomScriptTransaction.ts +79 -56
- package/src/transaction/builders/DeploymentTransaction.ts +82 -63
- package/src/transaction/builders/FundingTransaction.ts +11 -11
- package/src/transaction/builders/InteractionTransaction.ts +10 -10
- package/src/transaction/builders/InteractionTransactionP2WDA.ts +38 -40
- package/src/transaction/builders/MultiSignTransaction.ts +68 -61
- package/src/transaction/builders/SharedInteractionTransaction.ts +81 -57
- package/src/transaction/builders/TransactionBuilder.ts +101 -79
- package/src/transaction/interfaces/ICancelTransactionParameters.ts +2 -2
- package/src/transaction/interfaces/IConsolidatedTransactionParameters.ts +5 -5
- package/src/transaction/interfaces/ICustomTransactionParameters.ts +5 -5
- package/src/transaction/interfaces/ITransactionParameters.ts +15 -15
- package/src/transaction/interfaces/ITransactionResponses.ts +2 -2
- package/src/transaction/interfaces/ITweakedTransactionData.ts +17 -8
- package/src/transaction/interfaces/IWeb3ProviderTypes.ts +3 -3
- package/src/transaction/interfaces/Tap.ts +3 -3
- package/src/transaction/mineable/IP2WSHAddress.ts +1 -1
- package/src/transaction/mineable/TimelockGenerator.ts +19 -12
- package/src/transaction/offline/OfflineTransactionManager.ts +22 -23
- package/src/transaction/offline/TransactionReconstructor.ts +83 -91
- package/src/transaction/offline/TransactionSerializer.ts +151 -101
- package/src/transaction/offline/TransactionStateCapture.ts +83 -79
- package/src/transaction/offline/interfaces/ISerializableState.ts +1 -1
- package/src/transaction/offline/interfaces/ITypeSpecificData.ts +1 -1
- package/src/transaction/shared/P2TR_MS.ts +4 -4
- package/src/transaction/shared/TweakedTransaction.ts +326 -124
- package/src/transaction/utils/WitnessUtils.ts +18 -9
- package/src/utils/BufferHelper.ts +39 -37
- package/src/utxo/OPNetLimitedProvider.ts +7 -7
- package/src/utxo/interfaces/IUTXO.ts +7 -7
- package/src/verification/TapscriptVerificator.ts +73 -86
- package/test/address-rotation.test.ts +24 -24
- package/test/address.test.ts +12 -12
- package/test/addressmap.test.ts +30 -30
- package/test/binary-reader-writer.test.ts +8 -8
- package/test/browser/offline-transaction.test.ts +2206 -0
- package/test/browser/parallel-signing.test.ts +316 -0
- package/test/browser/setup.ts +11 -0
- package/test/browser/transaction-signing.test.ts +416 -0
- package/test/buffer-helper.test.ts +287 -0
- package/test/derivePath.test.ts +4 -3
- package/test/disposable.test.ts +279 -0
- package/test/fastmap-setall.test.ts +1 -1
- package/test/fastmap.test.ts +3 -3
- package/test/messagesigner-mldsa.test.ts +3 -3
- package/test/messagesigner-schnorr.test.ts +9 -9
- package/test/offline-transaction.test.ts +461 -288
- package/test/old/FastBigIntMap.ts +3 -3
- package/test/oldfastmap.test.ts +6 -6
- package/test/transaction-builders.test.ts +321 -0
- package/tsconfig.base.json +34 -18
- package/tsconfig.browser.json +15 -0
- package/tsconfig.json +3 -8
- package/vite.config.browser.ts +4 -5
- package/vitest.config.browser.ts +68 -0
- package/vitest.config.ts +1 -1
- package/browser/valibot.js +0 -4948
- package/tsconfig.webpack.json +0 -18
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { createHash } from 'crypto';
|
|
2
|
+
import { toHex, fromHex } from '@btc-vision/bitcoin';
|
|
2
3
|
import { BinaryWriter } from '../../buffer/BinaryWriter.js';
|
|
3
4
|
import { BinaryReader } from '../../buffer/BinaryReader.js';
|
|
4
|
-
import {
|
|
5
|
+
import type {
|
|
5
6
|
ISerializableTransactionState,
|
|
6
7
|
PrecomputedData,
|
|
7
|
-
SERIALIZATION_FORMAT_VERSION,
|
|
8
|
-
SERIALIZATION_MAGIC_BYTE,
|
|
9
8
|
SerializationHeader,
|
|
10
9
|
SerializedBaseParams,
|
|
11
10
|
SerializedOutput,
|
|
@@ -13,6 +12,10 @@ import {
|
|
|
13
12
|
SerializedUTXO,
|
|
14
13
|
} from './interfaces/ISerializableState.js';
|
|
15
14
|
import {
|
|
15
|
+
SERIALIZATION_FORMAT_VERSION,
|
|
16
|
+
SERIALIZATION_MAGIC_BYTE,
|
|
17
|
+
} from './interfaces/ISerializableState.js';
|
|
18
|
+
import type {
|
|
16
19
|
CancelSpecificData,
|
|
17
20
|
CustomScriptSpecificData,
|
|
18
21
|
DeploymentSpecificData,
|
|
@@ -24,7 +27,10 @@ import {
|
|
|
24
27
|
TypeSpecificData,
|
|
25
28
|
} from './interfaces/ITypeSpecificData.js';
|
|
26
29
|
import { TransactionType } from '../enums/TransactionType.js';
|
|
27
|
-
import {
|
|
30
|
+
import type {
|
|
31
|
+
RawChallenge,
|
|
32
|
+
RawChallengeVerification,
|
|
33
|
+
} from '../../epoch/interfaces/IChallengeSolution.js';
|
|
28
34
|
|
|
29
35
|
/**
|
|
30
36
|
* Serializes and deserializes transaction state for offline signing.
|
|
@@ -34,9 +40,9 @@ export class TransactionSerializer {
|
|
|
34
40
|
/**
|
|
35
41
|
* Serialize transaction state to binary format
|
|
36
42
|
* @param state - The transaction state to serialize
|
|
37
|
-
* @returns
|
|
43
|
+
* @returns Uint8Array containing serialized state with checksum
|
|
38
44
|
*/
|
|
39
|
-
public static serialize(state: ISerializableTransactionState):
|
|
45
|
+
public static serialize(state: ISerializableTransactionState): Uint8Array {
|
|
40
46
|
const writer = new BinaryWriter();
|
|
41
47
|
|
|
42
48
|
// Write header
|
|
@@ -63,19 +69,23 @@ export class TransactionSerializer {
|
|
|
63
69
|
this.writePrecomputedData(writer, state.precomputedData);
|
|
64
70
|
|
|
65
71
|
// Get buffer and calculate checksum
|
|
66
|
-
const dataBuffer =
|
|
72
|
+
const dataBuffer = writer.getBuffer();
|
|
67
73
|
const checksum = this.calculateChecksum(dataBuffer);
|
|
68
74
|
|
|
69
|
-
|
|
75
|
+
// Concatenate data + checksum
|
|
76
|
+
const result = new Uint8Array(dataBuffer.length + checksum.length);
|
|
77
|
+
result.set(dataBuffer, 0);
|
|
78
|
+
result.set(checksum, dataBuffer.length);
|
|
79
|
+
return result;
|
|
70
80
|
}
|
|
71
81
|
|
|
72
82
|
/**
|
|
73
83
|
* Deserialize binary format to transaction state
|
|
74
|
-
* @param data -
|
|
84
|
+
* @param data - Uint8Array containing serialized state
|
|
75
85
|
* @returns Deserialized transaction state
|
|
76
86
|
* @throws Error if checksum validation fails or format is invalid
|
|
77
87
|
*/
|
|
78
|
-
public static deserialize(data:
|
|
88
|
+
public static deserialize(data: Uint8Array): ISerializableTransactionState {
|
|
79
89
|
// Verify checksum (last 32 bytes)
|
|
80
90
|
if (data.length < 32) {
|
|
81
91
|
throw new Error('Invalid serialized data: too short');
|
|
@@ -85,7 +95,7 @@ export class TransactionSerializer {
|
|
|
85
95
|
const payload = data.subarray(0, -32);
|
|
86
96
|
const expectedChecksum = this.calculateChecksum(payload);
|
|
87
97
|
|
|
88
|
-
if (!
|
|
98
|
+
if (!this.bytesEqual(checksum, expectedChecksum)) {
|
|
89
99
|
throw new Error('Invalid checksum - data may be corrupted');
|
|
90
100
|
}
|
|
91
101
|
|
|
@@ -138,7 +148,8 @@ export class TransactionSerializer {
|
|
|
138
148
|
* @returns Base64-encoded string
|
|
139
149
|
*/
|
|
140
150
|
public static toBase64(state: ISerializableTransactionState): string {
|
|
141
|
-
|
|
151
|
+
const bytes = this.serialize(state);
|
|
152
|
+
return this.uint8ArrayToBase64(bytes);
|
|
142
153
|
}
|
|
143
154
|
|
|
144
155
|
/**
|
|
@@ -147,7 +158,7 @@ export class TransactionSerializer {
|
|
|
147
158
|
* @returns Deserialized transaction state
|
|
148
159
|
*/
|
|
149
160
|
public static fromBase64(base64: string): ISerializableTransactionState {
|
|
150
|
-
return this.deserialize(
|
|
161
|
+
return this.deserialize(this.base64ToUint8Array(base64));
|
|
151
162
|
}
|
|
152
163
|
|
|
153
164
|
/**
|
|
@@ -156,7 +167,7 @@ export class TransactionSerializer {
|
|
|
156
167
|
* @returns Hex-encoded string
|
|
157
168
|
*/
|
|
158
169
|
public static toHex(state: ISerializableTransactionState): string {
|
|
159
|
-
return this.serialize(state)
|
|
170
|
+
return toHex(this.serialize(state));
|
|
160
171
|
}
|
|
161
172
|
|
|
162
173
|
/**
|
|
@@ -165,7 +176,7 @@ export class TransactionSerializer {
|
|
|
165
176
|
* @returns Deserialized transaction state
|
|
166
177
|
*/
|
|
167
178
|
public static fromHex(hex: string): ISerializableTransactionState {
|
|
168
|
-
return this.deserialize(
|
|
179
|
+
return this.deserialize(fromHex(hex));
|
|
169
180
|
}
|
|
170
181
|
|
|
171
182
|
private static writeHeader(writer: BinaryWriter, header: SerializationHeader): void {
|
|
@@ -207,7 +218,7 @@ export class TransactionSerializer {
|
|
|
207
218
|
writer.writeU8(params.txVersion);
|
|
208
219
|
writer.writeBoolean(params.note !== undefined);
|
|
209
220
|
if (params.note !== undefined) {
|
|
210
|
-
writer.writeBytesWithLength(
|
|
221
|
+
writer.writeBytesWithLength(fromHex(params.note));
|
|
211
222
|
}
|
|
212
223
|
writer.writeBoolean(params.anchor);
|
|
213
224
|
writer.writeBoolean(params.debugFees ?? false);
|
|
@@ -224,22 +235,22 @@ export class TransactionSerializer {
|
|
|
224
235
|
const txVersion = reader.readU8();
|
|
225
236
|
const hasNote = reader.readBoolean();
|
|
226
237
|
const note = hasNote
|
|
227
|
-
?
|
|
238
|
+
? toHex(reader.readBytesWithLength())
|
|
228
239
|
: undefined;
|
|
229
240
|
const anchor = reader.readBoolean();
|
|
230
241
|
const debugFees = reader.readBoolean();
|
|
231
242
|
|
|
232
243
|
return {
|
|
233
244
|
from,
|
|
234
|
-
to,
|
|
235
245
|
feeRate,
|
|
236
246
|
priorityFee,
|
|
237
247
|
gasSatFee,
|
|
238
248
|
networkName,
|
|
239
249
|
txVersion,
|
|
240
|
-
note,
|
|
241
250
|
anchor,
|
|
242
251
|
debugFees,
|
|
252
|
+
...(to !== undefined ? { to } : {}),
|
|
253
|
+
...(note !== undefined ? { note } : {}),
|
|
243
254
|
};
|
|
244
255
|
}
|
|
245
256
|
|
|
@@ -252,10 +263,10 @@ export class TransactionSerializer {
|
|
|
252
263
|
|
|
253
264
|
private static writeUTXO(writer: BinaryWriter, utxo: SerializedUTXO): void {
|
|
254
265
|
// Transaction ID (32 bytes)
|
|
255
|
-
writer.writeBytes(
|
|
266
|
+
writer.writeBytes(fromHex(utxo.transactionId));
|
|
256
267
|
writer.writeU32(utxo.outputIndex);
|
|
257
268
|
writer.writeU64(BigInt(utxo.value));
|
|
258
|
-
writer.writeBytesWithLength(
|
|
269
|
+
writer.writeBytesWithLength(fromHex(utxo.scriptPubKeyHex));
|
|
259
270
|
|
|
260
271
|
// Optional address
|
|
261
272
|
writer.writeBoolean(utxo.scriptPubKeyAddress !== undefined);
|
|
@@ -266,17 +277,17 @@ export class TransactionSerializer {
|
|
|
266
277
|
// Optional scripts
|
|
267
278
|
writer.writeBoolean(utxo.redeemScript !== undefined);
|
|
268
279
|
if (utxo.redeemScript !== undefined) {
|
|
269
|
-
writer.writeBytesWithLength(
|
|
280
|
+
writer.writeBytesWithLength(fromHex(utxo.redeemScript));
|
|
270
281
|
}
|
|
271
282
|
|
|
272
283
|
writer.writeBoolean(utxo.witnessScript !== undefined);
|
|
273
284
|
if (utxo.witnessScript !== undefined) {
|
|
274
|
-
writer.writeBytesWithLength(
|
|
285
|
+
writer.writeBytesWithLength(fromHex(utxo.witnessScript));
|
|
275
286
|
}
|
|
276
287
|
|
|
277
288
|
writer.writeBoolean(utxo.nonWitnessUtxo !== undefined);
|
|
278
289
|
if (utxo.nonWitnessUtxo !== undefined) {
|
|
279
|
-
writer.writeBytesWithLength(
|
|
290
|
+
writer.writeBytesWithLength(fromHex(utxo.nonWitnessUtxo));
|
|
280
291
|
}
|
|
281
292
|
}
|
|
282
293
|
|
|
@@ -290,27 +301,27 @@ export class TransactionSerializer {
|
|
|
290
301
|
}
|
|
291
302
|
|
|
292
303
|
private static readUTXO(reader: BinaryReader): SerializedUTXO {
|
|
293
|
-
const transactionId =
|
|
304
|
+
const transactionId = toHex(reader.readBytes(32));
|
|
294
305
|
const outputIndex = reader.readU32();
|
|
295
306
|
const value = reader.readU64().toString();
|
|
296
|
-
const scriptPubKeyHex =
|
|
307
|
+
const scriptPubKeyHex = toHex(reader.readBytesWithLength());
|
|
297
308
|
|
|
298
309
|
const hasAddress = reader.readBoolean();
|
|
299
310
|
const scriptPubKeyAddress = hasAddress ? reader.readStringWithLength() : undefined;
|
|
300
311
|
|
|
301
312
|
const hasRedeemScript = reader.readBoolean();
|
|
302
313
|
const redeemScript = hasRedeemScript
|
|
303
|
-
?
|
|
314
|
+
? toHex(reader.readBytesWithLength())
|
|
304
315
|
: undefined;
|
|
305
316
|
|
|
306
317
|
const hasWitnessScript = reader.readBoolean();
|
|
307
318
|
const witnessScript = hasWitnessScript
|
|
308
|
-
?
|
|
319
|
+
? toHex(reader.readBytesWithLength())
|
|
309
320
|
: undefined;
|
|
310
321
|
|
|
311
322
|
const hasNonWitnessUtxo = reader.readBoolean();
|
|
312
323
|
const nonWitnessUtxo = hasNonWitnessUtxo
|
|
313
|
-
?
|
|
324
|
+
? toHex(reader.readBytesWithLength())
|
|
314
325
|
: undefined;
|
|
315
326
|
|
|
316
327
|
return {
|
|
@@ -318,10 +329,10 @@ export class TransactionSerializer {
|
|
|
318
329
|
outputIndex,
|
|
319
330
|
value,
|
|
320
331
|
scriptPubKeyHex,
|
|
321
|
-
scriptPubKeyAddress,
|
|
322
|
-
redeemScript,
|
|
323
|
-
witnessScript,
|
|
324
|
-
nonWitnessUtxo,
|
|
332
|
+
...(scriptPubKeyAddress !== undefined ? { scriptPubKeyAddress } : {}),
|
|
333
|
+
...(redeemScript !== undefined ? { redeemScript } : {}),
|
|
334
|
+
...(witnessScript !== undefined ? { witnessScript } : {}),
|
|
335
|
+
...(nonWitnessUtxo !== undefined ? { nonWitnessUtxo } : {}),
|
|
325
336
|
};
|
|
326
337
|
}
|
|
327
338
|
|
|
@@ -342,12 +353,12 @@ export class TransactionSerializer {
|
|
|
342
353
|
|
|
343
354
|
writer.writeBoolean(output.script !== undefined);
|
|
344
355
|
if (output.script !== undefined) {
|
|
345
|
-
writer.writeBytesWithLength(
|
|
356
|
+
writer.writeBytesWithLength(fromHex(output.script));
|
|
346
357
|
}
|
|
347
358
|
|
|
348
359
|
writer.writeBoolean(output.tapInternalKey !== undefined);
|
|
349
360
|
if (output.tapInternalKey !== undefined) {
|
|
350
|
-
writer.writeBytesWithLength(
|
|
361
|
+
writer.writeBytesWithLength(fromHex(output.tapInternalKey));
|
|
351
362
|
}
|
|
352
363
|
}
|
|
353
364
|
|
|
@@ -368,15 +379,20 @@ export class TransactionSerializer {
|
|
|
368
379
|
|
|
369
380
|
const hasScript = reader.readBoolean();
|
|
370
381
|
const script = hasScript
|
|
371
|
-
?
|
|
382
|
+
? toHex(reader.readBytesWithLength())
|
|
372
383
|
: undefined;
|
|
373
384
|
|
|
374
385
|
const hasTapInternalKey = reader.readBoolean();
|
|
375
386
|
const tapInternalKey = hasTapInternalKey
|
|
376
|
-
?
|
|
387
|
+
? toHex(reader.readBytesWithLength())
|
|
377
388
|
: undefined;
|
|
378
389
|
|
|
379
|
-
return {
|
|
390
|
+
return {
|
|
391
|
+
value,
|
|
392
|
+
...(address !== undefined ? { address } : {}),
|
|
393
|
+
...(script !== undefined ? { script } : {}),
|
|
394
|
+
...(tapInternalKey !== undefined ? { tapInternalKey } : {}),
|
|
395
|
+
};
|
|
380
396
|
}
|
|
381
397
|
|
|
382
398
|
private static writeSignerMappings(
|
|
@@ -471,48 +487,48 @@ export class TransactionSerializer {
|
|
|
471
487
|
|
|
472
488
|
// Deployment
|
|
473
489
|
private static writeDeploymentData(writer: BinaryWriter, data: DeploymentSpecificData): void {
|
|
474
|
-
writer.writeBytesWithLength(
|
|
490
|
+
writer.writeBytesWithLength(fromHex(data.bytecode));
|
|
475
491
|
writer.writeBoolean(data.calldata !== undefined);
|
|
476
492
|
if (data.calldata !== undefined) {
|
|
477
|
-
writer.writeBytesWithLength(
|
|
493
|
+
writer.writeBytesWithLength(fromHex(data.calldata));
|
|
478
494
|
}
|
|
479
495
|
this.writeChallenge(writer, data.challenge);
|
|
480
496
|
writer.writeBoolean(data.revealMLDSAPublicKey ?? false);
|
|
481
497
|
writer.writeBoolean(data.linkMLDSAPublicKeyToAddress ?? false);
|
|
482
498
|
writer.writeBoolean(data.hashedPublicKey !== undefined);
|
|
483
499
|
if (data.hashedPublicKey !== undefined) {
|
|
484
|
-
writer.writeBytesWithLength(
|
|
500
|
+
writer.writeBytesWithLength(fromHex(data.hashedPublicKey));
|
|
485
501
|
}
|
|
486
502
|
}
|
|
487
503
|
|
|
488
504
|
private static readDeploymentData(reader: BinaryReader): DeploymentSpecificData {
|
|
489
|
-
const bytecode =
|
|
505
|
+
const bytecode = toHex(reader.readBytesWithLength());
|
|
490
506
|
const hasCalldata = reader.readBoolean();
|
|
491
507
|
const calldata = hasCalldata
|
|
492
|
-
?
|
|
508
|
+
? toHex(reader.readBytesWithLength())
|
|
493
509
|
: undefined;
|
|
494
510
|
const challenge = this.readChallenge(reader);
|
|
495
511
|
const revealMLDSAPublicKey = reader.readBoolean();
|
|
496
512
|
const linkMLDSAPublicKeyToAddress = reader.readBoolean();
|
|
497
513
|
const hasHashedPublicKey = reader.readBoolean();
|
|
498
514
|
const hashedPublicKey = hasHashedPublicKey
|
|
499
|
-
?
|
|
515
|
+
? toHex(reader.readBytesWithLength())
|
|
500
516
|
: undefined;
|
|
501
517
|
|
|
502
518
|
return {
|
|
503
519
|
type: TransactionType.DEPLOYMENT,
|
|
504
520
|
bytecode,
|
|
505
|
-
calldata,
|
|
506
521
|
challenge,
|
|
507
522
|
revealMLDSAPublicKey,
|
|
508
523
|
linkMLDSAPublicKeyToAddress,
|
|
509
|
-
|
|
524
|
+
...(calldata !== undefined ? { calldata } : {}),
|
|
525
|
+
...(hashedPublicKey !== undefined ? { hashedPublicKey } : {}),
|
|
510
526
|
};
|
|
511
527
|
}
|
|
512
528
|
|
|
513
529
|
// Interaction
|
|
514
530
|
private static writeInteractionData(writer: BinaryWriter, data: InteractionSpecificData): void {
|
|
515
|
-
writer.writeBytesWithLength(
|
|
531
|
+
writer.writeBytesWithLength(fromHex(data.calldata));
|
|
516
532
|
writer.writeBoolean(data.contract !== undefined);
|
|
517
533
|
if (data.contract !== undefined) {
|
|
518
534
|
writer.writeStringWithLength(data.contract);
|
|
@@ -528,12 +544,12 @@ export class TransactionSerializer {
|
|
|
528
544
|
writer.writeBoolean(data.linkMLDSAPublicKeyToAddress ?? false);
|
|
529
545
|
writer.writeBoolean(data.hashedPublicKey !== undefined);
|
|
530
546
|
if (data.hashedPublicKey !== undefined) {
|
|
531
|
-
writer.writeBytesWithLength(
|
|
547
|
+
writer.writeBytesWithLength(fromHex(data.hashedPublicKey));
|
|
532
548
|
}
|
|
533
549
|
}
|
|
534
550
|
|
|
535
551
|
private static readInteractionData(reader: BinaryReader): InteractionSpecificData {
|
|
536
|
-
const calldata =
|
|
552
|
+
const calldata = toHex(reader.readBytesWithLength());
|
|
537
553
|
const hasContract = reader.readBoolean();
|
|
538
554
|
const contract = hasContract ? reader.readStringWithLength() : undefined;
|
|
539
555
|
const challenge = this.readChallenge(reader);
|
|
@@ -545,20 +561,20 @@ export class TransactionSerializer {
|
|
|
545
561
|
const linkMLDSAPublicKeyToAddress = reader.readBoolean();
|
|
546
562
|
const hasHashedPublicKey = reader.readBoolean();
|
|
547
563
|
const hashedPublicKey = hasHashedPublicKey
|
|
548
|
-
?
|
|
564
|
+
? toHex(reader.readBytesWithLength())
|
|
549
565
|
: undefined;
|
|
550
566
|
|
|
551
567
|
return {
|
|
552
568
|
type: TransactionType.INTERACTION,
|
|
553
569
|
calldata,
|
|
554
|
-
contract,
|
|
555
570
|
challenge,
|
|
556
|
-
loadedStorage,
|
|
557
571
|
isCancellation,
|
|
558
572
|
disableAutoRefund,
|
|
559
573
|
revealMLDSAPublicKey,
|
|
560
574
|
linkMLDSAPublicKeyToAddress,
|
|
561
|
-
|
|
575
|
+
...(contract !== undefined ? { contract } : {}),
|
|
576
|
+
...(loadedStorage !== undefined ? { loadedStorage } : {}),
|
|
577
|
+
...(hashedPublicKey !== undefined ? { hashedPublicKey } : {}),
|
|
562
578
|
};
|
|
563
579
|
}
|
|
564
580
|
|
|
@@ -566,7 +582,7 @@ export class TransactionSerializer {
|
|
|
566
582
|
private static writeMultiSigData(writer: BinaryWriter, data: MultiSigSpecificData): void {
|
|
567
583
|
writer.writeU16(data.pubkeys.length);
|
|
568
584
|
for (const pubkey of data.pubkeys) {
|
|
569
|
-
writer.writeBytesWithLength(
|
|
585
|
+
writer.writeBytesWithLength(fromHex(pubkey));
|
|
570
586
|
}
|
|
571
587
|
writer.writeU8(data.minimumSignatures);
|
|
572
588
|
writer.writeStringWithLength(data.receiver);
|
|
@@ -583,7 +599,7 @@ export class TransactionSerializer {
|
|
|
583
599
|
const pubkeysCount = reader.readU16();
|
|
584
600
|
const pubkeys: string[] = [];
|
|
585
601
|
for (let i = 0; i < pubkeysCount; i++) {
|
|
586
|
-
pubkeys.push(
|
|
602
|
+
pubkeys.push(toHex(reader.readBytesWithLength()));
|
|
587
603
|
}
|
|
588
604
|
const minimumSignatures = reader.readU8();
|
|
589
605
|
const receiver = reader.readStringWithLength();
|
|
@@ -601,7 +617,7 @@ export class TransactionSerializer {
|
|
|
601
617
|
requestedAmount,
|
|
602
618
|
refundVault,
|
|
603
619
|
originalInputCount,
|
|
604
|
-
existingPsbtBase64,
|
|
620
|
+
...(existingPsbtBase64 !== undefined ? { existingPsbtBase64 } : {}),
|
|
605
621
|
};
|
|
606
622
|
}
|
|
607
623
|
|
|
@@ -616,11 +632,11 @@ export class TransactionSerializer {
|
|
|
616
632
|
}
|
|
617
633
|
writer.writeU16(data.witnesses.length);
|
|
618
634
|
for (const witness of data.witnesses) {
|
|
619
|
-
writer.writeBytesWithLength(
|
|
635
|
+
writer.writeBytesWithLength(fromHex(witness));
|
|
620
636
|
}
|
|
621
637
|
writer.writeBoolean(data.annex !== undefined);
|
|
622
638
|
if (data.annex !== undefined) {
|
|
623
|
-
writer.writeBytesWithLength(
|
|
639
|
+
writer.writeBytesWithLength(fromHex(data.annex));
|
|
624
640
|
}
|
|
625
641
|
}
|
|
626
642
|
|
|
@@ -630,7 +646,7 @@ export class TransactionSerializer {
|
|
|
630
646
|
): void {
|
|
631
647
|
writer.writeU8(element.elementType === 'buffer' ? 0 : 1);
|
|
632
648
|
if (element.elementType === 'buffer') {
|
|
633
|
-
writer.writeBytesWithLength(
|
|
649
|
+
writer.writeBytesWithLength(fromHex(element.value as string));
|
|
634
650
|
} else {
|
|
635
651
|
writer.writeU32(element.value as number);
|
|
636
652
|
}
|
|
@@ -645,18 +661,18 @@ export class TransactionSerializer {
|
|
|
645
661
|
const witnessesCount = reader.readU16();
|
|
646
662
|
const witnesses: string[] = [];
|
|
647
663
|
for (let i = 0; i < witnessesCount; i++) {
|
|
648
|
-
witnesses.push(
|
|
664
|
+
witnesses.push(toHex(reader.readBytesWithLength()));
|
|
649
665
|
}
|
|
650
666
|
const hasAnnex = reader.readBoolean();
|
|
651
667
|
const annex = hasAnnex
|
|
652
|
-
?
|
|
668
|
+
? toHex(reader.readBytesWithLength())
|
|
653
669
|
: undefined;
|
|
654
670
|
|
|
655
671
|
return {
|
|
656
672
|
type: TransactionType.CUSTOM_CODE,
|
|
657
673
|
scriptElements,
|
|
658
674
|
witnesses,
|
|
659
|
-
annex,
|
|
675
|
+
...(annex !== undefined ? { annex } : {}),
|
|
660
676
|
};
|
|
661
677
|
}
|
|
662
678
|
|
|
@@ -665,7 +681,7 @@ export class TransactionSerializer {
|
|
|
665
681
|
if (typeFlag === 0) {
|
|
666
682
|
return {
|
|
667
683
|
elementType: 'buffer',
|
|
668
|
-
value:
|
|
684
|
+
value: toHex(reader.readBytesWithLength()),
|
|
669
685
|
};
|
|
670
686
|
} else {
|
|
671
687
|
return {
|
|
@@ -677,13 +693,13 @@ export class TransactionSerializer {
|
|
|
677
693
|
|
|
678
694
|
// Cancel
|
|
679
695
|
private static writeCancelData(writer: BinaryWriter, data: CancelSpecificData): void {
|
|
680
|
-
writer.writeBytesWithLength(
|
|
696
|
+
writer.writeBytesWithLength(fromHex(data.compiledTargetScript));
|
|
681
697
|
}
|
|
682
698
|
|
|
683
699
|
private static readCancelData(reader: BinaryReader): CancelSpecificData {
|
|
684
700
|
return {
|
|
685
701
|
type: TransactionType.CANCEL,
|
|
686
|
-
compiledTargetScript:
|
|
702
|
+
compiledTargetScript: toHex(reader.readBytesWithLength()),
|
|
687
703
|
};
|
|
688
704
|
}
|
|
689
705
|
|
|
@@ -691,9 +707,9 @@ export class TransactionSerializer {
|
|
|
691
707
|
writer.writeU64(BigInt(challenge.epochNumber));
|
|
692
708
|
writer.writeStringWithLength(challenge.mldsaPublicKey);
|
|
693
709
|
writer.writeStringWithLength(challenge.legacyPublicKey);
|
|
694
|
-
writer.writeBytesWithLength(
|
|
695
|
-
writer.writeBytesWithLength(
|
|
696
|
-
writer.writeBytesWithLength(
|
|
710
|
+
writer.writeBytesWithLength(fromHex(challenge.solution.replace('0x', '')));
|
|
711
|
+
writer.writeBytesWithLength(fromHex(challenge.salt.replace('0x', '')));
|
|
712
|
+
writer.writeBytesWithLength(fromHex(challenge.graffiti.replace('0x', '')));
|
|
697
713
|
writer.writeU8(challenge.difficulty);
|
|
698
714
|
|
|
699
715
|
// Verification
|
|
@@ -705,16 +721,16 @@ export class TransactionSerializer {
|
|
|
705
721
|
writer.writeStringWithLength(challenge.submission.mldsaPublicKey);
|
|
706
722
|
writer.writeStringWithLength(challenge.submission.legacyPublicKey);
|
|
707
723
|
writer.writeBytesWithLength(
|
|
708
|
-
|
|
724
|
+
fromHex(challenge.submission.solution.replace('0x', '')),
|
|
709
725
|
);
|
|
710
726
|
writer.writeBoolean(challenge.submission.graffiti !== undefined);
|
|
711
727
|
if (challenge.submission.graffiti !== undefined) {
|
|
712
728
|
writer.writeBytesWithLength(
|
|
713
|
-
|
|
729
|
+
fromHex(challenge.submission.graffiti.replace('0x', '')),
|
|
714
730
|
);
|
|
715
731
|
}
|
|
716
732
|
writer.writeBytesWithLength(
|
|
717
|
-
|
|
733
|
+
fromHex(challenge.submission.signature.replace('0x', '')),
|
|
718
734
|
);
|
|
719
735
|
}
|
|
720
736
|
}
|
|
@@ -723,17 +739,17 @@ export class TransactionSerializer {
|
|
|
723
739
|
writer: BinaryWriter,
|
|
724
740
|
verification: RawChallengeVerification,
|
|
725
741
|
): void {
|
|
726
|
-
writer.writeBytesWithLength(
|
|
727
|
-
writer.writeBytesWithLength(
|
|
728
|
-
writer.writeBytesWithLength(
|
|
742
|
+
writer.writeBytesWithLength(fromHex(verification.epochHash.replace('0x', '')));
|
|
743
|
+
writer.writeBytesWithLength(fromHex(verification.epochRoot.replace('0x', '')));
|
|
744
|
+
writer.writeBytesWithLength(fromHex(verification.targetHash.replace('0x', '')));
|
|
729
745
|
writer.writeBytesWithLength(
|
|
730
|
-
|
|
746
|
+
fromHex(verification.targetChecksum.replace('0x', '')),
|
|
731
747
|
);
|
|
732
748
|
writer.writeU64(BigInt(verification.startBlock));
|
|
733
749
|
writer.writeU64(BigInt(verification.endBlock));
|
|
734
750
|
writer.writeU16(verification.proofs.length);
|
|
735
751
|
for (const proof of verification.proofs) {
|
|
736
|
-
writer.writeBytesWithLength(
|
|
752
|
+
writer.writeBytesWithLength(fromHex(proof.replace('0x', '')));
|
|
737
753
|
}
|
|
738
754
|
}
|
|
739
755
|
|
|
@@ -741,9 +757,9 @@ export class TransactionSerializer {
|
|
|
741
757
|
const epochNumber = reader.readU64().toString();
|
|
742
758
|
const mldsaPublicKey = reader.readStringWithLength();
|
|
743
759
|
const legacyPublicKey = reader.readStringWithLength();
|
|
744
|
-
const solution = '0x' +
|
|
745
|
-
const salt = '0x' +
|
|
746
|
-
const graffiti = '0x' +
|
|
760
|
+
const solution = '0x' + toHex(reader.readBytesWithLength());
|
|
761
|
+
const salt = '0x' + toHex(reader.readBytesWithLength());
|
|
762
|
+
const graffiti = '0x' + toHex(reader.readBytesWithLength());
|
|
747
763
|
const difficulty = reader.readU8();
|
|
748
764
|
|
|
749
765
|
const verification = this.readChallengeVerification(reader);
|
|
@@ -753,19 +769,19 @@ export class TransactionSerializer {
|
|
|
753
769
|
if (hasSubmission) {
|
|
754
770
|
const subMldsaPublicKey = reader.readStringWithLength();
|
|
755
771
|
const subLegacyPublicKey = reader.readStringWithLength();
|
|
756
|
-
const subSolution = '0x' +
|
|
772
|
+
const subSolution = '0x' + toHex(reader.readBytesWithLength());
|
|
757
773
|
const hasGraffiti = reader.readBoolean();
|
|
758
774
|
const subGraffiti = hasGraffiti
|
|
759
|
-
? '0x' +
|
|
775
|
+
? '0x' + toHex(reader.readBytesWithLength())
|
|
760
776
|
: undefined;
|
|
761
|
-
const subSignature = '0x' +
|
|
777
|
+
const subSignature = '0x' + toHex(reader.readBytesWithLength());
|
|
762
778
|
|
|
763
779
|
submission = {
|
|
764
780
|
mldsaPublicKey: subMldsaPublicKey,
|
|
765
781
|
legacyPublicKey: subLegacyPublicKey,
|
|
766
782
|
solution: subSolution,
|
|
767
|
-
graffiti: subGraffiti,
|
|
768
783
|
signature: subSignature,
|
|
784
|
+
...(subGraffiti !== undefined ? { graffiti: subGraffiti } : {}),
|
|
769
785
|
};
|
|
770
786
|
}
|
|
771
787
|
|
|
@@ -778,21 +794,21 @@ export class TransactionSerializer {
|
|
|
778
794
|
graffiti,
|
|
779
795
|
difficulty,
|
|
780
796
|
verification,
|
|
781
|
-
submission,
|
|
797
|
+
...(submission !== undefined ? { submission } : {}),
|
|
782
798
|
};
|
|
783
799
|
}
|
|
784
800
|
|
|
785
801
|
private static readChallengeVerification(reader: BinaryReader): RawChallengeVerification {
|
|
786
|
-
const epochHash = '0x' +
|
|
787
|
-
const epochRoot = '0x' +
|
|
788
|
-
const targetHash = '0x' +
|
|
789
|
-
const targetChecksum = '0x' +
|
|
802
|
+
const epochHash = '0x' + toHex(reader.readBytesWithLength());
|
|
803
|
+
const epochRoot = '0x' + toHex(reader.readBytesWithLength());
|
|
804
|
+
const targetHash = '0x' + toHex(reader.readBytesWithLength());
|
|
805
|
+
const targetChecksum = '0x' + toHex(reader.readBytesWithLength());
|
|
790
806
|
const startBlock = reader.readU64().toString();
|
|
791
807
|
const endBlock = reader.readU64().toString();
|
|
792
808
|
const proofsCount = reader.readU16();
|
|
793
809
|
const proofs: string[] = [];
|
|
794
810
|
for (let i = 0; i < proofsCount; i++) {
|
|
795
|
-
proofs.push('0x' +
|
|
811
|
+
proofs.push('0x' + toHex(reader.readBytesWithLength()));
|
|
796
812
|
}
|
|
797
813
|
|
|
798
814
|
return {
|
|
@@ -814,7 +830,7 @@ export class TransactionSerializer {
|
|
|
814
830
|
writer.writeU16(keys.length);
|
|
815
831
|
for (const key of keys) {
|
|
816
832
|
writer.writeStringWithLength(key);
|
|
817
|
-
writer.writeStringArray(storage[key]);
|
|
833
|
+
writer.writeStringArray(storage[key] as string[]);
|
|
818
834
|
}
|
|
819
835
|
}
|
|
820
836
|
|
|
@@ -831,12 +847,12 @@ export class TransactionSerializer {
|
|
|
831
847
|
private static writePrecomputedData(writer: BinaryWriter, data: PrecomputedData): void {
|
|
832
848
|
writer.writeBoolean(data.compiledTargetScript !== undefined);
|
|
833
849
|
if (data.compiledTargetScript !== undefined) {
|
|
834
|
-
writer.writeBytesWithLength(
|
|
850
|
+
writer.writeBytesWithLength(fromHex(data.compiledTargetScript));
|
|
835
851
|
}
|
|
836
852
|
|
|
837
853
|
writer.writeBoolean(data.randomBytes !== undefined);
|
|
838
854
|
if (data.randomBytes !== undefined) {
|
|
839
|
-
writer.writeBytesWithLength(
|
|
855
|
+
writer.writeBytesWithLength(fromHex(data.randomBytes));
|
|
840
856
|
}
|
|
841
857
|
|
|
842
858
|
writer.writeBoolean(data.estimatedFees !== undefined);
|
|
@@ -858,12 +874,12 @@ export class TransactionSerializer {
|
|
|
858
874
|
private static readPrecomputedData(reader: BinaryReader): PrecomputedData {
|
|
859
875
|
const hasCompiledTargetScript = reader.readBoolean();
|
|
860
876
|
const compiledTargetScript = hasCompiledTargetScript
|
|
861
|
-
?
|
|
877
|
+
? toHex(reader.readBytesWithLength())
|
|
862
878
|
: undefined;
|
|
863
879
|
|
|
864
880
|
const hasRandomBytes = reader.readBoolean();
|
|
865
881
|
const randomBytes = hasRandomBytes
|
|
866
|
-
?
|
|
882
|
+
? toHex(reader.readBytesWithLength())
|
|
867
883
|
: undefined;
|
|
868
884
|
|
|
869
885
|
const hasEstimatedFees = reader.readBoolean();
|
|
@@ -876,20 +892,54 @@ export class TransactionSerializer {
|
|
|
876
892
|
const contractAddress = hasContractAddress ? reader.readStringWithLength() : undefined;
|
|
877
893
|
|
|
878
894
|
return {
|
|
879
|
-
compiledTargetScript,
|
|
880
|
-
randomBytes,
|
|
881
|
-
estimatedFees,
|
|
882
|
-
contractSeed,
|
|
883
|
-
contractAddress,
|
|
895
|
+
...(compiledTargetScript !== undefined ? { compiledTargetScript } : {}),
|
|
896
|
+
...(randomBytes !== undefined ? { randomBytes } : {}),
|
|
897
|
+
...(estimatedFees !== undefined ? { estimatedFees } : {}),
|
|
898
|
+
...(contractSeed !== undefined ? { contractSeed } : {}),
|
|
899
|
+
...(contractAddress !== undefined ? { contractAddress } : {}),
|
|
884
900
|
};
|
|
885
901
|
}
|
|
886
902
|
|
|
887
903
|
/**
|
|
888
904
|
* Calculate double SHA256 checksum (Bitcoin standard)
|
|
889
905
|
*/
|
|
890
|
-
private static calculateChecksum(data:
|
|
906
|
+
private static calculateChecksum(data: Uint8Array): Uint8Array {
|
|
891
907
|
const hash1 = createHash('sha256').update(data).digest();
|
|
892
|
-
return createHash('sha256').update(hash1).digest();
|
|
908
|
+
return new Uint8Array(createHash('sha256').update(hash1).digest());
|
|
909
|
+
}
|
|
910
|
+
|
|
911
|
+
/**
|
|
912
|
+
* Compare two Uint8Arrays for equality
|
|
913
|
+
*/
|
|
914
|
+
private static bytesEqual(a: Uint8Array, b: Uint8Array): boolean {
|
|
915
|
+
if (a.length !== b.length) return false;
|
|
916
|
+
for (let i = 0; i < a.length; i++) {
|
|
917
|
+
if (a[i] !== b[i]) return false;
|
|
918
|
+
}
|
|
919
|
+
return true;
|
|
920
|
+
}
|
|
921
|
+
|
|
922
|
+
/**
|
|
923
|
+
* Encode Uint8Array to base64 string
|
|
924
|
+
*/
|
|
925
|
+
private static uint8ArrayToBase64(bytes: Uint8Array): string {
|
|
926
|
+
let binary = '';
|
|
927
|
+
for (let i = 0; i < bytes.length; i++) {
|
|
928
|
+
binary += String.fromCharCode(bytes[i] as number);
|
|
929
|
+
}
|
|
930
|
+
return btoa(binary);
|
|
931
|
+
}
|
|
932
|
+
|
|
933
|
+
/**
|
|
934
|
+
* Decode base64 string to Uint8Array
|
|
935
|
+
*/
|
|
936
|
+
private static base64ToUint8Array(base64: string): Uint8Array {
|
|
937
|
+
const binary = atob(base64);
|
|
938
|
+
const bytes = new Uint8Array(binary.length);
|
|
939
|
+
for (let i = 0; i < binary.length; i++) {
|
|
940
|
+
bytes[i] = binary.charCodeAt(i);
|
|
941
|
+
}
|
|
942
|
+
return bytes;
|
|
893
943
|
}
|
|
894
944
|
|
|
895
945
|
private static networkNameToU8(name: 'mainnet' | 'testnet' | 'regtest'): number {
|