Valid withdrawal can be denied due to minWithdrawalAmount
check in queueWithdrawal
function
When a user requsted withdrawal of amount greater than available queued tokens, remaining should be queued via queueWithdrawal
function. But due to minWithdrawalAmount
check, the withdrawal request can be denied.
Here's the minWithdrawalAmount
check from queueWithdrawal
function:
Below is a simple scenario that the revert can happen:
Legitimate user requests a withdrawal via PriorityPool
contract
PriorityPool
contract checks the amount of queued tokens and see if it can be fulfilled.
If it exceeds the queued amount, queueWithdrawal
function is called to queue an additional withdrawal.
If the requested amount is smaller than minWithdrawalAmount
, the function call would fail despite it being called from authorized party and to be a valid request.
That being said, while the minimum amount check could be valuable in one-time withdrawal requests or so there should be an improvement to deal with above edge cases without any unfair reverts.
This results in obvious DoS cases.
Manual Review
Check if the amount to queueWithdrawal
function is residue or not. In case, min amount check can be skipped.
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.