The function getUtilizationRate in the RAACMinter contract does not properly account for differences in token decimals. The issue arises because:
totalBorrowed is stored in RAY (27) decimals.
totalDeposits is derived from RToken balance, which may have different decimals.
Example Scenario:
RToken has 6 decimals (1,000,000 = 1 RToken)
totalBorrowed is 1000 (1000e27)
totalDeposits is 2000 (2000e6)
This results in (totalBorrowed * 100) / totalDeposits = 5e22, way more than the intended range of 0 - 100
This will cause wrong calculations related to this utilization ratio.
Incorrect Emission Rate Calculation: calculateNewEmissionRate will use a wrong utilization rate leading to wrong calculations.
Manual Review
Ensure all token values are converted to the same decimal standard before calculations. Ensure at the end that the utilization rate is in the intended range.
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.