In upgradeable contracts, it's crucial to include a storage gap to allow for future storage variable additions without causing `storage collision` issues in upgraded versions. The absence of a storage gap
in this contract is indeed a potential issue.
Starklane
contract is an upgradeable
contract which inherits from multiple other contracts (UUPSOwnableProxied, StarklaneState, StarklaneEscrow, StarklaneMessaging, CollectionManager)
, each of which may introduce their own storage variables.
This complex inheritance structure emphasizes the need for a storage gap to ensure safe future upgrades.
Future upgrades that add new storage variables could potentially overwrite existing storage, leading to data corruption.
Consider appending a __gap
variable as the last storage variable to the Starklane
contract:
Known issue: Lightchaser
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.