Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

GovernorVotesQuorumFractionUpgradeable

Inherits: Initializable, GovernorVotesUpgradeable

Extension of {Governor} for voting weight extraction from an {ERC20Votes} token and a quorum expressed as a fraction of the total supply.

State Variables

GovernorVotesQuorumFractionStorageLocation

bytes32 private constant GovernorVotesQuorumFractionStorageLocation =
    0xe770710421fd2cad75ad828c61aa98f2d77d423a440b67872d0f65554148e000;

Functions

_getGovernorVotesQuorumFractionStorage

function _getGovernorVotesQuorumFractionStorage() private pure returns (GovernorVotesQuorumFractionStorage storage $);

__GovernorVotesQuorumFraction_init

Initialize quorum as a fraction of the token's total supply. The fraction is specified as numerator / denominator. By default the denominator is 100, so quorum is specified as a percent: a numerator of 10 corresponds to quorum being 10% of total supply. The denominator can be customized by overriding quorumDenominator.

function __GovernorVotesQuorumFraction_init(uint256 quorumNumeratorValue) internal onlyInitializing;

__GovernorVotesQuorumFraction_init_unchained

function __GovernorVotesQuorumFraction_init_unchained(uint256 quorumNumeratorValue) internal onlyInitializing;

quorumNumerator

Returns the current quorum numerator. See quorumDenominator.

function quorumNumerator() public view virtual returns (uint256);

quorumNumerator

Returns the quorum numerator at a specific timepoint. See quorumDenominator.

function quorumNumerator(uint256 timepoint) public view virtual returns (uint256);

quorumDenominator

Returns the quorum denominator. Defaults to 100, but may be overridden.

function quorumDenominator() public view virtual returns (uint256);

quorum

Returns the quorum for a timepoint, in terms of number of votes: supply * numerator / denominator.

function quorum(uint256 timepoint) public view virtual override returns (uint256);

updateQuorumNumerator

*Changes the quorum numerator. Emits a QuorumNumeratorUpdated event. Requirements:

  • Must be called through a governance proposal.
  • New numerator must be smaller or equal to the denominator.*
function updateQuorumNumerator(uint256 newQuorumNumerator) external virtual onlyGovernance;

_updateQuorumNumerator

*Changes the quorum numerator. Emits a QuorumNumeratorUpdated event. Requirements:

  • New numerator must be smaller or equal to the denominator.*
function _updateQuorumNumerator(uint256 newQuorumNumerator) internal virtual;

_optimisticUpperLookupRecent

Returns the numerator at a specific timepoint.

function _optimisticUpperLookupRecent(Checkpoints.Trace208 storage ckpts, uint256 timepoint)
    internal
    view
    returns (uint256);

Events

QuorumNumeratorUpdated

event QuorumNumeratorUpdated(uint256 oldQuorumNumerator, uint256 newQuorumNumerator);

Errors

GovernorInvalidQuorumFraction

The quorum set is not a valid fraction.

error GovernorInvalidQuorumFraction(uint256 quorumNumerator, uint256 quorumDenominator);

Structs

GovernorVotesQuorumFractionStorage

Note: storage-location: erc7201:openzeppelin.storage.GovernorVotesQuorumFraction

struct GovernorVotesQuorumFractionStorage {
    Checkpoints.Trace208 _quorumNumeratorHistory;
}