github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/x/staking/keeper/validator_distr_proposal.go (about)

     1  package keeper
     2  
     3  import (
     4  	sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types"
     5  	"github.com/fibonacci-chain/fbc/x/staking/types"
     6  )
     7  
     8  // UpdateValidatorCommission attempts to update a validator's commission rate.
     9  // An error is returned if the new commission rate is invalid.
    10  func (k Keeper) UpdateValidatorCommission(ctx sdk.Context,
    11  	validator types.Validator, newRate sdk.Dec) (types.Commission, error) {
    12  
    13  	commission := validator.Commission
    14  	blockTime := ctx.BlockHeader().Time
    15  	if err := commission.ValidateNewRate(newRate, blockTime); err != nil {
    16  		return commission, err
    17  	}
    18  
    19  	commission.Rate = newRate
    20  	commission.UpdateTime = blockTime
    21  	return commission, nil
    22  }