The redeemMemorabilia function checks that the collection is marked as active and that the currentItemId has not yet reached maxSupply
Once the collection reaches full supply, the function reverts with Collection sold out and there is no way for the organizer to manually deactivate the collection. Leading wastage of gas for users who further tries to redeem memorabilia based on its active state.
Likelihood:
Medium – This is likely to occur especially with popular collections reaching full supply.
Impact:
Causes confusion among users.
Creates a denial-of-service (DoS) situation for the final redeem call if multiple users attempt redemption concurrently—only one will succeed, and the rest will revert even though the collection remains shown as active.
Organizer creates a memorabilia collection with activateNow = true and maxSupply = 10.
Users redeem up to 10 items.
On the 10th redemption, currentItemId == maxSupply, causing all further redemption attempts to fail with Collection sold out.
The collection remains isActive == true, making the UI or external tools think it’s still redeemable.
Allow the organizer to deactivate a collection manually.
Optionally, set isActive = false automatically once currentItemId == maxSupply during the last successful redemption:
Low because an organizer can use it with active = true and organizer is trusted.
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.