ecash-quicksend
Version:
A unified transaction manager for eCash (XEC), SLP, and ALP token transactions
82 lines • 2.71 kB
TypeScript
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