The depositEggToVault() function in EggHuntGame does not verify that the contract has approval to transfer the NFT.
The function attempts to transfer an NFT without confirming it has approval:
The comment states "The player must first approve the transfer on the NFT contract" but there's no code check for this.
The function will fail if the player hasn't approved the transfer, leading to a poor user experience and potential confusion.
Code review
Add an explicit check for approval:
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.