From 40671c5b31db7c4daa202149afc7bcb9cc31d6cc Mon Sep 17 00:00:00 2001 From: atheesh Date: Mon, 18 Sep 2023 12:05:27 +0530 Subject: [PATCH 1/7] refactor: migrate x/staking `Params` to use collections --- x/staking/keeper/delegation_test.go | 8 ++-- x/staking/keeper/genesis.go | 4 +- x/staking/keeper/grpc_query.go | 2 +- x/staking/keeper/historical_info_test.go | 2 +- x/staking/keeper/keeper.go | 4 ++ x/staking/keeper/keeper_test.go | 8 ++-- x/staking/keeper/msg_server.go | 2 +- x/staking/keeper/params.go | 61 ++++++++++++------------ x/staking/keeper/val_state_change.go | 4 +- x/staking/keeper/validator_test.go | 4 +- x/staking/types/keys.go | 4 +- 11 files changed, 54 insertions(+), 49 deletions(-) diff --git a/x/staking/keeper/delegation_test.go b/x/staking/keeper/delegation_test.go index bfe84d66e771..faa8ab682d2b 100644 --- a/x/staking/keeper/delegation_test.go +++ b/x/staking/keeper/delegation_test.go @@ -499,7 +499,7 @@ func (s *KeeperTestSuite) TestUndelegateFromUnbondingValidator() { validator, err = keeper.GetValidator(ctx, addrVals[0]) require.NoError(err) require.Equal(blockHeight, validator.UnbondingHeight) - params, err := keeper.GetParams(ctx) + params, err := keeper.Params.Get(ctx) require.NoError(err) require.True(blockTime.Add(params.UnbondingTime).Equal(validator.UnbondingTime)) @@ -570,7 +570,7 @@ func (s *KeeperTestSuite) TestUndelegateFromUnbondedValidator() { validator, err = keeper.GetValidator(ctx, addrVals[0]) require.NoError(err) require.Equal(ctx.BlockHeight(), validator.UnbondingHeight) - params, err := keeper.GetParams(ctx) + params, err := keeper.Params.Get(ctx) require.NoError(err) require.True(ctx.BlockHeader().Time.Add(params.UnbondingTime).Equal(validator.UnbondingTime)) @@ -957,7 +957,7 @@ func (s *KeeperTestSuite) TestRedelegateFromUnbondingValidator() { validator, err = keeper.GetValidator(ctx, addrVals[0]) require.NoError(err) require.Equal(blockHeight, validator.UnbondingHeight) - params, err := keeper.GetParams(ctx) + params, err := keeper.Params.Get(ctx) require.NoError(err) require.True(blockTime.Add(params.UnbondingTime).Equal(validator.UnbondingTime)) @@ -1035,7 +1035,7 @@ func (s *KeeperTestSuite) TestRedelegateFromUnbondedValidator() { validator, err = keeper.GetValidator(ctx, addrVals[0]) require.NoError(err) require.Equal(ctx.BlockHeight(), validator.UnbondingHeight) - params, err := keeper.GetParams(ctx) + params, err := keeper.Params.Get(ctx) require.NoError(err) require.True(ctx.BlockHeader().Time.Add(params.UnbondingTime).Equal(validator.UnbondingTime)) diff --git a/x/staking/keeper/genesis.go b/x/staking/keeper/genesis.go index 4cd505ba6d1d..149d606ea232 100644 --- a/x/staking/keeper/genesis.go +++ b/x/staking/keeper/genesis.go @@ -31,7 +31,7 @@ func (k Keeper) InitGenesis(ctx context.Context, data *types.GenesisState) (res sdkCtx = sdkCtx.WithBlockHeight(1 - sdk.ValidatorUpdateDelay) ctx = sdkCtx - if err := k.SetParams(ctx, data.Params); err != nil { + if err := k.Params.Set(ctx, data.Params); err != nil { panic(err) } @@ -251,7 +251,7 @@ func (k Keeper) ExportGenesis(ctx sdk.Context) *types.GenesisState { panic(err) } - params, err := k.GetParams(ctx) + params, err := k.Params.Get(ctx) if err != nil { panic(err) } diff --git a/x/staking/keeper/grpc_query.go b/x/staking/keeper/grpc_query.go index c7891e772546..9c0846a9ad09 100644 --- a/x/staking/keeper/grpc_query.go +++ b/x/staking/keeper/grpc_query.go @@ -492,7 +492,7 @@ func (k Querier) Pool(ctx context.Context, _ *types.QueryPoolRequest) (*types.Qu // Params queries the staking parameters func (k Querier) Params(ctx context.Context, _ *types.QueryParamsRequest) (*types.QueryParamsResponse, error) { - params, err := k.GetParams(ctx) + params, err := k.Keeper.Params.Get(ctx) if err != nil { return nil, err } diff --git a/x/staking/keeper/historical_info_test.go b/x/staking/keeper/historical_info_test.go index 0f254770d99f..d10b5e031349 100644 --- a/x/staking/keeper/historical_info_test.go +++ b/x/staking/keeper/historical_info_test.go @@ -57,7 +57,7 @@ func (s *KeeperTestSuite) TestTrackHistoricalInfo() { // set historical entries in params to 5 params := stakingtypes.DefaultParams() params.HistoricalEntries = 5 - require.NoError(keeper.SetParams(ctx, params)) + require.NoError(keeper.Params.Set(ctx, params)) // set historical info at 5, 4 which should be pruned // and check that it has been stored diff --git a/x/staking/keeper/keeper.go b/x/staking/keeper/keeper.go index e6692bab5ea8..8bad712ff964 100644 --- a/x/staking/keeper/keeper.go +++ b/x/staking/keeper/keeper.go @@ -74,6 +74,8 @@ type Keeper struct { ValidatorQueue collections.Map[collections.Triple[uint64, time.Time, uint64], types.ValAddresses] // LastValidatorPower key: valAddr | value: power(gogotypes.Int64Value()) LastValidatorPower collections.Map[[]byte, gogotypes.Int64Value] + // Params key: ParamsKeyPrefix | value: Params + Params collections.Item[types.Params] } // NewKeeper creates a new staking Keeper instance @@ -205,6 +207,8 @@ func NewKeeper( ), codec.CollValue[types.ValAddresses](cdc), ), + // key is: 113 (it's a direct prefix) + Params: collections.NewItem(sb, types.ParamsKey, "params", codec.CollValue[types.Params](cdc)), } schema, err := sb.Build() diff --git a/x/staking/keeper/keeper_test.go b/x/staking/keeper/keeper_test.go index 488afc863905..94ddfad740d1 100644 --- a/x/staking/keeper/keeper_test.go +++ b/x/staking/keeper/keeper_test.go @@ -77,7 +77,7 @@ func (s *KeeperTestSuite) SetupTest() { address.NewBech32Codec("cosmosvaloper"), address.NewBech32Codec("cosmosvalcons"), ) - require.NoError(keeper.SetParams(ctx, stakingtypes.DefaultParams())) + require.NoError(keeper.Params.Set(ctx, stakingtypes.DefaultParams())) s.ctx = ctx s.stakingKeeper = keeper @@ -97,14 +97,14 @@ func (s *KeeperTestSuite) TestParams() { expParams := stakingtypes.DefaultParams() // check that the empty keeper loads the default - resParams, err := keeper.GetParams(ctx) + resParams, err := keeper.Params.Get(ctx) require.NoError(err) require.Equal(expParams, resParams) expParams.MaxValidators = 555 expParams.MaxEntries = 111 - require.NoError(keeper.SetParams(ctx, expParams)) - resParams, err = keeper.GetParams(ctx) + require.NoError(keeper.Params.Set(ctx, expParams)) + resParams, err = keeper.Params.Get(ctx) require.NoError(err) require.True(expParams.Equal(resParams)) } diff --git a/x/staking/keeper/msg_server.go b/x/staking/keeper/msg_server.go index 8a0512a733e3..5eddf8670721 100644 --- a/x/staking/keeper/msg_server.go +++ b/x/staking/keeper/msg_server.go @@ -596,7 +596,7 @@ func (k msgServer) UpdateParams(ctx context.Context, msg *types.MsgUpdateParams) } // store params - if err := k.SetParams(ctx, msg.Params); err != nil { + if err := k.Params.Set(ctx, msg.Params); err != nil { return nil, err } diff --git a/x/staking/keeper/params.go b/x/staking/keeper/params.go index 83e29708470c..bf0f473fea5d 100644 --- a/x/staking/keeper/params.go +++ b/x/staking/keeper/params.go @@ -7,38 +7,37 @@ import ( "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/cosmos/cosmos-sdk/x/staking/types" ) // UnbondingTime - The time duration for unbonding func (k Keeper) UnbondingTime(ctx context.Context) (time.Duration, error) { - params, err := k.GetParams(ctx) + params, err := k.Params.Get(ctx) return params.UnbondingTime, err } // MaxValidators - Maximum number of validators func (k Keeper) MaxValidators(ctx context.Context) (uint32, error) { - params, err := k.GetParams(ctx) + params, err := k.Params.Get(ctx) return params.MaxValidators, err } // MaxEntries - Maximum number of simultaneous unbonding // delegations or redelegations (per pair/trio) func (k Keeper) MaxEntries(ctx context.Context) (uint32, error) { - params, err := k.GetParams(ctx) + params, err := k.Params.Get(ctx) return params.MaxEntries, err } // HistoricalEntries = number of historical info entries // to persist in store func (k Keeper) HistoricalEntries(ctx context.Context) (uint32, error) { - params, err := k.GetParams(ctx) + params, err := k.Params.Get(ctx) return params.HistoricalEntries, err } // BondDenom - Bondable coin denomination func (k Keeper) BondDenom(ctx context.Context) (string, error) { - params, err := k.GetParams(ctx) + params, err := k.Params.Get(ctx) return params.BondDenom, err } @@ -52,33 +51,35 @@ func (k Keeper) PowerReduction(ctx context.Context) math.Int { // MinCommissionRate - Minimum validator commission rate func (k Keeper) MinCommissionRate(ctx context.Context) (math.LegacyDec, error) { - params, err := k.GetParams(ctx) + params, err := k.Params.Get(ctx) return params.MinCommissionRate, err } -// SetParams sets the x/staking module parameters. -// CONTRACT: This method performs no validation of the parameters. -func (k Keeper) SetParams(ctx context.Context, params types.Params) error { - store := k.storeService.OpenKVStore(ctx) - bz, err := k.cdc.Marshal(¶ms) - if err != nil { - return err - } - return store.Set(types.ParamsKey, bz) -} +// // SetParams sets the x/staking module parameters. +// // CONTRACT: This method performs no validation of the parameters. +// func (k Keeper) SetParams(ctx context.Context, params types.Params) error { +// store := k.storeService.OpenKVStore(ctx) +// bz, err := k.cdc.Marshal(¶ms) +// if err != nil { +// return err +// } +// return store.Set(types.ParamsKey, bz) +// } -// GetParams gets the x/staking module parameters. -func (k Keeper) GetParams(ctx context.Context) (params types.Params, err error) { - store := k.storeService.OpenKVStore(ctx) - bz, err := store.Get(types.ParamsKey) - if err != nil { - return params, err - } +// // GetParams gets the x/staking module parameters. +// func (k Keeper) GetParams(ctx context.Context) (params types.Params, err error) { +// params, err := k.Params.Get(ctx) - if bz == nil { - return params, nil - } +// store := k.storeService.OpenKVStore(ctx) +// bz, err := store.Get(types.ParamsKey) +// if err != nil { +// return params, err +// } - err = k.cdc.Unmarshal(bz, ¶ms) - return params, err -} +// if bz == nil { +// return params, nil +// } + +// err = k.cdc.Unmarshal(bz, ¶ms) +// return params, err +// } diff --git a/x/staking/keeper/val_state_change.go b/x/staking/keeper/val_state_change.go index e73f4f869df1..775bd3d8a94a 100644 --- a/x/staking/keeper/val_state_change.go +++ b/x/staking/keeper/val_state_change.go @@ -128,7 +128,7 @@ func (k Keeper) BlockValidatorUpdates(ctx context.Context) ([]abci.ValidatorUpda // at the previous block height or were removed from the validator set entirely // are returned to CometBFT. func (k Keeper) ApplyAndReturnValidatorSetUpdates(ctx context.Context) (updates []abci.ValidatorUpdate, err error) { - params, err := k.GetParams(ctx) + params, err := k.Params.Get(ctx) if err != nil { return nil, err } @@ -376,7 +376,7 @@ func (k Keeper) bondValidator(ctx context.Context, validator types.Validator) (t // BeginUnbondingValidator performs all the store operations for when a validator begins unbonding func (k Keeper) BeginUnbondingValidator(ctx context.Context, validator types.Validator) (types.Validator, error) { - params, err := k.GetParams(ctx) + params, err := k.Params.Get(ctx) if err != nil { return validator, err } diff --git a/x/staking/keeper/validator_test.go b/x/staking/keeper/validator_test.go index f3afffa87bdd..db840f76ebaa 100644 --- a/x/staking/keeper/validator_test.go +++ b/x/staking/keeper/validator_test.go @@ -284,10 +284,10 @@ func (s *KeeperTestSuite) TestUpdateValidatorCommission() { require := s.Require() // Set MinCommissionRate to 0.05 - params, err := keeper.GetParams(ctx) + params, err := keeper.Params.Get(ctx) require.NoError(err) params.MinCommissionRate = math.LegacyNewDecWithPrec(5, 2) - require.NoError(keeper.SetParams(ctx, params)) + require.NoError(keeper.Params.Set(ctx, params)) commission1 := stakingtypes.NewCommissionWithTime( math.LegacyNewDecWithPrec(1, 1), math.LegacyNewDecWithPrec(3, 1), diff --git a/x/staking/types/keys.go b/x/staking/types/keys.go index 0b208df770d8..1c8c27964e92 100644 --- a/x/staking/types/keys.go +++ b/x/staking/types/keys.go @@ -55,9 +55,9 @@ var ( HistoricalInfoKey = collections.NewPrefix(80) // prefix for the historical info ValidatorUpdatesKey = collections.NewPrefix(97) // prefix for the end block validator updates key - ParamsKey = []byte{0x51} // prefix for parameters for module x/staking + ParamsKey = collections.NewPrefix(81) // prefix for parameters for module x/staking - DelegationByValIndexKey = []byte{0x71} // key for delegations by a validator + DelegationByValIndexKey = collections.NewPrefix(113) // key for delegations by a validator ) // UnbondingType defines the type of unbonding operation From f132b32a1d738f78966f093a8223629c297f1cbb Mon Sep 17 00:00:00 2001 From: atheesh Date: Mon, 18 Sep 2023 13:29:05 +0530 Subject: [PATCH 2/7] fix tests --- x/evidence/testutil/expected_keepers_mocks.go | 15 --------------- x/evidence/types/expected_keepers.go | 1 - 2 files changed, 16 deletions(-) diff --git a/x/evidence/testutil/expected_keepers_mocks.go b/x/evidence/testutil/expected_keepers_mocks.go index 4ac84dbdc1b9..95a4abe3d2de 100644 --- a/x/evidence/testutil/expected_keepers_mocks.go +++ b/x/evidence/testutil/expected_keepers_mocks.go @@ -55,21 +55,6 @@ func (mr *MockStakingKeeperMockRecorder) ConsensusAddressCodec() *gomock.Call { return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ConsensusAddressCodec", reflect.TypeOf((*MockStakingKeeper)(nil).ConsensusAddressCodec)) } -// GetParams mocks base method. -func (m *MockStakingKeeper) GetParams(ctx context.Context) (types1.Params, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetParams", ctx) - ret0, _ := ret[0].(types1.Params) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetParams indicates an expected call of GetParams. -func (mr *MockStakingKeeperMockRecorder) GetParams(ctx interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetParams", reflect.TypeOf((*MockStakingKeeper)(nil).GetParams), ctx) -} - // ValidatorByConsAddr mocks base method. func (m *MockStakingKeeper) ValidatorByConsAddr(arg0 context.Context, arg1 types0.ConsAddress) (types1.ValidatorI, error) { m.ctrl.T.Helper() diff --git a/x/evidence/types/expected_keepers.go b/x/evidence/types/expected_keepers.go index ed99ba374fd9..1e7f91da640f 100644 --- a/x/evidence/types/expected_keepers.go +++ b/x/evidence/types/expected_keepers.go @@ -19,7 +19,6 @@ type ( StakingKeeper interface { ConsensusAddressCodec() address.Codec ValidatorByConsAddr(context.Context, sdk.ConsAddress) (stakingtypes.ValidatorI, error) - GetParams(ctx context.Context) (params stakingtypes.Params, err error) } // SlashingKeeper defines the slashing module interface contract needed by the From fcc91c2118307e8ae849fb4c6d6a78a99264d0c5 Mon Sep 17 00:00:00 2001 From: atheesh Date: Mon, 18 Sep 2023 16:04:38 +0530 Subject: [PATCH 3/7] fix tests --- .../auth/migrations/v2/store_test.go | 2 +- .../distribution/keeper/grpc_query_test.go | 6 ++-- .../distribution/keeper/msg_server_test.go | 2 +- .../evidence/keeper/infraction_test.go | 6 ++-- tests/integration/gov/keeper/keeper_test.go | 2 +- .../slashing/keeper/keeper_test.go | 10 +++---- .../integration/staking/keeper/common_test.go | 2 +- .../staking/keeper/deterministic_test.go | 6 ++-- .../staking/keeper/genesis_test.go | 4 +-- .../staking/keeper/grpc_query_test.go | 4 +-- .../staking/keeper/validator_test.go | 30 +++++++++---------- 11 files changed, 37 insertions(+), 37 deletions(-) diff --git a/tests/integration/auth/migrations/v2/store_test.go b/tests/integration/auth/migrations/v2/store_test.go index 7d441a66b75f..da2c74ed236c 100644 --- a/tests/integration/auth/migrations/v2/store_test.go +++ b/tests/integration/auth/migrations/v2/store_test.go @@ -74,7 +74,7 @@ func TestMigrateVestingAccounts(t *testing.T) { require.NoError(t, v4.Migrate(ctx, storeService, legacySubspace, cdc)) ctx = app.BaseApp.NewContextLegacy(false, cmtproto.Header{Time: time.Now()}) - err = stakingKeeper.SetParams(ctx, stakingtypes.DefaultParams()) + err = stakingKeeper.Params.Set(ctx, stakingtypes.DefaultParams()) require.NoError(t, err) lastAccNum := uint64(1000) createBaseAccount := func(addr sdk.AccAddress) *authtypes.BaseAccount { diff --git a/tests/integration/distribution/keeper/grpc_query_test.go b/tests/integration/distribution/keeper/grpc_query_test.go index 995885e6480a..3cc549358709 100644 --- a/tests/integration/distribution/keeper/grpc_query_test.go +++ b/tests/integration/distribution/keeper/grpc_query_test.go @@ -82,7 +82,7 @@ func TestGRPCValidatorOutstandingRewards(t *testing.T) { assert.NilError(t, f.bankKeeper.MintCoins(f.sdkCtx, types.ModuleName, sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, initTokens)))) // Set default staking params - assert.NilError(t, f.stakingKeeper.SetParams(f.sdkCtx, stakingtypes.DefaultParams())) + assert.NilError(t, f.stakingKeeper.Params.Set(f.sdkCtx, stakingtypes.DefaultParams())) qr := f.app.QueryHelper() queryClient := types.NewQueryClient(qr) @@ -159,7 +159,7 @@ func TestGRPCValidatorCommission(t *testing.T) { assert.NilError(t, f.bankKeeper.MintCoins(f.sdkCtx, types.ModuleName, sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, initTokens)))) // Set default staking params - assert.NilError(t, f.stakingKeeper.SetParams(f.sdkCtx, stakingtypes.DefaultParams())) + assert.NilError(t, f.stakingKeeper.Params.Set(f.sdkCtx, stakingtypes.DefaultParams())) qr := f.app.QueryHelper() queryClient := types.NewQueryClient(qr) @@ -490,7 +490,7 @@ func TestGRPCDelegationRewards(t *testing.T) { assert.NilError(t, f.bankKeeper.MintCoins(f.sdkCtx, types.ModuleName, sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, initTokens)))) // Set default staking params - assert.NilError(t, f.stakingKeeper.SetParams(f.sdkCtx, stakingtypes.DefaultParams())) + assert.NilError(t, f.stakingKeeper.Params.Set(f.sdkCtx, stakingtypes.DefaultParams())) qr := f.app.QueryHelper() queryClient := types.NewQueryClient(qr) diff --git a/tests/integration/distribution/keeper/msg_server_test.go b/tests/integration/distribution/keeper/msg_server_test.go index 6eb37d0c73d9..b821dde37d8e 100644 --- a/tests/integration/distribution/keeper/msg_server_test.go +++ b/tests/integration/distribution/keeper/msg_server_test.go @@ -896,7 +896,7 @@ func TestMsgDepositValidatorRewardsPool(t *testing.T) { require.NoError(t, f.bankKeeper.MintCoins(f.sdkCtx, distrtypes.ModuleName, sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, initTokens)))) // Set default staking params - require.NoError(t, f.stakingKeeper.SetParams(f.sdkCtx, stakingtypes.DefaultParams())) + require.NoError(t, f.stakingKeeper.Params.Set(f.sdkCtx, stakingtypes.DefaultParams())) addr := sdk.AccAddress("addr") addr1 := sdk.AccAddress(PKS[0].Address()) diff --git a/tests/integration/evidence/keeper/infraction_test.go b/tests/integration/evidence/keeper/infraction_test.go index 4acef9136e09..a7d15ac8ab63 100644 --- a/tests/integration/evidence/keeper/infraction_test.go +++ b/tests/integration/evidence/keeper/infraction_test.go @@ -153,7 +153,7 @@ func initFixture(tb testing.TB) *fixture { assert.NilError(tb, slashingKeeper.Params.Set(sdkCtx, testutil.TestParams())) // set default staking params - assert.NilError(tb, stakingKeeper.SetParams(sdkCtx, stakingtypes.DefaultParams())) + assert.NilError(tb, stakingKeeper.Params.Set(sdkCtx, stakingtypes.DefaultParams())) return &fixture{ app: integrationApp, @@ -174,7 +174,7 @@ func TestHandleDoubleSign(t *testing.T) { populateValidators(t, f) power := int64(100) - stakingParams, err := f.stakingKeeper.GetParams(ctx) + stakingParams, err := f.stakingKeeper.Params.Get(ctx) assert.NilError(t, err) operatorAddr, valpubkey := valAddresses[0], pubkeys[0] tstaking := stakingtestutil.NewHelper(t, ctx, f.stakingKeeper) @@ -266,7 +266,7 @@ func TestHandleDoubleSign_TooOld(t *testing.T) { populateValidators(t, f) power := int64(100) - stakingParams, err := f.stakingKeeper.GetParams(ctx) + stakingParams, err := f.stakingKeeper.Params.Get(ctx) assert.NilError(t, err) operatorAddr, valpubkey := valAddresses[0], pubkeys[0] diff --git a/tests/integration/gov/keeper/keeper_test.go b/tests/integration/gov/keeper/keeper_test.go index d8cba6545ef8..a038a131aa96 100644 --- a/tests/integration/gov/keeper/keeper_test.go +++ b/tests/integration/gov/keeper/keeper_test.go @@ -94,7 +94,7 @@ func initFixture(tb testing.TB) *fixture { stakingKeeper := stakingkeeper.NewKeeper(cdc, runtime.NewKVStoreService(keys[stakingtypes.StoreKey]), accountKeeper, bankKeeper, authority.String(), addresscodec.NewBech32Codec(sdk.Bech32PrefixValAddr), addresscodec.NewBech32Codec(sdk.Bech32PrefixConsAddr)) // set default staking params - err := stakingKeeper.SetParams(newCtx, stakingtypes.DefaultParams()) + err := stakingKeeper.Params.Set(newCtx, stakingtypes.DefaultParams()) assert.NilError(tb, err) distrKeeper := distrkeeper.NewKeeper( cdc, runtime.NewKVStoreService(keys[distrtypes.StoreKey]), accountKeeper, bankKeeper, stakingKeeper, distrtypes.ModuleName, authority.String(), diff --git a/tests/integration/slashing/keeper/keeper_test.go b/tests/integration/slashing/keeper/keeper_test.go index 8484dd3b95ea..514e5d777492 100644 --- a/tests/integration/slashing/keeper/keeper_test.go +++ b/tests/integration/slashing/keeper/keeper_test.go @@ -112,7 +112,7 @@ func initFixture(tb testing.TB) *fixture { slashingtypes.RegisterQueryServer(integrationApp.QueryHelper(), slashingkeeper.NewQuerier(slashingKeeper)) // set default staking params - err := stakingKeeper.SetParams(sdkCtx, stakingtypes.DefaultParams()) + err := stakingKeeper.Params.Set(sdkCtx, stakingtypes.DefaultParams()) assert.NilError(tb, err) // TestParams set the SignedBlocksWindow to 1000 and MaxMissedBlocksPerWindow to 500 err = slashingKeeper.Params.Set(sdkCtx, testutil.TestParams()) @@ -142,10 +142,10 @@ func TestUnJailNotBonded(t *testing.T) { t.Parallel() f := initFixture(t) - p, err := f.stakingKeeper.GetParams(f.ctx) + p, err := f.stakingKeeper.Params.Get(f.ctx) assert.NilError(t, err) p.MaxValidators = 5 - assert.NilError(t, f.stakingKeeper.SetParams(f.ctx, p)) + assert.NilError(t, f.stakingKeeper.Params.Set(f.ctx, p)) pks := simtestutil.CreateTestPubKeys(6) tstaking := stakingtestutil.NewHelper(t, f.ctx, f.stakingKeeper) @@ -346,10 +346,10 @@ func TestValidatorDippingInAndOut(t *testing.T) { t.Parallel() f := initFixture(t) - params, err := f.stakingKeeper.GetParams(f.ctx) + params, err := f.stakingKeeper.Params.Get(f.ctx) require.NoError(t, err) params.MaxValidators = 1 - err = f.stakingKeeper.SetParams(f.ctx, params) + err = f.stakingKeeper.Params.Set(f.ctx, params) assert.NilError(t, err) power := int64(100) diff --git a/tests/integration/staking/keeper/common_test.go b/tests/integration/staking/keeper/common_test.go index 5ed6fff2fdcd..f2e1928ea46c 100644 --- a/tests/integration/staking/keeper/common_test.go +++ b/tests/integration/staking/keeper/common_test.go @@ -154,7 +154,7 @@ func initFixture(tb testing.TB) *fixture { types.RegisterQueryServer(integrationApp.QueryHelper(), stakingkeeper.NewQuerier(stakingKeeper)) // set default staking params - assert.NilError(tb, stakingKeeper.SetParams(sdkCtx, types.DefaultParams())) + assert.NilError(tb, stakingKeeper.Params.Set(sdkCtx, types.DefaultParams())) f := fixture{ app: integrationApp, diff --git a/tests/integration/staking/keeper/deterministic_test.go b/tests/integration/staking/keeper/deterministic_test.go index d6f0a5c5b88f..004ed77730f9 100644 --- a/tests/integration/staking/keeper/deterministic_test.go +++ b/tests/integration/staking/keeper/deterministic_test.go @@ -126,7 +126,7 @@ func initDeterministicFixture(t *testing.T) *deterministicFixture { stakingtypes.RegisterQueryServer(integrationApp.QueryHelper(), stakingkeeper.NewQuerier(stakingKeeper)) // set default staking params - assert.NilError(t, stakingKeeper.SetParams(ctx, stakingtypes.DefaultParams())) + assert.NilError(t, stakingKeeper.Params.Set(ctx, stakingtypes.DefaultParams())) // set pools startTokens := stakingKeeper.TokensFromConsensusPower(ctx, 10) @@ -840,7 +840,7 @@ func TestGRPCParams(t *testing.T) { MinCommissionRate: math.LegacyNewDecWithPrec(rapid.Int64Range(0, 100).Draw(rt, "commission"), 2), } - err := f.stakingKeeper.SetParams(f.ctx, params) + err := f.stakingKeeper.Params.Set(f.ctx, params) assert.NilError(t, err) testdata.DeterministicIterations(f.ctx, t, &stakingtypes.QueryParamsRequest{}, f.queryClient.Params, 0, true) @@ -855,7 +855,7 @@ func TestGRPCParams(t *testing.T) { MinCommissionRate: math.LegacyNewDecWithPrec(5, 2), } - err := f.stakingKeeper.SetParams(f.ctx, params) + err := f.stakingKeeper.Params.Set(f.ctx, params) assert.NilError(t, err) testdata.DeterministicIterations(f.ctx, t, &stakingtypes.QueryParamsRequest{}, f.queryClient.Params, 1114, false) diff --git a/tests/integration/staking/keeper/genesis_test.go b/tests/integration/staking/keeper/genesis_test.go index 9bd000261ae5..a5db05d2f6df 100644 --- a/tests/integration/staking/keeper/genesis_test.go +++ b/tests/integration/staking/keeper/genesis_test.go @@ -44,7 +44,7 @@ func TestInitGenesis(t *testing.T) { } assert.NilError(t, f.stakingKeeper.SetValidator(f.sdkCtx, bondedVal)) - params, err := f.stakingKeeper.GetParams(f.sdkCtx) + params, err := f.stakingKeeper.Params.Get(f.sdkCtx) assert.NilError(t, err) validators, err := f.stakingKeeper.GetAllValidators(f.sdkCtx) @@ -188,7 +188,7 @@ func TestInitGenesisLargeValidatorSet(t *testing.T) { genesisValidators, err := f.stakingKeeper.GetAllValidators(f.sdkCtx) assert.NilError(t, err) - params, err := f.stakingKeeper.GetParams(f.sdkCtx) + params, err := f.stakingKeeper.Params.Get(f.sdkCtx) assert.NilError(t, err) delegations := []types.Delegation{} validators := make([]types.Validator, size) diff --git a/tests/integration/staking/keeper/grpc_query_test.go b/tests/integration/staking/keeper/grpc_query_test.go index 1822bbc65393..7c3144d85263 100644 --- a/tests/integration/staking/keeper/grpc_query_test.go +++ b/tests/integration/staking/keeper/grpc_query_test.go @@ -129,7 +129,7 @@ func TestGRPCQueryDelegatorValidators(t *testing.T) { qr := f.app.QueryHelper() queryClient := types.NewQueryClient(qr) - params, err := f.stakingKeeper.GetParams(ctx) + params, err := f.stakingKeeper.Params.Get(ctx) assert.NilError(t, err) delValidators, err := f.stakingKeeper.GetDelegatorValidators(ctx, addrs[0], params.MaxValidators) assert.NilError(t, err) @@ -717,7 +717,7 @@ func TestGRPCQueryPoolParameters(t *testing.T) { // Query Params resp, err := queryClient.Params(gocontext.Background(), &types.QueryParamsRequest{}) assert.NilError(t, err) - params, err := f.stakingKeeper.GetParams(ctx) + params, err := f.stakingKeeper.Params.Get(ctx) assert.NilError(t, err) assert.DeepEqual(t, params, resp.Params) } diff --git a/tests/integration/staking/keeper/validator_test.go b/tests/integration/staking/keeper/validator_test.go index 231556268c2e..07aa29520644 100644 --- a/tests/integration/staking/keeper/validator_test.go +++ b/tests/integration/staking/keeper/validator_test.go @@ -72,10 +72,10 @@ func TestUpdateBondedValidatorsDecreaseCliff(t *testing.T) { notBondedPool := f.stakingKeeper.GetNotBondedPool(f.sdkCtx) // create keeper parameters - params, err := f.stakingKeeper.GetParams(f.sdkCtx) + params, err := f.stakingKeeper.Params.Get(f.sdkCtx) assert.NilError(t, err) params.MaxValidators = uint32(maxVals) - assert.NilError(t, f.stakingKeeper.SetParams(f.sdkCtx, params)) + assert.NilError(t, f.stakingKeeper.Params.Set(f.sdkCtx, params)) bondDenom, err := f.stakingKeeper.BondDenom(f.sdkCtx) assert.NilError(t, err) @@ -262,10 +262,10 @@ func TestGetValidatorSortingMixed(t *testing.T) { f.accountKeeper.SetModuleAccount(f.sdkCtx, bondedPool) // now 2 max resValidators - params, err := f.stakingKeeper.GetParams(f.sdkCtx) + params, err := f.stakingKeeper.Params.Get(f.sdkCtx) assert.NilError(t, err) params.MaxValidators = 2 - assert.NilError(t, f.stakingKeeper.SetParams(f.sdkCtx, params)) + assert.NilError(t, f.stakingKeeper.Params.Set(f.sdkCtx, params)) // initialize some validators into the state amts := []math.Int{ @@ -317,11 +317,11 @@ func TestGetValidatorsEdgeCases(t *testing.T) { f, addrs, _ := bootstrapValidatorTest(t, 1000, 20) // set max validators to 2 - params, err := f.stakingKeeper.GetParams(f.sdkCtx) + params, err := f.stakingKeeper.Params.Get(f.sdkCtx) assert.NilError(t, err) nMax := uint32(2) params.MaxValidators = nMax - assert.NilError(t, f.stakingKeeper.SetParams(f.sdkCtx, params)) + assert.NilError(t, f.stakingKeeper.Params.Set(f.sdkCtx, params)) // initialize some validators into the state powers := []int64{0, 100, 400, 400} var validators [4]types.Validator @@ -436,10 +436,10 @@ func TestValidatorBondHeight(t *testing.T) { f, addrs, _ := bootstrapValidatorTest(t, 1000, 20) // now 2 max resValidators - params, err := f.stakingKeeper.GetParams(f.sdkCtx) + params, err := f.stakingKeeper.Params.Get(f.sdkCtx) assert.NilError(t, err) params.MaxValidators = 2 - assert.NilError(t, f.stakingKeeper.SetParams(f.sdkCtx, params)) + assert.NilError(t, f.stakingKeeper.Params.Set(f.sdkCtx, params)) // initialize some validators into the state var validators [3]types.Validator validators[0] = testutil.NewValidator(t, sdk.ValAddress(PKs[0].Address().Bytes()), PKs[0]) @@ -483,11 +483,11 @@ func TestValidatorBondHeight(t *testing.T) { func TestFullValidatorSetPowerChange(t *testing.T) { f, addrs, _ := bootstrapValidatorTest(t, 1000, 20) - params, err := f.stakingKeeper.GetParams(f.sdkCtx) + params, err := f.stakingKeeper.Params.Get(f.sdkCtx) assert.NilError(t, err) max := 2 params.MaxValidators = uint32(2) - assert.NilError(t, f.stakingKeeper.SetParams(f.sdkCtx, params)) + assert.NilError(t, f.stakingKeeper.Params.Set(f.sdkCtx, params)) // initialize some validators into the state powers := []int64{0, 100, 400, 400, 200} @@ -676,7 +676,7 @@ func TestApplyAndReturnValidatorSetUpdatesWithCliffValidator(t *testing.T) { f, addrs, _ := bootstrapValidatorTest(t, 1000, 20) params := types.DefaultParams() params.MaxValidators = 2 - err := f.stakingKeeper.SetParams(f.sdkCtx, params) + err := f.stakingKeeper.Params.Set(f.sdkCtx, params) assert.NilError(t, err) powers := []int64{10, 20, 5} var validators [5]types.Validator @@ -712,11 +712,11 @@ func TestApplyAndReturnValidatorSetUpdatesWithCliffValidator(t *testing.T) { func TestApplyAndReturnValidatorSetUpdatesNewValidator(t *testing.T) { f, _, _ := bootstrapValidatorTest(t, 1000, 20) - params, err := f.stakingKeeper.GetParams(f.sdkCtx) + params, err := f.stakingKeeper.Params.Get(f.sdkCtx) assert.NilError(t, err) params.MaxValidators = uint32(3) - assert.NilError(t, f.stakingKeeper.SetParams(f.sdkCtx, params)) + assert.NilError(t, f.stakingKeeper.Params.Set(f.sdkCtx, params)) powers := []int64{100, 100} var validators [2]types.Validator @@ -798,11 +798,11 @@ func TestApplyAndReturnValidatorSetUpdatesNewValidator(t *testing.T) { func TestApplyAndReturnValidatorSetUpdatesBondTransition(t *testing.T) { f, _, _ := bootstrapValidatorTest(t, 1000, 20) - params, err := f.stakingKeeper.GetParams(f.sdkCtx) + params, err := f.stakingKeeper.Params.Get(f.sdkCtx) assert.NilError(t, err) params.MaxValidators = uint32(2) - assert.NilError(t, f.stakingKeeper.SetParams(f.sdkCtx, params)) + assert.NilError(t, f.stakingKeeper.Params.Set(f.sdkCtx, params)) powers := []int64{100, 200, 300} var validators [3]types.Validator From 23e48a1dec6010b8e2359f9f11dd839a90579143 Mon Sep 17 00:00:00 2001 From: atheesh Date: Mon, 18 Sep 2023 17:28:33 +0530 Subject: [PATCH 4/7] fix tests --- tests/integration/distribution/keeper/msg_server_test.go | 1 + x/staking/migrations/v4/store.go | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/integration/distribution/keeper/msg_server_test.go b/tests/integration/distribution/keeper/msg_server_test.go index b821dde37d8e..16938996179d 100644 --- a/tests/integration/distribution/keeper/msg_server_test.go +++ b/tests/integration/distribution/keeper/msg_server_test.go @@ -100,6 +100,7 @@ func initFixture(tb testing.TB) *fixture { ) stakingKeeper := stakingkeeper.NewKeeper(cdc, runtime.NewKVStoreService(keys[stakingtypes.StoreKey]), accountKeeper, bankKeeper, authority.String(), addresscodec.NewBech32Codec(sdk.Bech32PrefixValAddr), addresscodec.NewBech32Codec(sdk.Bech32PrefixConsAddr)) + stakingKeeper.Params.Set(newCtx, stakingtypes.DefaultParams()) distrKeeper := distrkeeper.NewKeeper( cdc, runtime.NewKVStoreService(keys[distrtypes.StoreKey]), accountKeeper, bankKeeper, stakingKeeper, distrtypes.ModuleName, authority.String(), diff --git a/x/staking/migrations/v4/store.go b/x/staking/migrations/v4/store.go index a41069a09efa..a5fe2625c554 100644 --- a/x/staking/migrations/v4/store.go +++ b/x/staking/migrations/v4/store.go @@ -37,7 +37,7 @@ func migrateParams(ctx sdk.Context, store storetypes.KVStore, cdc codec.BinaryCo } bz := cdc.MustMarshal(&legacyParams) - store.Set(types.ParamsKey, bz) + store.Set(ParamsKey, bz) return nil } From 5114e40d21786632ec2244e3f98a97165e4c47ec Mon Sep 17 00:00:00 2001 From: atheesh Date: Mon, 18 Sep 2023 17:35:42 +0530 Subject: [PATCH 5/7] fix test --- tests/integration/distribution/keeper/msg_server_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/integration/distribution/keeper/msg_server_test.go b/tests/integration/distribution/keeper/msg_server_test.go index 16938996179d..f4a71c826a52 100644 --- a/tests/integration/distribution/keeper/msg_server_test.go +++ b/tests/integration/distribution/keeper/msg_server_test.go @@ -100,7 +100,7 @@ func initFixture(tb testing.TB) *fixture { ) stakingKeeper := stakingkeeper.NewKeeper(cdc, runtime.NewKVStoreService(keys[stakingtypes.StoreKey]), accountKeeper, bankKeeper, authority.String(), addresscodec.NewBech32Codec(sdk.Bech32PrefixValAddr), addresscodec.NewBech32Codec(sdk.Bech32PrefixConsAddr)) - stakingKeeper.Params.Set(newCtx, stakingtypes.DefaultParams()) + require.NoError(tb, stakingKeeper.Params.Set(newCtx, stakingtypes.DefaultParams())) distrKeeper := distrkeeper.NewKeeper( cdc, runtime.NewKVStoreService(keys[distrtypes.StoreKey]), accountKeeper, bankKeeper, stakingKeeper, distrtypes.ModuleName, authority.String(), From a7f81072ccb25ca8eb9328c497f1c2acb4df805e Mon Sep 17 00:00:00 2001 From: atheesh Date: Mon, 18 Sep 2023 19:02:58 +0530 Subject: [PATCH 6/7] changelog --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 761f8b1ae538..31c9930713ba 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -67,6 +67,8 @@ Ref: https://keepachangelog.com/en/1.0.0/ ### API Breaking Changes +* (x/staking) [#17778](https://github.com/cosmos/cosmos-sdk/pull/17778) Use collections for `Params` + * remove from `Keeper`: `GetParams`, `SetParams` * (types/simulation) [#17737](https://github.com/cosmos/cosmos-sdk/pull/17737) Remove unused parameter from `RandomFees` * (x/staking) [#17486](https://github.com/cosmos/cosmos-sdk/pull/17486) Use collections for `RedelegationQueueKey`: * remove from `types`: `GetRedelegationTimeKey` From 02f1544033ad7a6a072d69781ed9284ecf712487 Mon Sep 17 00:00:00 2001 From: atheesh Date: Mon, 18 Sep 2023 20:18:14 +0530 Subject: [PATCH 7/7] review --- x/staking/keeper/params.go | 29 ----------------------------- 1 file changed, 29 deletions(-) diff --git a/x/staking/keeper/params.go b/x/staking/keeper/params.go index bf0f473fea5d..7726e69ca322 100644 --- a/x/staking/keeper/params.go +++ b/x/staking/keeper/params.go @@ -54,32 +54,3 @@ func (k Keeper) MinCommissionRate(ctx context.Context) (math.LegacyDec, error) { params, err := k.Params.Get(ctx) return params.MinCommissionRate, err } - -// // SetParams sets the x/staking module parameters. -// // CONTRACT: This method performs no validation of the parameters. -// func (k Keeper) SetParams(ctx context.Context, params types.Params) error { -// store := k.storeService.OpenKVStore(ctx) -// bz, err := k.cdc.Marshal(¶ms) -// if err != nil { -// return err -// } -// return store.Set(types.ParamsKey, bz) -// } - -// // GetParams gets the x/staking module parameters. -// func (k Keeper) GetParams(ctx context.Context) (params types.Params, err error) { -// params, err := k.Params.Get(ctx) - -// store := k.storeService.OpenKVStore(ctx) -// bz, err := store.Get(types.ParamsKey) -// if err != nil { -// return params, err -// } - -// if bz == nil { -// return params, nil -// } - -// err = k.cdc.Unmarshal(bz, ¶ms) -// return params, err -// }