github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/x/distribution/client/cli/query.go (about)

     1  package cli
     2  
     3  import (
     4  	"fmt"
     5  	"strings"
     6  
     7  	"github.com/spf13/cobra"
     8  
     9  	"github.com/fibonacci-chain/fbc/libs/cosmos-sdk/client"
    10  	"github.com/fibonacci-chain/fbc/libs/cosmos-sdk/client/context"
    11  	"github.com/fibonacci-chain/fbc/libs/cosmos-sdk/client/flags"
    12  	"github.com/fibonacci-chain/fbc/libs/cosmos-sdk/codec"
    13  	sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types"
    14  	"github.com/fibonacci-chain/fbc/libs/cosmos-sdk/version"
    15  
    16  	"github.com/fibonacci-chain/fbc/x/distribution/client/common"
    17  	"github.com/fibonacci-chain/fbc/x/distribution/types"
    18  )
    19  
    20  // GetQueryCmd returns the cli query commands for this module
    21  func GetQueryCmd(queryRoute string, cdc *codec.Codec) *cobra.Command {
    22  	distQueryCmd := &cobra.Command{
    23  		//Use:                        types.ModuleName,
    24  		Use:                        types.ShortUseByCli,
    25  		Short:                      "Querying commands for the distribution module",
    26  		DisableFlagParsing:         true,
    27  		SuggestionsMinimumDistance: 2,
    28  		RunE:                       client.ValidateCmd,
    29  	}
    30  
    31  	distQueryCmd.AddCommand(flags.GetCommands(
    32  		GetCmdQueryParams(queryRoute, cdc),
    33  		GetCmdQueryValidatorCommission(queryRoute, cdc),
    34  		GetCmdQueryCommunityPool(queryRoute, cdc),
    35  		GetCmdQueryDelegatorRewards(queryRoute, cdc),
    36  		GetCmdQueryValidatorOutstandingRewards(queryRoute, cdc),
    37  		GetCmdQueryWithdrawAddr(queryRoute, cdc),
    38  	)...)
    39  
    40  	return distQueryCmd
    41  }
    42  
    43  // GetCmdQueryParams implements the query params command.
    44  func GetCmdQueryParams(queryRoute string, cdc *codec.Codec) *cobra.Command {
    45  	return &cobra.Command{
    46  		Use:   "params",
    47  		Args:  cobra.NoArgs,
    48  		Short: "Query distribution params",
    49  		RunE: func(cmd *cobra.Command, args []string) error {
    50  			cliCtx := context.NewCLIContext().WithCodec(cdc)
    51  			params, err := common.QueryParams(cliCtx, queryRoute)
    52  			if err != nil {
    53  				return err
    54  			}
    55  			return cliCtx.PrintOutput(params)
    56  		},
    57  	}
    58  }
    59  
    60  // GetCmdQueryValidatorCommission implements the query validator commission command.
    61  func GetCmdQueryValidatorCommission(queryRoute string, cdc *codec.Codec) *cobra.Command {
    62  	return &cobra.Command{
    63  		Use:   "commission [validator]",
    64  		Args:  cobra.ExactArgs(1),
    65  		Short: "Query distribution validator commission",
    66  		Long: strings.TrimSpace(
    67  			fmt.Sprintf(`Query available rewards by a specified validator address.
    68  
    69  Example:
    70  $ %s query distr commission fbvaloper1alq9na49n9yycysh889rl90g9nhe58lcqkfpfg
    71  `,
    72  				version.ClientName,
    73  			),
    74  		),
    75  		RunE: func(cmd *cobra.Command, args []string) error {
    76  			cliCtx := context.NewCLIContext().WithCodec(cdc)
    77  
    78  			validatorAddr, err := sdk.ValAddressFromBech32(args[0])
    79  			if err != nil {
    80  				return err
    81  			}
    82  
    83  			res, err := common.QueryValidatorCommission(cliCtx, queryRoute, validatorAddr)
    84  			if err != nil {
    85  				return err
    86  			}
    87  
    88  			var vac types.ValidatorAccumulatedCommission
    89  			if err := cdc.UnmarshalJSON(res, &vac); err != nil {
    90  				return err
    91  			}
    92  			return cliCtx.PrintOutput(vac)
    93  		},
    94  	}
    95  }
    96  
    97  // GetCmdQueryCommunityPool returns the command for fetching community pool info
    98  func GetCmdQueryCommunityPool(queryRoute string, cdc *codec.Codec) *cobra.Command {
    99  	return &cobra.Command{
   100  		Use:   "community-pool",
   101  		Args:  cobra.NoArgs,
   102  		Short: "Query the amount of coins in the community pool",
   103  		Long: strings.TrimSpace(
   104  			fmt.Sprintf(`Query all coins in the community pool which is under Governance control.
   105  
   106  Example:
   107  $ %s query distr community-pool
   108  `,
   109  				version.ClientName,
   110  			),
   111  		),
   112  		RunE: func(cmd *cobra.Command, args []string) error {
   113  			cliCtx := context.NewCLIContext().WithCodec(cdc)
   114  
   115  			res, _, err := cliCtx.QueryWithData(fmt.Sprintf("custom/%s/community_pool", queryRoute), nil)
   116  			if err != nil {
   117  				return err
   118  			}
   119  
   120  			var result sdk.SysCoins
   121  			cdc.MustUnmarshalJSON(res, &result)
   122  			return cliCtx.PrintOutput(result)
   123  		},
   124  	}
   125  }