Revert "in progress: wire -> json for now"

This reverts commit 25f01a3e12.
This commit is contained in:
mossid 2018-03-15 13:49:18 +01:00
parent a8b343a333
commit 829f0f32fc
7 changed files with 38 additions and 86 deletions

View File

@ -8,15 +8,17 @@ import (
"github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client"
"github.com/cosmos/cosmos-sdk/client/keys" "github.com/cosmos/cosmos-sdk/client/keys"
sdk "github.com/cosmos/cosmos-sdk/types" sdk "github.com/cosmos/cosmos-sdk/types"
wire "github.com/tendermint/go-amino" wire "github.com/cosmos/cosmos-sdk/wire"
) )
func buildTx(cdc *wire.Codec, msg sdk.Msg, name string) ([]byte, error) { func buildTx(cdc *wire.Codec, msg sdk.Msg) ([]byte, error) {
keybase, err := keys.GetKeyBase() keybase, err := keys.GetKeyBase()
if err != nil { if err != nil {
return nil, err return nil, err
} }
name := viper.GetString(client.FlagName)
bz := msg.GetSignBytes() bz := msg.GetSignBytes()
buf := client.BufferStdin() buf := client.BufferStdin()
prompt := fmt.Sprintf("Password to sign with '%s':", name) prompt := fmt.Sprintf("Password to sign with '%s':", name)
@ -43,12 +45,13 @@ func buildTx(cdc *wire.Codec, msg sdk.Msg, name string) ([]byte, error) {
return txBytes, nil return txBytes, nil
} }
func getAddress(name string) []byte { func getAddress() []byte {
keybase, err := keys.GetKeyBase() keybase, err := keys.GetKeyBase()
if err != nil { if err != nil {
panic(err) panic(err)
} }
name := viper.GetString(client.FlagName)
info, err := keybase.Get(name) info, err := keybase.Get(name)
if err != nil { if err != nil {
panic(err) panic(err)

View File

@ -10,7 +10,7 @@ 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"
wire "github.com/tendermint/go-amino" wire "github.com/cosmos/cosmos-sdk/wire"
"github.com/cosmos/cosmos-sdk/x/ibc" "github.com/cosmos/cosmos-sdk/x/ibc"
) )
@ -22,7 +22,9 @@ func IBCRelayCmd(cdc *wire.Codec) *cobra.Command {
Use: "relay", Use: "relay",
Run: cmdr.runIBCRelay, Run: cmdr.runIBCRelay,
} }
cmd.Flags().String(client.FlagName, "", "Name of the key to sign") cmd.Flags().String(flagTo, "", "Address to send coins")
cmd.Flags().String(flagAmount, "", "Amount of coins to send")
cmd.Flags().Int64(flagSequence, 0, "Sequence number to sign the tx")
return cmd return cmd
} }
@ -62,16 +64,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()
name := viper.GetString(client.FlagName)
address := getAddress(name)
msg := ibc.IBCReceiveMsg{ msg := ibc.IBCReceiveMsg{
IBCPacket: packet, IBCPacket: packet,
Relayer: address, Relayer: address,
Sequence: sequence, Sequence: sequence,
} }
res, err := buildTx(c.cdc, msg, name) res, err := buildTx(c.cdc, msg)
if err != nil { if err != nil {
panic(err) panic(err)
} }

View File

@ -1,16 +0,0 @@
package commands
import (
"github.com/spf13/cobra"
wire "github.com/tendermint/go-amino"
)
func AddCommands(cmd *cobra.Command) {
cdc := wire.NewCodec()
cmd.AddCommand(
IBCTransferCmd(cdc),
IBCRelayCmd(cdc),
)
}

View File

@ -11,7 +11,7 @@ import (
"github.com/cosmos/cosmos-sdk/client/builder" "github.com/cosmos/cosmos-sdk/client/builder"
sdk "github.com/cosmos/cosmos-sdk/types" sdk "github.com/cosmos/cosmos-sdk/types"
// wire "github.com/tendermint/go-amino" wire "github.com/cosmos/cosmos-sdk/wire"
"github.com/cosmos/cosmos-sdk/x/ibc" "github.com/cosmos/cosmos-sdk/x/ibc"
) )
@ -20,19 +20,12 @@ func IBCTransferCmd(cdc *wire.Codec) *cobra.Command {
cmdr := sendCommander{cdc} cmdr := sendCommander{cdc}
cmd := &cobra.Command{ cmd := &cobra.Command{
Use: "transfer", Use: "send",
RunE: cmdr.runIBCTransfer, RunE: cmdr.runIBCTransfer,
} }
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")
cmd.Flags().String(flagChain, "", "Destination chain to send coins") cmd.Flags().String(flagChain, "", "Destination chain to send coins")
viper.BindPFlag(flagTo, cmd.Flags().Lookup(flagTo))
viper.BindPFlag(flagAmount, cmd.Flags().Lookup(flagAmount))
viper.BindPFlag(flagChain, cmd.Flags().Lookup(flagChain))
cmd.MarkFlagRequired(flagTo)
cmd.MarkFlagRequired(flagAmount)
cmd.MarkFlagRequired(flagChain)
return cmd return cmd
} }
@ -41,15 +34,13 @@ type sendCommander struct {
} }
func (c sendCommander) runIBCTransfer(cmd *cobra.Command, args []string) error { func (c sendCommander) runIBCTransfer(cmd *cobra.Command, args []string) error {
keyname := viper.GetString(client.FlagName) address := getAddress()
address := getAddress(keyname)
msg, err := buildMsg(address) msg, err := buildMsg(address)
if err != nil { if err != nil {
return err return err
} }
txBytes, err := buildTx(c.cdc, msg, keyname) txBytes, err := buildTx(c.cdc, msg)
if err != nil { if err != nil {
return err return err
} }

View File

@ -1,25 +1,25 @@
package ibc package ibc
import ( import (
"encoding/json"
"fmt" "fmt"
sdk "github.com/cosmos/cosmos-sdk/types" sdk "github.com/cosmos/cosmos-sdk/types"
//wire "github.com/cosmos/cosmos-sdk/wire"
wire "github.com/cosmos/cosmos-sdk/wire"
) )
type IBCMapper struct { type IBCMapper struct {
ibcKey sdk.StoreKey ibcKey sdk.StoreKey
// cdc *wire.Codec cdc *wire.Codec
} }
func NewIBCMapper(ibcKey sdk.StoreKey) IBCMapper { func NewIBCMapper(ibcKey sdk.StoreKey) IBCMapper {
// cdc := wire.NewCodec() cdc := wire.NewCodec()
return IBCMapper{ return IBCMapper{
ibcKey: ibcKey, ibcKey: ibcKey,
// cdc: cdc, cdc: cdc,
} }
} }
@ -38,7 +38,7 @@ func EgressLengthKey(destChain string) []byte {
func (ibcm IBCMapper) getEgressLength(store sdk.KVStore, destChain string) int64 { func (ibcm IBCMapper) getEgressLength(store sdk.KVStore, destChain string) int64 {
bz := store.Get(EgressLengthKey(destChain)) bz := store.Get(EgressLengthKey(destChain))
if bz == nil { if bz == nil {
zero, err := json.Marshal(int64(0)) //ibcm.cdc.MarshalBinary(int64(0)) zero, err := ibcm.cdc.MarshalBinary(int64(0))
if err != nil { if err != nil {
panic(err) panic(err)
} }
@ -46,7 +46,7 @@ func (ibcm IBCMapper) getEgressLength(store sdk.KVStore, destChain string) int64
return 0 return 0
} }
var res int64 var res int64
if err := json.Unmarshal(bz, &res); /*ibcm.cdc.UnmarshalBinary(bz, &res)*/ err != nil { if err := ibcm.cdc.UnmarshalBinary(bz, &res); err != nil {
panic(err) panic(err)
} }
return res return res
@ -56,7 +56,7 @@ func (ibcm IBCMapper) GetIngressSequence(ctx sdk.Context, srcChain string) int64
store := ctx.KVStore(ibcm.ibcKey) store := ctx.KVStore(ibcm.ibcKey)
bz := store.Get(IngressKey(srcChain)) bz := store.Get(IngressKey(srcChain))
if bz == nil { if bz == nil {
zero, err := json.Marshal(int64(0)) //ibcm.cdc.MarshalBinary(int64(0)) zero, err := ibcm.cdc.MarshalBinary(int64(0))
if err != nil { if err != nil {
panic(err) panic(err)
} }
@ -64,7 +64,7 @@ func (ibcm IBCMapper) GetIngressSequence(ctx sdk.Context, srcChain string) int64
return 0 return 0
} }
var res int64 var res int64
if err := json.Unmarshal(bz, &res); /*ibcm.cdc.UnmarshalBinary(bz, &res)*/ err != nil { if err := ibcm.cdc.UnmarshalBinary(bz, &res); err != nil {
panic(err) panic(err)
} }
return res return res
@ -72,7 +72,7 @@ func (ibcm IBCMapper) GetIngressSequence(ctx sdk.Context, srcChain string) int64
func (ibcm IBCMapper) SetIngressSequence(ctx sdk.Context, srcChain string, sequence int64) { func (ibcm IBCMapper) SetIngressSequence(ctx sdk.Context, srcChain string, sequence int64) {
store := ctx.KVStore(ibcm.ibcKey) store := ctx.KVStore(ibcm.ibcKey)
bz, err := json.Marshal(sequence) // ibcm.cdc.MarshalBinary(sequence) bz, err := ibcm.cdc.MarshalBinary(sequence)
if err != nil { if err != nil {
panic(err) panic(err)
} }
@ -82,12 +82,12 @@ func (ibcm IBCMapper) SetIngressSequence(ctx sdk.Context, srcChain string, seque
func (ibcm IBCMapper) PushPacket(ctx sdk.Context, packet IBCPacket) { func (ibcm IBCMapper) PushPacket(ctx sdk.Context, packet IBCPacket) {
store := ctx.KVStore(ibcm.ibcKey) store := ctx.KVStore(ibcm.ibcKey)
len := ibcm.getEgressLength(store, packet.DestChain) len := ibcm.getEgressLength(store, packet.DestChain)
packetbz, err := json.Marshal(packet) // ibcm.cdc.MarshalBinary(packet) packetbz, err := ibcm.cdc.MarshalBinary(packet)
if err != nil { if err != nil {
panic(err) panic(err)
} }
store.Set(EgressKey(packet.DestChain, len), packetbz) store.Set(EgressKey(packet.DestChain, len), packetbz)
lenbz, err := json.Marshal(int64(len + 1)) // ibcm.cdc.MarshalBinary(int64(len + 1)) lenbz, err := ibcm.cdc.MarshalBinary(int64(len + 1))
if err != nil { if err != nil {
panic(err) panic(err)
} }

View File

@ -1,10 +1,9 @@
package ibc package ibc
import ( import (
"encoding/json"
sdk "github.com/cosmos/cosmos-sdk/types" sdk "github.com/cosmos/cosmos-sdk/types"
//wire "github.com/tendermint/go-amino"
wire "github.com/cosmos/cosmos-sdk/wire"
) )
type IBCPacket struct { type IBCPacket struct {
@ -15,17 +14,16 @@ type IBCPacket struct {
DestChain string DestChain string
} }
/*
func newCodec() *wire.Codec { func newCodec() *wire.Codec {
return wire.NewCodec() return wire.NewCodec()
} }
*/
type IBCTransferMsg struct { type IBCTransferMsg struct {
IBCPacket IBCPacket
} }
func (msg IBCTransferMsg) Type() string { func (msg IBCTransferMsg) Type() string {
return "ibc" return "ibctransfer"
} }
func (msg IBCTransferMsg) Get(key interface{}) interface{} { func (msg IBCTransferMsg) Get(key interface{}) interface{} {
@ -33,18 +31,12 @@ func (msg IBCTransferMsg) Get(key interface{}) interface{} {
} }
func (msg IBCTransferMsg) GetSignBytes() []byte { func (msg IBCTransferMsg) GetSignBytes() []byte {
/* cdc := newCodec() cdc := newCodec()
bz, err := cdc.MarshalBinary(msg.IBCPacket) bz, err := cdc.MarshalBinary(msg.IBCPacket)
if err != nil {
panic(err)
}
return bz*/
res, err := json.Marshal(msg)
if err != nil { if err != nil {
panic(err) panic(err)
} }
return bz
return res
} }
func (msg IBCTransferMsg) ValidateBasic() sdk.Error { func (msg IBCTransferMsg) ValidateBasic() sdk.Error {
@ -63,7 +55,7 @@ type IBCReceiveMsg struct {
} }
func (msg IBCReceiveMsg) Type() string { func (msg IBCReceiveMsg) Type() string {
return "ibc" return "ibcreceive"
} }
func (msg IBCReceiveMsg) Get(key interface{}) interface{} { func (msg IBCReceiveMsg) Get(key interface{}) interface{} {
@ -71,18 +63,12 @@ func (msg IBCReceiveMsg) Get(key interface{}) interface{} {
} }
func (msg IBCReceiveMsg) GetSignBytes() []byte { func (msg IBCReceiveMsg) GetSignBytes() []byte {
/*cdc := newCodec() cdc := newCodec()
bz, err := cdc.MarshalBinary(msg.IBCPacket) bz, err := cdc.MarshalBinary(msg.IBCPacket)
if err != nil { if err != nil {
panic(err) panic(err)
} }
return bz*/ return bz
res, err := json.Marshal(msg)
if err != nil {
panic(err)
}
return res
} }
func (msg IBCReceiveMsg) ValidateBasic() sdk.Error { func (msg IBCReceiveMsg) ValidateBasic() sdk.Error {

View File

@ -1,11 +0,0 @@
package ibc
import (
wire "github.com/tendermint/go-amino"
)
func RegisterWire(cdc *wire.Codec) {
cdc.RegisterConcrete(IBCTransferMsg{}, "cosmos-sdk/IBCTransferMsg", nil)
cdc.RegisterConcrete(IBCReceiveMsg{}, "cosmos-sdk/IBCReceiveMsg", nil)
cdc.RegisterConcrete(IBCPacket{}, "cosmos-sdk/IBCPacket", nil)
}