Skip to main content

YellowGovernor

Git Source

Inherits: Governor, GovernorSettings, GovernorCountingSimple, GovernorVotes, GovernorVotesQuorumFraction, GovernorTimelockControl, GovernorPreventLateQuorum, GovernorProposalGuardian

Title: YellowGovernor

Protocol parameter administration for the Yellow Network. Collateral weight is derived from YELLOW tokens posted as security deposits in the NodeRegistry by active node operators. Proposals are queued through a TimelockController before execution. Enforces a minimum quorum floor so quorum never drops below a meaningful absolute value even if total locked collateral shrinks. Includes late-quorum protection to prevent last-minute manipulation of outcomes without giving other operators time to react. A proposal guardian (Foundation multisig) can cancel any proposal as an emergency brake; removable via parameter administration.

State Variables​

_quorumFloorHistory​

Checkpoints.Trace208 private _quorumFloorHistory

Functions​

constructor​

constructor(
IVotes locker_,
TimelockController timelock_,
uint48 votingDelay_,
uint32 votingPeriod_,
uint256 proposalThreshold_,
uint256 quorumNumerator_,
uint256 quorumFloor_,
uint48 voteExtension_,
address proposalGuardian_
)
Governor("YellowGovernor")
GovernorSettings(votingDelay_, votingPeriod_, proposalThreshold_)
GovernorVotes(locker_)
GovernorVotesQuorumFraction(quorumNumerator_)
GovernorTimelockControl(timelock_)
GovernorPreventLateQuorum(voteExtension_);

quorumFloor​

Returns the current minimum absolute quorum.

function quorumFloor() public view returns (uint256);

quorumFloor​

Returns the quorum floor at a specific timepoint (snapshotted).

function quorumFloor(uint256 timepoint) public view returns (uint256);

setQuorumFloor​

Update the quorum floor. Only callable via parameter administration.

Reverts if newFloor exceeds the current total collateral weight supply.

function setQuorumFloor(uint256 newFloor) public onlyGovernance;

_updateQuorumFloor​

function _updateQuorumFloor(uint256 newFloor) internal;

votingDelay​

function votingDelay() public view override(Governor, GovernorSettings) returns (uint256);

votingPeriod​

function votingPeriod() public view override(Governor, GovernorSettings) returns (uint256);

proposalThreshold​

function proposalThreshold() public view override(Governor, GovernorSettings) returns (uint256);

quorum​

function quorum(uint256 blockNumber) public view override(Governor, GovernorVotesQuorumFraction) returns (uint256);

state​

function state(uint256 proposalId) public view override(Governor, GovernorTimelockControl) returns (ProposalState);

proposalDeadline​

function proposalDeadline(uint256 proposalId)
public
view
override(Governor, GovernorPreventLateQuorum)
returns (uint256);

proposalNeedsQueuing​

function proposalNeedsQueuing(uint256 proposalId)
public
view
override(Governor, GovernorTimelockControl)
returns (bool);

_queueOperations​

function _queueOperations(
uint256 proposalId,
address[] memory targets,
uint256[] memory values,
bytes[] memory calldatas,
bytes32 descriptionHash
) internal override(Governor, GovernorTimelockControl) returns (uint48);

_executeOperations​

function _executeOperations(
uint256 proposalId,
address[] memory targets,
uint256[] memory values,
bytes[] memory calldatas,
bytes32 descriptionHash
) internal override(Governor, GovernorTimelockControl);

_cancel​

function _cancel(
address[] memory targets,
uint256[] memory values,
bytes[] memory calldatas,
bytes32 descriptionHash
) internal override(Governor, GovernorTimelockControl) returns (uint256);

_executor​

function _executor() internal view override(Governor, GovernorTimelockControl) returns (address);

clock​

function clock() public view override(Governor, GovernorVotes) returns (uint48);

CLOCK_MODE​

forge-lint: disable-next-line(mixed-case-function)

function CLOCK_MODE() public view override(Governor, GovernorVotes) returns (string memory);

_tallyUpdated​

function _tallyUpdated(uint256 proposalId) internal override(Governor, GovernorPreventLateQuorum);

_validateCancel​

function _validateCancel(uint256 proposalId, address caller)
internal
view
override(Governor, GovernorProposalGuardian)
returns (bool);

_getVotes​

function _getVotes(address account, uint256 timepoint, bytes memory params)
internal
view
override(Governor, GovernorVotes)
returns (uint256);

Events​

QuorumFloorUpdated​

event QuorumFloorUpdated(uint256 oldFloor, uint256 newFloor);

Errors​

QuorumFloorExceedsTotalSupply​

error QuorumFloorExceedsTotalSupply(uint256 newFloor, uint256 totalSupply);