You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: standard/ERCs/erc-6900.md
+11-5Lines changed: 11 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -480,15 +480,15 @@ interface IExecutionHookModule is IModule {
480
480
}
481
481
```
482
482
483
-
### Expected behavior
484
-
485
-
#### Validations and their installation /uninstallation
483
+
### Validations and Their Installation/Uninstallation
486
484
487
485
An account can have more than one validation module/function installed.
488
486
An account can have the same validation module installed more than once.
489
487
The entityId of a validation function installed on an account MUST be unique.
490
488
Validation installation MAY be deferred until a later time, such as upon first use.
491
489
490
+
#### Installation
491
+
492
492
During validation installation, the account MUST correctly set flags and other fields based on the incoming data provided by the user.
493
493
494
494
- 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.
@@ -498,19 +498,23 @@ During validation installation, the account MUST correctly set flags and other f
498
498
- the account SHOULD call `onInstall` on the validation module to initialize the states if required by user.
499
499
- the account MUST emit `ValidationInstalled` as defined in the interface for all installed validations.
500
500
501
+
#### Uninstallation
502
+
501
503
During validation uninstallation, the account MUST correctly clear flags and other fields based on the incoming data provided by the user.
502
504
503
505
- the account MUST clear all flags for the validation function, like `isGlobal`, `isSignatureValidation`, and `isUserOpValidation`.
504
506
- 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.
505
507
- the account MUST remove all selectors that the validation function can validate.
506
508
- the account MUST emit `ValidationUninstalled` as defined in the interface for all uninstalled validations.
507
509
508
-
####Execution and their installation /uninstallation
510
+
### Execution and Their Installation/Uninstallation
509
511
510
512
An account can install any number of execution functions.
511
513
An execution function selector MUST be unique in the account.
512
514
An execution function selector MUST not conflict with native ERC-4337 and ERC-6900 functions.
513
515
516
+
#### Installation
517
+
514
518
During execution installation, the account MUST correctly set flags and other fields based on the incoming data and module manifest provided by the user.
515
519
516
520
- the account MUST install all execution functions and set flags and fields as specified in the manifest.
@@ -519,6 +523,8 @@ During execution installation, the account MUST correctly set flags and other fi
519
523
- the account SHOULD call `onInstall` on the execution module to initialize the states if required by user.
520
524
- the account MUST emit `ExecutionInstalled` as defined in the interface for all installed executions.
521
525
526
+
#### Uninstallation
527
+
522
528
During execution uninstallation, the account MUST correctly clear flags and other fields based on the incoming data and module manifest provided by the user.
523
529
524
530
- the account MUST remove all execution functions and clear flags and fields as specified in the manifest.
@@ -527,7 +533,7 @@ During execution uninstallation, the account MUST correctly clear flags and othe
527
533
- the account SHOULD call `onUnInstall` on the execution module to initialize the states and track call success if required by user.
528
534
- the account MUST emit `ExecutionUninstalled` as defined in the interface for all uninstalled executions.
529
535
530
-
####Hook execution order
536
+
### Hook Execution Order
531
537
532
538
It is RECOMMENDED that an account implementer runs hooks in first installed first executed order. However, an account MAY implement a different execution order.
0 commit comments