August 2019
Intermediate to advanced
486 pages
13h 52m
English
The state variables of a contract are stored in storage slots. When there is a collision between the storage slots used in the old version and the new upgraded contract, it could create problems and even the data stores in state variables may be corrupted. This could result in a serious loss or unintended behavior by the contract. Let's look at an individual technique to avoid a storage collision.
We assume that a current version of an example contract is defined as follows:
contract SampleContract { uint256 public x; string public y;}
Now, we are going to upgrade this contract and we will look at different examples.