40 lines
1.2 KiB
Solidity
40 lines
1.2 KiB
Solidity
// 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();
|
|
}
|
|
}
|
|
}
|
|
|