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