/** * XLayer Portal 操作 — 查询器(query) */ import { JsonRpcProvider } from 'ethers'; export interface PortalQueryConfig { rpcUrl?: string; chainId?: number; portalAddress?: string; } /** * Portal 查询器 * * 提供只读查询方法: * - 代币余额 * - 授权额度 * - 预览买入/卖出 * - 代币状态 */ export declare class PortalQuery { private provider; private portal; private portalAddress; constructor(config?: PortalQueryConfig); private multicallAggregate3; /** * 获取 Provider */ getProvider(): JsonRpcProvider; /** * 获取 Portal 地址 */ getPortalAddress(): string; /** * 获取代币余额 */ getTokenBalance(tokenAddress: string, account: string): Promise; /** * 获取 OKB 余额 */ getOkbBalance(account: string): Promise; /** * 获取授权额度 */ getAllowance(tokenAddress: string, owner: string, spender?: string): Promise; /** * 检查是否需要授权 */ needsApproval(tokenAddress: string, owner: string, amount: bigint, spender?: string): Promise; /** * 预览买入输出 */ previewBuy(tokenAddress: string, okbAmount: bigint): Promise; /** * 预览卖出输出 */ previewSell(tokenAddress: string, tokenAmount: bigint): Promise; /** * 使用 quoteExactInput 查询报价 */ quoteExactInput(inputToken: string, outputToken: string, inputAmount: bigint): Promise; /** * 获取代币状态 V5 */ getTokenV5(tokenAddress: string): Promise<{ status: number; reserve: bigint; circulatingSupply: bigint; price: bigint; tokenVersion: number; r: bigint; h: bigint; k: bigint; dexSupplyThresh: bigint; quoteTokenAddress: string; nativeToQuoteSwapEnabled: boolean; extensionID: string; }>; /** * 获取代币状态 V7 (包含 lpFeeProfile) * * ✅ 修复:与 BSC portal.ts 对齐,使用 16 字段结构 */ getTokenV7(tokenAddress: string): Promise<{ status: number; reserve: bigint; circulatingSupply: bigint; price: bigint; tokenVersion: number; r: bigint; h: bigint; k: bigint; dexSupplyThresh: bigint; quoteTokenAddress: string; nativeToQuoteSwapEnabled: boolean; extensionID: string; taxRate: number; pool: string; progress: bigint; lpFeeProfile: number; }>; /** * 批量获取多个账户的代币余额 */ getMultipleTokenBalances(tokenAddress: string, accounts: string[]): Promise>; /** * 批量获取多个账户的 OKB 余额 */ getMultipleOkbBalances(accounts: string[]): Promise>; /** * 批量获取授权额度 */ getMultipleAllowances(tokenAddress: string, owners: string[], spender?: string): Promise>; } /** * 创建 Portal 查询器 */ export declare function createPortalQuery(config?: PortalQueryConfig): PortalQuery;