The Standard

The Standard
DeFiHardhat
20,000 USDC
View results
Submission Details
Severity: low
Valid

Dividing before multiplication leads to rounding error

Summary

Solidity's integer division truncates. Thus, performing division before multiplication can lead to precision loss.

Vulnerability Details

distributeAssets(ILiquidationPoolManager.Asset[],uint256,uint256) performs a multiplication on the result of a division:

  • costInEuros = _portion * 10 ** (18 - asset.token.dec) * uint256(assetPriceUsd) / uint256(priceEurUsd) * _hundredPC / _collateralRate

Impact

Tools Used

slither, manual review

Recommendations

Consider ordering multiplication before division.

Updates

Lead Judging Commences

hrishibhat Lead Judge almost 2 years ago
Submission Judgement Published
Validated
Assigned finding tags:

precision

Support

FAQs

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

Give us feedback!