Add 3x MCMS structure to deployer/reader/state#601
Conversation
|
👋 krebernisak, thanks for creating this pull request! To help reviewers, please consider creating future PRs as drafts first. This allows you to self-review and make any final changes before notifying the team. Once you're ready, you can mark it as "Ready for review" to request feedback. Thanks! |
There was a problem hiding this comment.
Pull request overview
This PR refactors the MCMS (Multi-Chain Multi-Sig) deployment architecture from a single MCMS contract to a three-contract structure with role-specific contracts: Proposer, Canceller, and Bypasser. Each contract is deployed separately and assigned a specific role in the timelock system.
Changes:
- Restructured
MCMSSuiteStateto include three separate MCMS contract addresses (Proposer, Canceller, Bypasser) instead of a single MCMS address - Updated
MCMSReaderto select the appropriate MCMS contract based on the timelock action type (schedule, cancel, bypass) - Implemented deployment logic for all three MCMS contracts with role-specific type assignments
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| deployment/utils/contract.go | Added TODO comment noting a type mismatch issue for MCMS deployment that needs upstream fix |
| deployment/state/state.go | Removed MCMS and Timelock contract type constants (moved to mcms.go) |
| deployment/state/mcms.go | Refactored MCMSSuiteState to support three role-specific MCMS contracts; updated state loading logic to match contracts by role type |
| deployment/mcms/sequence/deploy_mcms.go | Implemented deployment sequence for all three MCMS contracts with type overrides for proper address reference storage |
| deployment/ccip/1_6_0/sequences/mcms_reader.go | Added logic to select appropriate MCMS contract based on timelock action type |
| deployment/ccip/1_6_0/sequences/mcms.go | Updated state extraction to initialize all three MCMS contract fields |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
097890a to
44d2a7d
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 17 out of 18 changed files in this pull request and generated 5 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
145a532 to
5301cd4
Compare
6c4ee2e to
cbc7331
Compare
fb64977 to
185b3da
Compare
| // Attach the qualifier to the output (to be stored in DS) | ||
| for i := range r.Output.Addresses { | ||
| r.Output.Addresses[i].Qualifier = qualifier | ||
| b.Logger.Info("in.TimelockAdmin - skipping param (EVM specific type - 20 bytes, not compatible with TON address format)") |
There was a problem hiding this comment.
We could use the CrossChainAddress to represent this
bf593f0
Uh oh!
There was an error while loading. Please reload this page.