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:

  1. bookKeeper (address public): Stores the address of the BookKeeper contract which manages the core accounting logic for the protocol.

  2. liquidationEngine (address public): Holds the address of the LiquidationEngine contract responsible for handling the liquidation processes.

  3. priceOracle (address public): References the PriceOracle contract which provides price feeds for the assets.

  4. positionManager (address public): Points to the PositionManager contract that manages user positions.

  5. systemDebtEngine (address public): Contains the address of the SystemDebtEngine contract managing the system’s debt situations.

  6. flashMintModule (address public): Holds the address of the FlashMintModule for flash loan functionalities.

  7. stablecoinAdapter (address public): References the StablecoinAdapter which 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 the BookKeeper contract.

  • setPositionManager (external, address _positionManager): Updates the address of the PositionManager contract.

  • setLiquidationEngine (external, address _liquidationEngine): Updates the address of the LiquidationEngine contract.

  • setSystemDebtEngine (external, address _systemDebtEngine): Updates the address of the SystemDebtEngine contract.

  • setFlashMintModule (external, address _flashMintModule): Updates the address of the FlashMintModule contract.

  • setPriceOracle (external, address _priceOracle): Updates the address of the PriceOracle contract.

  • setStablecoinAdapter (external, address _stablecoinAdapter): Updates the address of the StablecoinAdapter contract.

Events:

  • LogPauseProtocol (event): Emitted when the protocol is paused.

  • LogUnpauseProtocol (event): Emitted when the protocol is unpaused.

  • LogSetBookKeeper (event, address indexed newAddress): Emitted when the BookKeeper address is updated.

  • LogSetPositionManager (event, address indexed newAddress): Emitted when the PositionManager address is updated.

  • LogSetLiquidationEngine (event, address indexed newAddress): Emitted when the LiquidationEngine address is updated.

  • LogSetSystemDebtEngine (event, address indexed newAddress): Emitted when the SystemDebtEngine address is updated.

  • LogSetFlashMintModule (event, address indexed newAddress): Emitted when the FlashMintModule address is updated.

  • LogSetPriceOracle (event, address indexed newAddress): Emitted when the PriceOracle address is updated.

  • LogSetStablecoinAdapter (event, address indexed newAddress): Emitted when the StablecoinAdapter address is updated.

Last updated

Copyright© Fathom App 2024.