chore!: remove x/slashing legacy querier (#12581)

This commit is contained in:
Aleksandr Bezobchuk 2022-07-14 11:10:06 -04:00 committed by GitHub
parent 934b2b8ede
commit 63d484a1b8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 4 additions and 165 deletions

View File

@ -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

View File

@ -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, &params)
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, &params)
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
}

View File

@ -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, &params)
require.NoError(t, err)
require.Equal(t, slashingKeeper.GetParams(ctx), params)
}

View File

@ -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.