The declaration order/layout and type/mutability of state variables in such contracts should be preserved exactly while upgrading to prevent critical storage layout mismatch errors. (see here)
- State Variables Order/Layout/Type/Mutability
- Proxy-based Contracts
- Data Proxy -> Logic Impl.
- Proxy <-> Impl
- Note Same -> Critical Errors
- Same -> Order/Layout/Type/Mutability