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  }