diff --git a/universalClient/chains/evm/event_listener.go b/universalClient/chains/evm/event_listener.go index 72e04a3e..d3e159df 100644 --- a/universalClient/chains/evm/event_listener.go +++ b/universalClient/chains/evm/event_listener.go @@ -85,7 +85,7 @@ func NewEventListener( continue } switch method.Name { - case EventTypeFinalizeUniversalTx: + case EventTypeFinalizeUniversalTx, EventTypeFundsRescued: topic := ethcommon.HexToHash(method.EventIdentifier) eventTopics = append(eventTopics, topic) topicToEventType[topic] = method.Name diff --git a/universalClient/chains/evm/event_parser.go b/universalClient/chains/evm/event_parser.go index 08498542..3cde0c7e 100644 --- a/universalClient/chains/evm/event_parser.go +++ b/universalClient/chains/evm/event_parser.go @@ -24,6 +24,7 @@ const ( // Vault event type constants matching vault method names in chain config. const ( EventTypeFinalizeUniversalTx = "finalizeUniversalTx" + EventTypeFundsRescued = "fundsRescued" ) // ParseEvent parses a log into a store.Event based on the event type. @@ -36,7 +37,7 @@ func ParseEvent(log *types.Log, eventType string, chainID string, logger zerolog switch eventType { case EventTypeSendFunds: return parseSendFundsEvent(log, chainID, logger) - case EventTypeExecuteUniversalTx, EventTypeRevertUniversalTx, EventTypeFinalizeUniversalTx: + case EventTypeExecuteUniversalTx, EventTypeRevertUniversalTx, EventTypeFinalizeUniversalTx, EventTypeFundsRescued: // All share the same topic layout: Topics[1]=txID, Topics[2]=universalTxID. return parseOutboundObservationEvent(log, chainID, logger) default: diff --git a/universalClient/chains/svm/event_listener.go b/universalClient/chains/svm/event_listener.go index 79bf2ed1..550dafdc 100644 --- a/universalClient/chains/svm/event_listener.go +++ b/universalClient/chains/svm/event_listener.go @@ -66,7 +66,8 @@ func NewEventListener( switch method.Name { case EventTypeSendFunds, EventTypeFinalizeUniversalTx, - EventTypeRevertUniversalTx: + EventTypeRevertUniversalTx, + EventTypeFundsRescued: discriminator := strings.ToLower(method.EventIdentifier) discriminatorToEventType[discriminator] = method.Name } diff --git a/universalClient/chains/svm/event_parser.go b/universalClient/chains/svm/event_parser.go index 9df8d85c..00f5d332 100644 --- a/universalClient/chains/svm/event_parser.go +++ b/universalClient/chains/svm/event_parser.go @@ -22,6 +22,7 @@ const ( // Outbound observation events (emitted by gateway on SVM since there's no vault) EventTypeFinalizeUniversalTx = "finalize_universal_tx" EventTypeRevertUniversalTx = "revert_universal_tx" + EventTypeFundsRescued = "funds_rescued" ) // base58ToHex converts a base58 encoded string to hex format (0x...) @@ -46,7 +47,7 @@ func ParseEvent(log string, signature string, slot uint64, logIndex uint, eventT switch eventType { case EventTypeSendFunds: return parseSendFundsEvent(log, signature, slot, logIndex, chainID, logger) - case EventTypeFinalizeUniversalTx, EventTypeRevertUniversalTx: + case EventTypeFinalizeUniversalTx, EventTypeRevertUniversalTx, EventTypeFundsRescued: return parseOutboundObservationEvent(log, signature, slot, logIndex, chainID, logger) default: logger.Debug().