The constructor initializes _liquidityIndex
to 1 RAY, and the RToken::updateLiquidityIndex
function exists to maintain it. However, the LendingPool
contract never calls updateLiquidityIndex
, causing _liquidityIndex
to remain at 1 RAY permanently instead of reflecting the actual interest accrual.
RToken
defines an updateLiquidityIndex
function to synchronize its _liquidityIndex
with the LendingPool
.
The LendingPool
never invokes this function, meaning _liquidityIndex
stays at the default value (1 RAY).
As a result, any logic depending on a changing _liquidityIndex
is rendered ineffective.
This function is never called.
Since _liquidityIndex
never updates, the contract fails to capture the true growth or decline of underlying value. This leads to inaccuracies in user balances or interest calculations tied to liquidity indexing.
Manual Review
Ensure the LendingPool
contract actually calls RToken::updateLiquidityIndex
whenever liquidity index changes.
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.