Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

ERC7821

Inherits: IERC7821

Minimal batch executor following ERC-7821. Only supports supports single batch mode (0x01000000000000000000). Does not support optional "opData".

Note: stateless:

Functions

execute

Executes the calls in executionData with no optional opData support. NOTE: Access to this function is controlled by _erc7821AuthorizedExecutor. Changing access permissions, for example to approve calls by the ERC-4337 entrypoint, should be implemented by overriding it. Reverts and bubbles up error if any call fails.

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

supportsExecutionMode

*This function is provided for frontends to detect support. Only returns true for:

  • bytes32(0x01000000000000000000...): does not support optional opData.
  • bytes32(0x01000000000078210001...): supports optional opData.*
function supportsExecutionMode(bytes32 mode) public view virtual returns (bool result);

_erc7821AuthorizedExecutor

*Access control mechanism for the execute function. By default, only the contract itself is allowed to execute. Override this function to implement custom access control, for example to allow the ERC-4337 entrypoint to execute.

function _erc7821AuthorizedExecutor(
address caller,
bytes32 mode,
bytes calldata executionData
) internal view virtual override returns (bool) {
return caller == address(entryPoint()) || super._erc7821AuthorizedExecutor(caller, mode, executionData);
}
```*


```solidity
function _erc7821AuthorizedExecutor(address caller, bytes32, bytes calldata) internal view virtual returns (bool);

Errors

UnsupportedExecutionMode

error UnsupportedExecutionMode();