Tetu EOA Protection
Tetu has a central governance contract - Controller under control of MultiSig Wallet with public signers.
However, for reducing EOA effect we implement different levels of access to our contracts

Level 1 - Strict access

We have 48h time lock for any actions on this layer.
Protection logic implemented in a special contract - Announcer
Announcer contains scheduling for time-locked operations.
For each function announce call twice forbidden.
Function types under time-lock control:
    Any contract address changes in Controller
    Any ratio changes (currently Profit Sharing and Fund ratios)
    Any token movements from contracts to MultiSig Wallet
    TETU mint operation
    Proxy contract upgrades
    Strategy change for a vault
The only controller has access to this type of function and can call it only after the time-lock period.

Level 2 - Governance actions

On this layer, we will not use time-lock for the reason of not critical functionality or urgent actions.
Controller or Governance can call it immediately:


    Remove vaults or strategies from the registered lists


    Add/remove Reward Distributor addresses
    Add/remove HardWorker addresses
    Add/remove from Whitelist
    Register Vault/Strategy


    Set conversation path for rewards


    Emergency exit from external project and pause investing
    Continue investing
    Move money from strategy to vault
    Invest money from strategy to external project


Only MintHelper has access to our TETU token contract and this address is unchangeable.
    Setup Dev Funds addresses and ratios for next mints


    Change activity status
    Deactivated vault can't do HardWork and accept Deposits. Withdraw allowed.
    Call DoHardWork
    Add/Remove reward tokens
    Rebalance vault (withdraw all from strategy to vault and invest again)
    Withdraw all from strategy to Vault


    Move tokens from LiquidityBalancer to Controller contract
    Set target Price/TVL
    Set Router
    Set Targets' Update ratios


    Disperse weekly emission
    Move tokens from NotifyHelper to Controller


    Add worker or change the worker wallet address
    Change any worker settings except worked hours
    Pay salary
    Set Price Calculator address
    Move tokens from PayrollClerk to Controller


    Change any settings

Level 3 - HardWorkers and Reward distributors actions

Any actions allowed for HardWorker/Distributor also allowed for Controller and Governance
    DoHardWork for HardWorker
    Call LiquidityBalancer for HardWorker
    Disperse rewards for vaults for Reward Distributor
Last modified 2mo ago