Wrong value of NFT.
The documentation and code base say that the price of one NFT is equal to 2e18 SantaTokens. In fact, when we want to buy a gift, we will only spend 1e18 token, since the "burn" function can only burn 1 token per call:
The buyer of the gift will spend half as much as he should.
Manual review.
To fix the issue, you can change the "burn" function in SantaToken.sol by adding the possibility to input an arbitrary amount:
Also need to change the function "buyPresent" in SantasList.sol:
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.