ERC6900Executor
Title: ERC6900Executor
Authors: David Dada <daveproxy80@gmail.com> (https://github.com/dadadave80), Modified from ERC-6900 reference implementation (https://github.com/erc6900/reference-implementation)
ERC-6900 execution facet: the native execute / executeBatch (validation-gated, exec-hook-wrapped
calls to arbitrary targets) and the explicit-auth executeWithRuntimeValidation. Together with the
ModularAccount6900 fallback (which dispatches installed execution-module selectors) this completes
the ERC-6900 execution surface of IERC6900Account.
Stateless delegator — logic lives in ERC6900ExecutorLib; it reads the registries owned by ERC6900ModuleManagerLib. Part of the ERC-6900 account blueprint (alternative to the ERC-7579 stack).
Notes:
- lattice-version: 0.1.0
- lattice-source: ERC-6900
Functions
execute
Executes a single call to target with value, gated by the caller's runtime validation.
function execute(address target, uint256 value, bytes calldata data)
external
payable
virtual
returns (bytes memory);Parameters
| Name | Type | Description |
|---|---|---|
| target | address | |
| value | uint256 | |
| data | bytes |
Returns
| Name | Type | Description |
|---|---|---|
| <none> | bytes |
executeBatch
Executes a batch of calls atomically (any sub-call revert reverts all).
function executeBatch(Call[] calldata calls) external payable virtual returns (bytes[] memory);Parameters
| Name | Type | Description |
|---|---|---|
| calls | Call[] |
Returns
| Name | Type | Description |
|---|---|---|
| <none> | bytes[] |
executeWithRuntimeValidation
Runs the validation function named by authorization then self-dispatches data.
function executeWithRuntimeValidation(bytes calldata data, bytes calldata authorization)
external
payable
virtual
returns (bytes memory);Parameters
| Name | Type | Description |
|---|---|---|
| data | bytes | |
| authorization | bytes |
Returns
| Name | Type | Description |
|---|---|---|
| <none> | bytes |
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 ERC6900Executor methodIdentifiers (alphabetical by signature); kept in exact parity by
ExportSelectorsParityTest. Chunks:
execute(address,uint256,bytes) 0xb61d27f6
executeBatch((address,uint256,bytes)[]) 0x34fcd5be
executeWithRuntimeValidation(bytes,bytes) 0xf2680c0f
function exportSelectors() external pure virtual returns (bytes memory selectors);Returns
| Name | Type | Description |
|---|---|---|
| selectors | bytes |