The FestivalPass contract's withdraw function fails to emit the FundsWithdrawn event that is declared in the IFestivalPass interface, breaking event-based integrations and monitoring systems. The interface declares a FundsWithdrawn event that should be emitted when ETH is withdrawn from the contract, but the implementation's withdraw function transfers funds successfully without emitting this event, creating a mismatch between the interface specification and actual behavior.
The interface declares an event that the implementation never emits:
Missing Event Emission: The withdraw function should emit FundsWithdrawn event per interface specification but doesn't
Access Control Documentation Mismatch: Interface documentation states "organizer withdraws" but implementation uses onlyOwner
Likelihood: High - The issue occurs every time the withdraw function is called, as the event is never emitted in the implementation.
Impact: Low - No funds are at risk, but external integrations relying on the interface specification will fail to receive expected events.
Event monitoring systems and indexers will miss withdrawal events
Audit logs and compliance tracking will be incomplete
Frontend applications listening for withdrawal events won't be notified
The interface declares that withdraw should emit FundsWithdrawn but the implementation doesn't emit it
Fix the implementation to emit the event as declared in the interface:
This ensures that external systems relying on the interface specification will receive the expected withdrawal events for proper monitoring and integration.
Informational. This protocol doesn't rely on events to function, they are just nice to have, but not mandatory.
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.