The RAACNFT contract inherits from both ERC721 and ERC721Enumerable, but since ERC721 is inherited first, function calls using super. default to ERC721 instead of ERC721Enumerable. This results in enumeration functions not working as expected, breaking the NFT tracking functionality.
Since in docs it is given that RAACNFT is enumeration type, but it will not work as enumeration.
Provide enumeration capabilities for NFTs
In the contract:
Since ERC721 is inherited first, functions using super. will reference ERC721 rather than ERC721Enumerable.
For example, in _update():
Here, super._update() calls the ERC721 version instead of ERC721Enumerable, making enumeration functions like tokenOfOwnerByIndex() unusable.
Breaks enumeration capabilities for NFTs, contradicting the protocol's intended functionality.
Manual Code Review
Change the inheritance order to ensure ERC721Enumerable is listed first:
This ensures super. calls prioritize ERC721Enumerable.
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.