The NFT transfers to the vault rely on direct transferFrom
calls:
The EggVault
contract interacts with ERC721 tokens but does not implement the IERC721Receiver
interface with the onERC721Received
function. Currently, the contract successfully receives and manages NFTs through direct transferFrom
calls rather than safeTransferFrom
. However, this approach deviates from ERC-721 best practices.
Low. Testing confirms that the EggVault correctly receives, stores, and transfers NFTs despite lacking the onERC721Received function. However, this implementation:
Makes the contract incompatible with safeTransferFrom calls
Deviates from the ERC-721 standard recommendations
May cause issues if future integrations assume standard compliance
Manual review
Implement the IERC721Receiver interface in the EggVault contract:
This change would ensure the vault follows the ERC-721 standard completely and would be compatible with both transferFrom and safeTransferFrom operations.
NFTs are transferred to contracts without onERC721Received implementation.
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.