Bid Beasts

First Flight #49
Beginner FriendlyFoundrySolidityNFT
100 EXP
View results
Submission Details
Impact: low
Likelihood: high
Invalid

Missing event emission for failed credit withdrawals

Root + Impact

Description

The withdrawAllFailedCredits function allows users to withdraw ETH that was previously credited to them after a failed transfer. However, the function does not emit any event upon successful withdrawal. This reduces transparency, makes it harder for users and external indexers to track withdrawals, and complicates off-chain accounting or auditing.

function withdrawAllFailedCredits(address _receiver) external {
uint256 amount = failedTransferCredits[_receiver];
require(amount > 0, "No credits to withdraw");
failedTransferCredits[msg.sender] = 0;
(bool success, ) = payable(msg.sender).call{value: amount}("");
require(success, "Withdraw failed");
//@audit - no event emitted
}

Risk

Likelihood:

High.

Impact:

Low — no loss of funds or security risk, but decreases usability and monitoring.

Recommended Mitigation

Emit an event whenever a withdrawal occurs.

event FailedCreditsWithdrawn(address indexed receiver, uint256 amount);
function withdrawAllFailedCredits(address _receiver) external {
...
emit FailedCreditsWithdrawn(_receiver, amount);
}
Updates

Lead Judging Commences

cryptoghost Lead Judge 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!