The principal is allowed to upgrade the system prior to the school session ending.
There are no require statements or reverts preventing the 'graduateAndUpgrade()' function from being called by the principal prior to the school session ending:
This allows the principal to successfully call the function prior to the school session ending (either on accident or maliciously), breaking a key invariant.
Manual review and Foundry
Include a revert that prevents the function from being called if the school is still in session (preferably implementing a custom error as well, such as "HH_SchoolStillInSession":
`graduateAndUpgrade()` can be called successfully even when the school session has not ended
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.