/** * V2/V3 报价工具函数 * * 提供统一的代币报价功能,支持: * - V2 Router 报价(直接路径 + 多跳路径) * - V3 Quoter 报价(多费率尝试 + 多跳路径) * - ERC20 → 原生代币转换报价 */ import { JsonRpcProvider } from 'ethers'; import { QUOTE_CONFIG, QUOTE_V3_FEE_TIERS } from '../shared/constants/quote.js'; import type { QuoteParams, QuoteResult } from './types/quote-helpers.js'; export { QUOTE_CONFIG, QUOTE_V3_FEE_TIERS }; /** * V2 报价(直接路径 + 多跳路径) * ✅ 优化:并行尝试直接路径和多跳路径 * * @param provider - Provider 实例 * @param tokenIn - 输入代币地址 * @param tokenOut - 输出代币地址 * @param amountIn - 输入数量(wei) * @param chain - 链名称 * @returns 报价结果 */ export declare function quoteV2(provider: JsonRpcProvider, tokenIn: string, tokenOut: string, amountIn: bigint, chain: string, routerOverride?: string): Promise; /** * V3 报价(多费率尝试 + 多跳路径) * ✅ 优化:并行尝试多个费率 * * @param provider - Provider 实例 * @param tokenIn - 输入代币地址 * @param tokenOut - 输出代币地址 * @param amountIn - 输入数量(wei) * @param chain - 链名称 * @param preferredFee - 优先尝试的费率(可选) * @returns 报价结果 */ export declare function quoteV3(provider: JsonRpcProvider, tokenIn: string, tokenOut: string, amountIn: bigint, chain: string, preferredFee?: number): Promise; /** * 统一报价接口(根据版本自动选择 V2 或 V3) * * @param params - 报价参数 * @returns 报价结果 */ export declare function quote(params: QuoteParams): Promise; /** * 获取 ERC20 代币 → 原生代币(WBNB/WMON 等)的报价 * * @param provider - Provider 实例 * @param tokenAddress - ERC20 代币地址 * @param tokenAmount - 代币数量(wei) * @param chain - 链名称 * @param version - 'v2' | 'v3' * @param fee - V3 费率档位(仅 V3 时使用) * @param routerOverride - V2 时使用指定 Router(如 IROSwap,用于利润报价) * @returns 等值的原生代币数量(wei),失败返回 0n */ export declare function getTokenToNativeQuote(provider: JsonRpcProvider, tokenAddress: string, tokenAmount: bigint, chain: string, version?: 'v2' | 'v3', fee?: number, routerOverride?: string): Promise; /** * 获取原生代币 → ERC20 代币的报价 * * @param provider - Provider 实例 * @param tokenAddress - ERC20 代币地址 * @param nativeAmount - 原生代币数量(wei) * @param chain - 链名称 * @param version - 'v2' | 'v3' * @param fee - V3 费率档位(仅 V3 时使用) * @returns 等值的 ERC20 代币数量(wei),失败返回 0n */ export declare function getNativeToTokenQuote(provider: JsonRpcProvider, tokenAddress: string, nativeAmount: bigint, chain: string, version?: 'v2' | 'v3', fee?: number): Promise; /** * 获取链的包装原生代币地址 */ export declare function getWrappedNativeAddress(chain: string): string; /** * 获取链的稳定币列表 */ export declare function getStableCoins(chain: string): string[]; export type { SupportedChain, QuoteParams, QuoteResult } from './types/quote-helpers.js';