Users that are NICE or EXTRA_NICE can collect multiple presents from the 'SantasList.sol::collectPresents' function if they transfer the token to a different address and claim it again.
Because the only check in the collectPresent function from stopping a NICE or EXTRA_NICE user from claiming multiple tokens is the balanceOf check; users can transfer the token to a different address and then claim it again.
The below test passes as true showing that a user can mint multiple tokens.
--Foundry
It is recommended to create a mapping of the users to track if they have already minted a token or not.
Relying on balanceOf > 0 in collectPresent() allows the msg.sender to send their present to another address and then collect again.
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.