The function burn is burning the wrong amount of SantaToken
The function burn implemented in SantaToken is used on buyPresent to trade tokens SantaToken for an NFT. The documentation says that an NFT is traded for 2e18 SantaToken, however, the burn function is burning only 1e18.
This vulnerability allows trading an NFT for a wrong number of SantaToken
Manual Analysis
Consider updating the burn implementation to burn 2e18 token instead of 1e18. Also, the test testBuyPresent should be adapted.
This line indicates that the intended cost of presents for naughty people should be 2e18: https://github.com/Cyfrin/2023-11-Santas-List/blob/6627a6387adab89ae2ba2e82b38296723261c08a/src/SantasList.sol#L87 PURCHASE_PRESENT_COST should be implemented to enforce the cost of presents.
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.