@btc-vision/transaction 1.8.0-beta.1 → 1.8.0-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/browser/_version.d.ts +1 -0
- package/browser/_version.d.ts.map +1 -0
- package/browser/abi/ABICoder.d.ts +1 -1
- package/browser/abi/ABICoder.d.ts.map +1 -0
- package/browser/branded/Branded.d.ts +4 -0
- package/browser/branded/Branded.d.ts.map +1 -0
- package/browser/btc-vision-bitcoin.js +12420 -3637
- package/browser/buffer/BinaryReader.d.ts +120 -1
- package/browser/buffer/BinaryReader.d.ts.map +1 -0
- package/browser/buffer/BinaryWriter.d.ts +51 -1
- package/browser/buffer/BinaryWriter.d.ts.map +1 -0
- package/browser/bytecode/Compressor.d.ts +12 -0
- package/browser/bytecode/Compressor.d.ts.map +1 -0
- package/browser/chain/ChainData.d.ts +2 -2
- package/browser/chain/ChainData.d.ts.map +1 -0
- package/browser/consensus/Consensus.d.ts +11 -3
- package/browser/consensus/Consensus.d.ts.map +1 -0
- package/browser/consensus/ConsensusConfig.d.ts +1 -0
- package/browser/consensus/ConsensusConfig.d.ts.map +1 -0
- package/browser/consensus/IConsensusConfig.d.ts +1 -0
- package/browser/consensus/IConsensusConfig.d.ts.map +1 -0
- package/browser/consensus/metadata/RoswellConsensus.d.ts +1 -0
- package/browser/consensus/metadata/RoswellConsensus.d.ts.map +1 -0
- package/browser/crypto/crypto.d.ts +1 -0
- package/browser/crypto/crypto.d.ts.map +1 -0
- package/browser/deterministic/AddressMap.d.ts +6 -1
- package/browser/deterministic/AddressMap.d.ts.map +1 -0
- package/browser/deterministic/AddressSet.d.ts +3 -1
- package/browser/deterministic/AddressSet.d.ts.map +1 -0
- package/browser/deterministic/CustomMap.d.ts +3 -1
- package/browser/deterministic/CustomMap.d.ts.map +1 -0
- package/browser/deterministic/DeterministicMap.d.ts +3 -1
- package/browser/deterministic/DeterministicMap.d.ts.map +1 -0
- package/browser/deterministic/DeterministicSet.d.ts +3 -1
- package/browser/deterministic/DeterministicSet.d.ts.map +1 -0
- package/browser/deterministic/ExtendedAddressMap.d.ts +7 -1
- package/browser/deterministic/ExtendedAddressMap.d.ts.map +1 -0
- package/browser/deterministic/FastMap.d.ts +7 -1
- package/browser/deterministic/FastMap.d.ts.map +1 -0
- package/browser/ecc/backend.d.ts +13 -0
- package/browser/ecc/backend.d.ts.map +1 -0
- package/browser/epoch/ChallengeSolution.d.ts +33 -1
- package/browser/epoch/ChallengeSolution.d.ts.map +1 -0
- package/browser/epoch/interfaces/IChallengeSolution.d.ts +14 -13
- package/browser/epoch/interfaces/IChallengeSolution.d.ts.map +1 -0
- package/browser/epoch/validator/EpochValidator.d.ts +37 -7
- package/browser/epoch/validator/EpochValidator.d.ts.map +1 -0
- package/browser/event/NetEvent.d.ts +1 -0
- package/browser/event/NetEvent.d.ts.map +1 -0
- package/browser/generators/AddressGenerator.d.ts +4 -3
- package/browser/generators/AddressGenerator.d.ts.map +1 -0
- package/browser/generators/Features.d.ts +1 -0
- package/browser/generators/Features.d.ts.map +1 -0
- package/browser/generators/Generator.d.ts +46 -10
- package/browser/generators/Generator.d.ts.map +1 -0
- package/browser/generators/MLDSAData.d.ts +1 -0
- package/browser/generators/MLDSAData.d.ts.map +1 -0
- package/browser/generators/builders/CalldataGenerator.d.ts +25 -4
- package/browser/generators/builders/CalldataGenerator.d.ts.map +1 -0
- package/browser/generators/builders/CustomGenerator.d.ts +13 -3
- package/browser/generators/builders/CustomGenerator.d.ts.map +1 -0
- package/browser/generators/builders/DeploymentGenerator.d.ts +15 -4
- package/browser/generators/builders/DeploymentGenerator.d.ts.map +1 -0
- package/browser/generators/builders/HashCommitmentGenerator.d.ts +164 -12
- package/browser/generators/builders/HashCommitmentGenerator.d.ts.map +1 -0
- package/browser/generators/builders/LegacyCalldataGenerator.d.ts +26 -4
- package/browser/generators/builders/LegacyCalldataGenerator.d.ts.map +1 -0
- package/browser/generators/builders/MultiSignGenerator.d.ts +6 -1
- package/browser/generators/builders/MultiSignGenerator.d.ts.map +1 -0
- package/browser/generators/builders/P2WDAGenerator.d.ts +42 -4
- package/browser/generators/builders/P2WDAGenerator.d.ts.map +1 -0
- package/browser/index.d.ts +1 -0
- package/browser/index.d.ts.map +1 -0
- package/browser/index.js +3602 -3203
- package/browser/keypair/Address.d.ts +283 -13
- package/browser/keypair/Address.d.ts.map +1 -0
- package/browser/keypair/AddressVerificator.d.ts +7 -6
- package/browser/keypair/AddressVerificator.d.ts.map +1 -0
- package/browser/keypair/EcKeyPair.d.ts +183 -21
- package/browser/keypair/EcKeyPair.d.ts.map +1 -0
- package/browser/keypair/MessageSigner.d.ts +17 -16
- package/browser/keypair/MessageSigner.d.ts.map +1 -0
- package/browser/keypair/Secp256k1PointDeriver.d.ts +55 -0
- package/browser/keypair/Secp256k1PointDeriver.d.ts.map +1 -0
- package/browser/keypair/Wallet.d.ts +27 -13
- package/browser/keypair/Wallet.d.ts.map +1 -0
- package/browser/keypair/interfaces/IWallet.d.ts +19 -0
- package/browser/keypair/interfaces/IWallet.d.ts.map +1 -0
- package/browser/metadata/ContractBaseMetadata.d.ts +10 -2
- package/browser/metadata/ContractBaseMetadata.d.ts.map +1 -0
- package/browser/mnemonic/BIPStandard.d.ts +59 -0
- package/browser/mnemonic/BIPStandard.d.ts.map +1 -0
- package/browser/mnemonic/Mnemonic.d.ts +15 -3
- package/browser/mnemonic/Mnemonic.d.ts.map +1 -0
- package/browser/mnemonic/MnemonicStrength.d.ts +6 -0
- package/browser/mnemonic/MnemonicStrength.d.ts.map +1 -0
- package/browser/network/ChainId.d.ts +1 -0
- package/browser/network/ChainId.d.ts.map +1 -0
- package/browser/noble-curves.js +920 -2966
- package/browser/noble-hashes.js +2067 -1038
- package/browser/opnet.d.ts +22 -1
- package/browser/opnet.d.ts.map +1 -0
- package/browser/p2wda/P2WDADetector.d.ts +36 -9
- package/browser/p2wda/P2WDADetector.d.ts.map +1 -0
- package/browser/polyfill/disposable.d.ts +16 -0
- package/browser/polyfill/disposable.d.ts.map +1 -0
- package/browser/signer/AddressRotation.d.ts +36 -0
- package/browser/signer/AddressRotation.d.ts.map +1 -0
- package/browser/signer/IRotationSigner.d.ts +27 -3
- package/browser/signer/IRotationSigner.d.ts.map +1 -0
- package/browser/signer/ParallelSignerAdapter.d.ts +14 -0
- package/browser/signer/ParallelSignerAdapter.d.ts.map +1 -0
- package/browser/signer/SignerUtils.d.ts +11 -4
- package/browser/signer/SignerUtils.d.ts.map +1 -0
- package/browser/signer/TweakedSigner.d.ts +28 -4
- package/browser/signer/TweakedSigner.d.ts.map +1 -0
- package/browser/transaction/ContractAddress.d.ts +2 -2
- package/browser/transaction/ContractAddress.d.ts.map +1 -0
- package/browser/transaction/TransactionFactory.d.ts +140 -2
- package/browser/transaction/TransactionFactory.d.ts.map +1 -0
- package/browser/transaction/browser/BrowserSignerBase.d.ts +12 -6
- package/browser/transaction/browser/BrowserSignerBase.d.ts.map +1 -0
- package/browser/transaction/browser/WalletNetworks.d.ts +1 -0
- package/browser/transaction/browser/WalletNetworks.d.ts.map +1 -0
- package/browser/transaction/browser/Web3Provider.d.ts +27 -0
- package/browser/transaction/browser/Web3Provider.d.ts.map +1 -0
- package/browser/transaction/browser/extensions/UnisatSigner.d.ts +9 -7
- package/browser/transaction/browser/extensions/UnisatSigner.d.ts.map +1 -0
- package/browser/transaction/browser/extensions/XverseSigner.d.ts +9 -7
- package/browser/transaction/browser/extensions/XverseSigner.d.ts.map +1 -0
- package/browser/transaction/browser/types/OPWallet.d.ts +10 -0
- package/browser/transaction/browser/types/OPWallet.d.ts.map +1 -0
- package/browser/transaction/browser/types/Unisat.d.ts +1 -0
- package/browser/transaction/browser/types/Unisat.d.ts.map +1 -0
- package/browser/transaction/browser/types/Xverse.d.ts +1 -0
- package/browser/transaction/browser/types/Xverse.d.ts.map +1 -0
- package/browser/transaction/builders/CancelTransaction.d.ts +29 -4
- package/browser/transaction/builders/CancelTransaction.d.ts.map +1 -0
- package/browser/transaction/builders/ChallengeSolutionTransaction.d.ts +1 -0
- package/browser/transaction/builders/ChallengeSolutionTransaction.d.ts.map +1 -0
- package/browser/transaction/builders/ConsolidatedInteractionTransaction.d.ts +137 -10
- package/browser/transaction/builders/ConsolidatedInteractionTransaction.d.ts.map +1 -0
- package/browser/transaction/builders/CustomScriptTransaction.d.ts +106 -6
- package/browser/transaction/builders/CustomScriptTransaction.d.ts.map +1 -0
- package/browser/transaction/builders/DeploymentTransaction.d.ts +116 -5
- package/browser/transaction/builders/DeploymentTransaction.d.ts.map +1 -0
- package/browser/transaction/builders/FundingTransaction.d.ts +4 -3
- package/browser/transaction/builders/FundingTransaction.d.ts.map +1 -0
- package/browser/transaction/builders/InteractionTransaction.d.ts +12 -3
- package/browser/transaction/builders/InteractionTransaction.d.ts.map +1 -0
- package/browser/transaction/builders/InteractionTransactionP2WDA.d.ts +56 -5
- package/browser/transaction/builders/InteractionTransactionP2WDA.d.ts.map +1 -0
- package/browser/transaction/builders/MultiSignTransaction.d.ts +125 -16
- package/browser/transaction/builders/MultiSignTransaction.d.ts.map +1 -0
- package/browser/transaction/builders/SharedInteractionTransaction.d.ts +103 -15
- package/browser/transaction/builders/SharedInteractionTransaction.d.ts.map +1 -0
- package/browser/transaction/builders/TransactionBuilder.d.ts +243 -14
- package/browser/transaction/builders/TransactionBuilder.d.ts.map +1 -0
- package/browser/transaction/enums/TransactionType.d.ts +1 -0
- package/browser/transaction/enums/TransactionType.d.ts.map +1 -0
- package/browser/transaction/interfaces/ICancelTransactionParameters.d.ts +2 -1
- package/browser/transaction/interfaces/ICancelTransactionParameters.d.ts.map +1 -0
- package/browser/transaction/interfaces/IConsolidatedTransactionParameters.d.ts +46 -3
- package/browser/transaction/interfaces/IConsolidatedTransactionParameters.d.ts.map +1 -0
- package/browser/transaction/interfaces/ICustomTransactionParameters.d.ts +6 -4
- package/browser/transaction/interfaces/ICustomTransactionParameters.d.ts.map +1 -0
- package/browser/transaction/interfaces/ITransactionParameters.d.ts +22 -10
- package/browser/transaction/interfaces/ITransactionParameters.d.ts.map +1 -0
- package/browser/transaction/interfaces/ITransactionResponses.d.ts +1 -0
- package/browser/transaction/interfaces/ITransactionResponses.d.ts.map +1 -0
- package/browser/transaction/interfaces/ITweakedTransactionData.d.ts +18 -5
- package/browser/transaction/interfaces/ITweakedTransactionData.d.ts.map +1 -0
- package/browser/transaction/interfaces/IWeb3ProviderTypes.d.ts +26 -0
- package/browser/transaction/interfaces/IWeb3ProviderTypes.d.ts.map +1 -0
- package/browser/transaction/interfaces/Tap.d.ts +4 -3
- package/browser/transaction/interfaces/Tap.d.ts.map +1 -0
- package/browser/transaction/mineable/IP2WSHAddress.d.ts +2 -1
- package/browser/transaction/mineable/IP2WSHAddress.d.ts.map +1 -0
- package/browser/transaction/mineable/TimelockGenerator.d.ts +12 -3
- package/browser/transaction/mineable/TimelockGenerator.d.ts.map +1 -0
- package/browser/transaction/offline/OfflineTransactionManager.d.ts +190 -9
- package/browser/transaction/offline/OfflineTransactionManager.d.ts.map +1 -0
- package/browser/transaction/offline/TransactionReconstructor.d.ts +53 -3
- package/browser/transaction/offline/TransactionReconstructor.d.ts.map +1 -0
- package/browser/transaction/offline/TransactionSerializer.d.ts +53 -2
- package/browser/transaction/offline/TransactionSerializer.d.ts.map +1 -0
- package/browser/transaction/offline/TransactionStateCapture.d.ts +64 -5
- package/browser/transaction/offline/TransactionStateCapture.d.ts.map +1 -0
- package/browser/transaction/offline/interfaces/ISerializableState.d.ts +71 -0
- package/browser/transaction/offline/interfaces/ISerializableState.d.ts.map +1 -0
- package/browser/transaction/offline/interfaces/ITypeSpecificData.d.ts +76 -0
- package/browser/transaction/offline/interfaces/ITypeSpecificData.d.ts.map +1 -0
- package/browser/transaction/psbt/PSBTTypes.d.ts +1 -0
- package/browser/transaction/psbt/PSBTTypes.d.ts.map +1 -0
- package/browser/transaction/shared/P2TR_MS.d.ts +11 -2
- package/browser/transaction/shared/P2TR_MS.d.ts.map +1 -0
- package/browser/transaction/shared/TweakedTransaction.d.ts +275 -33
- package/browser/transaction/shared/TweakedTransaction.d.ts.map +1 -0
- package/browser/transaction/utils/WitnessUtils.d.ts +7 -1
- package/browser/transaction/utils/WitnessUtils.d.ts.map +1 -0
- package/browser/utils/BitcoinUtils.d.ts +19 -0
- package/browser/utils/BitcoinUtils.d.ts.map +1 -0
- package/browser/utils/BufferHelper.d.ts +1 -0
- package/browser/utils/BufferHelper.d.ts.map +1 -0
- package/browser/utils/StringToBuffer.d.ts +1 -0
- package/browser/utils/StringToBuffer.d.ts.map +1 -0
- package/browser/utils/lengths.d.ts +1 -0
- package/browser/utils/lengths.d.ts.map +1 -0
- package/browser/utils/types.d.ts +1 -0
- package/browser/utils/types.d.ts.map +1 -0
- package/browser/utxo/OPNetLimitedProvider.d.ts +37 -1
- package/browser/utxo/OPNetLimitedProvider.d.ts.map +1 -0
- package/browser/utxo/interfaces/BroadcastResponse.d.ts +1 -0
- package/browser/utxo/interfaces/BroadcastResponse.d.ts.map +1 -0
- package/browser/utxo/interfaces/IUTXO.d.ts +11 -5
- package/browser/utxo/interfaces/IUTXO.d.ts.map +1 -0
- package/browser/vendors.js +13940 -9389
- package/browser/verification/TapscriptVerificator.d.ts +10 -8
- package/browser/verification/TapscriptVerificator.d.ts.map +1 -0
- package/build/_version.d.ts +1 -0
- package/build/_version.d.ts.map +1 -0
- package/build/_version.js +1 -0
- package/build/_version.js.map +1 -0
- package/build/abi/ABICoder.d.ts +1 -1
- package/build/abi/ABICoder.d.ts.map +1 -0
- package/build/abi/ABICoder.js +9 -10
- package/build/abi/ABICoder.js.map +1 -0
- package/build/branded/Branded.d.ts +4 -0
- package/build/branded/Branded.d.ts.map +1 -0
- package/build/branded/Branded.js +2 -0
- package/build/branded/Branded.js.map +1 -0
- package/build/buffer/BinaryReader.d.ts +121 -2
- package/build/buffer/BinaryReader.d.ts.map +1 -0
- package/build/buffer/BinaryReader.js +129 -5
- package/build/buffer/BinaryReader.js.map +1 -0
- package/build/buffer/BinaryWriter.d.ts +52 -2
- package/build/buffer/BinaryWriter.d.ts.map +1 -0
- package/build/buffer/BinaryWriter.js +62 -2
- package/build/buffer/BinaryWriter.js.map +1 -0
- package/build/bytecode/Compressor.d.ts +12 -0
- package/build/bytecode/Compressor.d.ts.map +1 -0
- package/build/bytecode/Compressor.js +17 -5
- package/build/bytecode/Compressor.js.map +1 -0
- package/build/chain/ChainData.d.ts +2 -2
- package/build/chain/ChainData.d.ts.map +1 -0
- package/build/chain/ChainData.js +35 -17
- package/build/chain/ChainData.js.map +1 -0
- package/build/consensus/Consensus.d.ts +11 -3
- package/build/consensus/Consensus.d.ts.map +1 -0
- package/build/consensus/Consensus.js +8 -0
- package/build/consensus/Consensus.js.map +1 -0
- package/build/consensus/ConsensusConfig.d.ts +2 -1
- package/build/consensus/ConsensusConfig.d.ts.map +1 -0
- package/build/consensus/ConsensusConfig.js +1 -0
- package/build/consensus/ConsensusConfig.js.map +1 -0
- package/build/consensus/IConsensusConfig.d.ts +1 -0
- package/build/consensus/IConsensusConfig.d.ts.map +1 -0
- package/build/consensus/IConsensusConfig.js +2 -1
- package/build/consensus/IConsensusConfig.js.map +1 -0
- package/build/consensus/metadata/RoswellConsensus.d.ts +2 -1
- package/build/consensus/metadata/RoswellConsensus.d.ts.map +1 -0
- package/build/consensus/metadata/RoswellConsensus.js +2 -0
- package/build/consensus/metadata/RoswellConsensus.js.map +1 -0
- package/build/crypto/crypto.d.ts +1 -0
- package/build/crypto/crypto.d.ts.map +1 -0
- package/build/crypto/crypto.js +1 -0
- package/build/crypto/crypto.js.map +1 -0
- package/build/deterministic/AddressMap.d.ts +6 -1
- package/build/deterministic/AddressMap.d.ts.map +1 -0
- package/build/deterministic/AddressMap.js +8 -0
- package/build/deterministic/AddressMap.js.map +1 -0
- package/build/deterministic/AddressSet.d.ts +3 -1
- package/build/deterministic/AddressSet.d.ts.map +1 -0
- package/build/deterministic/AddressSet.js +7 -0
- package/build/deterministic/AddressSet.js.map +1 -0
- package/build/deterministic/CustomMap.d.ts +3 -1
- package/build/deterministic/CustomMap.d.ts.map +1 -0
- package/build/deterministic/CustomMap.js +65 -47
- package/build/deterministic/CustomMap.js.map +1 -0
- package/build/deterministic/DeterministicMap.d.ts +4 -2
- package/build/deterministic/DeterministicMap.d.ts.map +1 -0
- package/build/deterministic/DeterministicMap.js +24 -27
- package/build/deterministic/DeterministicMap.js.map +1 -0
- package/build/deterministic/DeterministicSet.d.ts +3 -1
- package/build/deterministic/DeterministicSet.d.ts.map +1 -0
- package/build/deterministic/DeterministicSet.js +6 -0
- package/build/deterministic/DeterministicSet.js.map +1 -0
- package/build/deterministic/ExtendedAddressMap.d.ts +7 -1
- package/build/deterministic/ExtendedAddressMap.d.ts.map +1 -0
- package/build/deterministic/ExtendedAddressMap.js +18 -2
- package/build/deterministic/ExtendedAddressMap.js.map +1 -0
- package/build/deterministic/FastMap.d.ts +7 -1
- package/build/deterministic/FastMap.d.ts.map +1 -0
- package/build/deterministic/FastMap.js +7 -2
- package/build/deterministic/FastMap.js.map +1 -0
- package/build/ecc/backend.d.ts +13 -0
- package/build/ecc/backend.d.ts.map +1 -0
- package/build/ecc/backend.js +15 -0
- package/build/ecc/backend.js.map +1 -0
- package/build/epoch/ChallengeSolution.d.ts +34 -2
- package/build/epoch/ChallengeSolution.d.ts.map +1 -0
- package/build/epoch/ChallengeSolution.js +52 -0
- package/build/epoch/ChallengeSolution.js.map +1 -0
- package/build/epoch/interfaces/IChallengeSolution.d.ts +14 -13
- package/build/epoch/interfaces/IChallengeSolution.d.ts.map +1 -0
- package/build/epoch/interfaces/IChallengeSolution.js +2 -1
- package/build/epoch/interfaces/IChallengeSolution.js.map +1 -0
- package/build/epoch/validator/EpochValidator.d.ts +38 -8
- package/build/epoch/validator/EpochValidator.d.ts.map +1 -0
- package/build/epoch/validator/EpochValidator.js +45 -19
- package/build/epoch/validator/EpochValidator.js.map +1 -0
- package/build/event/NetEvent.d.ts +1 -0
- package/build/event/NetEvent.d.ts.map +1 -0
- package/build/event/NetEvent.js +3 -0
- package/build/event/NetEvent.js.map +1 -0
- package/build/generators/AddressGenerator.d.ts +4 -3
- package/build/generators/AddressGenerator.d.ts.map +1 -0
- package/build/generators/AddressGenerator.js +10 -3
- package/build/generators/AddressGenerator.js.map +1 -0
- package/build/generators/Features.d.ts +4 -3
- package/build/generators/Features.d.ts.map +1 -0
- package/build/generators/Features.js +1 -0
- package/build/generators/Features.js.map +1 -0
- package/build/generators/Generator.d.ts +47 -11
- package/build/generators/Generator.d.ts.map +1 -0
- package/build/generators/Generator.js +48 -12
- package/build/generators/Generator.js.map +1 -0
- package/build/generators/MLDSAData.d.ts +1 -0
- package/build/generators/MLDSAData.d.ts.map +1 -0
- package/build/generators/MLDSAData.js +1 -0
- package/build/generators/MLDSAData.js.map +1 -0
- package/build/generators/builders/CalldataGenerator.d.ts +27 -6
- package/build/generators/builders/CalldataGenerator.d.ts.map +1 -0
- package/build/generators/builders/CalldataGenerator.js +33 -4
- package/build/generators/builders/CalldataGenerator.js.map +1 -0
- package/build/generators/builders/CustomGenerator.d.ts +13 -3
- package/build/generators/builders/CustomGenerator.d.ts.map +1 -0
- package/build/generators/builders/CustomGenerator.js +11 -0
- package/build/generators/builders/CustomGenerator.js.map +1 -0
- package/build/generators/builders/DeploymentGenerator.d.ts +17 -6
- package/build/generators/builders/DeploymentGenerator.d.ts.map +1 -0
- package/build/generators/builders/DeploymentGenerator.js +18 -2
- package/build/generators/builders/DeploymentGenerator.js.map +1 -0
- package/build/generators/builders/HashCommitmentGenerator.d.ts +166 -14
- package/build/generators/builders/HashCommitmentGenerator.d.ts.map +1 -0
- package/build/generators/builders/HashCommitmentGenerator.js +193 -27
- package/build/generators/builders/HashCommitmentGenerator.js.map +1 -0
- package/build/generators/builders/LegacyCalldataGenerator.d.ts +27 -5
- package/build/generators/builders/LegacyCalldataGenerator.d.ts.map +1 -0
- package/build/generators/builders/LegacyCalldataGenerator.js +35 -5
- package/build/generators/builders/LegacyCalldataGenerator.js.map +1 -0
- package/build/generators/builders/MultiSignGenerator.d.ts +6 -1
- package/build/generators/builders/MultiSignGenerator.d.ts.map +1 -0
- package/build/generators/builders/MultiSignGenerator.js +20 -10
- package/build/generators/builders/MultiSignGenerator.js.map +1 -0
- package/build/generators/builders/P2WDAGenerator.d.ts +44 -6
- package/build/generators/builders/P2WDAGenerator.d.ts.map +1 -0
- package/build/generators/builders/P2WDAGenerator.js +41 -2
- package/build/generators/builders/P2WDAGenerator.js.map +1 -0
- package/build/index.d.ts +1 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +1 -0
- package/build/index.js.map +1 -0
- package/build/keypair/Address.d.ts +284 -14
- package/build/keypair/Address.d.ts.map +1 -0
- package/build/keypair/Address.js +447 -129
- package/build/keypair/Address.js.map +1 -0
- package/build/keypair/AddressVerificator.d.ts +7 -6
- package/build/keypair/AddressVerificator.d.ts.map +1 -0
- package/build/keypair/AddressVerificator.js +6 -5
- package/build/keypair/AddressVerificator.js.map +1 -0
- package/build/keypair/EcKeyPair.d.ts +185 -23
- package/build/keypair/EcKeyPair.d.ts.map +1 -0
- package/build/keypair/EcKeyPair.js +223 -54
- package/build/keypair/EcKeyPair.js.map +1 -0
- package/build/keypair/MessageSigner.d.ts +18 -17
- package/build/keypair/MessageSigner.d.ts.map +1 -0
- package/build/keypair/MessageSigner.js +34 -25
- package/build/keypair/MessageSigner.js.map +1 -0
- package/build/keypair/Secp256k1PointDeriver.d.ts +55 -0
- package/build/keypair/Secp256k1PointDeriver.d.ts.map +1 -0
- package/build/keypair/Secp256k1PointDeriver.js +66 -0
- package/build/keypair/Secp256k1PointDeriver.js.map +1 -0
- package/build/keypair/Wallet.d.ts +29 -15
- package/build/keypair/Wallet.d.ts.map +1 -0
- package/build/keypair/Wallet.js +48 -14
- package/build/keypair/Wallet.js.map +1 -0
- package/build/keypair/interfaces/IWallet.d.ts +19 -0
- package/build/keypair/interfaces/IWallet.d.ts.map +1 -0
- package/build/keypair/interfaces/IWallet.js +1 -0
- package/build/keypair/interfaces/IWallet.js.map +1 -0
- package/build/metadata/ContractBaseMetadata.d.ts +10 -2
- package/build/metadata/ContractBaseMetadata.d.ts.map +1 -0
- package/build/metadata/ContractBaseMetadata.js +10 -1
- package/build/metadata/ContractBaseMetadata.js.map +1 -0
- package/build/mnemonic/BIPStandard.d.ts +59 -0
- package/build/mnemonic/BIPStandard.d.ts.map +1 -0
- package/build/mnemonic/BIPStandard.js +59 -0
- package/build/mnemonic/BIPStandard.js.map +1 -0
- package/build/mnemonic/Mnemonic.d.ts +16 -4
- package/build/mnemonic/Mnemonic.d.ts.map +1 -0
- package/build/mnemonic/Mnemonic.js +36 -8
- package/build/mnemonic/Mnemonic.js.map +1 -0
- package/build/mnemonic/MnemonicStrength.d.ts +6 -0
- package/build/mnemonic/MnemonicStrength.d.ts.map +1 -0
- package/build/mnemonic/MnemonicStrength.js +6 -0
- package/build/mnemonic/MnemonicStrength.js.map +1 -0
- package/build/network/ChainId.d.ts +1 -0
- package/build/network/ChainId.d.ts.map +1 -0
- package/build/network/ChainId.js +1 -0
- package/build/network/ChainId.js.map +1 -0
- package/build/opnet.d.ts +26 -3
- package/build/opnet.d.ts.map +1 -0
- package/build/opnet.js +23 -0
- package/build/opnet.js.map +1 -0
- package/build/p2wda/P2WDADetector.d.ts +38 -11
- package/build/p2wda/P2WDADetector.d.ts.map +1 -0
- package/build/p2wda/P2WDADetector.js +43 -10
- package/build/p2wda/P2WDADetector.js.map +1 -0
- package/build/polyfill/disposable.d.ts +16 -0
- package/build/polyfill/disposable.d.ts.map +1 -0
- package/build/polyfill/disposable.js +23 -0
- package/build/polyfill/disposable.js.map +1 -0
- package/build/signer/AddressRotation.d.ts +37 -1
- package/build/signer/AddressRotation.d.ts.map +1 -0
- package/build/signer/AddressRotation.js +16 -0
- package/build/signer/AddressRotation.js.map +1 -0
- package/build/signer/IRotationSigner.d.ts +27 -3
- package/build/signer/IRotationSigner.d.ts.map +1 -0
- package/build/signer/IRotationSigner.js +2 -1
- package/build/signer/IRotationSigner.js.map +1 -0
- package/build/signer/ParallelSignerAdapter.d.ts +14 -0
- package/build/signer/ParallelSignerAdapter.d.ts.map +1 -0
- package/build/signer/ParallelSignerAdapter.js +51 -0
- package/build/signer/ParallelSignerAdapter.js.map +1 -0
- package/build/signer/SignerUtils.d.ts +11 -4
- package/build/signer/SignerUtils.d.ts.map +1 -0
- package/build/signer/SignerUtils.js +16 -0
- package/build/signer/SignerUtils.js.map +1 -0
- package/build/signer/TweakedSigner.d.ts +28 -4
- package/build/signer/TweakedSigner.d.ts.map +1 -0
- package/build/signer/TweakedSigner.js +24 -6
- package/build/signer/TweakedSigner.js.map +1 -0
- package/build/transaction/ContractAddress.d.ts +2 -2
- package/build/transaction/ContractAddress.d.ts.map +1 -0
- package/build/transaction/ContractAddress.js +4 -8
- package/build/transaction/ContractAddress.js.map +1 -0
- package/build/transaction/TransactionFactory.d.ts +147 -9
- package/build/transaction/TransactionFactory.d.ts.map +1 -0
- package/build/transaction/TransactionFactory.js +145 -26
- package/build/transaction/TransactionFactory.js.map +1 -0
- package/build/transaction/browser/BrowserSignerBase.d.ts +12 -6
- package/build/transaction/browser/BrowserSignerBase.d.ts.map +1 -0
- package/build/transaction/browser/BrowserSignerBase.js +7 -0
- package/build/transaction/browser/BrowserSignerBase.js.map +1 -0
- package/build/transaction/browser/WalletNetworks.d.ts +1 -0
- package/build/transaction/browser/WalletNetworks.d.ts.map +1 -0
- package/build/transaction/browser/WalletNetworks.js +1 -0
- package/build/transaction/browser/WalletNetworks.js.map +1 -0
- package/build/transaction/browser/Web3Provider.d.ts +30 -3
- package/build/transaction/browser/Web3Provider.d.ts.map +1 -0
- package/build/transaction/browser/Web3Provider.js +1 -0
- package/build/transaction/browser/Web3Provider.js.map +1 -0
- package/build/transaction/browser/extensions/UnisatSigner.d.ts +11 -9
- package/build/transaction/browser/extensions/UnisatSigner.d.ts.map +1 -0
- package/build/transaction/browser/extensions/UnisatSigner.js +27 -17
- package/build/transaction/browser/extensions/UnisatSigner.js.map +1 -0
- package/build/transaction/browser/extensions/XverseSigner.d.ts +10 -8
- package/build/transaction/browser/extensions/XverseSigner.d.ts.map +1 -0
- package/build/transaction/browser/extensions/XverseSigner.js +25 -15
- package/build/transaction/browser/extensions/XverseSigner.js.map +1 -0
- package/build/transaction/browser/types/OPWallet.d.ts +12 -2
- package/build/transaction/browser/types/OPWallet.d.ts.map +1 -0
- package/build/transaction/browser/types/OPWallet.js +4 -0
- package/build/transaction/browser/types/OPWallet.js.map +1 -0
- package/build/transaction/browser/types/Unisat.d.ts +2 -1
- package/build/transaction/browser/types/Unisat.d.ts.map +1 -0
- package/build/transaction/browser/types/Unisat.js +2 -0
- package/build/transaction/browser/types/Unisat.js.map +1 -0
- package/build/transaction/browser/types/Xverse.d.ts +1 -0
- package/build/transaction/browser/types/Xverse.d.ts.map +1 -0
- package/build/transaction/browser/types/Xverse.js +1 -0
- package/build/transaction/browser/types/Xverse.js.map +1 -0
- package/build/transaction/builders/CancelTransaction.d.ts +31 -6
- package/build/transaction/builders/CancelTransaction.d.ts.map +1 -0
- package/build/transaction/builders/CancelTransaction.js +116 -33
- package/build/transaction/builders/CancelTransaction.js.map +1 -0
- package/build/transaction/builders/ChallengeSolutionTransaction.d.ts +1 -0
- package/build/transaction/builders/ChallengeSolutionTransaction.d.ts.map +1 -0
- package/build/transaction/builders/ChallengeSolutionTransaction.js +88 -0
- package/build/transaction/builders/ChallengeSolutionTransaction.js.map +1 -0
- package/build/transaction/builders/ConsolidatedInteractionTransaction.d.ts +140 -13
- package/build/transaction/builders/ConsolidatedInteractionTransaction.d.ts.map +1 -0
- package/build/transaction/builders/ConsolidatedInteractionTransaction.js +197 -20
- package/build/transaction/builders/ConsolidatedInteractionTransaction.js.map +1 -0
- package/build/transaction/builders/CustomScriptTransaction.d.ts +108 -8
- package/build/transaction/builders/CustomScriptTransaction.d.ts.map +1 -0
- package/build/transaction/builders/CustomScriptTransaction.js +176 -39
- package/build/transaction/builders/CustomScriptTransaction.js.map +1 -0
- package/build/transaction/builders/DeploymentTransaction.d.ts +120 -9
- package/build/transaction/builders/DeploymentTransaction.d.ts.map +1 -0
- package/build/transaction/builders/DeploymentTransaction.js +194 -51
- package/build/transaction/builders/DeploymentTransaction.js.map +1 -0
- package/build/transaction/builders/FundingTransaction.d.ts +5 -4
- package/build/transaction/builders/FundingTransaction.d.ts.map +1 -0
- package/build/transaction/builders/FundingTransaction.js +15 -8
- package/build/transaction/builders/FundingTransaction.js.map +1 -0
- package/build/transaction/builders/InteractionTransaction.d.ts +14 -5
- package/build/transaction/builders/InteractionTransaction.d.ts.map +1 -0
- package/build/transaction/builders/InteractionTransaction.js +18 -5
- package/build/transaction/builders/InteractionTransaction.js.map +1 -0
- package/build/transaction/builders/InteractionTransactionP2WDA.d.ts +58 -7
- package/build/transaction/builders/InteractionTransactionP2WDA.d.ts.map +1 -0
- package/build/transaction/builders/InteractionTransactionP2WDA.js +95 -18
- package/build/transaction/builders/InteractionTransactionP2WDA.js.map +1 -0
- package/build/transaction/builders/MultiSignTransaction.d.ts +126 -17
- package/build/transaction/builders/MultiSignTransaction.d.ts.map +1 -0
- package/build/transaction/builders/MultiSignTransaction.js +201 -76
- package/build/transaction/builders/MultiSignTransaction.js.map +1 -0
- package/build/transaction/builders/SharedInteractionTransaction.d.ts +106 -18
- package/build/transaction/builders/SharedInteractionTransaction.d.ts.map +1 -0
- package/build/transaction/builders/SharedInteractionTransaction.js +158 -40
- package/build/transaction/builders/SharedInteractionTransaction.js.map +1 -0
- package/build/transaction/builders/TransactionBuilder.d.ts +249 -19
- package/build/transaction/builders/TransactionBuilder.d.ts.map +1 -0
- package/build/transaction/builders/TransactionBuilder.js +377 -60
- package/build/transaction/builders/TransactionBuilder.js.map +1 -0
- package/build/transaction/enums/TransactionType.d.ts +1 -0
- package/build/transaction/enums/TransactionType.d.ts.map +1 -0
- package/build/transaction/enums/TransactionType.js +1 -0
- package/build/transaction/enums/TransactionType.js.map +1 -0
- package/build/transaction/interfaces/ICancelTransactionParameters.d.ts +3 -2
- package/build/transaction/interfaces/ICancelTransactionParameters.d.ts.map +1 -0
- package/build/transaction/interfaces/ICancelTransactionParameters.js +1 -0
- package/build/transaction/interfaces/ICancelTransactionParameters.js.map +1 -0
- package/build/transaction/interfaces/IConsolidatedTransactionParameters.d.ts +48 -5
- package/build/transaction/interfaces/IConsolidatedTransactionParameters.d.ts.map +1 -0
- package/build/transaction/interfaces/IConsolidatedTransactionParameters.js +1 -0
- package/build/transaction/interfaces/IConsolidatedTransactionParameters.js.map +1 -0
- package/build/transaction/interfaces/ICustomTransactionParameters.d.ts +7 -5
- package/build/transaction/interfaces/ICustomTransactionParameters.d.ts.map +1 -0
- package/build/transaction/interfaces/ICustomTransactionParameters.js +1 -0
- package/build/transaction/interfaces/ICustomTransactionParameters.js.map +1 -0
- package/build/transaction/interfaces/ITransactionParameters.d.ts +27 -15
- package/build/transaction/interfaces/ITransactionParameters.d.ts.map +1 -0
- package/build/transaction/interfaces/ITransactionParameters.js +1 -0
- package/build/transaction/interfaces/ITransactionParameters.js.map +1 -0
- package/build/transaction/interfaces/ITransactionResponses.d.ts +3 -2
- package/build/transaction/interfaces/ITransactionResponses.d.ts.map +1 -0
- package/build/transaction/interfaces/ITransactionResponses.js +1 -0
- package/build/transaction/interfaces/ITransactionResponses.js.map +1 -0
- package/build/transaction/interfaces/ITweakedTransactionData.d.ts +21 -8
- package/build/transaction/interfaces/ITweakedTransactionData.d.ts.map +1 -0
- package/build/transaction/interfaces/ITweakedTransactionData.js +1 -0
- package/build/transaction/interfaces/ITweakedTransactionData.js.map +1 -0
- package/build/transaction/interfaces/IWeb3ProviderTypes.d.ts +29 -3
- package/build/transaction/interfaces/IWeb3ProviderTypes.d.ts.map +1 -0
- package/build/transaction/interfaces/IWeb3ProviderTypes.js +2 -1
- package/build/transaction/interfaces/IWeb3ProviderTypes.js.map +1 -0
- package/build/transaction/interfaces/Tap.d.ts +4 -3
- package/build/transaction/interfaces/Tap.d.ts.map +1 -0
- package/build/transaction/interfaces/Tap.js +1 -0
- package/build/transaction/interfaces/Tap.js.map +1 -0
- package/build/transaction/mineable/IP2WSHAddress.d.ts +2 -1
- package/build/transaction/mineable/IP2WSHAddress.d.ts.map +1 -0
- package/build/transaction/mineable/IP2WSHAddress.js +1 -0
- package/build/transaction/mineable/IP2WSHAddress.js.map +1 -0
- package/build/transaction/mineable/TimelockGenerator.d.ts +13 -4
- package/build/transaction/mineable/TimelockGenerator.d.ts.map +1 -0
- package/build/transaction/mineable/TimelockGenerator.js +12 -3
- package/build/transaction/mineable/TimelockGenerator.js.map +1 -0
- package/build/transaction/offline/OfflineTransactionManager.d.ts +193 -12
- package/build/transaction/offline/OfflineTransactionManager.d.ts.map +1 -0
- package/build/transaction/offline/OfflineTransactionManager.js +192 -8
- package/build/transaction/offline/OfflineTransactionManager.js.map +1 -0
- package/build/transaction/offline/TransactionReconstructor.d.ts +56 -6
- package/build/transaction/offline/TransactionReconstructor.d.ts.map +1 -0
- package/build/transaction/offline/TransactionReconstructor.js +111 -75
- package/build/transaction/offline/TransactionReconstructor.js.map +1 -0
- package/build/transaction/offline/TransactionSerializer.d.ts +54 -3
- package/build/transaction/offline/TransactionSerializer.d.ts.map +1 -0
- package/build/transaction/offline/TransactionSerializer.js +206 -95
- package/build/transaction/offline/TransactionSerializer.js.map +1 -0
- package/build/transaction/offline/TransactionStateCapture.d.ts +66 -7
- package/build/transaction/offline/TransactionStateCapture.d.ts.map +1 -0
- package/build/transaction/offline/TransactionStateCapture.js +124 -60
- package/build/transaction/offline/TransactionStateCapture.js.map +1 -0
- package/build/transaction/offline/interfaces/ISerializableState.d.ts +72 -1
- package/build/transaction/offline/interfaces/ISerializableState.d.ts.map +1 -0
- package/build/transaction/offline/interfaces/ISerializableState.js +10 -1
- package/build/transaction/offline/interfaces/ISerializableState.js.map +1 -0
- package/build/transaction/offline/interfaces/ITypeSpecificData.d.ts +77 -1
- package/build/transaction/offline/interfaces/ITypeSpecificData.d.ts.map +1 -0
- package/build/transaction/offline/interfaces/ITypeSpecificData.js +19 -0
- package/build/transaction/offline/interfaces/ITypeSpecificData.js.map +1 -0
- package/build/transaction/psbt/PSBTTypes.d.ts +1 -0
- package/build/transaction/psbt/PSBTTypes.d.ts.map +1 -0
- package/build/transaction/psbt/PSBTTypes.js +1 -0
- package/build/transaction/psbt/PSBTTypes.js.map +1 -0
- package/build/transaction/shared/P2TR_MS.d.ts +11 -2
- package/build/transaction/shared/P2TR_MS.d.ts.map +1 -0
- package/build/transaction/shared/P2TR_MS.js +10 -0
- package/build/transaction/shared/P2TR_MS.js.map +1 -0
- package/build/transaction/shared/TweakedTransaction.d.ts +281 -38
- package/build/transaction/shared/TweakedTransaction.d.ts.map +1 -0
- package/build/transaction/shared/TweakedTransaction.js +576 -114
- package/build/transaction/shared/TweakedTransaction.js.map +1 -0
- package/build/transaction/utils/WitnessUtils.d.ts +7 -1
- package/build/transaction/utils/WitnessUtils.d.ts.map +1 -0
- package/build/transaction/utils/WitnessUtils.js +17 -3
- package/build/transaction/utils/WitnessUtils.js.map +1 -0
- package/build/tsconfig.build.tsbuildinfo +1 -1
- package/build/utils/BitcoinUtils.d.ts +19 -0
- package/build/utils/BitcoinUtils.d.ts.map +1 -0
- package/build/utils/BitcoinUtils.js +19 -0
- package/build/utils/BitcoinUtils.js.map +1 -0
- package/build/utils/BufferHelper.d.ts +2 -1
- package/build/utils/BufferHelper.d.ts.map +1 -0
- package/build/utils/BufferHelper.js +38 -32
- package/build/utils/BufferHelper.js.map +1 -0
- package/build/utils/StringToBuffer.d.ts +1 -0
- package/build/utils/StringToBuffer.d.ts.map +1 -0
- package/build/utils/StringToBuffer.js +1 -0
- package/build/utils/StringToBuffer.js.map +1 -0
- package/build/utils/lengths.d.ts +1 -0
- package/build/utils/lengths.d.ts.map +1 -0
- package/build/utils/lengths.js +1 -0
- package/build/utils/lengths.js.map +1 -0
- package/build/utils/types.d.ts +1 -0
- package/build/utils/types.d.ts.map +1 -0
- package/build/utils/types.js +2 -1
- package/build/utils/types.js.map +1 -0
- package/build/utxo/OPNetLimitedProvider.d.ts +39 -3
- package/build/utxo/OPNetLimitedProvider.d.ts.map +1 -0
- package/build/utxo/OPNetLimitedProvider.js +41 -3
- package/build/utxo/OPNetLimitedProvider.js.map +1 -0
- package/build/utxo/interfaces/BroadcastResponse.d.ts +1 -0
- package/build/utxo/interfaces/BroadcastResponse.d.ts.map +1 -0
- package/build/utxo/interfaces/BroadcastResponse.js +1 -0
- package/build/utxo/interfaces/BroadcastResponse.js.map +1 -0
- package/build/utxo/interfaces/IUTXO.d.ts +13 -7
- package/build/utxo/interfaces/IUTXO.d.ts.map +1 -0
- package/build/utxo/interfaces/IUTXO.js +1 -0
- package/build/utxo/interfaces/IUTXO.js.map +1 -0
- package/build/verification/TapscriptVerificator.d.ts +12 -10
- package/build/verification/TapscriptVerificator.d.ts.map +1 -0
- package/build/verification/TapscriptVerificator.js +28 -38
- package/build/verification/TapscriptVerificator.js.map +1 -0
- package/eslint.config.js +0 -1
- package/package.json +16 -39
- package/src/abi/ABICoder.ts +0 -13
- package/src/branded/Branded.ts +5 -0
- package/src/buffer/BinaryReader.ts +7 -7
- package/src/buffer/BinaryWriter.ts +29 -24
- package/src/bytecode/Compressor.ts +1 -1
- package/src/chain/ChainData.ts +34 -27
- package/src/consensus/ConsensusConfig.ts +1 -1
- package/src/consensus/IConsensusConfig.ts +0 -17
- package/src/consensus/metadata/RoswellConsensus.ts +1 -17
- package/src/crypto/crypto-browser.js +3 -4
- package/src/deterministic/AddressMap.ts +5 -1
- package/src/deterministic/AddressSet.ts +5 -1
- package/src/deterministic/CustomMap.ts +6 -2
- package/src/deterministic/DeterministicMap.ts +8 -4
- package/src/deterministic/DeterministicSet.ts +6 -2
- package/src/deterministic/ExtendedAddressMap.ts +9 -4
- package/src/deterministic/FastMap.ts +9 -5
- package/src/ecc/backend.ts +17 -0
- package/src/epoch/ChallengeSolution.ts +3 -3
- package/src/epoch/interfaces/IChallengeSolution.ts +13 -13
- package/src/epoch/validator/EpochValidator.ts +24 -43
- package/src/generators/AddressGenerator.ts +6 -6
- package/src/generators/Features.ts +3 -3
- package/src/generators/Generator.ts +42 -26
- package/src/generators/builders/CalldataGenerator.ts +26 -24
- package/src/generators/builders/CustomGenerator.ts +4 -4
- package/src/generators/builders/DeploymentGenerator.ts +25 -23
- package/src/generators/builders/HashCommitmentGenerator.ts +31 -31
- package/src/generators/builders/LegacyCalldataGenerator.ts +26 -24
- package/src/generators/builders/MultiSignGenerator.ts +12 -12
- package/src/generators/builders/P2WDAGenerator.ts +10 -10
- package/src/keypair/Address.ts +115 -72
- package/src/keypair/AddressVerificator.ts +16 -147
- package/src/keypair/EcKeyPair.ts +109 -118
- package/src/keypair/MessageSigner.ts +70 -150
- package/src/keypair/Wallet.ts +59 -240
- package/src/metadata/ContractBaseMetadata.ts +2 -2
- package/src/mnemonic/Mnemonic.ts +32 -221
- package/src/opnet.ts +12 -6
- package/src/p2wda/P2WDADetector.ts +23 -72
- package/src/polyfill/disposable.ts +29 -0
- package/src/signer/AddressRotation.ts +1 -1
- package/src/signer/IRotationSigner.ts +3 -3
- package/src/signer/ParallelSignerAdapter.ts +59 -0
- package/src/signer/SignerUtils.ts +4 -4
- package/src/signer/TweakedSigner.ts +28 -13
- package/src/transaction/ContractAddress.ts +3 -7
- package/src/transaction/TransactionFactory.ts +28 -50
- package/src/transaction/browser/BrowserSignerBase.ts +12 -6
- package/src/transaction/browser/Web3Provider.ts +3 -3
- package/src/transaction/browser/extensions/UnisatSigner.ts +52 -48
- package/src/transaction/browser/extensions/XverseSigner.ts +55 -38
- package/src/transaction/browser/types/OPWallet.ts +2 -2
- package/src/transaction/browser/types/Unisat.ts +1 -1
- package/src/transaction/builders/CancelTransaction.ts +59 -24
- package/src/transaction/builders/ChallengeSolutionTransaction.ts +3 -3
- package/src/transaction/builders/ConsolidatedInteractionTransaction.ts +39 -34
- package/src/transaction/builders/CustomScriptTransaction.ts +79 -56
- package/src/transaction/builders/DeploymentTransaction.ts +82 -63
- package/src/transaction/builders/FundingTransaction.ts +11 -11
- package/src/transaction/builders/InteractionTransaction.ts +10 -10
- package/src/transaction/builders/InteractionTransactionP2WDA.ts +38 -40
- package/src/transaction/builders/MultiSignTransaction.ts +68 -61
- package/src/transaction/builders/SharedInteractionTransaction.ts +81 -57
- package/src/transaction/builders/TransactionBuilder.ts +101 -79
- package/src/transaction/interfaces/ICancelTransactionParameters.ts +2 -2
- package/src/transaction/interfaces/IConsolidatedTransactionParameters.ts +5 -5
- package/src/transaction/interfaces/ICustomTransactionParameters.ts +5 -5
- package/src/transaction/interfaces/ITransactionParameters.ts +15 -15
- package/src/transaction/interfaces/ITransactionResponses.ts +2 -2
- package/src/transaction/interfaces/ITweakedTransactionData.ts +17 -8
- package/src/transaction/interfaces/IWeb3ProviderTypes.ts +3 -3
- package/src/transaction/interfaces/Tap.ts +3 -3
- package/src/transaction/mineable/IP2WSHAddress.ts +1 -1
- package/src/transaction/mineable/TimelockGenerator.ts +19 -12
- package/src/transaction/offline/OfflineTransactionManager.ts +22 -23
- package/src/transaction/offline/TransactionReconstructor.ts +83 -91
- package/src/transaction/offline/TransactionSerializer.ts +151 -101
- package/src/transaction/offline/TransactionStateCapture.ts +83 -79
- package/src/transaction/offline/interfaces/ISerializableState.ts +1 -1
- package/src/transaction/offline/interfaces/ITypeSpecificData.ts +1 -1
- package/src/transaction/shared/P2TR_MS.ts +4 -4
- package/src/transaction/shared/TweakedTransaction.ts +326 -124
- package/src/transaction/utils/WitnessUtils.ts +18 -9
- package/src/utils/BufferHelper.ts +39 -37
- package/src/utxo/OPNetLimitedProvider.ts +7 -7
- package/src/utxo/interfaces/IUTXO.ts +7 -7
- package/src/verification/TapscriptVerificator.ts +73 -86
- package/test/address-rotation.test.ts +24 -24
- package/test/address.test.ts +12 -12
- package/test/addressmap.test.ts +30 -30
- package/test/binary-reader-writer.test.ts +8 -8
- package/test/browser/offline-transaction.test.ts +2206 -0
- package/test/browser/parallel-signing.test.ts +316 -0
- package/test/browser/setup.ts +11 -0
- package/test/browser/transaction-signing.test.ts +416 -0
- package/test/buffer-helper.test.ts +287 -0
- package/test/derivePath.test.ts +4 -3
- package/test/disposable.test.ts +279 -0
- package/test/fastmap-setall.test.ts +1 -1
- package/test/fastmap.test.ts +3 -3
- package/test/messagesigner-mldsa.test.ts +3 -3
- package/test/messagesigner-schnorr.test.ts +9 -9
- package/test/offline-transaction.test.ts +461 -288
- package/test/old/FastBigIntMap.ts +3 -3
- package/test/oldfastmap.test.ts +6 -6
- package/test/transaction-builders.test.ts +321 -0
- package/tsconfig.base.json +34 -18
- package/tsconfig.browser.json +15 -0
- package/tsconfig.json +3 -8
- package/vite.config.browser.ts +4 -5
- package/vitest.config.browser.ts +68 -0
- package/vitest.config.ts +1 -1
- package/browser/valibot.js +0 -4948
- package/tsconfig.webpack.json +0 -18
|
@@ -1,15 +1,11 @@
|
|
|
1
1
|
import { Secp256k1PointDeriver } from '../keypair/Secp256k1PointDeriver.js';
|
|
2
2
|
class ContractAddressBase {
|
|
3
|
-
|
|
4
|
-
this.deriver = new Secp256k1PointDeriver();
|
|
5
|
-
}
|
|
3
|
+
deriver = new Secp256k1PointDeriver();
|
|
6
4
|
generateHybridKeyFromHash(input) {
|
|
7
|
-
const p = this.deriver.findOrDeriveValidPoint(
|
|
5
|
+
const p = this.deriver.findOrDeriveValidPoint(new Uint8Array(input), false);
|
|
8
6
|
const y = this.deriver.getCanonicalY(p.y1, p.y2);
|
|
9
|
-
return
|
|
10
|
-
}
|
|
11
|
-
cloneBuffer(buffer) {
|
|
12
|
-
return Buffer.from(buffer);
|
|
7
|
+
return new Uint8Array(this.deriver.getHybridPublicKey(p.x, y));
|
|
13
8
|
}
|
|
14
9
|
}
|
|
15
10
|
export const ContractAddress = new ContractAddressBase();
|
|
11
|
+
//# sourceMappingURL=ContractAddress.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContractAddress.js","sourceRoot":"","sources":["../../src/transaction/ContractAddress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAE5E,MAAM,mBAAmB;IACJ,OAAO,GAA0B,IAAI,qBAAqB,EAAE,CAAC;IAEvE,yBAAyB,CAAC,KAAiB;QAC9C,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;QAC5E,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QACjD,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACnE,CAAC;CACJ;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,mBAAmB,EAAE,CAAC"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { Transaction } from '@btc-vision/bitcoin';
|
|
2
|
-
import { UTXO } from '../utxo/interfaces/IUTXO.js';
|
|
2
|
+
import type { UTXO } from '../utxo/interfaces/IUTXO.js';
|
|
3
3
|
import { FundingTransaction } from './builders/FundingTransaction.js';
|
|
4
4
|
import { TransactionBuilder } from './builders/TransactionBuilder.js';
|
|
5
5
|
import { TransactionType } from './enums/TransactionType.js';
|
|
6
|
-
import { IDeploymentParameters, IFundingTransactionParameters, IInteractionParameters } from './interfaces/ITransactionParameters.js';
|
|
7
|
-
import { ICancelTransactionParametersWithoutSigner, ICustomTransactionWithoutSigner, InteractionParametersWithoutSigner } from './interfaces/IWeb3ProviderTypes.js';
|
|
8
|
-
import { RawChallenge } from '../epoch/interfaces/IChallengeSolution.js';
|
|
9
|
-
import { IConsolidatedInteractionParameters } from './interfaces/IConsolidatedTransactionParameters.js';
|
|
10
|
-
import { CancelledTransaction, DeploymentResult, InteractionResponse } from './interfaces/ITransactionResponses.js';
|
|
11
|
-
import { ICancelTransactionParameters } from './interfaces/ICancelTransactionParameters.js';
|
|
12
|
-
import { ICustomTransactionParameters } from './interfaces/ICustomTransactionParameters.js';
|
|
6
|
+
import type { IDeploymentParameters, IFundingTransactionParameters, IInteractionParameters } from './interfaces/ITransactionParameters.js';
|
|
7
|
+
import type { ICancelTransactionParametersWithoutSigner, ICustomTransactionWithoutSigner, InteractionParametersWithoutSigner } from './interfaces/IWeb3ProviderTypes.js';
|
|
8
|
+
import type { RawChallenge } from '../epoch/interfaces/IChallengeSolution.js';
|
|
9
|
+
import type { IConsolidatedInteractionParameters } from './interfaces/IConsolidatedTransactionParameters.js';
|
|
10
|
+
import type { CancelledTransaction, DeploymentResult, InteractionResponse } from './interfaces/ITransactionResponses.js';
|
|
11
|
+
import type { ICancelTransactionParameters } from './interfaces/ICancelTransactionParameters.js';
|
|
12
|
+
import type { ICustomTransactionParameters } from './interfaces/ICustomTransactionParameters.js';
|
|
13
13
|
export interface FundingTransactionResponse {
|
|
14
14
|
readonly tx: Transaction;
|
|
15
15
|
readonly original: FundingTransaction;
|
|
@@ -26,16 +26,30 @@ export interface BitcoinTransferBase {
|
|
|
26
26
|
export interface BitcoinTransferResponse extends BitcoinTransferBase {
|
|
27
27
|
readonly original: FundingTransaction;
|
|
28
28
|
}
|
|
29
|
+
/**
|
|
30
|
+
* Response from signConsolidatedInteraction.
|
|
31
|
+
* Contains both setup and reveal transactions for the CHCT system.
|
|
32
|
+
*/
|
|
29
33
|
export interface ConsolidatedInteractionResponse {
|
|
34
|
+
/** Setup transaction hex - creates P2WSH commitment outputs */
|
|
30
35
|
readonly setupTransaction: string;
|
|
36
|
+
/** Reveal transaction hex - spends commitments, reveals data in witnesses */
|
|
31
37
|
readonly revealTransaction: string;
|
|
38
|
+
/** Setup transaction ID */
|
|
32
39
|
readonly setupTxId: string;
|
|
40
|
+
/** Reveal transaction ID */
|
|
33
41
|
readonly revealTxId: string;
|
|
42
|
+
/** Total fees across both transactions in satoshis */
|
|
34
43
|
readonly totalFees: bigint;
|
|
44
|
+
/** Number of data chunks */
|
|
35
45
|
readonly chunkCount: number;
|
|
46
|
+
/** Total compiled data size in bytes */
|
|
36
47
|
readonly dataSize: number;
|
|
48
|
+
/** Challenge for the interaction */
|
|
37
49
|
readonly challenge: RawChallenge;
|
|
50
|
+
/** Input UTXOs used */
|
|
38
51
|
readonly inputUtxos: UTXO[];
|
|
52
|
+
/** Compiled target script (same as InteractionTransaction) */
|
|
39
53
|
readonly compiledTargetScript: string;
|
|
40
54
|
}
|
|
41
55
|
export declare class TransactionFactory {
|
|
@@ -44,22 +58,146 @@ export declare class TransactionFactory {
|
|
|
44
58
|
private readonly P2TR_SCRIPT;
|
|
45
59
|
private readonly INITIAL_FUNDING_ESTIMATE;
|
|
46
60
|
private readonly MAX_ITERATIONS;
|
|
61
|
+
/**
|
|
62
|
+
* @description Creates a cancellable transaction.
|
|
63
|
+
* @param {ICancelTransactionParameters | ICancelTransactionParametersWithoutSigner} params - The cancel transaction parameters
|
|
64
|
+
* @returns {Promise<CancelledTransaction>} - The cancelled transaction result
|
|
65
|
+
*/
|
|
47
66
|
createCancellableTransaction(params: ICancelTransactionParameters | ICancelTransactionParametersWithoutSigner): Promise<CancelledTransaction>;
|
|
67
|
+
/**
|
|
68
|
+
* @description Generate a transaction with a custom script.
|
|
69
|
+
* @param {ICustomTransactionParameters | ICustomTransactionWithoutSigner} interactionParameters - The custom transaction parameters
|
|
70
|
+
* @returns {Promise<[string, string, UTXO[], UTXO[]]>} - The signed transaction tuple [fundingTx, customTx, nextUTXOs, inputUtxos]
|
|
71
|
+
*/
|
|
48
72
|
createCustomScriptTransaction(interactionParameters: ICustomTransactionParameters | ICustomTransactionWithoutSigner): Promise<[string, string, UTXO[], UTXO[]]>;
|
|
73
|
+
/**
|
|
74
|
+
* @description Generates the required transactions.
|
|
75
|
+
* @param {IInteractionParameters | InteractionParametersWithoutSigner} interactionParameters - The interaction parameters
|
|
76
|
+
* @returns {Promise<InteractionResponse>} - The signed transaction
|
|
77
|
+
*/
|
|
49
78
|
signInteraction(interactionParameters: IInteractionParameters | InteractionParametersWithoutSigner): Promise<InteractionResponse>;
|
|
79
|
+
/**
|
|
80
|
+
* @description Generates a consolidated interaction transaction (CHCT system).
|
|
81
|
+
*
|
|
82
|
+
* Drop-in replacement for signInteraction that bypasses BIP110/Bitcoin Knots censorship.
|
|
83
|
+
* Uses P2WSH with HASH160 commitments instead of Tapscript (which uses OP_IF and gets censored).
|
|
84
|
+
*
|
|
85
|
+
* Returns two transactions:
|
|
86
|
+
* - Setup: Creates P2WSH outputs with hash commitments to data chunks
|
|
87
|
+
* - Reveal: Spends those outputs, revealing data in witnesses
|
|
88
|
+
*
|
|
89
|
+
* Data integrity is consensus-enforced - if data is stripped/modified,
|
|
90
|
+
* HASH160(data) != committed_hash and the transaction is INVALID.
|
|
91
|
+
*
|
|
92
|
+
* @param {IConsolidatedInteractionParameters} interactionParameters - Same parameters as signInteraction
|
|
93
|
+
* @returns {Promise<ConsolidatedInteractionResponse>} - Both setup and reveal transactions
|
|
94
|
+
*/
|
|
50
95
|
signConsolidatedInteraction(interactionParameters: IConsolidatedInteractionParameters): Promise<ConsolidatedInteractionResponse>;
|
|
96
|
+
/**
|
|
97
|
+
* @description Generates the required transactions.
|
|
98
|
+
* @param {IDeploymentParameters} deploymentParameters - The deployment parameters
|
|
99
|
+
* @returns {Promise<DeploymentResult>} - The signed transaction
|
|
100
|
+
*/
|
|
51
101
|
signDeployment(deploymentParameters: IDeploymentParameters): Promise<DeploymentResult>;
|
|
102
|
+
/**
|
|
103
|
+
* @description Creates a funding transaction.
|
|
104
|
+
* @param {IFundingTransactionParameters} parameters - The funding transaction parameters
|
|
105
|
+
* @returns {Promise<BitcoinTransferResponse>} - The signed transaction
|
|
106
|
+
*/
|
|
52
107
|
createBTCTransfer(parameters: IFundingTransactionParameters): Promise<BitcoinTransferResponse>;
|
|
108
|
+
/**
|
|
109
|
+
* Get all new UTXOs of a generated transaction.
|
|
110
|
+
* @param {TransactionBuilder<TransactionType>} original - The original transaction
|
|
111
|
+
* @param {Transaction} tx - The transaction
|
|
112
|
+
* @param {string} to - The address to filter
|
|
113
|
+
* @returns {UTXO[]} - The new UTXOs belonging to the specified address
|
|
114
|
+
*/
|
|
53
115
|
getAllNewUTXOs(original: TransactionBuilder<TransactionType>, tx: Transaction, to: string): UTXO[];
|
|
116
|
+
/**
|
|
117
|
+
* Parse optional inputs and normalize nonWitnessUtxo format.
|
|
118
|
+
* @param {UTXO[]} optionalInputs - The optional inputs to parse
|
|
119
|
+
* @returns {UTXO[]} - The parsed inputs with normalized nonWitnessUtxo
|
|
120
|
+
*/
|
|
54
121
|
private parseOptionalInputs;
|
|
122
|
+
/**
|
|
123
|
+
* Detect and use OP_WALLET for cancel transactions if available.
|
|
124
|
+
* @param {ICancelTransactionParameters | ICancelTransactionParametersWithoutSigner} interactionParameters - The cancel parameters
|
|
125
|
+
* @returns {Promise<CancelledTransaction | null>} - The cancelled transaction or null if OP_WALLET not available
|
|
126
|
+
*/
|
|
55
127
|
private detectCancelOPWallet;
|
|
128
|
+
/**
|
|
129
|
+
* Detect and use OP_WALLET for interaction transactions if available.
|
|
130
|
+
* @param {IInteractionParameters | InteractionParametersWithoutSigner} interactionParameters - The interaction parameters
|
|
131
|
+
* @returns {Promise<InteractionResponse | null>} - The interaction response or null if OP_WALLET not available
|
|
132
|
+
*/
|
|
56
133
|
private detectInteractionOPWallet;
|
|
134
|
+
/**
|
|
135
|
+
* Detect and use OP_WALLET for deployment transactions if available.
|
|
136
|
+
* @param {IDeploymentParameters | IDeploymentParametersWithoutSigner} deploymentParameters - The deployment parameters
|
|
137
|
+
* @returns {Promise<DeploymentResult | null>} - The deployment result or null if OP_WALLET not available
|
|
138
|
+
*/
|
|
57
139
|
private detectDeploymentOPWallet;
|
|
140
|
+
/**
|
|
141
|
+
* Create and sign a funding transaction.
|
|
142
|
+
* @param {IFundingTransactionParameters} parameters - The funding transaction parameters
|
|
143
|
+
* @returns {Promise<FundingTransactionResponse>} - The funding transaction response
|
|
144
|
+
*/
|
|
58
145
|
private createFundTransaction;
|
|
146
|
+
/**
|
|
147
|
+
* Check if the UTXOs contain any P2WDA inputs
|
|
148
|
+
*
|
|
149
|
+
* This method examines both main UTXOs and optional inputs to determine
|
|
150
|
+
* if any of them are P2WDA addresses. P2WDA detection is based on the
|
|
151
|
+
* witness script pattern: (OP_2DROP * 5) <pubkey> OP_CHECKSIG
|
|
152
|
+
*
|
|
153
|
+
* @param {UTXO[]} utxos - The main UTXOs to check
|
|
154
|
+
* @returns {boolean} - true if any UTXO is P2WDA, false otherwise
|
|
155
|
+
*/
|
|
59
156
|
private hasP2WDAInputs;
|
|
60
|
-
|
|
157
|
+
/**
|
|
158
|
+
* Sign a P2WDA interaction transaction
|
|
159
|
+
*
|
|
160
|
+
* P2WDA interactions are fundamentally different from standard OP_NET interactions.
|
|
161
|
+
* Instead of using a two-transaction model (funding + interaction), P2WDA embeds
|
|
162
|
+
* the operation data directly in the witness field of a single transaction.
|
|
163
|
+
* This achieves significant cost savings through the witness discount.
|
|
164
|
+
*
|
|
165
|
+
* Key differences:
|
|
166
|
+
* - Single transaction instead of two
|
|
167
|
+
* - Operation data in witness field instead of taproot script
|
|
168
|
+
* - 75% cost reduction for data storage
|
|
169
|
+
* - No separate funding transaction needed
|
|
170
|
+
*
|
|
171
|
+
* @param {IInteractionParameters | InteractionParametersWithoutSigner} interactionParameters - The interaction parameters
|
|
172
|
+
* @returns {Promise<InteractionResponse>} - The signed P2WDA interaction response
|
|
173
|
+
*/
|
|
61
174
|
private signP2WDAInteraction;
|
|
175
|
+
/**
|
|
176
|
+
* Get the priority fee from transaction parameters.
|
|
177
|
+
* @param {ITransactionParameters} params - The transaction parameters
|
|
178
|
+
* @returns {bigint} - The priority fee, minimum dust if below threshold
|
|
179
|
+
*/
|
|
62
180
|
private getPriorityFee;
|
|
181
|
+
/**
|
|
182
|
+
* Common iteration logic for finding the correct funding amount.
|
|
183
|
+
*
|
|
184
|
+
* This method iteratively estimates the required funding amount by simulating
|
|
185
|
+
* transactions until the amount converges or max iterations is reached.
|
|
186
|
+
*
|
|
187
|
+
* @param {P} params - The transaction parameters
|
|
188
|
+
* @param {new (params: P) => T} TransactionClass - The transaction class constructor
|
|
189
|
+
* @param {(tx: T) => Promise<bigint>} calculateAmount - Function to calculate required amount
|
|
190
|
+
* @param {string} debugPrefix - Prefix for debug logging
|
|
191
|
+
* @returns {Promise<{finalTransaction: T, estimatedAmount: bigint, challenge: IChallengeSolution | null}>} - The final transaction and estimated amount
|
|
192
|
+
*/
|
|
63
193
|
private iterateFundingAmount;
|
|
194
|
+
/**
|
|
195
|
+
* Convert a transaction output to a UTXO.
|
|
196
|
+
* @param {Transaction} tx - The transaction
|
|
197
|
+
* @param {string} to - The address
|
|
198
|
+
* @param {number} index - The output index
|
|
199
|
+
* @returns {UTXO[]} - The UTXO array (empty if output doesn't exist)
|
|
200
|
+
*/
|
|
64
201
|
private getUTXOAsTransaction;
|
|
65
202
|
}
|
|
203
|
+
//# sourceMappingURL=TransactionFactory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TransactionFactory.d.ts","sourceRoot":"","sources":["../../src/transaction/TransactionFactory.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { Transaction } from '@btc-vision/bitcoin';
|
|
2
|
-
import { currentConsensus } from '../consensus/ConsensusConfig.js';
|
|
1
|
+
import { toHex, toSatoshi, Transaction } from '@btc-vision/bitcoin';
|
|
3
2
|
import { CustomScriptTransaction } from './builders/CustomScriptTransaction.js';
|
|
4
3
|
import { DeploymentTransaction } from './builders/DeploymentTransaction.js';
|
|
5
4
|
import { FundingTransaction } from './builders/FundingTransaction.js';
|
|
6
5
|
import { InteractionTransaction } from './builders/InteractionTransaction.js';
|
|
7
6
|
import { TransactionBuilder } from './builders/TransactionBuilder.js';
|
|
7
|
+
import { TransactionType } from './enums/TransactionType.js';
|
|
8
8
|
import { P2WDADetector } from '../p2wda/P2WDADetector.js';
|
|
9
9
|
import { InteractionTransactionP2WDA } from './builders/InteractionTransactionP2WDA.js';
|
|
10
10
|
import { Address } from '../keypair/Address.js';
|
|
@@ -12,13 +12,16 @@ import { BitcoinUtils } from '../utils/BitcoinUtils.js';
|
|
|
12
12
|
import { CancelTransaction } from './builders/CancelTransaction.js';
|
|
13
13
|
import { ConsolidatedInteractionTransaction } from './builders/ConsolidatedInteractionTransaction.js';
|
|
14
14
|
export class TransactionFactory {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
15
|
+
debug = false;
|
|
16
|
+
DUMMY_PUBKEY = new Uint8Array(32).fill(1);
|
|
17
|
+
P2TR_SCRIPT = Uint8Array.from([0x51, 0x20, ...this.DUMMY_PUBKEY]);
|
|
18
|
+
INITIAL_FUNDING_ESTIMATE = 2000n;
|
|
19
|
+
MAX_ITERATIONS = 10;
|
|
20
|
+
/**
|
|
21
|
+
* @description Creates a cancellable transaction.
|
|
22
|
+
* @param {ICancelTransactionParameters | ICancelTransactionParametersWithoutSigner} params - The cancel transaction parameters
|
|
23
|
+
* @returns {Promise<CancelledTransaction>} - The cancelled transaction result
|
|
24
|
+
*/
|
|
22
25
|
async createCancellableTransaction(params) {
|
|
23
26
|
if (!params.to) {
|
|
24
27
|
throw new Error('Field "to" not provided.');
|
|
@@ -45,6 +48,11 @@ export class TransactionFactory {
|
|
|
45
48
|
inputUtxos: params.utxos,
|
|
46
49
|
};
|
|
47
50
|
}
|
|
51
|
+
/**
|
|
52
|
+
* @description Generate a transaction with a custom script.
|
|
53
|
+
* @param {ICustomTransactionParameters | ICustomTransactionWithoutSigner} interactionParameters - The custom transaction parameters
|
|
54
|
+
* @returns {Promise<[string, string, UTXO[], UTXO[]]>} - The signed transaction tuple [fundingTx, customTx, nextUTXOs, inputUtxos]
|
|
55
|
+
*/
|
|
48
56
|
async createCustomScriptTransaction(interactionParameters) {
|
|
49
57
|
if (!interactionParameters.to) {
|
|
50
58
|
throw new Error('Field "to" not provided.');
|
|
@@ -59,7 +67,7 @@ export class TransactionFactory {
|
|
|
59
67
|
throw new Error('Field "signer" not provided, OP_WALLET not detected.');
|
|
60
68
|
}
|
|
61
69
|
const inputs = this.parseOptionalInputs(interactionParameters.optionalInputs);
|
|
62
|
-
const { finalTransaction, estimatedAmount
|
|
70
|
+
const { finalTransaction, estimatedAmount } = await this.iterateFundingAmount({ ...interactionParameters, optionalInputs: inputs }, CustomScriptTransaction, async (tx) => {
|
|
63
71
|
const fee = await tx.estimateTransactionFees();
|
|
64
72
|
const priorityFee = this.getPriorityFee(interactionParameters);
|
|
65
73
|
const optionalValue = tx.getOptionalOutputValue();
|
|
@@ -103,6 +111,11 @@ export class TransactionFactory {
|
|
|
103
111
|
interactionParameters.utxos,
|
|
104
112
|
];
|
|
105
113
|
}
|
|
114
|
+
/**
|
|
115
|
+
* @description Generates the required transactions.
|
|
116
|
+
* @param {IInteractionParameters | InteractionParametersWithoutSigner} interactionParameters - The interaction parameters
|
|
117
|
+
* @returns {Promise<InteractionResponse>} - The signed transaction
|
|
118
|
+
*/
|
|
106
119
|
async signInteraction(interactionParameters) {
|
|
107
120
|
if (!interactionParameters.to) {
|
|
108
121
|
throw new Error('Field "to" not provided.');
|
|
@@ -175,9 +188,25 @@ export class TransactionFactory {
|
|
|
175
188
|
challenge: challenge.toRaw(),
|
|
176
189
|
fundingUTXOs: fundingUTXO,
|
|
177
190
|
fundingInputUtxos: interactionParameters.utxos,
|
|
178
|
-
compiledTargetScript: interactionTx.exportCompiledTargetScript()
|
|
191
|
+
compiledTargetScript: toHex(interactionTx.exportCompiledTargetScript()),
|
|
179
192
|
};
|
|
180
193
|
}
|
|
194
|
+
/**
|
|
195
|
+
* @description Generates a consolidated interaction transaction (CHCT system).
|
|
196
|
+
*
|
|
197
|
+
* Drop-in replacement for signInteraction that bypasses BIP110/Bitcoin Knots censorship.
|
|
198
|
+
* Uses P2WSH with HASH160 commitments instead of Tapscript (which uses OP_IF and gets censored).
|
|
199
|
+
*
|
|
200
|
+
* Returns two transactions:
|
|
201
|
+
* - Setup: Creates P2WSH outputs with hash commitments to data chunks
|
|
202
|
+
* - Reveal: Spends those outputs, revealing data in witnesses
|
|
203
|
+
*
|
|
204
|
+
* Data integrity is consensus-enforced - if data is stripped/modified,
|
|
205
|
+
* HASH160(data) != committed_hash and the transaction is INVALID.
|
|
206
|
+
*
|
|
207
|
+
* @param {IConsolidatedInteractionParameters} interactionParameters - Same parameters as signInteraction
|
|
208
|
+
* @returns {Promise<ConsolidatedInteractionResponse>} - Both setup and reveal transactions
|
|
209
|
+
*/
|
|
181
210
|
async signConsolidatedInteraction(interactionParameters) {
|
|
182
211
|
if (!interactionParameters.to) {
|
|
183
212
|
throw new Error('Field "to" not provided.');
|
|
@@ -210,9 +239,14 @@ export class TransactionFactory {
|
|
|
210
239
|
dataSize: result.setup.totalDataSize,
|
|
211
240
|
challenge: consolidatedTx.getChallenge().toRaw(),
|
|
212
241
|
inputUtxos: interactionParameters.utxos,
|
|
213
|
-
compiledTargetScript: consolidatedTx.exportCompiledTargetScript()
|
|
242
|
+
compiledTargetScript: toHex(consolidatedTx.exportCompiledTargetScript()),
|
|
214
243
|
};
|
|
215
244
|
}
|
|
245
|
+
/**
|
|
246
|
+
* @description Generates the required transactions.
|
|
247
|
+
* @param {IDeploymentParameters} deploymentParameters - The deployment parameters
|
|
248
|
+
* @returns {Promise<DeploymentResult>} - The signed transaction
|
|
249
|
+
*/
|
|
216
250
|
async signDeployment(deploymentParameters) {
|
|
217
251
|
const opWalletDeployment = await this.detectDeploymentOPWallet(deploymentParameters);
|
|
218
252
|
if (opWalletDeployment) {
|
|
@@ -257,7 +291,7 @@ export class TransactionFactory {
|
|
|
257
291
|
transactionId: signedTransaction.getId(),
|
|
258
292
|
outputIndex: 0,
|
|
259
293
|
scriptPubKey: {
|
|
260
|
-
hex: out.script
|
|
294
|
+
hex: toHex(out.script),
|
|
261
295
|
address: finalTransaction.getScriptAddress(),
|
|
262
296
|
},
|
|
263
297
|
value: BigInt(out.value),
|
|
@@ -279,7 +313,7 @@ export class TransactionFactory {
|
|
|
279
313
|
transactionId: signedTransaction.getId(),
|
|
280
314
|
outputIndex: 1,
|
|
281
315
|
scriptPubKey: {
|
|
282
|
-
hex: out2.script
|
|
316
|
+
hex: toHex(out2.script),
|
|
283
317
|
address: deploymentParameters.from,
|
|
284
318
|
},
|
|
285
319
|
value: BigInt(out2.value),
|
|
@@ -293,6 +327,11 @@ export class TransactionFactory {
|
|
|
293
327
|
inputUtxos: deploymentParameters.utxos,
|
|
294
328
|
};
|
|
295
329
|
}
|
|
330
|
+
/**
|
|
331
|
+
* @description Creates a funding transaction.
|
|
332
|
+
* @param {IFundingTransactionParameters} parameters - The funding transaction parameters
|
|
333
|
+
* @returns {Promise<BitcoinTransferResponse>} - The signed transaction
|
|
334
|
+
*/
|
|
296
335
|
async createBTCTransfer(parameters) {
|
|
297
336
|
if (!parameters.from) {
|
|
298
337
|
throw new Error('Field "from" not provided.');
|
|
@@ -306,6 +345,13 @@ export class TransactionFactory {
|
|
|
306
345
|
inputUtxos: parameters.utxos,
|
|
307
346
|
};
|
|
308
347
|
}
|
|
348
|
+
/**
|
|
349
|
+
* Get all new UTXOs of a generated transaction.
|
|
350
|
+
* @param {TransactionBuilder<TransactionType>} original - The original transaction
|
|
351
|
+
* @param {Transaction} tx - The transaction
|
|
352
|
+
* @param {string} to - The address to filter
|
|
353
|
+
* @returns {UTXO[]} - The new UTXOs belonging to the specified address
|
|
354
|
+
*/
|
|
309
355
|
getAllNewUTXOs(original, tx, to) {
|
|
310
356
|
const outputs = original.getOutputs();
|
|
311
357
|
const utxos = [];
|
|
@@ -322,13 +368,18 @@ export class TransactionFactory {
|
|
|
322
368
|
}
|
|
323
369
|
return utxos;
|
|
324
370
|
}
|
|
371
|
+
/**
|
|
372
|
+
* Parse optional inputs and normalize nonWitnessUtxo format.
|
|
373
|
+
* @param {UTXO[]} optionalInputs - The optional inputs to parse
|
|
374
|
+
* @returns {UTXO[]} - The parsed inputs with normalized nonWitnessUtxo
|
|
375
|
+
*/
|
|
325
376
|
parseOptionalInputs(optionalInputs) {
|
|
326
377
|
return (optionalInputs || []).map((input) => {
|
|
327
378
|
let nonWitness = input.nonWitnessUtxo;
|
|
328
379
|
if (nonWitness &&
|
|
329
380
|
!(nonWitness instanceof Uint8Array) &&
|
|
330
381
|
typeof nonWitness === 'object') {
|
|
331
|
-
nonWitness =
|
|
382
|
+
nonWitness = Uint8Array.from(Object.values(nonWitness));
|
|
332
383
|
}
|
|
333
384
|
return {
|
|
334
385
|
...input,
|
|
@@ -336,6 +387,11 @@ export class TransactionFactory {
|
|
|
336
387
|
};
|
|
337
388
|
});
|
|
338
389
|
}
|
|
390
|
+
/**
|
|
391
|
+
* Detect and use OP_WALLET for cancel transactions if available.
|
|
392
|
+
* @param {ICancelTransactionParameters | ICancelTransactionParametersWithoutSigner} interactionParameters - The cancel parameters
|
|
393
|
+
* @returns {Promise<CancelledTransaction | null>} - The cancelled transaction or null if OP_WALLET not available
|
|
394
|
+
*/
|
|
339
395
|
async detectCancelOPWallet(interactionParameters) {
|
|
340
396
|
if (typeof window === 'undefined') {
|
|
341
397
|
return null;
|
|
@@ -347,6 +403,7 @@ export class TransactionFactory {
|
|
|
347
403
|
const opnet = _window.opnet.web3;
|
|
348
404
|
const interaction = await opnet.cancelTransaction({
|
|
349
405
|
...interactionParameters,
|
|
406
|
+
// @ts-expect-error no, this is ok
|
|
350
407
|
signer: undefined,
|
|
351
408
|
});
|
|
352
409
|
if (!interaction) {
|
|
@@ -357,6 +414,11 @@ export class TransactionFactory {
|
|
|
357
414
|
inputUtxos: interaction.inputUtxos ?? interactionParameters.utxos,
|
|
358
415
|
};
|
|
359
416
|
}
|
|
417
|
+
/**
|
|
418
|
+
* Detect and use OP_WALLET for interaction transactions if available.
|
|
419
|
+
* @param {IInteractionParameters | InteractionParametersWithoutSigner} interactionParameters - The interaction parameters
|
|
420
|
+
* @returns {Promise<InteractionResponse | null>} - The interaction response or null if OP_WALLET not available
|
|
421
|
+
*/
|
|
360
422
|
async detectInteractionOPWallet(interactionParameters) {
|
|
361
423
|
if (typeof window === 'undefined') {
|
|
362
424
|
return null;
|
|
@@ -368,6 +430,7 @@ export class TransactionFactory {
|
|
|
368
430
|
const opnet = _window.opnet.web3;
|
|
369
431
|
const interaction = await opnet.signInteraction({
|
|
370
432
|
...interactionParameters,
|
|
433
|
+
// @ts-expect-error no, this is ok
|
|
371
434
|
signer: undefined,
|
|
372
435
|
});
|
|
373
436
|
if (!interaction) {
|
|
@@ -378,6 +441,11 @@ export class TransactionFactory {
|
|
|
378
441
|
fundingInputUtxos: interaction.fundingInputUtxos ?? interactionParameters.utxos,
|
|
379
442
|
};
|
|
380
443
|
}
|
|
444
|
+
/**
|
|
445
|
+
* Detect and use OP_WALLET for deployment transactions if available.
|
|
446
|
+
* @param {IDeploymentParameters | IDeploymentParametersWithoutSigner} deploymentParameters - The deployment parameters
|
|
447
|
+
* @returns {Promise<DeploymentResult | null>} - The deployment result or null if OP_WALLET not available
|
|
448
|
+
*/
|
|
381
449
|
async detectDeploymentOPWallet(deploymentParameters) {
|
|
382
450
|
if (typeof window === 'undefined') {
|
|
383
451
|
return null;
|
|
@@ -389,6 +457,7 @@ export class TransactionFactory {
|
|
|
389
457
|
const opnet = _window.opnet.web3;
|
|
390
458
|
const deployment = await opnet.deployContract({
|
|
391
459
|
...deploymentParameters,
|
|
460
|
+
// @ts-expect-error no, this is ok
|
|
392
461
|
signer: undefined,
|
|
393
462
|
});
|
|
394
463
|
if (!deployment) {
|
|
@@ -399,6 +468,11 @@ export class TransactionFactory {
|
|
|
399
468
|
inputUtxos: deployment.inputUtxos ?? deploymentParameters.utxos,
|
|
400
469
|
};
|
|
401
470
|
}
|
|
471
|
+
/**
|
|
472
|
+
* Create and sign a funding transaction.
|
|
473
|
+
* @param {IFundingTransactionParameters} parameters - The funding transaction parameters
|
|
474
|
+
* @returns {Promise<FundingTransactionResponse>} - The funding transaction response
|
|
475
|
+
*/
|
|
402
476
|
async createFundTransaction(parameters) {
|
|
403
477
|
if (!parameters.to)
|
|
404
478
|
throw new Error('Field "to" not provided.');
|
|
@@ -415,16 +489,36 @@ export class TransactionFactory {
|
|
|
415
489
|
inputUtxos: parameters.utxos,
|
|
416
490
|
};
|
|
417
491
|
}
|
|
492
|
+
/**
|
|
493
|
+
* Check if the UTXOs contain any P2WDA inputs
|
|
494
|
+
*
|
|
495
|
+
* This method examines both main UTXOs and optional inputs to determine
|
|
496
|
+
* if any of them are P2WDA addresses. P2WDA detection is based on the
|
|
497
|
+
* witness script pattern: (OP_2DROP * 5) <pubkey> OP_CHECKSIG
|
|
498
|
+
*
|
|
499
|
+
* @param {UTXO[]} utxos - The main UTXOs to check
|
|
500
|
+
* @returns {boolean} - true if any UTXO is P2WDA, false otherwise
|
|
501
|
+
*/
|
|
418
502
|
hasP2WDAInputs(utxos) {
|
|
419
503
|
return utxos.some((utxo) => P2WDADetector.isP2WDAUTXO(utxo));
|
|
420
504
|
}
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
505
|
+
/**
|
|
506
|
+
* Sign a P2WDA interaction transaction
|
|
507
|
+
*
|
|
508
|
+
* P2WDA interactions are fundamentally different from standard OP_NET interactions.
|
|
509
|
+
* Instead of using a two-transaction model (funding + interaction), P2WDA embeds
|
|
510
|
+
* the operation data directly in the witness field of a single transaction.
|
|
511
|
+
* This achieves significant cost savings through the witness discount.
|
|
512
|
+
*
|
|
513
|
+
* Key differences:
|
|
514
|
+
* - Single transaction instead of two
|
|
515
|
+
* - Operation data in witness field instead of taproot script
|
|
516
|
+
* - 75% cost reduction for data storage
|
|
517
|
+
* - No separate funding transaction needed
|
|
518
|
+
*
|
|
519
|
+
* @param {IInteractionParameters | InteractionParametersWithoutSigner} interactionParameters - The interaction parameters
|
|
520
|
+
* @returns {Promise<InteractionResponse>} - The signed P2WDA interaction response
|
|
521
|
+
*/
|
|
428
522
|
async signP2WDAInteraction(interactionParameters) {
|
|
429
523
|
if (!interactionParameters.from) {
|
|
430
524
|
throw new Error('Field "from" not provided.');
|
|
@@ -451,6 +545,11 @@ export class TransactionFactory {
|
|
|
451
545
|
compiledTargetScript: null,
|
|
452
546
|
};
|
|
453
547
|
}
|
|
548
|
+
/**
|
|
549
|
+
* Get the priority fee from transaction parameters.
|
|
550
|
+
* @param {ITransactionParameters} params - The transaction parameters
|
|
551
|
+
* @returns {bigint} - The priority fee, minimum dust if below threshold
|
|
552
|
+
*/
|
|
454
553
|
getPriorityFee(params) {
|
|
455
554
|
const totalFee = params.priorityFee + params.gasSatFee;
|
|
456
555
|
if (totalFee < TransactionBuilder.MINIMUM_DUST) {
|
|
@@ -458,6 +557,18 @@ export class TransactionFactory {
|
|
|
458
557
|
}
|
|
459
558
|
return totalFee;
|
|
460
559
|
}
|
|
560
|
+
/**
|
|
561
|
+
* Common iteration logic for finding the correct funding amount.
|
|
562
|
+
*
|
|
563
|
+
* This method iteratively estimates the required funding amount by simulating
|
|
564
|
+
* transactions until the amount converges or max iterations is reached.
|
|
565
|
+
*
|
|
566
|
+
* @param {P} params - The transaction parameters
|
|
567
|
+
* @param {new (params: P) => T} TransactionClass - The transaction class constructor
|
|
568
|
+
* @param {(tx: T) => Promise<bigint>} calculateAmount - Function to calculate required amount
|
|
569
|
+
* @param {string} debugPrefix - Prefix for debug logging
|
|
570
|
+
* @returns {Promise<{finalTransaction: T, estimatedAmount: bigint, challenge: IChallengeSolution | null}>} - The final transaction and estimated amount
|
|
571
|
+
*/
|
|
461
572
|
async iterateFundingAmount(params, TransactionClass, calculateAmount, debugPrefix) {
|
|
462
573
|
const randomBytes = 'randomBytes' in params
|
|
463
574
|
? (params.randomBytes ?? BitcoinUtils.rndBytes())
|
|
@@ -471,12 +582,12 @@ export class TransactionFactory {
|
|
|
471
582
|
while (iterations < this.MAX_ITERATIONS && estimatedFundingAmount !== previousAmount) {
|
|
472
583
|
previousAmount = estimatedFundingAmount;
|
|
473
584
|
const dummyTx = new Transaction();
|
|
474
|
-
dummyTx.addOutput(this.P2TR_SCRIPT,
|
|
585
|
+
dummyTx.addOutput(this.P2TR_SCRIPT, toSatoshi(estimatedFundingAmount));
|
|
475
586
|
const simulatedFundedUtxo = {
|
|
476
|
-
transactionId:
|
|
587
|
+
transactionId: toHex(new Uint8Array(32)),
|
|
477
588
|
outputIndex: 0,
|
|
478
589
|
scriptPubKey: {
|
|
479
|
-
hex: this.P2TR_SCRIPT
|
|
590
|
+
hex: toHex(this.P2TR_SCRIPT),
|
|
480
591
|
address: dummyAddress,
|
|
481
592
|
},
|
|
482
593
|
value: estimatedFundingAmount,
|
|
@@ -541,6 +652,13 @@ export class TransactionFactory {
|
|
|
541
652
|
challenge,
|
|
542
653
|
};
|
|
543
654
|
}
|
|
655
|
+
/**
|
|
656
|
+
* Convert a transaction output to a UTXO.
|
|
657
|
+
* @param {Transaction} tx - The transaction
|
|
658
|
+
* @param {string} to - The address
|
|
659
|
+
* @param {number} index - The output index
|
|
660
|
+
* @returns {UTXO[]} - The UTXO array (empty if output doesn't exist)
|
|
661
|
+
*/
|
|
544
662
|
getUTXOAsTransaction(tx, to, index) {
|
|
545
663
|
if (!tx.outs[index])
|
|
546
664
|
return [];
|
|
@@ -549,7 +667,7 @@ export class TransactionFactory {
|
|
|
549
667
|
transactionId: tx.getId(),
|
|
550
668
|
outputIndex: index,
|
|
551
669
|
scriptPubKey: {
|
|
552
|
-
hex: out.script
|
|
670
|
+
hex: toHex(out.script),
|
|
553
671
|
address: to,
|
|
554
672
|
},
|
|
555
673
|
value: BigInt(out.value),
|
|
@@ -557,3 +675,4 @@ export class TransactionFactory {
|
|
|
557
675
|
return [newUtxo];
|
|
558
676
|
}
|
|
559
677
|
}
|
|
678
|
+
//# sourceMappingURL=TransactionFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TransactionFactory.js","sourceRoot":"","sources":["../../src/transaction/TransactionFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwC,KAAK,EAAE,SAAS,EAAE,WAAW,EAAiB,MAAM,qBAAqB,CAAC;AAEzH,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAe7D,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC;AACxF,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,kCAAkC,EAAE,MAAM,kDAAkD,CAAC;AAwDtG,MAAM,OAAO,kBAAkB;IACpB,KAAK,GAAY,KAAK,CAAC;IAEb,YAAY,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC1C,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,CAAW,CAAC;IAC5E,wBAAwB,GAAG,KAAK,CAAC;IACjC,cAAc,GAAG,EAAE,CAAC;IAErC;;;;OAIG;IACI,KAAK,CAAC,4BAA4B,CACrC,MAAgF;QAEhF,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;QAC/D,IAAI,cAAc,EAAE,CAAC;YACjB,OAAO,cAAc,CAAC;QAC1B,CAAC;QAED,IAAI,CAAC,CAAC,QAAQ,IAAI,MAAM,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC5E,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,eAAe,EAAE,CAAC;QAC9C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;QAE7B,OAAO;YACH,WAAW,EAAE,KAAK;YAClB,SAAS,EAAE,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YAC5D,UAAU,EAAE,MAAM,CAAC,KAAK;SAC3B,CAAC;IACN,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,6BAA6B,CACtC,qBAAqF;QAErF,IAAI,CAAC,qBAAqB,CAAC,EAAE,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,CAAC,CAAC,QAAQ,IAAI,qBAAqB,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC5E,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC;QAE9E,MAAM,EAAE,gBAAgB,EAAE,eAAe,EAAE,GAAG,MAAM,IAAI,CAAC,oBAAoB,CACzE,EAAE,GAAG,qBAAqB,EAAE,cAAc,EAAE,MAAM,EAAE,EACpD,uBAAuB,EACvB,KAAK,EAAE,EAAE,EAAE,EAAE;YACT,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,uBAAuB,EAAE,CAAC;YAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC;YAC/D,MAAM,aAAa,GAAG,EAAE,CAAC,sBAAsB,EAAE,CAAC;YAClD,OAAO,GAAG,GAAG,WAAW,GAAG,aAAa,CAAC;QAC7C,CAAC,EACD,cAAc,CACjB,CAAC;QAEF,MAAM,UAAU,GACZ,MAAM,gBAAgB,CAAC,+BAA+B,EAAE,CAAC;QAE7D,UAAU,CAAC,KAAK,GAAG,qBAAqB,CAAC,KAAK,CAAC;QAC/C,UAAU,CAAC,MAAM,GAAG,eAAe,CAAC;QAEpC,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC;YAC1D,GAAG,UAAU;YACb,eAAe,EAAE,EAAE;YACnB,cAAc,EAAE,EAAE;SACrB,CAAC,CAAC;QAEH,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAC3D,CAAC;QAED,UAAU,CAAC,aAAa,GAAG,oBAAoB,CAAC,aAAa,CAAC;QAE9D,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC;YACvD,GAAG,UAAU;YACb,eAAe,EAAE,EAAE;YACnB,cAAc,EAAE,EAAE;SACrB,CAAC,CAAC;QAEH,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAC3D,CAAC;QAED,MAAM,SAAS,GAAiC;YAC5C,GAAG,qBAAqB;YACxB,KAAK,EAAE,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,EAAE,qBAAqB,CAAC,EAAE,EAAE,CAAC,CAAC;YACnF,WAAW,EAAE,gBAAgB,CAAC,WAAW,EAAE;YAC3C,cAAc,EAAE,iBAAiB,CAAC,EAAE,CAAC,QAAQ,EAAE;YAC/C,aAAa,EAAE,gBAAgB,CAAC,aAAa;YAC7C,oBAAoB,EAAE,gBAAgB,CAAC,0BAA0B,EAAE;YACnE,cAAc,EAAE,MAAM;SACzB,CAAC;QAEF,MAAM,iBAAiB,GAAG,IAAI,uBAAuB,CAAC,SAAS,CAAC,CAAC;QACjE,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,eAAe,EAAE,CAAC;QAExD,OAAO;YACH,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE;YAC5B,KAAK,CAAC,KAAK,EAAE;YACb,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,EAAE,qBAAqB,CAAC,IAAI,EAAE,CAAC,CAAC;YAC9E,qBAAqB,CAAC,KAAK;SAC9B,CAAC;IACN,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,eAAe,CACxB,qBAAkF;QAElF,IAAI,CAAC,qBAAqB,CAAC,EAAE,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,qBAAqB,CAAC,CAAC;QACxF,IAAI,mBAAmB,EAAE,CAAC;YACtB,OAAO,mBAAmB,CAAC;QAC/B,CAAC;QAED,IAAI,CAAC,CAAC,QAAQ,IAAI,qBAAqB,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC5E,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAClE,IAAI,QAAQ,EAAE,CAAC;YACX,OAAO,IAAI,CAAC,oBAAoB,CAAC,qBAAqB,CAAC,CAAC;QAC5D,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC;QAE9E,MAAM,EAAE,gBAAgB,EAAE,eAAe,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,oBAAoB,CACpF,EAAE,GAAG,qBAAqB,EAAE,cAAc,EAAE,MAAM,EAAE,EACpD,sBAAsB,EACtB,KAAK,EAAE,EAAE,EAAE,EAAE;YACT,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,uBAAuB,EAAE,CAAC;YAC/C,MAAM,YAAY,GAAG,EAAE,CAAC,mBAAmB,EAAE,CAAC;YAC9C,OAAO,GAAG,GAAG,YAAY,CAAC;QAC9B,CAAC,EACD,aAAa,CAChB,CAAC;QAEF,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC5E,CAAC;QAED,MAAM,UAAU,GACZ,MAAM,gBAAgB,CAAC,+BAA+B,EAAE,CAAC;QAE7D,UAAU,CAAC,KAAK,GAAG,qBAAqB,CAAC,KAAK,CAAC;QAC/C,UAAU,CAAC,MAAM,GAAG,eAAe,CAAC;QAEpC,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC;YAC1D,GAAG,UAAU;YACb,eAAe,EAAE,EAAE;YACnB,cAAc,EAAE,EAAE;SACrB,CAAC,CAAC;QAEH,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAC3D,CAAC;QAED,UAAU,CAAC,aAAa,GAAG,oBAAoB,CAAC,aAAa,CAAC;QAE9D,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC;YACvD,GAAG,UAAU;YACb,eAAe,EAAE,EAAE;YACnB,cAAc,EAAE,EAAE;SACrB,CAAC,CAAC;QAEH,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAC3D,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,oBAAoB,CACzC,iBAAiB,CAAC,EAAE,EACpB,gBAAgB,CAAC,gBAAgB,EAAE,EACnC,CAAC,CACJ,CAAC;QACF,MAAM,SAAS,GAA2B;YACtC,GAAG,qBAAqB;YACxB,KAAK,EAAE,WAAW;YAClB,WAAW,EAAE,gBAAgB,CAAC,WAAW,EAAE;YAC3C,SAAS,EAAE,SAAS;YACpB,oBAAoB,EAAE,gBAAgB,CAAC,0BAA0B,EAAE;YACnE,cAAc,EAAE,iBAAiB,CAAC,EAAE,CAAC,QAAQ,EAAE;YAC/C,aAAa,EAAE,gBAAgB,CAAC,aAAa;YAC7C,cAAc,EAAE,MAAM;SACzB,CAAC;QAEF,MAAM,aAAa,GAAG,IAAI,sBAAsB,CAAC,SAAS,CAAC,CAAC;QAC5D,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,eAAe,EAAE,CAAC;QAEpD,OAAO;YACH,kBAAkB,EAAE,gBAAgB,CAAC,gBAAgB,EAAE;YACvD,kBAAkB,EAAE,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE;YAChD,sBAAsB,EAAE,KAAK,CAAC,KAAK,EAAE;YACrC,aAAa,EAAE,aAAa,CAAC,cAAc;YAC3C,SAAS,EAAE,IAAI,CAAC,oBAAoB,CAChC,iBAAiB,CAAC,EAAE,EACpB,qBAAqB,CAAC,IAAI,EAC1B,CAAC,CACJ;YACD,SAAS,EAAE,SAAS,CAAC,KAAK,EAAE;YAC5B,YAAY,EAAE,WAAW;YACzB,iBAAiB,EAAE,qBAAqB,CAAC,KAAK;YAC9C,oBAAoB,EAAE,KAAK,CAAC,aAAa,CAAC,0BAA0B,EAAE,CAAC;SAC1E,CAAC;IACN,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACI,KAAK,CAAC,2BAA2B,CACpC,qBAAyD;QAEzD,IAAI,CAAC,qBAAqB,CAAC,EAAE,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,CAAC,CAAC,QAAQ,IAAI,qBAAqB,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACvD,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC;QAE9E,MAAM,cAAc,GAAG,IAAI,kCAAkC,CAAC;YAC1D,GAAG,qBAAqB;YACxB,cAAc,EAAE,MAAM;SACzB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,KAAK,EAAE,CAAC;QAE5C,OAAO;YACH,gBAAgB,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK;YACpC,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK;YACtC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI;YAC5B,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI;YAC9B,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU;YACnC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,aAAa;YACpC,SAAS,EAAE,cAAc,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE;YAChD,UAAU,EAAE,qBAAqB,CAAC,KAAK;YACvC,oBAAoB,EAAE,KAAK,CAAC,cAAc,CAAC,0BAA0B,EAAE,CAAC;SAC3E,CAAC;IACN,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,cAAc,CACvB,oBAA2C;QAE3C,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,oBAAoB,CAAC,CAAC;QACrF,IAAI,kBAAkB,EAAE,CAAC;YACrB,OAAO,kBAAkB,CAAC;QAC9B,CAAC;QAED,IAAI,CAAC,CAAC,QAAQ,IAAI,oBAAoB,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC5E,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;QAE7E,MAAM,EAAE,gBAAgB,EAAE,eAAe,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,oBAAoB,CACpF,EAAE,GAAG,oBAAoB,EAAE,cAAc,EAAE,MAAM,EAAE,EACnD,qBAAqB,EACrB,KAAK,EAAE,EAAE,EAAE,EAAE;YACT,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,uBAAuB,EAAE,CAAC;YAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC;YAC9D,MAAM,aAAa,GAAG,EAAE,CAAC,sBAAsB,EAAE,CAAC;YAClD,OAAO,GAAG,GAAG,WAAW,GAAG,aAAa,CAAC;QAC7C,CAAC,EACD,YAAY,CACf,CAAC;QAEF,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QAC3E,CAAC;QAED,MAAM,UAAU,GACZ,MAAM,gBAAgB,CAAC,+BAA+B,EAAE,CAAC;QAE7D,UAAU,CAAC,KAAK,GAAG,oBAAoB,CAAC,KAAK,CAAC;QAC9C,UAAU,CAAC,MAAM,GAAG,eAAe,CAAC;QAEpC,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC;YAC1D,GAAG,UAAU;YACb,eAAe,EAAE,EAAE;YACnB,cAAc,EAAE,EAAE;SACrB,CAAC,CAAC;QAEH,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAC3D,CAAC;QAED,UAAU,CAAC,aAAa,GAAG,oBAAoB,CAAC,aAAa,CAAC;QAE9D,MAAM,kBAAkB,GAAG,IAAI,kBAAkB,CAAC;YAC9C,GAAG,UAAU;YACb,cAAc,EAAE,EAAE;YAClB,eAAe,EAAE,EAAE;SACtB,CAAC,CAAC;QAEH,MAAM,iBAAiB,GAAG,MAAM,kBAAkB,CAAC,eAAe,EAAE,CAAC;QACrE,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAC3D,CAAC;QAED,MAAM,GAAG,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAa,CAAC;QAClD,MAAM,OAAO,GAAS;YAClB,aAAa,EAAE,iBAAiB,CAAC,KAAK,EAAE;YACxC,WAAW,EAAE,CAAC;YACd,YAAY,EAAE;gBACV,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;gBACtB,OAAO,EAAE,gBAAgB,CAAC,gBAAgB,EAAE;aAC/C;YACD,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;SAC3B,CAAC;QAEF,MAAM,SAAS,GAA0B;YACrC,GAAG,oBAAoB;YACvB,KAAK,EAAE,CAAC,OAAO,CAAC;YAChB,WAAW,EAAE,gBAAgB,CAAC,WAAW,EAAE;YAC3C,oBAAoB,EAAE,gBAAgB,CAAC,0BAA0B,EAAE;YACnE,SAAS,EAAE,SAAS;YACpB,cAAc,EAAE,iBAAiB,CAAC,QAAQ,EAAE;YAC5C,aAAa,EAAE,gBAAgB,CAAC,aAAa;YAC7C,cAAc,EAAE,MAAM;SACzB,CAAC;QAEF,MAAM,YAAY,GAAG,IAAI,qBAAqB,CAAC,SAAS,CAAC,CAAC;QAC1D,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,eAAe,EAAE,CAAC;QAEnD,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAa,CAAC;QACnD,MAAM,UAAU,GAAS;YACrB,aAAa,EAAE,iBAAiB,CAAC,KAAK,EAAE;YACxC,WAAW,EAAE,CAAC;YACd,YAAY,EAAE;gBACV,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;gBACvB,OAAO,EAAE,oBAAoB,CAAC,IAAc;aAC/C;YACD,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;SAC5B,CAAC;QAEF,OAAO;YACH,WAAW,EAAE,CAAC,iBAAiB,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;YACvD,eAAe,EAAE,YAAY,CAAC,kBAAkB,EAAE;YAClD,cAAc,EAAE,YAAY,CAAC,cAAc;YAC3C,KAAK,EAAE,CAAC,UAAU,CAAC;YACnB,SAAS,EAAE,SAAS,CAAC,KAAK,EAAE;YAC5B,UAAU,EAAE,oBAAoB,CAAC,KAAK;SACzC,CAAC;IACN,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,iBAAiB,CAC1B,UAAyC;QAEzC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;QAC1D,OAAO;YACH,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE;YACnB,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,UAAU,CAAC,IAAI,CAAC;YACvE,UAAU,EAAE,UAAU,CAAC,KAAK;SAC/B,CAAC;IACN,CAAC;IAED;;;;;;OAMG;IACI,cAAc,CACjB,QAA6C,EAC7C,EAAe,EACf,EAAU;QAEV,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC;QAEtC,MAAM,KAAK,GAAW,EAAE,CAAC;QACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAuB,CAAC;YAChD,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC;gBACtB,IAAI,MAAM,CAAC,OAAO,KAAK,EAAE;oBAAE,SAAS;YACxC,CAAC;iBAAM,CAAC;gBACJ,SAAS;YACb,CAAC;YAED,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QACxD,CAAC;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACK,mBAAmB,CAAC,cAAuB;QAC/C,OAAO,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACxC,IAAI,UAAU,GAAG,KAAK,CAAC,cAAc,CAAC;YACtC,IACI,UAAU;gBACV,CAAC,CAAC,UAAU,YAAY,UAAU,CAAC;gBACnC,OAAO,UAAU,KAAK,QAAQ,EAChC,CAAC;gBACC,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,UAAoC,CAAC,CAAC,CAAC;YACtF,CAAC;YAED,OAAO;gBACH,GAAG,KAAK;gBACR,cAAc,EAAE,UAAU;aACrB,CAAC;QACd,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,oBAAoB,CAC9B,qBAE+C;QAE/C,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,OAAO,GAAG,MAA2B,CAAC;QAC5C,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YACpD,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;QACjC,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,iBAAiB,CAAC;YAC9C,GAAG,qBAAqB;YACxB,kCAAkC;YAClC,MAAM,EAAE,SAAS;SACpB,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC/D,CAAC;QAED,OAAO;YACH,GAAG,WAAW;YACd,UAAU,EAAE,WAAW,CAAC,UAAU,IAAI,qBAAqB,CAAC,KAAK;SACpE,CAAC;IACN,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,yBAAyB,CACnC,qBAAkF;QAElF,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,OAAO,GAAG,MAA2B,CAAC;QAC5C,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YACpD,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;QACjC,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,eAAe,CAAC;YAC5C,GAAG,qBAAqB;YACxB,kCAAkC;YAClC,MAAM,EAAE,SAAS;SACpB,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC/D,CAAC;QAED,OAAO;YACH,GAAG,WAAW;YACd,iBAAiB,EAAE,WAAW,CAAC,iBAAiB,IAAI,qBAAqB,CAAC,KAAK;SAClF,CAAC;IACN,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,wBAAwB,CAClC,oBAAgF;QAEhF,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,OAAO,GAAG,MAA2B,CAAC;QAC5C,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YACpD,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;QACjC,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC;YAC1C,GAAG,oBAAoB;YACvB,kCAAkC;YAClC,MAAM,EAAE,SAAS;SACpB,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC/D,CAAC;QAED,OAAO;YACH,GAAG,UAAU;YACb,UAAU,EAAE,UAAU,CAAC,UAAU,IAAI,oBAAoB,CAAC,KAAK;SAClE,CAAC;IACN,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,qBAAqB,CAC/B,UAAyC;QAEzC,IAAI,CAAC,UAAU,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAEhE,MAAM,kBAAkB,GAAuB,IAAI,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAClF,MAAM,iBAAiB,GAAgB,MAAM,kBAAkB,CAAC,eAAe,EAAE,CAAC;QAClF,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAC3D,CAAC;QAED,OAAO;YACH,EAAE,EAAE,iBAAiB;YACrB,QAAQ,EAAE,kBAAkB;YAC5B,aAAa,EAAE,kBAAkB,CAAC,aAAa;YAC/C,SAAS,EAAE,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC;YACzE,UAAU,EAAE,UAAU,CAAC,KAAK;SAC/B,CAAC;IACN,CAAC;IAED;;;;;;;;;OASG;IACK,cAAc,CAAC,KAAa;QAChC,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IACjE,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACK,KAAK,CAAC,oBAAoB,CAC9B,qBAAkF;QAElF,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAClD,CAAC;QAED,IAAI,CAAC,CAAC,QAAQ,IAAI,qBAAqB,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CACX,4EAA4E,CAC/E,CAAC;QACN,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC;QAC9E,MAAM,gBAAgB,GAAG,IAAI,2BAA2B,CAAC;YACrD,GAAG,qBAAqB;YACxB,cAAc,EAAE,MAAM;SACzB,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,eAAe,EAAE,CAAC;QAC1D,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC;QAE/B,OAAO;YACH,kBAAkB,EAAE,IAAI;YACxB,kBAAkB,EAAE,IAAI;YACxB,sBAAsB,EAAE,KAAK;YAC7B,aAAa,EAAE,gBAAgB,CAAC,aAAa;YAC7C,SAAS,EAAE,IAAI,CAAC,oBAAoB,CAChC,QAAQ,EACR,qBAAqB,CAAC,IAAI,EAC1B,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAC3B;YACD,YAAY,EAAE,CAAC,GAAG,qBAAqB,CAAC,KAAK,EAAE,GAAG,MAAM,CAAC;YACzD,iBAAiB,EAAE,qBAAqB,CAAC,KAAK;YAC9C,SAAS,EAAE,qBAAqB,CAAC,SAAS,CAAC,KAAK,EAAE;YAClD,oBAAoB,EAAE,IAAI;SAC7B,CAAC;IACN,CAAC;IAED;;;;OAIG;IACK,cAAc,CAAC,MAA8B;QACjD,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC;QACvD,IAAI,QAAQ,GAAG,kBAAkB,CAAC,YAAY,EAAE,CAAC;YAC7C,OAAO,kBAAkB,CAAC,YAAY,CAAC;QAC3C,CAAC;QAED,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED;;;;;;;;;;;OAWG;IACK,KAAK,CAAC,oBAAoB,CAI9B,MAAS,EACT,gBAAsC,EACtC,eAA2C,EAC3C,WAAmB;QAMnB,MAAM,WAAW,GACb,aAAa,IAAI,MAAM;YACnB,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,IAAI,YAAY,CAAC,QAAQ,EAAE,CAAC;YACjD,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;QAElC,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAEzD,IAAI,sBAAsB,GAAG,IAAI,CAAC,wBAAwB,CAAC;QAC3D,IAAI,cAAc,GAAG,EAAE,CAAC;QACxB,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,mBAAmB,GAAa,IAAI,CAAC;QACzC,IAAI,SAAS,GAA8B,IAAI,CAAC;QAEhD,OAAO,UAAU,GAAG,IAAI,CAAC,cAAc,IAAI,sBAAsB,KAAK,cAAc,EAAE,CAAC;YACnF,cAAc,GAAG,sBAAsB,CAAC;YAExC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;YAClC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,sBAAsB,CAAC,CAAC,CAAC;YAEvE,MAAM,mBAAmB,GAAS;gBAC9B,aAAa,EAAE,KAAK,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;gBACxC,WAAW,EAAE,CAAC;gBACd,YAAY,EAAE;oBACV,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC;oBAC5B,OAAO,EAAE,YAAY;iBACxB;gBACD,KAAK,EAAE,sBAAsB;gBAC7B,cAAc,EAAE,OAAO,CAAC,QAAQ,EAAE;aACrC,CAAC;YAEF,IAAI,QAAW,CAAC;YAChB,IAAI,WAAW,IAAI,MAAM,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBAC5C,MAAM,aAAa,GAAG;oBAClB,GAAG,MAAM;oBACT,KAAK,EAAE,CAAC,mBAAmB,CAAC;oBAC5B,WAAW,EAAE,WAAW;oBACxB,SAAS,EAAE,SAAS,IAAI,MAAM,CAAC,SAAS;iBAC3C,CAAC;gBACF,QAAQ,GAAG,aAAkB,CAAC;YAClC,CAAC;iBAAM,CAAC;gBACJ,MAAM,gBAAgB,GAAG;oBACrB,GAAG,MAAM;oBACT,KAAK,EAAE,CAAC,mBAAmB,CAAC;oBAC5B,WAAW,EAAE,WAAW;iBAC3B,CAAC;gBACF,QAAQ,GAAG,gBAAqB,CAAC;YACrC,CAAC;YAED,MAAM,cAAc,GAAM,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YAEzD,IAAI,CAAC;gBACD,MAAM,cAAc,CAAC,oCAAoC,EAAE,CAAC;gBAC5D,sBAAsB,GAAG,MAAM,eAAe,CAAC,cAAc,CAAC,CAAC;YACnE,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACtB,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;oBACzB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;oBAC9E,IAAI,KAAK,EAAE,CAAC;wBACR,sBAAsB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAW,CAAC,CAAC;wBACpD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;4BACb,OAAO,CAAC,GAAG,CACP,GAAG,WAAW,4CAA4C,sBAAsB,EAAE,CACrF,CAAC;wBACN,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACJ,MAAM,KAAK,CAAC;oBAChB,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACJ,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;gBAC3D,CAAC;YACL,CAAC;YAED,mBAAmB,GAAG,cAAc,CAAC;YAErC,IACI,cAAc,IAAI,cAAc;gBAChC,OAAO,cAAc,CAAC,YAAY,KAAK,UAAU,EACnD,CAAC;gBACC,SAAS,GAAG,cAAc,CAAC,YAAY,EAAE,CAAC;YAC9C,CAAC;YAED,UAAU,EAAE,CAAC;YAEb,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACb,OAAO,CAAC,GAAG,CACP,GAAG,WAAW,cAAc,UAAU,cAAc,cAAc,SAAS,sBAAsB,EAAE,CACtG,CAAC;YACN,CAAC;QACL,CAAC;QAED,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,yBAAyB,WAAW,iBAAiB,CAAC,CAAC;QAC3E,CAAC;QAED,OAAO;YACH,gBAAgB,EAAE,mBAAmB;YACrC,eAAe,EAAE,sBAAsB;YACvC,SAAS;SACZ,CAAC;IACN,CAAC;IAED;;;;;;OAMG;IACK,oBAAoB,CAAC,EAAe,EAAE,EAAU,EAAE,KAAa;QACnE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAE/B,MAAM,GAAG,GAAa,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrC,MAAM,OAAO,GAAS;YAClB,aAAa,EAAE,EAAE,CAAC,KAAK,EAAE;YACzB,WAAW,EAAE,KAAK;YAClB,YAAY,EAAE;gBACV,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;gBACtB,OAAO,EAAE,EAAE;aACd;YACD,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;SAC3B,CAAC;QAEF,OAAO,CAAC,OAAO,CAAC,CAAC;IACrB,CAAC;CACJ"}
|