From a34005223bfe3c20c7ea05e2554219428fdd46f8 Mon Sep 17 00:00:00 2001 From: atheesh Date: Wed, 15 Jul 2020 17:40:17 +0530 Subject: [PATCH 01/10] migrated to use gRPC query client --- x/staking/client/cli/query.go | 234 +++++++++++++--------------------- 1 file changed, 86 insertions(+), 148 deletions(-) diff --git a/x/staking/client/cli/query.go b/x/staking/client/cli/query.go index 46dabb3603b7..5ca513edf97c 100644 --- a/x/staking/client/cli/query.go +++ b/x/staking/client/cli/query.go @@ -1,6 +1,7 @@ package cli import ( + "context" "fmt" "strconv" "strings" @@ -11,6 +12,7 @@ import ( "github.com/cosmos/cosmos-sdk/client/flags" "github.com/cosmos/cosmos-sdk/codec" sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/cosmos/cosmos-sdk/types/query" "github.com/cosmos/cosmos-sdk/version" "github.com/cosmos/cosmos-sdk/x/staking/types" ) @@ -24,6 +26,7 @@ func GetQueryCmd(queryRoute string, cdc *codec.Codec) *cobra.Command { SuggestionsMinimumDistance: 2, RunE: client.ValidateCmd, } + stakingQueryCmd.AddCommand( GetCmdQueryDelegation(queryRoute, cdc), GetCmdQueryDelegations(queryRoute, cdc), @@ -60,28 +63,21 @@ $ %s query staking validator cosmosvaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhff ), Args: cobra.ExactArgs(1), RunE: func(cmd *cobra.Command, args []string) error { - clientCtx := client.NewContext().WithCodec(cdc).WithJSONMarshaler(cdc) + clientCtx := client.GetClientContextFromCmd(cmd) + queryClient := types.NewQueryClient(clientCtx) addr, err := sdk.ValAddressFromBech32(args[0]) if err != nil { return err } - res, _, err := clientCtx.QueryStore(types.GetValidatorKey(addr), storeName) + params := &types.QueryValidatorRequest{ValidatorAddr: addr} + res, err := queryClient.Validator(cmd.Context(), params) if err != nil { return err } - if len(res) == 0 { - return fmt.Errorf("no validator found with address %s", addr) - } - - validator, err := types.UnmarshalValidator(types.ModuleCdc, res) - if err != nil { - return err - } - - return clientCtx.PrintOutput(validator) + return clientCtx.PrintOutput(res.Validator) }, } @@ -148,29 +144,25 @@ $ %s query staking unbonding-delegations-from cosmosvaloper1gghjut3ccd8ay0zduzj6 ), Args: cobra.ExactArgs(1), RunE: func(cmd *cobra.Command, args []string) error { - clientCtx := client.NewContext().WithCodec(cdc).WithJSONMarshaler(cdc) + clientCtx := client.GetClientContextFromCmd(cmd) + queryClient := types.NewQueryClient(clientCtx) valAddr, err := sdk.ValAddressFromBech32(args[0]) if err != nil { return err } - page, _ := cmd.Flags().GetInt(flags.FlagPage) - limit, _ := cmd.Flags().GetInt(flags.FlagLimit) - bz, err := cdc.MarshalJSON(types.NewQueryValidatorParams(valAddr, page, limit)) - if err != nil { - return err + params := &types.QueryValidatorUnbondingDelegationsRequest{ + ValidatorAddr: valAddr, + Req: &query.PageRequest{}, } - route := fmt.Sprintf("custom/%s/%s", queryRoute, types.QueryValidatorUnbondingDelegations) - res, _, err := clientCtx.QueryWithData(route, bz) + res, err := queryClient.ValidatorUnbondingDelegations(context.Background(), params) if err != nil { return err } - var ubds types.UnbondingDelegations - cdc.MustUnmarshalJSON(res, &ubds) - return clientCtx.PrintOutput(ubds) + return clientCtx.PrintOutput(res.UnbondingResponses) }, } @@ -198,30 +190,25 @@ $ %s query staking redelegations-from cosmosvaloper1gghjut3ccd8ay0zduzj64hwre2fx ), Args: cobra.ExactArgs(1), RunE: func(cmd *cobra.Command, args []string) error { - clientCtx := client.NewContext().WithCodec(cdc).WithJSONMarshaler(cdc) + clientCtx := client.GetClientContextFromCmd(cmd) + queryClient := types.NewQueryClient(clientCtx) valSrcAddr, err := sdk.ValAddressFromBech32(args[0]) if err != nil { return err } - bz, err := cdc.MarshalJSON(types.QueryRedelegationParams{SrcValidatorAddr: valSrcAddr}) - if err != nil { - return err + params := &types.QueryRedelegationsRequest{ + SrcValidatorAddr: valSrcAddr, + Req: &query.PageRequest{}, } - route := fmt.Sprintf("custom/%s/%s", queryRoute, types.QueryRedelegations) - res, _, err := clientCtx.QueryWithData(route, bz) + res, err := queryClient.Redelegations(context.Background(), params) if err != nil { return err } - var resp types.RedelegationResponses - if err := cdc.UnmarshalJSON(res, &resp); err != nil { - return err - } - - return clientCtx.PrintOutput(resp) + return clientCtx.PrintOutput(res.RedelegationResponses) }, } @@ -246,7 +233,8 @@ $ %s query staking delegation cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p cosm ), Args: cobra.ExactArgs(2), RunE: func(cmd *cobra.Command, args []string) error { - clientCtx := client.NewContext().WithCodec(cdc).WithJSONMarshaler(cdc) + clientCtx := client.GetClientContextFromCmd(cmd) + queryClient := types.NewQueryClient(clientCtx) delAddr, err := sdk.AccAddressFromBech32(args[0]) if err != nil { @@ -258,23 +246,17 @@ $ %s query staking delegation cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p cosm return err } - bz, err := cdc.MarshalJSON(types.QueryDelegatorValidatorRequest{DelegatorAddr: delAddr, ValidatorAddr: valAddr}) - if err != nil { - return err + params := &types.QueryDelegationRequest{ + DelegatorAddr: delAddr, + ValidatorAddr: valAddr, } - route := fmt.Sprintf("custom/%s/%s", queryRoute, types.QueryDelegation) - res, _, err := clientCtx.QueryWithData(route, bz) + res, err := queryClient.Delegation(context.Background(), params) if err != nil { return err } - var resp types.DelegationResponse - if err := cdc.UnmarshalJSON(res, &resp); err != nil { - return err - } - - return clientCtx.PrintOutput(resp) + return clientCtx.PrintOutput(res.DelegationResponse) }, } @@ -300,30 +282,25 @@ $ %s query staking delegations cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p ), Args: cobra.ExactArgs(1), RunE: func(cmd *cobra.Command, args []string) error { - clientCtx := client.NewContext().WithCodec(cdc).WithJSONMarshaler(cdc) + clientCtx := client.GetClientContextFromCmd(cmd) + queryClient := types.NewQueryClient(clientCtx) delAddr, err := sdk.AccAddressFromBech32(args[0]) if err != nil { return err } - bz, err := cdc.MarshalJSON(types.NewQueryDelegatorParams(delAddr)) - if err != nil { - return err + params := &types.QueryDelegatorDelegationsRequest{ + DelegatorAddr: delAddr, + Req: &query.PageRequest{}, } - route := fmt.Sprintf("custom/%s/%s", queryRoute, types.QueryDelegatorDelegations) - res, _, err := clientCtx.QueryWithData(route, bz) + res, err := queryClient.DelegatorDelegations(context.Background(), params) if err != nil { return err } - var resp types.DelegationResponses - if err := cdc.UnmarshalJSON(res, &resp); err != nil { - return err - } - - return clientCtx.PrintOutput(resp) + return clientCtx.PrintOutput(res.DelegationResponses) }, } @@ -349,32 +326,25 @@ $ %s query staking delegations-to cosmosvaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ld ), Args: cobra.ExactArgs(1), RunE: func(cmd *cobra.Command, args []string) error { - clientCtx := client.NewContext().WithCodec(cdc).WithJSONMarshaler(cdc) + clientCtx := client.GetClientContextFromCmd(cmd) + queryClient := types.NewQueryClient(clientCtx) valAddr, err := sdk.ValAddressFromBech32(args[0]) if err != nil { return err } - page, _ := cmd.Flags().GetInt(flags.FlagPage) - limit, _ := cmd.Flags().GetInt(flags.FlagLimit) - bz, err := cdc.MarshalJSON(types.NewQueryValidatorParams(valAddr, page, limit)) - if err != nil { - return err + params := &types.QueryValidatorDelegationsRequest{ + ValidatorAddr: valAddr, + Req: &query.PageRequest{}, } - route := fmt.Sprintf("custom/%s/%s", queryRoute, types.QueryValidatorDelegations) - res, _, err := clientCtx.QueryWithData(route, bz) + res, err := queryClient.ValidatorDelegations(context.Background(), params) if err != nil { return err } - var resp types.DelegationResponses - if err := cdc.UnmarshalJSON(res, &resp); err != nil { - return err - } - - return clientCtx.PrintOutput(resp) + return clientCtx.PrintOutput(res.DelegationResponses) }, } @@ -402,7 +372,8 @@ $ %s query staking unbonding-delegation cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld7 ), Args: cobra.ExactArgs(2), RunE: func(cmd *cobra.Command, args []string) error { - clientCtx := client.NewContext().WithCodec(cdc).WithJSONMarshaler(cdc) + clientCtx := client.GetClientContextFromCmd(cmd) + queryClient := types.NewQueryClient(clientCtx) valAddr, err := sdk.ValAddressFromBech32(args[1]) if err != nil { @@ -414,23 +385,17 @@ $ %s query staking unbonding-delegation cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld7 return err } - bz, err := cdc.MarshalJSON(types.QueryDelegatorValidatorRequest{DelegatorAddr: delAddr, ValidatorAddr: valAddr}) - if err != nil { - return err + params := &types.QueryUnbondingDelegationRequest{ + DelegatorAddr: delAddr, + ValidatorAddr: valAddr, } - route := fmt.Sprintf("custom/%s/%s", queryRoute, types.QueryUnbondingDelegation) - res, _, err := clientCtx.QueryWithData(route, bz) + res, err := queryClient.UnbondingDelegation(context.Background(), params) if err != nil { return err } - var ubd types.UnbondingDelegation - if err = cdc.UnmarshalJSON(res, &ubd); err != nil { - return err - } - - return clientCtx.PrintOutput(ubd) + return clientCtx.PrintOutput(res.Unbond) }, } @@ -456,30 +421,25 @@ $ %s query staking unbonding-delegations cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld ), Args: cobra.ExactArgs(1), RunE: func(cmd *cobra.Command, args []string) error { - clientCtx := client.NewContext().WithCodec(cdc).WithJSONMarshaler(cdc) + clientCtx := client.GetClientContextFromCmd(cmd) + queryClient := types.NewQueryClient(clientCtx) delegatorAddr, err := sdk.AccAddressFromBech32(args[0]) if err != nil { return err } - bz, err := cdc.MarshalJSON(types.NewQueryDelegatorParams(delegatorAddr)) - if err != nil { - return err + params := &types.QueryDelegatorUnbondingDelegationsRequest{ + DelegatorAddr: delegatorAddr, + Req: &query.PageRequest{}, } - route := fmt.Sprintf("custom/%s/%s", queryRoute, types.QueryDelegatorUnbondingDelegations) - res, _, err := clientCtx.QueryWithData(route, bz) + res, err := queryClient.DelegatorUnbondingDelegations(context.Background(), params) if err != nil { return err } - var ubds types.UnbondingDelegations - if err = cdc.UnmarshalJSON(res, &ubds); err != nil { - return err - } - - return clientCtx.PrintOutput(ubds) + return clientCtx.PrintOutput(res.UnbondingResponses) }, } @@ -505,7 +465,8 @@ $ %s query staking redelegation cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p co ), Args: cobra.ExactArgs(3), RunE: func(cmd *cobra.Command, args []string) error { - clientCtx := client.NewContext().WithCodec(cdc).WithJSONMarshaler(cdc) + clientCtx := client.GetClientContextFromCmd(cmd) + queryClient := types.NewQueryClient(clientCtx) delAddr, err := sdk.AccAddressFromBech32(args[0]) if err != nil { @@ -522,23 +483,19 @@ $ %s query staking redelegation cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p co return err } - bz, err := cdc.MarshalJSON(types.NewQueryRedelegationParams(delAddr, valSrcAddr, valDstAddr)) - if err != nil { - return err + params := &types.QueryRedelegationsRequest{ + DelegatorAddr: delAddr, + DstValidatorAddr: valDstAddr, + SrcValidatorAddr: valSrcAddr, + Req: &query.PageRequest{}, } - route := fmt.Sprintf("custom/%s/%s", queryRoute, types.QueryRedelegations) - res, _, err := clientCtx.QueryWithData(route, bz) + res, err := queryClient.Redelegations(context.Background(), params) if err != nil { return err } - var resp types.RedelegationResponses - if err := cdc.UnmarshalJSON(res, &resp); err != nil { - return err - } - - return clientCtx.PrintOutput(resp) + return clientCtx.PrintOutput(res.RedelegationResponses) }, } @@ -564,30 +521,25 @@ $ %s query staking redelegation cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p ), ), RunE: func(cmd *cobra.Command, args []string) error { - clientCtx := client.NewContext().WithCodec(cdc).WithJSONMarshaler(cdc) + clientCtx := client.GetClientContextFromCmd(cmd) + queryClient := types.NewQueryClient(clientCtx) delAddr, err := sdk.AccAddressFromBech32(args[0]) if err != nil { return err } - bz, err := cdc.MarshalJSON(types.QueryRedelegationParams{DelegatorAddr: delAddr}) - if err != nil { - return err + params := &types.QueryRedelegationsRequest{ + DelegatorAddr: delAddr, + Req: &query.PageRequest{}, } - route := fmt.Sprintf("custom/%s/%s", queryRoute, types.QueryRedelegations) - res, _, err := clientCtx.QueryWithData(route, bz) + res, err := queryClient.Redelegations(context.Background(), params) if err != nil { return err } - var resp types.RedelegationResponses - if err := cdc.UnmarshalJSON(res, &resp); err != nil { - return err - } - - return clientCtx.PrintOutput(resp) + return clientCtx.PrintOutput(res.RedelegationResponses) }, } @@ -612,30 +564,22 @@ $ %s query staking historical-info 5 ), ), RunE: func(cmd *cobra.Command, args []string) error { - clientCtx := client.NewContext().WithCodec(cdc).WithJSONMarshaler(cdc) + clientCtx := client.GetClientContextFromCmd(cmd) + queryClient := types.NewQueryClient(clientCtx) height, err := strconv.ParseInt(args[0], 10, 64) if err != nil || height < 0 { return fmt.Errorf("height argument provided must be a non-negative-integer: %v", err) } - bz, err := cdc.MarshalJSON(types.QueryHistoricalInfoRequest{Height: height}) - if err != nil { - return err - } + params := &types.QueryHistoricalInfoRequest{Height: height} + res, err := queryClient.HistoricalInfo(context.Background(), params) - route := fmt.Sprintf("custom/%s/%s", queryRoute, types.QueryHistoricalInfo) - res, _, err := clientCtx.QueryWithData(route, bz) if err != nil { return err } - var resp types.HistoricalInfo - if err := cdc.UnmarshalJSON(res, &resp); err != nil { - return err - } - - return clientCtx.PrintOutput(resp) + return clientCtx.PrintOutput(res.Hist) }, } @@ -660,19 +604,15 @@ $ %s query staking pool ), ), RunE: func(cmd *cobra.Command, args []string) error { - clientCtx := client.NewContext().WithCodec(cdc).WithJSONMarshaler(cdc) + clientCtx := client.GetClientContextFromCmd(cmd) + queryClient := types.NewQueryClient(clientCtx) - bz, _, err := clientCtx.QueryWithData(fmt.Sprintf("custom/%s/pool", storeName), nil) + res, err := queryClient.Pool(context.Background(), &types.QueryPoolRequest{}) if err != nil { return err } - var pool types.Pool - if err := cdc.UnmarshalJSON(bz, &pool); err != nil { - return err - } - - return clientCtx.PrintOutput(pool) + return clientCtx.PrintOutput(res.Pool) }, } @@ -697,17 +637,15 @@ $ %s query staking params ), ), RunE: func(cmd *cobra.Command, args []string) error { - clientCtx := client.NewContext().WithCodec(cdc).WithJSONMarshaler(cdc) + clientCtx := client.GetClientContextFromCmd(cmd) + queryClient := types.NewQueryClient(clientCtx) - route := fmt.Sprintf("custom/%s/%s", storeName, types.QueryParameters) - bz, _, err := clientCtx.QueryWithData(route, nil) + res, err := queryClient.Params(context.Background(), &types.QueryParamsRequest{}) if err != nil { return err } - var params types.Params - cdc.MustUnmarshalJSON(bz, ¶ms) - return clientCtx.PrintOutput(params) + return clientCtx.PrintOutput(res.Params) }, } From 12940d3d8d4c44eaecc8c6fdb6375aa86014fa8c Mon Sep 17 00:00:00 2001 From: atheesh Date: Wed, 15 Jul 2020 17:47:14 +0530 Subject: [PATCH 02/10] removed codecs usage --- x/staking/client/cli/query.go | 63 +++++++++++++++++------------------ x/staking/module.go | 4 +-- 2 files changed, 33 insertions(+), 34 deletions(-) diff --git a/x/staking/client/cli/query.go b/x/staking/client/cli/query.go index 5ca513edf97c..cd8aab79ba22 100644 --- a/x/staking/client/cli/query.go +++ b/x/staking/client/cli/query.go @@ -10,7 +10,6 @@ import ( "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client/flags" - "github.com/cosmos/cosmos-sdk/codec" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/query" "github.com/cosmos/cosmos-sdk/version" @@ -18,7 +17,7 @@ import ( ) // GetQueryCmd returns the cli query commands for this module -func GetQueryCmd(queryRoute string, cdc *codec.Codec) *cobra.Command { +func GetQueryCmd() *cobra.Command { stakingQueryCmd := &cobra.Command{ Use: types.ModuleName, Short: "Querying commands for the staking module", @@ -28,27 +27,27 @@ func GetQueryCmd(queryRoute string, cdc *codec.Codec) *cobra.Command { } stakingQueryCmd.AddCommand( - GetCmdQueryDelegation(queryRoute, cdc), - GetCmdQueryDelegations(queryRoute, cdc), - GetCmdQueryUnbondingDelegation(queryRoute, cdc), - GetCmdQueryUnbondingDelegations(queryRoute, cdc), - GetCmdQueryRedelegation(queryRoute, cdc), - GetCmdQueryRedelegations(queryRoute, cdc), - GetCmdQueryValidator(queryRoute, cdc), - GetCmdQueryValidators(queryRoute, cdc), - GetCmdQueryValidatorDelegations(queryRoute, cdc), - GetCmdQueryValidatorUnbondingDelegations(queryRoute, cdc), - GetCmdQueryValidatorRedelegations(queryRoute, cdc), - GetCmdQueryHistoricalInfo(queryRoute, cdc), - GetCmdQueryParams(queryRoute, cdc), - GetCmdQueryPool(queryRoute, cdc), + GetCmdQueryDelegation(), + GetCmdQueryDelegations(), + GetCmdQueryUnbondingDelegation(), + GetCmdQueryUnbondingDelegations(), + GetCmdQueryRedelegation(), + GetCmdQueryRedelegations(), + GetCmdQueryValidator(), + GetCmdQueryValidators(), + GetCmdQueryValidatorDelegations(), + GetCmdQueryValidatorUnbondingDelegations(), + GetCmdQueryValidatorRedelegations(), + GetCmdQueryHistoricalInfo(), + GetCmdQueryParams(), + GetCmdQueryPool(), ) return stakingQueryCmd } // GetCmdQueryValidator implements the validator query command. -func GetCmdQueryValidator(storeName string, cdc *codec.Codec) *cobra.Command { +func GetCmdQueryValidator() *cobra.Command { cmd := &cobra.Command{ Use: "validator [validator-addr]", Short: "Query a validator", @@ -87,7 +86,7 @@ $ %s query staking validator cosmosvaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhff } // GetCmdQueryValidators implements the query all validators command. -func GetCmdQueryValidators(storeName string, cdc *codec.Codec) *cobra.Command { +func GetCmdQueryValidators() *cobra.Command { cmd := &cobra.Command{ Use: "validators", Short: "Query for all validators", @@ -102,9 +101,9 @@ $ %s query staking validators ), ), RunE: func(cmd *cobra.Command, args []string) error { - clientCtx := client.NewContext().WithCodec(cdc).WithJSONMarshaler(cdc) + clientCtx := client.GetClientContextFromCmd(cmd) - resKVs, _, err := clientCtx.QuerySubspace(types.ValidatorsKey, storeName) + resKVs, _, err := clientCtx.QuerySubspace(types.ValidatorsKey, types.StoreKey) if err != nil { return err } @@ -129,7 +128,7 @@ $ %s query staking validators } // GetCmdQueryValidatorUnbondingDelegations implements the query all unbonding delegatations from a validator command. -func GetCmdQueryValidatorUnbondingDelegations(queryRoute string, cdc *codec.Codec) *cobra.Command { +func GetCmdQueryValidatorUnbondingDelegations() *cobra.Command { cmd := &cobra.Command{ Use: "unbonding-delegations-from [validator-addr]", Short: "Query all unbonding delegatations from a validator", @@ -175,7 +174,7 @@ $ %s query staking unbonding-delegations-from cosmosvaloper1gghjut3ccd8ay0zduzj6 // GetCmdQueryValidatorRedelegations implements the query all redelegatations // from a validator command. -func GetCmdQueryValidatorRedelegations(queryRoute string, cdc *codec.Codec) *cobra.Command { +func GetCmdQueryValidatorRedelegations() *cobra.Command { cmd := &cobra.Command{ Use: "redelegations-from [validator-addr]", Short: "Query all outgoing redelegatations from a validator", @@ -218,7 +217,7 @@ $ %s query staking redelegations-from cosmosvaloper1gghjut3ccd8ay0zduzj64hwre2fx } // GetCmdQueryDelegation the query delegation command. -func GetCmdQueryDelegation(queryRoute string, cdc *codec.Codec) *cobra.Command { +func GetCmdQueryDelegation() *cobra.Command { cmd := &cobra.Command{ Use: "delegation [delegator-addr] [validator-addr]", Short: "Query a delegation based on address and validator address", @@ -267,7 +266,7 @@ $ %s query staking delegation cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p cosm // GetCmdQueryDelegations implements the command to query all the delegations // made from one delegator. -func GetCmdQueryDelegations(queryRoute string, cdc *codec.Codec) *cobra.Command { +func GetCmdQueryDelegations() *cobra.Command { cmd := &cobra.Command{ Use: "delegations [delegator-addr]", Short: "Query all delegations made by one delegator", @@ -311,7 +310,7 @@ $ %s query staking delegations cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p // GetCmdQueryValidatorDelegations implements the command to query all the // delegations to a specific validator. -func GetCmdQueryValidatorDelegations(queryRoute string, cdc *codec.Codec) *cobra.Command { +func GetCmdQueryValidatorDelegations() *cobra.Command { cmd := &cobra.Command{ Use: "delegations-to [validator-addr]", Short: "Query all delegations made to one validator", @@ -357,7 +356,7 @@ $ %s query staking delegations-to cosmosvaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ld // GetCmdQueryUnbondingDelegation implements the command to query a single // unbonding-delegation record. -func GetCmdQueryUnbondingDelegation(queryRoute string, cdc *codec.Codec) *cobra.Command { +func GetCmdQueryUnbondingDelegation() *cobra.Command { cmd := &cobra.Command{ Use: "unbonding-delegation [delegator-addr] [validator-addr]", Short: "Query an unbonding-delegation record based on delegator and validator address", @@ -406,7 +405,7 @@ $ %s query staking unbonding-delegation cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld7 // GetCmdQueryUnbondingDelegations implements the command to query all the // unbonding-delegation records for a delegator. -func GetCmdQueryUnbondingDelegations(queryRoute string, cdc *codec.Codec) *cobra.Command { +func GetCmdQueryUnbondingDelegations() *cobra.Command { cmd := &cobra.Command{ Use: "unbonding-delegations [delegator-addr]", Short: "Query all unbonding-delegations records for one delegator", @@ -450,7 +449,7 @@ $ %s query staking unbonding-delegations cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld // GetCmdQueryRedelegation implements the command to query a single // redelegation record. -func GetCmdQueryRedelegation(queryRoute string, cdc *codec.Codec) *cobra.Command { +func GetCmdQueryRedelegation() *cobra.Command { cmd := &cobra.Command{ Use: "redelegation [delegator-addr] [src-validator-addr] [dst-validator-addr]", Short: "Query a redelegation record based on delegator and a source and destination validator address", @@ -506,7 +505,7 @@ $ %s query staking redelegation cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p co // GetCmdQueryRedelegations implements the command to query all the // redelegation records for a delegator. -func GetCmdQueryRedelegations(queryRoute string, cdc *codec.Codec) *cobra.Command { +func GetCmdQueryRedelegations() *cobra.Command { cmd := &cobra.Command{ Use: "redelegations [delegator-addr]", Args: cobra.ExactArgs(1), @@ -549,7 +548,7 @@ $ %s query staking redelegation cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p } // GetCmdQueryHistoricalInfo implements the historical info query command -func GetCmdQueryHistoricalInfo(queryRoute string, cdc *codec.Codec) *cobra.Command { +func GetCmdQueryHistoricalInfo() *cobra.Command { cmd := &cobra.Command{ Use: "historical-info [height]", Args: cobra.ExactArgs(1), @@ -589,7 +588,7 @@ $ %s query staking historical-info 5 } // GetCmdQueryPool implements the pool query command. -func GetCmdQueryPool(storeName string, cdc *codec.Codec) *cobra.Command { +func GetCmdQueryPool() *cobra.Command { cmd := &cobra.Command{ Use: "pool", Args: cobra.NoArgs, @@ -622,7 +621,7 @@ $ %s query staking pool } // GetCmdQueryParams implements the params query command. -func GetCmdQueryParams(storeName string, cdc *codec.Codec) *cobra.Command { +func GetCmdQueryParams() *cobra.Command { cmd := &cobra.Command{ Use: "params", Args: cobra.NoArgs, diff --git a/x/staking/module.go b/x/staking/module.go index bd2538ee6263..77a66a8ca907 100644 --- a/x/staking/module.go +++ b/x/staking/module.go @@ -73,8 +73,8 @@ func (AppModuleBasic) GetTxCmd(clientCtx client.Context) *cobra.Command { } // GetQueryCmd returns no root query command for the staking module. -func (AppModuleBasic) GetQueryCmd(clientCtx client.Context) *cobra.Command { - return cli.GetQueryCmd(types.StoreKey, clientCtx.Codec) +func (AppModuleBasic) GetQueryCmd(_ client.Context) *cobra.Command { + return cli.GetQueryCmd() } // AppModule implements an application module for the staking module. From aa6699c18dd8bfec455259b412169364b43f1367 Mon Sep 17 00:00:00 2001 From: atheesh Date: Wed, 15 Jul 2020 23:03:24 +0530 Subject: [PATCH 03/10] review change --- x/staking/client/cli/query.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/x/staking/client/cli/query.go b/x/staking/client/cli/query.go index cd8aab79ba22..5f51095f4912 100644 --- a/x/staking/client/cli/query.go +++ b/x/staking/client/cli/query.go @@ -63,6 +63,11 @@ $ %s query staking validator cosmosvaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhff Args: cobra.ExactArgs(1), RunE: func(cmd *cobra.Command, args []string) error { clientCtx := client.GetClientContextFromCmd(cmd) + clientCtx, err := client.ReadQueryCommandFlags(clientCtx, cmd.Flags()) + if err != nil { + return err + } + queryClient := types.NewQueryClient(clientCtx) addr, err := sdk.ValAddressFromBech32(args[0]) From cdd0a394c03c4d46ca6acf46f23f757828ca797a Mon Sep 17 00:00:00 2001 From: atheesh Date: Thu, 16 Jul 2020 14:07:10 +0530 Subject: [PATCH 04/10] added read command flags --- x/staking/client/cli/query.go | 64 +++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) diff --git a/x/staking/client/cli/query.go b/x/staking/client/cli/query.go index 5f51095f4912..9dbeb65dcfd3 100644 --- a/x/staking/client/cli/query.go +++ b/x/staking/client/cli/query.go @@ -107,6 +107,10 @@ $ %s query staking validators ), RunE: func(cmd *cobra.Command, args []string) error { clientCtx := client.GetClientContextFromCmd(cmd) + clientCtx, err := client.ReadQueryCommandFlags(clientCtx, cmd.Flags()) + if err != nil { + return err + } resKVs, _, err := clientCtx.QuerySubspace(types.ValidatorsKey, types.StoreKey) if err != nil { @@ -149,6 +153,11 @@ $ %s query staking unbonding-delegations-from cosmosvaloper1gghjut3ccd8ay0zduzj6 Args: cobra.ExactArgs(1), RunE: func(cmd *cobra.Command, args []string) error { clientCtx := client.GetClientContextFromCmd(cmd) + clientCtx, err := client.ReadQueryCommandFlags(clientCtx, cmd.Flags()) + if err != nil { + return err + } + queryClient := types.NewQueryClient(clientCtx) valAddr, err := sdk.ValAddressFromBech32(args[0]) @@ -195,6 +204,11 @@ $ %s query staking redelegations-from cosmosvaloper1gghjut3ccd8ay0zduzj64hwre2fx Args: cobra.ExactArgs(1), RunE: func(cmd *cobra.Command, args []string) error { clientCtx := client.GetClientContextFromCmd(cmd) + clientCtx, err := client.ReadQueryCommandFlags(clientCtx, cmd.Flags()) + if err != nil { + return err + } + queryClient := types.NewQueryClient(clientCtx) valSrcAddr, err := sdk.ValAddressFromBech32(args[0]) @@ -238,6 +252,11 @@ $ %s query staking delegation cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p cosm Args: cobra.ExactArgs(2), RunE: func(cmd *cobra.Command, args []string) error { clientCtx := client.GetClientContextFromCmd(cmd) + clientCtx, err := client.ReadQueryCommandFlags(clientCtx, cmd.Flags()) + if err != nil { + return err + } + queryClient := types.NewQueryClient(clientCtx) delAddr, err := sdk.AccAddressFromBech32(args[0]) @@ -287,6 +306,11 @@ $ %s query staking delegations cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p Args: cobra.ExactArgs(1), RunE: func(cmd *cobra.Command, args []string) error { clientCtx := client.GetClientContextFromCmd(cmd) + clientCtx, err := client.ReadQueryCommandFlags(clientCtx, cmd.Flags()) + if err != nil { + return err + } + queryClient := types.NewQueryClient(clientCtx) delAddr, err := sdk.AccAddressFromBech32(args[0]) @@ -331,6 +355,11 @@ $ %s query staking delegations-to cosmosvaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ld Args: cobra.ExactArgs(1), RunE: func(cmd *cobra.Command, args []string) error { clientCtx := client.GetClientContextFromCmd(cmd) + clientCtx, err := client.ReadQueryCommandFlags(clientCtx, cmd.Flags()) + if err != nil { + return err + } + queryClient := types.NewQueryClient(clientCtx) valAddr, err := sdk.ValAddressFromBech32(args[0]) @@ -377,6 +406,11 @@ $ %s query staking unbonding-delegation cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld7 Args: cobra.ExactArgs(2), RunE: func(cmd *cobra.Command, args []string) error { clientCtx := client.GetClientContextFromCmd(cmd) + clientCtx, err := client.ReadQueryCommandFlags(clientCtx, cmd.Flags()) + if err != nil { + return err + } + queryClient := types.NewQueryClient(clientCtx) valAddr, err := sdk.ValAddressFromBech32(args[1]) @@ -426,6 +460,11 @@ $ %s query staking unbonding-delegations cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld Args: cobra.ExactArgs(1), RunE: func(cmd *cobra.Command, args []string) error { clientCtx := client.GetClientContextFromCmd(cmd) + clientCtx, err := client.ReadQueryCommandFlags(clientCtx, cmd.Flags()) + if err != nil { + return err + } + queryClient := types.NewQueryClient(clientCtx) delegatorAddr, err := sdk.AccAddressFromBech32(args[0]) @@ -470,6 +509,11 @@ $ %s query staking redelegation cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p co Args: cobra.ExactArgs(3), RunE: func(cmd *cobra.Command, args []string) error { clientCtx := client.GetClientContextFromCmd(cmd) + clientCtx, err := client.ReadQueryCommandFlags(clientCtx, cmd.Flags()) + if err != nil { + return err + } + queryClient := types.NewQueryClient(clientCtx) delAddr, err := sdk.AccAddressFromBech32(args[0]) @@ -526,6 +570,11 @@ $ %s query staking redelegation cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p ), RunE: func(cmd *cobra.Command, args []string) error { clientCtx := client.GetClientContextFromCmd(cmd) + clientCtx, err := client.ReadQueryCommandFlags(clientCtx, cmd.Flags()) + if err != nil { + return err + } + queryClient := types.NewQueryClient(clientCtx) delAddr, err := sdk.AccAddressFromBech32(args[0]) @@ -569,6 +618,11 @@ $ %s query staking historical-info 5 ), RunE: func(cmd *cobra.Command, args []string) error { clientCtx := client.GetClientContextFromCmd(cmd) + clientCtx, err := client.ReadQueryCommandFlags(clientCtx, cmd.Flags()) + if err != nil { + return err + } + queryClient := types.NewQueryClient(clientCtx) height, err := strconv.ParseInt(args[0], 10, 64) @@ -609,6 +663,11 @@ $ %s query staking pool ), RunE: func(cmd *cobra.Command, args []string) error { clientCtx := client.GetClientContextFromCmd(cmd) + clientCtx, err := client.ReadQueryCommandFlags(clientCtx, cmd.Flags()) + if err != nil { + return err + } + queryClient := types.NewQueryClient(clientCtx) res, err := queryClient.Pool(context.Background(), &types.QueryPoolRequest{}) @@ -642,6 +701,11 @@ $ %s query staking params ), RunE: func(cmd *cobra.Command, args []string) error { clientCtx := client.GetClientContextFromCmd(cmd) + clientCtx, err := client.ReadQueryCommandFlags(clientCtx, cmd.Flags()) + if err != nil { + return err + } + queryClient := types.NewQueryClient(clientCtx) res, err := queryClient.Params(context.Background(), &types.QueryParamsRequest{}) From 316c55ecc8220d30b75d1d7e17069b23959dff09 Mon Sep 17 00:00:00 2001 From: atheesh Date: Fri, 17 Jul 2020 12:18:57 +0530 Subject: [PATCH 05/10] added pagination flags --- client/flags/flags.go | 3 ++ client/utils.go | 36 +++++++++++++++++ x/staking/client/cli/query.go | 74 +++++++++++++++++++++++++++++------ 3 files changed, 102 insertions(+), 11 deletions(-) diff --git a/client/flags/flags.go b/client/flags/flags.go index 125f5ac5a6d3..548f3bbc210d 100644 --- a/client/flags/flags.go +++ b/client/flags/flags.go @@ -61,6 +61,9 @@ const ( FlagPage = "page" FlagLimit = "limit" FlagSignMode = "sign-mode" + FlagPageKey = "page-key" + FlagOffset = "offset" + FlagCountTotal = "count-total" ) // LineBreak can be included in a command list to provide a blank line diff --git a/client/utils.go b/client/utils.go index 25290991a404..a85037e7ddfc 100644 --- a/client/utils.go +++ b/client/utils.go @@ -1,5 +1,11 @@ package client +import ( + "github.com/cosmos/cosmos-sdk/client/flags" + "github.com/cosmos/cosmos-sdk/types/query" + "github.com/spf13/pflag" +) + // Paginate returns the correct starting and ending index for a paginated query, // given that client provides a desired page and limit of objects and the handler // provides the total number of objects. The start page is assumed to be 1-indexed. @@ -35,3 +41,33 @@ func Paginate(numObjs, page, limit, defLimit int) (start, end int) { return start, end } + +// ReadPageRequest reads and builds the necessary page request flags for pagination. +func ReadPageRequest(flagSet *pflag.FlagSet) (*query.PageRequest, error) { + pageKey, err := flagSet.GetString(flags.FlagPageKey) + if err != nil { + return nil, err + } + + offset, err := flagSet.GetUint64(flags.FlagOffset) + if err != nil { + return nil, err + } + + limit, err := flagSet.GetUint64(flags.FlagLimit) + if err != nil { + return nil, err + } + + countTotal, err := flagSet.GetBool(flags.FlagCountTotal) + if err != nil { + return nil, err + } + + return &query.PageRequest{ + Key: []byte(pageKey), + Offset: offset, + Limit: limit, + CountTotal: countTotal, + }, nil +} diff --git a/x/staking/client/cli/query.go b/x/staking/client/cli/query.go index 9dbeb65dcfd3..5568bbf333f3 100644 --- a/x/staking/client/cli/query.go +++ b/x/staking/client/cli/query.go @@ -11,7 +11,6 @@ import ( "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client/flags" sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/cosmos/cosmos-sdk/types/query" "github.com/cosmos/cosmos-sdk/version" "github.com/cosmos/cosmos-sdk/x/staking/types" ) @@ -165,9 +164,14 @@ $ %s query staking unbonding-delegations-from cosmosvaloper1gghjut3ccd8ay0zduzj6 return err } + pageReq, err := client.ReadPageRequest(cmd.Flags()) + if err != nil { + return err + } + params := &types.QueryValidatorUnbondingDelegationsRequest{ ValidatorAddr: valAddr, - Req: &query.PageRequest{}, + Req: pageReq, } res, err := queryClient.ValidatorUnbondingDelegations(context.Background(), params) @@ -179,8 +183,10 @@ $ %s query staking unbonding-delegations-from cosmosvaloper1gghjut3ccd8ay0zduzj6 }, } - cmd.Flags().Int(flags.FlagPage, 1, "pagination page of unbonding delegations to query for") - cmd.Flags().Int(flags.FlagLimit, 100, "pagination limit of unbonding delegations to query for") + cmd.Flags().String(flags.FlagPageKey, "", "pagination page-key of unbonding delegations to query for") + cmd.Flags().Uint64(flags.FlagOffset, 1, "pagination offset of unbonding delegations to query for") + cmd.Flags().Uint64(flags.FlagLimit, 100, "pagination limit of unbonding delegations to query for") + cmd.Flags().Bool(flags.FlagCountTotal, false, "total number of records in unbonding delegations to query for") flags.AddQueryFlagsToCmd(cmd) return cmd @@ -216,9 +222,14 @@ $ %s query staking redelegations-from cosmosvaloper1gghjut3ccd8ay0zduzj64hwre2fx return err } + pageReq, err := client.ReadPageRequest(cmd.Flags()) + if err != nil { + return err + } + params := &types.QueryRedelegationsRequest{ SrcValidatorAddr: valSrcAddr, - Req: &query.PageRequest{}, + Req: pageReq, } res, err := queryClient.Redelegations(context.Background(), params) @@ -230,6 +241,11 @@ $ %s query staking redelegations-from cosmosvaloper1gghjut3ccd8ay0zduzj64hwre2fx }, } + cmd.Flags().String(flags.FlagPageKey, "", "pagination page-key of validator redelegations to query for") + cmd.Flags().Uint64(flags.FlagOffset, 1, "pagination offset of validator redelegations to query for") + cmd.Flags().Uint64(flags.FlagLimit, 100, "pagination limit of validator redelegations to query for") + cmd.Flags().Bool(flags.FlagCountTotal, false, "total number of records in validator redelegations to query for") + flags.AddQueryFlagsToCmd(cmd) return cmd @@ -318,9 +334,14 @@ $ %s query staking delegations cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p return err } + pageReq, err := client.ReadPageRequest(cmd.Flags()) + if err != nil { + return err + } + params := &types.QueryDelegatorDelegationsRequest{ DelegatorAddr: delAddr, - Req: &query.PageRequest{}, + Req: pageReq, } res, err := queryClient.DelegatorDelegations(context.Background(), params) @@ -332,6 +353,10 @@ $ %s query staking delegations cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p }, } + cmd.Flags().String(flags.FlagPageKey, "", "pagination page-key of delegations to query for") + cmd.Flags().Uint64(flags.FlagOffset, 1, "pagination offset of delegations to query for") + cmd.Flags().Uint64(flags.FlagLimit, 100, "pagination limit of delegations to query for") + cmd.Flags().Bool(flags.FlagCountTotal, false, "total number of records in delegations to query for") flags.AddQueryFlagsToCmd(cmd) return cmd @@ -367,9 +392,14 @@ $ %s query staking delegations-to cosmosvaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ld return err } + pageReq, err := client.ReadPageRequest(cmd.Flags()) + if err != nil { + return err + } + params := &types.QueryValidatorDelegationsRequest{ ValidatorAddr: valAddr, - Req: &query.PageRequest{}, + Req: pageReq, } res, err := queryClient.ValidatorDelegations(context.Background(), params) @@ -381,6 +411,11 @@ $ %s query staking delegations-to cosmosvaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ld }, } + cmd.Flags().String(flags.FlagPageKey, "", "pagination page-key of validator delegations to query for") + cmd.Flags().Uint64(flags.FlagOffset, 1, "pagination offset of validator delegations to query for") + cmd.Flags().Uint64(flags.FlagLimit, 100, "pagination limit of validator delegations to query for") + cmd.Flags().Bool(flags.FlagCountTotal, false, "total number of records in validator delegations to query for") + cmd.Flags().Int(flags.FlagPage, 1, "pagination page of delegations to query for") cmd.Flags().Int(flags.FlagLimit, 100, "pagination limit of delegations to query for") flags.AddQueryFlagsToCmd(cmd) @@ -472,9 +507,14 @@ $ %s query staking unbonding-delegations cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld return err } + pageReq, err := client.ReadPageRequest(cmd.Flags()) + if err != nil { + return err + } + params := &types.QueryDelegatorUnbondingDelegationsRequest{ DelegatorAddr: delegatorAddr, - Req: &query.PageRequest{}, + Req: pageReq, } res, err := queryClient.DelegatorUnbondingDelegations(context.Background(), params) @@ -486,6 +526,11 @@ $ %s query staking unbonding-delegations cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld }, } + cmd.Flags().String(flags.FlagPageKey, "", "pagination page-key of delegator unbonding delegations to query for") + cmd.Flags().Uint64(flags.FlagOffset, 1, "pagination offset of delegator unbonding delegations to query for") + cmd.Flags().Uint64(flags.FlagLimit, 100, "pagination limit of delegator unbonding delegations to query for") + cmd.Flags().Bool(flags.FlagCountTotal, false, "total number of records in delegator unbonding delegations to query for") + flags.AddQueryFlagsToCmd(cmd) return cmd @@ -535,7 +580,6 @@ $ %s query staking redelegation cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p co DelegatorAddr: delAddr, DstValidatorAddr: valDstAddr, SrcValidatorAddr: valSrcAddr, - Req: &query.PageRequest{}, } res, err := queryClient.Redelegations(context.Background(), params) @@ -582,9 +626,14 @@ $ %s query staking redelegation cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p return err } + pageReq, err := client.ReadPageRequest(cmd.Flags()) + if err != nil { + return err + } + params := &types.QueryRedelegationsRequest{ DelegatorAddr: delAddr, - Req: &query.PageRequest{}, + Req: pageReq, } res, err := queryClient.Redelegations(context.Background(), params) @@ -595,7 +644,10 @@ $ %s query staking redelegation cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p return clientCtx.PrintOutput(res.RedelegationResponses) }, } - + cmd.Flags().String(flags.FlagPageKey, "", "pagination page-key of delegator redelegations to query for") + cmd.Flags().Uint64(flags.FlagOffset, 1, "pagination offset of delegator redelegations to query for") + cmd.Flags().Uint64(flags.FlagLimit, 100, "pagination limit of delegator redelegations to query for") + cmd.Flags().Bool(flags.FlagCountTotal, false, "total number of records in delegator redelegations to query for") flags.AddQueryFlagsToCmd(cmd) return cmd From daefb373ab60035bcacc93fe5bf3415477bbb114 Mon Sep 17 00:00:00 2001 From: atheesh Date: Fri, 17 Jul 2020 12:30:09 +0530 Subject: [PATCH 06/10] fixed limit issue --- x/staking/client/cli/query.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/x/staking/client/cli/query.go b/x/staking/client/cli/query.go index 5568bbf333f3..6b1a50f72841 100644 --- a/x/staking/client/cli/query.go +++ b/x/staking/client/cli/query.go @@ -416,8 +416,6 @@ $ %s query staking delegations-to cosmosvaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ld cmd.Flags().Uint64(flags.FlagLimit, 100, "pagination limit of validator delegations to query for") cmd.Flags().Bool(flags.FlagCountTotal, false, "total number of records in validator delegations to query for") - cmd.Flags().Int(flags.FlagPage, 1, "pagination page of delegations to query for") - cmd.Flags().Int(flags.FlagLimit, 100, "pagination limit of delegations to query for") flags.AddQueryFlagsToCmd(cmd) return cmd From 4f5e2019ebf868118ddb8c1f0f3de2336053ef8a Mon Sep 17 00:00:00 2001 From: atheesh Date: Fri, 17 Jul 2020 14:11:42 +0530 Subject: [PATCH 07/10] added helper function for default pagination flags --- client/flags/flags.go | 8 ++++++++ x/staking/client/cli/query.go | 34 +++++++--------------------------- 2 files changed, 15 insertions(+), 27 deletions(-) diff --git a/client/flags/flags.go b/client/flags/flags.go index 548f3bbc210d..1ca57333a042 100644 --- a/client/flags/flags.go +++ b/client/flags/flags.go @@ -126,6 +126,14 @@ func AddTxFlagsToCmd(cmd *cobra.Command) { viper.BindPFlag(FlagKeyringBackend, cmd.Flags().Lookup(FlagKeyringBackend)) } +// AddPaginationFlagsToCmd adds common paginations flags to command +func AddPaginationFlagsToCmd(cmd *cobra.Command, query string) { + cmd.Flags().String(FlagPageKey, "", fmt.Sprintf("pagination page-key of %s to query for", query)) + cmd.Flags().Uint64(FlagOffset, 1, fmt.Sprintf("pagination offset of %s to query for", query)) + cmd.Flags().Uint64(FlagLimit, 100, fmt.Sprintf("pagination limit of %s to query for", query)) + cmd.Flags().Bool(FlagCountTotal, false, fmt.Sprintf("total number of records in %s to query for", query)) +} + // GasSetting encapsulates the possible values passed through the --gas flag. type GasSetting struct { Simulate bool diff --git a/x/staking/client/cli/query.go b/x/staking/client/cli/query.go index 6b1a50f72841..e580feb6ca1a 100644 --- a/x/staking/client/cli/query.go +++ b/x/staking/client/cli/query.go @@ -183,11 +183,8 @@ $ %s query staking unbonding-delegations-from cosmosvaloper1gghjut3ccd8ay0zduzj6 }, } - cmd.Flags().String(flags.FlagPageKey, "", "pagination page-key of unbonding delegations to query for") - cmd.Flags().Uint64(flags.FlagOffset, 1, "pagination offset of unbonding delegations to query for") - cmd.Flags().Uint64(flags.FlagLimit, 100, "pagination limit of unbonding delegations to query for") - cmd.Flags().Bool(flags.FlagCountTotal, false, "total number of records in unbonding delegations to query for") flags.AddQueryFlagsToCmd(cmd) + flags.AddPaginationFlagsToCmd(cmd, "unbonding delegations") return cmd } @@ -241,12 +238,8 @@ $ %s query staking redelegations-from cosmosvaloper1gghjut3ccd8ay0zduzj64hwre2fx }, } - cmd.Flags().String(flags.FlagPageKey, "", "pagination page-key of validator redelegations to query for") - cmd.Flags().Uint64(flags.FlagOffset, 1, "pagination offset of validator redelegations to query for") - cmd.Flags().Uint64(flags.FlagLimit, 100, "pagination limit of validator redelegations to query for") - cmd.Flags().Bool(flags.FlagCountTotal, false, "total number of records in validator redelegations to query for") - flags.AddQueryFlagsToCmd(cmd) + flags.AddPaginationFlagsToCmd(cmd, "validator redelegations") return cmd } @@ -353,11 +346,8 @@ $ %s query staking delegations cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p }, } - cmd.Flags().String(flags.FlagPageKey, "", "pagination page-key of delegations to query for") - cmd.Flags().Uint64(flags.FlagOffset, 1, "pagination offset of delegations to query for") - cmd.Flags().Uint64(flags.FlagLimit, 100, "pagination limit of delegations to query for") - cmd.Flags().Bool(flags.FlagCountTotal, false, "total number of records in delegations to query for") flags.AddQueryFlagsToCmd(cmd) + flags.AddPaginationFlagsToCmd(cmd, "delegations") return cmd } @@ -411,12 +401,8 @@ $ %s query staking delegations-to cosmosvaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ld }, } - cmd.Flags().String(flags.FlagPageKey, "", "pagination page-key of validator delegations to query for") - cmd.Flags().Uint64(flags.FlagOffset, 1, "pagination offset of validator delegations to query for") - cmd.Flags().Uint64(flags.FlagLimit, 100, "pagination limit of validator delegations to query for") - cmd.Flags().Bool(flags.FlagCountTotal, false, "total number of records in validator delegations to query for") - flags.AddQueryFlagsToCmd(cmd) + flags.AddPaginationFlagsToCmd(cmd, "validator delegations") return cmd } @@ -524,12 +510,8 @@ $ %s query staking unbonding-delegations cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld }, } - cmd.Flags().String(flags.FlagPageKey, "", "pagination page-key of delegator unbonding delegations to query for") - cmd.Flags().Uint64(flags.FlagOffset, 1, "pagination offset of delegator unbonding delegations to query for") - cmd.Flags().Uint64(flags.FlagLimit, 100, "pagination limit of delegator unbonding delegations to query for") - cmd.Flags().Bool(flags.FlagCountTotal, false, "total number of records in delegator unbonding delegations to query for") - flags.AddQueryFlagsToCmd(cmd) + flags.AddPaginationFlagsToCmd(cmd, "unbonding delegations") return cmd } @@ -642,11 +624,9 @@ $ %s query staking redelegation cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p return clientCtx.PrintOutput(res.RedelegationResponses) }, } - cmd.Flags().String(flags.FlagPageKey, "", "pagination page-key of delegator redelegations to query for") - cmd.Flags().Uint64(flags.FlagOffset, 1, "pagination offset of delegator redelegations to query for") - cmd.Flags().Uint64(flags.FlagLimit, 100, "pagination limit of delegator redelegations to query for") - cmd.Flags().Bool(flags.FlagCountTotal, false, "total number of records in delegator redelegations to query for") + flags.AddQueryFlagsToCmd(cmd) + flags.AddPaginationFlagsToCmd(cmd, "delegator redelegations") return cmd } From c665872481a26ab029e68b2b562e7b8be2b30b8b Mon Sep 17 00:00:00 2001 From: atheesh Date: Fri, 17 Jul 2020 16:34:19 +0530 Subject: [PATCH 08/10] review changes --- client/utils.go | 27 ++++++--------------------- x/staking/client/cli/query.go | 12 ++++++------ 2 files changed, 12 insertions(+), 27 deletions(-) diff --git a/client/utils.go b/client/utils.go index a85037e7ddfc..53b76788e0a2 100644 --- a/client/utils.go +++ b/client/utils.go @@ -43,31 +43,16 @@ func Paginate(numObjs, page, limit, defLimit int) (start, end int) { } // ReadPageRequest reads and builds the necessary page request flags for pagination. -func ReadPageRequest(flagSet *pflag.FlagSet) (*query.PageRequest, error) { - pageKey, err := flagSet.GetString(flags.FlagPageKey) - if err != nil { - return nil, err - } - - offset, err := flagSet.GetUint64(flags.FlagOffset) - if err != nil { - return nil, err - } - - limit, err := flagSet.GetUint64(flags.FlagLimit) - if err != nil { - return nil, err - } - - countTotal, err := flagSet.GetBool(flags.FlagCountTotal) - if err != nil { - return nil, err - } +func ReadPageRequest(flagSet *pflag.FlagSet) *query.PageRequest { + pageKey, _ := flagSet.GetString(flags.FlagPageKey) + offset, _ := flagSet.GetUint64(flags.FlagOffset) + limit, _ := flagSet.GetUint64(flags.FlagLimit) + countTotal, _ := flagSet.GetBool(flags.FlagCountTotal) return &query.PageRequest{ Key: []byte(pageKey), Offset: offset, Limit: limit, CountTotal: countTotal, - }, nil + } } diff --git a/x/staking/client/cli/query.go b/x/staking/client/cli/query.go index e580feb6ca1a..381491bd5fe5 100644 --- a/x/staking/client/cli/query.go +++ b/x/staking/client/cli/query.go @@ -164,7 +164,7 @@ $ %s query staking unbonding-delegations-from cosmosvaloper1gghjut3ccd8ay0zduzj6 return err } - pageReq, err := client.ReadPageRequest(cmd.Flags()) + pageReq := client.ReadPageRequest(cmd.Flags()) if err != nil { return err } @@ -219,7 +219,7 @@ $ %s query staking redelegations-from cosmosvaloper1gghjut3ccd8ay0zduzj64hwre2fx return err } - pageReq, err := client.ReadPageRequest(cmd.Flags()) + pageReq := client.ReadPageRequest(cmd.Flags()) if err != nil { return err } @@ -327,7 +327,7 @@ $ %s query staking delegations cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p return err } - pageReq, err := client.ReadPageRequest(cmd.Flags()) + pageReq := client.ReadPageRequest(cmd.Flags()) if err != nil { return err } @@ -382,7 +382,7 @@ $ %s query staking delegations-to cosmosvaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ld return err } - pageReq, err := client.ReadPageRequest(cmd.Flags()) + pageReq := client.ReadPageRequest(cmd.Flags()) if err != nil { return err } @@ -491,7 +491,7 @@ $ %s query staking unbonding-delegations cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld return err } - pageReq, err := client.ReadPageRequest(cmd.Flags()) + pageReq := client.ReadPageRequest(cmd.Flags()) if err != nil { return err } @@ -606,7 +606,7 @@ $ %s query staking redelegation cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p return err } - pageReq, err := client.ReadPageRequest(cmd.Flags()) + pageReq := client.ReadPageRequest(cmd.Flags()) if err != nil { return err } From 08d254864b8b9a00ff1f50f46d17b0a4c9bf6070 Mon Sep 17 00:00:00 2001 From: atheesh Date: Fri, 17 Jul 2020 16:36:27 +0530 Subject: [PATCH 09/10] review change --- client/flags/flags.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/flags/flags.go b/client/flags/flags.go index 1ca57333a042..781eb0b05a5d 100644 --- a/client/flags/flags.go +++ b/client/flags/flags.go @@ -129,7 +129,7 @@ func AddTxFlagsToCmd(cmd *cobra.Command) { // AddPaginationFlagsToCmd adds common paginations flags to command func AddPaginationFlagsToCmd(cmd *cobra.Command, query string) { cmd.Flags().String(FlagPageKey, "", fmt.Sprintf("pagination page-key of %s to query for", query)) - cmd.Flags().Uint64(FlagOffset, 1, fmt.Sprintf("pagination offset of %s to query for", query)) + cmd.Flags().Uint64(FlagOffset, 0, fmt.Sprintf("pagination offset of %s to query for", query)) cmd.Flags().Uint64(FlagLimit, 100, fmt.Sprintf("pagination limit of %s to query for", query)) cmd.Flags().Bool(FlagCountTotal, false, fmt.Sprintf("total number of records in %s to query for", query)) } From 956183df5049e56c3fb8ec4a1ff278d2a36eed95 Mon Sep 17 00:00:00 2001 From: atheesh Date: Fri, 17 Jul 2020 16:48:22 +0530 Subject: [PATCH 10/10] review changes --- client/flags/flags.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/flags/flags.go b/client/flags/flags.go index 781eb0b05a5d..457b675e87e5 100644 --- a/client/flags/flags.go +++ b/client/flags/flags.go @@ -131,7 +131,7 @@ func AddPaginationFlagsToCmd(cmd *cobra.Command, query string) { cmd.Flags().String(FlagPageKey, "", fmt.Sprintf("pagination page-key of %s to query for", query)) cmd.Flags().Uint64(FlagOffset, 0, fmt.Sprintf("pagination offset of %s to query for", query)) cmd.Flags().Uint64(FlagLimit, 100, fmt.Sprintf("pagination limit of %s to query for", query)) - cmd.Flags().Bool(FlagCountTotal, false, fmt.Sprintf("total number of records in %s to query for", query)) + cmd.Flags().Bool(FlagCountTotal, false, fmt.Sprintf("count total number of records in %s to query for", query)) } // GasSetting encapsulates the possible values passed through the --gas flag.