behavior: the contract owner should be a valid non-zero address to ensure owner-only functions remain callable.
Issue: the constructor assigns owner = _owner without validating _owner != address(0), allowing deployment with a zero owner.
Likelihood:
Deployment occurs with a misconfigured or uninitialized owner address.
Scripts or deployment tooling pass address(0) by mistake.
Impact:
Owner-only functions (revealCollection, whitelistWallet, removeWhitelistedWallet, withdrawFees) become permanently inaccessible.
Protocol administration and fee withdrawal can be irrevocably locked.
Deployments fail fast if the owner is misconfigured. We can also set owner = msg.sender and remove the _owner parameter entirely to avoid this class of error.
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.
The contest is complete and the rewards are being distributed.