diff --git a/x/distribution/keeper/allocation.go b/x/distribution/keeper/allocation.go index 1fd7990a7577..35814953dd6a 100644 --- a/x/distribution/keeper/allocation.go +++ b/x/distribution/keeper/allocation.go @@ -89,13 +89,18 @@ func (k Keeper) AllocateTokensToValidator(ctx context.Context, val stakingtypes. commission := tokens.MulDec(val.GetCommission()) shared := tokens.Sub(commission) + valStr, err := k.stakingKeeper.ValidatorAddressCodec().BytesToString(val.GetOperator()) + if err != nil { + return err + } + // update current commission sdkCtx := sdk.UnwrapSDKContext(ctx) sdkCtx.EventManager().EmitEvent( sdk.NewEvent( types.EventTypeCommission, sdk.NewAttribute(sdk.AttributeKeyAmount, commission.String()), - sdk.NewAttribute(types.AttributeKeyValidator, val.GetOperator().String()), + sdk.NewAttribute(types.AttributeKeyValidator, valStr), ), ) currentCommission, err := k.ValidatorsAccumulatedCommission.Get(ctx, val.GetOperator()) diff --git a/x/gov/keeper/tally.go b/x/gov/keeper/tally.go index 63248ef3a1d5..2486c056b41b 100644 --- a/x/gov/keeper/tally.go +++ b/x/gov/keeper/tally.go @@ -28,7 +28,11 @@ func (keeper Keeper) Tally(ctx context.Context, proposal v1.Proposal) (passes, b // fetch all the bonded validators, insert them into currValidators err = keeper.sk.IterateBondedValidatorsByPower(ctx, func(index int64, validator stakingtypes.ValidatorI) (stop bool) { - currValidators[validator.GetOperator().String()] = v1.NewValidatorGovInfo( + valStr, err := keeper.sk.ValidatorAddressCodec().BytesToString(validator.GetOperator()) + if err != nil { + return false + } + currValidators[valStr] = v1.NewValidatorGovInfo( validator.GetOperator(), validator.GetBondedTokens(), validator.GetDelegatorShares(), @@ -50,7 +54,10 @@ func (keeper Keeper) Tally(ctx context.Context, proposal v1.Proposal) (passes, b return false, err } - valAddrStr := sdk.ValAddress(voter).String() + valAddrStr, err := keeper.sk.ValidatorAddressCodec().BytesToString(voter) + if err != nil { + return false, err + } if val, ok := currValidators[valAddrStr]; ok { val.Vote = vote.Options currValidators[valAddrStr] = val diff --git a/x/gov/testutil/expected_keepers_mocks.go b/x/gov/testutil/expected_keepers_mocks.go index cf036c1a98c6..6f0d5ef04bb5 100644 --- a/x/gov/testutil/expected_keepers_mocks.go +++ b/x/gov/testutil/expected_keepers_mocks.go @@ -1056,6 +1056,20 @@ func (mr *MockStakingKeeperMockRecorder) TotalBondedTokens(arg0 interface{}) *go return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "TotalBondedTokens", reflect.TypeOf((*MockStakingKeeper)(nil).TotalBondedTokens), arg0) } +// ValidatorAddressCodec mocks base method. +func (m *MockStakingKeeper) ValidatorAddressCodec() address.Codec { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ValidatorAddressCodec") + ret0, _ := ret[0].(address.Codec) + return ret0 +} + +// ValidatorAddressCodec indicates an expected call of ValidatorAddressCodec. +func (mr *MockStakingKeeperMockRecorder) ValidatorAddressCodec() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ValidatorAddressCodec", reflect.TypeOf((*MockStakingKeeper)(nil).ValidatorAddressCodec)) +} + // MockDistributionKeeper is a mock of DistributionKeeper interface. type MockDistributionKeeper struct { ctrl *gomock.Controller diff --git a/x/gov/types/expected_keepers.go b/x/gov/types/expected_keepers.go index 4a1917c437e7..199aac1cdeba 100644 --- a/x/gov/types/expected_keepers.go +++ b/x/gov/types/expected_keepers.go @@ -18,6 +18,7 @@ type ParamSubspace interface { // StakingKeeper expected staking keeper (Validator and Delegator sets) (noalias) type StakingKeeper interface { + ValidatorAddressCodec() addresscodec.Codec // iterate through bonded validators by operator address, execute func for each validator IterateBondedValidatorsByPower( context.Context, func(index int64, validator stakingtypes.ValidatorI) (stop bool),