@btc-vision/transaction
Version:
OPNet transaction library allows you to create and sign transactions for the OPNet network.
76 lines (75 loc) • 3.72 kB
TypeScript
import { Network, Psbt, PsbtInputExtended, PsbtOutputExtended, Signer, Transaction } from '@btc-vision/bitcoin';
import { UpdateInput } from '../interfaces/Tap.js';
import { TransactionType } from '../enums/TransactionType.js';
import { IFundingTransactionParameters, ITransactionParameters } from '../interfaces/ITransactionParameters.js';
import { UTXO } from '../../utxo/interfaces/IUTXO.js';
import { ECPairInterface } from 'ecpair';
import { TweakedTransaction } from '../shared/TweakedTransaction.js';
import { UnisatSigner } from '../browser/extensions/UnisatSigner.js';
export declare const MINIMUM_AMOUNT_REWARD: bigint;
export declare const MINIMUM_AMOUNT_CA: bigint;
export declare const ANCHOR_SCRIPT: Buffer<ArrayBuffer>;
export declare abstract class TransactionBuilder<T extends TransactionType> extends TweakedTransaction {
static readonly LOCK_LEAF_SCRIPT: Buffer;
static readonly MINIMUM_DUST: bigint;
abstract readonly type: T;
readonly logColor: string;
overflowFees: bigint;
transactionFee: bigint;
estimatedFees: bigint;
optionalOutputs: PsbtOutputExtended[] | undefined;
protected transaction: Psbt;
protected readonly updateInputs: UpdateInput[];
protected readonly outputs: PsbtOutputExtended[];
protected feeOutput: PsbtOutputExtended | null;
protected totalInputAmount: bigint;
protected readonly signer: Signer | ECPairInterface | UnisatSigner;
protected readonly network: Network;
protected readonly feeRate: number;
protected priorityFee: bigint;
protected gasSatFee: bigint;
protected utxos: UTXO[];
protected optionalInputs: UTXO[];
protected to: string | undefined;
protected from: string;
protected _maximumFeeRate: number;
protected isPubKeyDestination: boolean;
protected anchor: boolean;
protected note?: Buffer;
protected constructor(parameters: ITransactionParameters);
static getFrom(from: string | undefined, keypair: ECPairInterface | Signer, network: Network): string;
static witnessStackToScriptWitness(witness: Buffer[]): Buffer;
addOPReturn(buffer: Buffer): void;
addAnchor(): void;
getFundingTransactionParameters(): Promise<IFundingTransactionParameters>;
setDestinationAddress(address: string): void;
setMaximumFeeRate(feeRate: number): void;
signTransaction(): Promise<Transaction>;
generateTransactionMinimalSignatures(checkPartialSigs?: boolean): Promise<void>;
signPSBT(): Promise<Psbt>;
addInput(input: PsbtInputExtended): void;
addOutput(output: PsbtOutputExtended): void;
toAddress(): string | undefined;
address(): string | undefined;
estimateTransactionFees(): Promise<bigint>;
rebuildFromBase64(base64: string): Promise<Psbt>;
setPSBT(psbt: Psbt): void;
getInputs(): PsbtInputExtended[];
getOutputs(): PsbtOutputExtended[];
getOptionalOutputValue(): bigint;
protected addRefundOutput(amountSpent: bigint): Promise<void>;
protected addValueToToOutput(value: number | bigint): void;
protected getTransactionOPNetFee(): bigint;
protected calculateTotalUTXOAmount(): bigint;
protected calculateTotalVOutAmount(): bigint;
protected addOptionalOutputsAndGetAmount(): bigint;
protected addInputsFromUTXO(): void;
protected internalInit(): void;
protected abstract buildTransaction(): Promise<void>;
protected updateInput(input: UpdateInput): void;
protected getWitness(): Buffer;
protected getTapOutput(): Buffer;
protected verifyUTXOValidity(): void;
protected setFeeOutput(output: PsbtOutputExtended): Promise<void>;
protected internalBuildTransaction(transaction: Psbt, checkPartialSigs?: boolean): Promise<boolean>;
}