/** * LPFairPool — 公平发射池 * * 提供: * - 查询池状态 (overview, estimateClaimQuote 等) * - 买入代币 (claim) * - 构建跟买交易 (claimForSubmit / batchClaimForSubmit) */ import { JsonRpcProvider } from 'ethers'; import type { DaoaasSubmitResult } from '../daoaas/types.js'; export interface PoolOverview { token: string; quoteTokenAddr: string; pair: string; tokenBalance: bigint; lpBalance: bigint; lpTotal: bigint; userCount: bigint; recordCount: bigint; claimedTotalToken: bigint; claimedTotalQuote: bigint; withdrawnTotalToken: bigint; withdrawnTotalQuote: bigint; burnedTotal: bigint; pairToken: bigint; pairQuote: bigint; } export interface PoolClaimParams { rpcUrl?: string; privateKey: string; poolAddress: string; amountToken: bigint; inviteCode?: string; /** msg.value — 对于原生代币 (quoteToken=address(0)),需要等于 estimateClaimQuote 的结果 */ value?: bigint; gasPrice?: bigint; } export interface PoolClaimResult { signedTx: string; from: string; nonce: number; } export declare class FairPoolQuery { private provider; private pool; readonly poolAddress: string; constructor(poolAddress: string, rpcUrl?: string); overview(): Promise; estimateClaimQuote(amountToken: bigint): Promise; tokenBalance(): Promise; claimStartTime(): Promise; claimEndTime(): Promise; maxAmount(): Promise; minAmount(): Promise; maxCount(): Promise; userCount(): Promise; /** 检查当前是否在 claim 窗口内 */ isClaimOpen(): Promise; /** 检查是否还有 claim 名额 */ hasClaimSlots(): Promise; get providerInstance(): JsonRpcProvider; } /** * 构建 Pool claim 交易 * @param sharedProvider 可选的共享 provider,避免重复创建连接 * @param sharedFeeData 可选的共享 feeData,避免重复 RPC 调用 */ export declare function claimFromPool(params: PoolClaimParams & { sharedProvider?: JsonRpcProvider; sharedFeeData?: { maxFeePerGas: bigint; maxPriorityFeePerGas: bigint; }; }): Promise; /** * 构建 Pool claim 交易 — ForSubmit 版本 * 自动追加利润转账,兼容 emitservice submit_blockrazor 接口 */ export declare function claimFromPoolForSubmit(params: PoolClaimParams & { /** ERC20 场景下的实际报价代币投资额(用于利润计算) */ quoteAmount?: bigint; }): Promise; /** * 批量构建多钱包 claim 交易 * @returns 所有钱包的签名交易数组(可直接提交给 submitToBlockRazor) */ export declare function batchClaimForSubmit(params: { rpcUrl?: string; poolAddress: string; /** [{ privateKey, amountToken, value, quoteAmount }] */ claims: Array<{ privateKey: string; amountToken: bigint; value: bigint; /** ERC20 场景下的实际报价代币投资额(用于利润计算) */ quoteAmount?: bigint; inviteCode?: string; }>; gasPrice?: bigint; }): Promise<{ signedTransactions: string[]; totalValue: bigint; }>;