45 lines
844 B
Python
45 lines
844 B
Python
from __future__ import annotations
|
|
|
|
from typing import Dict, List, Optional, Any
|
|
from datetime import datetime
|
|
from pydantic import BaseModel
|
|
|
|
|
|
class MarketSignal(BaseModel):
|
|
venue_id: str
|
|
symbol: str
|
|
timestamp: datetime
|
|
features: Dict[str, float]
|
|
|
|
|
|
class AggregatedSignal(BaseModel):
|
|
venues: List[str]
|
|
feature_vector: Dict[str, float]
|
|
privacy_budget_used: float
|
|
nonce: str
|
|
merkle_proof: Optional[str] = None
|
|
|
|
|
|
class PlanDelta(BaseModel):
|
|
version: int
|
|
timestamp: datetime
|
|
delta: Dict[str, Any]
|
|
|
|
|
|
class PrivacyBudget(BaseModel):
|
|
total: float
|
|
consumed: float
|
|
remaining: float
|
|
|
|
|
|
class AuditLog(BaseModel):
|
|
entries: List[str]
|
|
last_updated: Optional[datetime] = None
|
|
|
|
|
|
class ProvenanceProof(BaseModel):
|
|
venue_id: str
|
|
timestamp: datetime
|
|
merkle_root: str
|
|
proof: str
|