No check for student reviews or sessionEnd validation. Which violates the Invariants rule
The contract intends to follow these rules:
System upgrade cannot take place unless school's sessionEnd has reached
Students must have gotten all reviews before system upgrade. System upgrade should not occur if any student has not gotten 4 reviews (one for each week)
But there's no check for student reviews or sessionEnd validation in LevelOne::graduateAndUpgrade, which allows the system to upgrade when there remains students who haven't gotten 4 reviews or the school's sessionEnd has not reached.
Proof of Code Run the following test in LevelOneAndGraduateTest.t.sol
Breaks the invariant rules.
Manual.
Add checks and validations for student reviews and sessionEnd in LevelOne::graduateAndUpgrade
All students are graduated when the graduation function is called as the cut-off criteria is not applied.
`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.