Skip to content

Create Transaction Status Tracking and Monitoring #16

@Mathews-25

Description

@Mathews-25

Context:
Trades happen on-chain with latency. Users need real-time updates on transaction status from pending → confirmed → settled.

Problem:
Build a system that monitors Stellar transactions, updates trade status, and notifies users of outcomes.

What Done Looks Like:

  • Background job polling Horizon for tx status
  • Trade status updates (PENDING → CONFIRMED → SETTLED)
  • WebSocket notifications to frontend
  • Retry mechanism for failed transactions
  • Transaction receipt generation

Folder Structure:

src/
├── trades/
│   ├── services/
│   │   └── tx-monitor.service.ts
│   ├── jobs/
│   │   └── monitor-transactions.job.ts
│   └── entities/
│       └── transaction.entity.ts

Implementation Guidelines:

  • Use Bull queue for background monitoring
  • Poll Horizon every 5 seconds for pending txs
  • Update trade status based on Horizon response
  • Emit WebSocket event on status change
  • Store transaction details (ledger, fees paid)
  • Handle failure cases (resubmit or mark failed)

Transaction Statuses:

  • PENDING: Submitted to network
  • CONFIRMED: Included in ledger
  • SETTLED: Trade completed on SDEX
  • FAILED: Transaction rejected

Edge Cases:

  • Transaction stuck in pending
  • Network timeout during monitoring
  • Ledger reorganization

Validation:

  • Status updates in real-time
  • WebSocket events emitted
  • Failed txs handled correctly

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions