@btc-vision/transaction
Version:
OPNet transaction library allows you to create and sign transactions for the OPNet network.
164 lines • 4.34 kB
TypeScript
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