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.
Appeals are being carefully reviewed by our judges.