AdminControls
https://github.com/Into-the-Fathom/fathom-stablecoin-smart-contracts/blob/master/contracts/main/stablecoin-core/AdminControls.sol
The AdminControls contract provides management capabilities for the Fathom FXD Protocol. It is designed to configure and control core components of the system, allowing administrative actions such as pausing and unpausing protocol operations, setting key contract addresses, and managing permissions.
Administrative role can be assigned to the Governance or Multisig account.
State Variables:
bookKeeper (
address public): Stores the address of theBookKeepercontract which manages the core accounting logic for the protocol.liquidationEngine (
address public): Holds the address of theLiquidationEnginecontract responsible for handling the liquidation processes.priceOracle (
address public): References thePriceOraclecontract which provides price feeds for the assets.positionManager (
address public): Points to thePositionManagercontract that manages user positions.systemDebtEngine (
address public): Contains the address of theSystemDebtEnginecontract managing the system’s debt situations.flashMintModule (
address public): Holds the address of theFlashMintModulefor flash loan functionalities.stablecoinAdapter (
address public): References theStablecoinAdapterwhich handles interactions related to the FXD stablecoin.
Functions:
pauseProtocol (
external): Pauses all core components of the protocol to halt operations.unpauseProtocol (
external): Resumes operations of all core components after being paused.setBookKeeper (
external, address _bookKeeper): Updates the address of theBookKeepercontract.setPositionManager (
external, address _positionManager): Updates the address of thePositionManagercontract.setLiquidationEngine (
external, address _liquidationEngine): Updates the address of theLiquidationEnginecontract.setSystemDebtEngine (
external, address _systemDebtEngine): Updates the address of theSystemDebtEnginecontract.setFlashMintModule (
external, address _flashMintModule): Updates the address of theFlashMintModulecontract.setPriceOracle (
external, address _priceOracle): Updates the address of thePriceOraclecontract.setStablecoinAdapter (
external, address _stablecoinAdapter): Updates the address of theStablecoinAdaptercontract.
Events:
LogPauseProtocol (
event): Emitted when the protocol is paused.LogUnpauseProtocol (
event): Emitted when the protocol is unpaused.LogSetBookKeeper (
event, address indexed newAddress): Emitted when theBookKeeperaddress is updated.LogSetPositionManager (
event, address indexed newAddress): Emitted when thePositionManageraddress is updated.LogSetLiquidationEngine (
event, address indexed newAddress): Emitted when theLiquidationEngineaddress is updated.LogSetSystemDebtEngine (
event, address indexed newAddress): Emitted when theSystemDebtEngineaddress is updated.LogSetFlashMintModule (
event, address indexed newAddress): Emitted when theFlashMintModuleaddress is updated.LogSetPriceOracle (
event, address indexed newAddress): Emitted when thePriceOracleaddress is updated.LogSetStablecoinAdapter (
event, address indexed newAddress): Emitted when theStablecoinAdapteraddress is updated.
Last updated
Was this helpful?