// SPDX-License-Identifier: MIT pragma solidity ^0.8.19; interface IPrice { function latestAnswer() external view returns (int256); } contract OracleVault { IPrice public oracle; uint256 public collateral; constructor(address _oracle) { oracle = IPrice(_oracle); } function borrow(uint256 amount) external { uint256 spot = uint256(oracle.latestAnswer()); // no staleness/validation require(collateral * spot >= amount * 1e18, "not enough collateral"); payable(msg.sender).transfer(amount); } receive() external payable { collateral += msg.value; } }