Join our community: https://t.me/+DOylgFv1jyJlNzM0
Description
All stream data is served from the indexed database. If the indexer falls behind or crashes, clients see stale data with no indication. Critical reads (claimable amount, stream status) should be backed by a live RPC fallback.
What Needs to Happen
- Create
backend/src/services/sorobanService.ts wrapping Stellar SDK contract calls
getStreamFromChain(streamId) — invoke get_stream() as a read-only simulation
getClaimableFromChain(streamId) — invoke get_claimable_amount()
- Use on-chain data as fallback when DB
updatedAt is older than 30 seconds
- Add
SOROBAN_RPC_URL and CONTRACT_ID to .env.example
Files
backend/src/services/sorobanService.ts (create)
Acceptance Criteria
Description
All stream data is served from the indexed database. If the indexer falls behind or crashes, clients see stale data with no indication. Critical reads (claimable amount, stream status) should be backed by a live RPC fallback.
What Needs to Happen
backend/src/services/sorobanService.tswrapping Stellar SDK contract callsgetStreamFromChain(streamId)— invokeget_stream()as a read-only simulationgetClaimableFromChain(streamId)— invokeget_claimable_amount()updatedAtis older than 30 secondsSOROBAN_RPC_URLandCONTRACT_IDto.env.exampleFiles
backend/src/services/sorobanService.ts(create)Acceptance Criteria