@btc-vision/transaction
Version:
OPNet transaction library allows you to create and sign transactions for the OPNet network.
52 lines (51 loc) • 2.2 kB
TypeScript
import { TransactionType } from '../enums/TransactionType.js';
import { IDeploymentParameters } from '../interfaces/ITransactionParameters.js';
import { P2TRPayment, Psbt } from '@btc-vision/bitcoin';
import { TransactionBuilder } from './TransactionBuilder.js';
import { TapLeafScript } from '../interfaces/Tap.js';
import { Address } from '../../keypair/Address.js';
import { ChallengeSolution } from '../../epoch/ChallengeSolution.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: ChallengeSolution;
protected readonly epochChallenge: IP2WSHAddress;
protected readonly _contractAddress: Address;
protected tapLeafScript: TapLeafScript | null;
private readonly deploymentVersion;
private targetScriptRedeem;
private leftOverFundsScriptRedeem;
private readonly compiledTargetScript;
private readonly scriptTree;
private deploymentGenerator;
private readonly contractSeed;
private readonly bytecode;
private readonly calldata?;
private readonly contractSigner;
private readonly _contractPubKey;
private readonly randomBytes;
private _computedAddress;
constructor(parameters: IDeploymentParameters);
get contractPubKey(): string;
get contractAddress(): Address;
get p2trAddress(): string;
getRndBytes(): Buffer;
getChallenge(): ChallengeSolution;
getContractAddress(): string;
protected contractSignerXOnlyPubKey(): Buffer;
protected buildTransaction(): Promise<void>;
protected signInputsWalletBased(transaction: Psbt): Promise<void>;
protected signInputs(transaction: Psbt): Promise<void>;
protected generateScriptAddress(): P2TRPayment;
protected generateTapData(): P2TRPayment;
private generateFeatures;
private verifyCalldata;
private verifyBytecode;
private getContractSeed;
private customFinalizer;
private getPubKeys;
private generateRedeemScripts;
private getLeafScript;
private getScriptTree;
}