-
Notifications
You must be signed in to change notification settings - Fork 21
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Critical Risk of Storage Collision in Upgradable Contract Due to Inadequate Storage Management #228
Comments
I am applying to this issue via OnlyDust platform. My background and how it can be leveragedI'm a frontend and smart contract developer. I've contributed to Projects here on onlydust How I plan on tackling this issue
|
I am applying to this issue via OnlyDust platform. My background and how it can be leveragedi'm a solidity and cairo smart contract developer with over 2 years experience and believe i have the skill set for the task and i am also very good with smart contract testing and have worked with upgradable smart contracts in the past |
I am applying to this issue via OnlyDust platform. My background and how it can be leveragedGM GM ArkProject My name is Deon and I'd like to apply formally for the task presented. I am a Web and blockchain engineer with a passion for building user interfaces and Dapps that deliver meaningful experiences. With a background in Computer Science (BSc) and hands-on experience. If given the chance to contribute this will be my second official contribution via onlydust and I'm confident in my ability to deliver on the feature you're looking for. How I plan on tackling this issue
With this approach, I will prevent storage collisions and ensure safe upgrades to the upgradable contract. |
The maintainer ptisserand has assigned Iwueseiter to this issue via OnlyDust Platform. |
Hi @Iwueseiter any update on this ? |
I’ve started working on it. I’m unable to message you and the telegram group as well. Please leave a message so I’d be able to text you. |
From https://codehawks.cyfrin.io/c/2024-07-ark-project/s/435
The
Starklane
contract, designed to be an upgradable contract, inherits from multiple contracts (UUPSOwnableProxied
,StarklaneState
,StarklaneEscrow
,StarklaneMessaging
, andCollectionManager
). Each of these contracts defines its own set of storage variables, but none of them reserve storage gaps for future upgrades. This makes it impossible to safely add new variables to any of the inherited contracts without causing storage collisions. TheStarklane
contract itself is the only safe place to add new variables, significantly limiting the flexibility of future upgrades and increasing the risk of storage collision.Unit tests must be provided.
The text was updated successfully, but these errors were encountered: