Normally, when a new memorabilia collection is created using createMemorabiliaCollection
, the collection can be activated immediately via the activateNow
boolean. Once active, users can redeem memorabilia items using BEAT tokens.
However, if the collection is created with activateNow = false
, the collection is permanently inactive due to the absence of a function to later activate it. This results in a functional deadlock — the collection exists on-chain but cannot be used or interacted with meaningfully.
Likelihood:
Organizers may choose to delay activation (for planning or sequencing) and call the function with activateNow = false
.
There is no mechanism to update the isActive
flag afterward, which is not intuitive.
Impact:
The collection becomes permanently inactive, leading to a non-functional or inaccessible NFT collection.
This results in wasted storage, blocked token issuance, and may affect user or organizer trust if collections appear "broken".
Explanation: There is no available function to toggle isActive
to true after creation, so any call to redeemMemorabilia()
will fail indefinitely.
Add a simple function such as activateCollection()
that allows the organizer to mark a previously created collection as active. This preserves flexibility without breaking the contract's existing logic. Optionally, a deactivateCollection()
function can also be added for symmetric control.
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.