The contract uses _mint() to mint NFTs, which can cause problems if the recipient is a smart contract that can't handle ERC721 tokens.
In the function mintEgg(address to, uint256 tokenId), the _mint() function is used:
This does not check if the to address is a smart contract that supports receiving NFTs. If the recipient is a contract and does not implement onERC721Received(), the NFT will be permanently stuck.
The NFT can be locked in an unusable state if sent to an incompatible smart contract. This leads to loss of access for users and potential financial impact if the NFT holds value.
Manual Code Review
ERC721 DOCs
Protocol doesn't check if recipient contracts can handle ERC721 tokens
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.