Add notification event from fly and event-watcher (#644)

This commit is contained in:
ftocal 2023-08-18 12:32:44 -03:00 committed by Fernando Torres
parent a05dad5160
commit d83b01421e
1 changed files with 45 additions and 0 deletions

45
common/domain/events.go Normal file
View File

@ -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"`
}