The setOrganizer function allows the contract owner to change the organizer address at any time. However, this critical action does not emit any event, making it invisible to off-chain monitoring, users, and auditors. This reduces transparency and makes it difficult to track when and how the most powerful role in the contract changes.
The organizer role controls all pass configuration, performance creation, and memorabilia management.
If the organizer is changed (maliciously or accidentally), users and dApps have no on-chain way to detect or respond to this change.
This can enable undetected privilege escalation, rug-pulls, or mismanagement, and makes audits and monitoring less effective.
Likelihood:
Every time the organizer is changed, there is no on-chain notification for users or monitoring systems.
This is a design omission and will always occur on every organizer change.
Impact:
Users, dApps, and auditors cannot detect organizer changes in real time.
Increases risk of undetected privilege escalation, rug-pulls, or mismanagement.
Reduces trust and auditability of the contract.
Any call to setOrganizer changes the organizer, but there is no on-chain event to notify off-chain systems or users.
Emit an event every time the organizer is changed. This ensures all organizer changes are transparent and can be tracked by users, dApps, and auditors.
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.