Until the deadline is explicitly set, functions with the beforeDeadline modifier will behave unpredictably, as the default value of deadline is 0. This makes all timestamp comparisons (block.timestamp > deadline) immediately pass, effectively disabling the beforeDeadline logic until a valid deadline is set.
If the host delays setting the deadline or never sets it, participants can continue interacting with the contract indefinitely (e.g., depositing funds or changing participation status), which defeats the purpose of having a deadline to finalize attendees.
This allows deposits and refunds even though the deadline logic is supposed to restrict these actions.
mannual check
Set a default deadline value in the constructor or explicitly validate that the deadline is non-zero in the beforeDeadline modifier.
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.