24 lines
676 B
Python
24 lines
676 B
Python
from __future__ import annotations
|
|
|
|
from dataclasses import dataclass, field
|
|
from typing import Dict, List
|
|
|
|
from .contracts import Signal, SignalDelta
|
|
|
|
|
|
@dataclass
|
|
class GraphOfContractsRegistry:
|
|
version: int = 1
|
|
contracts: Dict[str, Dict] = field(default_factory=dict)
|
|
adapters: List[str] = field(default_factory=list)
|
|
|
|
def register_contract(self, name: str, contract: dict) -> None:
|
|
self.contracts[name] = contract
|
|
|
|
def list_contracts(self) -> List[str]:
|
|
return list(self.contracts.keys())
|
|
|
|
def add_adapter(self, adapter_name: str) -> None:
|
|
if adapter_name not in self.adapters:
|
|
self.adapters.append(adapter_name)
|