54 lines
1.1 KiB
Python
54 lines
1.1 KiB
Python
"""Core data contracts for BeVault MVP (toy DSL seeds)."""
|
|
from __future__ import annotations
|
|
from dataclasses import dataclass, field
|
|
from typing import List, Optional
|
|
import time
|
|
|
|
|
|
@dataclass
|
|
class LocalArbProblem:
|
|
asset: str
|
|
objective: str # e.g., 'min_cost', 'maximize_profit'
|
|
risk_budget: float
|
|
constraints: dict = field(default_factory=dict)
|
|
|
|
|
|
@dataclass
|
|
class SharedSignals:
|
|
asset: str
|
|
price: float
|
|
latency_ms: float
|
|
timestamp: float = field(default_factory=lambda: time.time())
|
|
metadata: dict = field(default_factory=dict)
|
|
|
|
|
|
@dataclass
|
|
class HedgeDelta:
|
|
asset: str
|
|
hedge_size: float
|
|
timestamp: float = field(default_factory=lambda: time.time())
|
|
policy_tag: str = "default"
|
|
signature: Optional[str] = None
|
|
|
|
|
|
@dataclass
|
|
class AuditLog:
|
|
events: List[str] = field(default_factory=list)
|
|
entry_ts: float = field(default_factory=lambda: time.time())
|
|
|
|
|
|
@dataclass
|
|
class PrivacyBudget:
|
|
asset: str
|
|
remaining: float
|
|
reset_epoch: float = field(default_factory=lambda: time.time())
|
|
|
|
|
|
__all__ = [
|
|
"LocalArbProblem",
|
|
"SharedSignals",
|
|
"HedgeDelta",
|
|
"AuditLog",
|
|
"PrivacyBudget",
|
|
]
|