51 lines
2.3 KiB
Solidity
51 lines
2.3 KiB
Solidity
// SPDX-License-Identifier: AGPL-3.0-only
|
|
pragma solidity ^0.8.0;
|
|
|
|
/**
|
|
* @title Financial contract facing Oracle interface.
|
|
* @dev Interface used by financial contracts to interact with the Oracle. Voters will use a different interface.
|
|
*/
|
|
abstract contract OracleAncillaryInterface {
|
|
/**
|
|
* @notice Enqueues a request (if a request isn't already present) for the given `identifier`, `time` pair.
|
|
* @dev Time must be in the past and the identifier must be supported.
|
|
* @param identifier uniquely identifies the price requested. eg BTC/USD (encoded as bytes32) could be requested.
|
|
* @param ancillaryData arbitrary data appended to a price request to give the voters more info from the caller.
|
|
* @param time unix timestamp for the price request.
|
|
*/
|
|
|
|
function requestPrice(
|
|
bytes32 identifier,
|
|
uint256 time,
|
|
bytes memory ancillaryData
|
|
) public virtual;
|
|
|
|
/**
|
|
* @notice Whether the price for `identifier` and `time` is available.
|
|
* @dev Time must be in the past and the identifier must be supported.
|
|
* @param identifier uniquely identifies the price requested. eg BTC/USD (encoded as bytes32) could be requested.
|
|
* @param time unix timestamp for the price request.
|
|
* @param ancillaryData arbitrary data appended to a price request to give the voters more info from the caller.
|
|
* @return bool if the DVM has resolved to a price for the given identifier and timestamp.
|
|
*/
|
|
function hasPrice(
|
|
bytes32 identifier,
|
|
uint256 time,
|
|
bytes memory ancillaryData
|
|
) public view virtual returns (bool);
|
|
|
|
/**
|
|
* @notice Gets the price for `identifier` and `time` if it has already been requested and resolved.
|
|
* @dev If the price is not available, the method reverts.
|
|
* @param identifier uniquely identifies the price requested. eg BTC/USD (encoded as bytes32) could be requested.
|
|
* @param time unix timestamp for the price request.
|
|
* @param ancillaryData arbitrary data appended to a price request to give the voters more info from the caller.
|
|
* @return int256 representing the resolved price for the given identifier and timestamp.
|
|
*/
|
|
|
|
function getPrice(
|
|
bytes32 identifier,
|
|
uint256 time,
|
|
bytes memory ancillaryData
|
|
) public view virtual returns (int256);
|
|
} |