We should add an example for a simple upgradeable contract, which uses 3-layers:
- A
delegate contract which acts as a proxy and contains the address of the logic contract to call. The logic contract address can be updated only by an authorized address.
- A
logic contract which contains the business logic.
- A
data/model contract which exposes access to the data storage.