Storage

  1. Inherited Storage
  2. Eternal Storage
  3. Unstructured Storage
    1. fixed storage slots and constant state variables do not occupy storage slots. Instead, they’re embedded directly into the compiled contract bytecode.
    2. github test code

Proxy patterns (openzeppelin)

advantage: immutable

disadvantage: cannot change the source code

How can a proxy contract with the previous state be updated? new proxy contract casting a new implementation.atAddress(existing proxy contract address casting an implementation).