/** * ENI IRO Token — ERC20 + 认购 (subscribe / pledge) * * ENI 使用 EIP-1559 (type 2) 交易 * 利润使用直接转账(无多跳),与 ENI 其他模块一致 */ import { JsonRpcProvider } from 'ethers'; import type { IroSubscribeParams, IroPledgeParams, IroTxResult, IroTokenInfo, IroTokenPrice } from './types.js'; export declare class IroTokenQuery { private provider; private token; readonly tokenAddress: string; constructor(tokenAddress: string, rpcUrl?: string, chainId?: number); name(): Promise; symbol(): Promise; decimals(): Promise; totalSupply(): Promise; balanceOf(account: string): Promise; allowance(owner: string, spender: string): Promise; price(): Promise; creator(): Promise; isOpen(): Promise; isWhitelisted(): Promise; isWXOC(): Promise; tradingLimit(): Promise; totalCreatorFee(): Promise; pool(): Promise; tka(): Promise; getTokenPrice(): Promise; dayProduce(day: bigint): Promise; getTokenInfo(): Promise; get providerInstance(): JsonRpcProvider; } export declare function subscribe(params: IroSubscribeParams): Promise; export declare function pledge(params: IroPledgeParams): Promise; export declare function batchSubscribe(params: { rpcUrl?: string; chainId?: number; tokenAddress: string; subscribers: Array<{ privateKey: string; user: string; amount: bigint; value?: bigint; }>; gasPrice?: bigint; }): Promise<{ signedTransactions: string[]; results: IroTxResult[]; }>; export interface IroBatchSubscribeForSubmitParams { rpcUrl?: string; chainId?: number; tokenAddress: string; subscribers: Array<{ privateKey: string; user: string; amount: bigint; value?: bigint; }>; approvalTxs?: string[]; gasPrice?: bigint; subscribeGasLimit?: bigint; } export interface IroBatchSubscribeForSubmitResult { signedTransactions: string[]; subscribeResults: IroTxResult[]; profitAmount: bigint; } export declare function batchSubscribeForSubmit(params: IroBatchSubscribeForSubmitParams): Promise;