The mintEgg function in EggstravaganzaNFT uses _mint instead of _safeMint, which may result in NFTs being irretrievably sent to contracts that are not capable of handling ERC721 tokens.
_mint does not check whether to is a contract that can handle NFTs. If to is a contract that does not implement onERC721Received, the NFT will be stuck and cannot be retrieved, resulting in a loss of ownership.
Using _safeMint adds a safety check This ensures that if to is a contract, it must correctly implement the IERC721Receiver interface, otherwise the mint will fail and prevent accidental loss.
NFTs can be minted to incompatible contracts and get permanently stuck.
Manual code review.
Replace _mint with _safeMint in mintEgg function.
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.