github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/x/params/client/cli/query_upgrade.go (about) 1 package cli 2 3 import ( 4 "fmt" 5 "strings" 6 7 "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/client/context" 8 "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/codec" 9 "github.com/fibonacci-chain/fbc/x/params/types" 10 "github.com/spf13/cobra" 11 ) 12 13 func GetCmdQueryUpgrade(queryRoute string, cdc *codec.Codec) *cobra.Command { 14 return &cobra.Command{ 15 Use: "upgrade [name]", 16 Args: cobra.MinimumNArgs(0), 17 Short: "Query info of upgrade", 18 Long: strings.TrimSpace(`Query info of a upgrade, query all upgrade if 'name' is omitted: 19 $ exchaincli query params upgrade <name> 20 `), 21 RunE: func(_ *cobra.Command, args []string) error { 22 cliCtx := context.NewCLIContext().WithCodec(cdc) 23 24 upgradeName := "" 25 if len(args) > 0 { 26 upgradeName = args[0] 27 } 28 29 route := fmt.Sprintf("custom/%s/%s/%s", queryRoute, types.QueryUpgrade, upgradeName) 30 bz, _, err := cliCtx.QueryWithData(route, nil) 31 if err != nil { 32 return err 33 } 34 35 var infos []types.UpgradeInfo 36 cdc.MustUnmarshalJSON(bz, &infos) 37 38 if len(upgradeName) != 0 { 39 return cliCtx.PrintOutput(infos[0]) 40 } 41 42 if len(infos) == 0 { 43 return cliCtx.PrintOutput("there's no upgrade") 44 } 45 return cliCtx.PrintOutput(infos) 46 }, 47 } 48 }