From 33e466eb76d4930a61ed6f4ff983f7a98b9350dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Colin=20Axn=C3=A9r?= <25233464+colin-axner@users.noreply.github.com> Date: Tue, 29 Aug 2023 17:48:20 +0200 Subject: [PATCH] refactor: use legacy approach first, fallback onto new parsing approach --- relayer/chains/cosmos/tx.go | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/relayer/chains/cosmos/tx.go b/relayer/chains/cosmos/tx.go index d423e3a16..44e002889 100644 --- a/relayer/chains/cosmos/tx.go +++ b/relayer/chains/cosmos/tx.go @@ -507,10 +507,8 @@ func parseEventsFromTxResponse(resp *sdk.TxResponse) []provider.RelayerEvent { return events } - // After SDK v0.50, indexed events are no longer provided in the logs on - // transaction execution, the response events can be directly used - if len(resp.Events) != 0 { - for _, event := range resp.Events { + for _, logs := range resp.Logs { + for _, event := range logs.Events { attributes := make(map[string]string) for _, attribute := range event.Attributes { attributes[attribute.Key] = attribute.Value @@ -520,12 +518,12 @@ func parseEventsFromTxResponse(resp *sdk.TxResponse) []provider.RelayerEvent { Attributes: attributes, }) } - return events } - // fallback on legacy behaviour - for _, logs := range resp.Logs { - for _, event := range logs.Events { + // After SDK v0.50, indexed events are no longer provided in the logs on + // transaction execution, the response events can be directly used + if len(events) == 0 { + for _, event := range resp.Events { attributes := make(map[string]string) for _, attribute := range event.Attributes { attributes[attribute.Key] = attribute.Value @@ -536,6 +534,7 @@ func parseEventsFromTxResponse(resp *sdk.TxResponse) []provider.RelayerEvent { }) } } + return events }