/** * 逐笔广播提交后端(用于 Monad 等不支持 Bundle 的链) */ /** * 逐笔广播配置(用于不支持 Bundle 的链,如 Monad) */ export interface DirectSubmitConfig { /** RPC URL(必需) */ rpcUrl: string; /** 链ID(可选,默认143=Monad) */ chainId?: number; /** 链名称(可选,用于日志) */ chainName?: string; /** 是否等待交易确认(可选,默认false) */ waitForConfirmation?: boolean; /** 确认超时时间ms(可选,默认30000) */ confirmationTimeout?: number; } /** * 单笔交易结果 */ export interface DirectTxResult { /** 交易索引 */ index: number; /** 是否成功 */ success: boolean; /** 交易哈希(成功时返回) */ txHash?: string; /** 错误信息(失败时返回) */ error?: string; } /** * 逐笔广播提交结果 */ export interface DirectSubmitResult { /** 提交状态:至少有一笔成功则为true */ code: boolean; /** 交易总数 */ totalTransactions: number; /** 成功数量 */ successCount: number; /** 失败数量 */ failedCount: number; /** 交易哈希列表(成功的交易) */ txHashes: string[]; /** 每笔交易的详细结果 */ results: DirectTxResult[]; /** 错误摘要(如果有失败) */ errorSummary?: string; } /** * 并行广播到 RPC(用于不支持 Bundle 的链,如 Monad) * * ✅ 优化:默认使用并行广播,速度更快 * * @param signedTransactions 签名后的交易数组 * @param config 直接广播配置 * @returns 广播结果 * * @example * ```typescript * // 服务器端代码(Monad 链) * import { submitDirectToRpc } from 'four-flap-meme-sdk'; * * const result = await submitDirectToRpc(signedTransactions, { * rpcUrl: 'https://rpc-mainnet.monadinfra.com', * chainId: 143, * chainName: 'MONAD' * }); * * if (result.code) { * } else { * console.error('❌ 全部广播失败:', result.errorSummary); * } * ``` */ export declare function submitDirectToRpc(signedTransactions: string[], config: DirectSubmitConfig): Promise; /** * ✅ 顺序广播并等待确认(用于多跳交易等需要顺序执行的场景) * * 每笔交易广播后会等待上链确认,确保后续交易能正确执行 * * ⚠️ 多跳场景:如果某笔交易失败,会立即停止(因为后续交易肯定也会失败) * * @param signedTransactions 签名后的交易数组 * @param config 直接广播配置 * @returns 广播结果 */ export declare function submitDirectToRpcSequential(signedTransactions: string[], config: DirectSubmitConfig): Promise; /** * ✅ 顺序广播但不等待确认(用于 AA handleOps + tail 等 nonce 连续的场景) * * 按顺序逐笔发送交易,每笔只等待广播成功(RPC 返回 txHash),不等待链上确认。 * 这样可以保证交易按顺序进入 mempool,同时避免等待确认超时。 * * @param signedTransactions 签名后的交易数组 * @param config 直接广播配置 * @returns 广播结果 */ export declare function submitDirectToRpcSequentialNoWait(signedTransactions: string[], config: DirectSubmitConfig): Promise; /** * 并行逐笔广播到 RPC(速度更快,但可能有 nonce 冲突) * * ⚠️ 注意:仅适用于不同钱包的交易,同一钱包的多笔交易应使用顺序广播 * * @param signedTransactions 签名后的交易数组 * @param config 直接广播配置 * @returns 广播结果 */ export declare function submitDirectToRpcParallel(signedTransactions: string[], config: DirectSubmitConfig): Promise; /** * 智能广播到 RPC(自动选择并行或顺序) */ export declare function submitDirectToRpcSmart(signedTransactions: string[], config: DirectSubmitConfig, options?: { waitConfirmation?: boolean; }): Promise;