diff --git a/x/ibc/20-transfer/alias.go b/x/ibc/20-transfer/alias.go index ba4008d57374..66028740581e 100644 --- a/x/ibc/20-transfer/alias.go +++ b/x/ibc/20-transfer/alias.go @@ -56,6 +56,7 @@ type ( ConnectionKeeper = types.ConnectionKeeper SupplyKeeper = types.SupplyKeeper MsgTransfer = types.MsgTransfer + MsgRecvPacket = types.MsgRecvPacket PacketData = types.PacketData PacketDataAlias = types.PacketDataAlias ) diff --git a/x/ibc/20-transfer/client/cli/tx.go b/x/ibc/20-transfer/client/cli/tx.go index e9e12f28d4a8..99be5e6387c3 100644 --- a/x/ibc/20-transfer/client/cli/tx.go +++ b/x/ibc/20-transfer/client/cli/tx.go @@ -1,16 +1,24 @@ package cli import ( + "fmt" + "io/ioutil" + "os" + "strconv" + "github.com/spf13/cobra" "github.com/spf13/viper" + "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client/context" "github.com/cosmos/cosmos-sdk/client/flags" "github.com/cosmos/cosmos-sdk/codec" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/x/auth" "github.com/cosmos/cosmos-sdk/x/auth/client/utils" + channelexported "github.com/cosmos/cosmos-sdk/x/ibc/04-channel/exported" "github.com/cosmos/cosmos-sdk/x/ibc/20-transfer/types" + commitment "github.com/cosmos/cosmos-sdk/x/ibc/23-commitment" ) // IBC transfer flags @@ -26,6 +34,7 @@ func GetTxCmd(cdc *codec.Codec) *cobra.Command { } txCmd.AddCommand( GetTransferTxCmd(cdc), + GetMsgRecvPacketCmd(cdc), ) return txCmd @@ -68,3 +77,56 @@ func GetTransferTxCmd(cdc *codec.Codec) *cobra.Command { cmd.Flags().Bool(FlagSource, false, "Pass flag for sending token from the source chain") return cmd } + +// GetMsgRecvPacketCmd returns the command to create a MsgRecvTransferPacket transaction +func GetMsgRecvPacketCmd(cdc *codec.Codec) *cobra.Command { + cmd := &cobra.Command{ + Use: "recv-packet [/path/to/packet-data.json] [/path/to/proof.json] [height]", + Short: "Creates and sends a SendPacket message", + Args: cobra.ExactArgs(3), + RunE: func(cmd *cobra.Command, args []string) error { + txBldr := auth.NewTxBuilderFromCLI().WithTxEncoder(utils.GetTxEncoder(cdc)) + cliCtx := context.NewCLIContext().WithCodec(cdc).WithBroadcastMode(flags.BroadcastBlock) + + var packet channelexported.PacketI + if err := cdc.UnmarshalJSON([]byte(args[0]), &packet); err != nil { + fmt.Fprintf(os.Stderr, "failed to unmarshall input into struct, checking for file...\n") + contents, err := ioutil.ReadFile(args[0]) + if err != nil { + return fmt.Errorf("error opening packet file: %v", err) + } + + if err := cdc.UnmarshalJSON(contents, packet); err != nil { + return fmt.Errorf("error unmarshalling packet file: %v", err) + } + } + + var proof commitment.Proof + if err := cdc.UnmarshalJSON([]byte(args[1]), &proof); err != nil { + fmt.Fprintf(os.Stderr, "failed to unmarshall input into struct, checking for file...\n") + contents, err := ioutil.ReadFile(args[1]) + if err != nil { + return fmt.Errorf("error opening proofs file: %v", err) + } + if err := cdc.UnmarshalJSON(contents, &proof); err != nil { + return fmt.Errorf("error unmarshalling proofs file: %v", err) + } + } + + height, err := strconv.ParseUint(args[2], 10, 64) + if err != nil { + return fmt.Errorf("error height: %v", err) + } + + msg := types.NewMsgRecvPacket(packet, []commitment.Proof{proof}, height, cliCtx.GetFromAddress()) + if err := msg.ValidateBasic(); err != nil { + return err + } + + return utils.GenerateOrBroadcastMsgs(cliCtx, txBldr, []sdk.Msg{msg}) + }, + } + + cmd = client.PostCommands(cmd)[0] + return cmd +} diff --git a/x/ibc/20-transfer/handler.go b/x/ibc/20-transfer/handler.go index 52f47fab9257..49fe077acbe2 100644 --- a/x/ibc/20-transfer/handler.go +++ b/x/ibc/20-transfer/handler.go @@ -5,6 +5,16 @@ import ( "github.com/cosmos/cosmos-sdk/x/ibc/20-transfer/types" ) +// handleMsgRecvPacket defines the sdk.Handler for MsgRecvPacket +func HandleMsgRecvPacket(ctx sdk.Context, k Keeper, msg MsgRecvPacket) (res sdk.Result) { + err := k.ReceivePacket(ctx, msg.Packet, msg.Proofs[0], msg.Height) + if err != nil { + return sdk.ResultFromError(err) + } + + return sdk.Result{Events: ctx.EventManager().Events()} +} + // HandleMsgTransfer defines the sdk.Handler for MsgTransfer func HandleMsgTransfer(ctx sdk.Context, k Keeper, msg MsgTransfer) (res sdk.Result) { err := k.SendTransfer(ctx, msg.SourcePort, msg.SourceChannel, msg.Amount, msg.Sender, msg.Receiver, msg.Source) diff --git a/x/ibc/20-transfer/keeper/relay.go b/x/ibc/20-transfer/keeper/relay.go index 2b481299606a..9dbe829b10f1 100644 --- a/x/ibc/20-transfer/keeper/relay.go +++ b/x/ibc/20-transfer/keeper/relay.go @@ -5,8 +5,10 @@ import ( "strings" sdk "github.com/cosmos/cosmos-sdk/types" + channelexported "github.com/cosmos/cosmos-sdk/x/ibc/04-channel/exported" channeltypes "github.com/cosmos/cosmos-sdk/x/ibc/04-channel/types" "github.com/cosmos/cosmos-sdk/x/ibc/20-transfer/types" + commitment "github.com/cosmos/cosmos-sdk/x/ibc/23-commitment" ) // SendTransfer handles transfer sending logic @@ -50,6 +52,22 @@ func (k Keeper) SendTransfer( return k.createOutgoingPacket(ctx, sequence, sourcePort, sourceChannel, destinationPort, destinationChannel, coins, sender, receiver, isSourceChain) } +// ReceivePacket handles receiving packet +func (k Keeper) ReceivePacket(ctx sdk.Context, packet channelexported.PacketI, proof commitment.ProofI, height uint64) error { + _, err := k.channelKeeper.RecvPacket(ctx, packet, proof, height, nil, k.storeKey) + if err != nil { + return err + } + + var data types.PacketData + err = data.UnmarshalJSON(packet.Data()) + if err != nil { + return sdk.NewError(types.DefaultCodespace, types.CodeInvalidPacketData, "invalid packet data") + } + + return k.ReceiveTransfer(ctx, packet.SourcePort(), packet.SourceChannel(), packet.DestPort(), packet.DestChannel(), data) +} + // ReceiveTransfer handles transfer receiving logic func (k Keeper) ReceiveTransfer( ctx sdk.Context, diff --git a/x/ibc/20-transfer/types/errors.go b/x/ibc/20-transfer/types/errors.go index 090804150095..51f95d560a01 100644 --- a/x/ibc/20-transfer/types/errors.go +++ b/x/ibc/20-transfer/types/errors.go @@ -16,6 +16,8 @@ const ( CodeInvalidChannelOrder sdk.CodeType = 104 CodeInvalidPort sdk.CodeType = 105 CodeInvalidVersion sdk.CodeType = 106 + CodeProofMissing sdk.CodeType = 107 + CodeInvalidHeight sdk.CodeType = 108 ) // ErrInvalidAddress implements sdk.Error diff --git a/x/ibc/20-transfer/types/expected_keepers.go b/x/ibc/20-transfer/types/expected_keepers.go index 2e855dfd8079..252eb8060645 100644 --- a/x/ibc/20-transfer/types/expected_keepers.go +++ b/x/ibc/20-transfer/types/expected_keepers.go @@ -6,6 +6,7 @@ import ( connection "github.com/cosmos/cosmos-sdk/x/ibc/03-connection" channel "github.com/cosmos/cosmos-sdk/x/ibc/04-channel" channelexported "github.com/cosmos/cosmos-sdk/x/ibc/04-channel/exported" + commitment "github.com/cosmos/cosmos-sdk/x/ibc/23-commitment" supplyexported "github.com/cosmos/cosmos-sdk/x/supply/exported" ) @@ -19,6 +20,7 @@ type ChannelKeeper interface { GetChannel(ctx sdk.Context, srcPort, srcChan string) (channel channel.Channel, found bool) GetNextSequenceSend(ctx sdk.Context, portID, channelID string) (uint64, bool) SendPacket(ctx sdk.Context, packet channelexported.PacketI, portCapability sdk.CapabilityKey) error + RecvPacket(ctx sdk.Context, packet channelexported.PacketI, proof commitment.ProofI, proofHeight uint64, acknowledgement []byte, portCapability sdk.CapabilityKey) (channelexported.PacketI, error) } // ClientKeeper defines the expected IBC client keeper diff --git a/x/ibc/20-transfer/types/msgs.go b/x/ibc/20-transfer/types/msgs.go index e2d4a725b6d1..4df5cf270407 100644 --- a/x/ibc/20-transfer/types/msgs.go +++ b/x/ibc/20-transfer/types/msgs.go @@ -5,6 +5,9 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" host "github.com/cosmos/cosmos-sdk/x/ibc/24-host" + + channelexported "github.com/cosmos/cosmos-sdk/x/ibc/04-channel/exported" + commitment "github.com/cosmos/cosmos-sdk/x/ibc/23-commitment" ibctypes "github.com/cosmos/cosmos-sdk/x/ibc/types" ) @@ -73,3 +76,63 @@ func (msg MsgTransfer) GetSignBytes() []byte { func (msg MsgTransfer) GetSigners() []sdk.AccAddress { return []sdk.AccAddress{msg.Sender} } + +type MsgRecvPacket struct { + Packet channelexported.PacketI `json:"packet" yaml:"packet"` + Proofs []commitment.Proof `json:"proofs" yaml:"proofs"` + Height uint64 `json:"height" yaml:"height"` + Signer sdk.AccAddress `json:"signer" yaml:"signer"` +} + +// NewMsgRecvPacket creates a new MsgRecvPacket instance +func NewMsgRecvPacket(packet channelexported.PacketI, proofs []commitment.Proof, height uint64, signer sdk.AccAddress) MsgRecvPacket { + return MsgRecvPacket{ + Packet: packet, + Proofs: proofs, + Height: height, + Signer: signer, + } +} + +// Route implements sdk.Msg +func (MsgRecvPacket) Route() string { + return RouterKey +} + +// Type implements sdk.Msg +func (MsgRecvPacket) Type() string { + return "recv_packet" +} + +// ValidateBasic implements sdk.Msg +func (msg MsgRecvPacket) ValidateBasic() sdk.Error { + if msg.Height < 1 { + return sdk.NewError(DefaultCodespace, CodeInvalidHeight, "invalid height") + } + + if msg.Proofs == nil { + return sdk.NewError(DefaultCodespace, CodeProofMissing, "proof missing") + } + + for _, proof := range msg.Proofs { + if proof.Proof == nil { + return sdk.NewError(DefaultCodespace, CodeProofMissing, "proof missing") + } + } + + if msg.Signer.Empty() { + return sdk.NewError(DefaultCodespace, CodeInvalidAddress, "invalid signer") + } + + return msg.Packet.ValidateBasic() +} + +// GetSignBytes implements sdk.Msg +func (msg MsgRecvPacket) GetSignBytes() []byte { + return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(msg)) +} + +// GetSigners implements sdk.Msg +func (msg MsgRecvPacket) GetSigners() []sdk.AccAddress { + return []sdk.AccAddress{msg.Signer} +} diff --git a/x/ibc/client/cli/cli.go b/x/ibc/client/cli/cli.go index 5e58be761800..90ec11a8740f 100644 --- a/x/ibc/client/cli/cli.go +++ b/x/ibc/client/cli/cli.go @@ -8,7 +8,6 @@ import ( ibcclient "github.com/cosmos/cosmos-sdk/x/ibc/02-client" connection "github.com/cosmos/cosmos-sdk/x/ibc/03-connection" transfer "github.com/cosmos/cosmos-sdk/x/ibc/20-transfer" - mockbank "github.com/cosmos/cosmos-sdk/x/ibc/mock/bank" "github.com/cosmos/cosmos-sdk/x/ibc/types" ) @@ -26,7 +25,6 @@ func GetTxCmd(storeKey string, cdc *codec.Codec) *cobra.Command { ibcclient.GetTxCmd(cdc, storeKey), connection.GetTxCmd(cdc, storeKey), transfer.GetTxCmd(cdc), - mockbank.GetTxCmd(cdc), ) return ibcTxCmd } diff --git a/x/ibc/handler.go b/x/ibc/handler.go index 3e432e57e2c5..a0af5394b667 100644 --- a/x/ibc/handler.go +++ b/x/ibc/handler.go @@ -61,6 +61,9 @@ func NewHandler(k Keeper) sdk.Handler { case transfer.MsgTransfer: return transfer.HandleMsgTransfer(ctx, k.TransferKeeper, msg) + case transfer.MsgRecvPacket: + return transfer.HandleMsgRecvPacket(ctx, k.TransferKeeper, msg) + default: errMsg := fmt.Sprintf("unrecognized IBC message type: %T", msg) return sdk.ErrUnknownRequest(errMsg).Result() diff --git a/x/ibc/mock/bank/alias.go b/x/ibc/mock/bank/alias.go deleted file mode 100644 index 7447068ba7e7..000000000000 --- a/x/ibc/mock/bank/alias.go +++ /dev/null @@ -1,26 +0,0 @@ -package mockbank - -import ( - "github.com/cosmos/cosmos-sdk/x/ibc/mock/bank/internal/keeper" - "github.com/cosmos/cosmos-sdk/x/ibc/mock/bank/internal/types" -) - -type ( - MsgRecvPacket = types.MsgRecvPacket - Keeper = keeper.Keeper -) - -const ( - ModuleName = types.ModuleName - StoreKey = types.StoreKey - QuerierRoute = types.QuerierRoute - RouterKey = types.RouterKey -) - -// nolint -var ( - RegisterCdc = types.RegisterCodec - - NewKeeper = keeper.NewKeeper - NewMsgRecvPacket = types.NewMsgRecvPacket -) diff --git a/x/ibc/mock/bank/client/cli/tx.go b/x/ibc/mock/bank/client/cli/tx.go deleted file mode 100644 index 4bb1fb2fc7d3..000000000000 --- a/x/ibc/mock/bank/client/cli/tx.go +++ /dev/null @@ -1,85 +0,0 @@ -package cli - -import ( - "fmt" - "io/ioutil" - "os" - "strconv" - - "github.com/cosmos/cosmos-sdk/client" - "github.com/cosmos/cosmos-sdk/client/context" - "github.com/cosmos/cosmos-sdk/client/flags" - "github.com/cosmos/cosmos-sdk/codec" - sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/cosmos/cosmos-sdk/x/auth" - "github.com/cosmos/cosmos-sdk/x/auth/client/utils" - channel "github.com/cosmos/cosmos-sdk/x/ibc/04-channel" - commitment "github.com/cosmos/cosmos-sdk/x/ibc/23-commitment" - "github.com/cosmos/cosmos-sdk/x/ibc/mock/bank/internal/types" - "github.com/spf13/cobra" -) - -func GetTxCmd(cdc *codec.Codec) *cobra.Command { - txCmd := &cobra.Command{ - Use: "ibcmockbank", - Short: "IBC mockbank module transaction subcommands", - } - txCmd.AddCommand( - GetMsgRecvPacketCmd(cdc), - ) - - return txCmd -} - -// GetMsgRecvPacketCmd returns the command to create a MsgRecvTransferPacket transaction -func GetMsgRecvPacketCmd(cdc *codec.Codec) *cobra.Command { - cmd := &cobra.Command{ - Use: "recv-packet [/path/to/packet-data.json] [/path/to/proof.json] [height]", - Short: "Creates and sends a SendPacket message", - Args: cobra.ExactArgs(3), - RunE: func(cmd *cobra.Command, args []string) error { - txBldr := auth.NewTxBuilderFromCLI().WithTxEncoder(utils.GetTxEncoder(cdc)) - cliCtx := context.NewCLIContext().WithCodec(cdc).WithBroadcastMode(flags.BroadcastBlock) - - var packet channel.Packet - if err := cdc.UnmarshalJSON([]byte(args[0]), &packet); err != nil { - fmt.Fprintf(os.Stderr, "failed to unmarshall input into struct, checking for file...\n") - contents, err := ioutil.ReadFile(args[0]) - if err != nil { - return fmt.Errorf("error opening packet file: %v", err) - } - - if err := cdc.UnmarshalJSON(contents, packet); err != nil { - return fmt.Errorf("error unmarshalling packet file: %v", err) - } - } - - var proof commitment.Proof - if err := cdc.UnmarshalJSON([]byte(args[1]), &proof); err != nil { - fmt.Fprintf(os.Stderr, "failed to unmarshall input into struct, checking for file...\n") - contents, err := ioutil.ReadFile(args[1]) - if err != nil { - return fmt.Errorf("error opening proofs file: %v", err) - } - if err := cdc.UnmarshalJSON(contents, &proof); err != nil { - return fmt.Errorf("error unmarshalling proofs file: %v", err) - } - } - - height, err := strconv.ParseUint(args[2], 10, 64) - if err != nil { - return fmt.Errorf("error height: %v", err) - } - - msg := types.NewMsgRecvPacket(packet, []commitment.Proof{proof}, height, cliCtx.GetFromAddress()) - if err := msg.ValidateBasic(); err != nil { - return err - } - - return utils.GenerateOrBroadcastMsgs(cliCtx, txBldr, []sdk.Msg{msg}) - }, - } - - cmd = client.PostCommands(cmd)[0] - return cmd -} diff --git a/x/ibc/mock/bank/handler.go b/x/ibc/mock/bank/handler.go deleted file mode 100644 index 2ed32c4c837e..000000000000 --- a/x/ibc/mock/bank/handler.go +++ /dev/null @@ -1,26 +0,0 @@ -package mockbank - -import ( - sdk "github.com/cosmos/cosmos-sdk/types" -) - -func NewHandler(k Keeper) sdk.Handler { - return func(ctx sdk.Context, msg sdk.Msg) sdk.Result { - switch msg := msg.(type) { - case MsgRecvPacket: - return handleMsgRecvPacket(ctx, k, msg) - default: - return sdk.ErrUnknownRequest("failed to parse message").Result() - } - } -} - -// handleMsgRecvPacket defines the sdk.Handler for MsgRecvPacket -func handleMsgRecvPacket(ctx sdk.Context, k Keeper, msg MsgRecvPacket) (res sdk.Result) { - err := k.ReceivePacket(ctx, msg.Packet, msg.Proofs[0], msg.Height) - if err != nil { - return sdk.ResultFromError(err) - } - - return sdk.Result{Events: ctx.EventManager().Events()} -} diff --git a/x/ibc/mock/bank/internal/keeper/keeper.go b/x/ibc/mock/bank/internal/keeper/keeper.go deleted file mode 100644 index bdcabcf53e94..000000000000 --- a/x/ibc/mock/bank/internal/keeper/keeper.go +++ /dev/null @@ -1,44 +0,0 @@ -package keeper - -import ( - "github.com/cosmos/cosmos-sdk/codec" - sdk "github.com/cosmos/cosmos-sdk/types" - channelexported "github.com/cosmos/cosmos-sdk/x/ibc/04-channel/exported" - transfer "github.com/cosmos/cosmos-sdk/x/ibc/20-transfer" - commitment "github.com/cosmos/cosmos-sdk/x/ibc/23-commitment" - "github.com/cosmos/cosmos-sdk/x/ibc/mock/bank/internal/types" -) - -type Keeper struct { - cdc *codec.Codec - key sdk.StoreKey - ck types.ChannelKeeper - bk types.IbcBankKeeper -} - -func NewKeeper(cdc *codec.Codec, key sdk.StoreKey, ck types.ChannelKeeper, bk types.IbcBankKeeper) Keeper { - return Keeper{ - cdc: cdc, - key: key, - ck: ck, - bk: bk, - } -} - -// ReceivePacket handles receiving packet -func (k Keeper) ReceivePacket(ctx sdk.Context, packet channelexported.PacketI, proof commitment.ProofI, height uint64) error { - _, err := k.ck.RecvPacket(ctx, packet, proof, height, nil, k.key) - if err != nil { - return sdk.NewError(sdk.CodespaceType(types.DefaultCodespace), types.CodeErrReceivePacket, "failed to receive packet") - } - - // only process ICS20 token transfer packet data now, - // that should be done in routing module. - var data transfer.PacketData - err = data.UnmarshalJSON(packet.Data()) - if err != nil { - return sdk.NewError(sdk.CodespaceType(types.DefaultCodespace), types.CodeInvalidPacketData, "invalid packet data") - } - - return k.bk.ReceiveTransfer(ctx, packet.SourcePort(), packet.SourceChannel(), packet.DestPort(), packet.DestChannel(), data) -} diff --git a/x/ibc/mock/bank/internal/types/codec.go b/x/ibc/mock/bank/internal/types/codec.go deleted file mode 100644 index ba05f5bb00f7..000000000000 --- a/x/ibc/mock/bank/internal/types/codec.go +++ /dev/null @@ -1,19 +0,0 @@ -package types - -import ( - "github.com/cosmos/cosmos-sdk/codec" - channel "github.com/cosmos/cosmos-sdk/x/ibc/04-channel" - commitment "github.com/cosmos/cosmos-sdk/x/ibc/23-commitment" -) - -func RegisterCodec(cdc *codec.Codec) { - cdc.RegisterConcrete(MsgRecvPacket{}, "ibcmockbank/MsgRecvPacket", nil) -} - -var ModuleCdc = codec.New() - -func init() { - RegisterCodec(ModuleCdc) - channel.RegisterCodec(ModuleCdc) - commitment.RegisterCodec(ModuleCdc) -} diff --git a/x/ibc/mock/bank/internal/types/errors.go b/x/ibc/mock/bank/internal/types/errors.go deleted file mode 100644 index 09cfc89784ff..000000000000 --- a/x/ibc/mock/bank/internal/types/errors.go +++ /dev/null @@ -1,15 +0,0 @@ -package types - -import ( - sdk "github.com/cosmos/cosmos-sdk/types" -) - -// ibcmockbank errors reserve 100 ~ 199. -const ( - DefaultCodespace sdk.CodespaceType = ModuleName - - CodeInvalidAddress sdk.CodeType = 101 - CodeErrReceivePacket sdk.CodeType = 102 - CodeProofMissing sdk.CodeType = 103 - CodeInvalidPacketData sdk.CodeType = 104 -) diff --git a/x/ibc/mock/bank/internal/types/expected_keepers.go b/x/ibc/mock/bank/internal/types/expected_keepers.go deleted file mode 100644 index 4c6e8e149169..000000000000 --- a/x/ibc/mock/bank/internal/types/expected_keepers.go +++ /dev/null @@ -1,25 +0,0 @@ -package types - -import ( - sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/cosmos/cosmos-sdk/x/ibc/04-channel/exported" - transfer "github.com/cosmos/cosmos-sdk/x/ibc/20-transfer" - commitment "github.com/cosmos/cosmos-sdk/x/ibc/23-commitment" -) - -// IbcBankKeeper expected IBC transfer keeper -type IbcBankKeeper interface { - ReceiveTransfer(ctx sdk.Context, srcPort, srcChannel, destPort, destChannel string, data transfer.PacketData) error -} - -// ChannelKeeper expected IBC channel keeper -type ChannelKeeper interface { - RecvPacket( - ctx sdk.Context, - packet exported.PacketI, - proof commitment.ProofI, - proofHeight uint64, - acknowledgement []byte, - portCapability sdk.CapabilityKey, - ) (exported.PacketI, error) -} diff --git a/x/ibc/mock/bank/internal/types/keys.go b/x/ibc/mock/bank/internal/types/keys.go deleted file mode 100644 index 2ffaa38eaa29..000000000000 --- a/x/ibc/mock/bank/internal/types/keys.go +++ /dev/null @@ -1,15 +0,0 @@ -package types - -const ( - // ModuleName is the name of the module - ModuleName = "ibcmockbank" - - // StoreKey is the string store representation - StoreKey = ModuleName - - // QuerierRoute is the querier route for the module - QuerierRoute = ModuleName - - // RouterKey is the msg router key for the module - RouterKey = ModuleName -) diff --git a/x/ibc/mock/bank/internal/types/msgs.go b/x/ibc/mock/bank/internal/types/msgs.go deleted file mode 100644 index 61d414591e34..000000000000 --- a/x/ibc/mock/bank/internal/types/msgs.go +++ /dev/null @@ -1,61 +0,0 @@ -package types - -import ( - sdk "github.com/cosmos/cosmos-sdk/types" - channel "github.com/cosmos/cosmos-sdk/x/ibc/04-channel/exported" - commitment "github.com/cosmos/cosmos-sdk/x/ibc/23-commitment" -) - -type MsgRecvPacket struct { - Packet channel.PacketI `json:"packet" yaml:"packet"` - Proofs []commitment.Proof `json:"proofs" yaml:"proofs"` - Height uint64 `json:"height" yaml:"height"` - Signer sdk.AccAddress `json:"signer" yaml:"signer"` -} - -// NewMsgRecvPacket creates a new MsgRecvPacket instance -func NewMsgRecvPacket(packet channel.PacketI, proofs []commitment.Proof, height uint64, signer sdk.AccAddress) MsgRecvPacket { - return MsgRecvPacket{ - Packet: packet, - Proofs: proofs, - Height: height, - Signer: signer, - } -} - -// Route implements sdk.Msg -func (MsgRecvPacket) Route() string { - return RouterKey -} - -// Type implements sdk.Msg -func (MsgRecvPacket) Type() string { - return "recv_packet" -} - -// ValidateBasic implements sdk.Msg -func (msg MsgRecvPacket) ValidateBasic() sdk.Error { - if msg.Proofs == nil { - return sdk.NewError(sdk.CodespaceType(DefaultCodespace), CodeProofMissing, "proof missing") - } - - if msg.Signer.Empty() { - return sdk.NewError(sdk.CodespaceType(DefaultCodespace), CodeInvalidAddress, "invalid signer") - } - - if err := msg.Packet.ValidateBasic(); err != nil { - return err - } - - return nil -} - -// GetSignBytes implements sdk.Msg -func (msg MsgRecvPacket) GetSignBytes() []byte { - return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(msg)) -} - -// GetSigners implements sdk.Msg -func (msg MsgRecvPacket) GetSigners() []sdk.AccAddress { - return []sdk.AccAddress{msg.Signer} -} diff --git a/x/ibc/mock/bank/module.go b/x/ibc/mock/bank/module.go deleted file mode 100644 index e033d1de5666..000000000000 --- a/x/ibc/mock/bank/module.go +++ /dev/null @@ -1,110 +0,0 @@ -package mockbank - -import ( - "encoding/json" - - "github.com/gorilla/mux" - "github.com/spf13/cobra" - - abci "github.com/tendermint/tendermint/abci/types" - - "github.com/cosmos/cosmos-sdk/client/context" - "github.com/cosmos/cosmos-sdk/codec" - sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/cosmos/cosmos-sdk/types/module" - "github.com/cosmos/cosmos-sdk/x/ibc/mock/bank/client/cli" -) - -var ( - _ module.AppModule = AppModule{} - _ module.AppModuleBasic = AppModuleBasic{} -) - -type AppModuleBasic struct{} - -var _ module.AppModuleBasic = AppModuleBasic{} - -func (AppModuleBasic) Name() string { - return ModuleName -} - -func (AppModuleBasic) RegisterCodec(cdc *codec.Codec) { - RegisterCdc(cdc) -} - -func (AppModuleBasic) DefaultGenesis() json.RawMessage { - return nil -} - -func (AppModuleBasic) ValidateGenesis(bz json.RawMessage) error { - return nil -} - -func (AppModuleBasic) RegisterRESTRoutes(ctx context.CLIContext, rtr *mux.Router) { - //noop -} - -func (AppModuleBasic) GetTxCmd(cdc *codec.Codec) *cobra.Command { - return cli.GetTxCmd(cdc) -} - -func (AppModuleBasic) GetQueryCmd(cdc *codec.Codec) *cobra.Command { - return nil -} - -type AppModule struct { - AppModuleBasic - k Keeper -} - -func NewAppModule(k Keeper) AppModule { - return AppModule{ - AppModuleBasic: AppModuleBasic{}, - k: k, - } -} - -func (AppModule) RegisterInvariants(ir sdk.InvariantRegistry) { - -} - -func (AppModule) Name() string { - return ModuleName -} - -func (AppModule) Route() string { - return ModuleName -} - -func (am AppModule) NewHandler() sdk.Handler { - return NewHandler(am.k) -} - -func (am AppModule) QuerierRoute() string { - return ModuleName -} - -func (am AppModule) NewQuerierHandler() sdk.Querier { - return nil -} - -func (am AppModule) InitGenesis(ctx sdk.Context, data json.RawMessage) []abci.ValidatorUpdate { - return []abci.ValidatorUpdate{} -} - -func (am AppModule) ExportGenesis(ctx sdk.Context) json.RawMessage { - return nil -} - -func (am AppModule) BeginBlock(ctx sdk.Context, req abci.RequestBeginBlock) { - -} - -func (am AppModule) EndBlock(ctx sdk.Context, req abci.RequestEndBlock) []abci.ValidatorUpdate { - return []abci.ValidatorUpdate{} -} - -// GetTxCmd returns the root tx command for the ibc-channel module. -func GetTxCmd(cdc *codec.Codec) *cobra.Command { - return cli.GetTxCmd(cdc) -}