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.