chore!: remove x/slashing legacy querier (#12581)
This commit is contained in:
parent
934b2b8ede
commit
63d484a1b8
@ -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
|
||||
|
||||
@ -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
|
||||
}
|
||||
@ -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)
|
||||
}
|
||||
@ -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.
|
||||
|
||||
Loading…
Reference in New Issue
Block a user