
- 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
1.1 KiB
Python
50 lines
1.1 KiB
Python
from datetime import datetime
|
|
from typing import List, Optional, Any, Dict
|
|
from pydantic import BaseModel
|
|
|
|
|
|
class TransactionBase(BaseModel):
|
|
transaction_hash: str
|
|
slot: int
|
|
signature: str
|
|
success: bool = False
|
|
fee: Optional[int] = None
|
|
fee_payer: Optional[str] = None
|
|
program_ids: Optional[List[str]] = None
|
|
accounts: Optional[List[str]] = None
|
|
|
|
|
|
class TransactionCreate(TransactionBase):
|
|
block_id: int
|
|
raw_data: Optional[str] = None
|
|
|
|
|
|
class TransactionUpdate(BaseModel):
|
|
success: Optional[bool] = None
|
|
fee: Optional[int] = None
|
|
fee_payer: Optional[str] = None
|
|
program_ids: Optional[List[str]] = None
|
|
accounts: Optional[List[str]] = None
|
|
raw_data: Optional[str] = None
|
|
|
|
|
|
class TransactionInDBBase(TransactionBase):
|
|
id: int
|
|
block_id: int
|
|
created_at: datetime
|
|
|
|
class Config:
|
|
from_attributes = True
|
|
|
|
|
|
class Transaction(TransactionInDBBase):
|
|
pass
|
|
|
|
|
|
class TransactionDetail(Transaction):
|
|
raw_data: Optional[str] = None
|
|
|
|
|
|
class TransactionList(BaseModel):
|
|
transactions: List[Transaction]
|
|
total: int |