40,000 USDC
View results
Submission Details
Severity: medium

return i_tokenContract.balanceOf(address(this)) instead of i_price in getPrice function

summary

All functions in the contract work on i_tokenContract.balanceOf(address(this)) instead of i_price, because i_price and actual balance can be slightly different OR so much different because of some Tokens which modify balances outside transfer operations like UBI, AMPL, or aTokens from AAVE. It is better to return i_tokenContract.balanceOf(address(this))
and as i_price is useless, delete i_price.

Vulnerability Details

function getPrice() external view returns (uint256) {
return i_price;
}

Impact

As price affects sellers to do auditing, getting a different price from the actual price, affects their decisions.

Tools Used

manual review

Recommendations

- uint256 private immutable i_price;
- i_price = price;
function getPrice() external view returns (uint256) {
- return i_price;
+ return i_tokenContract.balanceOf(address(this));
}

Support

FAQs

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