UNPKG

ecash-quicksend

Version:

A unified transaction manager for eCash (XEC), SLP, and ALP token transactions

82 lines 2.71 kB
import { Utxo, Recipient } from '../types'; import { ChronikClient } from 'chronik-client'; interface UtxoSelection { selectedUtxos: Utxo[]; totalInputValue: number; estimatedFee: number; changeAmount: number; utxoCount: number; } interface SlpUtxoOptions { dustLimit?: number; feeStrategy?: 'all' | 'minimal' | 'largest_first'; tokenStrategy?: 'largest' | 'minimal' | 'all'; } interface SlpUtxoSelection { selectedTokenUtxos: Utxo[]; selectedFeeUtxos: Utxo[]; totalFeeInputValue: number; estimatedFee: number; feeChangeAmount: number; tokenChange: bigint; finalSendAmounts: bigint[]; totalSendTokens: bigint; totalTokens: bigint; dustLimit: number; summary: { tokenUtxoCount: number; feeUtxoCount: number; recipientCount: number; hasTokenChange: boolean; totalOutputs: number; }; } interface TokenBalance { tokenId: string; totalTokens: bigint; utxoCount: number; utxos: Utxo[]; } interface AddressBalance { totalBalance: number; utxoCount: number; slpUtxoCount: number; nonSlpUtxos: Utxo[]; slpUtxos: Utxo[]; tokenBalances: TokenBalance[]; } type UtxoStrategy = 'all' | 'minimal' | 'largest_first'; /** * Get UTXOs for a given address * @param address - eCash address * @param chronikClient - Optional chronik client instance (uses default if not provided) * @returns Array of UTXOs */ declare function getUtxos(address: string, chronikClient?: ChronikClient): Promise<Utxo[]>; /** * 选择合适的UTXOs用于普通XEC交易 * @param utxos - 所有可用的UTXOs * @param sendAmount - 要发送的金额 * @param strategy - 选择策略 * @returns 包含选择的UTXOs和相关信息 */ declare function selectUtxos(utxos: Utxo[], sendAmount: number, strategy?: UtxoStrategy): UtxoSelection; /** * 为SLP交易选择UTXOs * @param utxos - 所有可用的UTXOs * @param tokenId - SLP代币ID * @param recipients - 接收方数组,包含address和amount * @param tokenDecimals - 代币小数位数 * @param options - 选项 * @returns 包含选择的UTXOs和相关信息 */ declare function selectSlpUtxos(utxos: Utxo[], tokenId: string, recipients: Recipient[], tokenDecimals: number, options?: SlpUtxoOptions): SlpUtxoSelection; /** * 获取地址余额信息 * @param address - eCash地址 * @param chronikClient - Optional chronik client instance (uses default if not provided) * @returns 余额信息 */ declare function getAddressBalance(address: string, chronikClient?: ChronikClient): Promise<AddressBalance>; export { getUtxos, selectUtxos, selectSlpUtxos, getAddressBalance }; //# sourceMappingURL=utxo-utils.d.ts.map