In claimFaucetTokens(), the faucet resets dailyDrips in the else branch when a user is not eligible for Sepolia ETH drip.
Problem:
A single user who already claimed ETH (or when drips are paused) will reset the entire day’s ETH drip counter.
This can unintentionally allow more ETH to be claimed later in the day, or conversely, prevent legitimate daily limits from working correctly.
Impact: The daily Sepolia ETH distribution is inconsistent and may violate the intended daily cap.
Likelihood: High
| Factor | Observation | Likelihood Influence |
|---|---|---|
| Frequency | Occurs on any faucet claim by an ineligible user | High |
| Severity | Breaks intended daily ETH cap | Medium |
| Access | Publicly callable | High |
| Complexity | Subtle logic error, may go unnoticed | Medium |
Impact: Medium
| Impact Area | Description |
|---|---|
| Daily Limit Enforcement | Resets the daily drip counter incorrectly, potentially allowing excessive or insufficient ETH distribution. |
| Fairness | Some users may get more or fewer ETH drips than intended. |
| Maintainability | Confusing logic makes future modifications error-prone. |
| Auditability | Makes it harder to verify that daily ETH caps are respected. |
user1 claims for the first time → receives ETH drip → dailyDrips increases correctly.
After cooldown, user1 claims again, but is no longer eligible for ETH.
The else { dailyDrips = 0; } block executes → resets dailyDrips, breaking the intended daily ETH cap.
This demonstrates that the current implementation allows incorrect ETH drip accounting, violating the intended rules.
Remove the**** else { dailyDrips = 0; } block entirely.
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.