Keeping data and logic separately
Using the same logic as the previous exercise, we will build the same Score contract but by keeping the data and logic separately.
- 1.Implement the data contract which stores uint for score
- 2.implement the logic contract which uses the data contract
- 3.Deploy the contracts and test that you can update the value of score
- 4.Implement LogicV2 contract which as before updates the
setter
function such that it adds 1 to the value being set - 5.Perform the upgrade and disable logicV1 contract
- 6.Do the above 6 steps but for a simple token contract
- Extend the Storage contract with StorageV2 which calls Storage to access the old storage and for any new storage, keeps it within itself
- Extends StorageV2 with StorageV3 which either talks to both Storage and StorageV2 or Just talks to Storage.
- Use inheritance to support extending the contract and override the functions to call super contract if function not changed in this implementation