Steadefi

Steadefi
DeFiHardhatFoundryOracle
35,000 USDC
View results
Submission Details
Severity: low
Invalid

`ChainlinkARBOracle::addTokenMaxDeviation(),addTokenMaxDelay(),addTokenPriceFeed()` wastes gas

Summary

We can combine the repeated checks in ChainlinkARBOracle::addTokenMaxDeviation(),addTokenMaxDelay(), ChainlinkARBOracle::addTokenPriceFeed() and also for ChainlinkARBOracle::getMarketTokenInfo into a single check.

Vulnerability Details

In ChainlinkARBOracle::addTokenMaxDeviation()

if (token == address(0)) revert Errors.ZeroAddressNotAllowed();
if (feeds[token] == address(0)) revert Errors.NoTokenPriceFeedAvailable();

In ChainlinkARBOracle::addTokenMaxDelay()

if (token == address(0)) revert Errors.ZeroAddressNotAllowed();
if (feeds[token] == address(0)) revert Errors.NoTokenPriceFeedAvailable();

In ChainlinkARBOracle::addTokenPriceFeed()

if (token == address(0)) revert Errors.ZeroAddressNotAllowed();
if (feed == address(0)) revert Errors.ZeroAddressNotAllowed();

In ChainlinkARBOracle::getMarketTokenInfo

if (address(marketToken) == address(0)) revert Errors.ZeroAddressNotAllowed();
if (address(indexToken) == address(0)) revert Errors.ZeroAddressNotAllowed();
if (address(longToken) == address(0)) revert Errors.ZeroAddressNotAllowed();
if (address(shortToken) == address(0)) revert Errors.ZeroAddressNotAllowed();

Here if we write the two conditions separately it increases the number of SSTORE operations, which can cost more gas.

Impact

Wastes gas

Tools Used

Manual Review

Recommendations

Combine the several checks into a single check

Updates

Lead Judging Commences

hans Lead Judge over 1 year ago
Submission Judgement Published
Invalidated
Reason: Incorrect statement

Support

FAQs

Can't find an answer? Chat with us on Discord, Twitter or Linkedin.