- #1: remove mock alert events that poisoned production responses - #2: add Notifier interface + Send implementations for all channels - #3/#4: notification goroutines now carry a 30s context timeout and retry up to 3x with exponential backoff - #5: schedule email digest in poller via DIGEST_INTERVAL_HOURS (default 24h) - #6: SystemStatus queries real checkpoint data; returns starting/active/idle with latestBlock and lag - #7: Ethereum RPC client retries on network errors, 429, and 5xx with 1s/2s backoff - #8: alert_events dedup index + ON CONFLICT DO NOTHING to prevent duplicate events on poller restart - #9: PATCH /v1/addresses/{id} for label editing; frontend address list gains inline edit and remove buttons
17 lines
383 B
Go
17 lines
383 B
Go
package notifications
|
|
|
|
import "context"
|
|
|
|
// AlertMetadata holds context about the alert being sent.
|
|
type AlertMetadata struct {
|
|
TxHash string
|
|
AddressLabel string
|
|
AlertType string
|
|
Address string
|
|
}
|
|
|
|
// Notifier is the interface implemented by all notification channels.
|
|
type Notifier interface {
|
|
Send(ctx context.Context, message string, meta AlertMetadata) error
|
|
}
|