The redeemMemorabilia() function in the FestivalPass contract uses the following condition to check if a memorabilia collection has reached its minting limit:
However, this check causes the final item (itemId == maxSupply) to be inaccessible. Once currentItemId reaches maxSupply, the condition fails and no further redemptions are allowed — even though one item remains.
This results in:
Under-supply: Fewer NFTs than advertised.
Incorrect logic in limited-edition distribution.
Likelihood:
This will happen automatically when the collection reaches maxSupply - 1 and one more user attempts to redeem the final item.
Impact:
Users are unable to mint the final NFT in the collection.
Causes the collection to be incomplete, despite expectations and maxSupply.
Reduces user trust in NFT supply guarantees.
This fix allows the final item (when currentItemId == maxSupply) to be redeemed as expected.
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.