UNPKG

lotus-sdk

Version:

Central repository for several classes of tools for integrating with, and building for, the Lotusia ecosystem

164 lines 6.61 kB
import { BufferReader } from '../encoding/bufferreader.js'; import { BufferWriter } from '../encoding/bufferwriter.js'; import { Signature, SignatureSigningMethod } from '../crypto/signature.js'; import { Address } from '../address.js'; import { UnspentOutput, UnspentOutputData } from './unspentoutput.js'; import { Input, InputObject, MuSigTaprootInput } from './input.js'; import { Output, OutputObject } from './output.js'; import { Script } from '../script.js'; import { PrivateKey } from '../privatekey.js'; import { PublicKey } from '../publickey.js'; import { BN } from '../crypto/bn.js'; import { TransactionSignature } from './signature.js'; import type { Point } from '../crypto/point.js'; export interface TransactionData { version?: number; inputs?: InputObject[]; outputs?: OutputObject[]; nLockTime?: number; changeScript?: Script | string; changeAsm?: string; changeIndex?: number; fee?: number; } export interface TransactionObject { txid: string; hash: string; version: number; inputs: InputObject[]; outputs: OutputObject[]; nLockTime: number; changeScript?: string; changeAsm?: string; changeIndex?: number; fee?: number; } export declare class Transaction { static readonly DUST_AMOUNT = 546; static readonly FEE_SECURITY_MARGIN = 150; static readonly NLOCKTIME_BLOCKHEIGHT_LIMIT = 500000000; static readonly NLOCKTIME_MAX_VALUE = 4294967295; static readonly FEE_PER_KB = 1000; static readonly CHANGE_OUTPUT_MAX_SIZE: number; static readonly MAXIMUM_EXTRA_SIZE: number; static readonly NULL_HASH: Buffer<ArrayBuffer>; inputs: Input[]; outputs: Output[]; _version: number; nLockTime: number; private _inputAmount?; private _outputAmount?; private _changeScript?; private _changeIndex?; private _fee?; private _feePerKb?; private _feePerByte?; private _hash?; private _txid?; get spentOutputs(): Output[] | undefined; constructor(serialized?: TransactionData | Transaction | Buffer | string); static create(serialized?: TransactionData | Transaction | Buffer | string): Transaction; static shallowCopy(transaction: Transaction): Transaction; static fromBuffer(buffer: Buffer): Transaction; static fromBufferReader(reader: BufferReader): Transaction; static fromObject(arg: TransactionData | Transaction): Transaction; static fromString(str: string): Transaction; get hash(): string; get id(): string; get txid(): string; get inputAmount(): number; get outputAmount(): number; get version(): number; feePerByte(feePerByte: number): void; fee(amount: number): void; feePerKb(amount: number): void; set version(version: number); private _getHash; private _getTxid; private _getTxInputHashes; private _getTxOutputHashes; private _computeMerkleRoot; private _getInputAmount; private _getOutputAmount; private _newTransaction; serialize(unsafe?: boolean | { disableAll?: boolean; }): string; uncheckedSerialize(): string; checkedSerialize(opts?: { disableAll?: boolean; disableDustOutputs?: boolean; disableIsFullySigned?: boolean; }): string; getSerializationError(opts?: { disableAll?: boolean; disableDustOutputs?: boolean; disableIsFullySigned?: boolean; }): Error | null; private _hasDustOutputs; private _isMissingSignatures; private _hasInvalidSatoshis; isFullySigned(): boolean; toBuffer(): Buffer; toBufferWriter(writer?: BufferWriter): BufferWriter; fromBuffer(buffer: Buffer): Transaction; fromBufferReader(reader: BufferReader): Transaction; fromString(str: string): Transaction; toObject(): TransactionObject; toJSON: () => TransactionObject; fromObject(arg: TransactionData | Transaction): Transaction; addInput(input: Input): Transaction; addOutput(output: Output): Transaction; clone(): Transaction; toString(): string; inspect(): string; from(utxos: UnspentOutput[] | UnspentOutputData[] | UnspentOutput | UnspentOutputData, pubkeys?: PublicKey[], threshold?: number, opts?: { noSorting?: boolean; }): Transaction; change(address: Address | string): Transaction; to(address: Address | string | Array<{ address: Address | string; satoshis: number; }>, amount: number | string | bigint): Transaction; sign(privateKey: PrivateKey | string | Array<PrivateKey | string>, sigtype?: number | null, signingMethod?: SignatureSigningMethod): Transaction; signSchnorr(privateKey: PrivateKey | string | Array<PrivateKey | string>): Transaction; getMuSig2Inputs(): MuSigTaprootInput[]; getMuSig2Sighash(inputIndex: number): Buffer; addMuSig2Nonce(inputIndex: number, signerIndex: number, nonce: [Point, Point]): Transaction; addMuSig2PartialSignature(inputIndex: number, signerIndex: number, partialSig: BN): Transaction; finalizeMuSig2Signatures(): Transaction; getSignatures(privKey: PrivateKey | string, sigtype?: number, signingMethod?: string): TransactionSignature[]; applySignature(signature: TransactionSignature, signingMethod?: SignatureSigningMethod): Transaction; isValidSignature(sig: TransactionSignature): boolean; verifySignature(sig: Signature, pubkey: PublicKey, nin: number, subscript: Script, satoshisBN: BN, flags?: number, signingMethod?: string): boolean; lockUntilDate(time: Date | number): Transaction; lockUntilBlockHeight(height: number): Transaction; getLockTime(): Date | number | null; hasAllUtxoInfo(): boolean; addData(value: Buffer | string): Transaction; clearOutputs(): Transaction; removeOutput(index: number): void; sort(): Transaction; sortInputs(sortingFunction: (inputs: Input[]) => Input[]): Transaction; sortOutputs(sortingFunction: (outputs: Output[]) => Output[]): Transaction; shuffleOutputs(): Transaction; removeInput(index: number): void; getFee(): number; getChangeOutput(): Output | null; verify(): string | boolean; private _verifyScripts; isCoinbase(): boolean; uncheckedAddInput(input: Input): Transaction; private _newOutputOrder; private _fromNonP2SH; private _fromMultisigUtxo; private _updateChangeOutput; private _getUnspentValue; private _clearSignatures; private _estimateFee; private static _getVarintSize; private _estimateSize; private _removeOutput; private _addOutput; } //# sourceMappingURL=transaction.d.ts.map