Description: According to the README, the preparation phase explicitly allows whitelisted users to mint NFTs before the collection is revealed. However, mintNft() is gated by the onlyWhenRevealed modifier, making it impossible to mint until after revealCollection() is called.
README: "Preparation phase [...] owner whitelists wallets that can mint NFTs"
Impact: Core protocol functionality is broken. Minting is entirely blocked during the preparation phase, violating the intended two-phase design.
Proof of Concept:
A whitelisted user attempting to mint before reveal will always revert, despite the README explicitly allowing it during the preparation phase.
Run forge test --match-test test_poc_M1 -vvv to see the following output:
Recommended Mitigation: Remove the onlyWhenRevealed modifier from mintNft().
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.
The contest is complete and the rewards are being distributed.