Timestamp check uses wrong operator, preventing valid execution at exact end time, which is the normal in case of automated transaction.
The setWinner() function should be callable once the event has ended.
Uses <= instead of <, blocking execution at the exact eventEndDate timestamp.
Likelihood:
Occurs when called exactly at eventEndDate
Common with automated systems
Causes unexpected revert
Impact:
Function reverts at valid time
Owner must wait for next block
Minor delay in prize distribution
Inconsistent with typical boundary logic
Let suppose event endtime is 1000 and once it is ended, an automated system or service like chainlink upkeep service trigger the setWinner transaction but due to the check the transaction will fail and reverted.
Just updating the check from <= to < will solve the problem
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.