Category: Coding Mistakes
No storage gap for upgradable contract
Medium Severity
Medium Impact
Low Likelihood
Description
The MightyNetERC1155Claimer contract is intended to be the logic contract behind a certain proxy contract. Implementation contracts should have a storage gap to allow for upgradability / adding new variables in future upgrades, which are missing in these contracts.
Impact
If care is not taken, new variables added in a child contract could accidentally overwrite variables in its parent contract.
Recommendations
Consider adding an appropriate storage gap at the end of upgradable contracts such as this below.
uint256[50] private __gap;
Remediation
Mighty Bear Games provided the following response:
We don’t intend to inherit from this contract.