ZeroGovernor
Inherits: IZeroGovernor, ThresholdGovernor
Author: M^0 Labs
State Variables
_MAX_TOTAL_ZERO_REWARD_PER_ACTIVE_EPOCH
The maximum number of Zero tokens that can be rewarded per active epoch.
emergencyGovernorDeployer
Returns the address of the Emergency Governor Deployer.
powerTokenDeployer
Returns the address of the Power Token Deployer.
standardGovernorDeployer
Returns the address of the Standard Governor Deployer.
_allowedCashTokens
The set of allowed cash tokens.
Functions
constructor
Construct a new ZeroGovernor contract.
Parameters
voteToken_
address
The address of the token used to vote.
emergencyGovernorDeployer_
address
The address of the Emergency Governor Deployer contract.
powerTokenDeployer_
address
The address of the Power Token Deployer contract.
standardGovernorDeployer_
address
The address of the Standard Governor Deployer contract.
bootstrapToken_
address
The address of the token that bootstraps the reset.
standardProposalFee_
uint256
The proposal fee for the Standard Governor.
emergencyProposalThresholdRatio_
uint16
The threshold ratio for the Emergency Governor.
zeroProposalThresholdRatio_
uint16
The threshold ratio for the Zero Governor.
allowedCashTokens_
address[]
The set of allowed cash tokens.
resetToPowerHolders
One of the valid proposals. Reset the Standard Governor, Emergency Governor, and Power Token to the Power Token holders. This would be used by Zero Token holders in the event that inflation is soon to result in Power Token overflowing, and/or there is a loss of faith in the state of either the Standard Governor or Emergency Governor.
resetToZeroHolders
One of the valid proposals. Reset the Standard Governor, Emergency Governor, and Power Token to the ZeroToken holders. This would be used by Zero Token holders if they no longer have faith in the current set of PowerToken holders and/or the state of either the Standard Governor or Emergency Governor.
setCashToken
One of the valid proposals. Sets the Cash Token of the system.
Parameters
newCashToken_
address
newProposalFee_
uint256
setEmergencyProposalThresholdRatio
One of the valid proposals. Sets the threshold ratio for Emergency Governor proposals.
Parameters
newThresholdRatio_
uint16
setZeroProposalThresholdRatio
One of the valid proposals. Sets the threshold ratio for this governor's proposals.
Parameters
newThresholdRatio_
uint16
isAllowedCashToken
Returns whether token
is an allowed Cash Token of the system, as a parameter in setCashToken proposal.
Parameters
token_
address
Returns
<none>
bool
Whether token
is an allowed Cash Token.
emergencyGovernor
Returns the address of the Emergency Governor.
standardGovernor
Returns the address of the Standard Governor.
_deployEphemeralContracts
Deploys the ephemeral standardGovernor
, emergencyGovernor
, and powerToken
contracts.
Parameters
emergencyGovernorDeployer_
address
The address of the Emergency Governor Deployer contract.
powerTokenDeployer_
address
The address of the Power Token Deployer contract.
standardGovernorDeployer_
address
The address of the Standard Governor Deployer contract.
bootstrapToken_
address
The address of a token to bootstrap the new Power Token.
cashToken_
address
The address of the Cash Token contract.
emergencyProposalThresholdRatio_
uint16
The threshold ratio for the Emergency Governor.
proposalFee_
uint256
The proposal fee for the Standard Governor.
Returns
standardGovernor_
address
The address of the deployed Standard Governor contract.
emergencyGovernor_
address
The address of the deployed Emergency Governor contract.
powerToken_
address
The address of the deployed Power Token contract.
_resetContracts
*Redeploy the ephemeral standardGovernor
, emergencyGovernor
, and powerToken
contracts, where:
the cash token is the same cash token in the existing
standardGovernor
the
emergencyGovernor
threshold ratio is the same threshold ratio in the existingemergencyGovernor
the
standardGovernor
proposal fee is the same proposal fee in the existingstandardGovernor
*
Parameters
bootstrapToken_
address
The token to bootstrap the powerToken
balances and voting powers.
_revertIfInvalidCalldata
All proposals target this contract itself, and must call one of the listed functions to be valid.
Parameters
callData_
bytes
The call data to check.