The functions SantaList::collectPresent and SantaList::buyPresent should emit their own events to differentiate what operations are executed in the contract.
SantaList::collectPresent should emit a NicePresentCollected or a ExtraNicePresentCollected depending of the status of the user.
SantaList::buyPresent should emit a PresentBought event.
According to the docs - users can have a NICE, EXTRA_NICE, NAUGHTY or UNKNOWN status but instead of the latter, the Status enum contains a NOT_CHECKED_TWICE member.
Rename NOT_CHECKED_TWICE member to UNKNOWN to match the documentation.
presentReceiverFrom the docs:
EXTRA_NICE users can collect their NFT and they are given SantaTokens. The SantaToken is an ERC20 that can be used to buy the NFT for their NAUGHTY or UNKNOWN friends.
But there's no check in SantasList::buyPresent to verify the status of the receiver.
Check presentReceiver status.
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.