Skip to content

Conversation

@cleanunicorn
Copy link
Contributor

Changing the storage layout requires a new minor version (not upgradable from v0.6.0).

Fixes #47

@donosonaumczuk
Copy link

@cleanunicorn is this contract using some upgradeability pattern, or is it being deployed straight away as an immutable contract, and then the network just switches to use the new version?

@donosonaumczuk
Copy link

Ok, I see you are using a transparent proxy pattern. And probably this will be a breaking change because of the layout. Maybe it worth to switch to computed storage slots, so it does not have issues with storage layour next time? Unless the endgoal for mainnet is to not use the proxy and go immutable

@cleanunicorn
Copy link
Contributor Author

Ok, I see you are using a transparent proxy pattern. And probably this will be a breaking change because of the layout. Maybe it worth to switch to computed storage slots, so it does not have issues with storage layour next time? Unless the endgoal for mainnet is to not use the proxy and go immutable

It's your choice to use other storage patterns. In my experience they are difficult to use, require more gas, allow for too much upgradability that ultimately turns into chaos.

You can get away with some upgradability, but if you change structures or add new fields, you still don't have previous data in storage.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEATURE] Remove unused state variables from SwarmCoordinator contract

2 participants