BASE_TOKENS(also simply called
BASEin some contracts): this base is equal to
10^18and is the base used for the tokens of the protocol.
BASE_PARAMS: this is the base used for all the parameters and fees of the protocol. This base is equal to
10^9. For instance, if fees taken on a transaction are
BASE_PARAMS / 100, then this means that
1%transaction fees have been taken on the transaction. The reason for using a different base for parameters is to be able to store them as
uint64rather than as
uint256to avoid overflows.
BASE_INTEREST: it is equal to
10^27and is used for elements on which we need a high precision like interest rate computation
BASE_TOKENSchosen when computing numbers, it has been decided that all the agTokens (stablecoins of Angle) would involve 18 decimals.
USDCcollateral used for the
sanUSDC_EURare in the base of
USDCand the tokens have
decimals = 6.
TransparentUpgradeableProxycontracts of OpenZeppelin. The code of most contracts of the protocol therefore corresponds to OpenZeppelin proxies pointing to an implementation.
Corecontract, while in the Borrowing Module it takes place at the level of the
GOVERNOR_ROLEis the most powerful one of the protocol, it can be used to change a multitude of protocol parameters unique to each contract (fees, oracle windows, ...), as well as to grant and revoke roles in some contracts. It can also be used to upgrade smart contracts through the
GOVERNOR_ROLEcannot do anything it wants on the protocol. In particular, in the Core Module for instance, the
GOVERNOR_ROLEcannot mint or burn stablecoins and sanTokens, it cannot open or close perpetual positions, and it cannot withdraw more than the surplus of the protocol.
GOVERNOR_ROLEis simply to push the button and execute/implement decisions that were voted by veANGLE holders (ANGLE holders which locked their token).
AngleMaster) to get more flexibility when it comes to implementing things like Olympus Pro.
AngleMastercontract. This contract is a 2/3 Gnosis multisig controlled by distinct Core Team members of the protocol (the 3 co-founders of the project). The idea of this multisig is that it has control of funds to be sent to the vesting contract, and it holds the reserves of the funds that are kept for future strategic partners of the protocol
Vestingcontract. In order to reduce the exposure of the funds potentially at risk in this contrat (this contract has been forked from Maker's
DssVest), not all the 18% of the tokens that have to be distributed to the team + early backers + advisors have been initially put in this contract. The `AngleMaster` will regularly transfer tokens to this contract.
GUARDIAN_ROLEis designed to enable quick feature shutdowns and allow the protocol to react rapidly to unforeseen events. It can for instance shut off some protocol functionalities.
GUARDIAN_ROLE, and this role does not give access to any user funds. On a side note, all the actions that can be taken by the
GUARDIAN_ROLEcan also be taken by the
Routerand of all the governance smart contracts.