From 62c7d15e44e9b0a0032fc69a63a190d8d3078611 Mon Sep 17 00:00:00 2001 From: Rooh Afza <96720500+r0ohafza@users.noreply.github.com> Date: Tue, 18 Oct 2022 12:17:30 -0700 Subject: [PATCH] feat: add crv gauge oracle (#42) * feat: add crv gauge oracle * fix: update solidity version --- src/curve/Stable2CurveGaugeOracle.sol | 43 +++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 src/curve/Stable2CurveGaugeOracle.sol diff --git a/src/curve/Stable2CurveGaugeOracle.sol b/src/curve/Stable2CurveGaugeOracle.sol new file mode 100644 index 0000000..034e684 --- /dev/null +++ b/src/curve/Stable2CurveGaugeOracle.sol @@ -0,0 +1,43 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.17; + +import {IOracle} from "../core/IOracle.sol"; + +interface IGauge { + function lp_token() external view returns (address); +} + +/** + @title Stable 2 curve gauge oracle + @notice Price Oracle for 2 curve stable gauge +*/ +contract Stable2CurveGaugeOracle is IOracle { + + /* -------------------------------------------------------------------------- */ + /* STATE VARIABLES */ + /* -------------------------------------------------------------------------- */ + + /// @notice Oracle Facade + IOracle immutable oracleFacade; + + /* -------------------------------------------------------------------------- */ + /* CONSTRUCTOR */ + /* -------------------------------------------------------------------------- */ + + /** + @notice Contract constructor + @param _oracle Address of oracleFacade + */ + constructor(IOracle _oracle) { + oracleFacade = _oracle; + } + + /* -------------------------------------------------------------------------- */ + /* PUBLIC FUNCTIONS */ + /* -------------------------------------------------------------------------- */ + + /// @inheritdoc IOracle + function getPrice(address token) external view returns (uint) { + return oracleFacade.getPrice(IGauge(token).lp_token()); + } +} \ No newline at end of file