Normal behaviour: createPerformance()
should create a performance that becomes active between startTime
and startTime + duration
.
Issue: The calculation endTime: startTime + duration
can overflow if both values are large, wrapping around to a small timestamp. This makes isPerformanceActive()
always return false
since block.timestamp
will never be ≤ the wrapped endTime
.
Likelihood:
Organizer accidentally sets a very large duration
value (e.g., meant to input seconds but used a larger unit).
Edge case with far-future startTime
values.
Impact:
Performance becomes permanently unattendable, wasting organizer setup and user expectations.
Scheduled rewards become unredeemable.
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.