ERC7579ModuleConfig
Inherits: IERC7579ModuleConfig
Title: ERC7579ModuleConfig
Authors: David Dada <daveproxy80@gmail.com> (https://github.com/dadadave80), Modified from ERC-7579 reference implementation (https://github.com/erc7579/erc7579-implementation)
ERC-7579 module-management facet: registers/uninstalls modules and runs batches submitted by an
installed executor module. v1 supports EXECUTOR modules (type 2). Together with the
ERC7821Executor facet (execute / supportsExecutionMode) the Diamond presents the ERC-7579
account surface.
Stateless delegator — logic/storage live in ERC7579ModuleConfigLib. "Modules-as-facets": diamondCut
remains the selector authority; this registry tracks installed executor modules and gates
executeFromExecutor. Validator/hook/fallback consumption is a planned v2.
Notes:
- lattice-version: 0.1.0
- lattice-source: ERC-7579
Functions
installModule
function installModule(uint256 moduleTypeId, address module, bytes calldata initData) external virtual;Parameters
| Name | Type | Description |
|---|---|---|
| moduleTypeId | uint256 | |
| module | address | |
| initData | bytes |
uninstallModule
function uninstallModule(uint256 moduleTypeId, address module, bytes calldata deInitData) external virtual;Parameters
| Name | Type | Description |
|---|---|---|
| moduleTypeId | uint256 | |
| module | address | |
| deInitData | bytes |
isModuleInstalled
function isModuleInstalled(uint256 moduleTypeId, address module, bytes calldata additionalContext)
external
view
virtual
returns (bool);Parameters
| Name | Type | Description |
|---|---|---|
| moduleTypeId | uint256 | |
| module | address | |
| additionalContext | bytes |
Returns
| Name | Type | Description |
|---|---|---|
| <none> | bool |
accountId
ERC-7579 account identifier, "vendorname.accountname.semver".
function accountId() external view virtual returns (string memory);Returns
| Name | Type | Description |
|---|---|---|
| <none> | string |
supportsModule
Whether moduleTypeId is supported (v1: EXECUTOR, type 2).
function supportsModule(uint256 moduleTypeId) external view virtual returns (bool);Parameters
| Name | Type | Description |
|---|---|---|
| moduleTypeId | uint256 |
Returns
| Name | Type | Description |
|---|---|---|
| <none> | bool |
executeFromExecutor
Runs a batch on behalf of an installed executor module (caller must be a type-2 module).
function executeFromExecutor(bytes32 mode, bytes calldata executionCalldata)
external
payable
virtual
returns (bytes[] memory returnData);Parameters
| Name | Type | Description |
|---|---|---|
| mode | bytes32 | |
| executionCalldata | bytes |
Returns
| Name | Type | Description |
|---|---|---|
| returnData | 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 ERC7579ModuleConfig methodIdentifiers (alphabetical by signature); kept in exact parity by
ExportSelectorsParityTest. Chunks:
accountId() 0x9cfd7cff
executeFromExecutor(bytes32,bytes) 0xd691c964
installModule(uint256,address,bytes) 0x9517e29f
isModuleInstalled(uint256,address,bytes) 0x112d3a7d
supportsModule(uint256) 0xf2dc691d
uninstallModule(uint256,address,bytes) 0xa71763a8
function exportSelectors() external pure virtual returns (bytes memory selectors);Returns
| Name | Type | Description |
|---|---|---|
| selectors | bytes |