Telegram (ask questions / claim the issue here first): https://t.me/+DOylgFv1jyJlNzM0
Why this matters
sorobanService.ts builds rpc.Server and awaits server.simulateTransaction/getAccount/sendTransaction with no client-side request timeout - TransactionBuilder.setTimeout(30) only sets the tx validity window, not an HTTP deadline. soroban-indexer.service.ts:87 and the controller stale-fallback path await these with no AbortController/timeout, so a non-responsive endpoint blocks the poll cycle and the request thread. No retry/backoff on transient RPC failures.
Acceptance criteria
Files to touch
backend/src/services/sorobanService.ts
backend/src/services/soroban-indexer.service.ts
backend/src/controllers/stream.controller.ts
Out of scope
- Choosing a specific RPC provider
Why this matters
sorobanService.ts builds rpc.Server and awaits server.simulateTransaction/getAccount/sendTransaction with no client-side request timeout - TransactionBuilder.setTimeout(30) only sets the tx validity window, not an HTTP deadline. soroban-indexer.service.ts:87 and the controller stale-fallback path await these with no AbortController/timeout, so a non-responsive endpoint blocks the poll cycle and the request thread. No retry/backoff on transient RPC failures.
Acceptance criteria
Files to touch
backend/src/services/sorobanService.tsbackend/src/services/soroban-indexer.service.tsbackend/src/controllers/stream.controller.tsOut of scope