Nominate
Nominate is an electoral mandate that allows users to self-nominate (or revoke their nomination) for an election managed by a Nominees contract.
Overview
Section titled “Overview”This mandate provides a simple interface for users to signal their intent to run for a role or position. It interacts with a helper Nominees contract which maintains the list of active candidates. This list is often used by other mandates (like DelegateTokenSelect or ElectionList_Vote) to conduct elections.
Configuration
Section titled “Configuration”When adopting a Nominate instance, the following parameter is required:
NomineesContract(address): The address of the Nominees helper contract where nominations are stored.
Proposing an Action
Section titled “Proposing an Action”When calling the mandate, one parameter must be provided:
shouldNominate(bool):true: Add the caller to the list of nominees.false: Remove the caller from the list of nominees.
Execution Flow
Section titled “Execution Flow”-
Request Handling
- Decodes the
shouldNominateboolean. - Prepares a call to the
NomineesContract.
- Decodes the
-
External Call
- Executes
nominate(address candidate, bool status)on the Nominees contract. - Passes the
caller’s address as the candidate and theshouldNominatevalue as the status.
- Executes
Technical Specifications
Section titled “Technical Specifications”Functions
Section titled “Functions”initializeMandate
Section titled “initializeMandate”function initializeMandate( uint16 index, string memory nameDescription, bytes memory inputParams, bytes memory config) public override- Initializes the Nominees contract address.
- Sets input parameters to
(bool shouldNominate).
handleRequest
Section titled “handleRequest”function handleRequest(...) public view override returns (...)- Prepares the call to the Nominees contract.
Current Deployments
Section titled “Current Deployments”| Chain ID | Chain Name | Address |
|---|---|---|