The payment distribution system incorrectly allocates the full 35% teacher share to EACH teacher rather than splitting it among all teachers, resulting in massive overpayments that drain the contract balance and violate protocol specifications.
File: levelOne.sol
Function: graduateAndUpgrade(address _levelTwo, bytes memory)
Multiplicative Overpayment:
Currently pays (bursary * 35%)
to EACH teacher
With 2 teachers, pays 70% of bursary instead of 35% total
Scales dangerously with more teachers (3 teachers → 105% payout)
Documentation Violation:
Explicitly contradicts protocol specs requiring "teachers share of 35% of bursary" (total, not per-teacher)
Bursary Drain Risk:
Could completely deplete contract funds
Makes remaining 60% bursary guarantee impossible
Test Case:
Test Result:
Critical Severity because:
Can drain entire bursary with enough teachers
Makes financial promises mathematically impossible
Violates core protocol economic model
Could bankrupt the system
Foundry (forge test)
Calculate Correct Per-Teacher Share:
`payPerTeacher` in `graduateAndUpgrade()` is incorrectly calculated.
`payPerTeacher` in `graduateAndUpgrade()` is incorrectly calculated.
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.