/** * 换手交易通用工具函数 */ import { Wallet, JsonRpcProvider } from 'ethers'; /** * 检查并执行代币授权(如果需要) * ✅ 与 pancake-proxy.ts 的授权逻辑一致 */ export declare function ensureTokenApproval(provider: JsonRpcProvider, merkle: any, wallet: Wallet, tokenAddress: string, spenderAddress: string, config: { gasLimit?: number; gasLimitMultiplier?: number; minGasPriceGwei?: number; maxGasPriceGwei?: number; txType?: 0 | 2; bundleBlockOffset?: number; waitTimeoutMs?: number; }): Promise; /** * 获取代币余额 */ export declare function getTokenBalance(provider: JsonRpcProvider, tokenAddress: string, walletAddress: string): Promise; /** * 获取代币精度 */ export declare function getTokenDecimals(provider: JsonRpcProvider, tokenAddress: string): Promise; /** * 计算卖出数量(支持百分比) */ export declare function calculateSellAmount(provider: JsonRpcProvider, tokenAddress: string, walletAddress: string, sellAmount?: string, sellPercentage?: number): Promise<{ amount: bigint; decimals: number; }>; /** * 计算换手损耗百分比 */ export declare function calculateSwapLoss(sellAmount: bigint, buyAmount: bigint): string; /** * 验证钱包BNB余额 */ export declare function validateBNBBalance(provider: JsonRpcProvider, walletAddress: string, requiredBNB: bigint, purpose: string): Promise; /** * 格式化换手结果日志 */ export declare function logSwapResult(params: { sellerAddress: string; buyerAddress: string; tokenAddress: string; sellAmount: bigint; buyAmount: bigint; decimals: number; sellerGotBNB: bigint; buyerSpentBNB: bigint; swapType: string; }): void;