From e1211acdf0252f7dd144819843de8fe4777da04f Mon Sep 17 00:00:00 2001 From: Fernando Torres Date: Fri, 18 Aug 2023 12:21:07 -0300 Subject: [PATCH] Add notification event from fly and event-watcher --- common/domain/events.go | 45 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 common/domain/events.go diff --git a/common/domain/events.go b/common/domain/events.go new file mode 100644 index 000000000..da6434805 --- /dev/null +++ b/common/domain/events.go @@ -0,0 +1,45 @@ +package domain + +import ( + "encoding/json" + "time" +) + +type NotificationEvent struct { + TrackID string `json:"trackId"` + Source string `json:"source"` + Type string `json:"type"` + Payload json.RawMessage `json:"payload"` +} + +type EventPayload interface { + SignedVaa | PublishedLogMessage +} + +func GetEventPayload[T EventPayload](e *NotificationEvent) (T, error) { + var payload T + err := json.Unmarshal(e.Payload, &payload) + return payload, err +} + +type SignedVaa struct { + ID string `json:"id"` + EmitterChain int `json:"emitterChain"` + EmitterAddr string `json:"emitterAddr"` + Sequence string `json:"sequence"` + GuardianSetIndex int `json:"guardianSetIndex"` + Timestamp time.Time `json:"timestamp"` + Vaa string `json:"vaa"` + TxHash string `json:"txHash"` + Version int `json:"version"` +} + +type PublishedLogMessage struct { + ID string `json:"id"` + EmitterChain int `json:"emitterChain"` + EmitterAddr string `json:"emitterAddr"` + Sequence string `json:"sequence"` + Timestamp time.Time `json:"timestamp"` + Vaa string `json:"vaa"` + TxHash string `json:"txHash"` +}