Open
Description
This is a bit of a meta issue that requires some discussion before implementing:
- Decide which contracts should be upgradable
- What are the roles required for those contracts
- We have a lot of immutable configurations, especially for contract references. We should decide between the following options:
- For variables that will never change we are ok leaving them as immutable
- For variables that we expect to have to change often(e.g. configuration parameters that are sensible to marke changes) they should be storage variables that can be updated by an owner(e.g. a DAO)
- For variables that we expect to change very infrequently(e.g. a reference to another contract or a config parameter that is not expected to change) I believe the most optimal solution gas wise might be still making it a constant or an internal function that returns a hardcoded value and the way a permissioned actor can update it is by upgrading the contract