Simplify ERC7579 Executors validation pattern #158
Merged
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.
Overall, this PR simplifies by removing forced design choices like having the account authorized to cancel by default. I initially thought overriding would be the best pattern, but I'm playing with this on Wizard and writing the docs (#157), and these changes would make it fit cleaner.
Core Design Change
ERC7579Executor.sol
_validateExecution
to return only calldata (removed boolean flag)ERC7579InvalidExecution
errorERC7579DelayedExecutor.sol
_validateCancel
and_validateSchedule
to void functions that should revert on failure. Left virtual.ERC7579ExecutorUnauthorizedCancellation
andERC7579ExecutorUnauthorizedSchedule
errors