fluid-contracts-public/contracts/oracle/oracles/pendleOracle.sol

49 lines
1.6 KiB
Solidity
Raw Permalink Normal View History

// SPDX-License-Identifier: BUSL-1.1
pragma solidity 0.8.21;
import { FluidOracle } from "../fluidOracle.sol";
import { IPendleMarketV3 } from "../interfaces/external/IPendleMarketV3.sol";
import { IPendlePYLpOracle } from "../interfaces/external/IPendlePYLpOracle.sol";
import { PendleOracleImpl } from "../implementations/pendleOracleImpl.sol";
/// @title PendleOracle
/// @notice Gets the exchange rate between Pendle and the underlying asset for the Pendle Market.
contract PendleOracle is FluidOracle, PendleOracleImpl {
constructor(
string memory infoName_,
IPendlePYLpOracle pendleOracle_,
IPendleMarketV3 pendleMarket_,
uint32 twapDuration_,
uint256 maxExpectedBorrowRate_,
uint256 minYieldRate_,
uint256 maxYieldRate_,
uint8 debtTokenDecimals_
)
PendleOracleImpl(
pendleOracle_,
pendleMarket_,
twapDuration_,
maxExpectedBorrowRate_,
minYieldRate_,
maxYieldRate_,
debtTokenDecimals_
)
FluidOracle(infoName_)
{}
/// @inheritdoc FluidOracle
function getExchangeRateOperate() public view override returns (uint256 exchangeRate_) {
return _getPendleExchangeRateOperate();
}
/// @inheritdoc FluidOracle
function getExchangeRateLiquidate() external view override returns (uint256 exchangeRate_) {
return _getPendleExchangeRateLiquidate();
}
/// @inheritdoc FluidOracle
function getExchangeRate() external view override returns (uint256 exchangeRate_) {
return _getPendleExchangeRateOperate();
}
}