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

     1  package cli
     2  
     3  import (
     4  	"fmt"
     5  
     6  	"github.com/fibonacci-chain/fbc/libs/cosmos-sdk/client/context"
     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/flags"
    11  	"github.com/fibonacci-chain/fbc/libs/cosmos-sdk/codec"
    12  	"github.com/fibonacci-chain/fbc/libs/cosmos-sdk/version"
    13  	"github.com/fibonacci-chain/fbc/x/feesplit/types"
    14  )
    15  
    16  // GetQueryCmd returns the cli query commands for this module
    17  func GetQueryCmd(moduleName string, cdc *codec.Codec) *cobra.Command {
    18  	cmd := &cobra.Command{
    19  		Use:                        types.ModuleName,
    20  		Short:                      fmt.Sprintf("Querying commands for the %s module", types.ModuleName),
    21  		DisableFlagParsing:         true,
    22  		SuggestionsMinimumDistance: 2,
    23  		RunE:                       client.ValidateCmd,
    24  	}
    25  
    26  	cmd.AddCommand(flags.GetCommands(
    27  		GetCmdQueryFeeSplits(moduleName, cdc),
    28  		GetCmdQueryFeeSplit(moduleName, cdc),
    29  		GetCmdQueryParams(moduleName, cdc),
    30  		GetCmdQueryDeployerFeeSplits(moduleName, cdc),
    31  		GetCmdQueryWithdrawerFeeSplits(moduleName, cdc),
    32  	)...)
    33  
    34  	return cmd
    35  }
    36  
    37  // GetCmdQueryFeeSplits implements a command to return all registered contracts
    38  // for fee distribution
    39  func GetCmdQueryFeeSplits(queryRoute string, cdc *codec.Codec) *cobra.Command {
    40  	cmd := &cobra.Command{
    41  		Use:   "contracts",
    42  		Short: "Query all fee splits",
    43  		Args:  cobra.NoArgs,
    44  		RunE: func(cmd *cobra.Command, _ []string) error {
    45  			cliCtx := context.NewCLIContext().WithCodec(cdc)
    46  
    47  			pageReq, err := client.ReadPageRequest(cmd.Flags())
    48  			if err != nil {
    49  				return err
    50  			}
    51  
    52  			req := &types.QueryFeeSplitsRequest{Pagination: pageReq}
    53  			data, err := cliCtx.Codec.MarshalJSON(req)
    54  			if err != nil {
    55  				return err
    56  			}
    57  
    58  			// Query store
    59  			route := fmt.Sprintf("custom/%s/%s", queryRoute, types.QueryFeeSplits)
    60  			bz, _, err := cliCtx.QueryWithData(route, data)
    61  			if err != nil {
    62  				return err
    63  			}
    64  
    65  			var resp types.QueryFeeSplitsResponse
    66  			cdc.MustUnmarshalJSON(bz, &resp)
    67  			return cliCtx.PrintOutput(resp)
    68  		},
    69  	}
    70  	flags.AddPaginationFlagsToCmd(cmd, "fee splits")
    71  	return cmd
    72  }
    73  
    74  // GetCmdQueryFeeSplit implements a command to return a registered contract for fee
    75  // distribution
    76  func GetCmdQueryFeeSplit(queryRoute string, cdc *codec.Codec) *cobra.Command {
    77  	cmd := &cobra.Command{
    78  		Use:     "contract [contract-address]",
    79  		Args:    cobra.ExactArgs(1),
    80  		Short:   "Query a registered contract for fee distribution by hex address",
    81  		Long:    "Query a registered contract for fee distribution by hex address",
    82  		Example: fmt.Sprintf("%s query feesplit contract <contract-address>", version.ClientName),
    83  		RunE: func(cmd *cobra.Command, args []string) error {
    84  			cliCtx := context.NewCLIContext().WithCodec(cdc)
    85  
    86  			req := &types.QueryFeeSplitRequest{ContractAddress: args[0]}
    87  			data, err := cliCtx.Codec.MarshalJSON(req)
    88  			if err != nil {
    89  				return err
    90  			}
    91  
    92  			// Query store
    93  			route := fmt.Sprintf("custom/%s/%s", queryRoute, types.QueryFeeSplit)
    94  			bz, _, err := cliCtx.QueryWithData(route, data)
    95  			if err != nil {
    96  				return err
    97  			}
    98  
    99  			var resp types.QueryFeeSplitResponse
   100  			cdc.MustUnmarshalJSON(bz, &resp)
   101  			return cliCtx.PrintOutput(resp)
   102  		},
   103  	}
   104  
   105  	return cmd
   106  }
   107  
   108  // GetCmdQueryParams implements a command to return the current feesplit
   109  // parameters.
   110  func GetCmdQueryParams(queryRoute string, cdc *codec.Codec) *cobra.Command {
   111  	cmd := &cobra.Command{
   112  		Use:   "params",
   113  		Short: "Query the current feesplit module parameters",
   114  		Args:  cobra.NoArgs,
   115  		RunE: func(cmd *cobra.Command, _ []string) error {
   116  			cliCtx := context.NewCLIContext().WithCodec(cdc)
   117  
   118  			route := fmt.Sprintf("custom/%s/%s", queryRoute, types.QueryParameters)
   119  			bz, _, err := cliCtx.QueryWithData(route, nil)
   120  			if err != nil {
   121  				return err
   122  			}
   123  
   124  			var params types.QueryParamsResponse
   125  			cdc.MustUnmarshalJSON(bz, &params)
   126  			return cliCtx.PrintOutput(params)
   127  		},
   128  	}
   129  
   130  	return cmd
   131  }
   132  
   133  // GetCmdQueryDeployerFeeSplits implements a command that returns all contracts
   134  // that a deployer has registered for fee distribution
   135  func GetCmdQueryDeployerFeeSplits(queryRoute string, cdc *codec.Codec) *cobra.Command {
   136  	cmd := &cobra.Command{
   137  		Use:     "deployer-contracts [deployer-address]",
   138  		Args:    cobra.ExactArgs(1),
   139  		Short:   "Query all contracts that a given deployer has registered for fee distribution",
   140  		Long:    "Query all contracts that a given deployer has registered for fee distribution",
   141  		Example: fmt.Sprintf("%s query feesplit deployer-contracts <deployer-address>", version.ClientName),
   142  		RunE: func(cmd *cobra.Command, args []string) error {
   143  			cliCtx := context.NewCLIContext().WithCodec(cdc)
   144  
   145  			pageReq, err := client.ReadPageRequest(cmd.Flags())
   146  			if err != nil {
   147  				return err
   148  			}
   149  			req := &types.QueryDeployerFeeSplitsRequest{
   150  				DeployerAddress: args[0],
   151  				Pagination:      pageReq,
   152  			}
   153  			data, err := cliCtx.Codec.MarshalJSON(req)
   154  			if err != nil {
   155  				return err
   156  			}
   157  
   158  			// Query store
   159  			route := fmt.Sprintf("custom/%s/%s", queryRoute, types.QueryDeployerFeeSplits)
   160  			bz, _, err := cliCtx.QueryWithData(route, data)
   161  			if err != nil {
   162  				return err
   163  			}
   164  
   165  			var resp types.QueryDeployerFeeSplitsResponse
   166  			cdc.MustUnmarshalJSON(bz, &resp)
   167  			return cliCtx.PrintOutput(resp)
   168  		},
   169  	}
   170  	flags.AddPaginationFlagsToCmd(cmd, "deployer contracts")
   171  	return cmd
   172  }
   173  
   174  // GetCmdQueryWithdrawerFeeSplits implements a command that returns all
   175  // contracts that have registered for fee distribution with a given withdraw
   176  // address
   177  func GetCmdQueryWithdrawerFeeSplits(queryRoute string, cdc *codec.Codec) *cobra.Command {
   178  	cmd := &cobra.Command{
   179  		Use:     "withdrawer-contracts [withdrawer-address]",
   180  		Args:    cobra.ExactArgs(1),
   181  		Short:   "Query all contracts that have been registered for fee distribution with a given withdrawer address",
   182  		Long:    "Query all contracts that have been registered for fee distribution with a given withdrawer address",
   183  		Example: fmt.Sprintf("%s query feesplit withdrawer-contracts <withdrawer-address>", version.ClientName),
   184  		RunE: func(cmd *cobra.Command, args []string) error {
   185  			cliCtx := context.NewCLIContext().WithCodec(cdc)
   186  
   187  			pageReq, err := client.ReadPageRequest(cmd.Flags())
   188  			if err != nil {
   189  				return err
   190  			}
   191  			req := &types.QueryWithdrawerFeeSplitsRequest{
   192  				WithdrawerAddress: args[0],
   193  				Pagination:        pageReq,
   194  			}
   195  			data, err := cliCtx.Codec.MarshalJSON(req)
   196  			if err != nil {
   197  				return err
   198  			}
   199  
   200  			// Query store
   201  			route := fmt.Sprintf("custom/%s/%s", queryRoute, types.QueryWithdrawerFeeSplits)
   202  			bz, _, err := cliCtx.QueryWithData(route, data)
   203  			if err != nil {
   204  				return err
   205  			}
   206  
   207  			var resp types.QueryWithdrawerFeeSplitsResponse
   208  			cdc.MustUnmarshalJSON(bz, &resp)
   209  			return cliCtx.PrintOutput(resp)
   210  		},
   211  	}
   212  	flags.AddPaginationFlagsToCmd(cmd, "withdrawer contracts")
   213  	return cmd
   214  }