make relay.go compiled
This commit is contained in:
parent
1447bcf139
commit
8c290c3a6b
|
@ -69,7 +69,6 @@ func main() {
|
||||||
client.PostCommands(
|
client.PostCommands(
|
||||||
ibccmd.IBCTransferCmd(cdc),
|
ibccmd.IBCTransferCmd(cdc),
|
||||||
)...)
|
)...)
|
||||||
)
|
|
||||||
|
|
||||||
// add proxy, version and key info
|
// add proxy, version and key info
|
||||||
basecliCmd.AddCommand(
|
basecliCmd.AddCommand(
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
zRckage main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
|
|
|
@ -26,7 +26,7 @@ func IBCTransferCmd(cdc *wire.Codec) *cobra.Command {
|
||||||
cmdr := sendCommander{cdc}
|
cmdr := sendCommander{cdc}
|
||||||
cmd := &cobra.Command{
|
cmd := &cobra.Command{
|
||||||
Use: "send",
|
Use: "send",
|
||||||
RunE: cmdr.runIBCTransfer,
|
RunE: cmdr.sendIBCTransfer,
|
||||||
}
|
}
|
||||||
cmd.Flags().String(flagTo, "", "Address to send coins")
|
cmd.Flags().String(flagTo, "", "Address to send coins")
|
||||||
cmd.Flags().String(flagAmount, "", "Amount of coins to send")
|
cmd.Flags().String(flagAmount, "", "Amount of coins to send")
|
||||||
|
@ -38,7 +38,7 @@ type sendCommander struct {
|
||||||
cdc *wire.Codec
|
cdc *wire.Codec
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c commander) sendIBCTransfer(cmd *cobra.Command, args []string) error {
|
func (c sendCommander) sendIBCTransfer(cmd *cobra.Command, args []string) error {
|
||||||
from, err := builder.GetFromAddress()
|
from, err := builder.GetFromAddress()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -73,7 +73,12 @@ func buildMsg(from sdk.Address) (sdk.Msg, error) {
|
||||||
|
|
||||||
to := sdk.Address(bz)
|
to := sdk.Address(bz)
|
||||||
|
|
||||||
msg := ibc.NewIBCPacket(from, to, coins, viper.GetString(client.FlagNode),
|
packet := ibc.NewIBCPacket(from, to, coins, viper.GetString(client.FlagNode),
|
||||||
viper.GetString(flagChain))
|
viper.GetString(flagChain))
|
||||||
|
|
||||||
|
msg := ibc.IBCTransferMsg{
|
||||||
|
IBCPacket: packet,
|
||||||
|
}
|
||||||
|
|
||||||
return msg, nil
|
return msg, nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,26 +10,35 @@ import (
|
||||||
"github.com/cosmos/cosmos-sdk/client"
|
"github.com/cosmos/cosmos-sdk/client"
|
||||||
"github.com/cosmos/cosmos-sdk/client/builder"
|
"github.com/cosmos/cosmos-sdk/client/builder"
|
||||||
|
|
||||||
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
||||||
wire "github.com/cosmos/cosmos-sdk/wire"
|
wire "github.com/cosmos/cosmos-sdk/wire"
|
||||||
|
|
||||||
"github.com/cosmos/cosmos-sdk/x/ibc"
|
"github.com/cosmos/cosmos-sdk/x/ibc"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
flagChain1 = "chain1"
|
||||||
|
flagChain2 = "chain2"
|
||||||
|
)
|
||||||
|
|
||||||
func IBCRelayCmd(cdc *wire.Codec) *cobra.Command {
|
func IBCRelayCmd(cdc *wire.Codec) *cobra.Command {
|
||||||
cmdr := relayCommander{cdc, "ibc"}
|
cmdr := relayCommander{
|
||||||
|
cdc: cdc,
|
||||||
|
ibcStore: "ibc",
|
||||||
|
}
|
||||||
|
|
||||||
cmd := &cobra.Command{
|
cmd := &cobra.Command{
|
||||||
Use: "relay",
|
Use: "relay",
|
||||||
Run: cmdr.runIBCRelay,
|
Run: cmdr.runIBCRelay,
|
||||||
}
|
}
|
||||||
cmd.Flags().String(flagTo, "", "Address to send coins")
|
cmd.Flags().String(flagChain1, "", "Chain ID to relay IBC packets")
|
||||||
cmd.Flags().String(flagAmount, "", "Amount of coins to send")
|
cmd.Flags().String(flagChain2, "", "Chain ID to relay IBC packets")
|
||||||
cmd.Flags().Int64(flagSequence, 0, "Sequence number to sign the tx")
|
|
||||||
return cmd
|
return cmd
|
||||||
}
|
}
|
||||||
|
|
||||||
type relayCommander struct {
|
type relayCommander struct {
|
||||||
cdc *wire.Codec
|
cdc *wire.Codec
|
||||||
|
address sdk.Address
|
||||||
ibcStore string
|
ibcStore string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -37,6 +46,12 @@ func (c relayCommander) runIBCRelay(cmd *cobra.Command, args []string) {
|
||||||
chain1 := viper.GetString(flagChain1)
|
chain1 := viper.GetString(flagChain1)
|
||||||
chain2 := viper.GetString(flagChain2)
|
chain2 := viper.GetString(flagChain2)
|
||||||
|
|
||||||
|
address, err := builder.GetFromAddress()
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
c.address = address
|
||||||
|
|
||||||
go c.loop(chain1, chain2)
|
go c.loop(chain1, chain2)
|
||||||
go c.loop(chain2, chain1)
|
go c.loop(chain2, chain1)
|
||||||
}
|
}
|
||||||
|
@ -64,13 +79,13 @@ func (c relayCommander) refine(bz []byte, sequence int64) []byte {
|
||||||
if err := c.cdc.UnmarshalBinary(bz, &packet); err != nil {
|
if err := c.cdc.UnmarshalBinary(bz, &packet); err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
address := getAddress()
|
|
||||||
msg := ibc.IBCReceiveMsg{
|
msg := ibc.IBCReceiveMsg{
|
||||||
IBCPacket: packet,
|
IBCPacket: packet,
|
||||||
Relayer: address,
|
Relayer: c.address,
|
||||||
Sequence: sequence,
|
Sequence: sequence,
|
||||||
}
|
}
|
||||||
res, err := buildTx(c.cdc, msg)
|
res, err := builder.SignAndBuild(msg, c.cdc)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
@ -124,48 +139,3 @@ OUTER:
|
||||||
processed = egressLength
|
processed = egressLength
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
func (c relayCommander) buildTx() ([]byte, error) {
|
|
||||||
keybase, err := keys.GetKeyBase()
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
name := viper.GetString(client.FlagName)
|
|
||||||
info, err := keybase.Get(name)
|
|
||||||
if err != nil {
|
|
||||||
return nil, fmt.Errorf("No key for: %s, name")
|
|
||||||
}
|
|
||||||
from := info.PubKey.Address()
|
|
||||||
|
|
||||||
msg, err := buildMsg(from)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
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 := c.cdc.MarshalBinary(tx)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return txBytes, nil
|
|
||||||
}*/
|
|
||||||
|
|
Loading…
Reference in New Issue