diff --git a/modules/core/04-channel/v2/types/msgs_test.go b/modules/core/04-channel/v2/types/msgs_test.go index 2e90f34a5ea..da7779f0602 100644 --- a/modules/core/04-channel/v2/types/msgs_test.go +++ b/modules/core/04-channel/v2/types/msgs_test.go @@ -175,6 +175,13 @@ func (s *TypesTestSuite) TestMsgSendPacketValidateBasic() { }, { name: "failure: invalid length for payload", + malleate: func() { + msg.Payloads = []types.Payload{{}, {}} + }, + expError: types.ErrInvalidPayload, + }, + { + name: "failure: invalid packetdata", malleate: func() { msg.Payloads = []types.Payload{} }, @@ -241,6 +248,13 @@ func (s *TypesTestSuite) TestMsgRecvPacketValidateBasic() { }, expError: commitmenttypes.ErrInvalidProof, }, + { + name: "failure: invalid length for packet payloads", + malleate: func() { + msg.Packet.Payloads = []types.Payload{{}, {}} + }, + expError: types.ErrInvalidPacket, + }, { name: "failure: invalid signer", malleate: func() { @@ -288,6 +302,13 @@ func (s *TypesTestSuite) TestMsgAcknowledge_ValidateBasic() { }, expError: commitmenttypes.ErrInvalidProof, }, + { + name: "failure: invalid length for packet payloads", + malleate: func() { + msg.Packet.Payloads = []types.Payload{{}, {}} + }, + expError: types.ErrInvalidPacket, + }, { name: "failure: invalid signer", malleate: func() { @@ -345,6 +366,13 @@ func (s *TypesTestSuite) TestMsgTimeoutValidateBasic() { }, expError: ibcerrors.ErrInvalidAddress, }, + { + name: "failure: invalid length for packet payloads", + malleate: func() { + msg.Packet.Payloads = []types.Payload{{}, {}} + }, + expError: types.ErrInvalidPacket, + }, { name: "failure: invalid packet", malleate: func() { diff --git a/modules/core/04-channel/v2/types/packet.go b/modules/core/04-channel/v2/types/packet.go index 8c602162fc9..7be9e0b326a 100644 --- a/modules/core/04-channel/v2/types/packet.go +++ b/modules/core/04-channel/v2/types/packet.go @@ -32,7 +32,7 @@ func NewPayload(sourcePort, destPort, version, encoding string, value []byte) Pa // ValidateBasic validates that a Packet satisfies the basic requirements. func (p Packet) ValidateBasic() error { - if len(p.Payloads) == 0 { + if len(p.Payloads) != 1 { return errorsmod.Wrap(ErrInvalidPacket, "payloads must not be empty") }