@btc-vision/transaction 1.8.0-beta.3 → 1.8.0-beta.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/browser/_version.d.ts +1 -0
- package/browser/_version.d.ts.map +1 -0
- package/browser/abi/ABICoder.d.ts +1 -1
- package/browser/abi/ABICoder.d.ts.map +1 -0
- package/browser/branded/Branded.d.ts +4 -0
- package/browser/branded/Branded.d.ts.map +1 -0
- package/browser/btc-vision-bitcoin.js +11999 -2647
- package/browser/buffer/BinaryReader.d.ts +120 -1
- package/browser/buffer/BinaryReader.d.ts.map +1 -0
- package/browser/buffer/BinaryWriter.d.ts +51 -1
- package/browser/buffer/BinaryWriter.d.ts.map +1 -0
- package/browser/bytecode/Compressor.d.ts +12 -0
- package/browser/bytecode/Compressor.d.ts.map +1 -0
- package/browser/chain/ChainData.d.ts +2 -2
- package/browser/chain/ChainData.d.ts.map +1 -0
- package/browser/consensus/Consensus.d.ts +11 -3
- package/browser/consensus/Consensus.d.ts.map +1 -0
- package/browser/consensus/ConsensusConfig.d.ts +1 -0
- package/browser/consensus/ConsensusConfig.d.ts.map +1 -0
- package/browser/consensus/IConsensusConfig.d.ts +1 -0
- package/browser/consensus/IConsensusConfig.d.ts.map +1 -0
- package/browser/consensus/metadata/RoswellConsensus.d.ts +1 -0
- package/browser/consensus/metadata/RoswellConsensus.d.ts.map +1 -0
- package/browser/crypto/crypto.d.ts +1 -0
- package/browser/crypto/crypto.d.ts.map +1 -0
- package/browser/deterministic/AddressMap.d.ts +6 -1
- package/browser/deterministic/AddressMap.d.ts.map +1 -0
- package/browser/deterministic/AddressSet.d.ts +3 -1
- package/browser/deterministic/AddressSet.d.ts.map +1 -0
- package/browser/deterministic/CustomMap.d.ts +3 -1
- package/browser/deterministic/CustomMap.d.ts.map +1 -0
- package/browser/deterministic/DeterministicMap.d.ts +3 -1
- package/browser/deterministic/DeterministicMap.d.ts.map +1 -0
- package/browser/deterministic/DeterministicSet.d.ts +3 -1
- package/browser/deterministic/DeterministicSet.d.ts.map +1 -0
- package/browser/deterministic/ExtendedAddressMap.d.ts +7 -1
- package/browser/deterministic/ExtendedAddressMap.d.ts.map +1 -0
- package/browser/deterministic/FastMap.d.ts +7 -1
- package/browser/deterministic/FastMap.d.ts.map +1 -0
- package/browser/ecc/backend.d.ts +13 -0
- package/browser/ecc/backend.d.ts.map +1 -0
- package/browser/epoch/ChallengeSolution.d.ts +33 -1
- package/browser/epoch/ChallengeSolution.d.ts.map +1 -0
- package/browser/epoch/interfaces/IChallengeSolution.d.ts +14 -13
- package/browser/epoch/interfaces/IChallengeSolution.d.ts.map +1 -0
- package/browser/epoch/validator/EpochValidator.d.ts +37 -7
- package/browser/epoch/validator/EpochValidator.d.ts.map +1 -0
- package/browser/event/NetEvent.d.ts +1 -0
- package/browser/event/NetEvent.d.ts.map +1 -0
- package/browser/generators/AddressGenerator.d.ts +4 -3
- package/browser/generators/AddressGenerator.d.ts.map +1 -0
- package/browser/generators/Features.d.ts +1 -0
- package/browser/generators/Features.d.ts.map +1 -0
- package/browser/generators/Generator.d.ts +46 -10
- package/browser/generators/Generator.d.ts.map +1 -0
- package/browser/generators/MLDSAData.d.ts +1 -0
- package/browser/generators/MLDSAData.d.ts.map +1 -0
- package/browser/generators/builders/CalldataGenerator.d.ts +25 -4
- package/browser/generators/builders/CalldataGenerator.d.ts.map +1 -0
- package/browser/generators/builders/CustomGenerator.d.ts +13 -3
- package/browser/generators/builders/CustomGenerator.d.ts.map +1 -0
- package/browser/generators/builders/DeploymentGenerator.d.ts +15 -4
- package/browser/generators/builders/DeploymentGenerator.d.ts.map +1 -0
- package/browser/generators/builders/HashCommitmentGenerator.d.ts +164 -12
- package/browser/generators/builders/HashCommitmentGenerator.d.ts.map +1 -0
- package/browser/generators/builders/LegacyCalldataGenerator.d.ts +26 -4
- package/browser/generators/builders/LegacyCalldataGenerator.d.ts.map +1 -0
- package/browser/generators/builders/MultiSignGenerator.d.ts +6 -1
- package/browser/generators/builders/MultiSignGenerator.d.ts.map +1 -0
- package/browser/generators/builders/P2WDAGenerator.d.ts +42 -4
- package/browser/generators/builders/P2WDAGenerator.d.ts.map +1 -0
- package/browser/index.d.ts +1 -0
- package/browser/index.d.ts.map +1 -0
- package/browser/index.js +3558 -3167
- package/browser/keypair/Address.d.ts +283 -13
- package/browser/keypair/Address.d.ts.map +1 -0
- package/browser/keypair/AddressVerificator.d.ts +7 -6
- package/browser/keypair/AddressVerificator.d.ts.map +1 -0
- package/browser/keypair/EcKeyPair.d.ts +183 -21
- package/browser/keypair/EcKeyPair.d.ts.map +1 -0
- package/browser/keypair/MessageSigner.d.ts +17 -16
- package/browser/keypair/MessageSigner.d.ts.map +1 -0
- package/browser/keypair/Secp256k1PointDeriver.d.ts +55 -0
- package/browser/keypair/Secp256k1PointDeriver.d.ts.map +1 -0
- package/browser/keypair/Wallet.d.ts +27 -13
- package/browser/keypair/Wallet.d.ts.map +1 -0
- package/browser/keypair/interfaces/IWallet.d.ts +19 -0
- package/browser/keypair/interfaces/IWallet.d.ts.map +1 -0
- package/browser/metadata/ContractBaseMetadata.d.ts +10 -2
- package/browser/metadata/ContractBaseMetadata.d.ts.map +1 -0
- package/browser/mnemonic/BIPStandard.d.ts +59 -0
- package/browser/mnemonic/BIPStandard.d.ts.map +1 -0
- package/browser/mnemonic/Mnemonic.d.ts +15 -3
- package/browser/mnemonic/Mnemonic.d.ts.map +1 -0
- package/browser/mnemonic/MnemonicStrength.d.ts +6 -0
- package/browser/mnemonic/MnemonicStrength.d.ts.map +1 -0
- package/browser/network/ChainId.d.ts +1 -0
- package/browser/network/ChainId.d.ts.map +1 -0
- package/browser/noble-curves.js +844 -2746
- package/browser/noble-hashes.js +1338 -2067
- package/browser/opnet.d.ts +22 -1
- package/browser/opnet.d.ts.map +1 -0
- package/browser/p2wda/P2WDADetector.d.ts +36 -9
- package/browser/p2wda/P2WDADetector.d.ts.map +1 -0
- package/browser/polyfill/disposable.d.ts +16 -0
- package/browser/polyfill/disposable.d.ts.map +1 -0
- package/browser/signer/AddressRotation.d.ts +36 -0
- package/browser/signer/AddressRotation.d.ts.map +1 -0
- package/browser/signer/IRotationSigner.d.ts +27 -3
- package/browser/signer/IRotationSigner.d.ts.map +1 -0
- package/browser/signer/ParallelSignerAdapter.d.ts +14 -0
- package/browser/signer/ParallelSignerAdapter.d.ts.map +1 -0
- package/browser/signer/SignerUtils.d.ts +11 -4
- package/browser/signer/SignerUtils.d.ts.map +1 -0
- package/browser/signer/TweakedSigner.d.ts +28 -4
- package/browser/signer/TweakedSigner.d.ts.map +1 -0
- package/browser/transaction/ContractAddress.d.ts +2 -2
- package/browser/transaction/ContractAddress.d.ts.map +1 -0
- package/browser/transaction/TransactionFactory.d.ts +140 -2
- package/browser/transaction/TransactionFactory.d.ts.map +1 -0
- package/browser/transaction/browser/BrowserSignerBase.d.ts +12 -6
- package/browser/transaction/browser/BrowserSignerBase.d.ts.map +1 -0
- package/browser/transaction/browser/WalletNetworks.d.ts +1 -0
- package/browser/transaction/browser/WalletNetworks.d.ts.map +1 -0
- package/browser/transaction/browser/Web3Provider.d.ts +27 -0
- package/browser/transaction/browser/Web3Provider.d.ts.map +1 -0
- package/browser/transaction/browser/extensions/UnisatSigner.d.ts +9 -7
- package/browser/transaction/browser/extensions/UnisatSigner.d.ts.map +1 -0
- package/browser/transaction/browser/extensions/XverseSigner.d.ts +9 -7
- package/browser/transaction/browser/extensions/XverseSigner.d.ts.map +1 -0
- package/browser/transaction/browser/types/OPWallet.d.ts +10 -0
- package/browser/transaction/browser/types/OPWallet.d.ts.map +1 -0
- package/browser/transaction/browser/types/Unisat.d.ts +1 -0
- package/browser/transaction/browser/types/Unisat.d.ts.map +1 -0
- package/browser/transaction/browser/types/Xverse.d.ts +1 -0
- package/browser/transaction/browser/types/Xverse.d.ts.map +1 -0
- package/browser/transaction/builders/CancelTransaction.d.ts +29 -4
- package/browser/transaction/builders/CancelTransaction.d.ts.map +1 -0
- package/browser/transaction/builders/ChallengeSolutionTransaction.d.ts +1 -0
- package/browser/transaction/builders/ChallengeSolutionTransaction.d.ts.map +1 -0
- package/browser/transaction/builders/ConsolidatedInteractionTransaction.d.ts +137 -10
- package/browser/transaction/builders/ConsolidatedInteractionTransaction.d.ts.map +1 -0
- package/browser/transaction/builders/CustomScriptTransaction.d.ts +106 -6
- package/browser/transaction/builders/CustomScriptTransaction.d.ts.map +1 -0
- package/browser/transaction/builders/DeploymentTransaction.d.ts +116 -5
- package/browser/transaction/builders/DeploymentTransaction.d.ts.map +1 -0
- package/browser/transaction/builders/FundingTransaction.d.ts +4 -3
- package/browser/transaction/builders/FundingTransaction.d.ts.map +1 -0
- package/browser/transaction/builders/InteractionTransaction.d.ts +12 -3
- package/browser/transaction/builders/InteractionTransaction.d.ts.map +1 -0
- package/browser/transaction/builders/InteractionTransactionP2WDA.d.ts +56 -5
- package/browser/transaction/builders/InteractionTransactionP2WDA.d.ts.map +1 -0
- package/browser/transaction/builders/MultiSignTransaction.d.ts +125 -16
- package/browser/transaction/builders/MultiSignTransaction.d.ts.map +1 -0
- package/browser/transaction/builders/SharedInteractionTransaction.d.ts +103 -15
- package/browser/transaction/builders/SharedInteractionTransaction.d.ts.map +1 -0
- package/browser/transaction/builders/TransactionBuilder.d.ts +243 -14
- package/browser/transaction/builders/TransactionBuilder.d.ts.map +1 -0
- package/browser/transaction/enums/TransactionType.d.ts +1 -0
- package/browser/transaction/enums/TransactionType.d.ts.map +1 -0
- package/browser/transaction/interfaces/ICancelTransactionParameters.d.ts +2 -1
- package/browser/transaction/interfaces/ICancelTransactionParameters.d.ts.map +1 -0
- package/browser/transaction/interfaces/IConsolidatedTransactionParameters.d.ts +46 -3
- package/browser/transaction/interfaces/IConsolidatedTransactionParameters.d.ts.map +1 -0
- package/browser/transaction/interfaces/ICustomTransactionParameters.d.ts +6 -4
- package/browser/transaction/interfaces/ICustomTransactionParameters.d.ts.map +1 -0
- package/browser/transaction/interfaces/ITransactionParameters.d.ts +22 -10
- package/browser/transaction/interfaces/ITransactionParameters.d.ts.map +1 -0
- package/browser/transaction/interfaces/ITransactionResponses.d.ts +1 -0
- package/browser/transaction/interfaces/ITransactionResponses.d.ts.map +1 -0
- package/browser/transaction/interfaces/ITweakedTransactionData.d.ts +17 -5
- package/browser/transaction/interfaces/ITweakedTransactionData.d.ts.map +1 -0
- package/browser/transaction/interfaces/IWeb3ProviderTypes.d.ts +26 -0
- package/browser/transaction/interfaces/IWeb3ProviderTypes.d.ts.map +1 -0
- package/browser/transaction/interfaces/Tap.d.ts +4 -3
- package/browser/transaction/interfaces/Tap.d.ts.map +1 -0
- package/browser/transaction/mineable/IP2WSHAddress.d.ts +2 -1
- package/browser/transaction/mineable/IP2WSHAddress.d.ts.map +1 -0
- package/browser/transaction/mineable/TimelockGenerator.d.ts +12 -3
- package/browser/transaction/mineable/TimelockGenerator.d.ts.map +1 -0
- package/browser/transaction/offline/OfflineTransactionManager.d.ts +190 -9
- package/browser/transaction/offline/OfflineTransactionManager.d.ts.map +1 -0
- package/browser/transaction/offline/TransactionReconstructor.d.ts +53 -3
- package/browser/transaction/offline/TransactionReconstructor.d.ts.map +1 -0
- package/browser/transaction/offline/TransactionSerializer.d.ts +53 -2
- package/browser/transaction/offline/TransactionSerializer.d.ts.map +1 -0
- package/browser/transaction/offline/TransactionStateCapture.d.ts +64 -5
- package/browser/transaction/offline/TransactionStateCapture.d.ts.map +1 -0
- package/browser/transaction/offline/interfaces/ISerializableState.d.ts +71 -0
- package/browser/transaction/offline/interfaces/ISerializableState.d.ts.map +1 -0
- package/browser/transaction/offline/interfaces/ITypeSpecificData.d.ts +76 -0
- package/browser/transaction/offline/interfaces/ITypeSpecificData.d.ts.map +1 -0
- package/browser/transaction/psbt/PSBTTypes.d.ts +1 -0
- package/browser/transaction/psbt/PSBTTypes.d.ts.map +1 -0
- package/browser/transaction/shared/P2TR_MS.d.ts +11 -2
- package/browser/transaction/shared/P2TR_MS.d.ts.map +1 -0
- package/browser/transaction/shared/TweakedTransaction.d.ts +274 -33
- package/browser/transaction/shared/TweakedTransaction.d.ts.map +1 -0
- package/browser/transaction/utils/WitnessUtils.d.ts +7 -1
- package/browser/transaction/utils/WitnessUtils.d.ts.map +1 -0
- package/browser/utils/BitcoinUtils.d.ts +19 -0
- package/browser/utils/BitcoinUtils.d.ts.map +1 -0
- package/browser/utils/BufferHelper.d.ts +1 -0
- package/browser/utils/BufferHelper.d.ts.map +1 -0
- package/browser/utils/StringToBuffer.d.ts +1 -0
- package/browser/utils/StringToBuffer.d.ts.map +1 -0
- package/browser/utils/lengths.d.ts +1 -0
- package/browser/utils/lengths.d.ts.map +1 -0
- package/browser/utils/types.d.ts +1 -0
- package/browser/utils/types.d.ts.map +1 -0
- package/browser/utxo/OPNetLimitedProvider.d.ts +37 -1
- package/browser/utxo/OPNetLimitedProvider.d.ts.map +1 -0
- package/browser/utxo/interfaces/BroadcastResponse.d.ts +1 -0
- package/browser/utxo/interfaces/BroadcastResponse.d.ts.map +1 -0
- package/browser/utxo/interfaces/IUTXO.d.ts +11 -5
- package/browser/utxo/interfaces/IUTXO.d.ts.map +1 -0
- package/browser/vendors.js +14351 -10031
- package/browser/verification/TapscriptVerificator.d.ts +10 -8
- package/browser/verification/TapscriptVerificator.d.ts.map +1 -0
- package/build/_version.d.ts +1 -0
- package/build/_version.d.ts.map +1 -0
- package/build/_version.js +1 -0
- package/build/_version.js.map +1 -0
- package/build/abi/ABICoder.d.ts +1 -1
- package/build/abi/ABICoder.d.ts.map +1 -0
- package/build/abi/ABICoder.js +9 -10
- package/build/abi/ABICoder.js.map +1 -0
- package/build/branded/Branded.d.ts +4 -0
- package/build/branded/Branded.d.ts.map +1 -0
- package/build/branded/Branded.js +2 -0
- package/build/branded/Branded.js.map +1 -0
- package/build/buffer/BinaryReader.d.ts +121 -2
- package/build/buffer/BinaryReader.d.ts.map +1 -0
- package/build/buffer/BinaryReader.js +129 -5
- package/build/buffer/BinaryReader.js.map +1 -0
- package/build/buffer/BinaryWriter.d.ts +52 -2
- package/build/buffer/BinaryWriter.d.ts.map +1 -0
- package/build/buffer/BinaryWriter.js +62 -2
- package/build/buffer/BinaryWriter.js.map +1 -0
- package/build/bytecode/Compressor.d.ts +12 -0
- package/build/bytecode/Compressor.d.ts.map +1 -0
- package/build/bytecode/Compressor.js +17 -5
- package/build/bytecode/Compressor.js.map +1 -0
- package/build/chain/ChainData.d.ts +2 -2
- package/build/chain/ChainData.d.ts.map +1 -0
- package/build/chain/ChainData.js +35 -17
- package/build/chain/ChainData.js.map +1 -0
- package/build/consensus/Consensus.d.ts +11 -3
- package/build/consensus/Consensus.d.ts.map +1 -0
- package/build/consensus/Consensus.js +8 -0
- package/build/consensus/Consensus.js.map +1 -0
- package/build/consensus/ConsensusConfig.d.ts +2 -1
- package/build/consensus/ConsensusConfig.d.ts.map +1 -0
- package/build/consensus/ConsensusConfig.js +1 -0
- package/build/consensus/ConsensusConfig.js.map +1 -0
- package/build/consensus/IConsensusConfig.d.ts +1 -0
- package/build/consensus/IConsensusConfig.d.ts.map +1 -0
- package/build/consensus/IConsensusConfig.js +2 -1
- package/build/consensus/IConsensusConfig.js.map +1 -0
- package/build/consensus/metadata/RoswellConsensus.d.ts +2 -1
- package/build/consensus/metadata/RoswellConsensus.d.ts.map +1 -0
- package/build/consensus/metadata/RoswellConsensus.js +2 -0
- package/build/consensus/metadata/RoswellConsensus.js.map +1 -0
- package/build/crypto/crypto.d.ts +1 -0
- package/build/crypto/crypto.d.ts.map +1 -0
- package/build/crypto/crypto.js +1 -0
- package/build/crypto/crypto.js.map +1 -0
- package/build/deterministic/AddressMap.d.ts +6 -1
- package/build/deterministic/AddressMap.d.ts.map +1 -0
- package/build/deterministic/AddressMap.js +8 -0
- package/build/deterministic/AddressMap.js.map +1 -0
- package/build/deterministic/AddressSet.d.ts +3 -1
- package/build/deterministic/AddressSet.d.ts.map +1 -0
- package/build/deterministic/AddressSet.js +7 -0
- package/build/deterministic/AddressSet.js.map +1 -0
- package/build/deterministic/CustomMap.d.ts +3 -1
- package/build/deterministic/CustomMap.d.ts.map +1 -0
- package/build/deterministic/CustomMap.js +65 -47
- package/build/deterministic/CustomMap.js.map +1 -0
- package/build/deterministic/DeterministicMap.d.ts +4 -2
- package/build/deterministic/DeterministicMap.d.ts.map +1 -0
- package/build/deterministic/DeterministicMap.js +24 -27
- package/build/deterministic/DeterministicMap.js.map +1 -0
- package/build/deterministic/DeterministicSet.d.ts +3 -1
- package/build/deterministic/DeterministicSet.d.ts.map +1 -0
- package/build/deterministic/DeterministicSet.js +6 -0
- package/build/deterministic/DeterministicSet.js.map +1 -0
- package/build/deterministic/ExtendedAddressMap.d.ts +7 -1
- package/build/deterministic/ExtendedAddressMap.d.ts.map +1 -0
- package/build/deterministic/ExtendedAddressMap.js +18 -2
- package/build/deterministic/ExtendedAddressMap.js.map +1 -0
- package/build/deterministic/FastMap.d.ts +7 -1
- package/build/deterministic/FastMap.d.ts.map +1 -0
- package/build/deterministic/FastMap.js +7 -2
- package/build/deterministic/FastMap.js.map +1 -0
- package/build/ecc/backend.d.ts +13 -0
- package/build/ecc/backend.d.ts.map +1 -0
- package/build/ecc/backend.js +15 -0
- package/build/ecc/backend.js.map +1 -0
- package/build/epoch/ChallengeSolution.d.ts +34 -2
- package/build/epoch/ChallengeSolution.d.ts.map +1 -0
- package/build/epoch/ChallengeSolution.js +52 -0
- package/build/epoch/ChallengeSolution.js.map +1 -0
- package/build/epoch/interfaces/IChallengeSolution.d.ts +14 -13
- package/build/epoch/interfaces/IChallengeSolution.d.ts.map +1 -0
- package/build/epoch/interfaces/IChallengeSolution.js +2 -1
- package/build/epoch/interfaces/IChallengeSolution.js.map +1 -0
- package/build/epoch/validator/EpochValidator.d.ts +38 -8
- package/build/epoch/validator/EpochValidator.d.ts.map +1 -0
- package/build/epoch/validator/EpochValidator.js +45 -19
- package/build/epoch/validator/EpochValidator.js.map +1 -0
- package/build/event/NetEvent.d.ts +1 -0
- package/build/event/NetEvent.d.ts.map +1 -0
- package/build/event/NetEvent.js +3 -0
- package/build/event/NetEvent.js.map +1 -0
- package/build/generators/AddressGenerator.d.ts +4 -3
- package/build/generators/AddressGenerator.d.ts.map +1 -0
- package/build/generators/AddressGenerator.js +9 -4
- package/build/generators/AddressGenerator.js.map +1 -0
- package/build/generators/Features.d.ts +4 -3
- package/build/generators/Features.d.ts.map +1 -0
- package/build/generators/Features.js +1 -0
- package/build/generators/Features.js.map +1 -0
- package/build/generators/Generator.d.ts +47 -11
- package/build/generators/Generator.d.ts.map +1 -0
- package/build/generators/Generator.js +48 -12
- package/build/generators/Generator.js.map +1 -0
- package/build/generators/MLDSAData.d.ts +1 -0
- package/build/generators/MLDSAData.d.ts.map +1 -0
- package/build/generators/MLDSAData.js +1 -0
- package/build/generators/MLDSAData.js.map +1 -0
- package/build/generators/builders/CalldataGenerator.d.ts +27 -6
- package/build/generators/builders/CalldataGenerator.d.ts.map +1 -0
- package/build/generators/builders/CalldataGenerator.js +33 -4
- package/build/generators/builders/CalldataGenerator.js.map +1 -0
- package/build/generators/builders/CustomGenerator.d.ts +13 -3
- package/build/generators/builders/CustomGenerator.d.ts.map +1 -0
- package/build/generators/builders/CustomGenerator.js +11 -0
- package/build/generators/builders/CustomGenerator.js.map +1 -0
- package/build/generators/builders/DeploymentGenerator.d.ts +17 -6
- package/build/generators/builders/DeploymentGenerator.d.ts.map +1 -0
- package/build/generators/builders/DeploymentGenerator.js +18 -2
- package/build/generators/builders/DeploymentGenerator.js.map +1 -0
- package/build/generators/builders/HashCommitmentGenerator.d.ts +166 -14
- package/build/generators/builders/HashCommitmentGenerator.d.ts.map +1 -0
- package/build/generators/builders/HashCommitmentGenerator.js +193 -27
- package/build/generators/builders/HashCommitmentGenerator.js.map +1 -0
- package/build/generators/builders/LegacyCalldataGenerator.d.ts +27 -5
- package/build/generators/builders/LegacyCalldataGenerator.d.ts.map +1 -0
- package/build/generators/builders/LegacyCalldataGenerator.js +35 -5
- package/build/generators/builders/LegacyCalldataGenerator.js.map +1 -0
- package/build/generators/builders/MultiSignGenerator.d.ts +6 -1
- package/build/generators/builders/MultiSignGenerator.d.ts.map +1 -0
- package/build/generators/builders/MultiSignGenerator.js +20 -10
- package/build/generators/builders/MultiSignGenerator.js.map +1 -0
- package/build/generators/builders/P2WDAGenerator.d.ts +44 -6
- package/build/generators/builders/P2WDAGenerator.d.ts.map +1 -0
- package/build/generators/builders/P2WDAGenerator.js +41 -2
- package/build/generators/builders/P2WDAGenerator.js.map +1 -0
- package/build/index.d.ts +1 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +1 -0
- package/build/index.js.map +1 -0
- package/build/keypair/Address.d.ts +284 -14
- package/build/keypair/Address.d.ts.map +1 -0
- package/build/keypair/Address.js +446 -128
- package/build/keypair/Address.js.map +1 -0
- package/build/keypair/AddressVerificator.d.ts +7 -6
- package/build/keypair/AddressVerificator.d.ts.map +1 -0
- package/build/keypair/AddressVerificator.js +4 -5
- package/build/keypair/AddressVerificator.js.map +1 -0
- package/build/keypair/EcKeyPair.d.ts +185 -23
- package/build/keypair/EcKeyPair.d.ts.map +1 -0
- package/build/keypair/EcKeyPair.js +218 -50
- package/build/keypair/EcKeyPair.js.map +1 -0
- package/build/keypair/MessageSigner.d.ts +18 -17
- package/build/keypair/MessageSigner.d.ts.map +1 -0
- package/build/keypair/MessageSigner.js +34 -25
- package/build/keypair/MessageSigner.js.map +1 -0
- package/build/keypair/Secp256k1PointDeriver.d.ts +55 -0
- package/build/keypair/Secp256k1PointDeriver.d.ts.map +1 -0
- package/build/keypair/Secp256k1PointDeriver.js +66 -0
- package/build/keypair/Secp256k1PointDeriver.js.map +1 -0
- package/build/keypair/Wallet.d.ts +29 -15
- package/build/keypair/Wallet.d.ts.map +1 -0
- package/build/keypair/Wallet.js +46 -14
- package/build/keypair/Wallet.js.map +1 -0
- package/build/keypair/interfaces/IWallet.d.ts +19 -0
- package/build/keypair/interfaces/IWallet.d.ts.map +1 -0
- package/build/keypair/interfaces/IWallet.js +1 -0
- package/build/keypair/interfaces/IWallet.js.map +1 -0
- package/build/metadata/ContractBaseMetadata.d.ts +10 -2
- package/build/metadata/ContractBaseMetadata.d.ts.map +1 -0
- package/build/metadata/ContractBaseMetadata.js +10 -1
- package/build/metadata/ContractBaseMetadata.js.map +1 -0
- package/build/mnemonic/BIPStandard.d.ts +59 -0
- package/build/mnemonic/BIPStandard.d.ts.map +1 -0
- package/build/mnemonic/BIPStandard.js +59 -0
- package/build/mnemonic/BIPStandard.js.map +1 -0
- package/build/mnemonic/Mnemonic.d.ts +16 -4
- package/build/mnemonic/Mnemonic.d.ts.map +1 -0
- package/build/mnemonic/Mnemonic.js +35 -8
- package/build/mnemonic/Mnemonic.js.map +1 -0
- package/build/mnemonic/MnemonicStrength.d.ts +6 -0
- package/build/mnemonic/MnemonicStrength.d.ts.map +1 -0
- package/build/mnemonic/MnemonicStrength.js +6 -0
- package/build/mnemonic/MnemonicStrength.js.map +1 -0
- package/build/network/ChainId.d.ts +1 -0
- package/build/network/ChainId.d.ts.map +1 -0
- package/build/network/ChainId.js +1 -0
- package/build/network/ChainId.js.map +1 -0
- package/build/opnet.d.ts +26 -3
- package/build/opnet.d.ts.map +1 -0
- package/build/opnet.js +23 -0
- package/build/opnet.js.map +1 -0
- package/build/p2wda/P2WDADetector.d.ts +38 -11
- package/build/p2wda/P2WDADetector.d.ts.map +1 -0
- package/build/p2wda/P2WDADetector.js +43 -10
- package/build/p2wda/P2WDADetector.js.map +1 -0
- package/build/polyfill/disposable.d.ts +16 -0
- package/build/polyfill/disposable.d.ts.map +1 -0
- package/build/polyfill/disposable.js +23 -0
- package/build/polyfill/disposable.js.map +1 -0
- package/build/signer/AddressRotation.d.ts +37 -1
- package/build/signer/AddressRotation.d.ts.map +1 -0
- package/build/signer/AddressRotation.js +16 -0
- package/build/signer/AddressRotation.js.map +1 -0
- package/build/signer/IRotationSigner.d.ts +27 -3
- package/build/signer/IRotationSigner.d.ts.map +1 -0
- package/build/signer/IRotationSigner.js +2 -1
- package/build/signer/IRotationSigner.js.map +1 -0
- package/build/signer/ParallelSignerAdapter.d.ts +14 -0
- package/build/signer/ParallelSignerAdapter.d.ts.map +1 -0
- package/build/signer/ParallelSignerAdapter.js +51 -0
- package/build/signer/ParallelSignerAdapter.js.map +1 -0
- package/build/signer/SignerUtils.d.ts +11 -4
- package/build/signer/SignerUtils.d.ts.map +1 -0
- package/build/signer/SignerUtils.js +16 -0
- package/build/signer/SignerUtils.js.map +1 -0
- package/build/signer/TweakedSigner.d.ts +28 -4
- package/build/signer/TweakedSigner.d.ts.map +1 -0
- package/build/signer/TweakedSigner.js +23 -6
- package/build/signer/TweakedSigner.js.map +1 -0
- package/build/transaction/ContractAddress.d.ts +2 -2
- package/build/transaction/ContractAddress.d.ts.map +1 -0
- package/build/transaction/ContractAddress.js +4 -8
- package/build/transaction/ContractAddress.js.map +1 -0
- package/build/transaction/TransactionFactory.d.ts +147 -9
- package/build/transaction/TransactionFactory.d.ts.map +1 -0
- package/build/transaction/TransactionFactory.js +145 -26
- package/build/transaction/TransactionFactory.js.map +1 -0
- package/build/transaction/browser/BrowserSignerBase.d.ts +12 -6
- package/build/transaction/browser/BrowserSignerBase.d.ts.map +1 -0
- package/build/transaction/browser/BrowserSignerBase.js +7 -0
- package/build/transaction/browser/BrowserSignerBase.js.map +1 -0
- package/build/transaction/browser/WalletNetworks.d.ts +1 -0
- package/build/transaction/browser/WalletNetworks.d.ts.map +1 -0
- package/build/transaction/browser/WalletNetworks.js +1 -0
- package/build/transaction/browser/WalletNetworks.js.map +1 -0
- package/build/transaction/browser/Web3Provider.d.ts +30 -3
- package/build/transaction/browser/Web3Provider.d.ts.map +1 -0
- package/build/transaction/browser/Web3Provider.js +1 -0
- package/build/transaction/browser/Web3Provider.js.map +1 -0
- package/build/transaction/browser/extensions/UnisatSigner.d.ts +11 -9
- package/build/transaction/browser/extensions/UnisatSigner.d.ts.map +1 -0
- package/build/transaction/browser/extensions/UnisatSigner.js +27 -17
- package/build/transaction/browser/extensions/UnisatSigner.js.map +1 -0
- package/build/transaction/browser/extensions/XverseSigner.d.ts +10 -8
- package/build/transaction/browser/extensions/XverseSigner.d.ts.map +1 -0
- package/build/transaction/browser/extensions/XverseSigner.js +25 -15
- package/build/transaction/browser/extensions/XverseSigner.js.map +1 -0
- package/build/transaction/browser/types/OPWallet.d.ts +12 -2
- package/build/transaction/browser/types/OPWallet.d.ts.map +1 -0
- package/build/transaction/browser/types/OPWallet.js +4 -0
- package/build/transaction/browser/types/OPWallet.js.map +1 -0
- package/build/transaction/browser/types/Unisat.d.ts +2 -1
- package/build/transaction/browser/types/Unisat.d.ts.map +1 -0
- package/build/transaction/browser/types/Unisat.js +2 -0
- package/build/transaction/browser/types/Unisat.js.map +1 -0
- package/build/transaction/browser/types/Xverse.d.ts +1 -0
- package/build/transaction/browser/types/Xverse.d.ts.map +1 -0
- package/build/transaction/browser/types/Xverse.js +1 -0
- package/build/transaction/browser/types/Xverse.js.map +1 -0
- package/build/transaction/builders/CancelTransaction.d.ts +31 -6
- package/build/transaction/builders/CancelTransaction.d.ts.map +1 -0
- package/build/transaction/builders/CancelTransaction.js +116 -33
- package/build/transaction/builders/CancelTransaction.js.map +1 -0
- package/build/transaction/builders/ChallengeSolutionTransaction.d.ts +1 -0
- package/build/transaction/builders/ChallengeSolutionTransaction.d.ts.map +1 -0
- package/build/transaction/builders/ChallengeSolutionTransaction.js +88 -0
- package/build/transaction/builders/ChallengeSolutionTransaction.js.map +1 -0
- package/build/transaction/builders/ConsolidatedInteractionTransaction.d.ts +140 -13
- package/build/transaction/builders/ConsolidatedInteractionTransaction.d.ts.map +1 -0
- package/build/transaction/builders/ConsolidatedInteractionTransaction.js +197 -20
- package/build/transaction/builders/ConsolidatedInteractionTransaction.js.map +1 -0
- package/build/transaction/builders/CustomScriptTransaction.d.ts +108 -8
- package/build/transaction/builders/CustomScriptTransaction.d.ts.map +1 -0
- package/build/transaction/builders/CustomScriptTransaction.js +176 -39
- package/build/transaction/builders/CustomScriptTransaction.js.map +1 -0
- package/build/transaction/builders/DeploymentTransaction.d.ts +120 -9
- package/build/transaction/builders/DeploymentTransaction.d.ts.map +1 -0
- package/build/transaction/builders/DeploymentTransaction.js +194 -51
- package/build/transaction/builders/DeploymentTransaction.js.map +1 -0
- package/build/transaction/builders/FundingTransaction.d.ts +5 -4
- package/build/transaction/builders/FundingTransaction.d.ts.map +1 -0
- package/build/transaction/builders/FundingTransaction.js +15 -8
- package/build/transaction/builders/FundingTransaction.js.map +1 -0
- package/build/transaction/builders/InteractionTransaction.d.ts +14 -5
- package/build/transaction/builders/InteractionTransaction.d.ts.map +1 -0
- package/build/transaction/builders/InteractionTransaction.js +18 -5
- package/build/transaction/builders/InteractionTransaction.js.map +1 -0
- package/build/transaction/builders/InteractionTransactionP2WDA.d.ts +58 -7
- package/build/transaction/builders/InteractionTransactionP2WDA.d.ts.map +1 -0
- package/build/transaction/builders/InteractionTransactionP2WDA.js +95 -18
- package/build/transaction/builders/InteractionTransactionP2WDA.js.map +1 -0
- package/build/transaction/builders/MultiSignTransaction.d.ts +126 -17
- package/build/transaction/builders/MultiSignTransaction.d.ts.map +1 -0
- package/build/transaction/builders/MultiSignTransaction.js +201 -76
- package/build/transaction/builders/MultiSignTransaction.js.map +1 -0
- package/build/transaction/builders/SharedInteractionTransaction.d.ts +106 -18
- package/build/transaction/builders/SharedInteractionTransaction.d.ts.map +1 -0
- package/build/transaction/builders/SharedInteractionTransaction.js +158 -40
- package/build/transaction/builders/SharedInteractionTransaction.js.map +1 -0
- package/build/transaction/builders/TransactionBuilder.d.ts +249 -19
- package/build/transaction/builders/TransactionBuilder.d.ts.map +1 -0
- package/build/transaction/builders/TransactionBuilder.js +375 -60
- package/build/transaction/builders/TransactionBuilder.js.map +1 -0
- package/build/transaction/enums/TransactionType.d.ts +1 -0
- package/build/transaction/enums/TransactionType.d.ts.map +1 -0
- package/build/transaction/enums/TransactionType.js +1 -0
- package/build/transaction/enums/TransactionType.js.map +1 -0
- package/build/transaction/interfaces/ICancelTransactionParameters.d.ts +3 -2
- package/build/transaction/interfaces/ICancelTransactionParameters.d.ts.map +1 -0
- package/build/transaction/interfaces/ICancelTransactionParameters.js +1 -0
- package/build/transaction/interfaces/ICancelTransactionParameters.js.map +1 -0
- package/build/transaction/interfaces/IConsolidatedTransactionParameters.d.ts +48 -5
- package/build/transaction/interfaces/IConsolidatedTransactionParameters.d.ts.map +1 -0
- package/build/transaction/interfaces/IConsolidatedTransactionParameters.js +1 -0
- package/build/transaction/interfaces/IConsolidatedTransactionParameters.js.map +1 -0
- package/build/transaction/interfaces/ICustomTransactionParameters.d.ts +7 -5
- package/build/transaction/interfaces/ICustomTransactionParameters.d.ts.map +1 -0
- package/build/transaction/interfaces/ICustomTransactionParameters.js +1 -0
- package/build/transaction/interfaces/ICustomTransactionParameters.js.map +1 -0
- package/build/transaction/interfaces/ITransactionParameters.d.ts +27 -15
- package/build/transaction/interfaces/ITransactionParameters.d.ts.map +1 -0
- package/build/transaction/interfaces/ITransactionParameters.js +1 -0
- package/build/transaction/interfaces/ITransactionParameters.js.map +1 -0
- package/build/transaction/interfaces/ITransactionResponses.d.ts +3 -2
- package/build/transaction/interfaces/ITransactionResponses.d.ts.map +1 -0
- package/build/transaction/interfaces/ITransactionResponses.js +1 -0
- package/build/transaction/interfaces/ITransactionResponses.js.map +1 -0
- package/build/transaction/interfaces/ITweakedTransactionData.d.ts +21 -8
- package/build/transaction/interfaces/ITweakedTransactionData.d.ts.map +1 -0
- package/build/transaction/interfaces/ITweakedTransactionData.js +1 -0
- package/build/transaction/interfaces/ITweakedTransactionData.js.map +1 -0
- package/build/transaction/interfaces/IWeb3ProviderTypes.d.ts +29 -3
- package/build/transaction/interfaces/IWeb3ProviderTypes.d.ts.map +1 -0
- package/build/transaction/interfaces/IWeb3ProviderTypes.js +2 -1
- package/build/transaction/interfaces/IWeb3ProviderTypes.js.map +1 -0
- package/build/transaction/interfaces/Tap.d.ts +4 -3
- package/build/transaction/interfaces/Tap.d.ts.map +1 -0
- package/build/transaction/interfaces/Tap.js +1 -0
- package/build/transaction/interfaces/Tap.js.map +1 -0
- package/build/transaction/mineable/IP2WSHAddress.d.ts +2 -1
- package/build/transaction/mineable/IP2WSHAddress.d.ts.map +1 -0
- package/build/transaction/mineable/IP2WSHAddress.js +1 -0
- package/build/transaction/mineable/IP2WSHAddress.js.map +1 -0
- package/build/transaction/mineable/TimelockGenerator.d.ts +13 -4
- package/build/transaction/mineable/TimelockGenerator.d.ts.map +1 -0
- package/build/transaction/mineable/TimelockGenerator.js +12 -3
- package/build/transaction/mineable/TimelockGenerator.js.map +1 -0
- package/build/transaction/offline/OfflineTransactionManager.d.ts +193 -12
- package/build/transaction/offline/OfflineTransactionManager.d.ts.map +1 -0
- package/build/transaction/offline/OfflineTransactionManager.js +192 -8
- package/build/transaction/offline/OfflineTransactionManager.js.map +1 -0
- package/build/transaction/offline/TransactionReconstructor.d.ts +56 -6
- package/build/transaction/offline/TransactionReconstructor.d.ts.map +1 -0
- package/build/transaction/offline/TransactionReconstructor.js +111 -75
- package/build/transaction/offline/TransactionReconstructor.js.map +1 -0
- package/build/transaction/offline/TransactionSerializer.d.ts +54 -3
- package/build/transaction/offline/TransactionSerializer.d.ts.map +1 -0
- package/build/transaction/offline/TransactionSerializer.js +206 -95
- package/build/transaction/offline/TransactionSerializer.js.map +1 -0
- package/build/transaction/offline/TransactionStateCapture.d.ts +66 -7
- package/build/transaction/offline/TransactionStateCapture.d.ts.map +1 -0
- package/build/transaction/offline/TransactionStateCapture.js +124 -60
- package/build/transaction/offline/TransactionStateCapture.js.map +1 -0
- package/build/transaction/offline/interfaces/ISerializableState.d.ts +72 -1
- package/build/transaction/offline/interfaces/ISerializableState.d.ts.map +1 -0
- package/build/transaction/offline/interfaces/ISerializableState.js +10 -1
- package/build/transaction/offline/interfaces/ISerializableState.js.map +1 -0
- package/build/transaction/offline/interfaces/ITypeSpecificData.d.ts +77 -1
- package/build/transaction/offline/interfaces/ITypeSpecificData.d.ts.map +1 -0
- package/build/transaction/offline/interfaces/ITypeSpecificData.js +19 -0
- package/build/transaction/offline/interfaces/ITypeSpecificData.js.map +1 -0
- package/build/transaction/psbt/PSBTTypes.d.ts +1 -0
- package/build/transaction/psbt/PSBTTypes.d.ts.map +1 -0
- package/build/transaction/psbt/PSBTTypes.js +1 -0
- package/build/transaction/psbt/PSBTTypes.js.map +1 -0
- package/build/transaction/shared/P2TR_MS.d.ts +11 -2
- package/build/transaction/shared/P2TR_MS.d.ts.map +1 -0
- package/build/transaction/shared/P2TR_MS.js +10 -0
- package/build/transaction/shared/P2TR_MS.js.map +1 -0
- package/build/transaction/shared/TweakedTransaction.d.ts +281 -38
- package/build/transaction/shared/TweakedTransaction.d.ts.map +1 -0
- package/build/transaction/shared/TweakedTransaction.js +576 -114
- package/build/transaction/shared/TweakedTransaction.js.map +1 -0
- package/build/transaction/utils/WitnessUtils.d.ts +7 -1
- package/build/transaction/utils/WitnessUtils.d.ts.map +1 -0
- package/build/transaction/utils/WitnessUtils.js +17 -3
- package/build/transaction/utils/WitnessUtils.js.map +1 -0
- package/build/tsconfig.build.tsbuildinfo +1 -1
- package/build/utils/BitcoinUtils.d.ts +19 -0
- package/build/utils/BitcoinUtils.d.ts.map +1 -0
- package/build/utils/BitcoinUtils.js +19 -0
- package/build/utils/BitcoinUtils.js.map +1 -0
- package/build/utils/BufferHelper.d.ts +2 -1
- package/build/utils/BufferHelper.d.ts.map +1 -0
- package/build/utils/BufferHelper.js +38 -32
- package/build/utils/BufferHelper.js.map +1 -0
- package/build/utils/StringToBuffer.d.ts +1 -0
- package/build/utils/StringToBuffer.d.ts.map +1 -0
- package/build/utils/StringToBuffer.js +1 -0
- package/build/utils/StringToBuffer.js.map +1 -0
- package/build/utils/lengths.d.ts +1 -0
- package/build/utils/lengths.d.ts.map +1 -0
- package/build/utils/lengths.js +1 -0
- package/build/utils/lengths.js.map +1 -0
- package/build/utils/types.d.ts +1 -0
- package/build/utils/types.d.ts.map +1 -0
- package/build/utils/types.js +2 -1
- package/build/utils/types.js.map +1 -0
- package/build/utxo/OPNetLimitedProvider.d.ts +39 -3
- package/build/utxo/OPNetLimitedProvider.d.ts.map +1 -0
- package/build/utxo/OPNetLimitedProvider.js +43 -5
- package/build/utxo/OPNetLimitedProvider.js.map +1 -0
- package/build/utxo/interfaces/BroadcastResponse.d.ts +1 -0
- package/build/utxo/interfaces/BroadcastResponse.d.ts.map +1 -0
- package/build/utxo/interfaces/BroadcastResponse.js +1 -0
- package/build/utxo/interfaces/BroadcastResponse.js.map +1 -0
- package/build/utxo/interfaces/IUTXO.d.ts +13 -7
- package/build/utxo/interfaces/IUTXO.d.ts.map +1 -0
- package/build/utxo/interfaces/IUTXO.js +1 -0
- package/build/utxo/interfaces/IUTXO.js.map +1 -0
- package/build/verification/TapscriptVerificator.d.ts +12 -10
- package/build/verification/TapscriptVerificator.d.ts.map +1 -0
- package/build/verification/TapscriptVerificator.js +28 -38
- package/build/verification/TapscriptVerificator.js.map +1 -0
- package/eslint.config.js +0 -1
- package/package.json +12 -35
- package/src/abi/ABICoder.ts +0 -13
- package/src/branded/Branded.ts +5 -0
- package/src/buffer/BinaryReader.ts +7 -7
- package/src/buffer/BinaryWriter.ts +29 -24
- package/src/bytecode/Compressor.ts +1 -1
- package/src/chain/ChainData.ts +34 -27
- package/src/consensus/ConsensusConfig.ts +1 -1
- package/src/consensus/IConsensusConfig.ts +0 -17
- package/src/consensus/metadata/RoswellConsensus.ts +1 -17
- package/src/deterministic/AddressMap.ts +5 -1
- package/src/deterministic/AddressSet.ts +5 -1
- package/src/deterministic/CustomMap.ts +6 -2
- package/src/deterministic/DeterministicMap.ts +8 -4
- package/src/deterministic/DeterministicSet.ts +6 -2
- package/src/deterministic/ExtendedAddressMap.ts +9 -4
- package/src/deterministic/FastMap.ts +9 -5
- package/src/ecc/backend.ts +17 -0
- package/src/epoch/ChallengeSolution.ts +3 -3
- package/src/epoch/interfaces/IChallengeSolution.ts +13 -13
- package/src/epoch/validator/EpochValidator.ts +24 -43
- package/src/generators/AddressGenerator.ts +4 -7
- package/src/generators/Features.ts +3 -3
- package/src/generators/Generator.ts +42 -26
- package/src/generators/builders/CalldataGenerator.ts +26 -24
- package/src/generators/builders/CustomGenerator.ts +4 -4
- package/src/generators/builders/DeploymentGenerator.ts +25 -23
- package/src/generators/builders/HashCommitmentGenerator.ts +31 -31
- package/src/generators/builders/LegacyCalldataGenerator.ts +26 -24
- package/src/generators/builders/MultiSignGenerator.ts +12 -12
- package/src/generators/builders/P2WDAGenerator.ts +10 -10
- package/src/keypair/Address.ts +114 -71
- package/src/keypair/AddressVerificator.ts +14 -148
- package/src/keypair/EcKeyPair.ts +104 -116
- package/src/keypair/MessageSigner.ts +70 -150
- package/src/keypair/Wallet.ts +56 -241
- package/src/metadata/ContractBaseMetadata.ts +2 -2
- package/src/mnemonic/Mnemonic.ts +31 -222
- package/src/opnet.ts +12 -6
- package/src/p2wda/P2WDADetector.ts +23 -72
- package/src/polyfill/disposable.ts +29 -0
- package/src/signer/AddressRotation.ts +1 -1
- package/src/signer/IRotationSigner.ts +3 -3
- package/src/signer/ParallelSignerAdapter.ts +59 -0
- package/src/signer/SignerUtils.ts +4 -4
- package/src/signer/TweakedSigner.ts +26 -14
- package/src/transaction/ContractAddress.ts +3 -7
- package/src/transaction/TransactionFactory.ts +28 -50
- package/src/transaction/browser/BrowserSignerBase.ts +12 -6
- package/src/transaction/browser/Web3Provider.ts +3 -3
- package/src/transaction/browser/extensions/UnisatSigner.ts +52 -48
- package/src/transaction/browser/extensions/XverseSigner.ts +55 -38
- package/src/transaction/browser/types/OPWallet.ts +2 -2
- package/src/transaction/browser/types/Unisat.ts +1 -1
- package/src/transaction/builders/CancelTransaction.ts +59 -24
- package/src/transaction/builders/ChallengeSolutionTransaction.ts +3 -3
- package/src/transaction/builders/ConsolidatedInteractionTransaction.ts +39 -34
- package/src/transaction/builders/CustomScriptTransaction.ts +79 -56
- package/src/transaction/builders/DeploymentTransaction.ts +82 -63
- package/src/transaction/builders/FundingTransaction.ts +11 -11
- package/src/transaction/builders/InteractionTransaction.ts +10 -10
- package/src/transaction/builders/InteractionTransactionP2WDA.ts +38 -40
- package/src/transaction/builders/MultiSignTransaction.ts +68 -61
- package/src/transaction/builders/SharedInteractionTransaction.ts +81 -57
- package/src/transaction/builders/TransactionBuilder.ts +99 -81
- package/src/transaction/interfaces/ICancelTransactionParameters.ts +2 -2
- package/src/transaction/interfaces/IConsolidatedTransactionParameters.ts +5 -5
- package/src/transaction/interfaces/ICustomTransactionParameters.ts +5 -5
- package/src/transaction/interfaces/ITransactionParameters.ts +15 -15
- package/src/transaction/interfaces/ITransactionResponses.ts +2 -2
- package/src/transaction/interfaces/ITweakedTransactionData.ts +17 -8
- package/src/transaction/interfaces/IWeb3ProviderTypes.ts +3 -3
- package/src/transaction/interfaces/Tap.ts +3 -3
- package/src/transaction/mineable/IP2WSHAddress.ts +1 -1
- package/src/transaction/mineable/TimelockGenerator.ts +19 -12
- package/src/transaction/offline/OfflineTransactionManager.ts +22 -23
- package/src/transaction/offline/TransactionReconstructor.ts +83 -91
- package/src/transaction/offline/TransactionSerializer.ts +151 -101
- package/src/transaction/offline/TransactionStateCapture.ts +83 -79
- package/src/transaction/offline/interfaces/ISerializableState.ts +1 -1
- package/src/transaction/offline/interfaces/ITypeSpecificData.ts +1 -1
- package/src/transaction/shared/P2TR_MS.ts +4 -4
- package/src/transaction/shared/TweakedTransaction.ts +326 -124
- package/src/transaction/utils/WitnessUtils.ts +18 -9
- package/src/utils/BufferHelper.ts +39 -37
- package/src/utxo/OPNetLimitedProvider.ts +9 -9
- package/src/utxo/interfaces/IUTXO.ts +7 -7
- package/src/verification/TapscriptVerificator.ts +73 -86
- package/test/address-rotation.test.ts +24 -24
- package/test/address.test.ts +12 -12
- package/test/addressmap.test.ts +30 -30
- package/test/binary-reader-writer.test.ts +8 -8
- package/test/browser/offline-transaction.test.ts +2206 -0
- package/test/browser/parallel-signing.test.ts +316 -0
- package/test/browser/setup.ts +11 -0
- package/test/browser/transaction-signing.test.ts +416 -0
- package/test/buffer-helper.test.ts +287 -0
- package/test/derivePath.test.ts +4 -3
- package/test/disposable.test.ts +279 -0
- package/test/fastmap-setall.test.ts +1 -1
- package/test/fastmap.test.ts +3 -3
- package/test/messagesigner-mldsa.test.ts +3 -3
- package/test/messagesigner-schnorr.test.ts +9 -9
- package/test/offline-transaction.test.ts +461 -288
- package/test/old/FastBigIntMap.ts +3 -3
- package/test/oldfastmap.test.ts +6 -6
- package/test/transaction-builders.test.ts +321 -0
- package/tsconfig.base.json +34 -18
- package/tsconfig.browser.json +15 -0
- package/tsconfig.json +3 -8
- package/vite.config.browser.ts +4 -5
- package/vitest.config.browser.ts +68 -0
- package/vitest.config.ts +1 -1
- package/browser/valibot.js +0 -4948
- package/tsconfig.webpack.json +0 -18
|
@@ -1,46 +1,83 @@
|
|
|
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
5
|
import { SERIALIZATION_FORMAT_VERSION, SERIALIZATION_MAGIC_BYTE, } from './interfaces/ISerializableState.js';
|
|
5
6
|
import { TransactionType } from '../enums/TransactionType.js';
|
|
7
|
+
/**
|
|
8
|
+
* Serializes and deserializes transaction state for offline signing.
|
|
9
|
+
* Uses binary format for compact size.
|
|
10
|
+
*/
|
|
6
11
|
export class TransactionSerializer {
|
|
12
|
+
/**
|
|
13
|
+
* Serialize transaction state to binary format
|
|
14
|
+
* @param state - The transaction state to serialize
|
|
15
|
+
* @returns Uint8Array containing serialized state with checksum
|
|
16
|
+
*/
|
|
7
17
|
static serialize(state) {
|
|
8
18
|
const writer = new BinaryWriter();
|
|
19
|
+
// Write header
|
|
9
20
|
this.writeHeader(writer, state.header);
|
|
21
|
+
// Write base params
|
|
10
22
|
this.writeBaseParams(writer, state.baseParams);
|
|
23
|
+
// Write UTXOs
|
|
11
24
|
this.writeUTXOArray(writer, state.utxos);
|
|
12
25
|
this.writeUTXOArray(writer, state.optionalInputs);
|
|
26
|
+
// Write optional outputs
|
|
13
27
|
this.writeOutputArray(writer, state.optionalOutputs);
|
|
28
|
+
// Write signer mappings
|
|
14
29
|
writer.writeBoolean(state.addressRotationEnabled);
|
|
15
30
|
this.writeSignerMappings(writer, state.signerMappings);
|
|
31
|
+
// Write type-specific data
|
|
16
32
|
this.writeTypeSpecificData(writer, state.typeSpecificData);
|
|
33
|
+
// Write precomputed data
|
|
17
34
|
this.writePrecomputedData(writer, state.precomputedData);
|
|
18
|
-
|
|
35
|
+
// Get buffer and calculate checksum
|
|
36
|
+
const dataBuffer = writer.getBuffer();
|
|
19
37
|
const checksum = this.calculateChecksum(dataBuffer);
|
|
20
|
-
|
|
21
|
-
|
|
38
|
+
// Concatenate data + checksum
|
|
39
|
+
const result = new Uint8Array(dataBuffer.length + checksum.length);
|
|
40
|
+
result.set(dataBuffer, 0);
|
|
41
|
+
result.set(checksum, dataBuffer.length);
|
|
42
|
+
return result;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Deserialize binary format to transaction state
|
|
46
|
+
* @param data - Uint8Array containing serialized state
|
|
47
|
+
* @returns Deserialized transaction state
|
|
48
|
+
* @throws Error if checksum validation fails or format is invalid
|
|
49
|
+
*/
|
|
22
50
|
static deserialize(data) {
|
|
51
|
+
// Verify checksum (last 32 bytes)
|
|
23
52
|
if (data.length < 32) {
|
|
24
53
|
throw new Error('Invalid serialized data: too short');
|
|
25
54
|
}
|
|
26
55
|
const checksum = data.subarray(-32);
|
|
27
56
|
const payload = data.subarray(0, -32);
|
|
28
57
|
const expectedChecksum = this.calculateChecksum(payload);
|
|
29
|
-
if (!
|
|
58
|
+
if (!this.bytesEqual(checksum, expectedChecksum)) {
|
|
30
59
|
throw new Error('Invalid checksum - data may be corrupted');
|
|
31
60
|
}
|
|
32
61
|
const reader = new BinaryReader(payload);
|
|
62
|
+
// Read header
|
|
33
63
|
const header = this.readHeader(reader);
|
|
64
|
+
// Verify format version
|
|
34
65
|
if (header.formatVersion > SERIALIZATION_FORMAT_VERSION) {
|
|
35
66
|
throw new Error(`Unsupported format version: ${header.formatVersion}`);
|
|
36
67
|
}
|
|
68
|
+
// Read base params
|
|
37
69
|
const baseParams = this.readBaseParams(reader);
|
|
70
|
+
// Read UTXOs
|
|
38
71
|
const utxos = this.readUTXOArray(reader);
|
|
39
72
|
const optionalInputs = this.readUTXOArray(reader);
|
|
73
|
+
// Read optional outputs
|
|
40
74
|
const optionalOutputs = this.readOutputArray(reader);
|
|
75
|
+
// Read signer mappings
|
|
41
76
|
const addressRotationEnabled = reader.readBoolean();
|
|
42
77
|
const signerMappings = this.readSignerMappings(reader);
|
|
78
|
+
// Read type-specific data
|
|
43
79
|
const typeSpecificData = this.readTypeSpecificData(reader, header.transactionType);
|
|
80
|
+
// Read precomputed data
|
|
44
81
|
const precomputedData = this.readPrecomputedData(reader);
|
|
45
82
|
return {
|
|
46
83
|
header,
|
|
@@ -54,17 +91,38 @@ export class TransactionSerializer {
|
|
|
54
91
|
precomputedData,
|
|
55
92
|
};
|
|
56
93
|
}
|
|
94
|
+
/**
|
|
95
|
+
* Export state as base64 string (for transport)
|
|
96
|
+
* @param state - Transaction state to export
|
|
97
|
+
* @returns Base64-encoded string
|
|
98
|
+
*/
|
|
57
99
|
static toBase64(state) {
|
|
58
|
-
|
|
59
|
-
|
|
100
|
+
const bytes = this.serialize(state);
|
|
101
|
+
return this.uint8ArrayToBase64(bytes);
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Import state from base64 string
|
|
105
|
+
* @param base64 - Base64-encoded state
|
|
106
|
+
* @returns Deserialized transaction state
|
|
107
|
+
*/
|
|
60
108
|
static fromBase64(base64) {
|
|
61
|
-
return this.deserialize(
|
|
109
|
+
return this.deserialize(this.base64ToUint8Array(base64));
|
|
62
110
|
}
|
|
111
|
+
/**
|
|
112
|
+
* Export state as hex string
|
|
113
|
+
* @param state - Transaction state to export
|
|
114
|
+
* @returns Hex-encoded string
|
|
115
|
+
*/
|
|
63
116
|
static toHex(state) {
|
|
64
|
-
return this.serialize(state)
|
|
117
|
+
return toHex(this.serialize(state));
|
|
65
118
|
}
|
|
119
|
+
/**
|
|
120
|
+
* Import state from hex string
|
|
121
|
+
* @param hex - Hex-encoded state
|
|
122
|
+
* @returns Deserialized transaction state
|
|
123
|
+
*/
|
|
66
124
|
static fromHex(hex) {
|
|
67
|
-
return this.deserialize(
|
|
125
|
+
return this.deserialize(fromHex(hex));
|
|
68
126
|
}
|
|
69
127
|
static writeHeader(writer, header) {
|
|
70
128
|
writer.writeU8(SERIALIZATION_MAGIC_BYTE);
|
|
@@ -93,14 +151,14 @@ export class TransactionSerializer {
|
|
|
93
151
|
if (params.to !== undefined) {
|
|
94
152
|
writer.writeStringWithLength(params.to);
|
|
95
153
|
}
|
|
96
|
-
writer.writeU32(Math.floor(params.feeRate * 1000));
|
|
154
|
+
writer.writeU32(Math.floor(params.feeRate * 1000)); // Store as milli-sat/vB for precision
|
|
97
155
|
writer.writeU64(BigInt(params.priorityFee));
|
|
98
156
|
writer.writeU64(BigInt(params.gasSatFee));
|
|
99
157
|
writer.writeU8(this.networkNameToU8(params.networkName));
|
|
100
158
|
writer.writeU8(params.txVersion);
|
|
101
159
|
writer.writeBoolean(params.note !== undefined);
|
|
102
160
|
if (params.note !== undefined) {
|
|
103
|
-
writer.writeBytesWithLength(
|
|
161
|
+
writer.writeBytesWithLength(fromHex(params.note));
|
|
104
162
|
}
|
|
105
163
|
writer.writeBoolean(params.anchor);
|
|
106
164
|
writer.writeBoolean(params.debugFees ?? false);
|
|
@@ -109,28 +167,28 @@ export class TransactionSerializer {
|
|
|
109
167
|
const from = reader.readStringWithLength();
|
|
110
168
|
const hasTo = reader.readBoolean();
|
|
111
169
|
const to = hasTo ? reader.readStringWithLength() : undefined;
|
|
112
|
-
const feeRate = reader.readU32() / 1000;
|
|
170
|
+
const feeRate = reader.readU32() / 1000; // Convert back from milli-sat/vB
|
|
113
171
|
const priorityFee = reader.readU64().toString();
|
|
114
172
|
const gasSatFee = reader.readU64().toString();
|
|
115
173
|
const networkName = this.u8ToNetworkName(reader.readU8());
|
|
116
174
|
const txVersion = reader.readU8();
|
|
117
175
|
const hasNote = reader.readBoolean();
|
|
118
176
|
const note = hasNote
|
|
119
|
-
?
|
|
177
|
+
? toHex(reader.readBytesWithLength())
|
|
120
178
|
: undefined;
|
|
121
179
|
const anchor = reader.readBoolean();
|
|
122
180
|
const debugFees = reader.readBoolean();
|
|
123
181
|
return {
|
|
124
182
|
from,
|
|
125
|
-
to,
|
|
126
183
|
feeRate,
|
|
127
184
|
priorityFee,
|
|
128
185
|
gasSatFee,
|
|
129
186
|
networkName,
|
|
130
187
|
txVersion,
|
|
131
|
-
note,
|
|
132
188
|
anchor,
|
|
133
189
|
debugFees,
|
|
190
|
+
...(to !== undefined ? { to } : {}),
|
|
191
|
+
...(note !== undefined ? { note } : {}),
|
|
134
192
|
};
|
|
135
193
|
}
|
|
136
194
|
static writeUTXOArray(writer, utxos) {
|
|
@@ -140,25 +198,28 @@ export class TransactionSerializer {
|
|
|
140
198
|
}
|
|
141
199
|
}
|
|
142
200
|
static writeUTXO(writer, utxo) {
|
|
143
|
-
|
|
201
|
+
// Transaction ID (32 bytes)
|
|
202
|
+
writer.writeBytes(fromHex(utxo.transactionId));
|
|
144
203
|
writer.writeU32(utxo.outputIndex);
|
|
145
204
|
writer.writeU64(BigInt(utxo.value));
|
|
146
|
-
writer.writeBytesWithLength(
|
|
205
|
+
writer.writeBytesWithLength(fromHex(utxo.scriptPubKeyHex));
|
|
206
|
+
// Optional address
|
|
147
207
|
writer.writeBoolean(utxo.scriptPubKeyAddress !== undefined);
|
|
148
208
|
if (utxo.scriptPubKeyAddress !== undefined) {
|
|
149
209
|
writer.writeStringWithLength(utxo.scriptPubKeyAddress);
|
|
150
210
|
}
|
|
211
|
+
// Optional scripts
|
|
151
212
|
writer.writeBoolean(utxo.redeemScript !== undefined);
|
|
152
213
|
if (utxo.redeemScript !== undefined) {
|
|
153
|
-
writer.writeBytesWithLength(
|
|
214
|
+
writer.writeBytesWithLength(fromHex(utxo.redeemScript));
|
|
154
215
|
}
|
|
155
216
|
writer.writeBoolean(utxo.witnessScript !== undefined);
|
|
156
217
|
if (utxo.witnessScript !== undefined) {
|
|
157
|
-
writer.writeBytesWithLength(
|
|
218
|
+
writer.writeBytesWithLength(fromHex(utxo.witnessScript));
|
|
158
219
|
}
|
|
159
220
|
writer.writeBoolean(utxo.nonWitnessUtxo !== undefined);
|
|
160
221
|
if (utxo.nonWitnessUtxo !== undefined) {
|
|
161
|
-
writer.writeBytesWithLength(
|
|
222
|
+
writer.writeBytesWithLength(fromHex(utxo.nonWitnessUtxo));
|
|
162
223
|
}
|
|
163
224
|
}
|
|
164
225
|
static readUTXOArray(reader) {
|
|
@@ -170,33 +231,33 @@ export class TransactionSerializer {
|
|
|
170
231
|
return utxos;
|
|
171
232
|
}
|
|
172
233
|
static readUTXO(reader) {
|
|
173
|
-
const transactionId =
|
|
234
|
+
const transactionId = toHex(reader.readBytes(32));
|
|
174
235
|
const outputIndex = reader.readU32();
|
|
175
236
|
const value = reader.readU64().toString();
|
|
176
|
-
const scriptPubKeyHex =
|
|
237
|
+
const scriptPubKeyHex = toHex(reader.readBytesWithLength());
|
|
177
238
|
const hasAddress = reader.readBoolean();
|
|
178
239
|
const scriptPubKeyAddress = hasAddress ? reader.readStringWithLength() : undefined;
|
|
179
240
|
const hasRedeemScript = reader.readBoolean();
|
|
180
241
|
const redeemScript = hasRedeemScript
|
|
181
|
-
?
|
|
242
|
+
? toHex(reader.readBytesWithLength())
|
|
182
243
|
: undefined;
|
|
183
244
|
const hasWitnessScript = reader.readBoolean();
|
|
184
245
|
const witnessScript = hasWitnessScript
|
|
185
|
-
?
|
|
246
|
+
? toHex(reader.readBytesWithLength())
|
|
186
247
|
: undefined;
|
|
187
248
|
const hasNonWitnessUtxo = reader.readBoolean();
|
|
188
249
|
const nonWitnessUtxo = hasNonWitnessUtxo
|
|
189
|
-
?
|
|
250
|
+
? toHex(reader.readBytesWithLength())
|
|
190
251
|
: undefined;
|
|
191
252
|
return {
|
|
192
253
|
transactionId,
|
|
193
254
|
outputIndex,
|
|
194
255
|
value,
|
|
195
256
|
scriptPubKeyHex,
|
|
196
|
-
scriptPubKeyAddress,
|
|
197
|
-
redeemScript,
|
|
198
|
-
witnessScript,
|
|
199
|
-
nonWitnessUtxo,
|
|
257
|
+
...(scriptPubKeyAddress !== undefined ? { scriptPubKeyAddress } : {}),
|
|
258
|
+
...(redeemScript !== undefined ? { redeemScript } : {}),
|
|
259
|
+
...(witnessScript !== undefined ? { witnessScript } : {}),
|
|
260
|
+
...(nonWitnessUtxo !== undefined ? { nonWitnessUtxo } : {}),
|
|
200
261
|
};
|
|
201
262
|
}
|
|
202
263
|
static writeOutputArray(writer, outputs) {
|
|
@@ -213,11 +274,11 @@ export class TransactionSerializer {
|
|
|
213
274
|
}
|
|
214
275
|
writer.writeBoolean(output.script !== undefined);
|
|
215
276
|
if (output.script !== undefined) {
|
|
216
|
-
writer.writeBytesWithLength(
|
|
277
|
+
writer.writeBytesWithLength(fromHex(output.script));
|
|
217
278
|
}
|
|
218
279
|
writer.writeBoolean(output.tapInternalKey !== undefined);
|
|
219
280
|
if (output.tapInternalKey !== undefined) {
|
|
220
|
-
writer.writeBytesWithLength(
|
|
281
|
+
writer.writeBytesWithLength(fromHex(output.tapInternalKey));
|
|
221
282
|
}
|
|
222
283
|
}
|
|
223
284
|
static readOutputArray(reader) {
|
|
@@ -234,13 +295,18 @@ export class TransactionSerializer {
|
|
|
234
295
|
const address = hasAddress ? reader.readStringWithLength() : undefined;
|
|
235
296
|
const hasScript = reader.readBoolean();
|
|
236
297
|
const script = hasScript
|
|
237
|
-
?
|
|
298
|
+
? toHex(reader.readBytesWithLength())
|
|
238
299
|
: undefined;
|
|
239
300
|
const hasTapInternalKey = reader.readBoolean();
|
|
240
301
|
const tapInternalKey = hasTapInternalKey
|
|
241
|
-
?
|
|
302
|
+
? toHex(reader.readBytesWithLength())
|
|
242
303
|
: undefined;
|
|
243
|
-
return {
|
|
304
|
+
return {
|
|
305
|
+
value,
|
|
306
|
+
...(address !== undefined ? { address } : {}),
|
|
307
|
+
...(script !== undefined ? { script } : {}),
|
|
308
|
+
...(tapInternalKey !== undefined ? { tapInternalKey } : {}),
|
|
309
|
+
};
|
|
244
310
|
}
|
|
245
311
|
static writeSignerMappings(writer, mappings) {
|
|
246
312
|
writer.writeU16(mappings.length);
|
|
@@ -308,6 +374,7 @@ export class TransactionSerializer {
|
|
|
308
374
|
throw new Error(`Unsupported transaction type: ${type}`);
|
|
309
375
|
}
|
|
310
376
|
}
|
|
377
|
+
// Funding
|
|
311
378
|
static writeFundingData(writer, data) {
|
|
312
379
|
writer.writeU64(BigInt(data.amount));
|
|
313
380
|
writer.writeU16(data.splitInputsInto);
|
|
@@ -319,45 +386,47 @@ export class TransactionSerializer {
|
|
|
319
386
|
splitInputsInto: reader.readU16(),
|
|
320
387
|
};
|
|
321
388
|
}
|
|
389
|
+
// Deployment
|
|
322
390
|
static writeDeploymentData(writer, data) {
|
|
323
|
-
writer.writeBytesWithLength(
|
|
391
|
+
writer.writeBytesWithLength(fromHex(data.bytecode));
|
|
324
392
|
writer.writeBoolean(data.calldata !== undefined);
|
|
325
393
|
if (data.calldata !== undefined) {
|
|
326
|
-
writer.writeBytesWithLength(
|
|
394
|
+
writer.writeBytesWithLength(fromHex(data.calldata));
|
|
327
395
|
}
|
|
328
396
|
this.writeChallenge(writer, data.challenge);
|
|
329
397
|
writer.writeBoolean(data.revealMLDSAPublicKey ?? false);
|
|
330
398
|
writer.writeBoolean(data.linkMLDSAPublicKeyToAddress ?? false);
|
|
331
399
|
writer.writeBoolean(data.hashedPublicKey !== undefined);
|
|
332
400
|
if (data.hashedPublicKey !== undefined) {
|
|
333
|
-
writer.writeBytesWithLength(
|
|
401
|
+
writer.writeBytesWithLength(fromHex(data.hashedPublicKey));
|
|
334
402
|
}
|
|
335
403
|
}
|
|
336
404
|
static readDeploymentData(reader) {
|
|
337
|
-
const bytecode =
|
|
405
|
+
const bytecode = toHex(reader.readBytesWithLength());
|
|
338
406
|
const hasCalldata = reader.readBoolean();
|
|
339
407
|
const calldata = hasCalldata
|
|
340
|
-
?
|
|
408
|
+
? toHex(reader.readBytesWithLength())
|
|
341
409
|
: undefined;
|
|
342
410
|
const challenge = this.readChallenge(reader);
|
|
343
411
|
const revealMLDSAPublicKey = reader.readBoolean();
|
|
344
412
|
const linkMLDSAPublicKeyToAddress = reader.readBoolean();
|
|
345
413
|
const hasHashedPublicKey = reader.readBoolean();
|
|
346
414
|
const hashedPublicKey = hasHashedPublicKey
|
|
347
|
-
?
|
|
415
|
+
? toHex(reader.readBytesWithLength())
|
|
348
416
|
: undefined;
|
|
349
417
|
return {
|
|
350
418
|
type: TransactionType.DEPLOYMENT,
|
|
351
419
|
bytecode,
|
|
352
|
-
calldata,
|
|
353
420
|
challenge,
|
|
354
421
|
revealMLDSAPublicKey,
|
|
355
422
|
linkMLDSAPublicKeyToAddress,
|
|
356
|
-
|
|
423
|
+
...(calldata !== undefined ? { calldata } : {}),
|
|
424
|
+
...(hashedPublicKey !== undefined ? { hashedPublicKey } : {}),
|
|
357
425
|
};
|
|
358
426
|
}
|
|
427
|
+
// Interaction
|
|
359
428
|
static writeInteractionData(writer, data) {
|
|
360
|
-
writer.writeBytesWithLength(
|
|
429
|
+
writer.writeBytesWithLength(fromHex(data.calldata));
|
|
361
430
|
writer.writeBoolean(data.contract !== undefined);
|
|
362
431
|
if (data.contract !== undefined) {
|
|
363
432
|
writer.writeStringWithLength(data.contract);
|
|
@@ -373,11 +442,11 @@ export class TransactionSerializer {
|
|
|
373
442
|
writer.writeBoolean(data.linkMLDSAPublicKeyToAddress ?? false);
|
|
374
443
|
writer.writeBoolean(data.hashedPublicKey !== undefined);
|
|
375
444
|
if (data.hashedPublicKey !== undefined) {
|
|
376
|
-
writer.writeBytesWithLength(
|
|
445
|
+
writer.writeBytesWithLength(fromHex(data.hashedPublicKey));
|
|
377
446
|
}
|
|
378
447
|
}
|
|
379
448
|
static readInteractionData(reader) {
|
|
380
|
-
const calldata =
|
|
449
|
+
const calldata = toHex(reader.readBytesWithLength());
|
|
381
450
|
const hasContract = reader.readBoolean();
|
|
382
451
|
const contract = hasContract ? reader.readStringWithLength() : undefined;
|
|
383
452
|
const challenge = this.readChallenge(reader);
|
|
@@ -389,25 +458,26 @@ export class TransactionSerializer {
|
|
|
389
458
|
const linkMLDSAPublicKeyToAddress = reader.readBoolean();
|
|
390
459
|
const hasHashedPublicKey = reader.readBoolean();
|
|
391
460
|
const hashedPublicKey = hasHashedPublicKey
|
|
392
|
-
?
|
|
461
|
+
? toHex(reader.readBytesWithLength())
|
|
393
462
|
: undefined;
|
|
394
463
|
return {
|
|
395
464
|
type: TransactionType.INTERACTION,
|
|
396
465
|
calldata,
|
|
397
|
-
contract,
|
|
398
466
|
challenge,
|
|
399
|
-
loadedStorage,
|
|
400
467
|
isCancellation,
|
|
401
468
|
disableAutoRefund,
|
|
402
469
|
revealMLDSAPublicKey,
|
|
403
470
|
linkMLDSAPublicKeyToAddress,
|
|
404
|
-
|
|
471
|
+
...(contract !== undefined ? { contract } : {}),
|
|
472
|
+
...(loadedStorage !== undefined ? { loadedStorage } : {}),
|
|
473
|
+
...(hashedPublicKey !== undefined ? { hashedPublicKey } : {}),
|
|
405
474
|
};
|
|
406
475
|
}
|
|
476
|
+
// MultiSig
|
|
407
477
|
static writeMultiSigData(writer, data) {
|
|
408
478
|
writer.writeU16(data.pubkeys.length);
|
|
409
479
|
for (const pubkey of data.pubkeys) {
|
|
410
|
-
writer.writeBytesWithLength(
|
|
480
|
+
writer.writeBytesWithLength(fromHex(pubkey));
|
|
411
481
|
}
|
|
412
482
|
writer.writeU8(data.minimumSignatures);
|
|
413
483
|
writer.writeStringWithLength(data.receiver);
|
|
@@ -423,7 +493,7 @@ export class TransactionSerializer {
|
|
|
423
493
|
const pubkeysCount = reader.readU16();
|
|
424
494
|
const pubkeys = [];
|
|
425
495
|
for (let i = 0; i < pubkeysCount; i++) {
|
|
426
|
-
pubkeys.push(
|
|
496
|
+
pubkeys.push(toHex(reader.readBytesWithLength()));
|
|
427
497
|
}
|
|
428
498
|
const minimumSignatures = reader.readU8();
|
|
429
499
|
const receiver = reader.readStringWithLength();
|
|
@@ -440,9 +510,10 @@ export class TransactionSerializer {
|
|
|
440
510
|
requestedAmount,
|
|
441
511
|
refundVault,
|
|
442
512
|
originalInputCount,
|
|
443
|
-
existingPsbtBase64,
|
|
513
|
+
...(existingPsbtBase64 !== undefined ? { existingPsbtBase64 } : {}),
|
|
444
514
|
};
|
|
445
515
|
}
|
|
516
|
+
// Custom Script
|
|
446
517
|
static writeCustomScriptData(writer, data) {
|
|
447
518
|
writer.writeU16(data.scriptElements.length);
|
|
448
519
|
for (const element of data.scriptElements) {
|
|
@@ -450,17 +521,17 @@ export class TransactionSerializer {
|
|
|
450
521
|
}
|
|
451
522
|
writer.writeU16(data.witnesses.length);
|
|
452
523
|
for (const witness of data.witnesses) {
|
|
453
|
-
writer.writeBytesWithLength(
|
|
524
|
+
writer.writeBytesWithLength(fromHex(witness));
|
|
454
525
|
}
|
|
455
526
|
writer.writeBoolean(data.annex !== undefined);
|
|
456
527
|
if (data.annex !== undefined) {
|
|
457
|
-
writer.writeBytesWithLength(
|
|
528
|
+
writer.writeBytesWithLength(fromHex(data.annex));
|
|
458
529
|
}
|
|
459
530
|
}
|
|
460
531
|
static writeScriptElement(writer, element) {
|
|
461
532
|
writer.writeU8(element.elementType === 'buffer' ? 0 : 1);
|
|
462
533
|
if (element.elementType === 'buffer') {
|
|
463
|
-
writer.writeBytesWithLength(
|
|
534
|
+
writer.writeBytesWithLength(fromHex(element.value));
|
|
464
535
|
}
|
|
465
536
|
else {
|
|
466
537
|
writer.writeU32(element.value);
|
|
@@ -475,17 +546,17 @@ export class TransactionSerializer {
|
|
|
475
546
|
const witnessesCount = reader.readU16();
|
|
476
547
|
const witnesses = [];
|
|
477
548
|
for (let i = 0; i < witnessesCount; i++) {
|
|
478
|
-
witnesses.push(
|
|
549
|
+
witnesses.push(toHex(reader.readBytesWithLength()));
|
|
479
550
|
}
|
|
480
551
|
const hasAnnex = reader.readBoolean();
|
|
481
552
|
const annex = hasAnnex
|
|
482
|
-
?
|
|
553
|
+
? toHex(reader.readBytesWithLength())
|
|
483
554
|
: undefined;
|
|
484
555
|
return {
|
|
485
556
|
type: TransactionType.CUSTOM_CODE,
|
|
486
557
|
scriptElements,
|
|
487
558
|
witnesses,
|
|
488
|
-
annex,
|
|
559
|
+
...(annex !== undefined ? { annex } : {}),
|
|
489
560
|
};
|
|
490
561
|
}
|
|
491
562
|
static readScriptElement(reader) {
|
|
@@ -493,7 +564,7 @@ export class TransactionSerializer {
|
|
|
493
564
|
if (typeFlag === 0) {
|
|
494
565
|
return {
|
|
495
566
|
elementType: 'buffer',
|
|
496
|
-
value:
|
|
567
|
+
value: toHex(reader.readBytesWithLength()),
|
|
497
568
|
};
|
|
498
569
|
}
|
|
499
570
|
else {
|
|
@@ -503,55 +574,58 @@ export class TransactionSerializer {
|
|
|
503
574
|
};
|
|
504
575
|
}
|
|
505
576
|
}
|
|
577
|
+
// Cancel
|
|
506
578
|
static writeCancelData(writer, data) {
|
|
507
|
-
writer.writeBytesWithLength(
|
|
579
|
+
writer.writeBytesWithLength(fromHex(data.compiledTargetScript));
|
|
508
580
|
}
|
|
509
581
|
static readCancelData(reader) {
|
|
510
582
|
return {
|
|
511
583
|
type: TransactionType.CANCEL,
|
|
512
|
-
compiledTargetScript:
|
|
584
|
+
compiledTargetScript: toHex(reader.readBytesWithLength()),
|
|
513
585
|
};
|
|
514
586
|
}
|
|
515
587
|
static writeChallenge(writer, challenge) {
|
|
516
588
|
writer.writeU64(BigInt(challenge.epochNumber));
|
|
517
589
|
writer.writeStringWithLength(challenge.mldsaPublicKey);
|
|
518
590
|
writer.writeStringWithLength(challenge.legacyPublicKey);
|
|
519
|
-
writer.writeBytesWithLength(
|
|
520
|
-
writer.writeBytesWithLength(
|
|
521
|
-
writer.writeBytesWithLength(
|
|
591
|
+
writer.writeBytesWithLength(fromHex(challenge.solution.replace('0x', '')));
|
|
592
|
+
writer.writeBytesWithLength(fromHex(challenge.salt.replace('0x', '')));
|
|
593
|
+
writer.writeBytesWithLength(fromHex(challenge.graffiti.replace('0x', '')));
|
|
522
594
|
writer.writeU8(challenge.difficulty);
|
|
595
|
+
// Verification
|
|
523
596
|
this.writeChallengeVerification(writer, challenge.verification);
|
|
597
|
+
// Optional submission
|
|
524
598
|
writer.writeBoolean(challenge.submission !== undefined);
|
|
525
599
|
if (challenge.submission !== undefined) {
|
|
526
600
|
writer.writeStringWithLength(challenge.submission.mldsaPublicKey);
|
|
527
601
|
writer.writeStringWithLength(challenge.submission.legacyPublicKey);
|
|
528
|
-
writer.writeBytesWithLength(
|
|
602
|
+
writer.writeBytesWithLength(fromHex(challenge.submission.solution.replace('0x', '')));
|
|
529
603
|
writer.writeBoolean(challenge.submission.graffiti !== undefined);
|
|
530
604
|
if (challenge.submission.graffiti !== undefined) {
|
|
531
|
-
writer.writeBytesWithLength(
|
|
605
|
+
writer.writeBytesWithLength(fromHex(challenge.submission.graffiti.replace('0x', '')));
|
|
532
606
|
}
|
|
533
|
-
writer.writeBytesWithLength(
|
|
607
|
+
writer.writeBytesWithLength(fromHex(challenge.submission.signature.replace('0x', '')));
|
|
534
608
|
}
|
|
535
609
|
}
|
|
536
610
|
static writeChallengeVerification(writer, verification) {
|
|
537
|
-
writer.writeBytesWithLength(
|
|
538
|
-
writer.writeBytesWithLength(
|
|
539
|
-
writer.writeBytesWithLength(
|
|
540
|
-
writer.writeBytesWithLength(
|
|
611
|
+
writer.writeBytesWithLength(fromHex(verification.epochHash.replace('0x', '')));
|
|
612
|
+
writer.writeBytesWithLength(fromHex(verification.epochRoot.replace('0x', '')));
|
|
613
|
+
writer.writeBytesWithLength(fromHex(verification.targetHash.replace('0x', '')));
|
|
614
|
+
writer.writeBytesWithLength(fromHex(verification.targetChecksum.replace('0x', '')));
|
|
541
615
|
writer.writeU64(BigInt(verification.startBlock));
|
|
542
616
|
writer.writeU64(BigInt(verification.endBlock));
|
|
543
617
|
writer.writeU16(verification.proofs.length);
|
|
544
618
|
for (const proof of verification.proofs) {
|
|
545
|
-
writer.writeBytesWithLength(
|
|
619
|
+
writer.writeBytesWithLength(fromHex(proof.replace('0x', '')));
|
|
546
620
|
}
|
|
547
621
|
}
|
|
548
622
|
static readChallenge(reader) {
|
|
549
623
|
const epochNumber = reader.readU64().toString();
|
|
550
624
|
const mldsaPublicKey = reader.readStringWithLength();
|
|
551
625
|
const legacyPublicKey = reader.readStringWithLength();
|
|
552
|
-
const solution = '0x' +
|
|
553
|
-
const salt = '0x' +
|
|
554
|
-
const graffiti = '0x' +
|
|
626
|
+
const solution = '0x' + toHex(reader.readBytesWithLength());
|
|
627
|
+
const salt = '0x' + toHex(reader.readBytesWithLength());
|
|
628
|
+
const graffiti = '0x' + toHex(reader.readBytesWithLength());
|
|
555
629
|
const difficulty = reader.readU8();
|
|
556
630
|
const verification = this.readChallengeVerification(reader);
|
|
557
631
|
const hasSubmission = reader.readBoolean();
|
|
@@ -559,18 +633,18 @@ export class TransactionSerializer {
|
|
|
559
633
|
if (hasSubmission) {
|
|
560
634
|
const subMldsaPublicKey = reader.readStringWithLength();
|
|
561
635
|
const subLegacyPublicKey = reader.readStringWithLength();
|
|
562
|
-
const subSolution = '0x' +
|
|
636
|
+
const subSolution = '0x' + toHex(reader.readBytesWithLength());
|
|
563
637
|
const hasGraffiti = reader.readBoolean();
|
|
564
638
|
const subGraffiti = hasGraffiti
|
|
565
|
-
? '0x' +
|
|
639
|
+
? '0x' + toHex(reader.readBytesWithLength())
|
|
566
640
|
: undefined;
|
|
567
|
-
const subSignature = '0x' +
|
|
641
|
+
const subSignature = '0x' + toHex(reader.readBytesWithLength());
|
|
568
642
|
submission = {
|
|
569
643
|
mldsaPublicKey: subMldsaPublicKey,
|
|
570
644
|
legacyPublicKey: subLegacyPublicKey,
|
|
571
645
|
solution: subSolution,
|
|
572
|
-
graffiti: subGraffiti,
|
|
573
646
|
signature: subSignature,
|
|
647
|
+
...(subGraffiti !== undefined ? { graffiti: subGraffiti } : {}),
|
|
574
648
|
};
|
|
575
649
|
}
|
|
576
650
|
return {
|
|
@@ -582,20 +656,20 @@ export class TransactionSerializer {
|
|
|
582
656
|
graffiti,
|
|
583
657
|
difficulty,
|
|
584
658
|
verification,
|
|
585
|
-
submission,
|
|
659
|
+
...(submission !== undefined ? { submission } : {}),
|
|
586
660
|
};
|
|
587
661
|
}
|
|
588
662
|
static readChallengeVerification(reader) {
|
|
589
|
-
const epochHash = '0x' +
|
|
590
|
-
const epochRoot = '0x' +
|
|
591
|
-
const targetHash = '0x' +
|
|
592
|
-
const targetChecksum = '0x' +
|
|
663
|
+
const epochHash = '0x' + toHex(reader.readBytesWithLength());
|
|
664
|
+
const epochRoot = '0x' + toHex(reader.readBytesWithLength());
|
|
665
|
+
const targetHash = '0x' + toHex(reader.readBytesWithLength());
|
|
666
|
+
const targetChecksum = '0x' + toHex(reader.readBytesWithLength());
|
|
593
667
|
const startBlock = reader.readU64().toString();
|
|
594
668
|
const endBlock = reader.readU64().toString();
|
|
595
669
|
const proofsCount = reader.readU16();
|
|
596
670
|
const proofs = [];
|
|
597
671
|
for (let i = 0; i < proofsCount; i++) {
|
|
598
|
-
proofs.push('0x' +
|
|
672
|
+
proofs.push('0x' + toHex(reader.readBytesWithLength()));
|
|
599
673
|
}
|
|
600
674
|
return {
|
|
601
675
|
epochHash,
|
|
@@ -627,11 +701,11 @@ export class TransactionSerializer {
|
|
|
627
701
|
static writePrecomputedData(writer, data) {
|
|
628
702
|
writer.writeBoolean(data.compiledTargetScript !== undefined);
|
|
629
703
|
if (data.compiledTargetScript !== undefined) {
|
|
630
|
-
writer.writeBytesWithLength(
|
|
704
|
+
writer.writeBytesWithLength(fromHex(data.compiledTargetScript));
|
|
631
705
|
}
|
|
632
706
|
writer.writeBoolean(data.randomBytes !== undefined);
|
|
633
707
|
if (data.randomBytes !== undefined) {
|
|
634
|
-
writer.writeBytesWithLength(
|
|
708
|
+
writer.writeBytesWithLength(fromHex(data.randomBytes));
|
|
635
709
|
}
|
|
636
710
|
writer.writeBoolean(data.estimatedFees !== undefined);
|
|
637
711
|
if (data.estimatedFees !== undefined) {
|
|
@@ -649,11 +723,11 @@ export class TransactionSerializer {
|
|
|
649
723
|
static readPrecomputedData(reader) {
|
|
650
724
|
const hasCompiledTargetScript = reader.readBoolean();
|
|
651
725
|
const compiledTargetScript = hasCompiledTargetScript
|
|
652
|
-
?
|
|
726
|
+
? toHex(reader.readBytesWithLength())
|
|
653
727
|
: undefined;
|
|
654
728
|
const hasRandomBytes = reader.readBoolean();
|
|
655
729
|
const randomBytes = hasRandomBytes
|
|
656
|
-
?
|
|
730
|
+
? toHex(reader.readBytesWithLength())
|
|
657
731
|
: undefined;
|
|
658
732
|
const hasEstimatedFees = reader.readBoolean();
|
|
659
733
|
const estimatedFees = hasEstimatedFees ? reader.readU64().toString() : undefined;
|
|
@@ -662,16 +736,52 @@ export class TransactionSerializer {
|
|
|
662
736
|
const hasContractAddress = reader.readBoolean();
|
|
663
737
|
const contractAddress = hasContractAddress ? reader.readStringWithLength() : undefined;
|
|
664
738
|
return {
|
|
665
|
-
compiledTargetScript,
|
|
666
|
-
randomBytes,
|
|
667
|
-
estimatedFees,
|
|
668
|
-
contractSeed,
|
|
669
|
-
contractAddress,
|
|
739
|
+
...(compiledTargetScript !== undefined ? { compiledTargetScript } : {}),
|
|
740
|
+
...(randomBytes !== undefined ? { randomBytes } : {}),
|
|
741
|
+
...(estimatedFees !== undefined ? { estimatedFees } : {}),
|
|
742
|
+
...(contractSeed !== undefined ? { contractSeed } : {}),
|
|
743
|
+
...(contractAddress !== undefined ? { contractAddress } : {}),
|
|
670
744
|
};
|
|
671
745
|
}
|
|
746
|
+
/**
|
|
747
|
+
* Calculate double SHA256 checksum (Bitcoin standard)
|
|
748
|
+
*/
|
|
672
749
|
static calculateChecksum(data) {
|
|
673
750
|
const hash1 = createHash('sha256').update(data).digest();
|
|
674
|
-
return createHash('sha256').update(hash1).digest();
|
|
751
|
+
return new Uint8Array(createHash('sha256').update(hash1).digest());
|
|
752
|
+
}
|
|
753
|
+
/**
|
|
754
|
+
* Compare two Uint8Arrays for equality
|
|
755
|
+
*/
|
|
756
|
+
static bytesEqual(a, b) {
|
|
757
|
+
if (a.length !== b.length)
|
|
758
|
+
return false;
|
|
759
|
+
for (let i = 0; i < a.length; i++) {
|
|
760
|
+
if (a[i] !== b[i])
|
|
761
|
+
return false;
|
|
762
|
+
}
|
|
763
|
+
return true;
|
|
764
|
+
}
|
|
765
|
+
/**
|
|
766
|
+
* Encode Uint8Array to base64 string
|
|
767
|
+
*/
|
|
768
|
+
static uint8ArrayToBase64(bytes) {
|
|
769
|
+
let binary = '';
|
|
770
|
+
for (let i = 0; i < bytes.length; i++) {
|
|
771
|
+
binary += String.fromCharCode(bytes[i]);
|
|
772
|
+
}
|
|
773
|
+
return btoa(binary);
|
|
774
|
+
}
|
|
775
|
+
/**
|
|
776
|
+
* Decode base64 string to Uint8Array
|
|
777
|
+
*/
|
|
778
|
+
static base64ToUint8Array(base64) {
|
|
779
|
+
const binary = atob(base64);
|
|
780
|
+
const bytes = new Uint8Array(binary.length);
|
|
781
|
+
for (let i = 0; i < binary.length; i++) {
|
|
782
|
+
bytes[i] = binary.charCodeAt(i);
|
|
783
|
+
}
|
|
784
|
+
return bytes;
|
|
675
785
|
}
|
|
676
786
|
static networkNameToU8(name) {
|
|
677
787
|
switch (name) {
|
|
@@ -698,3 +808,4 @@ export class TransactionSerializer {
|
|
|
698
808
|
}
|
|
699
809
|
}
|
|
700
810
|
}
|
|
811
|
+
//# sourceMappingURL=TransactionSerializer.js.map
|