However, the current implementation uses a single global timestamp variable s_earnTimer to enforce the weekly cooldown. This means once any user claims, all others are blocked for a full week — turning a per-user reward into a global "first-come-first-serve" mechanic.
Likelihood:
This will occur every time more than one user attempts to claim earnSnow()
within the same 1-week period.
Impact:
Only the first user to call earnSnow()
each week succeeds; all other users are blocked until the timer resets.
Causes unfairness and poor UX, especially for late claimers who are unaware of the restriction.
Replace the single s_earnTimer
global variable with a per-user mapping to track individual claim cooldowns:
Then update the earnSnow() function as follows:
At the same time, the buySnow()
function should be as follows:
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
View preliminary resultsAppeals are being carefully reviewed by our judges.
The contest is complete and the rewards are being distributed.