Summary
Nothing consumes the vault's on-chain events. #698 added event emission for admin actions (paused, transfer, accept, adapter, migrate), and #563 tracks extending that to every state-mutating call, but even the events that already exist today have no alerting service watching for them.
Motivation
set_paused, transfer_admin, and migrate_adapter are exactly the actions an operator needs to know about immediately, not discover by manually polling. Without an alerting layer, an unexpected pause, an unauthorized-looking admin rotation, or an adapter migration going through would only be noticed by whoever happens to check the app.
Proposed Solution
A small service (or a scheduled function alongside the existing keepers in packages/stellar-sdk-helpers) that:
- Polls Soroban RPC
getEvents for the vault's topic-keyed events (reusing the discovery pattern already built for admin-history.ts)
- Sends an alert (Slack/Discord webhook, or email, whichever the maintainer prefers) on
paused, transfer, adapter, and migrate events
- Tracks its own last-processed ledger the same way the accrual/migration keepers track their heartbeat, so a restart doesn't replay old events
Scope
| Field |
Value |
| Area |
SDK / API |
| Protocol affected |
None |
| Network |
Both |
| Breaking change? |
No |
Alternatives Considered
Polling from the frontend was considered and rejected: alerting needs to work even when nobody has the app open, and a browser tab is not a reliable monitoring surface.
Acceptance Criteria
Additional Context
Depends on #563 landing further event coverage to be fully useful (deposit/withdraw are not yet instrumented), but the admin-action events already merged in #698 are enough to build the first version against.
Summary
Nothing consumes the vault's on-chain events. #698 added event emission for admin actions (
paused,transfer,accept,adapter,migrate), and #563 tracks extending that to every state-mutating call, but even the events that already exist today have no alerting service watching for them.Motivation
set_paused,transfer_admin, andmigrate_adapterare exactly the actions an operator needs to know about immediately, not discover by manually polling. Without an alerting layer, an unexpected pause, an unauthorized-looking admin rotation, or an adapter migration going through would only be noticed by whoever happens to check the app.Proposed Solution
A small service (or a scheduled function alongside the existing keepers in
packages/stellar-sdk-helpers) that:getEventsfor the vault's topic-keyed events (reusing the discovery pattern already built foradmin-history.ts)paused,transfer,adapter, andmigrateeventsScope
Alternatives Considered
Polling from the frontend was considered and rejected: alerting needs to work even when nobody has the app open, and a browser tab is not a reliable monitoring surface.
Acceptance Criteria
paused,transfer,adapter, andmigrateeventsAdditional Context
Depends on #563 landing further event coverage to be fully useful (deposit/withdraw are not yet instrumented), but the admin-action events already merged in #698 are enough to build the first version against.