Skip to content

Commit

Permalink
feat: update validator reward calculation
Browse files Browse the repository at this point in the history
  • Loading branch information
sm-stack committed Jul 21, 2024
1 parent 8e092b5 commit 05571c2
Showing 1 changed file with 11 additions and 6 deletions.
17 changes: 11 additions & 6 deletions packages/contracts/contracts/L1/ValidatorManager.sol
Original file line number Diff line number Diff line change
Expand Up @@ -577,9 +577,9 @@ contract ValidatorManager is ISemver, IValidatorManager {
*
* @param validator Address of the validator.
*
* @return The amount of base reward.
* @return The amount of base reward, excluding base reward for the validator.
* @return The amount of boosted reward.
* @return The amount of validator reward.
* @return The amount of reward from commission and base reward for the validator.
*/
function _calculateReward(address validator) internal view returns (uint128, uint128, uint128) {
uint128 commissionRate = _validatorInfo[validator].commissionRate;
Expand All @@ -588,10 +588,6 @@ contract ValidatorManager is ISemver, IValidatorManager {
uint128 validatorReward;

unchecked {
validatorReward = (BASE_REWARD + boostedReward).mulDiv(
commissionRate,
COMMISSION_RATE_DENOM
);
baseReward = BASE_REWARD.mulDiv(
COMMISSION_RATE_DENOM - commissionRate,
COMMISSION_RATE_DENOM
Expand All @@ -600,6 +596,15 @@ contract ValidatorManager is ISemver, IValidatorManager {
COMMISSION_RATE_DENOM - commissionRate,
COMMISSION_RATE_DENOM
);

uint128 validatorKro = ASSET_MANAGER.totalValidatorKro(validator);
uint128 totalKro = ASSET_MANAGER.totalKroAssets(validator);
uint128 validatorBaseReward = baseReward.mulDiv(validatorKro, totalKro + validatorKro);
// Exclude the base reward for the validator from total base reward given to KRO delegators.
baseReward -= validatorBaseReward;
validatorReward =
(BASE_REWARD + boostedReward).mulDiv(commissionRate, COMMISSION_RATE_DENOM) +
validatorBaseReward;
}

return (baseReward, boostedReward, validatorReward);
Expand Down

0 comments on commit 05571c2

Please sign in to comment.