WithdrawPool:deposit()
directly transfers the LST to priorityPool
without converting it to shares
When user deposits assetToken to the priorityPool
, it deposits to the withdrawPool if any queuedWithdrawals
. In return withdrawPool transfers the LST tokens to the priorityPool, which is then transfered
to the user.
But the problem is, LST is directly
transfered to priorityPool without converting
the assetToken to shares value(see above code), which is then transfered to user.
As result, user will receive the same
amount of shares as of deposited assetToken
, which should not be because assetToken should be first converted to shares value & then transferred to priorityPool
Manual Review
Convert the assetToken amount in withdrawPool:deposit() before transferring to priorityPool.
Also while transferring the LST to user in priorityPool:_deposit(), use initialBalance & finalBalance method to check the accurate amount of LST that is transfered to priorityPool and then transfer it to the user.
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.