Context
Layer 3 (consumer side). Reads the Chainlink AnswerUpdated rows indexed by the Envio indexer (issue in chain-events/yearn-indexing-test) and turns anomalies into alerts. Mirrors the existing Envio→Telegram pattern.
Scope
Acceptance criteria
- Given indexed rounds, anomalies produce alerts; reruns do not re-alert on the same round.
References
protocols/timelock/timelock_alerts.py, protocols/yearn/alert_large_flows.py (both use ENVIO_GRAPHQL_URL).
- Indexer issue:
chain-events/yearn-indexing-test.
- Foundation issue (shared registry for routing).
Context
Layer 3 (consumer side). Reads the Chainlink
AnswerUpdatedrows indexed by the Envio indexer (issue inchain-events/yearn-indexing-test) and turns anomalies into alerts. Mirrors the existing Envio→Telegram pattern.Scope
protocols/timelock/timelock_alerts.py) queryingENVIO_GRAPHQL_URLfor recent rounds per feed.utils/alert.pywith per-asset channel routing from the shared registry.timelock_alerts.py).automation/jobs.yaml.Acceptance criteria
References
protocols/timelock/timelock_alerts.py,protocols/yearn/alert_large_flows.py(both useENVIO_GRAPHQL_URL).chain-events/yearn-indexing-test.