UNPKG

@btc-vision/transaction

Version:

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

61 lines (60 loc) 3.1 kB
import { P2TRPayment, Psbt, PsbtInput, Signer, TapScriptSig, Taptree } from '@btc-vision/bitcoin'; import { TransactionBuilder } from './TransactionBuilder.js'; import { TransactionType } from '../enums/TransactionType.js'; import { ITransactionParameters } from '../interfaces/ITransactionParameters.js'; import { ECPairInterface } from 'ecpair'; export interface MultiSignParameters extends Omit<ITransactionParameters, 'gasSatFee' | 'priorityFee' | 'signer'> { readonly pubkeys: Buffer[]; readonly minimumSignatures: number; readonly from?: undefined; readonly to?: undefined; readonly psbt?: Psbt; readonly receiver: string; readonly requestedAmount: bigint; readonly refundVault: string; } export interface MultiSignFromBase64Params extends Omit<MultiSignParameters, 'psbt'> { readonly psbt: string; } export declare class MultiSignTransaction extends TransactionBuilder<TransactionType.MULTI_SIG> { static readonly LOCK_LEAF_SCRIPT: Buffer; static readonly signHashTypesArray: number[]; static readonly numsPoint: Buffer<ArrayBuffer>; type: TransactionType.MULTI_SIG; protected targetScriptRedeem: P2TRPayment | null; protected leftOverFundsScriptRedeem: P2TRPayment | null; protected readonly compiledTargetScript: Buffer; protected readonly scriptTree: Taptree; protected readonly publicKeys: Buffer[]; protected readonly minimumSignatures: number; protected readonly originalInputCount: number; protected readonly requestedAmount: bigint; protected readonly receiver: string; protected readonly refundVault: string; protected readonly sighashTypes: number[]; constructor(parameters: MultiSignParameters); static fromBase64(params: MultiSignFromBase64Params): MultiSignTransaction; static verifyIfSigned(psbt: Psbt, signerPubKey: Buffer): boolean; static signPartial(psbt: Psbt, signer: Signer | ECPairInterface, originalInputCount: number, minimums: number[]): { final: boolean; signed: boolean; }; static partialFinalizer: (inputIndex: number, input: PsbtInput, partialSignatures: Buffer[], orderedPubKeys: Buffer[], isFinal: boolean) => { finalScriptWitness: Buffer<ArrayBufferLike>; }; static dedupeSignatures(original: TapScriptSig[], partial: TapScriptSig[]): TapScriptSig[]; static attemptFinalizeInputs(psbt: Psbt, startIndex: number, orderedPubKeys: Buffer[][], isFinal: boolean): boolean; finalizeTransactionInputs(): boolean; signPSBT(): Promise<Psbt>; protected buildTransaction(): Promise<void>; protected internalBuildTransaction(transaction: Psbt, checkPartialSigs?: boolean): Promise<boolean>; protected signInputs(_transaction: Psbt): Promise<void>; protected generateScriptAddress(): P2TRPayment; protected generateTapData(): P2TRPayment; protected getScriptSolution(input: PsbtInput): Buffer[]; protected getScriptTree(): Taptree; private getTotalOutputAmount; private calculateOutputLeftAmountFromVaults; private customFinalizer; private generateRedeemScripts; }