When naughty users buy present, they buy it for rather thanPURCHASED_PRESENT_COST` (2e18).
When naughty interact with SantaList.buyPresent, they are supposed to pay PURCHASED_PRESENT_COST. This amount is burnt with i_santaToken.burn. the burn function does not make use of this constant when calling _burn, It uses a defined cost in the function.
Users mint for half the price.
Manual Review.
Function burn should take in an amount to burn as parameter. buyPresent can call this with PURCHASED_PRESENT_COST.
SantaToken.sol
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.