UNPKG

@btc-vision/transaction

Version:

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

71 lines (70 loc) 3.54 kB
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 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 constructor(parameters: ITransactionParameters); static getFrom(from: string | undefined, keypair: ECPairInterface | Signer, network: Network): string; static witnessStackToScriptWitness(witness: Buffer[]): Buffer; 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>; }