The LevelOne::graduateAndUpgrade function distributes only 40% of the contract’s bursary balance—35% to teachers and 5% to the principal—while the remaining 60% is never used or withdrawn. This leftover amount stays permanently locked in the contract, with no way for any party to access or repurpose the funds, resulting in a silent fund sink.
The function calculates fixed percentages for principal and teacher payments:
Fixed Distribution
Only 40% of bursary is allocated via TEACHER_WAGE and PRINCIPAL_WAGE.
No Remainder Handling
The remaining 60% is not distributed, refunded, or tracked for future use.
Permanent Fund Lock
Since bursary is never reduced after payouts, it accumulates locked USDC that cannot be retrieved.
Funds Inaccessible: 60% of each enrollment payment becomes permanently locked.
Protocol Inefficiency: Long-term operation will accumulate unusable capital.
Manual Code Review
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.