Action Tiering
Some actions taken by governance are much more impactful and riskier than others.
To reflect these different levels of importance, every function that can be called through governance is assigned a tier. At the moment, the tiers implemented are:
Tier | Description |
---|---|
LOW | Small governance spending, fine-tuning |
MEDIUM | Changes to parameters / system components that could have indirect safety implications |
HIGH | Changes to parameters / system components that can have direct safety implications |
CORE | Changes to the entire system / essentially upgrades |
HIGH-TREASURY | Like HIGH but is not disabled when upgrades are disabled. For large treasury spending |
A tier contains the following information:
proposalThreshold
: the minimum voting power required to create a proposalquorum
: the quorum to be reached for the proposal to passvoteThreshold
: the minimum ratio offor
votes for the vote to passtimeLockDuration
: the length of the time lockproposalLength
: the length of the proposalactionLevel
: how "impactful" the given action is
Assigning a tier is done using an ITierStrategy
implementation and varies depending on the function called.
The following strategies are implemented:
StaticTierStrategy
: always returns the same tier regardless of the argumentsSimpleThresholdStrategy
: returns a tier based on whether one of the parameters is above a given thresholdSetVaultFeesStrategy
: Same asSimpleThresholdStrategy
but compares two arguments to the thresholdSetSystemParamsStrategy
: Similar toSimpleThresholdStrategy
but compares a several fields of astruct
to multiple thresholdsSetAddressStrategy
: Has a different tier per address argument. This is used for theGyroConfig.setAddress
that has the power to replace parts of the system.
Last updated