Description:
The Snow::earnSnow
function uses a single global timer (s_earnTimer
) for earning, affecting all users earnings.
Impact:
Only the first caller can earn Snow, and then all users are blocked from earning for one week, preventing fair participation and breaking the intended earning mechanism.
Proof of Concept:
Add the following after the TestSnowmanAirdrop
test suite:
Recommended Mitigation:
Track the earn timer per user (e.g., with a mapping: mapping(address => uint256) s_earnTimer;
) so each user has their own cooldown timer.
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.