diff --git a/packages/protocol/contracts/L1/libs/LibVerifying.sol b/packages/protocol/contracts/L1/libs/LibVerifying.sol index 56600f6f46a..40bcd1dd68d 100644 --- a/packages/protocol/contracts/L1/libs/LibVerifying.sol +++ b/packages/protocol/contracts/L1/libs/LibVerifying.sol @@ -144,7 +144,8 @@ library LibVerifying { TkoToken tkoToken ) private { uint refund = (target.deposit * (10000 - tRelBp)) / 10000; - if (refund > 0) { + if (refund > 0 && tkoToken.balanceOf(target.proposer) > 0) { + // Do not refund proposer with 0 TKO balance. tkoToken.mint(target.proposer, refund); } } @@ -160,8 +161,10 @@ library LibVerifying { uint proverReward = (reward * weight) / sum; if (tkoToken.balanceOf(fc.provers[i]) == 0) { - // reduce reward if the prover has 0 TKO balance. - proverReward /= 2; + // Reduce reward to 1 wei as a penalty if the prover + // has 0 TKO balance. This allows the next prover reward + // to be fully paid. + proverReward = uint256(1); } tkoToken.mint(fc.provers[i], proverReward); }