opnet
Version:
The perfect library for building Bitcoin-based applications.
60 lines (53 loc) • 1.47 kB
text/typescript
import { ISpentUTXO, RawIUTXO } from '../../bitcoin/interfaces/IUTXO.js';
import { UTXOs } from '../../bitcoin/UTXOs.js';
/**
* Unspent Transaction Output Manager
* @cathegory Interfaces
*/
/**
* Spent UTXO reference (used for filtering)
* @interface SpentUTXORef
*/
export interface SpentUTXORef {
readonly transactionId: string;
readonly outputIndex: number;
}
/**
* UTXOs Data (processed)
* @interface IUTXOsData
*/
export interface IUTXOsData {
readonly pending: UTXOs;
readonly spentTransactions: SpentUTXORef[];
readonly confirmed: UTXOs;
}
/**
* Raw UTXOs Data from API response
* @interface RawIUTXOsData
*/
export interface RawIUTXOsData {
readonly pending: RawIUTXO[];
readonly spentTransactions: ISpentUTXO[];
readonly confirmed: RawIUTXO[];
/** Array of raw transaction hex strings (base64 encoded) */
readonly raw: string[];
}
/**
* Get UTXO Parameters
* @interface RequestUTXOsParams
*/
export interface RequestUTXOsParams {
readonly address: string;
readonly optimize?: boolean;
readonly mergePendingUTXOs?: boolean;
readonly filterSpentUTXOs?: boolean;
readonly olderThan?: bigint;
readonly isCSV?: boolean;
}
export interface RequestUTXOsParamsWithAmount extends RequestUTXOsParams {
readonly amount: bigint;
readonly throwErrors?: boolean;
readonly csvAddress?: string;
readonly maxUTXOs?: number;
readonly throwIfUTXOsLimitReached?: boolean;
}