exoroute-cross-venue-order-.../exoroute/dsl.py

64 lines
1.2 KiB
Python

from __future__ import annotations
from dataclasses import dataclass, field
from typing import Dict, List, Optional
@dataclass
class LocalProblem:
id: str
domain: str
assets: List[str]
objective: str
constraints: Dict[str, object] = field(default_factory=dict)
@dataclass
class SharedVariables:
forecasts: Dict[str, float]
priors: Dict[str, float] = field(default_factory=dict)
version: int = 0
encryption_schema: Optional[str] = None
@dataclass
class PlanDelta:
delta: Dict[str, object]
timestamp: float
author: str
contract_id: str
signature: Optional[str] = None
@dataclass
class DualVariables:
multipliers: Dict[str, float] = field(default_factory=dict)
@dataclass
class PrivacyBudget:
signal: str
budget: float
expiry: Optional[str] = None
@dataclass
class AuditLog:
entry: str
signer: str
timestamp: float
contract_id: str
version: Optional[str] = None
@dataclass
class GraphOfContractsRegistryEntry:
adapter_id: str
supported_domains: List[str]
contract_version: str
@dataclass
class GraphOfContractsRegistry:
entries: List[GraphOfContractsRegistryEntry] = field(default_factory=list)