Beginner FriendlyFoundryNFT
100 EXP
View results
Submission Details
Severity: low
Invalid

Incomplete ERC721 implementation may impact third-party protocol integrations

Summary

ERC721 methods getApproved(), isApprovedForAll(), and supportsInterface() are missing from the contract making it non-compliant with the ERC721 standard. This may lead to integration problems with other protocols that rely on these functions to exist, such as NFT marketplaces or NFT lending protocols.

Vulnerability Details

The contract strives to be ERC721-compliant ("it should have all the functionality of a normal NFT. It should be able to be viewed, transferred, approved, etc.") but is missing mandatory functions defined in the ERC721 standard ( https://eips.ethereum.org/EIPS/eip-721 ):

  • getApproved(uint256)

  • isApprovedForAll(address,address)

  • supportsInterface(bytes4)

Without these functions, third-party protocols like NFT marketplaces or lending protocols may not be able to integrate this contract.

Impact

Low. This does not impact the raffle functionality of the contract. NFTs can still be transferred between accounts.

Tools Used

Code inspection.

Recommendations

Export the external functions getApproved(), isApprovedForAll(), and supportsInterface() when inheriting from snekmate's ERC721 reference implementation.

Updates

Lead Judging Commences

inallhonesty Lead Judge over 1 year ago
Submission Judgement Published
Invalidated
Reason: Non-acceptable severity

Support

FAQs

Can't find an answer? Chat with us on Discord, Twitter or Linkedin.