Storage of upgradeable contracts will be corrupted during an upgrade.
Note: The contracts highlighted in Orange mean that there is no gap slots defined.
There gap storage has not been implemented on the StakingPool/OperatorVault/CommunityVCS/OperatorVCS that have state variables that are non-constant nor immutable.
Without gaps, adding new storage variables to any of these contracts can potentially overwrite the beginning of the storage layout of the child contract, causing critical misbehaviors in the system.
The following contracts, do have state variables that
For StakingPool.sol
StakingPool.sol#L27
For OperatorVault.sol
OperatorVault.sol#L19-L20
For CommunityVCS.sol
CommunityVCS.sol#L13-L14
For OperatorVCS.sol
OperatorVCS.sol#L15-L16
Without gaps, adding new storage variables during contract upgrades can overwrite existing storage layout slots in child contracts, causing critical misbehavior in the system, including data loss, and incorrect logic execution.
Add gaps for contracts that have mutable state variables.
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.