The GivingThanks::donate function uses _mint to create a donation receipt ERC-721 token, however, this function does not verify if the receiving address is capable of receiving the token.
In the GivingThanks::donate function it can be seen that the _mint function from OpenZeppelin's ERC-721 contract is used to create and send a new donation receipt ERC-721 token to the donor.
This function does not implement onERC721Received to check whether the receiver can receive the token.
This can result in the loss of donation receipt tokens.
Manual review.
The GiveThanks::donate function should use the _safeMint function provided by OpenZeppelin's ERC-721 contract that is inherited by the GiveThanks contract.
Additionally, the GiveThanks::donate function should be prepared for the _safeMint function to revert in the event the caller cannot receive the ERC-721.
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.