Raisebox Faucet

First Flight #50
Beginner FriendlySolidity
100 EXP
Submission Details
Impact: medium
Likelihood: medium

Incorrect Reset of dailyDrips When Faucet is Paused

Author Revealed upon completion

Root + Impact

Description

  • The contract incorrectly resets the dailyDrips counter to 0 whenever the faucet is paused or the user is already claimed the Seth. .
    This behavior destroys important accounting data, since dailyDrips represents how many faucet claims have occurred that day.

    @> if (!hasClaimedEth[faucetClaimer] && !sepEthDripsPaused) {
    uint256 currentDay = block.timestamp / 24 hours;
    } else {
    @> dailyDrips = 0;
    }

    This means that if the owner temporarily pauses the faucet, the dailyDrips counter resets — as if the day restarted — even though it didn’t.

Risk

Likelihood:

  • Occurs every time the faucet is paused.

  • Common administrative action (pause/unpause) triggers the bug.

Impact:

  • Loss of daily tracking data (number of users claimed).

Proof of Concept

Assume dailyDrips = 0.01 eth and maxDailyDrips = 1 eth.
Owner pauses the contract using the function >function toggleEthDripPause(bool _paused) external onlyOwner
The pause function sets dailyDrips = 0 when executes the else statement.

Recommended Mitigation

+ Add a error code

Support

FAQs

Can't find an answer? Chat with us on Discord, Twitter or Linkedin.