/** * IRO Factory — 创建项目 (部署代币 + 资金池) * * 核心功能: * - createProject: 创建 IRO 项目 * - 查询: 通过 projectId / token 地址获取信息 */ import { JsonRpcProvider } from 'ethers'; import type { IroCreateParams, IroCreateProjectResult, IroQueryConfig, IroFactoryTokenInfo } from './types.js'; export declare class IroFactoryQuery { private provider; private factory; constructor(config?: IroQueryConfig); /** 通过 projectId 获取代币合约地址 */ getTokenByProjectId(projectId: bigint): Promise; /** 通过 token 地址获取 Pool 合约地址 */ getPool(tokenAddress: string): Promise; /** 获取指定 index 的 token 地址 */ allToken(index: bigint): Promise; /** 获取已创建的 token 总数 */ allTokensLength(): Promise; /** 获取代币的完整链上信息 */ tokenInfo(tokenAddress: string): Promise; /** 获取项目的完整信息 (token + pool) */ getProjectInfo(projectId: bigint): Promise<{ tokenAddress: string; poolAddress: string; }>; get providerInstance(): JsonRpcProvider; } /** * 编码 createProject calldata */ export declare function encodeCreateProjectCall(params: import('./types.js').IroCreateProjectParams): string; /** * 创建 IRO 项目 — 签名交易 * * 前置条件: 调用者需先将 USDT approve 给 Factory 合约 * 注意: 调用者必须是 IROOwner 中注册的 broker */ export declare function createProject(params: IroCreateParams): Promise; /** * 从交易回执中解析 CreateProject 事件 * * 链上事件签名: * event CreateProject(uint256 indexed projectID, address indexed token, address indexed pool, address TKAAddr, uint256 len) */ export declare function parseCreateProjectEvent(receipt: { logs: Array<{ topics: string[]; data: string; }>; }): { projectId: bigint; tokenAddress: string; poolAddress: string; coinAddr: string; allTokensLength: bigint; } | null;