In GivingThanks::donate function the _mint function is used to mint a new NFT without performing safety checks to ensure that the recipient address can handle ERC721 tokens.
_mint function does not verify if the recipient implements the IERC721Recieverinterface which is necessary for contracts to safely recieve ERC721 tokens.
If a recipient address is a smart contract that does not have the IERC721Recieverinterface implemented the NFT could become permenantly locked in because the contract may not have the necessary logic to handle the NFT leading to the user losing access to the NFT.
Manual code review
Use safeMintfunction instead of _mintfunction.
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.