When there is sufficient Faucet Token balance for at least one claim, users should be able to claim and reduce the faucet balance to zero.
In the RaiseBoxFaucet.sol::claimFaucetTokens function, the balance check uses a less-than-or-equal comparison (<=) against faucetDrip. As a result, when the remaining balance is exactly equal to the faucetDrip amount, users are unable to claim - even though there is enough balance for one final claim.
Likelihood:
The issue occurs each time the Faucet Token balance is exactly equal to the faucetDrip value.
Impact:
Users are prevented from claiming tokens despite there being enough balance for one more claim. This causes the faucet to become partially unusable and leaves residual tokens locked in the contract.
Add the following test to RaiseBoxFaucet.t.sol to reproduce the issue:
Use a strict less-than comparison (<) instead of less-than-or-equal (<=) when checking the faucet balance.
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.