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
There are 3 system-wide variables for an EVM call: the sender, the value, and the call data. Validation functions and hooks have access to all of these, but execution functions only have access to calldata. Some execution functions could benefit or be written more concisely if they have access to this information.
There are 2 techniques we could use to implement this:
Change execution functions to not be defined directly on the plugin, but through a similar “routing function” like the validation/hooks in IPlugin
This has the downside of making the plugins no longer “implement” the functions themselves, and they become harder to write.
Pass the sender and the value in as “secret parameters” by appending to the end of calldata.
This works with ABI-encoded functions, but breaks with some other types of function calls that just capture the entire calldata. It also requires odd integration code from the plugins to access this data.
The text was updated successfully, but these errors were encountered:
Some thoughts on option 1:
I think this could be an optional feature rather than a mandatory one. Developers who wish to leverage features associated with the modular plugin can choose to implement the interface that facilitates this functionality. However, if developers are content with the existing methods, it should be perfectly acceptable for them not to adopt the new interface methods.
IPlugin
The text was updated successfully, but these errors were encountered: