😀
Nexus Market
  • Introduction
    • 👋Hi !
    • Overview
      • Start BUIDLing
  • Links
    • Money Market App
    • Github
    • Telegram
  • Concepts
    • At a Glance
      • Supply
      • Borrow
      • Repay
      • Withdraw
      • Liquidation
      • Flash Loan
      • Risks
    • Protocol
      • Liquidity Pool
      • Reserve
      • Oracle
      • Governance
      • Incentives
      • Safety Module
  • LST as Collateral
  • Coming Soon
  • Guides
    • User Flows
    • Follow-on Steps
  • Developers
    • Smart Contract
      • Pool
      • L2 Pool
      • Wrapped Token Gateway
      • View Contracts
      • Incentives
      • Tokenisation
      • Interest Rate Strategy
      • Access Control Manager
      • Oracles
      • PoolAddressesProvider
      • Pool Configurator
      • Switch Adapters
    • Safety Module
    • Governance
    • Flash Loan
      • Premium Distribution
      • Example Calculation
  • Credit Delegation
  • Resources
    • Web3
    • Glossary
    • Contracts Dashboard
      • Ethereum Sepolia
      • Base Sepolia
      • BSC Chapel
    • Parameters Dashboard
    • Access Control Dashboard
    • FAQ
      • General
      • Risk
      • Supplying and Earning
      • Borrowing
      • Liquidations
      • Governance
      • Safety Module
      • Developers
      • Other Features
      • Brand-related
Powered by GitBook
On this page
  • Write Methods
  • setAssetSources
  • setFallbackOracle
  • View Methods
  • getAssetPrice
  • getAssetsPrices
  • getSourceOfAsset
  • PriceOracleSentinel
  • Write Methods
  • View Methods
  • isBorrowAllowed
  • isLiquidationAllowed
  • getSequencerOracle
  • getGracePeriod

Was this helpful?

  1. Developers
  2. Smart Contract

Oracles

Contract to get asset prices and manage price sources.

The source code is available on GitHub.

This contract is owned by the Nexus Governance.

Write Methods

setAssetSources

function setAssetSources(address[] calldata assets, address[] calldata sources) external override onlyAssetListingOrPoolAdmins

Sets the price sources for given list of assets.

This method can only be called by a POOL_ADMIN or ASSET_LISTING_ADMIN. Please look at the ACLManager contract for further details on system roles.

Input Parameters:

Name
Type
Description

assets

address[]

The addresses of the assets for which source is being set

sources

address[]

The address of the source of each asset. Length of assets and sources array should be same

setFallbackOracle

function setFallbackOracle(address fallbackOracle) external override onlyAssetListingOrPoolAdmins

Sets/updates the fallbackOracle.

This method can only be called by a POOL_ADMIN or ASSET_LISTING_ADMIN. Please look at the ACLManager contract for further details on system roles.

Input Parameters:

Name
Type
Description

fallbackOracle

address

The address of the fallback oracle

View Methods

getAssetPrice

function getAssetPrice(address asset) public view override returns (uint256)

Returns the price of the supported asset in BASE_CURRENCY of the Nexus Market in wei.

Input Parameters:

Name
Type
Description

asset

address

The address of the asset

Return Values:

Type
Description

uint256

The price of the asset in BASE_CURRENCY of the Nexus market in wei

getAssetsPrices

function getAssetsPrices(address[] calldata assets) external view override returns (uint256[] memory)

Returns a list of prices from a list of the supported assets addresses in BASE_CURRENCY of the Nexus Market. All prices are in wei.

Input Parameters:

Name
Type
Description

assets

address[]

The list of assets addresses for which price is being queried

Return Values:

uint256[]

The prices of the given assets in BASE_CURRENCY of the Nexus market in wei

getSourceOfAsset

function getSourceOfAsset(address asset) external view override returns (address)

Returns the address of the price source for an asset address.

Input Parameters:

Name
Type
Description

asset

address

The address of the asset

Return Values:

Type
Description

address

The address of the source

getFallbackOracle

function getFallbackOracle() external view returns (address)

Returns the address of the fallback oracle.

Return Values:

Type
Description

address

The address of the fallback oracle

PriceOracleSentinel

The PriceOracleSentinel contract validates if the operations are allowed depending on the PriceOracle health.

This feature introduces a grace period for liquidations and disables borrowing under specific circumstances.

This feature has been specifically designed for L2s to handle eventual downtime of the sequencer (but can be extended to handle other cases, even on L1s, in the future).

Once the PriceOracle gets up after an outage or downtime, users can make their positions healthy during a grace period. The PriceOracle is considered healthy once its completely up and the grace period has passed.

The source code is available on GitHub.

Write Methods

setSequencerOracle

function setSequencerOracle(address newSequencerOracle) external onlyPoolAdmin

Updates the address of the sequencer oracle.

This method can only be called by PoolAdmin.

Input Parameters:

Name
Type
Description

newSequencerOracle

address

The address of the new Sequencer Oracle to be set

setGracePeriod

function setGracePeriod(uint256 newGracePeriod) public onlyRiskOrPoolAdmins

Updates the duration of the grace period.

Can only be called by PoolAdmin or RiskAdmin.

Input Parameters:

Name
Type
Description

newGracePeriod

uint256

The duration of new grace period in seconds

View Methods

isBorrowAllowed

function isBorrowAllowed() external view override returns (bool)

Returns true if the borrow operation is allowed. The operation is not allowed when PriceOracle is down or the grace period has not passed.

Return Values:

Type
Description

bool

Returns true if the borrow operation is allowed (the PriceOracle is up and grace period has passed), false otherwise

isLiquidationAllowed

function isLiquidationAllowed() external view override returns (bool)

Returns true if the liquidation operation is allowed. The operation is not allowed when PriceOracle is down or the grace period has not passed.

Return Values:

Type
Description

bool

Returns true if the liquidation operation is allowed (the PriceOracle is up and grace period has passed), false otherwise

getSequencerOracle

function getSequencerOracle() external view returns (address)

Returns the SequencerOracle.

Return Values:

Type
Description

address

The address of the sequencer oracle contract

getGracePeriod

function getGracePeriod() external view returns (uint256)

Returns the grace period.

Return Values:

Type
Description

uint256

The duration of the grace period in seconds

PreviousAccess Control ManagerNextPoolAddressesProvider

Last updated 22 days ago

Was this helpful?

This method can only be called by the Role Admin, specified by Nexus Governance, responsible for managing the role.

POOL_ADMIN