// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "../interfaces/IYTVault.sol"; import "@openzeppelin/contracts/access/Ownable.sol"; contract LendingPriceFeed is Ownable { address public ytVault; address public wusdAddress; error InvalidYTVaultAddress(); error InvalidWUSDAddress(); constructor(address _ytVault, address _wusdAddress) Ownable(msg.sender) { if (_ytVault == address(0)) revert InvalidYTVaultAddress(); if (_wusdAddress == address(0)) revert InvalidWUSDAddress(); ytVault = _ytVault; wusdAddress = _wusdAddress; } function setYTVault(address _ytVault) external onlyOwner { if (_ytVault == address(0)) revert InvalidYTVaultAddress(); ytVault = _ytVault; } function setWUSDAddress(address _wusdAddress) external onlyOwner { if (_wusdAddress == address(0)) revert InvalidWUSDAddress(); wusdAddress = _wusdAddress; } function getPrice(address _token) external view returns (uint256) { if (_token == wusdAddress) { return IYTVault(ytVault).wusdPrice(); } else { return IYTVault(_token).ytPrice(); } } }