feat: implement WebSocket trade stream handler with reconnection

- Add TradeEvent dataclass for trade data from WebSocket feed
- Implement TradeStreamHandler with async WebSocket streaming
- Add automatic reconnection with exponential backoff (1s-30s)
- Support event/market filtering for targeted subscriptions
- Include connection state management and statistics tracking
- Add websockets>=12.0 dependency

Acceptance Criteria:
- [x] TradeStreamHandler class using websockets library
- [x] Connects to Polymarket WSS endpoint
- [x] Subscribes to market trade channel on connection
- [x] Parses trade messages into TradeEvent dataclass
- [x] Implements heartbeat/ping-pong for connection health
- [x] Auto-reconnects on disconnect with exponential backoff
- [x] Emits events via callback pattern
- [x] Logs connection state changes

Closes #3

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Patrick Selamy
2026-01-04 14:46:38 -05:00
co-authored by Claude Opus 4.5
parent 1299cfe0b7
commit 85010a3ea5
6 changed files with 938 additions and 2 deletions
+1
View File
@@ -13,6 +13,7 @@ dependencies = [
"alembic>=1.13.0",
"pydantic>=2.0.0",
"python-dotenv>=1.0.0",
"websockets>=12.0",
]
[project.optional-dependencies]