While withdrawing via withdraw()
in withdraw phase there is a check
https://github.com/Cyfrin/2024-10-swan-dria/blob/main/contracts/swan/BuyerAgent.sol#L152-L154
So there should be always minFundAmount()
amount of token remain in contract which is equivalent to amountPerRound + swan.getOracleFee()
A BuyerAgent can set amountPerRound
to zero in-case he wants full withdrawal via `setAmountPerRound()
https://github.com/Cyfrin/2024-10-swan-dria/blob/main/contracts/swan/BuyerAgent.sol#L393-L397
But The Point is swan.getOracleFee()
of amount never recoverable, and remain locked in contract for-ever even if Buyers exit the protocol.
Manual review
On Buyer exit, total funds should be recoverable.
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.