Upgrade contracts and libraries to Solidity 0.6.0 -> 0.8.0

Hi, I have a set of upgradeable contracts deployed last year with Solidity 0.6. We decided to change the approach used on their implementations, this also involves upgrade them to solidity 0.8 too. This would break old implementations, so the idea is to remove old contracts just keeping the fresh new ones. Could we use the upgradeProxy call on migrations just pointing the oldAddress?

await upgradeProxy(oldAddress, NewImplementation, { deployer });

Considering we keep same storage structure just expanding it, is there some risk that implementation mess up with the storage?

1 Like

It should be fine. Storage is compatible across Solidity versions. You should skip 0.8.8 as it has a bug in the storage layout.