From f61ad7d910bc990f2b69ca843d2947e5ebc88686 Mon Sep 17 00:00:00 2001 From: Sean King Date: Mon, 17 Jan 2022 15:58:36 +0100 Subject: [PATCH 1/2] feat: adding Route, Type, GetSignBytes for all messages --- modules/apps/29-fee/types/msgs.go | 47 +++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/modules/apps/29-fee/types/msgs.go b/modules/apps/29-fee/types/msgs.go index 926da90de4e..19a5a289120 100644 --- a/modules/apps/29-fee/types/msgs.go +++ b/modules/apps/29-fee/types/msgs.go @@ -11,6 +11,8 @@ import ( // msg types const ( TypeMsgRegisterCounterpartyAddress = "registerCounterpartyAddress" + TypeMsgPayPacketFee = "payPacketFee" + TypeMsgPayPacketFeeAsync = "payPacketFeeAsync" ) // NewMsgRegisterCounterpartyAddress creates a new instance of MsgRegisterCounterpartyAddress @@ -44,6 +46,21 @@ func (msg MsgRegisterCounterpartyAddress) GetSigners() []sdk.AccAddress { return []sdk.AccAddress{signer} } +// Route implements sdk.Msg +func (msg MsgRegisterCounterpartyAddress) Route() string { + return RouterKey +} + +// Type implements sdk.Msg +func (msg MsgRegisterCounterpartyAddress) Type() string { + return TypeMsgRegisterCounterpartyAddress +} + +// GetSignBytes implements sdk.Msg. +func (msg MsgRegisterCounterpartyAddress) GetSignBytes() []byte { + return sdk.MustSortJSON(AminoCdc.MustMarshalJSON(&msg)) +} + // NewMsgPayPacketFee creates a new instance of MsgPayPacketFee func NewMsgPayPacketFee(fee Fee, sourcePortId, sourceChannelId, signer string, relayers []string) *MsgPayPacketFee { return &MsgPayPacketFee{ @@ -102,6 +119,21 @@ func (msg MsgPayPacketFee) GetSigners() []sdk.AccAddress { return []sdk.AccAddress{signer} } +// Route implements sdk.Msg +func (msg MsgPayPacketFee) Route() string { + return RouterKey +} + +// Type implements sdk.Msg +func (msg MsgPayPacketFee) Type() string { + return TypeMsgPayPacketFee +} + +// GetSignBytes implements sdk.Msg. +func (msg MsgPayPacketFee) GetSignBytes() []byte { + return sdk.MustSortJSON(AminoCdc.MustMarshalJSON(&msg)) +} + // NewMsgPayPacketAsync creates a new instance of MsgPayPacketFee func NewMsgPayPacketFeeAsync(identifiedPacketFee IdentifiedPacketFee) *MsgPayPacketFeeAsync { return &MsgPayPacketFeeAsync{ @@ -135,6 +167,21 @@ func (msg MsgPayPacketFeeAsync) GetSigners() []sdk.AccAddress { return []sdk.AccAddress{signer} } +// Route implements sdk.Msg +func (msg MsgPayPacketFeeAsync) Route() string { + return RouterKey +} + +// Type implements sdk.Msg +func (msg MsgPayPacketFeeAsync) Type() string { + return TypeMsgPayPacketFeeAsync +} + +// GetSignBytes implements sdk.Msg. +func (msg MsgPayPacketFeeAsync) GetSignBytes() []byte { + return sdk.MustSortJSON(AminoCdc.MustMarshalJSON(&msg)) +} + func NewIdentifiedPacketFee(packetId *channeltypes.PacketId, fee Fee, refundAddr string, relayers []string) *IdentifiedPacketFee { return &IdentifiedPacketFee{ PacketId: packetId, From 0e155c0589c62f0b87726903ac0f9b49998cbcde Mon Sep 17 00:00:00 2001 From: Sean King Date: Fri, 21 Jan 2022 16:05:49 +0100 Subject: [PATCH 2/2] tests: adding tests for Route/Type/GetSignBytes --- modules/apps/29-fee/types/msgs.go | 20 +----- modules/apps/29-fee/types/msgs_test.go | 94 ++++++++++++++++++++++++++ 2 files changed, 96 insertions(+), 18 deletions(-) diff --git a/modules/apps/29-fee/types/msgs.go b/modules/apps/29-fee/types/msgs.go index 19a5a289120..0770584e828 100644 --- a/modules/apps/29-fee/types/msgs.go +++ b/modules/apps/29-fee/types/msgs.go @@ -10,9 +10,8 @@ import ( // msg types const ( - TypeMsgRegisterCounterpartyAddress = "registerCounterpartyAddress" - TypeMsgPayPacketFee = "payPacketFee" - TypeMsgPayPacketFeeAsync = "payPacketFeeAsync" + TypeMsgPayPacketFee = "payPacketFee" + TypeMsgPayPacketFeeAsync = "payPacketFeeAsync" ) // NewMsgRegisterCounterpartyAddress creates a new instance of MsgRegisterCounterpartyAddress @@ -46,21 +45,6 @@ func (msg MsgRegisterCounterpartyAddress) GetSigners() []sdk.AccAddress { return []sdk.AccAddress{signer} } -// Route implements sdk.Msg -func (msg MsgRegisterCounterpartyAddress) Route() string { - return RouterKey -} - -// Type implements sdk.Msg -func (msg MsgRegisterCounterpartyAddress) Type() string { - return TypeMsgRegisterCounterpartyAddress -} - -// GetSignBytes implements sdk.Msg. -func (msg MsgRegisterCounterpartyAddress) GetSignBytes() []byte { - return sdk.MustSortJSON(AminoCdc.MustMarshalJSON(&msg)) -} - // NewMsgPayPacketFee creates a new instance of MsgPayPacketFee func NewMsgPayPacketFee(fee Fee, sourcePortId, sourceChannelId, signer string, relayers []string) *MsgPayPacketFee { return &MsgPayPacketFee{ diff --git a/modules/apps/29-fee/types/msgs_test.go b/modules/apps/29-fee/types/msgs_test.go index e6386dc91d4..d8c86216773 100644 --- a/modules/apps/29-fee/types/msgs_test.go +++ b/modules/apps/29-fee/types/msgs_test.go @@ -195,6 +195,50 @@ func TestPayPacketFeeGetSigners(t *testing.T) { require.Equal(t, []sdk.AccAddress{addr}, res) } +// TestMsgPayPacketFeeRoute tests Route for MsgPayPacketFee +func TestMsgPayPacketFeeRoute(t *testing.T) { + addr := sdk.AccAddress(secp256k1.GenPrivKey().PubKey().Address()) + + // build message + signer := addr.String() + channelID := validChannelID + portID := validPortID + fee := Fee{validCoins, validCoins, validCoins} + msg := NewMsgPayPacketFee(fee, portID, channelID, signer, nil) + + require.Equal(t, RouterKey, msg.Route()) +} + +// TestMsgPayPacketFeeType tests Type for MsgPayPacketFee +func TestMsgPayPacketFeeType(t *testing.T) { + addr := sdk.AccAddress(secp256k1.GenPrivKey().PubKey().Address()) + + // build message + signer := addr.String() + channelID := validChannelID + portID := validPortID + fee := Fee{validCoins, validCoins, validCoins} + msg := NewMsgPayPacketFee(fee, portID, channelID, signer, nil) + + require.Equal(t, "payPacketFee", msg.Type()) +} + +// TestMsgPayPacketFeeGetSignBytes tests that GetSignBytes does not panic +func TestMsgPayPacketFeeGetSignBytes(t *testing.T) { + addr := sdk.AccAddress(secp256k1.GenPrivKey().PubKey().Address()) + + // build message + signer := addr.String() + channelID := validChannelID + portID := validPortID + fee := Fee{validCoins, validCoins, validCoins} + msg := NewMsgPayPacketFee(fee, portID, channelID, signer, nil) + + require.NotPanics(t, func() { + _ = msg.GetSignBytes() + }) +} + // TestMsgPayPacketFeeAsyncValidation tests ValidateBasic func TestMsgPayPacketFeeAsyncValidation(t *testing.T) { var ( @@ -350,3 +394,53 @@ func TestPayPacketFeeAsyncGetSigners(t *testing.T) { require.Equal(t, []sdk.AccAddress{addr}, res) } + +// TestMsgPayPacketFeeAsyncRoute tests Route for MsgPayPacketFeeAsync +func TestMsgPayPacketFeeAsyncRoute(t *testing.T) { + addr := sdk.AccAddress(secp256k1.GenPrivKey().PubKey().Address()) + + // build message + channelID := validChannelID + portID := validPortID + fee := Fee{validCoins, validCoins, validCoins} + seq := uint64(1) + packetId := &channeltypes.PacketId{ChannelId: channelID, PortId: portID, Sequence: seq} + identifiedPacketFee := IdentifiedPacketFee{PacketId: packetId, Fee: fee, RefundAddress: addr.String(), Relayers: nil} + msg := NewMsgPayPacketFeeAsync(identifiedPacketFee) + + require.Equal(t, RouterKey, msg.Route()) +} + +// TestMsgPayPacketFeeAsyncType tests Type for MsgPayPacketFeeAsync +func TestMsgPayPacketFeeAsyncType(t *testing.T) { + addr := sdk.AccAddress(secp256k1.GenPrivKey().PubKey().Address()) + + // build message + channelID := validChannelID + portID := validPortID + fee := Fee{validCoins, validCoins, validCoins} + seq := uint64(1) + packetId := &channeltypes.PacketId{ChannelId: channelID, PortId: portID, Sequence: seq} + identifiedPacketFee := IdentifiedPacketFee{PacketId: packetId, Fee: fee, RefundAddress: addr.String(), Relayers: nil} + msg := NewMsgPayPacketFeeAsync(identifiedPacketFee) + + require.Equal(t, "payPacketFeeAsync", msg.Type()) +} + +// TestMsgPayPacketFeeAsyncGetSignBytes tests that GetSignBytes does not panic +func TestMsgPayPacketFeeAsyncGetSignBytes(t *testing.T) { + addr := sdk.AccAddress(secp256k1.GenPrivKey().PubKey().Address()) + + // build message + channelID := validChannelID + portID := validPortID + fee := Fee{validCoins, validCoins, validCoins} + seq := uint64(1) + packetId := &channeltypes.PacketId{ChannelId: channelID, PortId: portID, Sequence: seq} + identifiedPacketFee := IdentifiedPacketFee{PacketId: packetId, Fee: fee, RefundAddress: addr.String(), Relayers: nil} + msg := NewMsgPayPacketFeeAsync(identifiedPacketFee) + + require.NotPanics(t, func() { + _ = msg.GetSignBytes() + }) +}