mintSnowman() loops amount times with no upper bound. Each iteration calls _safeMint() (storage write + callback), emits an event, and increments the counter. For large amounts, this exceeds the block gas limit.
Likelihood:
Unlikely with typical amounts, but possible with large buySnow() purchases which have no cap.
Impact:
If a user's balance exceeds the gas-feasible mint count, their claimSnowman() permanently reverts. Funds locked.
Add a max mint-per-call limit, or use batch minting.
The contest is live. Earn rewards by submitting a finding.
Submissions are being reviewed by our AI judge. Results will be available in a few minutes.
View all submissionsThe contest is complete and the rewards are being distributed.