Normally, the createPerformance
function is expected to create events that award BEAT tokens to attendees as an incentive for participation.
However, the function allows the organizer to set the reward
parameter to zero, which results in performances where users receive no BEAT token rewards even after attending. This can lead to confusion, poor user experience, and potentially undermine the tokenomics of the application.
Likelihood:
This will occur whenever the organizer (intentionally or accidentally) creates a performance with a reward value of zero.
No validation or restriction in the contract prevents organizers from setting a zero reward for performances.
Impact:
Attendees of such performances will receive no BEAT tokens, leading to confusing or disappointing user experience.
The existence of zero-reward performances could be exploited to create spam or "dummy" events, potentially impacting event and token credibility.
Explanation:
This Proof of Concept shows that the organizer can create an event with a reward of zero, leading to a situation where users who attend receive no BEAT tokens. This can erode user trust and engagement with the platform.
Explanation:
By adding a require(reward > 0, "Reward must be greater than 0");
check before the performance is created, you prevent the creation of zero-reward events. This ensures all performances incentivize user participation and upholds the integrity of the platform's reward system.
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.