Functions like addTeacher, removeTeacher, updatePrincipal, etc., all repeat the same check
That identical revert is copied in multiple places throughout the codebase.
Impact:
-Extra gas in both the bytecode and at runtime — each duplicated if/revert adds roughly 12–15 bytes; with multiple code paths you may exceed the size limit for upgradeable contracts.
-Duplicated maintenance — any change to the error message requires editing every occurrence.
Recommended Mitigation:
Move the check into a single internal function or modifier, for example
Then apply nonZero to all relevant methods
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.