Skip to main content

GovernorBravoDelegateStorageV1

Git Source

Inherits: GovernorBravoDelegatorStorage

Title: Storage for Governor Bravo Delegate

For future upgrades, do not change GovernorBravoDelegateStorageV1. Create a new contract which implements GovernorBravoDelegateStorageV1 and following the naming convention GovernorBravoDelegateStorageVX.

State Variables

votingDelay

The delay before voting on a proposal may take place, once proposed, in blocks

uint256 public votingDelay

votingPeriod

The duration of voting on a proposal, in blocks

uint256 public votingPeriod

activationGracePeriod

The grace period after the voting delay through which a proposal may be activated

uint256 public activationGracePeriod

proposalThreshold

The percentage of total supply required in order for a voter to become a proposer

Out of 1000

uint256 public proposalThreshold

proposalCount

The total number of proposals

uint256 public proposalCount

timelock

The address of the Olympus Protocol Timelock

ITimelock public timelock

gohm

The address of the Olympus governance token

IgOHM public gohm

proposals

The official record of all proposals ever proposed

mapping(uint256 => Proposal) public proposals

latestProposalIds

The latest proposal for each proposer

mapping(address => uint256) public latestProposalIds

Structs

Proposal

struct Proposal {
/// @notice Unique id for looking up a proposal
uint256 id;
/// @notice Creator of the proposal
address proposer;
/// @notice The proposal balance threshold that the proposer must stay above to keep their proposal active
uint256 proposalThreshold;
/// @notice The quorum for this proposal based on gOHM total supply at the time of proposal creation
uint256 quorumVotes;
/// @notice The timestamp that the proposal will be available for execution, set once the vote succeeds
uint256 eta;
/// @notice the ordered list of target addresses for calls to be made
address[] targets;
/// @notice The ordered list of values (i.e. msg.value) to be passed to the calls to be made
uint256[] values;
/// @notice The ordered list of function signatures to be called
string[] signatures;
/// @notice The ordered list of calldata to be passed to each call
bytes[] calldatas;
/// @notice The codehash for each target contract
bytes32[] codehashes;
/// @notice The block at which voting begins: holders must delegate their votes prior to this block
uint256 startBlock;
/// @notice The block at which voting ends: votes must be cast prior to this block
uint256 endBlock;
/// @notice Current number of votes in favor of this proposal
uint256 forVotes;
/// @notice Current number of votes in opposition to this proposal
uint256 againstVotes;
/// @notice Current number of votes for abstaining for this proposal
uint256 abstainVotes;
/// @notice Flag marking whether the voting period for a proposal has been activated
bool votingStarted;
/// @notice Flag marking whether the proposal has been vetoed
bool vetoed;
/// @notice Flag marking whether the proposal has been canceled
bool canceled;
/// @notice Flag marking whether the proposal has been executed
bool executed;
/// @notice Receipts of ballots for the entire set of voters
mapping(address => Receipt) receipts;
}

Receipt

Ballot receipt record for a voter

struct Receipt {
/// @notice Whether or not a vote has been cast
bool hasVoted;
/// @notice Whether or not the voter supports the proposal or abstains
uint8 support;
/// @notice The number of votes the voter had, which were cast
uint256 votes;
}

Enums

ProposalState

Possible states that a proposal may be in

enum ProposalState {
Pending,
Active,
Canceled,
Defeated,
Succeeded,
Queued,
Expired,
Executed,
Vetoed,
Emergency
}