diff --git a/CHANGELOG.md b/CHANGELOG.md index 923490f64ea7..51f69fed435f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -62,6 +62,7 @@ Ref: https://keepachangelog.com/en/1.0.0/ ### API Breaking Changes +* (x/slashing) [#12581](https://github.com/cosmos/cosmos-sdk/pull/12581) Remove `x/slashing` legacy querier. * (types) [\#12355](https://github.com/cosmos/cosmos-sdk/pull/12355) Remove the compile-time `types.DBbackend` variable. Removes usage of the same in server/util.go * (x/gov) [#12368](https://github.com/cosmos/cosmos-sdk/pull/12369) Gov keeper is now passed by reference instead of copy to make post-construction mutation of Hooks and Proposal Handlers possible at a framework level. * (simapp) [#12270](https://github.com/cosmos/cosmos-sdk/pull/12270) Remove `invCheckPeriod uint` attribute from `SimApp` struct as per migration of `x/crisis` to app wiring diff --git a/x/slashing/keeper/querier.go b/x/slashing/keeper/querier.go deleted file mode 100644 index 036f3a16dde3..000000000000 --- a/x/slashing/keeper/querier.go +++ /dev/null @@ -1,92 +0,0 @@ -package keeper - -import ( - abci "github.com/tendermint/tendermint/abci/types" - - "github.com/cosmos/cosmos-sdk/client" - "github.com/cosmos/cosmos-sdk/codec" - sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" - "github.com/cosmos/cosmos-sdk/x/slashing/types" -) - -// NewQuerier creates a new querier for slashing clients. -func NewQuerier(k Keeper, legacyQuerierCdc *codec.LegacyAmino) sdk.Querier { - return func(ctx sdk.Context, path []string, req abci.RequestQuery) ([]byte, error) { - switch path[0] { - case types.QueryParameters: - return queryParams(ctx, k, legacyQuerierCdc) - - case types.QuerySigningInfo: - return querySigningInfo(ctx, req, k, legacyQuerierCdc) - - case types.QuerySigningInfos: - return querySigningInfos(ctx, req, k, legacyQuerierCdc) - - default: - return nil, sdkerrors.Wrapf(sdkerrors.ErrUnknownRequest, "unknown %s query endpoint: %s", types.ModuleName, path[0]) - } - } -} - -func queryParams(ctx sdk.Context, k Keeper, legacyQuerierCdc *codec.LegacyAmino) ([]byte, error) { - params := k.GetParams(ctx) - - res, err := codec.MarshalJSONIndent(legacyQuerierCdc, params) - if err != nil { - return nil, sdkerrors.Wrap(sdkerrors.ErrJSONMarshal, err.Error()) - } - - return res, nil -} - -func querySigningInfo(ctx sdk.Context, req abci.RequestQuery, k Keeper, legacyQuerierCdc *codec.LegacyAmino) ([]byte, error) { - var params types.QuerySigningInfoRequest - - err := legacyQuerierCdc.UnmarshalJSON(req.Data, ¶ms) - if err != nil { - return nil, sdkerrors.Wrap(sdkerrors.ErrJSONUnmarshal, err.Error()) - } - - signingInfo, found := k.GetValidatorSigningInfo(ctx, sdk.ConsAddress(params.ConsAddress)) - if !found { - return nil, sdkerrors.Wrap(types.ErrNoSigningInfoFound, params.ConsAddress) - } - - res, err := codec.MarshalJSONIndent(legacyQuerierCdc, signingInfo) - if err != nil { - return nil, sdkerrors.Wrap(sdkerrors.ErrJSONMarshal, err.Error()) - } - - return res, nil -} - -func querySigningInfos(ctx sdk.Context, req abci.RequestQuery, k Keeper, legacyQuerierCdc *codec.LegacyAmino) ([]byte, error) { - var params types.QuerySigningInfosParams - - err := legacyQuerierCdc.UnmarshalJSON(req.Data, ¶ms) - if err != nil { - return nil, sdkerrors.Wrap(sdkerrors.ErrJSONUnmarshal, err.Error()) - } - - var signingInfos []types.ValidatorSigningInfo - - k.IterateValidatorSigningInfos(ctx, func(consAddr sdk.ConsAddress, info types.ValidatorSigningInfo) (stop bool) { - signingInfos = append(signingInfos, info) - return false - }) - - start, end := client.Paginate(len(signingInfos), params.Page, params.Limit, int(k.sk.MaxValidators(ctx))) - if start < 0 || end < 0 { - signingInfos = []types.ValidatorSigningInfo{} - } else { - signingInfos = signingInfos[start:end] - } - - res, err := codec.MarshalJSONIndent(legacyQuerierCdc, signingInfos) - if err != nil { - return nil, sdkerrors.Wrap(sdkerrors.ErrJSONMarshal, err.Error()) - } - - return res, nil -} diff --git a/x/slashing/keeper/querier_test.go b/x/slashing/keeper/querier_test.go deleted file mode 100644 index c34965f62f21..000000000000 --- a/x/slashing/keeper/querier_test.go +++ /dev/null @@ -1,72 +0,0 @@ -package keeper_test - -import ( - "testing" - - "github.com/stretchr/testify/require" - - abci "github.com/tendermint/tendermint/abci/types" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - - "github.com/cosmos/cosmos-sdk/codec" - simtestutil "github.com/cosmos/cosmos-sdk/testutil/sims" - "github.com/cosmos/cosmos-sdk/x/slashing/keeper" - slashingkeeper "github.com/cosmos/cosmos-sdk/x/slashing/keeper" - "github.com/cosmos/cosmos-sdk/x/slashing/testslashing" - "github.com/cosmos/cosmos-sdk/x/slashing/testutil" - "github.com/cosmos/cosmos-sdk/x/slashing/types" -) - -func TestNewQuerier(t *testing.T) { - var slashingKeeper slashingkeeper.Keeper - var legacyAmino *codec.LegacyAmino - app, err := simtestutil.Setup( - testutil.AppConfig, - &legacyAmino, - &slashingKeeper, - ) - require.NoError(t, err) - - ctx := app.BaseApp.NewContext(false, tmproto.Header{}) - slashingKeeper.SetParams(ctx, testslashing.TestParams()) - legacyQuerierCdc := codec.NewAminoCodec(legacyAmino) - querier := keeper.NewQuerier(slashingKeeper, legacyQuerierCdc.LegacyAmino) - - query := abci.RequestQuery{ - Path: "", - Data: []byte{}, - } - - _, err = querier(ctx, []string{types.QueryParameters}, query) - require.NoError(t, err) -} - -func TestQueryParams(t *testing.T) { - var slashingKeeper slashingkeeper.Keeper - app, err := simtestutil.Setup( - testutil.AppConfig, - &slashingKeeper, - ) - require.NoError(t, err) - - cdc := codec.NewLegacyAmino() - legacyQuerierCdc := codec.NewAminoCodec(cdc) - ctx := app.BaseApp.NewContext(false, tmproto.Header{}) - slashingKeeper.SetParams(ctx, testslashing.TestParams()) - - querier := keeper.NewQuerier(slashingKeeper, legacyQuerierCdc.LegacyAmino) - - query := abci.RequestQuery{ - Path: "", - Data: []byte{}, - } - - var params types.Params - - res, err := querier(ctx, []string{types.QueryParameters}, query) - require.NoError(t, err) - - err = cdc.UnmarshalJSON(res, ¶ms) - require.NoError(t, err) - require.Equal(t, slashingKeeper.GetParams(ctx), params) -} diff --git a/x/slashing/module.go b/x/slashing/module.go index 9b82d0fbb80f..239465983b1b 100644 --- a/x/slashing/module.go +++ b/x/slashing/module.go @@ -140,7 +140,9 @@ func (AppModule) QuerierRoute() string { // LegacyQuerierHandler returns the slashing module sdk.Querier. func (am AppModule) LegacyQuerierHandler(legacyQuerierCdc *codec.LegacyAmino) sdk.Querier { - return keeper.NewQuerier(am.keeper, legacyQuerierCdc) + return func(sdk.Context, []string, abci.RequestQuery) ([]byte, error) { + return nil, fmt.Errorf("legacy querier not supported for the x/%s module", types.ModuleName) + } } // RegisterServices registers module services.