The EggVault
contract does not implement the onERC721Received
function, which is required for receiving ERC721 tokens via safeTransferFrom()
. As a result, any attempt to transfer an NFT to the vault using safeTransferFrom()
will fail. This breaks compatibility with the ERC721 standard and may lead to unexpected behavior in integrations.
When transferring an NFT using safeTransferFrom()
, the ERC721 standard requires the recipient contract to implement the onERC721Received
function. This function ensures that the contract can accept ERC721 tokens and prevents accidental transfers to contracts that do not support them.
However, the EggVault
contract does not implement IERC721Receiver
, causing safeTransferFrom()
calls to fail.
Breaks ERC721 compatibility, preventing integrations that rely on safeTransferFrom()
.
Causes unexpected transaction failures, potentially leading to lost user funds or broken game mechanics.
Makes deposits unreliable, as NFTs must be transferred using transferFrom()
instead, which does not check whether the recipient is a valid contract.
Manual Review
Foundry
The vault contract should implement the IERC721Receiver
interface and correctly handle incoming NFT transfers.
Modify the EggVault
contract to ensure that any contract receiving an NFT implements onERC721Received
.
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.