You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: migrate StakingRewardDistributor to AccessControl and make LockedTokenStaker upgradeable
- Replace Ownable with AccessControl in StakingRewardDistributor
- Add DEFAULT_ADMIN_ROLE for timelock and REWARD_MANAGER_ROLE for treasury
- Implement migrateToAccessControl() for safe live contract upgrade
- Update all access control checks to use role-based permissions
- Make LockedTokenStaker upgradeable
- Convert to Initializable pattern with proxy support
- Add unique identifier requirement to prevent salt collisions
- Support multiple instances (Reown, WalletConnect, Backers)
- Enhance Pauser contract
- Add isStakingRewardDistributorPaused flag and controls
- Integrate with StakingRewardDistributor pause checks
- Maintain role separation (PAUSER_ROLE vs UNPAUSER_ROLE)
- Add comprehensive fork tests
- Test complete upgrade path with 7-day timelock delays
- Verify role assignments and permissions
- Test pause/unpause flow with Manager Timelock
- Include StakeWeight upgrade for full integration testing
- Update deployment scripts and helpers
- Fix deployment count from 14 to 15 contracts
- Add proxy helpers for LockedTokenStaker
- Support unique identifiers for multiple instances
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
0 commit comments