The deposit() function uses a beforeDeadline modifier that fails to properly validate the deadline state, leading to misleading error messages and potentially confusing user experience.
Current Implementation:
Issue:
When contract is deployed, deadline = 0 (default value)
deadlineSet = false initially
The modifier only checks block.timestamp > deadline
Since any current timestamp is > 0, all transactions revert
Returns BeyondDeadline() error even when deadline was never set
Root Cause:
Missing validation of deadlineSet boolean
Incorrect error message selection
Reliance on default uint256 value (0) for deadline comparison
Users receive incorrect error messages
Cannot distinguish between "deadline not set" and "deadline passed"
Manual Review
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.