The claimFaucetTokens() function currently checks:
This condition prevents users from claiming tokens when the faucet balance equals exactly one faucetDrip amount — even though there are just enough tokens remaining for one more valid claim.
As a result, the faucet may appear “out of tokens” prematurely, leaving leftover tokens (equal to faucetDrip) permanently unclaimable.
Likelihood: High
The condition will always trigger when the faucet reaches exactly one drip remaining.
Impact: Low
No funds are lost or stolen, but faucet usability is degraded.
Users are unable to claim the last valid drip, leaving stranded tokens.
The test deploys a fresh instance of the RaiseBoxFaucet contract with the total faucet token balance (INITIAL_SUPPLY) equal to exactly one faucetDrip amount.
This simulates the final stage of the faucet’s lifecycle — where only one valid claim’s worth of tokens remains.
This PoC clearly demonstrates that:
The faucet incorrectly becomes unusable when one drip remains.
A simple change from <= to < in the balance check would fix the issue and allow the last claim to proceed normally.
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.