buyPresent() burns the presentReceiver address tokens but if the presentReceiver is not the msg.sender then it will attempt to burn the presentReceiver's tokens - very likely the presentReceiver does not have any SantaToken's so it would revert and presentReceiver would never receive there present.
buyPresent will only work if someone is buying themselves a present, it will not work for buying someone else unless that someone else has enough SantaToken's already.
People will be able unable to buy Someone Else a present.
Malicious users who know others have SantaToken could call this function and empy that persons SantaToken's.
Manual Review
Foundry Test
Current implementation allows a malicious actor to burn someone else's tokens as the burn function doesn't actually check for approvals.
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.