Skip to content
Lattice

ERC7821Executor

Git Source

Inherits: IERC7821

Title: ERC7821Executor

Authors: David Dada <daveproxy80@gmail.com> (https://github.com/dadadave80), Modified from Solady (https://github.com/Vectorized/solady)

ERC-7821 minimal batch executor facet. Executes a batch of calls from the account, authorized for the account itself, the configured ERC-4337 EntryPoint, or a DEFAULT_ADMIN_ROLE holder.

Stateless delegator — logic lives in ERC7821ExecutorLib. Following the ERC-7821 reference, execution is gated by authorization only (no reentrancy lock, which would block legitimate self-re-entrant flows). An unauthorized caller may still execute a batch the owner signed off-chain via the opData envelope (replay-protected by the account nonce).

Notes:

  • lattice-version: 0.1.0
  • lattice-source: ERC-7821

Functions

execute

Executes a batch of calls encoded per mode.

Authorization is implementation-defined (this account: self / EntryPoint / admin / signed opData).

function execute(bytes32 mode, bytes calldata executionData) external payable virtual;

Parameters

NameTypeDescription
modebytes32The execution mode selecting the executionData encoding.
executionDatabytesThe encoded calls (and optional opData), per mode.

supportsExecutionMode

Whether mode is supported by execute.

function supportsExecutionMode(bytes32 mode) external view virtual returns (bool result);

Parameters

NameTypeDescription
modebytes32The execution mode to query.

Returns

NameTypeDescription
resultboolTrue if supported.

exportSelectors

ERC-8153 selector export: this facet's cuttable selectors, tightly packed (4 bytes each).

Excludes exportSelectors() itself (0x0ef22643) - it is never cut into a diamond. Order matches forge inspect ERC7821Executor methodIdentifiers (alphabetical by signature); kept in exact parity by ExportSelectorsParityTest. Chunks: execute(bytes32,bytes) 0xe9ae5c53 supportsExecutionMode(bytes32) 0xd03c7914

function exportSelectors() external pure virtual returns (bytes memory selectors);

Returns

NameTypeDescription
selectorsbytes