The deposit owner cannot get a refund for the execution fee on withdrawals.
The _handleReturn
function is the end of the withdrawal flow, this function calculates the collateral amount that should be sent to the treasury and the user and makes those transfers, then updates the totalShares
and deletes the depositInfo
mapping by calling the _burn
function, after deleting the depositInfo
mapping it will try to refund the executionFee
to the deposit owner, but the if (depositInfo[depositId].executionFee > usedFee)
would never be true because the depositInfo
mapping has been reset to default values in the _burn
function, so the call to the gmxProxy.refundExecutionFee
function will never happen and the user will never receive the refund of this executionFee
.
The deposit owner loses the execution fee refund.
Manual review
call the _burn
function after the if (refundFee)
has ended.
Likelihood: High, every time a user withdraw on 1x vault with paraswap Impact: Medium, fees never claimed to GMX and refund to the owner.
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.