github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/x/staking/handler_distr_proposal.go (about) 1 package staking 2 3 import ( 4 sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types" 5 "github.com/fibonacci-chain/fbc/x/staking/keeper" 6 "github.com/fibonacci-chain/fbc/x/staking/types" 7 ) 8 9 func handleMsgEditValidatorCommissionRate(ctx sdk.Context, msg types.MsgEditValidatorCommissionRate, k keeper.Keeper) (*sdk.Result, error) { 10 // validator must already be registered 11 validator, found := k.GetValidator(ctx, msg.ValidatorAddress) 12 if !found { 13 return nil, ErrNoValidatorFound(msg.ValidatorAddress.String()) 14 } 15 16 commission, err := k.UpdateValidatorCommission(ctx, validator, msg.CommissionRate) 17 if err != nil { 18 return nil, err 19 } 20 21 // call the before-modification hook since we're about to update the commission 22 k.BeforeValidatorModified(ctx, msg.ValidatorAddress) 23 24 validator.Commission = commission 25 26 k.SetValidator(ctx, validator) 27 28 ctx.EventManager().EmitEvents(sdk.Events{ 29 sdk.NewEvent(types.EventTypeEditValidatorCommissionRate, 30 sdk.NewAttribute(types.AttributeKeyCommissionRate, msg.CommissionRate.String()), 31 ), 32 sdk.NewEvent(sdk.EventTypeMessage, 33 sdk.NewAttribute(sdk.AttributeKeyModule, types.AttributeValueCategory), 34 sdk.NewAttribute(sdk.AttributeKeySender, msg.ValidatorAddress.String()), 35 ), 36 }) 37 38 return &sdk.Result{Events: ctx.EventManager().Events()}, nil 39 }