GovernorBravoDelegateStorageV1
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
}