76 lines
1.2 KiB
Python
76 lines
1.2 KiB
Python
from __future__ import annotations
|
|
|
|
from dataclasses import dataclass
|
|
from typing import Optional, Dict, Any, List
|
|
|
|
|
|
@dataclass
|
|
class LocalEvent:
|
|
event_id: str
|
|
asset: str
|
|
venue: str
|
|
timestamp: float # epoch seconds
|
|
source: str
|
|
payload: Optional[Dict[str, Any]] = None
|
|
|
|
|
|
@dataclass
|
|
class PlanDelta:
|
|
delta_id: str
|
|
timestamp: float
|
|
author: str
|
|
payload: Dict[str, Any]
|
|
signature: Optional[str] = None
|
|
|
|
|
|
@dataclass
|
|
class OrderEvent:
|
|
order_id: str
|
|
timestamp: float
|
|
side: str # "buy" | "sell"
|
|
instrument: str
|
|
price: float
|
|
quantity: float
|
|
provenance: Optional[Dict[str, Any]] = None
|
|
|
|
|
|
@dataclass
|
|
class FillEvent:
|
|
fill_id: str
|
|
order_id: str
|
|
timestamp: float
|
|
price: float
|
|
quantity: float
|
|
venue: str
|
|
provenance: Optional[Dict[str, Any]] = None
|
|
|
|
|
|
@dataclass
|
|
class RiskCheck:
|
|
check_id: str
|
|
timestamp: float
|
|
result: str
|
|
details: Dict[str, Any]
|
|
|
|
|
|
@dataclass
|
|
class AuditLog:
|
|
log_id: str
|
|
timestamp: float
|
|
entry: str
|
|
signature: Optional[str] = None
|
|
|
|
|
|
@dataclass
|
|
class PrivacyBudget:
|
|
budget_id: str
|
|
per_signal_budget: float
|
|
leakage_bound: float
|
|
|
|
|
|
@dataclass
|
|
class Metadata:
|
|
version: str
|
|
nonce: str
|
|
source_adapter: str
|