From 2d1d68d3fdb6b2b3f162382740bb00d2dd41d8a1 Mon Sep 17 00:00:00 2001 From: testinginprod <98415576+testinginprod@users.noreply.github.com> Date: Fri, 9 Jun 2023 11:19:37 +0200 Subject: [PATCH] refactor(distribution)!: use collections for ValidatorCurrentRewards (#16459) Co-authored-by: unknown unknown --- CHANGELOG.md | 9 +++- .../distribution/keeper/grpc_query_test.go | 2 +- .../distribution/keeper/msg_server_test.go | 2 +- x/distribution/keeper/allocation.go | 9 ++-- x/distribution/keeper/allocation_test.go | 27 +++++------- x/distribution/keeper/delegation.go | 2 +- x/distribution/keeper/genesis.go | 11 +++-- x/distribution/keeper/hooks.go | 2 +- x/distribution/keeper/keeper.go | 8 ++++ x/distribution/keeper/store.go | 44 ------------------- x/distribution/keeper/validator.go | 10 +++-- x/distribution/migrations/v2/store_test.go | 2 +- x/distribution/simulation/decoder_test.go | 3 -- x/distribution/simulation/operations_test.go | 4 +- x/distribution/types/keys.go | 7 +-- x/staking/simulation/operations_test.go | 4 +- 16 files changed, 56 insertions(+), 90 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8906f5b7b8..e0848b427e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -38,6 +38,13 @@ Ref: https://keepachangelog.com/en/1.0.0/ ## [Unreleased] +### API Breaking + +* (x/distribution) [#16440](https://github.com/cosmos/cosmos-sdk/pull/16440) use collections for `DelegatorWithdrawAddresState`: + * remove `Keeper`: `SetDelegatorWithdrawAddr`, `DeleteDelegatorWithdrawAddr`, `IterateDelegatorWithdrawAddrs`. +* (x/distribution) [#16459](https://github.com/cosmos/cosmos-sdk/pull/16459) use collections for `ValidatorCurrentRewards` state management: + * remove `Keeper`: `IterateValidatorCurrentRewards`, `GetValidatorCurrentRewards`, `SetValidatorCurrentRewards`, `DeleteValidatorCurrentRewards` + ## [v0.50.0-alpha.0](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.50.0-alpha.0) - 2023-06-07 ### Features @@ -255,8 +262,6 @@ Ref: https://keepachangelog.com/en/1.0.0/ * (sims) [#16052](https://github.com/cosmos/cosmos-sdk/pull/16062) `GetOrGenerate` no longer requires a codec argument is now 4-arity instead of 5-arity. * (baseapp) [#16342](https://github.com/cosmos/cosmos-sdk/pull/16342) NewContext was renamed to NewContextLegacy. The replacement (NewContext) now does not take a header, instead you should set the header via `WithHeaderInfo` or `WithBlockHeight`. Note that `WithBlockHeight` will soon be depreacted and its recommneded to use `WithHeaderInfo` * (x/auth) [#16112](https://github.com/cosmos/cosmos-sdk/issues/16112) `helpers.AddGenesisAccount` has been moved to `x/genutil` to remove the cyclic dependency between `x/auth` and `x/genutil`. -* (x/distribution) [#16440](https://github.com/cosmos/cosmos-sdk/pull/16440) use collections for `DelegatorWithdrawAddresState`: - * remove `Keeper`: `SetDelegatorWithdrawAddr`, `DeleteDelegatorWithdrawAddr`, `IterateDelegatorWithdrawAddrs`. ### Client Breaking Changes diff --git a/tests/integration/distribution/keeper/grpc_query_test.go b/tests/integration/distribution/keeper/grpc_query_test.go index 61799034ac..8493684d78 100644 --- a/tests/integration/distribution/keeper/grpc_query_test.go +++ b/tests/integration/distribution/keeper/grpc_query_test.go @@ -517,7 +517,7 @@ func TestGRPCDelegationRewards(t *testing.T) { assert.NilError(t, f.distrKeeper.SetValidatorHistoricalRewards(f.sdkCtx, validator.GetOperator(), 2, historicalRewards)) // setup current rewards and outstanding rewards currentRewards := types.NewValidatorCurrentRewards(decCoins, 3) - assert.NilError(t, f.distrKeeper.SetValidatorCurrentRewards(f.sdkCtx, f.valAddr, currentRewards)) + assert.NilError(t, f.distrKeeper.ValidatorCurrentRewards.Set(f.sdkCtx, f.valAddr, currentRewards)) assert.NilError(t, f.distrKeeper.SetValidatorOutstandingRewards(f.sdkCtx, f.valAddr, types.ValidatorOutstandingRewards{Rewards: decCoins})) expRes := &types.QueryDelegationRewardsResponse{ diff --git a/tests/integration/distribution/keeper/msg_server_test.go b/tests/integration/distribution/keeper/msg_server_test.go index b13c708263..1edfe372bc 100644 --- a/tests/integration/distribution/keeper/msg_server_test.go +++ b/tests/integration/distribution/keeper/msg_server_test.go @@ -197,7 +197,7 @@ func TestMsgWithdrawDelegatorReward(t *testing.T) { require.NoError(t, err) // setup current rewards and outstanding rewards currentRewards := distrtypes.NewValidatorCurrentRewards(decCoins, 3) - err = f.distrKeeper.SetValidatorCurrentRewards(f.sdkCtx, f.valAddr, currentRewards) + err = f.distrKeeper.ValidatorCurrentRewards.Set(f.sdkCtx, f.valAddr, currentRewards) require.NoError(t, err) err = f.distrKeeper.SetValidatorOutstandingRewards(f.sdkCtx, f.valAddr, distrtypes.ValidatorOutstandingRewards{Rewards: valCommission}) require.NoError(t, err) diff --git a/x/distribution/keeper/allocation.go b/x/distribution/keeper/allocation.go index fce0cfefc2..5c654c48cb 100644 --- a/x/distribution/keeper/allocation.go +++ b/x/distribution/keeper/allocation.go @@ -2,7 +2,9 @@ package keeper import ( "context" + "errors" + "cosmossdk.io/collections" "cosmossdk.io/math" abci "github.com/cometbft/cometbft/abci/types" @@ -105,13 +107,14 @@ func (k Keeper) AllocateTokensToValidator(ctx context.Context, val stakingtypes. } // update current rewards - currentRewards, err := k.GetValidatorCurrentRewards(ctx, val.GetOperator()) - if err != nil { + currentRewards, err := k.ValidatorCurrentRewards.Get(ctx, val.GetOperator()) + // if the rewards do not exist it's fine, we will just add to zero. + if err != nil && !errors.Is(err, collections.ErrNotFound) { return err } currentRewards.Rewards = currentRewards.Rewards.Add(shared...) - err = k.SetValidatorCurrentRewards(ctx, val.GetOperator(), currentRewards) + err = k.ValidatorCurrentRewards.Set(ctx, val.GetOperator(), currentRewards) if err != nil { return err } diff --git a/x/distribution/keeper/allocation_test.go b/x/distribution/keeper/allocation_test.go index 5ca02a56ee..dfd426ee0e 100644 --- a/x/distribution/keeper/allocation_test.go +++ b/x/distribution/keeper/allocation_test.go @@ -4,6 +4,7 @@ import ( "testing" "time" + "cosmossdk.io/collections" "cosmossdk.io/math" abci "github.com/cometbft/cometbft/abci/types" cmtproto "github.com/cometbft/cometbft/proto/tendermint/types" @@ -70,7 +71,7 @@ func TestAllocateTokensToValidatorWithCommission(t *testing.T) { require.Equal(t, expected, valCommission.Commission) // check current rewards - currentRewards, err := distrKeeper.GetValidatorCurrentRewards(ctx, val.GetOperator()) + currentRewards, err := distrKeeper.ValidatorCurrentRewards.Get(ctx, val.GetOperator()) require.NoError(t, err) require.Equal(t, expected, currentRewards.Rewards) } @@ -149,13 +150,11 @@ func TestAllocateTokensToManyValidators(t *testing.T) { require.NoError(t, err) require.True(t, val1Commission.Commission.IsZero()) - val0CurrentRewards, err := distrKeeper.GetValidatorCurrentRewards(ctx, valAddr0) - require.NoError(t, err) - require.True(t, val0CurrentRewards.Rewards.IsZero()) + _, err = distrKeeper.ValidatorCurrentRewards.Get(ctx, valAddr0) + require.ErrorIs(t, err, collections.ErrNotFound) // require no rewards - val1CurrentRewards, err := distrKeeper.GetValidatorCurrentRewards(ctx, valAddr1) - require.NoError(t, err) - require.True(t, val1CurrentRewards.Rewards.IsZero()) + _, err = distrKeeper.ValidatorCurrentRewards.Get(ctx, valAddr1) + require.ErrorIs(t, err, collections.ErrNotFound) // require no rewards // allocate tokens as if both had voted and second was proposer fees := sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, math.NewInt(100))) @@ -197,12 +196,12 @@ func TestAllocateTokensToManyValidators(t *testing.T) { require.True(t, val1Commission.Commission.IsZero()) // just staking.proportional for first proposer less commission = (0.5 * 98%) * 100 / 2 = 24.50 - val0CurrentRewards, err = distrKeeper.GetValidatorCurrentRewards(ctx, valAddr0) + val0CurrentRewards, err := distrKeeper.ValidatorCurrentRewards.Get(ctx, valAddr0) require.NoError(t, err) require.Equal(t, sdk.DecCoins{{Denom: sdk.DefaultBondDenom, Amount: math.LegacyNewDecWithPrec(2450, 2)}}, val0CurrentRewards.Rewards) // proposer reward + staking.proportional for second proposer = (0.5 * (98%)) * 100 = 49 - val1CurrentRewards, err = distrKeeper.GetValidatorCurrentRewards(ctx, valAddr1) + val1CurrentRewards, err := distrKeeper.ValidatorCurrentRewards.Get(ctx, valAddr1) require.NoError(t, err) require.Equal(t, sdk.DecCoins{{Denom: sdk.DefaultBondDenom, Amount: math.LegacyNewDecWithPrec(490, 1)}}, val1CurrentRewards.Rewards) } @@ -292,13 +291,11 @@ func TestAllocateTokensTruncation(t *testing.T) { require.NoError(t, err) require.True(t, val1Commission.Commission.IsZero()) - val0CurrentRewards, err := distrKeeper.GetValidatorCurrentRewards(ctx, valAddr0) - require.NoError(t, err) - require.True(t, val0CurrentRewards.Rewards.IsZero()) + _, err = distrKeeper.ValidatorCurrentRewards.Get(ctx, valAddr0) + require.ErrorIs(t, err, collections.ErrNotFound) // require no rewards - val1CurrentRewards, err := distrKeeper.GetValidatorCurrentRewards(ctx, valAddr1) - require.NoError(t, err) - require.True(t, val1CurrentRewards.Rewards.IsZero()) + _, err = distrKeeper.ValidatorCurrentRewards.Get(ctx, valAddr1) + require.ErrorIs(t, err, collections.ErrNotFound) // require no rewards // allocate tokens as if both had voted and second was proposer fees := sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, math.NewInt(634195840))) diff --git a/x/distribution/keeper/delegation.go b/x/distribution/keeper/delegation.go index fdd19fd8ce..7c43d95f9e 100644 --- a/x/distribution/keeper/delegation.go +++ b/x/distribution/keeper/delegation.go @@ -14,7 +14,7 @@ import ( // initialize starting info for a new delegation func (k Keeper) initializeDelegation(ctx context.Context, val sdk.ValAddress, del sdk.AccAddress) error { // period has already been incremented - we want to store the period ended by this delegation action - valCurrentRewards, err := k.GetValidatorCurrentRewards(ctx, val) + valCurrentRewards, err := k.ValidatorCurrentRewards.Get(ctx, val) if err != nil { return err } diff --git a/x/distribution/keeper/genesis.go b/x/distribution/keeper/genesis.go index e5a1465b91..28e53b81c7 100644 --- a/x/distribution/keeper/genesis.go +++ b/x/distribution/keeper/genesis.go @@ -84,7 +84,7 @@ func (k Keeper) InitGenesis(ctx sdk.Context, data types.GenesisState) { if err != nil { panic(err) } - err = k.SetValidatorCurrentRewards(ctx, valAddr, cur.Rewards) + err = k.ValidatorCurrentRewards.Set(ctx, valAddr, cur.Rewards) if err != nil { panic(err) } @@ -198,15 +198,18 @@ func (k Keeper) ExportGenesis(ctx sdk.Context) *types.GenesisState { ) cur := make([]types.ValidatorCurrentRewardsRecord, 0) - k.IterateValidatorCurrentRewards(ctx, - func(val sdk.ValAddress, rewards types.ValidatorCurrentRewards) (stop bool) { + err = k.ValidatorCurrentRewards.Walk(ctx, nil, + func(val sdk.ValAddress, rewards types.ValidatorCurrentRewards) (stop bool, err error) { cur = append(cur, types.ValidatorCurrentRewardsRecord{ ValidatorAddress: val.String(), Rewards: rewards, }) - return false + return false, nil }, ) + if err != nil && !errors.Is(err, collections.ErrInvalidIterator) { + panic(err) + } dels := make([]types.DelegatorStartingInfoRecord, 0) k.IterateDelegatorStartingInfos(ctx, diff --git a/x/distribution/keeper/hooks.go b/x/distribution/keeper/hooks.go index 3c7fdd9092..b35477ce18 100644 --- a/x/distribution/keeper/hooks.go +++ b/x/distribution/keeper/hooks.go @@ -108,7 +108,7 @@ func (h Hooks) AfterValidatorRemoved(ctx sdk.Context, _ sdk.ConsAddress, valAddr h.k.DeleteValidatorHistoricalRewards(ctx, valAddr) // clear current rewards - err = h.k.DeleteValidatorCurrentRewards(ctx, valAddr) + err = h.k.ValidatorCurrentRewards.Remove(ctx, valAddr) if err != nil { return err } diff --git a/x/distribution/keeper/keeper.go b/x/distribution/keeper/keeper.go index 2d21c87ad4..68a41b6dd4 100644 --- a/x/distribution/keeper/keeper.go +++ b/x/distribution/keeper/keeper.go @@ -31,6 +31,7 @@ type Keeper struct { Params collections.Item[types.Params] FeePool collections.Item[types.FeePool] DelegatorsWithdrawAddress collections.Map[sdk.AccAddress, sdk.AccAddress] + ValidatorCurrentRewards collections.Map[sdk.ValAddress, types.ValidatorCurrentRewards] feeCollectorName string // name of the FeeCollector ModuleAccount } @@ -64,6 +65,13 @@ func NewKeeper( sdk.LengthPrefixedAddressKey(sdk.AccAddressKey), // nolint: staticcheck // sdk.LengthPrefixedAddressKey is needed to retain state compatibility collcodec.KeyToValueCodec(sdk.AccAddressKey), ), + ValidatorCurrentRewards: collections.NewMap( + sb, + types.ValidatorCurrentRewardsPrefix, + "validators_current_rewards", + sdk.LengthPrefixedAddressKey(sdk.ValAddressKey), // nolint: staticcheck // sdk.LengthPrefixedAddressKey is needed to retain state compatibility + codec.CollValue[types.ValidatorCurrentRewards](cdc), + ), } schema, err := sb.Build() diff --git a/x/distribution/keeper/store.go b/x/distribution/keeper/store.go index 239965be74..d668af45f6 100644 --- a/x/distribution/keeper/store.go +++ b/x/distribution/keeper/store.go @@ -179,50 +179,6 @@ func (k Keeper) GetValidatorHistoricalReferenceCount(ctx context.Context) (count return } -// get current rewards for a validator -func (k Keeper) GetValidatorCurrentRewards(ctx context.Context, val sdk.ValAddress) (rewards types.ValidatorCurrentRewards, err error) { - store := k.storeService.OpenKVStore(ctx) - b, err := store.Get(types.GetValidatorCurrentRewardsKey(val)) - if err != nil { - return - } - - err = k.cdc.Unmarshal(b, &rewards) - return -} - -// set current rewards for a validator -func (k Keeper) SetValidatorCurrentRewards(ctx context.Context, val sdk.ValAddress, rewards types.ValidatorCurrentRewards) error { - store := k.storeService.OpenKVStore(ctx) - b, err := k.cdc.Marshal(&rewards) - if err != nil { - return err - } - - return store.Set(types.GetValidatorCurrentRewardsKey(val), b) -} - -// delete current rewards for a validator -func (k Keeper) DeleteValidatorCurrentRewards(ctx context.Context, val sdk.ValAddress) error { - store := k.storeService.OpenKVStore(ctx) - return store.Delete(types.GetValidatorCurrentRewardsKey(val)) -} - -// iterate over current rewards -func (k Keeper) IterateValidatorCurrentRewards(ctx context.Context, handler func(val sdk.ValAddress, rewards types.ValidatorCurrentRewards) (stop bool)) { - store := runtime.KVStoreAdapter(k.storeService.OpenKVStore(ctx)) - iter := storetypes.KVStorePrefixIterator(store, types.ValidatorCurrentRewardsPrefix) - defer iter.Close() - for ; iter.Valid(); iter.Next() { - var rewards types.ValidatorCurrentRewards - k.cdc.MustUnmarshal(iter.Value(), &rewards) - addr := types.GetValidatorCurrentRewardsAddress(iter.Key()) - if handler(addr, rewards) { - break - } - } -} - // get accumulated commission for a validator func (k Keeper) GetValidatorAccumulatedCommission(ctx context.Context, val sdk.ValAddress) (commission types.ValidatorAccumulatedCommission, err error) { store := k.storeService.OpenKVStore(ctx) diff --git a/x/distribution/keeper/validator.go b/x/distribution/keeper/validator.go index 7d17cebec0..7354d8a7c7 100644 --- a/x/distribution/keeper/validator.go +++ b/x/distribution/keeper/validator.go @@ -4,7 +4,9 @@ import ( "context" "fmt" + "cosmossdk.io/collections" "cosmossdk.io/math" + "github.com/pkg/errors" sdk "github.com/cosmos/cosmos-sdk/types" @@ -21,7 +23,7 @@ func (k Keeper) initializeValidator(ctx context.Context, val stakingtypes.Valida } // set current rewards (starting at period 1) - err = k.SetValidatorCurrentRewards(ctx, val.GetOperator(), types.NewValidatorCurrentRewards(sdk.DecCoins{}, 1)) + err = k.ValidatorCurrentRewards.Set(ctx, val.GetOperator(), types.NewValidatorCurrentRewards(sdk.DecCoins{}, 1)) if err != nil { return err } @@ -40,8 +42,8 @@ func (k Keeper) initializeValidator(ctx context.Context, val stakingtypes.Valida // increment validator period, returning the period just ended func (k Keeper) IncrementValidatorPeriod(ctx context.Context, val stakingtypes.ValidatorI) (uint64, error) { // fetch current rewards - rewards, err := k.GetValidatorCurrentRewards(ctx, val.GetOperator()) - if err != nil { + rewards, err := k.ValidatorCurrentRewards.Get(ctx, val.GetOperator()) + if err != nil && !errors.Is(err, collections.ErrNotFound) { return 0, err } @@ -100,7 +102,7 @@ func (k Keeper) IncrementValidatorPeriod(ctx context.Context, val stakingtypes.V } // set current rewards, incrementing period by 1 - err = k.SetValidatorCurrentRewards(ctx, val.GetOperator(), types.NewValidatorCurrentRewards(sdk.DecCoins{}, rewards.Period+1)) + err = k.ValidatorCurrentRewards.Set(ctx, val.GetOperator(), types.NewValidatorCurrentRewards(sdk.DecCoins{}, rewards.Period+1)) if err != nil { return 0, err } diff --git a/x/distribution/migrations/v2/store_test.go b/x/distribution/migrations/v2/store_test.go index 2e51aba7e0..acb22fb3bc 100644 --- a/x/distribution/migrations/v2/store_test.go +++ b/x/distribution/migrations/v2/store_test.go @@ -68,7 +68,7 @@ func TestStoreMigration(t *testing.T) { { "ValidatorCurrentRewards", v1.GetValidatorCurrentRewardsKey(valAddr), - types.GetValidatorCurrentRewardsKey(valAddr), + append(types.ValidatorCurrentRewardsPrefix, address.MustLengthPrefix(valAddr.Bytes())...), }, { "ValidatorAccumulatedCommission", diff --git a/x/distribution/simulation/decoder_test.go b/x/distribution/simulation/decoder_test.go index 564242fbbf..26a14743e7 100644 --- a/x/distribution/simulation/decoder_test.go +++ b/x/distribution/simulation/decoder_test.go @@ -36,7 +36,6 @@ func TestDecodeDistributionStore(t *testing.T) { outstanding := types.ValidatorOutstandingRewards{Rewards: decCoins} commission := types.ValidatorAccumulatedCommission{Commission: decCoins} historicalRewards := types.NewValidatorHistoricalRewards(decCoins, 100) - currentRewards := types.NewValidatorCurrentRewards(decCoins, 5) slashEvent := types.NewValidatorSlashEvent(10, math.LegacyOneDec()) kvPairs := kv.Pairs{ @@ -46,7 +45,6 @@ func TestDecodeDistributionStore(t *testing.T) { {Key: types.GetValidatorOutstandingRewardsKey(valAddr1), Value: cdc.MustMarshal(&outstanding)}, {Key: types.GetDelegatorStartingInfoKey(valAddr1, delAddr1), Value: cdc.MustMarshal(&info)}, {Key: types.GetValidatorHistoricalRewardsKey(valAddr1, 100), Value: cdc.MustMarshal(&historicalRewards)}, - {Key: types.GetValidatorCurrentRewardsKey(valAddr1), Value: cdc.MustMarshal(¤tRewards)}, {Key: types.GetValidatorAccumulatedCommissionKey(valAddr1), Value: cdc.MustMarshal(&commission)}, {Key: types.GetValidatorSlashEventKeyPrefix(valAddr1, 13), Value: cdc.MustMarshal(&slashEvent)}, {Key: []byte{0x99}, Value: []byte{0x99}}, @@ -62,7 +60,6 @@ func TestDecodeDistributionStore(t *testing.T) { {"ValidatorOutstandingRewards", fmt.Sprintf("%v\n%v", outstanding, outstanding)}, {"DelegatorStartingInfo", fmt.Sprintf("%v\n%v", info, info)}, {"ValidatorHistoricalRewards", fmt.Sprintf("%v\n%v", historicalRewards, historicalRewards)}, - {"ValidatorCurrentRewards", fmt.Sprintf("%v\n%v", currentRewards, currentRewards)}, {"ValidatorAccumulatedCommission", fmt.Sprintf("%v\n%v", commission, commission)}, {"ValidatorSlashEvent", fmt.Sprintf("%v\n%v", slashEvent, slashEvent)}, {"other", ""}, diff --git a/x/distribution/simulation/operations_test.go b/x/distribution/simulation/operations_test.go index 256a633ffb..235962d760 100644 --- a/x/distribution/simulation/operations_test.go +++ b/x/distribution/simulation/operations_test.go @@ -309,10 +309,10 @@ func (suite *SimTestSuite) getTestingValidator(accounts []simtypes.Account, comm func (suite *SimTestSuite) setupValidatorRewards(valAddress sdk.ValAddress) { decCoins := sdk.DecCoins{sdk.NewDecCoinFromDec(sdk.DefaultBondDenom, math.LegacyOneDec())} historicalRewards := types.NewValidatorHistoricalRewards(decCoins, 2) - suite.distrKeeper.SetValidatorHistoricalRewards(suite.ctx, valAddress, 2, historicalRewards) + suite.Require().NoError(suite.distrKeeper.SetValidatorHistoricalRewards(suite.ctx, valAddress, 2, historicalRewards)) // setup current revards currentRewards := types.NewValidatorCurrentRewards(decCoins, 3) - suite.distrKeeper.SetValidatorCurrentRewards(suite.ctx, valAddress, currentRewards) + suite.Require().NoError(suite.distrKeeper.ValidatorCurrentRewards.Set(suite.ctx, valAddress, currentRewards)) } func TestSimTestSuite(t *testing.T) { diff --git a/x/distribution/types/keys.go b/x/distribution/types/keys.go index a98e67e4a8..215c2f78a5 100644 --- a/x/distribution/types/keys.go +++ b/x/distribution/types/keys.go @@ -50,7 +50,7 @@ var ( DelegatorWithdrawAddrPrefix = collections.NewPrefix(3) // key for delegator withdraw address DelegatorStartingInfoPrefix = []byte{0x04} // key for delegator starting info - ValidatorHistoricalRewardsPrefix = []byte{0x05} // key for historical validators rewards / stake + ValidatorHistoricalRewardsPrefix = collections.NewPrefix(5) // key for historical validators rewards / stake ValidatorCurrentRewardsPrefix = []byte{0x06} // key for current validator rewards ValidatorAccumulatedCommissionPrefix = []byte{0x07} // key for accumulated validator commission ValidatorSlashEventPrefix = []byte{0x08} // key for validator slash fraction @@ -177,11 +177,6 @@ func GetValidatorHistoricalRewardsKey(v sdk.ValAddress, k uint64) []byte { return append(append(ValidatorHistoricalRewardsPrefix, address.MustLengthPrefix(v.Bytes())...), b...) } -// GetValidatorCurrentRewardsKey creates the key for a validator's current rewards. -func GetValidatorCurrentRewardsKey(v sdk.ValAddress) []byte { - return append(ValidatorCurrentRewardsPrefix, address.MustLengthPrefix(v.Bytes())...) -} - // GetValidatorAccumulatedCommissionKey creates the key for a validator's current commission. func GetValidatorAccumulatedCommissionKey(v sdk.ValAddress) []byte { return append(ValidatorAccumulatedCommissionPrefix, address.MustLengthPrefix(v.Bytes())...) diff --git a/x/staking/simulation/operations_test.go b/x/staking/simulation/operations_test.go index 453ac35a3a..a02a18e42b 100644 --- a/x/staking/simulation/operations_test.go +++ b/x/staking/simulation/operations_test.go @@ -388,10 +388,10 @@ func (s *SimTestSuite) getTestingValidator(ctx sdk.Context, commission types.Com func (s *SimTestSuite) setupValidatorRewards(ctx sdk.Context, valAddress sdk.ValAddress) { decCoins := sdk.DecCoins{sdk.NewDecCoinFromDec(sdk.DefaultBondDenom, math.LegacyOneDec())} historicalRewards := distrtypes.NewValidatorHistoricalRewards(decCoins, 2) - s.distrKeeper.SetValidatorHistoricalRewards(ctx, valAddress, 2, historicalRewards) + s.Require().NoError(s.distrKeeper.SetValidatorHistoricalRewards(ctx, valAddress, 2, historicalRewards)) // setup current revards currentRewards := distrtypes.NewValidatorCurrentRewards(decCoins, 3) - s.distrKeeper.SetValidatorCurrentRewards(ctx, valAddress, currentRewards) + s.Require().NoError(s.distrKeeper.ValidatorCurrentRewards.Set(ctx, valAddress, currentRewards)) } func TestSimTestSuite(t *testing.T) {