Merge PR #4494: Fix validator-outstanding-rewards command

This commit is contained in:
Alexander Bezobchuk 2019-06-06 09:43:13 -04:00 committed by GitHub
parent 5f9c3fdf88
commit 1ccf0c2e8d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 33 additions and 5 deletions

View File

@ -0,0 +1,2 @@
#4493 Fix validator-outstanding-rewards command. It now takes as an argument
a validator address.

View File

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