Calls to Oracles don't check for stale prices
Calls to Oracles don't check for stale prices.\\nNone of the oracle calls check for stale prices, for example StableOracleDAI.getPriceUSD():\\n```\\n(, int256 price, , , ) = priceFeedDAIETH.latestRoundData();\\n\\nreturn\\n    (wethPriceUSD * 1e18) /\\n    ((DAIWethPrice + uint256(price) * 1e10) / 2);\\n```\\n
Read the `updatedAt` parameter from the calls to `latestRoundData()` and verify that it isn't older than a set amount, eg:\\n```\\nif (updatedAt < block.timestamp - 60 * 60 /* 1 hour */) {\\n   revert("stale price feed");\\n}\\n```\\n
Oracle price feeds can become stale due to a variety of reasons. Using a stale price will result in incorrect calculations in most of the key functionality of USSD & USSDRebalancer contracts.
```\\n(, int256 price, , , ) = priceFeedDAIETH.latestRoundData();\\n\\nreturn\\n    (wethPriceUSD * 1e18) /\\n    ((DAIWethPrice + uint256(price) * 1e10) / 2);\\n```\\n