The contract uses two different methods for daily resets: block.timestamp / 24 hours for ETH drips (lastDripDay) and block.timestamp > lastFaucetDripDay + 1 days for token claims (dailyClaimCount). This inconsistency can cause misaligned resets, leading to scenarios where ETH or token claims are blocked unexpectedly.
Likelihood:
Occurs when the two reset mechanisms trigger at different times due to their differing calculations.
Occurs during claims near the boundary of a 24-hour period.
Impact:
Users may be able to claim tokens but not ETH (or vice versa), causing inconsistent behavior.
Disrupts the faucet’s reliability for testnet interactions.
Explanation: The PoC demonstrates how the different reset mechanisms can lead to inconsistent behavior. After a claim sets both counters, advancing time to just before a full day triggers the ETH reset but not the token reset, causing a claim to fail for tokens but succeed for ETH.
Explanation: We standardize the reset logic to use block.timestamp / 24 hours for both ETH and token claims, ensuring both counters reset at the same time. This eliminates misalignment and ensures consistent claim behavior.
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.