The IFestivalPass
interface declares several important events such as PassPurchased
, PerformanceCreated
, MemorabiliaRedeemed
, and others.
In the FestivalPass
implementation contract, not all declared events are emitted, and in some cases, the implementation is missing the event entirely.
This breaks interface compliance expectations, reduces transparency, and complicates off-chain event indexing or frontend listening logic.
Likelihood:
Developers using the interface expect the implementation to emit all declared events during execution.
DApps listening for lifecycle events will miss key updates, such as fund withdrawals or new collection creation, if events are not emitted
Impact:
Breaks composability and trust for anyone integrating based on the interface (e.g., analytics dashboards, subgraphs).
Reduces visibility of sensitive admin actions like withdraw()
or createMemorabiliaCollection()
.
Prevents real-time UI updates or history indexing in off-chain systems.
If some events are meant to be declared but never emitted, consider removing them from the interface to reflect actual usage.
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.