Open howydev opened 2 months ago
This seems related to #16.
This seems related to #16.
Previously, we focused on enhancing the validation process. We updated the validation logic to accurately identify and handle calls to both native functions and plugin functions, directed by a feature flag within the account's storage. Plugins that rely on native validation logic for their installation might include specific dependencies, such as
FunctionReference(mscaAddr, uint8(SingleOwnerMSCA.FunctionId.NATIVE_RUNTIME_VALIDATION_OWNER_OR_SELF)).
However, this approach essentially serves as a temporary solution given the current status of specifications. We're exploring methods to define clear interfaces or a core validation layer applicable to both account-native validations and plugin validations. Additionally, we are exploring the potential for incorporating hooks to enhance flexibility.
I can probably look into this as well since https://github.com/erc6900/resources/issues/16 is already on our radar.
Having a default validation would enhance the flexibility of a modular account quite a bit. I think it is a great a idea to include it.
The question comes down should accounts have a pool of default validators or a singe validator given that multiple validators are supported on a per selector level.
Or better, to simplify effort for both plugin devs and client devs, accounts can have a pool of default validators and/or a singe custom/specific validator in the event when a plugin execution function requires a custom validator.
A validation pool seems provide more options for plugins. However, the introduced complexity conceptually and technically is not worth it. Especially since the optionality can be achieved with the current existing validation scheme.
Most SCA implementations today have a “default owner” or “default validator” feature which is a validator that can be used on all/most user operations or transactions to the account. We should consider enshrining this and have all ERC6900 accounts implement a default validator feature.
Possible changes to the spec to explore: