Hi!
I have contracts here which have been in prod for a year, all either UUPS or BeaconProxy based: https://github.com/OpenQDev/OpenQ-Contracts/tree/production/contracts
Can I upgrade my solidity version 0.8.16 -> 0.8.17 without any issues with, say, storage layout etc.?
Thanks!
Generally, it should be fine to upgrade as long as the most major version number didn't change. For example, 0.7.x to 0.8.x would not be compatible, but 0.8.16 to 0.8.17 should be ok.
However, sometimes Solidity has a storage layout bug, such as what occurred in 0.8.8. Therefore, we recommend using the Hardhat Upgrades plugin to validate and test your upgrade, which would report storage layout conflicts due to Solidity changes. For example, see the validateUpgrade
function. (Note that this only applies to Hardhat, not Truffle, because storage layout information from the compiler is only available in Hardhat.)
1 Like