Essence Finance
    • Introduction
  • Protocol
    • Peg Stabilty
    • Collateralization
    • Decentralization
  • TOKENOMICS
    • ZEN
    • Distribution
    • Stake
  • Protocol Controlled Value
    • Protocol Controlled Value (PCV)
    • PCV Management
    • PCV Deposits
  • Governance
    • Essence DAO
    • Governance Phases
    • Access Control
    • Roles
  • Smart Contracts
    • Contract Addresses
    • Audits
  • Development
    • Smart Contracts API
      • Chi
        • IChi
      • Minter
        • IPCVEquityMinter
        • PCVEquityMinter
        • RateLimitedMinter
      • Core
        • Core
        • ICore
        • IPermissions
        • IPermissionsRead
        • Permissions
        • ZenRoles
      • Dao
        • Governor
          • EssenceDAO
        • Timelock
          • EssenceDAOTimelock
          • OptimisticTimelock
          • Timelock
      • External
        • Decimal
        • WETH9
      • Libs
        • CoreRefPauseableLib
        • UintArrayOps
      • Oracle
        • ChainlinkOracleWrapper
        • CompositeOracle
        • ConstantOracle
        • ICollateralizationOracle
        • ICollateralizationOracleWrapper
      • Pcv
        • IPCVDeposit
        • IPCVDepositBalances
        • IPCVGuardian
        • IPCVSwapper
        • PCVDeposit
        • PCVGuardian
      • Peg
        • FixedPricePSM
        • IPegStabilityModule
        • IPriceBound
        • IPSMRouter
        • PegStabilityModule
        • PriceBoundPSM
        • PSMRouter
      • Refs
        • CoreRef
        • ICoreRef
        • IOracleRef
        • IUniRef
        • OracleRef
        • UniRef
      • Timelocks
        • ITimelockedDelegator
        • ITokenTimelock
        • LinearTimelockedDelegator
        • LinearTokenTimelock
        • QuadraticTimelockedDelegator
        • QuadraticTimelockedSubdelegator
        • QuadraticTokenTimelock
        • TimelockedDelegator
        • TokenTimelock
      • Utils
        • RateLimited
      • Zen
        • IZenMinter
        • Zen
        • ZenMinter
Powered by GitBook
On this page
  • Functions
  • constructor
  • setOracle
  • setDoInvert
  • setDecimalsNormalizer
  • setBackupOracle
  • invert
  • updateOracle
  • readOracle
  • _setOracle
  • _setBackupOracle
  • _setDoInvert
  • _setDecimalsNormalizer
  • _setDecimalsNormalizerFromToken
  1. Development
  2. Smart Contracts API
  3. Refs

OracleRef

defines some utilities around interacting with the referenced oracle

Functions

constructor

function constructor(
    address _core,
    address _oracle,
    address _backupOracle,
    int256 _decimalsNormalizer,
    bool _doInvert
) internal

OracleRef constructor

Parameters

Name
Type
Description

_core

address

Chi Core to reference

_oracle

address

oracle to reference

_backupOracle

address

backup oracle to reference

_decimalsNormalizer

int256

number of decimals to normalize the oracle feed if necessary

_doInvert

bool

invert the oracle price if this flag is on

setOracle

function setOracle(
    address newOracle
) external

sets the referenced oracle

Parameters

Name
Type
Description

newOracle

address

the new oracle to reference

setDoInvert

function setDoInvert(
    bool newDoInvert
) external

sets the flag for whether to invert or not

Parameters

Name
Type
Description

newDoInvert

bool

the new flag for whether to invert

setDecimalsNormalizer

function setDecimalsNormalizer(
    int256 newDecimalsNormalizer
) external

sets the new decimalsNormalizer

Parameters

Name
Type
Description

newDecimalsNormalizer

int256

the new decimalsNormalizer

setBackupOracle

function setBackupOracle(
    address newBackupOracle
) external

sets the referenced backup oracle

Parameters

Name
Type
Description

newBackupOracle

address

the new backup oracle to reference

invert

function invert(
    struct Decimal.D256 price
) public returns (struct Decimal.D256)

invert a peg price

the inverted peg would be X per CHI

Parameters

Name
Type
Description

price

struct Decimal.D256

the peg price to invert

Return Values

Name
Type
Description

[0]

struct Decimal.D256

the inverted peg as a Decimal

updateOracle

function updateOracle() public

updates the referenced oracle

readOracle

function readOracle() public returns (struct Decimal.D256)

the peg price of the referenced oracle

the peg is defined as CHI per X with X being ETH, dollars, etc

Return Values

Name
Type
Description

[0]

struct Decimal.D256

the peg as a Decimal

_setOracle

function _setOracle(
    address newOracle
) internal

Parameters

Name
Type
Description

newOracle

address

_setBackupOracle

function _setBackupOracle(
    address newBackupOracle
) internal

Parameters

Name
Type
Description

newBackupOracle

address

_setDoInvert

function _setDoInvert(
    bool newDoInvert
) internal

Parameters

Name
Type
Description

newDoInvert

bool

_setDecimalsNormalizer

function _setDecimalsNormalizer(
    int256 newDecimalsNormalizer
) internal

Parameters

Name
Type
Description

newDecimalsNormalizer

int256

_setDecimalsNormalizerFromToken

function _setDecimalsNormalizerFromToken(
    address token
) internal

Parameters

Name
Type
Description

token

address

PreviousIUniRefNextUniRef

Last updated 1 year ago