mercurymesh-privacy-preserv.../mercurymesh/ir.py

59 lines
1.2 KiB
Python

from __future__ import annotations
from typing import Dict, List, Optional, Any
from datetime import datetime
from pydantic import BaseModel
class LocalMarketContext(BaseModel):
venue_id: str
symbol: str
timeframe: Optional[str] = None
objective: Optional[str] = None
timestamp: datetime
class AggregatedSignalIR(BaseModel):
version: str
venues: List[str]
feature_vector: Dict[str, float]
privacy_budget: Optional[float] = None
nonce: Optional[str] = None
merkle_root: Optional[str] = None
class PlanDeltaIR(BaseModel):
contract_id: str
author: Optional[str]
timestamp: datetime
actions: Dict[str, Any]
class DualVariables(BaseModel):
multipliers: Dict[str, float]
class PrivacyBudgetEntry(BaseModel):
signal_class: str
budget: float
expiry: Optional[datetime] = None
class AuditLogEntry(BaseModel):
entry: str
signer: Optional[str]
timestamp: datetime
contract_id: Optional[str]
class TimeRound(BaseModel):
round_id: str
start_ts: datetime
end_ts: datetime
class GoCRegistryEntry(BaseModel):
adapter_id: str
supported_domains: List[str]
contract_version: str