FestivalPass:redeemMemorabilia means -1 maximum memorabilia can be redeemedUsers should be able to call FestivalPass:redeemMemorabilia to redeem beat tokens for memorabilia until the maximum number of memorabilia is reached.
When createMemorabiliaCollection is called by the organizer, the currentItemId starts at 1. The require statement in FestivalPass:redeemMemorabilia incorrectly assumes currentItemId is equal to the current number of memorabilia redeemed, but is actually equal to +1.
Likelihood:
This issue occurs 100% of the time when users call FestivalPass:redeemMemorabilia
Impact:
The biggest impact is when an organizer makes a memorabilia with a maximum supply of 1, then no user will be able to redeem that memorabilia.
For all other maximum supplies greater than 1, users will be able to use the FestivalPass:redeemMemorabilia until the maximum supply -1 is reached
The organizer creates a memorabilia collection with a maximum supply of 1
A user with enough beat tokens to redeem the memorabilia tries and fails to redeem the memorabilia
Place the following into FestivalPass.t.sol
Since collection.currentItemId starts at 1, use <= to check if the collection.maxSupply has been reached.
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.