The Standard

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

Calculating ```costInEuros``` is susceptible to precision loss due to division before multiplication

Summary

Division before multipliction can result in rounding down errors, hence to minimize any rounding errors we should to perform multiplication before division

Vulnerability Details

In function distributeAssets() when calculating costEuros division is performed before multiplication

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

Impact

Precision loss may result in a lost of funds for the protocol/user

Tools Used

Manual

Recommendations

The multiplication should occur 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!