Files
dodo-contractV2/contracts/DODOPrivatePool/impl/DPPOracle/WooOracleAdapter.sol

43 lines
1.3 KiB
Solidity
Raw Normal View History

2022-06-22 14:18:37 +08:00
/*
Copyright 2021 DODO ZOO.
SPDX-License-Identifier: Apache-2.0
*/
pragma solidity 0.6.9;
pragma experimental ABIEncoderV2;
import {IOracle} from "../../intf/IOracle.sol";
interface IWooracle {
function timestamp() external view returns (uint256);
function isFeasible(address base) external view returns (bool);
function getPrice(address base) external view returns (uint256);
function price(address base) external view returns (uint256 priceNow, bool feasible);
}
contract WooOracleAdapter is IOracle {
2022-06-29 10:30:11 +08:00
IWooracle public oracle;
2022-06-22 14:18:37 +08:00
constructor(address oracleAddress) public {
oracle = IWooracle(oracleAddress);
}
function getPrice(address base) external override view returns (uint256 latestPrice,bool isValid,bool isStale,uint256 timestamp) {
latestPrice = oracle.getPrice(base);
isValid = oracle.isFeasible(base);
isStale = !isValid;
timestamp = oracle.timestamp();
return (latestPrice, isValid, isStale, timestamp);
}
function prices(address base) external override view returns (uint256) {
require(oracle.isFeasible(base), "ORACLE NOT FEASIBLE");
2022-06-22 14:18:37 +08:00
return oracle.getPrice(base);
}
function isFeasible(address base) external override view returns (bool) {
return oracle.isFeasible(base);
}
}