Platform: Code4rena
Start Date: 03/05/2022
Pot Size: $50,000 USDC
Total HM: 4
Participants: 46
Period: 5 days
Judge: gzeon
Total Solo HM: 2
Id: 117
League: ETH
Rank: 17/46
Findings: 1
Award: $298.58
🌟 Selected for report: 0
🚀 Solo Findings: 0
PriceOracleImplementation.sol#L29-L31
latestAnswer
function is deprecated.
This function does not revert if no answer has been reached but returns zero.
There is no check for stale price and round completeness.
Price can be stale and lead to wrong return value.
int256 usdcPrice = ChainlinkFeed(0x986b5E1e1755e3C2440e960477f25201B0a8bbD4).latestAnswer(); if (usdcPrice <= 0) { return 0; }
Use latestRoundData
instead as well as performing more thorough check on return data. Secondly, update compiler version pragma solidity ^0.5.16
to latest compiler version for better compatibility with modern Chainlink methods.
(uint80 roundID, int256 price, , uint256 timeStamp, uint80 answeredInRound) = oracle.latestRoundData(); require(usdcPrice > 0, "..."); require(answeredInRound >= roundID, "..."); require(timeStamp != 0, "...");
#0 - bunkerfinance-dev
2022-05-07T22:03:00Z
Duplicate of #1