Normal behavior: the contract should reset the per-day claim counter before enforcing the daily limit so users can claim again the next day.
Specific issue: the function enforces dailyClaimCount >= dailyClaimLimit before performing the daily reset. When dailyClaimCount has reached the limit, subsequent calls always revert at that check because the reset (which clears the counter for the new day) runs later in the same function. This breaks availability: even after a day boundary, claims are rejected until state is changed externally.
Likelihood: Medium
Normal faucet usage and maintenance will reach the daily limit frequently; time-based logic makes this likely to manifest.
Impact: High
Users who should be able to claim the next day are blocked; the faucet becomes unavailable. This is a denial-of-service.
This PoC shows that at exact dailyClaimLimit reached in a day, breaks protocol from working
Run the test with:
Move the reset block to execute before the daily-limit check:
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.