Assessment reports>SSI Protocol>Discussion>No storage gap for upgradable contracts

No storage gap for upgradable contracts

When we observe contracts inherited by upgradable contracts that are not deployed to the chain, we typically recommend to implement storage gaps so it is easy to add additional storage variables to the contract while not corrupting the storage layout of other contracts.

In this codebase, the AssetController contract falls to this case; it is inherited by AssetFeeManager, AssetIssuer, and AssetRebalancer. However, they do not implement the storage gap, and these contracts are already deployed on chain.

Upgrading these contracts by modifying the code of AssetController should be done cautiously because adding a storage variable to AssetController may corrupt the storage layouts of child contracts.

Zellic © 2025Back to top ↑