From 1447bcf139c98af4c0aa633f2cc48cf805709e7e Mon Sep 17 00:00:00 2001 From: Adrian Brink Date: Thu, 15 Mar 2018 17:26:21 +0100 Subject: [PATCH] Integrate IBC more and more into basecli --- examples/basecoin/cmd/basecli/main.go | 6 +++ examples/basecoin/cmd/basecoind/main.go | 2 +- x/ibc/commands/flags.go | 10 ---- x/ibc/commands/helpers.go | 61 ------------------------- x/ibc/commands/{send.go => ibctx.go} | 29 ++++++------ x/ibc/types.go | 12 +++++ 6 files changed, 33 insertions(+), 87 deletions(-) delete mode 100644 x/ibc/commands/flags.go delete mode 100644 x/ibc/commands/helpers.go rename x/ibc/commands/{send.go => ibctx.go} (73%) diff --git a/examples/basecoin/cmd/basecli/main.go b/examples/basecoin/cmd/basecli/main.go index 1827b4d98e..f36c814f77 100644 --- a/examples/basecoin/cmd/basecli/main.go +++ b/examples/basecoin/cmd/basecli/main.go @@ -17,6 +17,7 @@ import ( "github.com/cosmos/cosmos-sdk/version" authcmd "github.com/cosmos/cosmos-sdk/x/auth/commands" bankcmd "github.com/cosmos/cosmos-sdk/x/bank/commands" + ibccmd "github.com/cosmos/cosmos-sdk/x/ibc/commands" "github.com/cosmos/cosmos-sdk/examples/basecoin/app" "github.com/cosmos/cosmos-sdk/examples/basecoin/types" @@ -64,6 +65,11 @@ func main() { client.PostCommands( coolcmd.SetTrendTxCmd(cdc), )...) + basecliCmd.AddCommand( + client.PostCommands( + ibccmd.IBCTransferCmd(cdc), + )...) + ) // add proxy, version and key info basecliCmd.AddCommand( diff --git a/examples/basecoin/cmd/basecoind/main.go b/examples/basecoin/cmd/basecoind/main.go index 44ea00fbba..5c92a380b4 100644 --- a/examples/basecoin/cmd/basecoind/main.go +++ b/examples/basecoin/cmd/basecoind/main.go @@ -1,4 +1,4 @@ -package main +zRckage main import ( "encoding/json" diff --git a/x/ibc/commands/flags.go b/x/ibc/commands/flags.go deleted file mode 100644 index 298f3e37db..0000000000 --- a/x/ibc/commands/flags.go +++ /dev/null @@ -1,10 +0,0 @@ -package commands - -const ( - flagTo = "to" - flagAmount = "amount" - flagChain = "chain" - flagChain1 = "chain1" - flagChain2 = "chain2" - flagSequence = "sequence" -) diff --git a/x/ibc/commands/helpers.go b/x/ibc/commands/helpers.go deleted file mode 100644 index 83ae76a90b..0000000000 --- a/x/ibc/commands/helpers.go +++ /dev/null @@ -1,61 +0,0 @@ -package commands - -import ( - "fmt" - - "github.com/spf13/viper" - - "github.com/cosmos/cosmos-sdk/client" - "github.com/cosmos/cosmos-sdk/client/keys" - sdk "github.com/cosmos/cosmos-sdk/types" - wire "github.com/cosmos/cosmos-sdk/wire" -) - -func buildTx(cdc *wire.Codec, msg sdk.Msg) ([]byte, error) { - keybase, err := keys.GetKeyBase() - if err != nil { - return nil, err - } - - name := viper.GetString(client.FlagName) - - bz := msg.GetSignBytes() - buf := client.BufferStdin() - prompt := fmt.Sprintf("Password to sign with '%s':", name) - passphrase, err := client.GetPassword(prompt, buf) - if err != nil { - return nil, err - } - sig, pubkey, err := keybase.Sign(name, passphrase, bz) - if err != nil { - return nil, err - } - sigs := []sdk.StdSignature{{ - PubKey: pubkey, - Signature: sig, - Sequence: viper.GetInt64(flagSequence), - }} - - tx := sdk.NewStdTx(msg, sigs) - - txBytes, err := cdc.MarshalBinary(tx) - if err != nil { - return nil, err - } - return txBytes, nil -} - -func getAddress() []byte { - keybase, err := keys.GetKeyBase() - if err != nil { - panic(err) - } - - name := viper.GetString(client.FlagName) - info, err := keybase.Get(name) - if err != nil { - panic(err) - } - - return info.Address() -} diff --git a/x/ibc/commands/send.go b/x/ibc/commands/ibctx.go similarity index 73% rename from x/ibc/commands/send.go rename to x/ibc/commands/ibctx.go index ab4be359c5..287e9e67e2 100644 --- a/x/ibc/commands/send.go +++ b/x/ibc/commands/ibctx.go @@ -16,9 +16,14 @@ import ( "github.com/cosmos/cosmos-sdk/x/ibc" ) +const ( + flagTo = "to" + flagAmount = "amount" + flagChain = "chain" +) + func IBCTransferCmd(cdc *wire.Codec) *cobra.Command { cmdr := sendCommander{cdc} - cmd := &cobra.Command{ Use: "send", RunE: cmdr.runIBCTransfer, @@ -33,19 +38,18 @@ type sendCommander struct { cdc *wire.Codec } -func (c sendCommander) runIBCTransfer(cmd *cobra.Command, args []string) error { - address := getAddress() - msg, err := buildMsg(address) +func (c commander) sendIBCTransfer(cmd *cobra.Command, args []string) error { + from, err := builder.GetFromAddress() if err != nil { return err } - txBytes, err := buildTx(c.cdc, msg) + msg, err := buildMsg(from) if err != nil { return err } - res, err := builder.BroadcastTx(txBytes) + res, err := builder.SignBuildBroadcast(msg, c.cdc) if err != nil { return err } @@ -66,15 +70,10 @@ func buildMsg(from sdk.Address) (sdk.Msg, error) { if err != nil { return nil, err } + to := sdk.Address(bz) - return ibc.IBCTransferMsg{ - IBCPacket: ibc.IBCPacket{ - SrcAddr: from, - DestAddr: to, - Coins: coins, - SrcChain: viper.GetString(client.FlagNode), - DestChain: viper.GetString(flagChain), - }, - }, nil + msg := ibc.NewIBCPacket(from, to, coins, viper.GetString(client.FlagNode), + viper.GetString(flagChain)) + return msg, nil } diff --git a/x/ibc/types.go b/x/ibc/types.go index 5b45fe0196..08cf1dfad7 100644 --- a/x/ibc/types.go +++ b/x/ibc/types.go @@ -19,6 +19,18 @@ type IBCPacket struct { DestChain string } +func NewIBCPacket(srcAddr sdk.Address, destAddr sdk.Address, coins sdk.Coins, + srcChain string, destChain string) IBCPacket { + + return IBCPacket{ + SrcAddr: srcAddr, + DestAddr: destAddr, + Coins: coins, + SrcChain: srcChain, + DestChain: destChain, + } +} + // ---------------------------------- // IBCTransferMsg