Source code for nqs_sdk.interfaces.protocol_factory

from abc import ABC, abstractmethod
from typing import Any, List, Tuple

from nqs_sdk.nqs_sdk import MutBuilderSharedState, SimulationClock

from .protocol import Protocol
from .tx_generator import TxGenerator


[docs] class ProtocolFactory(ABC):
[docs] @abstractmethod def id(self) -> str: ...
[docs] def simulation_schema(self) -> str: return "{}"
[docs] def backtest_schema(self) -> str: return "{}"
[docs] def common_schema(self) -> str: return "{}"
[docs] @abstractmethod def build(
self, clock: SimulationClock, builder_state: MutBuilderSharedState, common_config: Any, backtest: bool, config: Any, ) -> Tuple[List[Protocol], List[TxGenerator]]: ...