ERC6900Validation
Title: ERC6900Validation
Authors: David Dada <daveproxy80@gmail.com> (https://github.com/dadadave80), Modified from ERC-6900 reference implementation (https://github.com/erc6900/reference-implementation)
ERC-6900 ERC-4337 validation facet: the EntryPoint's validateUserOp entrypoint, routing to the
validation module named by the userOp signature prefix. Part of the ERC-6900 account blueprint
(an alternative to the ERC-7579 ERC4337Validation facet); the two are never cut into the same
account. Shares the EntryPoint configured via ERC4337ValidationLib.
Stateless delegator — logic lives in ERC6900ValidationLib; it reads the registries owned by ERC6900ModuleManagerLib and reuses the executor's validation-applicability gate.
Notes:
- lattice-version: 0.1.0
- lattice-source: ERC-6900
Functions
validateUserOp
ERC-4337 account validation. Only the configured EntryPoint may call.
function validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, uint256 missingAccountFunds)
external
virtual
returns (uint256 validationData);Parameters
| Name | Type | Description |
|---|---|---|
| userOp | PackedUserOperation | |
| userOpHash | bytes32 | |
| missingAccountFunds | uint256 |
Returns
| Name | Type | Description |
|---|---|---|
| validationData | uint256 |
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 ERC6900Validation methodIdentifiers (alphabetical by signature); kept in exact parity by
ExportSelectorsParityTest. Chunks:
validateUserOp((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),bytes32,uint256) 0x19822f7c
function exportSelectors() external pure virtual returns (bytes memory selectors);Returns
| Name | Type | Description |
|---|---|---|
| selectors | bytes |