The updateEmissionRate() function determines the new emission rate based on the utilization rate (UR). However, it fetches the UR without first updating the lending pool state to account for accrued interest. This means that getNormalizedDebt() (which uses reserve.usageIndex) could be outdated at the time of calculation.
Emission Rate Update Trigger
The tick()
function serves two purposes:
Updates emission rate based on time interval
Mints tokens to stability pool
Emission Rate Calculation:
Stale Data Usage
getNormalizedDebt()
relies on reserve.usageIndex
, which is only updated when updateReserveInterests()
is called.
Since updateReserveInterests()
is not called before fetching the utilization rate, the calculation may be using outdated data.
This update is not triggered before calculating the utilization rate.
Users interacting with the stability pool will miss rewards because the _update()
in stability pool calls the tick()
in the RAACMinter contract
that did not update the state of the lending pool before getting the UR leading to Incorrect Emission Rates
Manual
Update the updateEmissionRate()
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.