The contract defines 9 custom errors at the top but never uses them. All admin functions use require() with string literals instead. Custom errors are significantly cheaper than string reverts because strings are stored and returned as ABI-encoded data while custom errors use only a 4-byte selector. The errors are already written — they are simply never called.
Impact:
~50 gas wasted per revert across all admin functions.
Dead code bloat — 9 errors declared and never referenced.
Inconsistent style — claim() and constructor use revert CustomError() correctly, admin functions do not.
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.