예제 #1
0
파일: api.py 프로젝트: onyb/trinity
def choose_eth_or_les_api(
        connection: ConnectionAPI
) -> Union[ETHAPI, ETHV63API, LESV1API, LESV2API]:

    if connection.has_protocol(ETHProtocol):
        return connection.get_logic(ETHAPI.name, ETHAPI)
    elif connection.has_protocol(ETHProtocolV63):
        return connection.get_logic(ETHV63API.name, ETHV63API)
    elif connection.has_protocol(LESProtocolV2):
        return connection.get_logic(LESV2API.name, LESV2API)
    elif connection.has_protocol(LESProtocolV1):
        return connection.get_logic(LESV1API.name, LESV1API)
    else:
        raise Exception("Unreachable code path")
예제 #2
0
 def __call__(self, connection: ConnectionAPI, logic: LogicAPI) -> bool:
     return connection.has_protocol(self._protocol_type)