From 52d11acb45f83b6742d1a173a078cfb59a92ba21 Mon Sep 17 00:00:00 2001 From: Segue Date: Mon, 8 Jun 2020 14:19:59 +0800 Subject: [PATCH] R4R: Fix bug of unordered channel (#6337) * fix unordered * resolve conflicts --- x/ibc/04-channel/keeper/packet.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/x/ibc/04-channel/keeper/packet.go b/x/ibc/04-channel/keeper/packet.go index 8b1cad2111..e14e51579a 100644 --- a/x/ibc/04-channel/keeper/packet.go +++ b/x/ibc/04-channel/keeper/packet.go @@ -246,6 +246,13 @@ func (k Keeper) PacketExecuted( } if len(acknowledgement) > 0 || channel.Ordering == types.UNORDERED { + if _, found := k.GetPacketAcknowledgement(ctx, packet.GetDestPort(), packet.GetDestChannel(), packet.GetSequence()); found { + return sdkerrors.Wrapf( + types.ErrInvalidPacket, + "packet sequence (%d) already has been received", packet.GetSequence(), + ) + } + k.SetPacketAcknowledgement( ctx, packet.GetDestPort(), packet.GetDestChannel(), packet.GetSequence(), types.CommitAcknowledgement(acknowledgement),