The collectPresent() function can be entered multiple times by NICE and EXTRA_NICE users due to this required statement.
revert SantasList__AlreadyCollected(); }
after the time: block.timestamp < CHRISTMAS_2023_BLOCK_TIME, NICE and EXTRA_NICE can collect their presents. The if(balanceOf(msg.sender) > 0) is easily bypassed by the user collecting their present, then transferring their NFT to another account, making their balanceOf(msg.sender) back to 0;
Users can mint NFTs and SantaToken's as much at they desire.
hardhat.
Add a Mapping that will keep track if the user has collected their present instead of using balanceOf(msg.sender). If user collects present successfully, update mapping to true.
mapping(address => bool) collectedPresent;
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.