Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 11 additions & 5 deletions standard/ERCs/erc-6900.md
Original file line number Diff line number Diff line change
Expand Up @@ -480,15 +480,15 @@ interface IExecutionHookModule is IModule {
}
```

### Expected behavior

#### Validations and their installation /uninstallation
### Validations and Their Installation/Uninstallation

An account can have more than one validation module/function installed.
An account can have the same validation module installed more than once.
The entityId of a validation function installed on an account MUST be unique.
Validation installation MAY be deferred until a later time, such as upon first use.

#### Installation

During validation installation, the account MUST correctly set flags and other fields based on the incoming data provided by the user.

- the account MUST install all pre validation hooks required by the user and SHOULD call `onInstall` with the user-provided data on the hook module to initialize the states if required by user.
Expand All @@ -498,19 +498,23 @@ During validation installation, the account MUST correctly set flags and other f
- the account SHOULD call `onInstall` on the validation module to initialize the states if required by user.
- the account MUST emit `ValidationInstalled` as defined in the interface for all installed validations.

#### Uninstallation

During validation uninstallation, the account MUST correctly clear flags and other fields based on the incoming data provided by the user.

- the account MUST clear all flags for the validation function, like `isGlobal`, `isSignatureValidation`, and `isUserOpValidation`.
- the account MUST remomve all hooks and SHOULD clear hook module states by calling `onUninstall` with the user-provided data for each hook, including both pre validation hooks and permission hooks, if required by user.
- the account MUST remove all selectors that the validation function can validate.
- the account MUST emit `ValidationUninstalled` as defined in the interface for all uninstalled validations.

#### Execution and their installation /uninstallation
### Execution and Their Installation/Uninstallation

An account can install any number of execution functions.
An execution function selector MUST be unique in the account.
An execution function selector MUST not conflict with native ERC-4337 and ERC-6900 functions.

#### Installation

During execution installation, the account MUST correctly set flags and other fields based on the incoming data and module manifest provided by the user.

- the account MUST install all execution functions and set flags and fields as specified in the manifest.
Expand All @@ -519,6 +523,8 @@ During execution installation, the account MUST correctly set flags and other fi
- the account SHOULD call `onInstall` on the execution module to initialize the states if required by user.
- the account MUST emit `ExecutionInstalled` as defined in the interface for all installed executions.

#### Uninstallation

During execution uninstallation, the account MUST correctly clear flags and other fields based on the incoming data and module manifest provided by the user.

- the account MUST remove all execution functions and clear flags and fields as specified in the manifest.
Expand All @@ -527,7 +533,7 @@ During execution uninstallation, the account MUST correctly clear flags and othe
- the account SHOULD call `onUnInstall` on the execution module to initialize the states and track call success if required by user.
- the account MUST emit `ExecutionUninstalled` as defined in the interface for all uninstalled executions.

#### Hook execution order
### Hook Execution Order

It is RECOMMENDED that an account implementer runs hooks in first installed first executed order. However, an account MAY implement a different execution order.

Expand Down