From 2ba0c943a97410812e25dbd1cd90270f22fc9d97 Mon Sep 17 00:00:00 2001 From: Lockwarr Date: Mon, 4 Nov 2024 18:05:34 +0200 Subject: [PATCH] refactor: start using KVStoreService for interchaintxs module --- app/keepers/keepers.go | 6 ++---- testutil/interchaintxs/keeper/interchaintxs.go | 4 ++-- x/interchaintxs/genesis.go | 6 +++++- x/interchaintxs/keeper/grpc_query_params.go | 7 ++++++- x/interchaintxs/keeper/keeper.go | 11 ++++------- x/interchaintxs/keeper/msg_server.go | 2 +- x/interchaintxs/keeper/msg_server_test.go | 3 ++- x/interchaintxs/keeper/params.go | 17 ++++++++++------- x/interchaintxs/keeper/params_test.go | 5 ++++- 9 files changed, 36 insertions(+), 25 deletions(-) diff --git a/app/keepers/keepers.go b/app/keepers/keepers.go index 939f06cd..8b87f9b7 100644 --- a/app/keepers/keepers.go +++ b/app/keepers/keepers.go @@ -314,8 +314,7 @@ func (appKeepers *AppKeepers) NewAppKeepers( appKeepers.FeeRefunderKeeper = feerefunderkeeper.NewKeeper( appCodec, - appKeepers.keys[feetypes.StoreKey], - appKeepers.memKeys[feetypes.MemStoreKey], + runtime.NewKVStoreService(appKeepers.keys[feetypes.StoreKey]), appKeepers.IBCKeeper.ChannelKeeper, appKeepers.BankKeeper, authtypes.NewModuleAddress(govtypes.ModuleName).String(), @@ -381,8 +380,7 @@ func (appKeepers *AppKeepers) NewAppKeepers( appKeepers.InterchainTxsKeeper = interchaintxskeeper.NewKeeper( appCodec, - appKeepers.keys[interchaintxstypes.StoreKey], - appKeepers.memKeys[interchaintxstypes.MemStoreKey], + runtime.NewKVStoreService(appKeepers.keys[interchaintxstypes.StoreKey]), appKeepers.IBCKeeper.ChannelKeeper, appKeepers.ICAControllerKeeper, icacontrollerkeeper.NewMsgServerImpl(appKeepers.ICAControllerKeeper), diff --git a/testutil/interchaintxs/keeper/interchaintxs.go b/testutil/interchaintxs/keeper/interchaintxs.go index 98f72eed..a5b14635 100644 --- a/testutil/interchaintxs/keeper/interchaintxs.go +++ b/testutil/interchaintxs/keeper/interchaintxs.go @@ -7,6 +7,7 @@ import ( metrics2 "cosmossdk.io/store/metrics" adminmoduletypes "github.com/cosmos/admin-module/v2/x/adminmodule/types" db2 "github.com/cosmos/cosmos-db" + "github.com/cosmos/cosmos-sdk/runtime" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" "cosmossdk.io/store" @@ -45,8 +46,7 @@ func InterchainTxsKeeper( k := keeper.NewKeeper( cdc, - storeKey, - memStoreKey, + runtime.NewKVStoreService(storeKey), channelKeeper, icaControllerKeeper, icaControllerMsgServer, diff --git a/x/interchaintxs/genesis.go b/x/interchaintxs/genesis.go index e96f128c..9a8ed940 100644 --- a/x/interchaintxs/genesis.go +++ b/x/interchaintxs/genesis.go @@ -18,8 +18,12 @@ func InitGenesis(ctx sdk.Context, k keeper.Keeper, genState types.GenesisState) // ExportGenesis returns the capability module's exported genesis. func ExportGenesis(ctx sdk.Context, k keeper.Keeper) *types.GenesisState { + var err error genesis := types.DefaultGenesis() - genesis.Params = k.GetParams(ctx) + genesis.Params, err = k.GetParams(ctx) + if err != nil { + panic(err) + } return genesis } diff --git a/x/interchaintxs/keeper/grpc_query_params.go b/x/interchaintxs/keeper/grpc_query_params.go index bcc60861..002aef22 100644 --- a/x/interchaintxs/keeper/grpc_query_params.go +++ b/x/interchaintxs/keeper/grpc_query_params.go @@ -16,5 +16,10 @@ func (k Keeper) Params(c context.Context, req *types.QueryParamsRequest) (*types } ctx := sdk.UnwrapSDKContext(c) - return &types.QueryParamsResponse{Params: k.GetParams(ctx)}, nil + params, err := k.GetParams(ctx) + if err != nil { + return nil, status.Error(codes.NotFound, err.Error()) + } + + return &types.QueryParamsResponse{Params: params}, err } diff --git a/x/interchaintxs/keeper/keeper.go b/x/interchaintxs/keeper/keeper.go index 0a9d98c8..bfa9b2fa 100644 --- a/x/interchaintxs/keeper/keeper.go +++ b/x/interchaintxs/keeper/keeper.go @@ -3,9 +3,9 @@ package keeper import ( "fmt" + "cosmossdk.io/core/store" "cosmossdk.io/log" - storetypes "cosmossdk.io/store/types" "github.com/cosmos/cosmos-sdk/codec" sdk "github.com/cosmos/cosmos-sdk/types" @@ -23,8 +23,7 @@ const ( type ( Keeper struct { Codec codec.BinaryCodec - storeKey storetypes.StoreKey - memKey storetypes.StoreKey + storeService store.KVStoreService channelKeeper types.ChannelKeeper feeKeeper types.FeeRefunderKeeper icaControllerKeeper types.ICAControllerKeeper @@ -38,8 +37,7 @@ type ( func NewKeeper( cdc codec.BinaryCodec, - storeKey, - memKey storetypes.StoreKey, + storeService store.KVStoreService, channelKeeper types.ChannelKeeper, icaControllerKeeper types.ICAControllerKeeper, icaControllerMsgServer types.ICAControllerMsgServer, @@ -51,8 +49,7 @@ func NewKeeper( ) *Keeper { return &Keeper{ Codec: cdc, - storeKey: storeKey, - memKey: memKey, + storeService: storeService, channelKeeper: channelKeeper, icaControllerKeeper: icaControllerKeeper, icaControllerMsgServer: icaControllerMsgServer, diff --git a/x/interchaintxs/keeper/msg_server.go b/x/interchaintxs/keeper/msg_server.go index 4e57d0f1..83964539 100644 --- a/x/interchaintxs/keeper/msg_server.go +++ b/x/interchaintxs/keeper/msg_server.go @@ -98,7 +98,7 @@ func (k Keeper) SubmitTx(goCtx context.Context, msg *ictxtypes.MsgSubmitTx) (*ic return nil, errors.Wrapf(ictxtypes.ErrNotContract, "%s is not a contract address", msg.FromAddress) } - params := k.GetParams(ctx) + params, _ := k.GetParams(ctx) if uint64(len(msg.Msgs)) > params.GetMsgSubmitTxMaxMessages() { k.Logger(ctx).Debug("SubmitTx: provided MsgSubmitTx contains more messages than allowed", "msg", msg, diff --git a/x/interchaintxs/keeper/msg_server_test.go b/x/interchaintxs/keeper/msg_server_test.go index 5d150002..a75a966d 100644 --- a/x/interchaintxs/keeper/msg_server_test.go +++ b/x/interchaintxs/keeper/msg_server_test.go @@ -314,7 +314,8 @@ func TestSubmitTx(t *testing.T) { require.Nil(t, resp) require.ErrorContains(t, err, "is not a contract address") - params := icak.GetParams(ctx) + params, err := icak.GetParams(ctx) + require.NoError(t, err) maxMsgs := params.GetMsgSubmitTxMaxMessages() submitMsg.Msgs = make([]*codectypes.Any, maxMsgs+1) wmKeeper.EXPECT().HasContractInfo(ctx, contractAddress).Return(true) diff --git a/x/interchaintxs/keeper/params.go b/x/interchaintxs/keeper/params.go index 4a99879e..609e41cb 100644 --- a/x/interchaintxs/keeper/params.go +++ b/x/interchaintxs/keeper/params.go @@ -7,20 +7,23 @@ import ( ) // GetParams get all parameters as types.Params. -func (k Keeper) GetParams(ctx sdk.Context) (params types.Params) { - store := ctx.KVStore(k.storeKey) - bz := store.Get(types.ParamsKey) +func (k Keeper) GetParams(ctx sdk.Context) (params types.Params, err error) { + store := k.storeService.OpenKVStore(ctx) + bz, err := store.Get(types.ParamsKey) + if err != nil { + return params, err + } if bz == nil { - return params + return params, nil } - k.Codec.MustUnmarshal(bz, ¶ms) - return params + err = k.Codec.Unmarshal(bz, ¶ms) + return params, err } // SetParams set the params. func (k Keeper) SetParams(ctx sdk.Context, params types.Params) error { - store := ctx.KVStore(k.storeKey) + store := k.storeService.OpenKVStore(ctx) bz, err := k.Codec.Marshal(¶ms) if err != nil { return err diff --git a/x/interchaintxs/keeper/params_test.go b/x/interchaintxs/keeper/params_test.go index 7a71d1f8..c4daf99f 100644 --- a/x/interchaintxs/keeper/params_test.go +++ b/x/interchaintxs/keeper/params_test.go @@ -16,5 +16,8 @@ func TestGetParams(t *testing.T) { err := k.SetParams(ctx, params) require.NoError(t, err) - require.EqualValues(t, params, k.GetParams(ctx)) + keeperParams, err := k.GetParams(ctx) + require.NoError(t, err) + + require.EqualValues(t, params, keeperParams) }