DittoETH

Ditto
DeFiFoundryOracle
55,000 USDC
View results
Submission Details
Severity: low
Invalid

Loss of precision

Summary

Loss of precision

Vulnerability Details

Division by large numbers may result in the result being zero, due to solidity not supporting fractions.

File: contracts/libraries/LibAsset.sol
26: return uint256(s.asset[asset].resetLiquidationTime) / Constants.TWO_DECIMAL_PLACES;
37: uint256(s.asset[asset].secondLiquidationTime) / Constants.TWO_DECIMAL_PLACES;
47: return uint256(s.asset[asset].firstLiquidationTime) / Constants.TWO_DECIMAL_PLACES;
57: return (uint256(s.asset[asset].initialMargin) * 1 ether)
69: return (uint256(s.asset[asset].primaryLiquidationCR) * 1 ether)
81: return (uint256(s.asset[asset].secondaryLiquidationCR) * 1 ether)
93: return (uint256(s.asset[asset].forcedBidPriceBuffer) * 1 ether)
105: (uint256(s.asset[asset].minimumCR) * 1 ether) / Constants.TWO_DECIMAL_PLACES;
115: return (uint256(s.asset[asset].tappFeePct) * 1 ether)
126: return (uint256(s.asset[asset].callerFeePct) * 1 ether)
138: (uint256(s.asset[asset].minBidEth) * 1 ether) / Constants.THREE_DECIMAL_PLACES;
149: (uint256(s.asset[asset].minAskEth) * 1 ether) / Constants.THREE_DECIMAL_PLACES;

Link to code

File: contracts/libraries/LibBridge.sol
20: return (uint256(s.bridge[bridge].withdrawalFee) * 1 ether)
26: return (uint256(s.bridge[bridge].unstakeFee) * 1 ether)

Link to code

File: contracts/libraries/LibOracle.sol
85: uint256 twapPriceInEther = (twapPrice / Constants.DECIMAL_USDC) * 1 ether;

Link to code

File: contracts/libraries/LibOrders.sol
35: return (uint256(cr) * 1 ether) / Constants.TWO_DECIMAL_PLACES;

Link to code

Impact

Loss of precision

Tools Used

Manual

Recommendations

Consider requiring a minimum amount for the numerator to ensure that it is always larger than the denominator

Updates

Lead Judging Commences

0xnevi Lead Judge
over 1 year ago
0xnevi Lead Judge over 1 year ago
Submission Judgement Published
Invalidated
Reason: Other

Support

FAQs

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