Skip to content

fix: implement CYS3-02 fix - #540

Closed
evercoinx wants to merge 1 commit into
mainfrom
serge/CYS302
Closed

fix: implement CYS3-02 fix#540
evercoinx wants to merge 1 commit into
mainfrom
serge/CYS302

Conversation

@evercoinx

@evercoinx evercoinx commented May 7, 2026

Copy link
Copy Markdown
Contributor

Note

High Risk
High risk because it changes storage layouts for multiple UUPS-upgradeable core contracts and introduces on-chain migration steps; any layout mismatch or missed migration could brick proxies or corrupt committee/operator state.

Overview
This PR hardens upgrade safety across the UUPS suite by preserving storage layout compatibility: RoleActivationTimelock is moved to ERC-7201 namespaced storage, multiple contracts add explicit __gap slots, and several removed/renamed state variables are retained as _deprecated_* placeholders (e.g., in RewardsManager, SSPRouter, SlashingManager, StakeManager).

It also adds post-upgrade migration tooling for StakeManager: new admin-only, idempotent functions backfillCommitteeIds() and migrateOperatorCommittees() plus a MigrateOperatorCommittees.s.sol script, and updates UpgradeAllContracts.s.sol docs to require manual storage-layout verification and running the migration after upgrading.

Reviewed by Cursor Bugbot for commit 6919320. Bugbot is set up for automated code reviews on this repo. Configure here.

@evercoinx evercoinx self-assigned this May 7, 2026
@evercoinx evercoinx closed this May 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant