
- Create project structure with FastAPI - Add database models for blocks, transactions, arbitrages, pools, and DEXes - Implement Solana RPC client for fetching blockchain data - Create arbitrage detection algorithm - Implement comprehensive API endpoints for analytics - Set up database migrations with Alembic - Add detailed project documentation generated with BackendIM... (backend.im) Co-Authored-By: Claude <noreply@anthropic.com>
50 lines
979 B
Python
50 lines
979 B
Python
from datetime import datetime
|
|
from typing import List, Optional
|
|
from pydantic import BaseModel
|
|
|
|
|
|
class DexBase(BaseModel):
|
|
name: str
|
|
address: str
|
|
program_id: str
|
|
version: Optional[str] = None
|
|
description: Optional[str] = None
|
|
website: Optional[str] = None
|
|
|
|
|
|
class DexCreate(DexBase):
|
|
pass
|
|
|
|
|
|
class DexUpdate(BaseModel):
|
|
name: Optional[str] = None
|
|
program_id: Optional[str] = None
|
|
version: Optional[str] = None
|
|
description: Optional[str] = None
|
|
website: Optional[str] = None
|
|
volume_24h: Optional[float] = None
|
|
volume_7d: Optional[float] = None
|
|
|
|
|
|
class DexInDBBase(DexBase):
|
|
id: int
|
|
volume_24h: Optional[float] = None
|
|
volume_7d: Optional[float] = None
|
|
created_at: datetime
|
|
updated_at: datetime
|
|
|
|
class Config:
|
|
from_attributes = True
|
|
|
|
|
|
class Dex(DexInDBBase):
|
|
pass
|
|
|
|
|
|
class DexWithPoolCount(Dex):
|
|
pool_count: int
|
|
|
|
|
|
class DexList(BaseModel):
|
|
dexes: List[DexWithPoolCount]
|
|
total: int |