Raisebox Faucet

First Flight #50
Beginner FriendlySolidity
100 EXP
View results
Submission Details
Impact: low
Likelihood: low
Invalid

Missing Events for Critical State Changes

Root + Impact

Description

The public functions burnFaucetTokens and adjustDailyClaimLimit perform critical state-changing operations but fail to emit corresponding events.

function burnFaucetTokens(uint256 amountToBurn) public onlyOwner {
...
// @> no event is emitted
}
function adjustDailyClaimLimit(uint256 by, bool increaseClaimLimit) public onlyOwner {
...
// @> no event is emitted
}

Risk: Informational

Likelihood: Low

  • Admin functions only called by the owner

Impact: Low

  • No direct loss of funds or logic error, but reduces contract transparency and auditability.

Proof of Concept

Recommended Mitigation

Emit clear and descriptive events after critical state changes:

  • event FaucetTokensBurned(address indexed owner, uint256 amount);

  • event DailyClaimLimitAdjusted(uint256 oldLimit, uint256 newLimit, bool increased);

function burnFaucetTokens(uint256 amountToBurn) public onlyOwner {
...
+ emit FaucetTokensBurned(msg.sender, amountToBurn);
}
function adjustDailyClaimLimit(uint256 by, bool increaseClaimLimit) public onlyOwner {
...
+ emit DailyClaimLimitAdjusted(oldLimit, dailyClaimLimit, increaseClaimLimit);
}
Updates

Lead Judging Commences

inallhonesty Lead Judge about 2 months ago
Submission Judgement Published
Invalidated
Reason: Non-acceptable severity

Support

FAQs

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

Give us feedback!