High
After upgrading from LevelOne to LevelTwo, the contract will lack essential functionality for school operations. Critical functions like enroll()
, startSession()
, and giveReview()
are completely missing, rendering the school system non-operational after upgrade. Students cannot join, sessions cannot start, and reviews cannot be given, effectively breaking the entire educational platform.
LevelTwo.sol is supposed to be the upgraded version of LevelOne.sol, continuing the school operations with the remaining 60% of funds. However, it's missing nearly all essential functions required for the school to operate:
enroll()
- Students cannot join the school
addTeacher()
and removeTeacher()
- Faculty cannot be managed
expel()
- Problematic students cannot be removed
startSession()
- New school sessions cannot be initiated
giveReview()
- Students cannot receive weekly reviews
This absence of core functionality means that after upgrade, even though the contract preserves some state (like existing students and teachers), no new educational activities can occur. The school essentially becomes a static repository with no way to conduct its primary operations.
The issue is particularly severe because according to the protocol documentation, the system is expected to continue functioning with the 60% of bursary funds that remain after paying teachers and the principal. However, the lack of these critical functions means these funds cannot be utilized for their intended purpose.
Manual code review
Implement all missing core functionality in LevelTwo by either:
Having LevelTwo inherit core functionality from LevelOne:
Or create a shared base contract to prevent code duplication:
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.