/** * Batch CallData — ERC-7579 batch execute encoding for Nexus smart wallets * * Copied from: cross-chain-atomic-routing/scripts/base-volume-loop-gasless-v2.ts:415 * * Encodes: Nexus.execute(bytes32 mode, bytes calldata executionCalldata) * Where: * Single mode (0x00...): executionCalldata = abi.encodePacked(target, value, calldata) * Batch mode (0x01...): executionCalldata = abi.encode(Execution[]) * Execution = (address target, uint256 value, bytes callData) */ /** Single execution mode (mode = 0x00...) */ export declare const SINGLE_EXEC_MODE = "0x0000000000000000000000000000000000000000000000000000000000000000"; /** Batch execution mode (mode = 0x01...) */ export declare const BATCH_EXEC_MODE = "0x0100000000000000000000000000000000000000000000000000000000000000"; export interface Call { to: string; value: string; data: string; } export interface DecodedCall { to: string; value: bigint; data: string; } /** * Build ERC-7579 batch execute callData. * * For a single call: uses single exec mode (0x00) with packed encoding. * For multiple calls: uses batch exec mode (0x01) with ABI-encoded Execution array. * * @param calls - Array of calls to batch * @returns Encoded calldata for Nexus.execute() */ export declare function buildBatchCallData(calls: Call[]): string; /** * Decode ERC-7579 batch execute callData back into individual calls. * * @param callData - Encoded calldata from buildBatchCallData() * @returns Array of decoded calls */ export declare function decodeBatchCallData(callData: string): DecodedCall[];