From 0eff598f9aeec6ca9130e3e337265f047e5fd95d Mon Sep 17 00:00:00 2001 From: Federico Kunze Date: Tue, 3 Dec 2019 16:02:25 +0100 Subject: [PATCH 1/4] fix cli ExactArgs --- x/ibc/03-connection/client/cli/cli.go | 2 +- x/ibc/03-connection/client/cli/tx.go | 29 +++++++++++++++------------ x/ibc/04-channel/client/cli/cli.go | 2 +- x/ibc/04-channel/client/cli/tx.go | 11 ++++++---- 4 files changed, 25 insertions(+), 19 deletions(-) diff --git a/x/ibc/03-connection/client/cli/cli.go b/x/ibc/03-connection/client/cli/cli.go index 820baa02b3b6..2c5f8b20f67e 100644 --- a/x/ibc/03-connection/client/cli/cli.go +++ b/x/ibc/03-connection/client/cli/cli.go @@ -34,7 +34,7 @@ func GetTxCmd(storeKey string, cdc *codec.Codec) *cobra.Command { GetCmdConnectionOpenTry(storeKey, cdc), GetCmdConnectionOpenAck(storeKey, cdc), GetCmdConnectionOpenConfirm(storeKey, cdc), - GetCmdHandshakeState(storeKey, cdc), + GetCmdHandshakeConnection(storeKey, cdc), )...) return ics03ConnectionTxCmd diff --git a/x/ibc/03-connection/client/cli/tx.go b/x/ibc/03-connection/client/cli/tx.go index c2324322f08f..eb9d263c5b19 100644 --- a/x/ibc/03-connection/client/cli/tx.go +++ b/x/ibc/03-connection/client/cli/tx.go @@ -42,18 +42,18 @@ const ( // chain A with a given counterparty chain B func GetCmdConnectionOpenInit(storeKey string, cdc *codec.Codec) *cobra.Command { cmd := &cobra.Command{ - Use: strings.TrimSpace(`open-init [connection-id] [client-id] [counterparty-connection-id] - [counterparty-client-id] [path/to/counterparty_prefix.json]`), + Use: strings.TrimSpace(`open-init [connection-id] [client-id] [counterparty-connection-id] [counterparty-client-id] [path/to/counterparty_prefix.json]`), Short: "initialize connection on chain A", Long: strings.TrimSpace( fmt.Sprintf(`initialize a connection on chain A with a given counterparty chain B: Example: -$ %s tx ibc connection open-init [connection-id] [client-id] [counterparty-connection-id] -[counterparty-client-id] [path/to/counterparty_prefix.json] +$ %s tx ibc connection open-init [connection-id] [client-id] \ +[counterparty-connection-id] [counterparty-client-id] \ +[path/to/counterparty_prefix.json] `, version.ClientName), ), - Args: cobra.ExactArgs(6), + Args: cobra.ExactArgs(5), RunE: func(cmd *cobra.Command, args []string) error { txBldr := auth.NewTxBuilderFromCLI().WithTxEncoder(utils.GetTxEncoder(cdc)) cliCtx := context.NewCLIContext().WithCodec(cdc) @@ -92,20 +92,20 @@ $ %s tx ibc connection open-init [connection-id] [client-id] [counterparty-conne // chain B func GetCmdConnectionOpenTry(storeKey string, cdc *codec.Codec) *cobra.Command { cmd := &cobra.Command{ - Use: strings.TrimSpace(`open-try [connection-id] [client-id] -[counterparty-connection-id] [counterparty-client-id] [path/to/counterparty_prefix.json] -[counterparty-versions] [path/to/proof_init.json]`), + Use: strings.TrimSpace(`open-try [connection-id] [client-id] + [counterparty-connection-id] [counterparty-client-id] [path/to/counterparty_prefix.json] + [counterparty-versions] [path/to/proof_init.json]`), Short: "initiate connection handshake between two chains", Long: strings.TrimSpace( fmt.Sprintf(`initialize a connection on chain A with a given counterparty chain B: Example: -$ %s tx ibc connection open-try connection-id] [client-id] -[counterparty-connection-id] [counterparty-client-id] [path/to/counterparty_prefix.json] +$ %s tx ibc connection open-try connection-id] [client-id] \ +[counterparty-connection-id] [counterparty-client-id] [path/to/counterparty_prefix.json] \ [counterparty-versions] [path/to/proof_init.json] `, version.ClientName), ), - Args: cobra.ExactArgs(6), + Args: cobra.ExactArgs(7), RunE: func(cmd *cobra.Command, args []string) error { txBldr := auth.NewTxBuilderFromCLI().WithTxEncoder(utils.GetTxEncoder(cdc)) cliCtx := context.NewCLIContext(). @@ -227,7 +227,7 @@ Example: $ %s tx ibc connection open-confirm [connection-id] [path/to/proof_ack.json] `, version.ClientName), ), - Args: cobra.ExactArgs(3), + Args: cobra.ExactArgs(2), RunE: func(cmd *cobra.Command, args []string) error { txBldr := auth.NewTxBuilderFromCLI().WithTxEncoder(utils.GetTxEncoder(cdc)) cliCtx := context.NewCLIContext(). @@ -277,7 +277,10 @@ func lastHeight(cliCtx context.CLIContext) (uint64, error) { return uint64(info.Response.LastBlockHeight), nil } -func GetCmdHandshakeState(storeKey string, cdc *codec.Codec) *cobra.Command { +// GetCmdHandshakeConnection performs the full handshake to set an IBC connection. +// Note: Only for demo purposes. +// TODO: Remove for IBC v1.0.0 +func GetCmdHandshakeConnection(storeKey string, cdc *codec.Codec) *cobra.Command { cmd := &cobra.Command{ Use: "handshake [conn-id-chain-1] [client-id-chain-1] [path-chain-1] [conn-id-chain-2] [client-id-chain-2] [path-chain-2] ", Short: "initiate connection handshake between two chains", diff --git a/x/ibc/04-channel/client/cli/cli.go b/x/ibc/04-channel/client/cli/cli.go index 2f6e76ca9b13..dba5d7c54b92 100644 --- a/x/ibc/04-channel/client/cli/cli.go +++ b/x/ibc/04-channel/client/cli/cli.go @@ -36,7 +36,7 @@ func GetTxCmd(storeKey string, cdc *codec.Codec) *cobra.Command { GetMsgChannelOpenConfirmCmd(storeKey, cdc), GetMsgChannelCloseInitCmd(storeKey, cdc), GetMsgChannelCloseConfirmCmd(storeKey, cdc), - GetCmdHandshake(storeKey, cdc), + GetCmdHandshakeChannel(storeKey, cdc), )...) return ics04ChannelTxCmd diff --git a/x/ibc/04-channel/client/cli/tx.go b/x/ibc/04-channel/client/cli/tx.go index ff0123a060b6..f7eaeb958d81 100644 --- a/x/ibc/04-channel/client/cli/tx.go +++ b/x/ibc/04-channel/client/cli/tx.go @@ -177,7 +177,7 @@ func GetMsgChannelOpenConfirmCmd(storeKey string, cdc *codec.Codec) *cobra.Comma return &cobra.Command{ Use: "open-confirm [port-id] [channel-id] [/path/to/proof-ack.json] [proof-height]", Short: "Creates and sends a ChannelOpenConfirm message", - Args: cobra.ExactArgs(1), + Args: cobra.ExactArgs(4), RunE: func(cmd *cobra.Command, args []string) error { txBldr := auth.NewTxBuilderFromCLI().WithTxEncoder(authutils.GetTxEncoder(cdc)) cliCtx := context.NewCLIContext().WithCodec(cdc) @@ -219,7 +219,7 @@ func GetMsgChannelCloseInitCmd(storeKey string, cdc *codec.Codec) *cobra.Command return &cobra.Command{ Use: "close-init [port-id] [channel-id]", Short: "Creates and sends a ChannelCloseInit message", - Args: cobra.ExactArgs(1), + Args: cobra.ExactArgs(2), RunE: func(cmd *cobra.Command, args []string) error { txBldr := auth.NewTxBuilderFromCLI().WithTxEncoder(authutils.GetTxEncoder(cdc)) cliCtx := context.NewCLIContext().WithCodec(cdc) @@ -242,7 +242,7 @@ func GetMsgChannelCloseConfirmCmd(storeKey string, cdc *codec.Codec) *cobra.Comm return &cobra.Command{ Use: "close-confirm [port-id] [channel-id] [/path/to/proof-init.json] [proof-height]", Short: "Creates and sends a ChannelCloseConfirm message", - Args: cobra.ExactArgs(1), + Args: cobra.ExactArgs(4), RunE: func(cmd *cobra.Command, args []string) error { txBldr := auth.NewTxBuilderFromCLI().WithTxEncoder(authutils.GetTxEncoder(cdc)) cliCtx := context.NewCLIContext().WithCodec(cdc) @@ -279,7 +279,10 @@ func GetMsgChannelCloseConfirmCmd(storeKey string, cdc *codec.Codec) *cobra.Comm } } -func GetCmdHandshake(storeKey string, cdc *codec.Codec) *cobra.Command { +// GetCmdHandshakeChannel performs the full handshake to set an IBC channel. +// Note: Only for demo purposes. +// TODO: Remove for IBC v1.0.0 +func GetCmdHandshakeChannel(storeKey string, cdc *codec.Codec) *cobra.Command { cmd := &cobra.Command{ Use: "handshake", Short: "initiate connection handshake between two chains", From 231e7ba381f5ababce76a886f99cbfe91793cd36 Mon Sep 17 00:00:00 2001 From: Federico Kunze Date: Tue, 3 Dec 2019 17:09:47 +0100 Subject: [PATCH 2/4] remove full handshakes --- x/ibc/03-connection/client/cli/tx.go | 265 --------------------------- x/ibc/04-channel/client/cli/tx.go | 213 --------------------- 2 files changed, 478 deletions(-) diff --git a/x/ibc/03-connection/client/cli/tx.go b/x/ibc/03-connection/client/cli/tx.go index a58078dda5d0..fe94bc2b4025 100644 --- a/x/ibc/03-connection/client/cli/tx.go +++ b/x/ibc/03-connection/client/cli/tx.go @@ -289,268 +289,3 @@ func parsePath(cdc *codec.Codec, arg string) (commitment.Prefix, error) { } return path, nil } - -// GetCmdHandshakeConnection performs the full handshake to set an IBC connection. -// Note: Only for demo purposes. -// TODO: Remove for IBC v1.0.0 -// func GetCmdHandshakeConnection(storeKey string, cdc *codec.Codec) *cobra.Command { -// cmd := &cobra.Command{ -// Use: "handshake [conn-id-chain-1] [client-id-chain-1] [path-chain-1] [conn-id-chain-2] [client-id-chain-2] [path-chain-2] ", -// Short: "initiate connection handshake between two chains", -// Args: cobra.ExactArgs(6), -// RunE: func(cmd *cobra.Command, args []string) error { -// inBuf := bufio.NewReader(cmd.InOrStdin()) -// prove := true - -// // --chain-id values for each chain -// cid1 := viper.GetString(flags.FlagChainID) -// cid2 := viper.GetString(FlagChainID2) - -// // --from values for each wallet -// from1 := viper.GetString(FlagFrom1) -// from2 := viper.GetString(FlagFrom2) - -// // --node values for each RPC -// rpc1 := viper.GetString(FlagNode1) -// rpc2 := viper.GetString(FlagNode2) - -// // ibc connection-id for each chain -// connID1 := args[0] -// connID2 := args[3] - -// // ibc client-id for each chain -// clientID1 := args[1] -// clientID2 := args[4] - -// // Get default version -// version := types.GetCompatibleVersions()[0] - -// // Create txbldr, clictx, querier for cid1 -// viper.Set(flags.FlagChainID, cid1) -// txBldr1 := auth.NewTxBuilderFromCLI(inBuf).WithTxEncoder(utils.GetTxEncoder(cdc)) -// ctx1 := context.NewCLIContextIBC(inBuf, from1, cid1, rpc1).WithCodec(cdc). -// WithBroadcastMode(flags.BroadcastBlock) - -// // Create txbldr, clictx, querier for cid1 -// viper.Set(flags.FlagChainID, cid2) -// txBldr2 := auth.NewTxBuilderFromCLI(inBuf).WithTxEncoder(utils.GetTxEncoder(cdc)) -// ctx2 := context.NewCLIContextIBC(inBuf, from2, cid2, rpc2).WithCodec(cdc). -// WithBroadcastMode(flags.BroadcastBlock) - -// // read in path for cid1 -// path1, err := parsePath(ctx1.Codec, args[2]) -// if err != nil { -// return err -// } - -// // read in path for cid2 -// path2, err := parsePath(ctx1.Codec, args[5]) -// if err != nil { -// return err -// } - -// // get passphrase for key from1 -// passphrase1, err := keys.GetPassphrase(from1) -// if err != nil { -// return err -// } - -// // get passphrase for key from2 -// passphrase2, err := keys.GetPassphrase(from2) -// if err != nil { -// return err -// } - -// viper.Set(flags.FlagChainID, cid1) -// msgOpenInit := types.NewMsgConnectionOpenInit( -// connID1, clientID1, connID2, clientID2, -// path2, ctx1.GetFromAddress(), -// ) - -// if err := msgOpenInit.ValidateBasic(); err != nil { -// return err -// } - -// fmt.Printf("%v <- %-14v", cid1, msgOpenInit.Type()) -// res, err := utils.CompleteAndBroadcastTx(txBldr1, ctx1, []sdk.Msg{msgOpenInit}, passphrase1) -// if err != nil || !res.IsOK() { -// return err -// } - -// fmt.Printf(" [OK] txid(%v) client(%v) conn(%v)\n", res.TxHash, clientID1, connID1) - -// // Another block has to be passed after msgOpenInit is committed -// // to retrieve the correct proofs -// // TODO: Modify this to actually check two blocks being processed, and -// // remove hardcoding this to 8 seconds. -// time.Sleep(8 * time.Second) - -// header, _, err := clientutils.QueryTendermintHeader(ctx1) -// if err != nil { -// return err -// } - -// // Create and send msgUpdateClient -// viper.Set(flags.FlagChainID, cid2) -// msgUpdateClient := clienttypes.NewMsgUpdateClient(clientID2, header, ctx2.GetFromAddress()) - -// if err := msgUpdateClient.ValidateBasic(); err != nil { -// return err -// } - -// fmt.Printf("%v <- %-14v", cid2, msgUpdateClient.Type()) -// res, err = utils.CompleteAndBroadcastTx(txBldr2, ctx2, []sdk.Msg{msgUpdateClient}, passphrase2) -// if err != nil || !res.IsOK() { -// return err -// } -// fmt.Printf(" [OK] txid(%v) client(%v)\n", res.TxHash, clientID1) - -// // Fetch proofs from cid1 -// viper.Set(flags.FlagChainID, cid1) -// proofs, err := queryProofs(ctx1.WithHeight(header.Height-1), connID1, storeKey) -// if err != nil { -// return err -// } - -// csProof, err := clientutils.QueryConsensusStateProof(ctx1.WithHeight(header.Height-1), clientID1, prove) -// if err != nil { -// return err -// } - -// // Create and send msgOpenTry -// viper.Set(flags.FlagChainID, cid2) -// msgOpenTry := types.NewMsgConnectionOpenTry(connID2, clientID2, connID1, clientID1, path1, []string{version}, proofs.Proof, csProof.Proof, uint64(header.Height), uint64(header.Height), ctx2.GetFromAddress()) - -// if err := msgOpenTry.ValidateBasic(); err != nil { -// return err -// } - -// fmt.Printf("%v <- %-14v", cid2, msgOpenTry.Type()) - -// res, err = utils.CompleteAndBroadcastTx(txBldr2, ctx2, []sdk.Msg{msgOpenTry}, passphrase2) -// if err != nil || !res.IsOK() { -// return err -// } - -// fmt.Printf(" [OK] txid(%v) client(%v) connection(%v)\n", res.TxHash, clientID2, connID2) - -// // Another block has to be passed after msgOpenInit is committed -// // to retrieve the correct proofs -// // TODO: Modify this to actually check two blocks being processed, and -// // remove hardcoding this to 8 seconds. -// time.Sleep(8 * time.Second) - -// header, _, err = clientutils.QueryTendermintHeader(ctx2) -// if err != nil { -// return err -// } - -// // Update the client for cid2 on cid1 -// viper.Set(flags.FlagChainID, cid1) -// msgUpdateClient = clienttypes.NewMsgUpdateClient(clientID1, header, ctx1.GetFromAddress()) - -// if err := msgUpdateClient.ValidateBasic(); err != nil { -// return err -// } - -// res, err = utils.CompleteAndBroadcastTx(txBldr1, ctx1, []sdk.Msg{msgUpdateClient}, passphrase1) -// if err != nil || !res.IsOK() { -// return err -// } -// fmt.Printf(" [OK] txid(%v) client(%v)\n", res.TxHash, clientID2) - -// // Fetch proofs from cid2 -// viper.Set(flags.FlagChainID, cid2) -// proofs, err = queryProofs(ctx2.WithHeight(header.Height-1), connID2, storeKey) -// if err != nil { -// return err -// } - -// csProof, err = clientutils.QueryConsensusStateProof(ctx2.WithHeight(header.Height-1), clientID2, prove) -// if err != nil { -// return err -// } - -// // Create and send msgOpenAck -// viper.Set(flags.FlagChainID, cid1) -// msgOpenAck := types.NewMsgConnectionOpenAck(connID1, proofs.Proof, csProof.Proof, uint64(header.Height), uint64(header.Height), version, ctx1.GetFromAddress()) - -// if err := msgOpenAck.ValidateBasic(); err != nil { -// return err -// } - -// fmt.Printf("%v <- %-14v", cid1, msgOpenAck.Type()) - -// res, err = utils.CompleteAndBroadcastTx(txBldr1, ctx1, []sdk.Msg{msgOpenAck}, passphrase1) -// if err != nil || !res.IsOK() { -// return err -// } -// fmt.Printf(" [OK] txid(%v) connection(%v)\n", res.TxHash, connID1) - -// // Another block has to be passed after msgOpenInit is committed -// // to retrieve the correct proofs -// // TODO: Modify this to actually check two blocks being processed, and -// // remove hardcoding this to 8 seconds. -// time.Sleep(8 * time.Second) - -// header, _, err = clientutils.QueryTendermintHeader(ctx1) -// if err != nil { -// return err -// } - -// // Update client for cid1 on cid2 -// viper.Set(flags.FlagChainID, cid2) -// msgUpdateClient = clienttypes.NewMsgUpdateClient(clientID2, header, ctx2.GetFromAddress()) - -// if err := msgUpdateClient.ValidateBasic(); err != nil { -// return err -// } - -// fmt.Printf("%v <- %-14v", cid2, msgUpdateClient.Type()) - -// res, err = utils.CompleteAndBroadcastTx(txBldr2, ctx2, []sdk.Msg{msgUpdateClient}, passphrase2) -// if err != nil || !res.IsOK() { -// return err -// } -// fmt.Printf(" [OK] txid(%v) client(%v)\n", res.TxHash, clientID1) - -// viper.Set(flags.FlagChainID, cid1) -// proofs, err = queryProofs(ctx1.WithHeight(header.Height-1), connID1, storeKey) -// if err != nil { -// return err -// } - -// // Create and send msgOpenConfirm -// viper.Set(flags.FlagChainID, cid2) -// msgOpenConfirm := types.NewMsgConnectionOpenConfirm(connID2, proofs.Proof, uint64(header.Height), ctx2.GetFromAddress()) - -// if err := msgOpenConfirm.ValidateBasic(); err != nil { -// return err -// } - -// fmt.Printf("%v <- %-14v", cid1, msgOpenConfirm.Type()) - -// res, err = utils.CompleteAndBroadcastTx(txBldr2, ctx2, []sdk.Msg{msgOpenConfirm}, passphrase2) -// if err != nil || !res.IsOK() { -// return err -// } -// fmt.Printf(" [OK] txid(%v) connection(%v)\n", res.TxHash, connID2) - -// return nil -// }, -// } - -// cmd.Flags().String(FlagNode1, "tcp://localhost:26657", "RPC port for the first chain") -// cmd.Flags().String(FlagNode2, "tcp://localhost:26657", "RPC port for the second chain") -// cmd.Flags().String(FlagFrom1, "", "key in local keystore for first chain") -// cmd.Flags().String(FlagFrom2, "", "key in local keystore for second chain") -// cmd.Flags().String(FlagChainID2, "", "chain-id for the second chain") - -// cmd.MarkFlagRequired(FlagNode1) -// cmd.MarkFlagRequired(FlagNode2) -// cmd.MarkFlagRequired(FlagFrom1) -// cmd.MarkFlagRequired(FlagFrom2) -// cmd.MarkFlagRequired(FlagChainID2) - -// return cmd -// } diff --git a/x/ibc/04-channel/client/cli/tx.go b/x/ibc/04-channel/client/cli/tx.go index 0ce53bf566c0..58bb189e2c4a 100644 --- a/x/ibc/04-channel/client/cli/tx.go +++ b/x/ibc/04-channel/client/cli/tx.go @@ -285,216 +285,3 @@ func channelOrder() types.Order { } return types.UNORDERED } - -// GetCmdHandshakeChannel performs the full handshake to set an IBC channel. -// Note: Only for demo purposes. -// TODO: Remove for IBC v1.0.0 -// func GetCmdHandshakeChannel(storeKey string, cdc *codec.Codec) *cobra.Command { -// cmd := &cobra.Command{ -// Use: "handshake", -// Short: "initiate connection handshake between two chains", -// Long: strings.TrimSpace( -// fmt.Sprintf(`initialize a connection on chain A with a given counterparty chain B: - -// Example: -// $ %s tx ibc channel handshake [client-id] [port-id] [chan-id] [conn-id] [cp-client-id] [cp-port-id] [cp-chain-id] [cp-conn-id] -// `, version.ClientName)), -// Args: cobra.ExactArgs(8), -// // Args: []string{portid1, chanid1, connid1, portid2, chanid2, connid2} -// RunE: func(cmd *cobra.Command, args []string) error { -// // --chain-id values for each chain -// cid1 := viper.GetString(flags.FlagChainID) -// cid2 := viper.GetString(FlagChainID2) - -// // --from values for each wallet -// from1 := viper.GetString(FlagFrom1) -// from2 := viper.GetString(FlagFrom2) - -// // --node values for each RPC -// node1 := viper.GetString(FlagNode1) -// node2 := viper.GetString(FlagNode2) - -// // client IDs -// clientid1 := args[0] -// clientid2 := args[4] - -// // port IDs -// portid1 := args[1] -// portid2 := args[5] - -// // channel IDs -// chanid1 := args[2] -// chanid2 := args[6] - -// // connection IDs -// connid1 := args[3] -// connid2 := args[7] - -// inBuf := bufio.NewReader(cmd.InOrStdin()) -// prove := true - -// // Create txbldr, clictx, querier for cid1 -// viper.Set(flags.FlagChainID, cid1) -// txBldr1 := auth.NewTxBuilderFromCLI(inBuf). -// WithTxEncoder(authutils.GetTxEncoder(cdc)) -// ctx1 := context.NewCLIContextIBC(inBuf, from1, cid1, node1). -// WithCodec(cdc). -// WithBroadcastMode(flags.BroadcastBlock) - -// // Create txbldr, clictx, querier for cid2 -// viper.Set(flags.FlagChainID, cid2) -// txBldr2 := auth.NewTxBuilderFromCLI(inBuf). -// WithTxEncoder(authutils.GetTxEncoder(cdc)) -// ctx2 := context.NewCLIContextIBC(inBuf, from2, cid2, node2). -// WithCodec(cdc). -// WithBroadcastMode(flags.BroadcastBlock) - -// // get passphrase for key from1 -// passphrase1, err := keys.GetPassphrase(from1) -// if err != nil { -// return err -// } - -// // get passphrase for key from2 -// passphrase2, err := keys.GetPassphrase(from2) -// if err != nil { -// return err -// } - -// // TODO: check state and if not Idle continue existing process -// viper.Set(flags.FlagChainID, cid1) -// msgOpenInit := types.NewMsgChannelOpenInit(portid1, chanid1, "v1.0.0", channelOrder(), []string{connid1}, portid2, chanid2, ctx1.GetFromAddress()) -// if err := msgOpenInit.ValidateBasic(); err != nil { -// return err -// } - -// res, err := authutils.CompleteAndBroadcastTx(txBldr1, ctx1, []sdk.Msg{msgOpenInit}, passphrase1) -// if err != nil || !res.IsOK() { -// return err -// } - -// // Another block has to be passed after msginit is committed -// // to retrieve the correct proofs -// time.Sleep(8 * time.Second) - -// header, _, err := clientutils.QueryTendermintHeader(ctx1) -// if err != nil { -// return err -// } - -// viper.Set(flags.FlagChainID, cid2) -// msgUpdateClient := clienttypes.NewMsgUpdateClient(clientid2, header, ctx2.GetFromAddress()) -// if err := msgUpdateClient.ValidateBasic(); err != nil { -// return err -// } - -// res, err = authutils.CompleteAndBroadcastTx(txBldr2, ctx2, []sdk.Msg{msgUpdateClient}, passphrase2) -// if err != nil || !res.IsOK() { -// return err -// } - -// viper.Set(flags.FlagChainID, cid1) -// channelRes, err := utils.QueryChannel(ctx1.WithHeight(header.Height-1), portid1, chanid1, prove) -// if err != nil { -// return err -// } - -// msgOpenTry := types.NewMsgChannelOpenTry(portid2, chanid2, "v1.0.0", channelOrder(), []string{connid2}, portid1, chanid1, "v1.0.0", channelRes.Proof, uint64(header.Height), ctx2.GetFromAddress()) -// if err := msgUpdateClient.ValidateBasic(); err != nil { -// return err -// } - -// res, err = authutils.CompleteAndBroadcastTx(txBldr2, ctx2, []sdk.Msg{msgOpenTry}, passphrase2) -// if err != nil || !res.IsOK() { -// return err -// } - -// // Another block has to be passed after msginit is committed -// // to retrieve the correct proofs -// time.Sleep(8 * time.Second) - -// header, _, err = clientutils.QueryTendermintHeader(ctx2) -// if err != nil { -// return err -// } - -// viper.Set(flags.FlagChainID, cid1) -// msgUpdateClient = clienttypes.NewMsgUpdateClient(clientid1, header, ctx1.GetFromAddress()) -// if err := msgUpdateClient.ValidateBasic(); err != nil { -// return err -// } - -// res, err = authutils.CompleteAndBroadcastTx(txBldr1, ctx1, []sdk.Msg{msgUpdateClient}, passphrase1) -// if err != nil || !res.IsOK() { -// return err -// } - -// viper.Set(flags.FlagChainID, cid2) -// channelRes, err = utils.QueryChannel(ctx2.WithHeight(header.Height-1), portid2, chanid2, prove) -// if err != nil { -// return err -// } - -// viper.Set(flags.FlagChainID, cid1) -// msgOpenAck := types.NewMsgChannelOpenAck(portid1, chanid1, "v1.0.0", channelRes.Proof, uint64(header.Height), ctx1.GetFromAddress()) -// if err := msgOpenAck.ValidateBasic(); err != nil { -// return err -// } - -// res, err = authutils.CompleteAndBroadcastTx(txBldr1, ctx1, []sdk.Msg{msgOpenAck}, passphrase1) -// if err != nil || !res.IsOK() { -// return err -// } - -// // Another block has to be passed after msginit is committed -// // to retrieve the correct proofs -// time.Sleep(8 * time.Second) - -// header, _, err = clientutils.QueryTendermintHeader(ctx1) -// if err != nil { -// return err -// } - -// viper.Set(flags.FlagChainID, cid2) -// msgUpdateClient = clienttypes.NewMsgUpdateClient(clientid2, header, ctx2.GetFromAddress()) -// if err := msgUpdateClient.ValidateBasic(); err != nil { -// return err -// } - -// res, err = authutils.CompleteAndBroadcastTx(txBldr2, ctx2, []sdk.Msg{msgUpdateClient}, passphrase2) -// if err != nil || !res.IsOK() { -// return err -// } - -// viper.Set(flags.FlagChainID, cid1) -// channelRes, err = utils.QueryChannel(ctx1.WithHeight(header.Height-1), portid1, chanid1, prove) -// if err != nil { -// return err -// } - -// msgOpenConfirm := types.NewMsgChannelOpenConfirm(portid2, chanid2, channelRes.Proof, uint64(header.Height), ctx2.GetFromAddress()) -// if err := msgOpenConfirm.ValidateBasic(); err != nil { -// return err -// } - -// res, err = authutils.CompleteAndBroadcastTx(txBldr2, ctx2, []sdk.Msg{msgOpenConfirm}, passphrase2) -// if err != nil || !res.IsOK() { -// return err -// } - -// return nil -// }, -// } - -// cmd.Flags().String(FlagNode1, "tcp://localhost:26657", "RPC port for the first chain") -// cmd.Flags().String(FlagNode2, "tcp://localhost:26657", "RPC port for the second chain") -// cmd.Flags().String(FlagFrom1, "", "key in local keystore for first chain") -// cmd.Flags().String(FlagFrom2, "", "key in local keystore for second chain") -// cmd.Flags().String(FlagChainID2, "", "chain-id for the second chain") -// cmd.Flags().Bool(FlagOrdered, true, "Pass flag for opening ordered channels") - -// cmd.MarkFlagRequired(FlagFrom1) -// cmd.MarkFlagRequired(FlagFrom2) - -// return cmd -// } From bc729be69f5a04ccc969d5ed68a72ef8a81c2677 Mon Sep 17 00:00:00 2001 From: Federico Kunze Date: Wed, 4 Dec 2019 15:35:39 +0100 Subject: [PATCH 3/4] rm dup flag --- x/ibc/03-connection/client/cli/tx.go | 4 ++-- x/ibc/20-transfer/client/cli/tx.go | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/x/ibc/03-connection/client/cli/tx.go b/x/ibc/03-connection/client/cli/tx.go index fe94bc2b4025..9693a62b96ea 100644 --- a/x/ibc/03-connection/client/cli/tx.go +++ b/x/ibc/03-connection/client/cli/tx.go @@ -88,8 +88,8 @@ $ %s tx ibc connection open-init [connection-id] [client-id] \ func GetCmdConnectionOpenTry(storeKey string, cdc *codec.Codec) *cobra.Command { cmd := &cobra.Command{ Use: strings.TrimSpace(`open-try [connection-id] [client-id] - [counterparty-connection-id] [counterparty-client-id] [path/to/counterparty_prefix.json] - [counterparty-versions] [path/to/proof_init.json]`), +[counterparty-connection-id] [counterparty-client-id] [path/to/counterparty_prefix.json] +[counterparty-versions] [path/to/proof_init.json]`), Short: "initiate connection handshake between two chains", Long: strings.TrimSpace( fmt.Sprintf(`initialize a connection on chain A with a given counterparty chain B: diff --git a/x/ibc/20-transfer/client/cli/tx.go b/x/ibc/20-transfer/client/cli/tx.go index dc14a53c5a3b..cc68453ddedd 100644 --- a/x/ibc/20-transfer/client/cli/tx.go +++ b/x/ibc/20-transfer/client/cli/tx.go @@ -63,7 +63,6 @@ func GetTransferTxCmd(cdc *codec.Codec) *cobra.Command { }, } cmd.Flags().Bool(FlagSource, false, "Pass flag for sending token from the source chain") - cmd.Flags().String(flags.FlagFrom, "", "key in local keystore to send from") return cmd } From 116f406ad9a4857857e9fea7163c63cf3a629ccb Mon Sep 17 00:00:00 2001 From: Federico Kunze Date: Fri, 6 Dec 2019 17:18:39 +0100 Subject: [PATCH 4/4] fix error handling --- x/ibc/03-connection/keeper/handshake.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x/ibc/03-connection/keeper/handshake.go b/x/ibc/03-connection/keeper/handshake.go index f9288f7d9ae2..8e8dcbb96090 100644 --- a/x/ibc/03-connection/keeper/handshake.go +++ b/x/ibc/03-connection/keeper/handshake.go @@ -31,7 +31,7 @@ func (k Keeper) ConnOpenInit( err := k.addConnectionToClient(ctx, clientID, connectionID) if err != nil { - sdkerrors.Wrap(err, "cannot initialize connection") + return sdkerrors.Wrap(err, "cannot initialize connection") } k.Logger(ctx).Info(fmt.Sprintf("connection %s state updated: NONE -> INIT", connectionID))