Skip to content

Commit

Permalink
update doc
Browse files Browse the repository at this point in the history
  • Loading branch information
godzillaba committed Dec 28, 2023
1 parent 31b88b3 commit b32b848
Showing 1 changed file with 19 additions and 13 deletions.
32 changes: 19 additions & 13 deletions docs/security-council-mgmt.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,10 @@ The election process and update stages are performed via on-chain smart contract

Process for selecting and voting for the new cohort of Security council members.

1. **Nominee Selection (7 days).** Candidates must gain 0.2% of total votable tokens in order to make it to the next step.
2. **Compliance check by Foundation (14 days).** As dictated in the Constitution, the selected nominees must undergo a compliance check to ensure they comply with the legal requirements, service agreements, and additional rules dictated by the Constitution.
3. **Member election (21 days).** Votes are cast and the top 6 nominees are selected.
1. **Candidate registration (7 days)** Candidates must put themselves up for nomination in order to receive votes.
2. **Nominee selection (7 days).** Candidates must gain 0.2% of total votable tokens in order to make it to the next step.
3. **Compliance check by Foundation (14 days).** As dictated in the Constitution, the selected nominees must undergo a compliance check to ensure they comply with the legal requirements, service agreements, and additional rules dictated by the Constitution.
4. **Member election (21 days).** Votes are cast and the top 6 nominees are selected.

## Update Stages

Expand All @@ -37,12 +38,21 @@ Process to install the newly elected cohort of Security Council members into the

# Election Stages in detail

## 1. Nominee selection (7 days)

This stage consists of handling election timing, candidate registration, candidate endorsement:
## 1. Election creation and candidate registration (7 days)

- **Election creation.** Elections can be created by anyone, but only every 6 months. The election alternates between targeting the positions on the two cohorts. Once created, this first stage of the election process lasts for 7 days.
- **Candidate registration.** During these 7 days, any candidate can register, unless they are already a member of the other cohort. Members of the current cohort (the cohort up for election) are allowed to register for re-election.

### Implementation details

A new proposal is created each election cycle by calling `SecurityCouncilNomineeElectionGovernor.createElection`. Once a proposal is created it will be "Pending" for 7 days.

Voting is not allowed while the proposal is pending.

During the 7 day pending window, contenders register themselves by signing an EIP712 message of type `AddContenderMessage(uint256 proposalId,address contender)` and calling `SecurityCouncilNomineeElectionGovernor.addContender`. The message must be signed by the `contender` specified in the message.

## 2. Nominee selection (7 days)

- **Endorsing candidates.** Delegates can endorse a candidate during this 7 day window. A single delegate can split their vote across multiple candidates. No candidate can accrue more than 0.2% of all votable tokens.
- **Fallback in case of too few candidates.** In the event that fewer than 6 candidates receive a 0.2% endorsement, the Arbitrum Foundation will randomly select members from the outgoing cohort to make up to 6 candidates.

Expand All @@ -55,13 +65,9 @@ It inherits most of its functionality from the OpenZeppelin Governor contracts,
- Custom counting module to allow delegates to endorse multiple candidates.
- Overridden proposal and execution to make the governor single purpose.

This governor contract has the following general interface relevant to the first stage:

- A new proposal is created each election cycle by calling `createElection`
- Contenders can make themselves eligible to receive votes by calling `addContender`.
- Delegates can call `castVoteWithReasonAndParams` or `castVoteWithReasonAndParamsBySig` supplying custom arguments in the params to indicate which candidate they wish to endorse with what weight.
Delegates can call `castVoteWithReasonAndParams` supplying custom arguments in the params to indicate which candidate they wish to endorse with what weight.

## 2. Compliance check by the Foundation (14 days)
## 3. Compliance check by the Foundation (14 days)

The Foundation will be given 14 days to vet the prospective nominees. If they find that a candidate does not meet the compliance check, they can exclude the candidate from progressing to the next stage. The compliance rules are not detailed here, and will instead be published by the Foundation, but note that grounds for exclusion will include greater than 3 members of a given organisation being represented in the nominee set (as described in section 4 of the Constitution).

Expand All @@ -77,7 +83,7 @@ The Governor smart contract enforces that at least a 2 week time period be provi

Once the compliance check has completed, anyone can call the `execute` function on the `SecurityCouncilNomineeElectionGovernor` to proceed to the member election stage.

## 3. Member election (21 days)
## 4. Member election (21 days)

The voting process can begin once a set of compliant candidates have been successfully nominated.

Expand Down

0 comments on commit b32b848

Please sign in to comment.