diff --git a/.pending/bugfixes/sdk/4493-Fix-validator-o b/.pending/bugfixes/sdk/4493-Fix-validator-o new file mode 100644 index 000000000..3a4eb7e4e --- /dev/null +++ b/.pending/bugfixes/sdk/4493-Fix-validator-o @@ -0,0 +1,2 @@ +#4493 Fix validator-outstanding-rewards command. It now takes as an argument +a validator address. diff --git a/x/distribution/client/cli/query.go b/x/distribution/client/cli/query.go index b1c1dd97b..281215571 100644 --- a/x/distribution/client/cli/query.go +++ b/x/distribution/client/cli/query.go @@ -59,20 +59,46 @@ func GetCmdQueryParams(queryRoute string, cdc *codec.Codec) *cobra.Command { // GetCmdQueryValidatorOutstandingRewards implements the query validator outstanding rewards command. func GetCmdQueryValidatorOutstandingRewards(queryRoute string, cdc *codec.Codec) *cobra.Command { return &cobra.Command{ - Use: "validator-outstanding-rewards", - Args: cobra.NoArgs, + Use: "validator-outstanding-rewards [validator]", + Args: cobra.ExactArgs(1), Short: "Query distribution outstanding (un-withdrawn) rewards for a validator and all their delegations", + Long: strings.TrimSpace( + fmt.Sprintf(`Query distribution outstanding (un-withdrawn) rewards +for a validator and all their delegations. + +Example: +$ %s query distr validator-outstanding-rewards cosmosvaloper1lwjmdnks33xwnmfayc64ycprww49n33mtm92ne +`, + version.ClientName, + ), + ), RunE: func(cmd *cobra.Command, args []string) error { cliCtx := context.NewCLIContext().WithCodec(cdc) - route := fmt.Sprintf("custom/%s/validator_outstanding_rewards", queryRoute) - res, err := cliCtx.QueryWithData(route, []byte{}) + valAddr, err := sdk.ValAddressFromBech32(args[0]) + if err != nil { + return err + } + + params := types.NewQueryValidatorOutstandingRewardsParams(valAddr) + bz, err := cdc.MarshalJSON(params) + if err != nil { + return err + } + + resp, err := cliCtx.QueryWithData( + fmt.Sprintf("custom/%s/%s", queryRoute, types.QueryValidatorOutstandingRewards), + bz, + ) if err != nil { return err } var outstandingRewards types.ValidatorOutstandingRewards - cdc.MustUnmarshalJSON(res, &outstandingRewards) + if err := cdc.UnmarshalJSON(resp, &outstandingRewards); err != nil { + return err + } + return cliCtx.PrintOutput(outstandingRewards) }, }