The `withdraw()` function does not emit the `FundsWithdrawn` event that is defined in the `IFestivalPass` interface. This breaks the expected event pattern and prevents off-chain monitoring systems from tracking withdrawals.
The normal behavior should emit events for all state-changing operations, especially those involving fund transfers. The interface defines `FundsWithdrawn` event but the implementation does not emit it.
```solidity
// Interface defines the event
event FundsWithdrawn(address indexed organizer, uint256 amount);
function withdraw(address target) external onlyOwner {
payable(target).transfer(address(this).balance); // @> No event emitted
}
```
Likelihood:
* The function is called whenever owner withdraws funds
* Event is always missing on every withdrawal
* Interface inconsistency is guaranteed
Impact:
* Off-chain monitoring systems cannot track withdrawals
* Interface contract is not properly implemented
* Users and integrators cannot monitor fund movements
* Breaks expected event emission pattern
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.