The RToken.transfer()
function calculates the amount to be trasfered incorrectly.
The RToken.transfer()
function calculates scaledAmount
as amount / reserve.liquidityIndex
.
Then, scaledAmount
is scaled again in the _update()
function. As result, the real transfered amount is amount / (reserve.liquidityIndex) ^ 2
which is less than correct value.
Users receive less tokens than real amount to be transfered.
Manual Review
Remove the process of scaling amount in transfer()
.
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.