The upgrade from LevelOne to LevelTwo creates a permanent loss of 60% of the collected funds which remain trapped in the proxy contract. This occurs because only 40% of funds are distributed during the upgrade, and LevelTwo lacks mechanisms to access the remaining funds.
During the upgrade from LevelOne to LevelTwo via the graduateAndUpgrade() function, only 40% of the funds (35% to teachers, 5% to principal) are distributed. The remaining 60% of funds become permanently locked in the proxy because:
Missing Recovery Logic: LevelTwo does not implement any function to access the remaining 60% of funds.
2.No Fund Management in LevelTwo: The LevelTwo contract has declarations matching LevelOne but lacks implementation of fund withdrawal or management:
High Impact: This issue results in permanent loss of 60% of all collected school fees, directly impacting the school's financial resources and sustainability.
The financial impact scales with the number of enrolled students. For example:
With 100 students paying 1000 USDC each: 60,000 USDC permanently locked
With 1000 students paying 1000 USDC each: 600,000 USDC permanently locked
Manual code review
Add Fund Management to LevelTwo: Implement functions to manage the remaining 60% of funds in the LevelTwo contract.
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.