From ec02b5fd3382847230f4003a0420db157c557821 Mon Sep 17 00:00:00 2001 From: viveksharmapoudel Date: Tue, 4 Jul 2023 14:37:43 +0545 Subject: [PATCH 1/2] fix: remove commitmentprefix from icon (#98) Co-authored-by: izyak <76203436+izyak@users.noreply.github.com> --- relayer/chains/archway/tx.go | 2 +- relayer/chains/icon/provider.go | 5 +---- relayer/chains/icon/provider_test.go | 5 ++++- relayer/chains/icon/tx.go | 2 +- relayer/processor/types_internal.go | 2 +- relayer/provider/provider.go | 1 + 6 files changed, 9 insertions(+), 8 deletions(-) diff --git a/relayer/chains/archway/tx.go b/relayer/chains/archway/tx.go index bf09b55d5..0dce112fe 100644 --- a/relayer/chains/archway/tx.go +++ b/relayer/chains/archway/tx.go @@ -412,7 +412,7 @@ func (ap *ArchwayProvider) MsgConnectionOpenTry(msgOpenInit provider.ConnectionI counterparty := conntypes.Counterparty{ ClientId: msgOpenInit.ClientID, ConnectionId: msgOpenInit.ConnID, - Prefix: defaultChainPrefix, + Prefix: msgOpenInit.CommitmentPrefix, } params := &conntypes.MsgConnectionOpenTry{ diff --git a/relayer/chains/icon/provider.go b/relayer/chains/icon/provider.go index d1afed8f7..74da791bb 100644 --- a/relayer/chains/icon/provider.go +++ b/relayer/chains/icon/provider.go @@ -37,9 +37,6 @@ var ( // Default IBC settings var ( - defaultChainPrefix = icon.MerklePrefix{ - KeyPrefix: []byte("commitments"), - } defaultDelayPeriod = types.NewHexInt(0) DefaultIBCVersionIdentifier = "1" @@ -459,7 +456,7 @@ func (icp *IconProvider) ProviderConfig() provider.ProviderConfig { } func (icp *IconProvider) CommitmentPrefix() commitmenttypes.MerklePrefix { - return commitmenttypes.NewMerklePrefix([]byte("commitments")) + return commitmenttypes.NewMerklePrefix(nil) } func (icp *IconProvider) Key() string { diff --git a/relayer/chains/icon/provider_test.go b/relayer/chains/icon/provider_test.go index 7bc8d94be..e32e7d2cc 100644 --- a/relayer/chains/icon/provider_test.go +++ b/relayer/chains/icon/provider_test.go @@ -12,6 +12,7 @@ import ( "github.com/cosmos/relayer/v2/relayer/chains/icon/types" "github.com/cosmos/relayer/v2/relayer/common" + "github.com/icon-project/IBC-Integration/libraries/go/common/icon" icn "github.com/icon-project/IBC-Integration/libraries/go/common/icon" "github.com/stretchr/testify/assert" @@ -121,7 +122,9 @@ func TestMsgOpenTryProof(t *testing.T) { Counterparty: &icn.Counterparty{ ClientId: msgOpenTry.ClientId, ConnectionId: "", - Prefix: &defaultChainPrefix, + Prefix: &icon.MerklePrefix{ + KeyPrefix: []byte("commitments"), + }, }, } key = common.GetConnectionCommitmentKey("connection-0") diff --git a/relayer/chains/icon/tx.go b/relayer/chains/icon/tx.go index ea53dc847..abea8b860 100644 --- a/relayer/chains/icon/tx.go +++ b/relayer/chains/icon/tx.go @@ -218,7 +218,7 @@ func (icp *IconProvider) MsgConnectionOpenTry(msgOpenInit provider.ConnectionInf cc := &icon.Counterparty{ ClientId: msgOpenInit.ClientID, ConnectionId: msgOpenInit.ConnID, - Prefix: (*icon.MerklePrefix)(&msgOpenInit.CounterpartyCommitmentPrefix), + Prefix: (*icon.MerklePrefix)(&msgOpenInit.CommitmentPrefix), } ccEncode, err := proto.Marshal(cc) diff --git a/relayer/processor/types_internal.go b/relayer/processor/types_internal.go index a1493c443..5af8336ad 100644 --- a/relayer/processor/types_internal.go +++ b/relayer/processor/types_internal.go @@ -243,7 +243,7 @@ func (msg connectionIBCMessage) assemble( msg.info.CounterpartyCommitmentPrefix = src.chainProvider.CommitmentPrefix() assembleMessage = dst.chainProvider.MsgConnectionOpenInit case conntypes.EventTypeConnectionOpenTry: - msg.info.CounterpartyCommitmentPrefix = src.chainProvider.CommitmentPrefix() + msg.info.CommitmentPrefix = src.chainProvider.CommitmentPrefix() connProof = src.chainProvider.ConnectionHandshakeProof assembleMessage = dst.chainProvider.MsgConnectionOpenTry case conntypes.EventTypeConnectionOpenAck: diff --git a/relayer/provider/provider.go b/relayer/provider/provider.go index 9aa8966f0..5facc342e 100644 --- a/relayer/provider/provider.go +++ b/relayer/provider/provider.go @@ -116,6 +116,7 @@ type ConnectionInfo struct { Height uint64 ConnID string ClientID string + CommitmentPrefix commitmenttypes.MerklePrefix CounterpartyClientID string CounterpartyConnID string CounterpartyCommitmentPrefix commitmenttypes.MerklePrefix From 7cc09d500484c68fb9b2c1f922f4903bcbadb11c Mon Sep 17 00:00:00 2001 From: viveksharmapoudel Date: Tue, 4 Jul 2023 14:38:25 +0545 Subject: [PATCH 2/2] fix: fetch proof from msg height not from latest height (#100) * fix: fetch proof from msg height not from latest height * chore: archway module handle res nil condition in waitfortxresult --------- Co-authored-by: izyak <76203436+izyak@users.noreply.github.com> --- relayer/chains/archway/tx.go | 3 +++ relayer/chains/icon/provider.go | 13 ++++++------- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/relayer/chains/archway/tx.go b/relayer/chains/archway/tx.go index 0dce112fe..ab354b5d2 100644 --- a/relayer/chains/archway/tx.go +++ b/relayer/chains/archway/tx.go @@ -1095,6 +1095,9 @@ func (ap *ArchwayProvider) waitForTxResult( return nil, fmt.Errorf("timed out after: %d; %s", waitTimeout, ErrTimeoutAfterWaitingForTxBroadcast) case <-time.After(time.Millisecond * 100): res, err := ap.RPCClient.Tx(ctx, txHash, false) + if err == nil && res == nil { + continue + } if err == nil { return ap.mkTxResult(res) } diff --git a/relayer/chains/icon/provider.go b/relayer/chains/icon/provider.go index 74da791bb..9b42c1031 100644 --- a/relayer/chains/icon/provider.go +++ b/relayer/chains/icon/provider.go @@ -263,8 +263,7 @@ func (icp *IconProvider) NewClientState( } func (icp *IconProvider) ConnectionHandshakeProof(ctx context.Context, msgOpenInit provider.ConnectionInfo, height uint64) (provider.ConnectionProof, error) { - - clientState, clientStateProof, consensusStateProof, connStateProof, proofHeight, err := icp.GenerateConnHandshakeProof(ctx, int64(height), msgOpenInit.ClientID, msgOpenInit.ConnID) + clientState, clientStateProof, consensusStateProof, connStateProof, proofHeight, err := icp.GenerateConnHandshakeProof(ctx, int64(msgOpenInit.Height), msgOpenInit.ClientID, msgOpenInit.ConnID) if err != nil { return provider.ConnectionProof{}, err } @@ -296,7 +295,7 @@ func (icp *IconProvider) ConnectionProof(ctx context.Context, msgOpenAck provide } func (icp *IconProvider) ChannelProof(ctx context.Context, msg provider.ChannelInfo, height uint64) (provider.ChannelProof, error) { - channelResult, err := icp.QueryChannel(ctx, int64(height), msg.ChannelID, msg.PortID) + channelResult, err := icp.QueryChannel(ctx, int64(msg.Height), msg.ChannelID, msg.PortID) if err != nil { return provider.ChannelProof{}, nil } @@ -338,7 +337,7 @@ func (icp *IconProvider) ValidatePacket(msgTransfer provider.PacketInfo, latestB func (icp *IconProvider) PacketCommitment(ctx context.Context, msgTransfer provider.PacketInfo, height uint64) (provider.PacketProof, error) { packetCommitmentResponse, err := icp.QueryPacketCommitment( - ctx, int64(height), msgTransfer.SourceChannel, msgTransfer.SourcePort, msgTransfer.Sequence, + ctx, int64(msgTransfer.Height), msgTransfer.SourceChannel, msgTransfer.SourcePort, msgTransfer.Sequence, ) if err != nil { @@ -351,7 +350,7 @@ func (icp *IconProvider) PacketCommitment(ctx context.Context, msgTransfer provi } func (icp *IconProvider) PacketAcknowledgement(ctx context.Context, msgRecvPacket provider.PacketInfo, height uint64) (provider.PacketProof, error) { - packetAckResponse, err := icp.QueryPacketAcknowledgement(ctx, int64(height), msgRecvPacket.SourceChannel, msgRecvPacket.SourcePort, msgRecvPacket.Sequence) + packetAckResponse, err := icp.QueryPacketAcknowledgement(ctx, int64(msgRecvPacket.Height), msgRecvPacket.SourceChannel, msgRecvPacket.SourcePort, msgRecvPacket.Sequence) if err != nil { return provider.PacketProof{}, nil } @@ -363,7 +362,7 @@ func (icp *IconProvider) PacketAcknowledgement(ctx context.Context, msgRecvPacke } func (icp *IconProvider) PacketReceipt(ctx context.Context, msgTransfer provider.PacketInfo, height uint64) (provider.PacketProof, error) { - packetReceiptResponse, err := icp.QueryPacketReceipt(ctx, int64(height), msgTransfer.SourceChannel, msgTransfer.SourcePort, msgTransfer.Sequence) + packetReceiptResponse, err := icp.QueryPacketReceipt(ctx, int64(msgTransfer.Height), msgTransfer.SourceChannel, msgTransfer.SourcePort, msgTransfer.Sequence) if err != nil { return provider.PacketProof{}, nil @@ -376,7 +375,7 @@ func (icp *IconProvider) PacketReceipt(ctx context.Context, msgTransfer provider } func (icp *IconProvider) NextSeqRecv(ctx context.Context, msgTransfer provider.PacketInfo, height uint64) (provider.PacketProof, error) { - nextSeqRecvResponse, err := icp.QueryNextSeqRecv(ctx, int64(height), msgTransfer.DestChannel, msgTransfer.DestPort) + nextSeqRecvResponse, err := icp.QueryNextSeqRecv(ctx, int64(msgTransfer.Height), msgTransfer.DestChannel, msgTransfer.DestPort) if err != nil { return provider.PacketProof{}, nil }