The RAACNFT
contract does not implement batch minting functionality, which is inconsistent with the protocol's documentation.
According to the RAACNFT
documentation, batch minting should be a supported feature. However, the contract only provides a single NFT minting function.
Implementation Details
The RAACNFT is implemented in the RAACNFT.sol contract.
Key features of the implementation include:
Inherits from ERC721, ERC721Enumerable, and Ownable
Uses an external contract (IRAACHousePrices) to determine house prices
Implements batch minting functionality -> Not Implemented
Uses SafeERC20 for secure token transfers during minting
Allows setting of base URI for token metadata
Documentation Reference: https://github.com/Cyfrin/2025-02-raac/blob/main/docs/core/tokens/RAACNFT.md#implementation-details
Inconsistency with Documentation**:** The absence of batch minting contradicts the protocol's expected behavior.
The contract lacks a batchMint
function that allows users to mint multiple NFTs in a single transaction.
The addNewBatch
function only increases the currentBatchSize
but does not enable batch minting of NFTs.
The absence of batch minting functionality forces users to call mint
repeatedly, leading to increased gas costs and inefficiencies.
Manual Review
Implement a batchMint
function to allow users to mint multiple NFTs in a single transaction. Below is a suggested 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.