Players must approve EggHuntGame contract to perform a transferFrom operation in order to move the EggNFT from the Owner to the EggVault for depositing.
When calling approve(contract, tokenId) externally from its wallet the player gives permission for only that tokenId, but only for the external caller**** (ex. wallet)
Players can not transfer their EggNfts to the EggVault contract for being deposited
When the EggHuntContract calls transferFrom(), it's trying to act as an EOA/wallet, but the NFT contract doesn't see it as approved for that nft, reverting with ERC721InvalidApprover().
Forge Test, Remix, Manual Review
Use setApprovalForAll() instead of approve()
```setApprovalForAll(contract, true)`
``This makes any call from the EggHuntGame contract to transferFrom() go through, because now the contract is allowed to act in the nft owner's name, for all 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.