The buyPresent
function is burning 1e18 tokens instead of 2e18 to mint an NFT.
In the contract description it's written that buyPresent: A function that trades 2e18 of SantaToken for an NFT. This function can be called by anyone.
But the SantaToken.burn
function is burning 1e18 tokens.
Medium impact as the revenue of the contract is 50% short.
Manual code review.
The burn function should have an additional amount
parameter.
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.