feat: [v0.8-develop, experimental]: remove plugin call restriction [3/N] #60
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation
#52 identified an issue, where if a validation plugin defined any execution functions, it could not be installed multiple times. This is a goal we're working towards with composable validation, so we need a way to address the issue.
A simple candidate change to address this is to remove the call restriction on plugins, and to handle the logic of guarded functions like
transferOwnershipthrough theexecute/executeBatchworkflows.Solution
Remove the restriction on
_execto only call non-plugin contracts.Remove the installation of execution functions
owner()andtransferOwnership(...)from SingleOwnerPlugin. We should eventually provide this as a non-mandatory option during install, but that is not addressed here.Future work
This PR does not address the security ramifications of this - it breaks the segmentation of validation functions provided by the 1:1 association of selectors and validation. We will need to implement some ability to filter calls based on the type of validation used in the future.