/** * IRO Pool — LP 质押、挖矿、奖励提取 * * 链上合约 IROPool: * - pledge: 由 Token 合约内部调用 (用户通过 Token.subscribe/pledge 间接触发) * - removePledge: 用户移除全部质押 * - extract: 用户提取挖矿收益 * - transferAwards: 批量转移收益 * - 查询: getDeposit, totalShare, getUserPledgeLpForUsdt 等 */ import { JsonRpcProvider } from 'ethers'; import type { IroPoolRemovePledgeParams, IroPoolExtractParams, IroPoolTransferAwardsParams, IroTxResult } from './types.js'; export declare class IroPoolQuery { private provider; private pool; readonly poolAddress: string; constructor(poolAddress: string, rpcUrl?: string, chainId?: number); /** 获取绑定的 token 地址 */ token(): Promise; /** 获取总份额 */ totalShare(): Promise; /** 获取产出次数 */ produceNum(): Promise; /** 获取产出 LP 数量 */ produceLpNum(): Promise; /** 获取产出上限 */ produceLimit(): Promise; /** 获取上次增加产出的时间 */ lastAddProduce(): Promise; /** 获取用户可提取的收益 */ getDeposit(account: string): Promise; /** 获取用户质押 LP 对应的 USDT 价值 */ getUserPledgeLpForUsdt(user: string): Promise; /** 查询指定 USDT 价值对应的 LP 数量 */ getLPValueForUSDTValue(targetTKAValue: bigint): Promise; /** 查询增长率映射 */ increaseRateMap(index: bigint): Promise<{ status: boolean; rate: bigint; }>; totalSupply(): Promise; balanceOf(account: string): Promise; lastPrice(): Promise; userAward(account: string): Promise<{ deposit: bigint; debt: bigint; share: bigint; lastTimestamp: bigint; totalDeposit: bigint; totalInviteReward: bigint; lastInviteReward: bigint; pledgeNum: bigint; }>; getUserStake(account: string): Promise; ownerAddr(): Promise; isInitialized(): Promise; get providerInstance(): JsonRpcProvider; } /** * 移除全部质押 * removePledge() — 用户直接调用 */ export declare function poolRemovePledge(params: IroPoolRemovePledgeParams): Promise; /** * 提取挖矿收益 * extract(uint256 amount) — 用户直接调用 */ export declare function poolExtract(params: IroPoolExtractParams): Promise; /** * 批量转移收益 * transferAwards(address[] recipients, uint256[] TKAAmounts) — 用户直接调用 */ export declare function poolTransferAwards(params: IroPoolTransferAwardsParams): Promise; /** * 批量提取收益 — 多钱包同时 extract */ export declare function batchExtract(params: { rpcUrl?: string; chainId?: number; poolAddress: string; wallets: Array<{ privateKey: string; amount: bigint; }>; gasPrice?: bigint; }): Promise<{ signedTransactions: string[]; results: IroTxResult[]; }>;