idea172-bevault-verifiable-.../idea172_bevault_verifiable_.../core.py

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",
]