mercurymesh-privacy-preserv.../mercurymesh/contracts.py

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