-
Notifications
You must be signed in to change notification settings - Fork 28
Expand file tree
/
Copy pathIERC6900ExecutionHookModule.sol
More file actions
26 lines (23 loc) · 1.39 KB
/
IERC6900ExecutionHookModule.sol
File metadata and controls
26 lines (23 loc) · 1.39 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: CC0-1.0
pragma solidity ^0.8.20;
import {IERC6900Module} from "./IERC6900Module.sol";
interface IERC6900ExecutionHookModule is IERC6900Module {
/// @notice Run the pre execution hook specified by the `entityId`.
/// @dev To indicate the entire call should revert, the function MUST revert.
/// @param entityId An identifier that routes the call to different internal implementations, should there
/// be more than one.
/// @param sender The caller address.
/// @param value The call value.
/// @param data The calldata sent. For `executeUserOp` calls of validation-associated hooks, hook modules
/// should receive the full calldata.
/// @return Context to pass to a post execution hook, if present. An empty bytes array MAY be returned.
function preExecutionHook(uint32 entityId, address sender, uint256 value, bytes calldata data)
external
returns (bytes memory);
/// @notice Run the post execution hook specified by the `entityId`.
/// @dev To indicate the entire call should revert, the function MUST revert.
/// @param entityId An identifier that routes the call to different internal implementations, should there
/// be more than one.
/// @param preExecHookData The context returned by its associated pre execution hook.
function postExecutionHook(uint32 entityId, bytes calldata preExecHookData) external;
}