@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
package/src/keypair/Address.ts
CHANGED
|
@@ -1,15 +1,30 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import {
|
|
2
|
+
decompressPublicKey,
|
|
3
|
+
fromHex,
|
|
4
|
+
type Network,
|
|
5
|
+
type PublicKey,
|
|
6
|
+
toHex,
|
|
7
|
+
toXOnly,
|
|
8
|
+
type UncompressedPublicKey,
|
|
9
|
+
type XOnlyPublicKey,
|
|
10
|
+
} from '@btc-vision/bitcoin';
|
|
11
|
+
import { type UniversalSigner } from '@btc-vision/ecpair';
|
|
3
12
|
import { ADDRESS_BYTE_LENGTH } from '../utils/lengths.js';
|
|
4
13
|
import { AddressVerificator } from './AddressVerificator.js';
|
|
5
14
|
import { EcKeyPair } from './EcKeyPair.js';
|
|
6
15
|
import { ContractAddress } from '../transaction/ContractAddress.js';
|
|
7
16
|
import { BitcoinUtils } from '../utils/BitcoinUtils.js';
|
|
8
17
|
import { TimeLockGenerator } from '../transaction/mineable/TimelockGenerator.js';
|
|
9
|
-
import { IP2WSHAddress } from '../transaction/mineable/IP2WSHAddress.js';
|
|
18
|
+
import type { IP2WSHAddress } from '../transaction/mineable/IP2WSHAddress.js';
|
|
10
19
|
import { P2WDADetector } from '../p2wda/P2WDADetector.js';
|
|
11
20
|
import { sha256 } from '@noble/hashes/sha2.js';
|
|
12
21
|
import { MLDSASecurityLevel } from '@btc-vision/bip32';
|
|
22
|
+
import type { HybridPublicKey, MLDSAHashedPublicKey } from '../branded/Branded.js';
|
|
23
|
+
|
|
24
|
+
// ML-DSA-44 (Level 2): 1312 bytes public key
|
|
25
|
+
// ML-DSA-65 (Level 3): 1952 bytes public key
|
|
26
|
+
// ML-DSA-87 (Level 5): 2592 bytes public key
|
|
27
|
+
const validMLDSALengths = [1312, 1952, 2592];
|
|
13
28
|
|
|
14
29
|
/**
|
|
15
30
|
* Objects of type "Address" represent hashed ML-DSA (quantum) public keys (using SHA256 of quantum keys) and maintain classical public keys separately.
|
|
@@ -21,16 +36,16 @@ import { MLDSASecurityLevel } from '@btc-vision/bip32';
|
|
|
21
36
|
*
|
|
22
37
|
* @category KeyPair
|
|
23
38
|
*/
|
|
24
|
-
export class Address extends Uint8Array {
|
|
39
|
+
export class Address extends Uint8Array implements Disposable {
|
|
25
40
|
#p2tr: string | undefined;
|
|
26
41
|
#p2op: string | undefined;
|
|
27
42
|
#network: Network | undefined;
|
|
28
|
-
#originalPublicKey:
|
|
29
|
-
#keyPair:
|
|
43
|
+
#originalPublicKey: PublicKey | undefined;
|
|
44
|
+
#keyPair: UniversalSigner | undefined;
|
|
30
45
|
#uncompressed: UncompressedPublicKey | undefined;
|
|
31
|
-
#tweakedUncompressed:
|
|
46
|
+
#tweakedUncompressed: Uint8Array | undefined;
|
|
32
47
|
#p2wda: IP2WSHAddress | undefined;
|
|
33
|
-
#mldsaPublicKey:
|
|
48
|
+
#mldsaPublicKey: MLDSAHashedPublicKey | undefined;
|
|
34
49
|
#cachedBigInt: bigint | undefined;
|
|
35
50
|
#cachedBigIntTweaked: bigint | undefined;
|
|
36
51
|
#cachedUint64Array: [bigint, bigint, bigint, bigint] | undefined;
|
|
@@ -38,11 +53,11 @@ export class Address extends Uint8Array {
|
|
|
38
53
|
#mldsaLevel: MLDSASecurityLevel | undefined;
|
|
39
54
|
|
|
40
55
|
// Lazy loading state - defers expensive EC operations until actually needed
|
|
41
|
-
#pendingLegacyKey: Uint8Array | undefined;
|
|
56
|
+
readonly #pendingLegacyKey: Uint8Array | undefined;
|
|
42
57
|
#legacyProcessed: boolean = false;
|
|
43
58
|
|
|
44
59
|
// After processing, this is 32-byte tweaked x-only (same as original behavior)
|
|
45
|
-
#
|
|
60
|
+
#tweakedPublicKey: XOnlyPublicKey | undefined;
|
|
46
61
|
|
|
47
62
|
public constructor(mldsaPublicKey?: ArrayLike<number>, publicKeyOrTweak?: ArrayLike<number>) {
|
|
48
63
|
super(ADDRESS_BYTE_LENGTH);
|
|
@@ -66,11 +81,21 @@ export class Address extends Uint8Array {
|
|
|
66
81
|
this.setMldsaKey(mldsaPublicKey);
|
|
67
82
|
}
|
|
68
83
|
|
|
84
|
+
/**
|
|
85
|
+
* Prevent TypedArray methods (subarray, slice, etc.) from creating Address
|
|
86
|
+
* instances. Without this, @noble/hashes and other libraries that call
|
|
87
|
+
* subarray() on an Address would invoke the Address constructor that recomputes
|
|
88
|
+
* everything leading to bad performance.
|
|
89
|
+
*/
|
|
90
|
+
public static get [Symbol.species](): Uint8ArrayConstructor {
|
|
91
|
+
return Uint8Array;
|
|
92
|
+
}
|
|
93
|
+
|
|
69
94
|
public get mldsaLevel(): MLDSASecurityLevel | undefined {
|
|
70
95
|
return this.#mldsaLevel;
|
|
71
96
|
}
|
|
72
97
|
|
|
73
|
-
public set mldsaLevel(level: MLDSASecurityLevel) {
|
|
98
|
+
public set mldsaLevel(level: MLDSASecurityLevel | undefined) {
|
|
74
99
|
this.#mldsaLevel = level;
|
|
75
100
|
}
|
|
76
101
|
|
|
@@ -78,20 +103,20 @@ export class Address extends Uint8Array {
|
|
|
78
103
|
return this.#originalMDLSAPublicKey;
|
|
79
104
|
}
|
|
80
105
|
|
|
81
|
-
public set originalMDLSAPublicKey(key:
|
|
82
|
-
this.#originalMDLSAPublicKey = new Uint8Array(key);
|
|
106
|
+
public set originalMDLSAPublicKey(key: Uint8Array | undefined) {
|
|
107
|
+
this.#originalMDLSAPublicKey = key ? new Uint8Array(key) : undefined;
|
|
83
108
|
}
|
|
84
109
|
|
|
85
110
|
/**
|
|
86
111
|
* If available, this will return the original public key associated with the address.
|
|
87
112
|
* @returns {Uint8Array} The original public key used to create the address.
|
|
88
113
|
*/
|
|
89
|
-
public get originalPublicKey():
|
|
114
|
+
public get originalPublicKey(): PublicKey | undefined {
|
|
90
115
|
this.ensureLegacyProcessed();
|
|
91
116
|
return this.#originalPublicKey;
|
|
92
117
|
}
|
|
93
118
|
|
|
94
|
-
public get mldsaPublicKey():
|
|
119
|
+
public get mldsaPublicKey(): MLDSAHashedPublicKey | undefined {
|
|
95
120
|
return this.#mldsaPublicKey;
|
|
96
121
|
}
|
|
97
122
|
|
|
@@ -99,16 +124,17 @@ export class Address extends Uint8Array {
|
|
|
99
124
|
* Get the legacy public key (32-byte tweaked x-only after processing).
|
|
100
125
|
* Triggers lazy processing if not yet done.
|
|
101
126
|
*/
|
|
102
|
-
private get legacyPublicKey():
|
|
127
|
+
private get legacyPublicKey(): XOnlyPublicKey | undefined {
|
|
103
128
|
this.ensureLegacyProcessed();
|
|
104
|
-
|
|
129
|
+
|
|
130
|
+
return this.#tweakedPublicKey;
|
|
105
131
|
}
|
|
106
132
|
|
|
107
133
|
/**
|
|
108
134
|
* Get the key pair for the address
|
|
109
135
|
* @description This is only for internal use. Please use address.tweakedBytes instead.
|
|
110
136
|
*/
|
|
111
|
-
private get keyPair():
|
|
137
|
+
private get keyPair(): UniversalSigner {
|
|
112
138
|
this.ensureLegacyProcessed();
|
|
113
139
|
if (!this.#keyPair) {
|
|
114
140
|
throw new Error('Legacy public key not set for address');
|
|
@@ -145,7 +171,7 @@ export class Address extends Uint8Array {
|
|
|
145
171
|
);
|
|
146
172
|
}
|
|
147
173
|
|
|
148
|
-
let classicBuffer:
|
|
174
|
+
let classicBuffer: Uint8Array | undefined;
|
|
149
175
|
if (legacyPublicKey) {
|
|
150
176
|
if (legacyPublicKey.startsWith('0x')) {
|
|
151
177
|
legacyPublicKey = legacyPublicKey.slice(2);
|
|
@@ -157,10 +183,10 @@ export class Address extends Uint8Array {
|
|
|
157
183
|
);
|
|
158
184
|
}
|
|
159
185
|
|
|
160
|
-
classicBuffer =
|
|
186
|
+
classicBuffer = fromHex(legacyPublicKey);
|
|
161
187
|
}
|
|
162
188
|
|
|
163
|
-
return new Address(
|
|
189
|
+
return new Address(fromHex(mldsaPublicKey), classicBuffer);
|
|
164
190
|
}
|
|
165
191
|
|
|
166
192
|
/**
|
|
@@ -172,19 +198,44 @@ export class Address extends Uint8Array {
|
|
|
172
198
|
return new Address(bytes);
|
|
173
199
|
}
|
|
174
200
|
|
|
175
|
-
public static uncompressedToCompressed(publicKey: ArrayLike<number>):
|
|
201
|
+
public static uncompressedToCompressed(publicKey: ArrayLike<number>): Uint8Array {
|
|
176
202
|
const buffer = Uint8Array.from(publicKey);
|
|
177
203
|
|
|
178
204
|
const x = buffer.slice(1, 33);
|
|
179
205
|
const y = buffer.slice(33);
|
|
180
206
|
|
|
181
|
-
const compressed =
|
|
182
|
-
compressed[0] = 0x02 + (y[y.length - 1] & 0x01);
|
|
207
|
+
const compressed = new Uint8Array(33);
|
|
208
|
+
compressed[0] = 0x02 + ((y[y.length - 1] as number) & 0x01);
|
|
183
209
|
compressed.set(x, 1);
|
|
184
210
|
|
|
185
211
|
return compressed;
|
|
186
212
|
}
|
|
187
213
|
|
|
214
|
+
public [Symbol.dispose](): void {
|
|
215
|
+
// Zero the base Uint8Array (hashed ML-DSA public key)
|
|
216
|
+
this.fill(0);
|
|
217
|
+
|
|
218
|
+
// Clear all cached / derived state
|
|
219
|
+
this.#p2tr = undefined;
|
|
220
|
+
this.#p2op = undefined;
|
|
221
|
+
this.#network = undefined;
|
|
222
|
+
this.#originalPublicKey = undefined;
|
|
223
|
+
this.#keyPair = undefined;
|
|
224
|
+
this.#uncompressed = undefined;
|
|
225
|
+
this.#tweakedUncompressed = undefined;
|
|
226
|
+
this.#p2wda = undefined;
|
|
227
|
+
this.#mldsaPublicKey?.fill(0);
|
|
228
|
+
this.#mldsaPublicKey = undefined;
|
|
229
|
+
this.#cachedBigInt = undefined;
|
|
230
|
+
this.#cachedBigIntTweaked = undefined;
|
|
231
|
+
this.#cachedUint64Array = undefined;
|
|
232
|
+
this.#originalMDLSAPublicKey?.fill(0);
|
|
233
|
+
this.#originalMDLSAPublicKey = undefined;
|
|
234
|
+
this.#mldsaLevel = undefined;
|
|
235
|
+
this.#legacyProcessed = false;
|
|
236
|
+
this.#tweakedPublicKey = undefined;
|
|
237
|
+
}
|
|
238
|
+
|
|
188
239
|
/**
|
|
189
240
|
* Creates an Address instance from a BigInt value.
|
|
190
241
|
*
|
|
@@ -316,7 +367,7 @@ export class Address extends Uint8Array {
|
|
|
316
367
|
* @returns {string} The hex string
|
|
317
368
|
*/
|
|
318
369
|
public toHex(): string {
|
|
319
|
-
return '0x' +
|
|
370
|
+
return '0x' + toHex(this);
|
|
320
371
|
}
|
|
321
372
|
|
|
322
373
|
/**
|
|
@@ -329,28 +380,28 @@ export class Address extends Uint8Array {
|
|
|
329
380
|
throw new Error('Legacy public key not set');
|
|
330
381
|
}
|
|
331
382
|
|
|
332
|
-
return '0x' +
|
|
383
|
+
return '0x' + toHex(key);
|
|
333
384
|
}
|
|
334
385
|
|
|
335
386
|
/**
|
|
336
|
-
* Converts the address content (SHA256 hash of ML-DSA public key) to a
|
|
337
|
-
* @returns {
|
|
387
|
+
* Converts the address content (SHA256 hash of ML-DSA public key) to a Uint8Array
|
|
388
|
+
* @returns {Uint8Array} The Uint8Array containing the hashed ML-DSA public key
|
|
338
389
|
*/
|
|
339
|
-
public toBuffer():
|
|
340
|
-
return
|
|
390
|
+
public toBuffer(): MLDSAHashedPublicKey {
|
|
391
|
+
return new Uint8Array(this) as MLDSAHashedPublicKey;
|
|
341
392
|
}
|
|
342
393
|
|
|
343
394
|
/**
|
|
344
|
-
* Converts the classical public key to a
|
|
345
|
-
* @returns {
|
|
395
|
+
* Converts the classical public key to a Uint8Array
|
|
396
|
+
* @returns {Uint8Array} The Uint8Array
|
|
346
397
|
*/
|
|
347
|
-
public tweakedPublicKeyToBuffer():
|
|
398
|
+
public tweakedPublicKeyToBuffer(): XOnlyPublicKey {
|
|
348
399
|
const key = this.legacyPublicKey;
|
|
349
400
|
if (!key) {
|
|
350
401
|
throw new Error('Legacy public key not set');
|
|
351
402
|
}
|
|
352
403
|
|
|
353
|
-
return
|
|
404
|
+
return new Uint8Array(key) as XOnlyPublicKey;
|
|
354
405
|
}
|
|
355
406
|
|
|
356
407
|
public toUncompressedHex(): string {
|
|
@@ -359,16 +410,16 @@ export class Address extends Uint8Array {
|
|
|
359
410
|
throw new Error('Legacy public key not set');
|
|
360
411
|
}
|
|
361
412
|
|
|
362
|
-
return '0x' + this.#uncompressed.uncompressed
|
|
413
|
+
return '0x' + toHex(this.#uncompressed.uncompressed);
|
|
363
414
|
}
|
|
364
415
|
|
|
365
|
-
public toUncompressedBuffer():
|
|
416
|
+
public toUncompressedBuffer(): PublicKey {
|
|
366
417
|
this.ensureLegacyProcessed();
|
|
367
418
|
if (!this.#uncompressed) {
|
|
368
419
|
throw new Error('Legacy public key not set');
|
|
369
420
|
}
|
|
370
421
|
|
|
371
|
-
return this.#uncompressed.uncompressed;
|
|
422
|
+
return this.#uncompressed.uncompressed as PublicKey;
|
|
372
423
|
}
|
|
373
424
|
|
|
374
425
|
public toHybridPublicKeyHex(): string {
|
|
@@ -377,25 +428,25 @@ export class Address extends Uint8Array {
|
|
|
377
428
|
throw new Error('Legacy public key not set');
|
|
378
429
|
}
|
|
379
430
|
|
|
380
|
-
return '0x' + this.#uncompressed.hybrid
|
|
431
|
+
return '0x' + toHex(this.#uncompressed.hybrid);
|
|
381
432
|
}
|
|
382
433
|
|
|
383
|
-
public toHybridPublicKeyBuffer():
|
|
434
|
+
public toHybridPublicKeyBuffer(): HybridPublicKey {
|
|
384
435
|
this.ensureLegacyProcessed();
|
|
385
436
|
if (!this.#uncompressed) {
|
|
386
437
|
throw new Error('Legacy public key not set');
|
|
387
438
|
}
|
|
388
439
|
|
|
389
|
-
return this.#uncompressed.hybrid;
|
|
440
|
+
return this.#uncompressed.hybrid as HybridPublicKey;
|
|
390
441
|
}
|
|
391
442
|
|
|
392
|
-
public originalPublicKeyBuffer():
|
|
443
|
+
public originalPublicKeyBuffer(): PublicKey {
|
|
393
444
|
this.ensureLegacyProcessed();
|
|
394
445
|
if (!this.#originalPublicKey) {
|
|
395
446
|
throw new Error('Legacy public key not set');
|
|
396
447
|
}
|
|
397
448
|
|
|
398
|
-
return
|
|
449
|
+
return new Uint8Array(this.#originalPublicKey) as PublicKey;
|
|
399
450
|
}
|
|
400
451
|
|
|
401
452
|
/**
|
|
@@ -491,9 +542,9 @@ export class Address extends Uint8Array {
|
|
|
491
542
|
const thisByte = b[i];
|
|
492
543
|
const aByte = a[i];
|
|
493
544
|
|
|
494
|
-
if (thisByte < aByte) {
|
|
545
|
+
if ((thisByte as number) < (aByte as number)) {
|
|
495
546
|
return true; // this is less than a
|
|
496
|
-
} else if (thisByte > aByte) {
|
|
547
|
+
} else if ((thisByte as number) > (aByte as number)) {
|
|
497
548
|
return false; // this is greater than or equal to a
|
|
498
549
|
}
|
|
499
550
|
}
|
|
@@ -513,9 +564,9 @@ export class Address extends Uint8Array {
|
|
|
513
564
|
const thisByte = b[i];
|
|
514
565
|
const aByte = a[i];
|
|
515
566
|
|
|
516
|
-
if (thisByte > aByte) {
|
|
567
|
+
if ((thisByte as number) > (aByte as number)) {
|
|
517
568
|
return true; // this is greater than a
|
|
518
|
-
} else if (thisByte < aByte) {
|
|
569
|
+
} else if ((thisByte as number) < (aByte as number)) {
|
|
519
570
|
return false; // this is less than or equal to a
|
|
520
571
|
}
|
|
521
572
|
}
|
|
@@ -544,7 +595,7 @@ export class Address extends Uint8Array {
|
|
|
544
595
|
throw new Error(`Legacy key not set.`);
|
|
545
596
|
}
|
|
546
597
|
|
|
547
|
-
return AddressVerificator.isValidPublicKey(
|
|
598
|
+
return AddressVerificator.isValidPublicKey(toHex(key), network);
|
|
548
599
|
}
|
|
549
600
|
|
|
550
601
|
/**
|
|
@@ -581,7 +632,7 @@ export class Address extends Uint8Array {
|
|
|
581
632
|
/**
|
|
582
633
|
* Convert the address to a string
|
|
583
634
|
*/
|
|
584
|
-
public toString(): string {
|
|
635
|
+
public override toString(): string {
|
|
585
636
|
return this.toHex();
|
|
586
637
|
}
|
|
587
638
|
|
|
@@ -650,8 +701,7 @@ export class Address extends Uint8Array {
|
|
|
650
701
|
throw new Error('Cannot create P2WDA address: public key not set');
|
|
651
702
|
}
|
|
652
703
|
|
|
653
|
-
const publicKeyBuffer =
|
|
654
|
-
|
|
704
|
+
const publicKeyBuffer = new Uint8Array(this.#originalPublicKey);
|
|
655
705
|
if (publicKeyBuffer.length !== 33) {
|
|
656
706
|
throw new Error('P2WDA requires a compressed public key (33 bytes)');
|
|
657
707
|
}
|
|
@@ -697,8 +747,8 @@ export class Address extends Uint8Array {
|
|
|
697
747
|
throw new Error('Cannot create CSV address: public key not set');
|
|
698
748
|
}
|
|
699
749
|
|
|
700
|
-
// Convert the public key to
|
|
701
|
-
const publicKeyBuffer =
|
|
750
|
+
// Convert the public key to Uint8Array format that TimeLockGenerator expects
|
|
751
|
+
const publicKeyBuffer: PublicKey = new Uint8Array(this.#originalPublicKey) as PublicKey;
|
|
702
752
|
|
|
703
753
|
// Now we can use your TimeLockGenerator to create the timelocked address
|
|
704
754
|
// Converting bigint to number is safe here because we've already validated the range
|
|
@@ -775,10 +825,10 @@ export class Address extends Uint8Array {
|
|
|
775
825
|
throw new Error('Legacy public key not set');
|
|
776
826
|
}
|
|
777
827
|
|
|
778
|
-
return '0x' + this.#tweakedUncompressed
|
|
828
|
+
return '0x' + toHex(this.#tweakedUncompressed);
|
|
779
829
|
}
|
|
780
830
|
|
|
781
|
-
public toTweakedHybridPublicKeyBuffer():
|
|
831
|
+
public toTweakedHybridPublicKeyBuffer(): Uint8Array {
|
|
782
832
|
this.ensureLegacyProcessed();
|
|
783
833
|
this.ensureTweakedUncompressed();
|
|
784
834
|
if (!this.#tweakedUncompressed) {
|
|
@@ -795,15 +845,13 @@ export class Address extends Uint8Array {
|
|
|
795
845
|
private ensureTweakedUncompressed(): void {
|
|
796
846
|
if (this.#tweakedUncompressed) return;
|
|
797
847
|
|
|
798
|
-
const key = this.#
|
|
848
|
+
const key = this.#tweakedPublicKey;
|
|
799
849
|
if (!key) return;
|
|
800
850
|
|
|
801
851
|
// Only attempt hybrid key generation for 32-byte keys that weren't processed through autoFormat
|
|
802
852
|
if (key.length === ADDRESS_BYTE_LENGTH && !this.#originalPublicKey) {
|
|
803
853
|
try {
|
|
804
|
-
|
|
805
|
-
buf.set(key);
|
|
806
|
-
this.#tweakedUncompressed = ContractAddress.generateHybridKeyFromHash(buf);
|
|
854
|
+
this.#tweakedUncompressed = ContractAddress.generateHybridKeyFromHash(key);
|
|
807
855
|
} catch {
|
|
808
856
|
// Hybrid key generation may fail for keys that aren't valid EC points
|
|
809
857
|
// (e.g., zero addresses). Leave #tweakedUncompressed undefined.
|
|
@@ -824,11 +872,6 @@ export class Address extends Uint8Array {
|
|
|
824
872
|
super.set(buf);
|
|
825
873
|
} else {
|
|
826
874
|
// Validate ML-DSA public key lengths according to BIP360 and FIPS 204
|
|
827
|
-
// ML-DSA-44 (Level 2): 1312 bytes public key
|
|
828
|
-
// ML-DSA-65 (Level 3): 1952 bytes public key
|
|
829
|
-
// ML-DSA-87 (Level 5): 2592 bytes public key
|
|
830
|
-
const validMLDSALengths = [1312, 1952, 2592];
|
|
831
|
-
|
|
832
875
|
if (!validMLDSALengths.includes(mldsaPublicKey.length)) {
|
|
833
876
|
throw new Error(
|
|
834
877
|
`Invalid ML-DSA public key length: ${mldsaPublicKey.length}. ` +
|
|
@@ -837,7 +880,7 @@ export class Address extends Uint8Array {
|
|
|
837
880
|
}
|
|
838
881
|
|
|
839
882
|
// Store the original ML-DSA public key
|
|
840
|
-
this.#mldsaPublicKey = new Uint8Array(mldsaPublicKey.length);
|
|
883
|
+
this.#mldsaPublicKey = new Uint8Array(mldsaPublicKey.length) as MLDSAHashedPublicKey;
|
|
841
884
|
this.#mldsaPublicKey.set(mldsaPublicKey);
|
|
842
885
|
|
|
843
886
|
// Hash the ML-DSA public key to get the 32-byte address
|
|
@@ -863,7 +906,7 @@ export class Address extends Uint8Array {
|
|
|
863
906
|
// Length validation already done in constructor
|
|
864
907
|
|
|
865
908
|
if (pending.length === ADDRESS_BYTE_LENGTH) {
|
|
866
|
-
this.#
|
|
909
|
+
this.#tweakedPublicKey = pending as XOnlyPublicKey;
|
|
867
910
|
} else {
|
|
868
911
|
// 33 or 65 bytes: full autoFormat processing with EC operations
|
|
869
912
|
this.autoFormat(pending);
|
|
@@ -872,7 +915,7 @@ export class Address extends Uint8Array {
|
|
|
872
915
|
|
|
873
916
|
/**
|
|
874
917
|
* Processes a 33 or 65 byte public key, performing EC operations.
|
|
875
|
-
* Sets #
|
|
918
|
+
* Sets #tweakedPublicKey to 32-byte tweaked x-only (same as original behavior).
|
|
876
919
|
*/
|
|
877
920
|
private autoFormat(publicKey: ArrayLike<number>): void {
|
|
878
921
|
const firstByte = publicKey[0];
|
|
@@ -884,17 +927,17 @@ export class Address extends Uint8Array {
|
|
|
884
927
|
publicKey = Address.uncompressedToCompressed(publicKey);
|
|
885
928
|
}
|
|
886
929
|
|
|
887
|
-
this.#originalPublicKey = Uint8Array.from(publicKey);
|
|
930
|
+
this.#originalPublicKey = Uint8Array.from(publicKey) as PublicKey;
|
|
888
931
|
this.#keyPair = EcKeyPair.fromPublicKey(this.#originalPublicKey);
|
|
889
932
|
this.#uncompressed = decompressPublicKey(this.#originalPublicKey);
|
|
890
933
|
|
|
891
|
-
const tweakedBytes
|
|
892
|
-
EcKeyPair.tweakPublicKey(
|
|
934
|
+
const tweakedBytes = toXOnly(
|
|
935
|
+
EcKeyPair.tweakPublicKey(this.#originalPublicKey) as PublicKey,
|
|
893
936
|
);
|
|
894
937
|
|
|
895
938
|
this.#tweakedUncompressed = ContractAddress.generateHybridKeyFromHash(tweakedBytes);
|
|
896
939
|
|
|
897
|
-
this.#
|
|
898
|
-
this.#
|
|
940
|
+
this.#tweakedPublicKey = new Uint8Array(ADDRESS_BYTE_LENGTH) as XOnlyPublicKey;
|
|
941
|
+
this.#tweakedPublicKey.set(tweakedBytes);
|
|
899
942
|
}
|
|
900
943
|
}
|