The claimFaucetTokens() function enforces a daily claim limit through dailyClaimCount and resets this counter when a new day starts.
However, the limit check occurs before the reset condition.
Once dailyClaimCount reaches dailyClaimLimit, all subsequent claims revert permanently—even after a full day has passed—because the reset logic is executed too late in the function.
This causes a logical deadlock, where the faucet becomes indefinitely locked until owner manually adjusts the daily claim limit.
Likelihood: High
The bug occurs deterministically once the limit is reached
Any user can trigger the lock by exhausting the daily claim quota
Impact: High
faucet lockout: no user can claim again even after 24 hours
Operational disruption: owner intervention (redeploy/reset) is required to restore service
Add the following test, then run this command: forge test --match-test testLockedByDailyClaimCount
Move the reset logic before the claim limit check to ensure the counter refreshes correctly at each new day
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.