-
Notifications
You must be signed in to change notification settings - Fork 27
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
Security Council Manager Affordance Change Action #284
Conversation
@@ -176,15 +176,17 @@ It accepts proposals in the same format that normal governors do, however it ove | |||
|
|||
Voting and proposing can occur using the standard governance UIs. | |||
|
|||
### 9/12 Security Council | |||
### Non-Emergency Security Council |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is only consistent with the constitution because we're also making the non emergency governor a 9/12 multisig - so in the future we would need to be careful if we ever reduced the threshold again to move these roles back to the emergency governor.
I dont know how we can guard against. Could do:
- Add a big comment somewhere about the threshold - but I dont know where we could put a comment that it would get picked up in this case
- Add a check somewhere in the sec council manager that wont allow these updates to be called unless its by a safe with 9/12 threshold.
- Add a guard into the non emergency safe that doesnt allow the threshold to be reduced unless a special string is provided eg keccak256("the member roles on the sec council manager have already been revoked")
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we could put something in gotchas.md
or security-council-manager.md
but i'm not sure they would be noticed
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i actually think documenting it should be sufficient, the nonemergency can only do 2 things: queue l2 timelock and call the manager, so when the threshold is changed I would think this would be remembered
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok, lets stick it in the gotchas or something then
bytes32 public immutable MEMBER_ROTATOR_ROLE = securityCouncilManager.MEMBER_ROTATOR_ROLE(); | ||
bytes32 public immutable MEMBER_REMOVER_ROLE = securityCouncilManager.MEMBER_REMOVER_ROLE(); | ||
|
||
function perform() public { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We could add checks/verifications after roles are granted for extra layer of safety (even though it's tested in fork test so probably not necessary)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
good call
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm
+1 let's keep it as a strict subset |
Shifts some of the emergency council's privileges over to the non-emergency council. Specifically these 4
SecurityCouncilManager
roles are transferred:MEMBER_ADDER_ROLE
,MEMBER_REPLACER_ROLE
,MEMBER_ROTATOR_ROLE
,MEMBER_REMOVER_ROLE
.yarn ts-node scripts/printAccessControlRoles.ts
shows the following roles on the manager:Documentation is also updated to reflect this change.
Proposal data: #290
Seatbelt: ArbitrumFoundation/governance-seatbelt#30