Closed mmv08 closed 11 months ago
Totals | |
---|---|
Change from base Build 6589591326: | 0.02% |
Covered Lines: | 368 |
Relevant Lines: | 377 |
Code looks good to me, as for the rationale, is it just we don't want to accidentally run this migration on a proxy contract that isn't the standard Safe proxy contract (and overwrite some important storage that the proxy contract uses for other things)?
Yes and no. A correct proxy implementation should use something other than this storage slot because things may break. In this case, it's more about running a migration transaction without migrating anything. For version 1.5.0, though, it gets more critical because the guard interface changes there to add a module transaction check. The contract also implements migration methods for such cases (upgrade singleton together with a guard), so it was needed to avoid an issue where the singleton stays the same, but the guard updates. See https://github.com/safe-global/safe-contracts/pull/652#discussion_r1331387586
This PR: