64 lines
1.2 KiB
Python
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)
|