The RToken.updateLiquidityIndex() function is protected by the onlyReservePool modifier, allowing only the LendingPool contract to invoke it. However, the LendingPool lacks the necessary logic to call this function. Consequently, the _liquidityIndex, which represents the exchange rate between RToken and the underlying asset, cannot be updated and remains fixed at 1.
The RToken.updateLiquidityIndex() function includes the onlyReservePool modifier, restricting its invocation to the LendingPool contract.
Unfortunately, the LendingPool does not implement any logic to call this function. As a result, the _liquidityIndex remains unchanged at its initial value of 1.
This index is crucial as it reflects the exchange rate between RToken and the underlying asset, making it essential for it to be updated regularly.
The _liquidityIndex remains fixed at 1.
Manual review
Ensure that the LendingPool calls this function whenever the reserve state is updated.
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.