Currently swap requests follow the given workflow:
A swap request is initiated through initiateSwap
After this there are two choices:
Fulfil request through fulfillSwap
Refund request through refundSwap
The problem is that a swap can be initiated for a vault that is not live but can be fulfilled only for a vault that is live leaving the user forced to refund the request and pay fees.
Swap requests can be initiated with vaults that are not live which will lead to the user being forced to pay fee on refund and not be able to fulfil the swap. This is due to the vault being loaded using load
in initiateSwap
but loadLive
in fulfillSwap
.
Users paying fee for a request that was never possible in the concrete situation. This will lead to trust issues with protocol.
Manual Review
Add a check whether the given vault is live when a user is initiating a swap request and revert if it is not.
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.