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

Restrict Migration Path to Safe 1.5.0 #783

Closed nlordell closed 2 months ago

nlordell commented 2 months ago

Context / issue

We should adopt a stricter migration contract naming scheme. For example, the 1.3.0 to 1.4.1 migration is named as such, and verifies that the singleton versions, both the original version and the new version, are correct. We should do the same for 1.5.0 migration contract (and potentially only support migrating from 1.4.1 version) to avoid any unexpected behaviour when coming from a different version.

Proposed solution

Check that the current singleton value is set to the 1.4.1 singleton for the corresponding network before changing it to a 1.5.0 Safe.

Alternatives

Leave it as is.

mmv08 commented 2 months ago

For example, the 1.3.0 to 1.4.1 migration is named as such, and verifies that the singleton versions, both the original version and the new version, are correct.

I think it's named as such because versions < 1.3.0 had an in-built upgrade mechanism, therefore version 1.3.0 is the first version that requires to be migrated with a library contract.

and potentially only support migrating from 1.4.1 version

I don't see any issues upgrading from 1.3.0 to 1.5.0 that do not exist in 1.4.1 > 1.5.0 migration.

nlordell commented 2 months ago

As discussed in planning meeting, we will not implement (see @mmv08's points above).