claimFees() transfers the contract's ETH balance to the owner but emits no event and does not guard against a zero balance, so an empty sweep still executes a state-changing call with no observable record.
(src/MerkleAirdrop.sol:42-47)
Likelihood: Low
This is a transparency and minor-gas concern that applies whenever fees are swept (or swept early at zero balance). It has no exploit path and cannot move funds incorrectly.
Impact: Low
The absence of a FeesClaimed event makes off-chain monitoring of owner withdrawals harder and less auditable. Calling with a zero balance performs an unnecessary external call and wastes gas without doing anything useful.
Calling claimFees() with no accumulated fees succeeds silently, emitting nothing and transferring zero.
Emit a FeesClaimed event and short-circuit when the balance is zero.
The contest is live. Earn rewards by submitting a finding.
Submissions are being reviewed by our AI judge. Results will be available in a few minutes.
View all submissionsThe contest is complete and the rewards are being distributed.