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
Currently, our protocol design centers around standardizing authorization logic of module executions and configurations by enforcing that all calls go through a single "StoryProtocol.sol" frontend which abi.encodes all calldata to be passed into a generic execute or configure function that then decodes the data and routes it accordingly. This current design is neither flexible nor optimized for dev-ex.
Instead, we should rearchitect our protocol so that the module registry acts as a granular authorization source for all frontends that register through it. Instead of enforcing encoding through a single generic function, the protocol should support "registering" authorized frontends ("gateways") with a list of module dependencies (module type + function selector) by authorized protocol admins. Then, all downstream modules can simply extend a base module that checks whether the caller for a targeted function was pre-approved.
This would simplify logic greatly, allow any authorized contracts to register as frontends to our data layer, and greatly optimize the developer experience.
The text was updated successfully, but these errors were encountered:
Currently, our protocol design centers around standardizing authorization logic of module executions and configurations by enforcing that all calls go through a single "StoryProtocol.sol" frontend which abi.encodes all calldata to be passed into a generic
execute
orconfigure
function that then decodes the data and routes it accordingly. This current design is neither flexible nor optimized for dev-ex.Instead, we should rearchitect our protocol so that the module registry acts as a granular authorization source for all frontends that register through it. Instead of enforcing encoding through a single generic function, the protocol should support "registering" authorized frontends ("gateways") with a list of module dependencies (module type + function selector) by authorized protocol admins. Then, all downstream modules can simply extend a base module that checks whether the caller for a targeted function was pre-approved.
This would simplify logic greatly, allow any authorized contracts to register as frontends to our data layer, and greatly optimize the developer experience.
The text was updated successfully, but these errors were encountered: