Roles
DEFAULT_ADMIN_ROLE
- Granted to Community Multisig (3 out of 7)
- For rescuing funds and pausing
_TIMELOCK_ROLE
- To be granted to a Timelock Controller owned by the Community Multisig after initial setups
- For managing user reward impacting functionalities
- For setting permissioned address such as treasury address
- For setting fee parameters
_MANAGER_ROLE
- Granted to ops multisig (2 out of 4)
- For managing non-user fund impacting functions
- Adding new entries to MasterRegistry and YearnGaugeFactory
_PAUSER_ROLE
- Granted to EOA / OZ Defender
- For limiting attack vectors in emergencies
- Stops new deposits
_MINTER_ROLE
- Granted to Community Multisig
- Used in CoveToken contract
- Able to call
mint()
Contracts
CoveToken
- _TIMELOCK_ROLE
- addAllowedSender(address target)
- removeAllowedSender(address target)
- addAllowedReceiver(address target)
- removeAllowedReceiver(address target)
- _MINTER_ROLE
- mint()
- Mints tokens to a specified address
- mint()
CoveYearnGaugeFactory
- DEFAULT_ADMIN_ROLE
- setRewardForwarderImplementation(address impl)
- setYsdRewardsGaugeImplementation(address impl)
- setTreasuryMultisig(address multisig)
- setERC20RewardsGaugeImplementation(address impl)
- setGaugeAdmin(address admin)
- _MANAGER_ROLE
- deployCoveGauges()
BaseRewardsGauge
- DEFAULT_ADMIN_ROLE
- pause()
- unpause()
- _MANAGER_ROLE
- addReward()
- setRewardDistributor() *also allowed from current distributor
- _PAUSER_ROLE
- pause()
MiniChefV3
- DEFAULT_ADMIN_ROLE
- rescue()
- pause()
- unpause()
- _TIMELOCK_ROLE
- add()
- Add a new LP to the pool with an allocpoint
- set()
- Update the given pool’s REWARD_TOKEN allocation point and
IRewarder
contract
- Update the given pool’s REWARD_TOKEN allocation point and
- setRewardPerSecond()
- add()
- _PAUSER_ROLE
- pause()
RewardForwarder
- DEFAULT_ADMIN_ROLE
- setTreasury()
- setTreasuryBps()
YearnGaugeStrategy
-
Roles come from BaseStrategy / TokenizedStrategy
-
onlyManagement()
**note: management is only given to one address
— TokenizedStrategy
- setPendingManagement()
- setKeeper()
- setEmergencyAdmin();
- setPerformanceFee();
- setPerformanceFeeRecipient();
- setProfitMaxUnlockTime();
- setHarvestSwapParams()
- setMaxTotalAssets();
- setDYfiRedeemer();
-
onlyKeepers()
** note: this modifier is truly isKeeperOrManagement(), so access can be given to an autonomous keeper and manager at the same time
- report(): Function for keepers to call to harvest and record all profits accrued
- should be called through protected relays if swaps are going to happen (which they will)
- report(): Function for keepers to call to harvest and record all profits accrued
-
onlyEmergencyAuthorized()
**note: this modifier is truly emergencyAdmin OR management
- emergencyAdmin can only be given to one address
- shutdownStrategy()
- Used to shutdown the strategy preventing any further deposits
- _strategyStorage().shutdown = true;
- Can only be called by the current
management
oremergencyAdmin
- Used to shutdown the strategy preventing any further deposits
- emergencyWithdraw()
- To manually withdraw funds from the yield source after a strategy has been shut down
-
onlyManagement()
**note: management is only given to one address
— TokenizedStrategy
CoveYFI
- DEFAULT_ADMIN_ROLE
- rescue()
DYfiRedeemer
- DEFAULT_ADMIN_ROLE
- setSlippage()
- Sets the slippage that should be applied to DYFI -> YFI redeems
- kill()
- _pause()
- setSlippage()
GaugeRewardReceiver
- DEFAULT_ADMIN_ROLE
- rescue()
MasterRegistry
- DEFAULT_ADMIN_ROLE
- grantRole(_MANAGER_ROLE)
- _MANAGER_ROLE
- also given to DEFAULT_ADMIN_ROLE admin
- addRegistry()
- updateRegistry()
StakingDelegateRewards
- DEFAULT_ADMIN_ROLE
- recoverERC20()
- Allows recovery of ERC20 tokens other than the staking and rewards tokens
- recoverERC20()
- _TIMELOCK_ROLE
- setRewardsDuration()
- Sets the duration of the rewards period for a given staking token
- setRewardsDuration()
SwapAndLock
- DEFAULT_ADMIN_ROLE
- setDYfiRedeemer()
- Sets the address of the DYfiRedeemer contract and approves it to spend dYFI
- setDYfiRedeemer()
YearnStakingDelegate
- DEFAULT_ADMIN_ROLE
- rescueYfi()
- rescueDYfi()
- pause()
- unpause()
- addGaugeRewards()
- Allowing new gauge deposits, does not need to be timelock’d
- _TIMELOCK_ROLE
- setSwapAndLock()
- setGaugeRewardSplit()
- setSnapshotDelegate()
- updateGaugeRewards()
- setPerpetualLock()
- earlyUnlock()
- execute()
- _PAUSER_ROLE
- pause()