The RAACMinter's getUtilizationRate() uses basic integer arithmetic without proper decimal scaling, causing severe precision loss and potentially returning 0% utilization when it should be non-zero.
The current implementation performs integer division after a simple multiplication by 100:
When dealing with large numbers in different decimal precisions (18 decimals), this calculation fails to maintain precision:
totalBorrowed: 1e18 (1 crvUSD)
totalDeposits: 100e18 (100 rToken)
Current result: (1e18 * 100) / 100e18 = 0
Expected result: 1% = 1e16 in WAD precision
Zero utilization rate reported when actual utilization exists
Incorrect emission rate calculations
Wrong reward distributions
Protocol economics affected by incorrect utilization metrics
Potential manipulation of rewards through precision loss
Manual review
Use proper decimal math with WAD precision
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.