LogoLogo
  • Getting Started
    • Overview
    • Whitepaper V4
    • FAQ
  • What's New?
    • Isolated Pools
    • Reward Distributor
    • Peg Stability Module
    • Automatic Income Allocation
    • Token Converter
    • Venus Prime
    • Stable Rate Borrowing
  • Governance
    • VIPs
    • Tokenomics
    • Community Forum
  • Risk
    • Resilient Price Oracle
    • Interest Rate Model
    • Risk Fund and Shortfall Handling
    • Risk Management
  • Tokens
    • XVS
    • VAI
      • VAIController
      • VAIUnitroller
  • Guides
    • Venus interface
    • Supplying and borrowing
    • Liquidations
    • Governance
      • Submitting a VIP
      • Delegating & Voting
    • Vaults
    • Protocol Math
    • XVS Bridge
    • Borrowing VAI
    • Gasless Transactions on zkSync
  • Technical reference
    • Contracts Overview
    • Technical articles
      • Automatic income allocation
      • Capped Oracles
      • Contributing
      • Diamond Comptroller in the Core pool
      • Native Token Gateway
      • Omnichain Governance
      • Prime tokens
      • Shortfall and auctions
      • Token Converters
      • Two Kinks Interest Rate Curve
      • XVS Bridge
    • Core Pool
      • Comptroller
        • ComptrollerLens
        • Diamond
          • Diamond
          • DiamondConsolidated
          • Facets
            • MarketFacet
            • PolicyFacet
            • RewardFacet
            • SetterFacet
      • VToken
      • Prime
        • Prime token
        • Prime liquidity provider
        • Prime storage
      • Vaults
        • XVS
          • XVSVault
          • XVSVaultProxy
          • XVSStore
          • XVSVaultTreasury
        • VAI
          • VAIVault
          • VAIVaultProxy
      • InterestRateModels
        • JumpModel
        • TwoKinksInterestRateModel
        • WhitePaperModel
        • InterestRateModelLens
      • Liquidator
      • VTreasury
      • VenusLens
      • PSM
      • VBNBAdmin
    • Isolated Pools
      • Comptroller
        • Comptroller
        • ComptrollerStorage
      • VToken
        • VToken
        • VTokenInterfaces
      • NativeTokenGateway
      • Pool Registry
        • PoolRegistry
        • PoolRegistryInterface
      • RewardsDistributor
      • PoolLens
      • Interest Rate Models
        • InterestRateModel
        • BaseJumpRateModelV2
        • JumpRateModelV2
        • TwoKinksInterestRateModel
        • WhitePaperInterestRateModel
      • Risk Fund and Shortfall
        • Shortfall
        • ProtocolShareReserve
        • RiskFund
        • RiskFundStorage
      • Utility
        • MaxLoopsLimitHelper
        • ErrorReporter
        • ExponentialNoError
    • Oracle
      • ResilientOracle
      • BoundValidator
      • Sources
        • ChainlinkOracle
        • SequencerChainlinkOracle
        • BinanceOracle
      • Correlated token oracles
        • AnkrBNBOracle
        • CorrelatedTokenOracle
        • BNBxOracle
        • OneJumpOracle
        • PendleOracle
        • SFraxOracle
        • SFrxETHOracle
        • SlisBNBOracle
        • StkBNBOracle
        • WBETHOracle
        • WeETHOracle
        • WstETHOracle
    • Governance
      • AccessControlManager
      • GovernorBravoDelegate
      • AccessControlledV5
      • GovernorBravoDelegator
      • Timelock
      • GovernorBravoInterfaces
      • AccessControlledV8
      • BaseOmnichainControllerSrc
      • BaseOmnichainControllerDest
      • OmnichainProposalSender
      • OmnichainGovernanceExecutor
      • OmnichainExecutorOwner
    • Token Converter
      • AbstractTokenConverter
      • RiskFundConverter
      • SingleTokenConverter
      • ConverterNetwork
    • XVS Bridge
      • BaseXVSProxyOFT
      • XVSProxyOFTSrc
      • XVSProxyOFTDest
      • XVSBridgeAdmin
      • XVS
      • TokenController
  • Deployed Contracts
    • Markets
    • Funds
    • Oracles
    • Governance
    • XVS Omnichain
    • Token Converters
  • Services
    • API
    • Subgraphs
  • Links
    • Security & Audits
    • Resources
    • Community Resources
    • Brand kit
Powered by GitBook
On this page
  • ChainlinkOracle
  • Solidity API
Export as PDF
  1. Technical reference
  2. Oracle
  3. Sources

ChainlinkOracle

ChainlinkOracle

This oracle fetches prices of assets from the Chainlink oracle.

Solidity API

struct TokenConfig {
  address asset;
  address feed;
  uint256 maxStalePeriod;
}

NATIVE_TOKEN_ADDR

Set this as asset address for native token on each chain. This is the underlying address for vBNB on BNB chain or an underlying asset for a native market on any chain.

address NATIVE_TOKEN_ADDR

prices

Manually set an override price, useful under extenuating conditions such as price feed failure

mapping(address => uint256) prices

tokenConfigs

Token config by assets

mapping(address => struct ChainlinkOracle.TokenConfig) tokenConfigs

constructor

Constructor for the implementation contract.

constructor() public

initialize

Initializes the owner of the contract

function initialize(address accessControlManager_) external

Parameters

Name
Type
Description

accessControlManager_

address

Address of the access control manager contract


setDirectPrice

Manually set the price of a given asset

function setDirectPrice(address asset, uint256 price) external

Parameters

Name
Type
Description

asset

address

Asset address

price

uint256

Asset price in 18 decimals

📅 Events

  • Emits PricePosted event on succesfully setup of asset price

⛔️ Access Requirements

  • Only Governance


setTokenConfigs

Add multiple token configs at the same time

function setTokenConfigs(struct ChainlinkOracle.TokenConfig[] tokenConfigs_) external

Parameters

Name
Type
Description

tokenConfigs_

struct ChainlinkOracle.TokenConfig[]

config array

⛔️ Access Requirements

  • Only Governance

❌ Errors

  • Zero length error thrown, if length of the array in parameter is 0


setTokenConfig

Add single token config. asset & feed cannot be null addresses and maxStalePeriod must be positive

function setTokenConfig(struct ChainlinkOracle.TokenConfig tokenConfig) public

Parameters

Name
Type
Description

tokenConfig

struct ChainlinkOracle.TokenConfig

Token config struct

📅 Events

  • Emits TokenConfigAdded event on succesfully setting of the token config

⛔️ Access Requirements

  • Only Governance

❌ Errors

  • NotNullAddress error is thrown if asset address is null

  • NotNullAddress error is thrown if token feed address is null

  • Range error is thrown if maxStale period of token is not greater than zero


getPrice

Gets the price of a asset from the chainlink oracle

function getPrice(address asset) public view virtual returns (uint256)

Parameters

Name
Type
Description

asset

address

Address of the asset

Return Values

Name
Type
Description

[0]

uint256

Price in USD from Chainlink or a manually set price for the asset


Last updated 1 year ago