diff --git a/cmd/basecoin/cmd.go b/cmd/basecoin/cmd.go deleted file mode 100644 index 750b44b174..0000000000 --- a/cmd/basecoin/cmd.go +++ /dev/null @@ -1,226 +0,0 @@ -package main - -import ( - "github.com/urfave/cli" -) - -var ( - startCmd = cli.Command{ - Name: "start", - Usage: "Start basecoin", - ArgsUsage: "", - Action: func(c *cli.Context) error { - return cmdStart(c) - }, - Flags: []cli.Flag{ - addrFlag, - eyesFlag, - dirFlag, - inProcTMFlag, - chainIDFlag, - ibcPluginFlag, - counterPluginFlag, - }, - } - - sendTxCmd = cli.Command{ - Name: "sendtx", - Usage: "Broadcast a basecoin SendTx", - ArgsUsage: "", - Action: func(c *cli.Context) error { - return cmdSendTx(c) - }, - Flags: []cli.Flag{ - nodeFlag, - chainIDFlag, - - fromFlag, - - amountFlag, - coinFlag, - gasFlag, - feeFlag, - seqFlag, - - toFlag, - }, - } - - appTxCmd = cli.Command{ - Name: "apptx", - Usage: "Broadcast a basecoin AppTx", - ArgsUsage: "", - Action: func(c *cli.Context) error { - return cmdAppTx(c) - }, - Flags: []cli.Flag{ - nodeFlag, - chainIDFlag, - - fromFlag, - - amountFlag, - coinFlag, - gasFlag, - feeFlag, - seqFlag, - - nameFlag, - dataFlag, - }, - Subcommands: []cli.Command{ - counterTxCmd, - }, - } - - counterTxCmd = cli.Command{ - Name: "counter", - Usage: "Craft a transaction to the counter plugin", - Action: func(c *cli.Context) error { - return cmdCounterTx(c) - }, - Flags: []cli.Flag{ - validFlag, - }, - } - - ibcCmd = cli.Command{ - Name: "ibc", - Usage: "Send a transaction to the interblockchain (ibc) plugin", - Flags: []cli.Flag{ - nodeFlag, - chainIDFlag, - - fromFlag, - - amountFlag, - coinFlag, - gasFlag, - feeFlag, - seqFlag, - - nameFlag, - dataFlag, - }, - Subcommands: []cli.Command{ - ibcRegisterTxCmd, - ibcUpdateTxCmd, - ibcPacketTxCmd, - }, - } - - ibcRegisterTxCmd = cli.Command{ - Name: "register", - Usage: "Register a blockchain via IBC", - Action: func(c *cli.Context) error { - return cmdIBCRegisterTx(c) - }, - Flags: []cli.Flag{ - ibcChainIDFlag, - ibcGenesisFlag, - }, - } - - ibcUpdateTxCmd = cli.Command{ - Name: "update", - Usage: "Update the latest state of a blockchain via IBC", - Action: func(c *cli.Context) error { - return cmdIBCUpdateTx(c) - }, - Flags: []cli.Flag{ - ibcHeaderFlag, - ibcCommitFlag, - }, - } - - ibcPacketTxCmd = cli.Command{ - Name: "packet", - Usage: "Send a new packet via IBC", - Flags: []cli.Flag{ - // - }, - Subcommands: []cli.Command{ - ibcPacketCreateTx, - ibcPacketPostTx, - }, - } - - ibcPacketCreateTx = cli.Command{ - Name: "create", - Usage: "Create an egress IBC packet", - Action: func(c *cli.Context) error { - return cmdIBCPacketCreateTx(c) - }, - Flags: []cli.Flag{ - ibcFromFlag, - ibcToFlag, - ibcTypeFlag, - ibcPayloadFlag, - ibcSequenceFlag, - }, - } - - ibcPacketPostTx = cli.Command{ - Name: "post", - Usage: "Deliver an IBC packet to another chain", - Action: func(c *cli.Context) error { - return cmdIBCPacketPostTx(c) - }, - Flags: []cli.Flag{ - ibcFromFlag, - ibcHeightFlag, - ibcPacketFlag, - ibcProofFlag, - }, - } - - queryCmd = cli.Command{ - Name: "query", - Usage: "Query the merkle tree", - ArgsUsage: "", - Action: func(c *cli.Context) error { - return cmdQuery(c) - }, - Flags: []cli.Flag{ - nodeFlag, - }, - } - - accountCmd = cli.Command{ - Name: "account", - Usage: "Get details of an account", - ArgsUsage: "
", - Action: func(c *cli.Context) error { - return cmdAccount(c) - }, - Flags: []cli.Flag{ - nodeFlag, - }, - } - - blockCmd = cli.Command{ - Name: "block", - Usage: "Get the header and commit of a block", - ArgsUsage: "", - Action: func(c *cli.Context) error { - return cmdBlock(c) - }, - Flags: []cli.Flag{ - nodeFlag, - }, - } - - verifyCmd = cli.Command{ - Name: "verify", - Usage: "Verify the IAVL proof", - Action: func(c *cli.Context) error { - return cmdVerify(c) - }, - Flags: []cli.Flag{ - proofFlag, - keyFlag, - valueFlag, - rootFlag, - }, - } -) diff --git a/cmd/basecoin/flags.go b/cmd/basecoin/commands/flags.go similarity index 99% rename from cmd/basecoin/flags.go rename to cmd/basecoin/commands/flags.go index c724d8be48..622aa61b9e 100644 --- a/cmd/basecoin/flags.go +++ b/cmd/basecoin/commands/flags.go @@ -1,4 +1,4 @@ -package main +package commands import ( "github.com/urfave/cli" diff --git a/cmd/basecoin/ibc.go b/cmd/basecoin/commands/ibc.go similarity index 70% rename from cmd/basecoin/ibc.go rename to cmd/basecoin/commands/ibc.go index 83d27d0bfd..23511c5151 100644 --- a/cmd/basecoin/ibc.go +++ b/cmd/basecoin/commands/ibc.go @@ -1,4 +1,4 @@ -package main +package commands import ( "encoding/hex" @@ -16,6 +16,98 @@ import ( tmtypes "github.com/tendermint/tendermint/types" ) +var ( + IbcCmd = cli.Command{ + Name: "ibc", + Usage: "Send a transaction to the interblockchain (ibc) plugin", + Flags: []cli.Flag{ + nodeFlag, + chainIDFlag, + + fromFlag, + + amountFlag, + coinFlag, + gasFlag, + feeFlag, + seqFlag, + + nameFlag, + dataFlag, + }, + Subcommands: []cli.Command{ + IbcRegisterTxCmd, + IbcUpdateTxCmd, + IbcPacketTxCmd, + }, + } + + IbcRegisterTxCmd = cli.Command{ + Name: "register", + Usage: "Register a blockchain via IBC", + Action: func(c *cli.Context) error { + return cmdIBCRegisterTx(c) + }, + Flags: []cli.Flag{ + ibcChainIDFlag, + ibcGenesisFlag, + }, + } + + IbcUpdateTxCmd = cli.Command{ + Name: "update", + Usage: "Update the latest state of a blockchain via IBC", + Action: func(c *cli.Context) error { + return cmdIBCUpdateTx(c) + }, + Flags: []cli.Flag{ + ibcHeaderFlag, + ibcCommitFlag, + }, + } + + IbcPacketTxCmd = cli.Command{ + Name: "packet", + Usage: "Send a new packet via IBC", + Flags: []cli.Flag{ + // + }, + Subcommands: []cli.Command{ + IbcPacketCreateTx, + IbcPacketPostTx, + }, + } + + IbcPacketCreateTx = cli.Command{ + Name: "create", + Usage: "Create an egress IBC packet", + Action: func(c *cli.Context) error { + return cmdIBCPacketCreateTx(c) + }, + Flags: []cli.Flag{ + ibcFromFlag, + ibcToFlag, + ibcTypeFlag, + ibcPayloadFlag, + ibcSequenceFlag, + }, + } + + IbcPacketPostTx = cli.Command{ + Name: "post", + Usage: "Deliver an IBC packet to another chain", + Action: func(c *cli.Context) error { + return cmdIBCPacketPostTx(c) + }, + Flags: []cli.Flag{ + ibcFromFlag, + ibcHeightFlag, + ibcPacketFlag, + ibcProofFlag, + }, + } +) + func cmdIBCRegisterTx(c *cli.Context) error { chainID := c.String("chain_id") genesisFile := c.String("genesis") diff --git a/cmd/basecoin/query.go b/cmd/basecoin/commands/query.go similarity index 79% rename from cmd/basecoin/query.go rename to cmd/basecoin/commands/query.go index 01b293d118..a2b22a0f37 100644 --- a/cmd/basecoin/query.go +++ b/cmd/basecoin/commands/query.go @@ -1,4 +1,4 @@ -package main +package commands import ( "encoding/hex" @@ -14,6 +14,58 @@ import ( tmtypes "github.com/tendermint/tendermint/types" ) +var ( + QueryCmd = cli.Command{ + Name: "query", + Usage: "Query the merkle tree", + ArgsUsage: "", + Action: func(c *cli.Context) error { + return cmdQuery(c) + }, + Flags: []cli.Flag{ + nodeFlag, + }, + } + + AccountCmd = cli.Command{ + Name: "account", + Usage: "Get details of an account", + ArgsUsage: "
", + Action: func(c *cli.Context) error { + return cmdAccount(c) + }, + Flags: []cli.Flag{ + nodeFlag, + }, + } + + BlockCmd = cli.Command{ + Name: "block", + Usage: "Get the header and commit of a block", + ArgsUsage: "", + Action: func(c *cli.Context) error { + return cmdBlock(c) + }, + Flags: []cli.Flag{ + nodeFlag, + }, + } + + VerifyCmd = cli.Command{ + Name: "verify", + Usage: "Verify the IAVL proof", + Action: func(c *cli.Context) error { + return cmdVerify(c) + }, + Flags: []cli.Flag{ + proofFlag, + keyFlag, + valueFlag, + rootFlag, + }, + } +) + func cmdQuery(c *cli.Context) error { if len(c.Args()) != 1 { return errors.New("query command requires an argument ([key])") diff --git a/cmd/basecoin/start.go b/cmd/basecoin/commands/start.go similarity index 89% rename from cmd/basecoin/start.go rename to cmd/basecoin/commands/start.go index 4a68a0c175..f442557a7a 100644 --- a/cmd/basecoin/start.go +++ b/cmd/basecoin/commands/start.go @@ -1,4 +1,4 @@ -package main +package commands import ( "errors" @@ -27,6 +27,24 @@ var config cfg.Config const EyesCacheSize = 10000 +var StartCmd = cli.Command{ + Name: "start", + Usage: "Start basecoin", + ArgsUsage: "", + Action: func(c *cli.Context) error { + return cmdStart(c) + }, + Flags: []cli.Flag{ + addrFlag, + eyesFlag, + dirFlag, + inProcTMFlag, + chainIDFlag, + ibcPluginFlag, + counterPluginFlag, + }, +} + func cmdStart(c *cli.Context) error { // Connect to MerkleEyes diff --git a/cmd/basecoin/tx.go b/cmd/basecoin/commands/tx.go similarity index 82% rename from cmd/basecoin/tx.go rename to cmd/basecoin/commands/tx.go index 3057572086..5c37ecaee2 100644 --- a/cmd/basecoin/tx.go +++ b/cmd/basecoin/commands/tx.go @@ -1,4 +1,4 @@ -package main +package commands import ( "encoding/hex" @@ -17,6 +17,69 @@ import ( tmtypes "github.com/tendermint/tendermint/types" ) +var ( + SendTxCmd = cli.Command{ + Name: "sendtx", + Usage: "Broadcast a basecoin SendTx", + ArgsUsage: "", + Action: func(c *cli.Context) error { + return cmdSendTx(c) + }, + Flags: []cli.Flag{ + nodeFlag, + chainIDFlag, + + fromFlag, + + amountFlag, + coinFlag, + gasFlag, + feeFlag, + seqFlag, + + toFlag, + }, + } + + AppTxCmd = cli.Command{ + Name: "apptx", + Usage: "Broadcast a basecoin AppTx", + ArgsUsage: "", + Action: func(c *cli.Context) error { + return cmdAppTx(c) + }, + Flags: []cli.Flag{ + nodeFlag, + chainIDFlag, + + fromFlag, + + amountFlag, + coinFlag, + gasFlag, + feeFlag, + seqFlag, + + nameFlag, + dataFlag, + }, + Subcommands: []cli.Command{ + CounterTxCmd, + }, + } + + CounterTxCmd = cli.Command{ + Name: "counter", + Usage: "Craft a transaction to the counter plugin", + Action: func(c *cli.Context) error { + return cmdCounterTx(c) + }, + Flags: []cli.Flag{ + validFlag, + }, + } +) + func cmdSendTx(c *cli.Context) error { toHex := c.String("to") fromFile := c.String("from") diff --git a/cmd/basecoin/utils.go b/cmd/basecoin/commands/utils.go similarity index 99% rename from cmd/basecoin/utils.go rename to cmd/basecoin/commands/utils.go index b005f3306c..db9f2821c4 100644 --- a/cmd/basecoin/utils.go +++ b/cmd/basecoin/commands/utils.go @@ -1,4 +1,4 @@ -package main +package commands import ( "encoding/hex" diff --git a/cmd/basecoin/main.go b/cmd/basecoin/main.go index 31dcb83525..536dc61879 100644 --- a/cmd/basecoin/main.go +++ b/cmd/basecoin/main.go @@ -3,6 +3,7 @@ package main import ( "os" + "github.com/tendermint/basecoin/cmd/basecoin/commands" "github.com/urfave/cli" ) @@ -12,14 +13,14 @@ func main() { app.Usage = "basecoin [command] [args...]" app.Version = "0.1.0" app.Commands = []cli.Command{ - startCmd, - sendTxCmd, - appTxCmd, - ibcCmd, - queryCmd, - verifyCmd, - blockCmd, - accountCmd, + commands.StartCmd, + commands.SendTxCmd, + commands.AppTxCmd, + commands.IbcCmd, + commands.QueryCmd, + commands.VerifyCmd, + commands.BlockCmd, + commands.AccountCmd, } app.Run(os.Args) }