`Chainlink.latestRoundData()` may return stale results
The `_getChainlinkResponse()` function is used to get the price of tokens, the problem is that the function does not check for stale results.\\nThe `ChainlinkOracle._getChainlinkResponse()` function is used to get latest Chainlink response.\\n```\\nfunction _getChainlinkResponse(address _feed) internal view returns (ChainlinkResponse memory) {\\n    ChainlinkResponse memory _chainlinkResponse;\\n\\n    _chainlinkResponse.decimals = AggregatorV3Interface(_feed).decimals();\\n\\n    (\\n      uint80 _latestRoundId,\\n      int256 _latestAnswer,\\n      /* uint256 _startedAt */,\\n      uint256 _latestTimestamp,\\n      /* uint80 _answeredInRound */\\n    ) = AggregatorV3Interface(_feed).latestRoundData();\\n\\n    _chainlinkResponse.roundId = _latestRoundId;\\n    _chainlinkResponse.answer = _latestAnswer;\\n    _chainlinkResponse.timestamp = _latestTimestamp;\\n    _chainlinkResponse.success = true;\\n\\n    return _chainlinkResponse;\\n  }\\n```\\n\\nThe problem is that there is not check for stale data. There are some reasons that the price feed can become stale.
Read the updatedAt return value from the `Chainlink.latestRoundData()` function and verify that is not older than than specific time tolerance.\\n```\\nrequire(block.timestamp - udpatedData < toleranceTime, "stale price");\\n```\\n
Since the token prices are used in many contracts, stale data could be catastrophic for the project.
```\\nfunction _getChainlinkResponse(address _feed) internal view returns (ChainlinkResponse memory) {\\n    ChainlinkResponse memory _chainlinkResponse;\\n\\n    _chainlinkResponse.decimals = AggregatorV3Interface(_feed).decimals();\\n\\n    (\\n      uint80 _latestRoundId,\\n      int256 _latestAnswer,\\n      /* uint256 _startedAt */,\\n      uint256 _latestTimestamp,\\n      /* uint80 _answeredInRound */\\n    ) = AggregatorV3Interface(_feed).latestRoundData();\\n\\n    _chainlinkResponse.roundId = _latestRoundId;\\n    _chainlinkResponse.answer = _latestAnswer;\\n    _chainlinkResponse.timestamp = _latestTimestamp;\\n    _chainlinkResponse.success = true;\\n\\n    return _chainlinkResponse;\\n  }\\n```\\n