UNPKG

@btc-vision/transaction

Version:

OPNet transaction library allows you to create and sign transactions for the OPNet network.

164 lines 4.34 kB
import { TransactionType } from '../enums/TransactionType.js'; import { IDeploymentParameters } from '../interfaces/ITransactionParameters.js'; import { Psbt } from '../../../node_modules/@btc-vision/bitcoin/browser/index.js'; import { TransactionBuilder } from './TransactionBuilder.js'; import { TapPayment } from '../shared/TweakedTransaction.js'; import { TapLeafScript } from '../interfaces/Tap.js'; import { Address } from '../../keypair/Address.js'; import { IChallengeSolution } from '../../epoch/interfaces/IChallengeSolution.js'; import { IP2WSHAddress } from '../mineable/IP2WSHAddress.js'; export declare class DeploymentTransaction extends TransactionBuilder<TransactionType.DEPLOYMENT> { static readonly MAXIMUM_CONTRACT_SIZE: number; type: TransactionType.DEPLOYMENT; protected readonly challenge: IChallengeSolution; protected readonly epochChallenge: IP2WSHAddress; /** * The contract address * @protected */ protected readonly _contractAddress: Address; /** * The tap leaf script * @private */ protected tapLeafScript: TapLeafScript | null; private readonly deploymentVersion; /** * The target script redeem * @private */ private targetScriptRedeem; /** * The left over funds script redeem * @private */ private leftOverFundsScriptRedeem; /** * The compiled target script * @private */ private readonly compiledTargetScript; /** * The script tree * @private */ private readonly scriptTree; /** * The deployment bitcoin generator * @private */ private deploymentGenerator; /** * The contract seed * @private */ private readonly contractSeed; /** * The contract bytecode * @private */ private readonly bytecode; /** * Constructor calldata * @private */ private readonly calldata?; /** * The contract signer * @private */ private readonly contractSigner; /** * The contract public key * @private */ private readonly _contractPubKey; /** * The contract salt random bytes * @private */ private readonly randomBytes; private _computedAddress; constructor(parameters: IDeploymentParameters); /** * Get the contract public key */ get contractPubKey(): string; /** * @description Get the contract address (PKSH) */ get contractAddress(): Address; /** * @description Get the P2TR address */ get p2trAddress(): string; exportCompiledTargetScript(): Uint8Array; /** * Get the random bytes used for the interaction * @returns {Uint8Array} The random bytes */ getRndBytes(): Uint8Array; /** * Get the contract bytecode * @returns {Uint8Array} The contract bytecode */ getChallenge(): IChallengeSolution; getContractAddress(): string; /** * Get the contract signer public key * @protected */ protected contractSignerXOnlyPubKey(): Uint8Array; /** * Build the transaction * @protected */ protected buildTransaction(): Promise<void>; protected signInputsWalletBased(transaction: Psbt): Promise<void>; /** * Sign the inputs * @param {Psbt} transaction The transaction to sign * @protected */ protected signInputs(transaction: Psbt): Promise<void>; /** * Get the tap output * @protected */ protected generateScriptAddress(): TapPayment; /** * Generate the tap data * @protected */ protected generateTapData(): TapPayment; private generateFeatures; private verifyCalldata; private verifyBytecode; /** * Generate the contract seed for the deployment * @private */ private getContractSeed; /** * Finalize the transaction * @param _inputIndex * @param input */ private customFinalizer; /** * Generate the redeem scripts * @private */ private generateRedeemScripts; /** * Get the second leaf script * @private */ private getLeafScript; /** * Get the script tree * @private */ private getScriptTree; } //# sourceMappingURL=DeploymentTransaction.d.ts.map