Summary
EventsServiceImpl::list_events currently returns Status::unimplemented. Needs a real Postgres query with filters and cursor pagination.
Acceptance Criteria
Files
crates/api/src/services/events.rs
Notes
The API crate needs a sqlx::PgPool injected into EventsServiceImpl. Add it to the struct and wire it in main.rs.
Summary
EventsServiceImpl::list_eventscurrently returnsStatus::unimplemented. Needs a real Postgres query with filters and cursor pagination.Acceptance Criteria
ListEventsRequestfilters:contract_id,topic_0,topic_1,ledger_from,ledger_toWHEREclause from whichever filters are present (all optional)cursor(last seen UUID), return up to 200 rows, includenext_cursorin responsesoroban_eventsrows → protoEventmessagesStatus::internalwith a safe message on DB errors (no raw SQL in error responses)Files
crates/api/src/services/events.rsNotes
The API crate needs a
sqlx::PgPoolinjected intoEventsServiceImpl. Add it to the struct and wire it inmain.rs.