If 3 teachers, they will get 3 × 35% = 105% of bursary!
If usdc contract's
safeTransfercalls the token's transfer() function.If transfer() returns false or reverts, then
safeTransferreverts the entire transaction.So if at any point there’s not enough balance to transfer to the next teacher:
That call to
safeTransfer(...)will revertThe entire loop and transaction will revert
No funds will be transferred at all (even to the first few teachers)
If the balance of the usdc contract is greater than totalTeachers * payPerTeacher, an amount of funds 35 * totalTeachers% will be shared, which will have a serious impact on management.
On the other hand, if the balance is insufficient, the safeTransfer function will fail and no teacher will receive money, and causing no one to teach.
Manual Review
Calculate each teacher's allocation:
payPerTeacher = payTotalTeacher / totalTeachers.
`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.