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, ¶ms) 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 }