Context / issue
Currently, Safes aren't well supported for EIP-7702, and complex setup procedures are needed to make it work (you would need to delegate to an account that is responsible for setting up Safe storage, and only then delegate to the Safe contracts). Additionally, we have not sufficiently tested and verified Safes functioning under 7702, meaning that even if you were to do
Proposed solution
A few things need to happen in order to make Safes more EIP-7702 friendly:
- Remove the
owner != address(this) restriction when adding owners. This would allow the EOA that is delegating to a Safe to be an owner
- Add a
Safe7702Proxy implementation that proxies to an actual Safe implementation and handles account initialization (similar to SafePREP)
- Optionally add the
SafePREP implementation from here
- Sufficiently test Safe 7702 setups in order to increase confidence in its integrity
Additional context
This would require an additional audit, that focuses on the new EIP-7702 support.
Context / issue
Currently, Safes aren't well supported for EIP-7702, and complex setup procedures are needed to make it work (you would need to delegate to an account that is responsible for setting up Safe storage, and only then delegate to the Safe contracts). Additionally, we have not sufficiently tested and verified Safes functioning under 7702, meaning that even if you were to do
Proposed solution
A few things need to happen in order to make Safes more EIP-7702 friendly:
owner != address(this)restriction when adding owners. This would allow the EOA that is delegating to a Safe to be an ownerSafe7702Proxyimplementation that proxies to an actual Safe implementation and handles account initialization (similar toSafePREP)SafePREPimplementation from hereAdditional context
This would require an additional audit, that focuses on the new EIP-7702 support.