safe-global / safe-smart-account

Safe allows secure management of blockchain assets.
https://safe.global
GNU Lesser General Public License v3.0
1.84k stars 907 forks source link

Split Guard into Module and Transaction Guard #755

Closed nlordell closed 4 months ago

nlordell commented 5 months ago

Context / issue

Because of codesize limitations, the guard in Safe v1.5.0 was both the module and transaction guard for the account. Now that some contract code space has been freed up, we can have separate configurations for transaction guards and module guards.

This has the added benefit that guards are backwards compatible instead of requiring an update for Safe v1.5.0 to implement the additional module guard interface.

Proposed solution

Split module guards into a separate configuration from the transaction guard.

Alternatives

Keep things as is.

Additional context

This was already implemented in https://github.com/safe-global/safe-smart-account/tree/feature/module-tx-guard.