The EggHuntGame::depositEggToVault function attempts to transfer NFTs without first verifying that the contract has been approved to transfer the tokens, leading to confusing error messages for users.
The function comment states that "The player must first approve the transfer on the NFT contract," but the function does not verify this approval before attempting the transfer:
If a user calls this function without first approving the transfer, the transaction will revert with a generic ERC721 error message that may be confusing to users who are not familiar with the ERC721 approval mechanism.
Poor user experience when transactions fail without clear error messages
Increased support burden to explain the approval process to users
Potential confusion for users who don't understand why their transactions are failing
Manual code review
Add explicit approval verification with a clear error message:
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.