Skip to content

Commit

Permalink
fix: update drawings for specs and add context for sub module interfa…
Browse files Browse the repository at this point in the history
…ces (#146)
  • Loading branch information
fangting-alchemy authored Aug 19, 2024
1 parent 29dffff commit 8d573c5
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 29 deletions.
17 changes: 9 additions & 8 deletions standard/ERCs/erc-6900.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,14 +74,7 @@ A call to the smart contract account can be broken down into the steps as shown

![diagram showing call flow within an modular account](../assets/eip-6900/Modular_Account_Call_Flow.svg)

The following diagram shows permitted module execution flows. During a module's execution step from the above diagram, the module may perform a "Module Execution Function", using either `executeFromModule` or `executeFromModuleExternal`. These can be used by modules to execute using the account's context.

- `executeFromModule` handles calls to other installed module's execution function on the modular account.
- `executeFromModuleExternal` handles calls to external addresses.

![diagram showing a module execution flow](../assets/eip-6900/Module_Execution_Flow.svg)

Each step is modular, supporting different implementations for each execution function, and composable, supporting multiple steps through hooks. Combined, these allow for open-ended programmable accounts.
Each step is modular, supporting different implementations, that allows for open-ended programmable accounts.

### Interfaces

Expand Down Expand Up @@ -322,6 +315,8 @@ interface IModule is IERC165 {

#### `IValidationModule.sol`

Validation module interface. Modules **MAY** implement this interface to provide validation functions for account.

```solidity
interface IValidationModule is IModule {
/// @notice Run the user operation validation function specified by the `entityId`.
Expand Down Expand Up @@ -373,6 +368,8 @@ interface IValidationModule is IModule {

#### `IValidationHookModule.sol`

Validation hook module interface. Modules **MAY** implement this interface to provide hooks for validation functions for account.

```solidity
interface IValidationHookModule is IModule {
/// @notice Run the pre user operation validation hook specified by the `entityId`.
Expand Down Expand Up @@ -420,6 +417,8 @@ interface IValidationHookModule is IModule {

#### `IExecutionModule.sol`

Execution module interface. Modules **MAY** implement this interface to provide execution functions for account.

```solidity
struct ManifestExecutionFunction {
// The selector to install
Expand Down Expand Up @@ -456,6 +455,8 @@ interface IExecutionModule is IModule {

#### `IExecutionHookModule.sol`

Execution hook module interface. Modules **MAY** implement this interface to provide hooks for execution functions for account.

```solidity
interface IExecutionHookModule is IModule {
/// @notice Run the pre execution hook specified by the `entityId`.
Expand Down
21 changes: 0 additions & 21 deletions standard/assets/eip-6900/Plugin_Execution_Flow.svg

This file was deleted.

0 comments on commit 8d573c5

Please sign in to comment.