github.com/cosmos/cosmos-sdk@v0.50.10/x/slashing/keeper/grpc_query_test.go (about) 1 package keeper_test 2 3 import ( 4 gocontext "context" 5 "time" 6 7 sdk "github.com/cosmos/cosmos-sdk/types" 8 "github.com/cosmos/cosmos-sdk/types/query" 9 "github.com/cosmos/cosmos-sdk/x/slashing/testutil" 10 slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types" 11 ) 12 13 func (s *KeeperTestSuite) TestGRPCQueryParams() { 14 queryClient := s.queryClient 15 require := s.Require() 16 17 paramsResp, err := queryClient.Params(gocontext.Background(), &slashingtypes.QueryParamsRequest{}) 18 19 require.NoError(err) 20 require.Equal(testutil.TestParams(), paramsResp.Params) 21 } 22 23 func (s *KeeperTestSuite) TestGRPCSigningInfo() { 24 queryClient, ctx, keeper := s.queryClient, s.ctx, s.slashingKeeper 25 require := s.Require() 26 27 infoResp, err := queryClient.SigningInfo(gocontext.Background(), &slashingtypes.QuerySigningInfoRequest{ConsAddress: ""}) 28 require.Error(err) 29 require.ErrorContains(err, "invalid request") 30 require.Nil(infoResp) 31 32 signingInfo := slashingtypes.NewValidatorSigningInfo( 33 consAddr, 34 0, 35 int64(0), 36 time.Unix(2, 0), 37 false, 38 int64(0), 39 ) 40 41 keeper.SetValidatorSigningInfo(ctx, consAddr, signingInfo) 42 info, err := keeper.GetValidatorSigningInfo(ctx, consAddr) 43 require.NoError(err) 44 45 infoResp, err = queryClient.SigningInfo(gocontext.Background(), 46 &slashingtypes.QuerySigningInfoRequest{ConsAddress: consAddr.String()}) 47 require.NoError(err) 48 require.Equal(info, infoResp.ValSigningInfo) 49 } 50 51 func (s *KeeperTestSuite) TestGRPCSigningInfos() { 52 queryClient, ctx, keeper := s.queryClient, s.ctx, s.slashingKeeper 53 require := s.Require() 54 55 // set two validator signing information 56 consAddr1 := sdk.ConsAddress(sdk.AccAddress([]byte("addr1_______________"))) 57 consAddr2 := sdk.ConsAddress(sdk.AccAddress([]byte("addr2_______________"))) 58 signingInfo := slashingtypes.NewValidatorSigningInfo( 59 consAddr1, 60 0, 61 int64(0), 62 time.Unix(2, 0), 63 false, 64 int64(0), 65 ) 66 67 keeper.SetValidatorSigningInfo(ctx, consAddr1, signingInfo) 68 signingInfo.Address = string(consAddr2) 69 keeper.SetValidatorSigningInfo(ctx, consAddr2, signingInfo) 70 71 var signingInfos []slashingtypes.ValidatorSigningInfo 72 73 keeper.IterateValidatorSigningInfos(ctx, func(consAddr sdk.ConsAddress, info slashingtypes.ValidatorSigningInfo) (stop bool) { 74 signingInfos = append(signingInfos, info) 75 return false 76 }) 77 78 // verify all values are returned without pagination 79 infoResp, err := queryClient.SigningInfos(gocontext.Background(), 80 &slashingtypes.QuerySigningInfosRequest{Pagination: nil}) 81 require.NoError(err) 82 require.Equal(signingInfos, infoResp.Info) 83 84 infoResp, err = queryClient.SigningInfos(gocontext.Background(), 85 &slashingtypes.QuerySigningInfosRequest{Pagination: &query.PageRequest{Limit: 1, CountTotal: true}}) 86 require.NoError(err) 87 require.Len(infoResp.Info, 1) 88 require.Equal(signingInfos[0], infoResp.Info[0]) 89 require.NotNil(infoResp.Pagination.NextKey) 90 require.Equal(uint64(2), infoResp.Pagination.Total) 91 }