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 }