github.com/lino-network/lino@v0.6.11/cmd/linocli/main.go (about)

     1  package main
     2  
     3  import (
     4  	"os"
     5  
     6  	"github.com/cosmos/cosmos-sdk/client"
     7  	"github.com/cosmos/cosmos-sdk/client/rpc"
     8  	"github.com/spf13/cobra"
     9  	amino "github.com/tendermint/go-amino"
    10  	"github.com/tendermint/tendermint/libs/cli"
    11  
    12  	app "github.com/lino-network/lino/app"
    13  	linoclient "github.com/lino-network/lino/client"
    14  	blockcli "github.com/lino-network/lino/client/blockchain"
    15  	paramcli "github.com/lino-network/lino/param/client/cli"
    16  	"github.com/lino-network/lino/types"
    17  	acccli "github.com/lino-network/lino/x/account/client/cli"
    18  	bwcli "github.com/lino-network/lino/x/bandwidth/client/cli"
    19  	devcli "github.com/lino-network/lino/x/developer/client/cli"
    20  	globalcli "github.com/lino-network/lino/x/global/client/cli"
    21  	postcli "github.com/lino-network/lino/x/post/client/cli"
    22  	pricecli "github.com/lino-network/lino/x/price/client/cli"
    23  
    24  	// proposalcli "github.com/lino-network/lino/x/proposal/client/cli"
    25  	repcli "github.com/lino-network/lino/x/reputation/client/cli"
    26  	validatorcli "github.com/lino-network/lino/x/validator/client/cli"
    27  	votecli "github.com/lino-network/lino/x/vote/client/cli"
    28  )
    29  
    30  // linocliCmd is the entry point for this binary
    31  var (
    32  	rootCmd = &cobra.Command{
    33  		Use:   "linocli",
    34  		Short: "Lino Blockchain CLI",
    35  	}
    36  	DefaultCLIHome = os.ExpandEnv("$HOME/.linocli")
    37  )
    38  
    39  func main() {
    40  	cobra.EnableCommandSorting = false
    41  
    42  	types.ConfigAndSealCosmosSDKAddress()
    43  
    44  	cdc := app.MakeCodec()
    45  
    46  	// Add --chain-id to persistent flags and mark it required
    47  	rootCmd.PersistentFlags().String(client.FlagChainID, "", "Chain ID of tendermint node")
    48  	// rootCmd.PersistentPreRunE = func(_ *cobra.Command, _ []string) error {
    49  	// 	return initConfig(rootCmd)
    50  	// }
    51  
    52  	// Construct Root Command
    53  	rootCmd.AddCommand(
    54  		app.VersionCmd(),
    55  		rpc.StatusCommand(),
    56  		client.ConfigCmd(DefaultCLIHome),
    57  		queryCmd(cdc),
    58  		txCmd(cdc),
    59  		client.LineBreak,
    60  		linoclient.GetNowCmd(cdc),
    61  		linoclient.GetGenAddrCmd(),
    62  		linoclient.GetAddrOfCmd(),
    63  		linoclient.GetPubKeyOfCmd(),
    64  		linoclient.GetEncryptPrivKey(),
    65  		client.LineBreak,
    66  	)
    67  
    68  	executor := cli.PrepareMainCmd(rootCmd, "NS", DefaultCLIHome)
    69  	err := executor.Execute()
    70  	if err != nil {
    71  		panic(err)
    72  	}
    73  }
    74  
    75  func queryCmd(cdc *amino.Codec) *cobra.Command {
    76  	queryCmd := &cobra.Command{
    77  		Use:     "query",
    78  		Aliases: []string{"q"},
    79  		Short:   "Querying subcommands",
    80  	}
    81  
    82  	queryCmd.AddCommand(
    83  		blockcli.GetQueryCmd(cdc),
    84  		client.LineBreak,
    85  		devcli.GetQueryCmd(cdc),
    86  		acccli.GetQueryCmd(cdc),
    87  		postcli.GetQueryCmd(cdc),
    88  		// proposalcli.GetQueryCmd(cdc),
    89  		validatorcli.GetQueryCmd(cdc),
    90  		globalcli.GetQueryCmd(cdc),
    91  		bwcli.GetQueryCmd(cdc),
    92  		paramcli.GetQueryCmd(cdc),
    93  		repcli.GetQueryCmd(cdc),
    94  		votecli.GetQueryCmd(cdc),
    95  		pricecli.GetQueryCmd(cdc),
    96  	)
    97  
    98  	return queryCmd
    99  }
   100  
   101  func txCmd(cdc *amino.Codec) *cobra.Command {
   102  	txCmd := &cobra.Command{
   103  		Use:   "tx",
   104  		Short: "Transactions subcommands",
   105  	}
   106  
   107  	txCmd.AddCommand(
   108  		linoclient.GetCmdBroadcast(cdc),
   109  		client.LineBreak,
   110  		devcli.GetTxCmd(cdc),
   111  		acccli.GetTxCmd(cdc),
   112  		postcli.GetTxCmd(cdc),
   113  		// proposalcli.GetTxCmd(cdc),
   114  		validatorcli.GetTxCmd(cdc),
   115  		votecli.GetTxCmd(cdc),
   116  		pricecli.GetTxCmd(cdc),
   117  		client.LineBreak,
   118  	)
   119  
   120  	return txCmd
   121  }