15,000 USDC
View results
Submission Details
Severity: gas
Valid

Gas optimization opportunity for the `for loop` in getAccountCollateralValue()

Summary

Gas optimization opportunity for the for loop in getAccountCollateralValue().

Vulnerability Details

n/a

Impact

Paying more gas than necessary, especially with a for loop, there's lots of room for optimization.

Tools Used

VSC, manual.

Recommendations

Instead of:

    for (uint256 i = 0; i < s_collateralTokens.length; i++) {
        address token = s_collateralTokens[i];
        uint256 amount = s_collateralDeposited[user][token];
        totalCollateralValueInUsd += getUsdValue(token, amount);
    }

Recommend to implement this:

			uint256 _collateralTokensLength = s_collateralTokens.length;
    for (uint256 i; i < _collateralTokensLength; ) {
        address token = s_collateralTokens[i];
        uint256 amount = s_collateralDeposited[user][token];
        totalCollateralValueInUsd += getUsdValue(token, amount);
        
        unchecked {
        		i++;
        }
    }

Support

FAQs

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