// SPDX-License-Identifier: AGPL-3.0 pragma solidity ^0.8.0; import {IPoolAddressesProvider} from './IPoolAddressesProvider.sol'; /** * @title IPriceOracleSentinel * @author Aave * @notice Defines the basic interface for the PriceOracleSentinel */ interface IPriceOracleSentinel { /** * @dev Emitted after the sequencer oracle is updated * @param newSequencerOracle The new sequencer oracle */ event SequencerOracleUpdated(address newSequencerOracle); /** * @dev Emitted after the grace period is updated * @param newGracePeriod The new grace period value */ event GracePeriodUpdated(uint256 newGracePeriod); /** * @notice Returns the PoolAddressesProvider * @return The address of the PoolAddressesProvider contract */ function ADDRESSES_PROVIDER() external view returns (IPoolAddressesProvider); /** * @notice Returns true if the `borrow` operation is allowed. * @dev Operation not allowed when PriceOracle is down or grace period not passed. * @return True if the `borrow` operation is allowed, false otherwise. */ function isBorrowAllowed() external view returns (bool); /** * @notice Returns true if the `liquidation` operation is allowed. * @dev Operation not allowed when PriceOracle is down or grace period not passed. * @return True if the `liquidation` operation is allowed, false otherwise. */ function isLiquidationAllowed() external view returns (bool); /** * @notice Updates the address of the sequencer oracle * @param newSequencerOracle The address of the new Sequencer Oracle to use */ function setSequencerOracle(address newSequencerOracle) external; /** * @notice Updates the duration of the grace period * @param newGracePeriod The value of the new grace period duration */ function setGracePeriod(uint256 newGracePeriod) external; /** * @notice Returns the SequencerOracle * @return The address of the sequencer oracle contract */ function getSequencerOracle() external view returns (address); /** * @notice Returns the grace period * @return The duration of the grace period */ function getGracePeriod() external view returns (uint256); }