Oracle

Retrieves underlying asset prices used for settling options.

setExternalOracle

Defines the underlying asset symbol and oracle address for a pool. Only called by the owner.

function setExternalOracle(string[] calldata symbols, address[] calldata oracles_) external onlyOwner 

Params:

Name

Type

Description

symbols

string

The asset symbol for which to retrieve price feed

oracles_

address

The external oracle address

setFixPrice

Sets the price for an asset.

function setFixPrice(string memory symbol, uint256 ts, uint256 price) external onlyOwner 

Params:

Name

Type

Description

symbol

string The symbol of the asset for which the price is being set

ts

uint256

The timestamp associated with the asset price

price

uint256

The retrieved price of the asset

getPriceByExternal

Gets and computes price from external oracles

Params:

Name

Type

Description

cOracleAddr

address

The contract address for a chainlink price feed

ts

uint256

Timestamp for the asset price

Returns:

Name

Type

Description

price

uint256

The retrieved price

actualTs

uint256

The timestamp at which the price is updated by the oracle

_getPrice

This internal helper function retrieves the underlying price from an external oracle.

Params:

Name

Type

Description

cOracle

AggregatorV3Interface

Oracle interface for retrieving price feed

id

uint80

The roundId using which price is retrieved

ts

uint256

Timestamp for the asset price

decimalDiff

uint256

Precision differences for the number of decimal places

Returns:

Name

Type

Description

finalPrice

uint256

The computed price

finalTs

uint256

The timestamp at which the price is updated by the oracle

getCOracle

Returns the address of the chainlink oracle for an underlying asset

Params:

Name

Type

Description

symbol

string

The symbol of the asset for which the price is being set

Returns:

Type

Description

address

The contract address for a chainlink price feed

_getPhaseIdFromRoundId

Returns the phaseId from the given roundId used by the external oracle

Params:

Name

Type

Description

roundId

uint80

The given roundId

Returns:

Type

Description

uint80

The phaseId for the given round

_getStartRoundId

Returns the start roundId given a phaseId

Params:

Name

Type

Description

phaseId

uint80

The given phaseId

Returns:

Type

Description

uint80

The start roundId

_getPriceInPhase

Helper for getting the

Params:

Name

Type

Description

cOracle

AggregatorV3Interface

Oracle interface for retrieving price feed

start

uint80

The start phaseId

end

uint80

The end phaseId

ts

uint256

Timestamp for the underlying price

decimalDiff

uint256

Precision differences for the number of decimal places

Returns:

Name

Type

Description

Price

uint256

The computed price

actualTs

uint256

The timestamp at which the price is updated by the oracle

Last updated

Was this helpful?