Update return type for route_request method
This commit is contained in:
parent
02ee35437b
commit
04b31f6a55
@ -106,8 +106,8 @@ class SolanaPublicProvider(Provider):
|
|||||||
def create_providers() -> list[Provider]:
|
def create_providers() -> list[Provider]:
|
||||||
return [
|
return [
|
||||||
SolanaPublicProvider(),
|
SolanaPublicProvider(),
|
||||||
HeliusProvider(),
|
|
||||||
AlchemyProvider(),
|
AlchemyProvider(),
|
||||||
QuickNodeProvider(),
|
|
||||||
PublicNodeProvider(),
|
PublicNodeProvider(),
|
||||||
|
HeliusProvider(),
|
||||||
|
QuickNodeProvider(),
|
||||||
]
|
]
|
||||||
|
@ -15,7 +15,7 @@ class Router:
|
|||||||
self.current_provider_index = 0
|
self.current_provider_index = 0
|
||||||
self.logger = logging.getLogger(__name__)
|
self.logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
async def route_request(self, method: str, params: Any) -> Dict[str, Any]:
|
async def route_request(self, method: str, params: Dict[str, Any]) -> Dict[str, Any]:
|
||||||
request = {"method": method, "params": params}
|
request = {"method": method, "params": params}
|
||||||
|
|
||||||
cached_response = self.cache.get(method, params)
|
cached_response = self.cache.get(method, params)
|
||||||
|
14
ws_proxy.py
14
ws_proxy.py
@ -73,7 +73,7 @@ class WebSocketProxy:
|
|||||||
data = json.loads(msg.data)
|
data = json.loads(msg.data)
|
||||||
method = data.get('method', 'unknown')
|
method = data.get('method', 'unknown')
|
||||||
|
|
||||||
self.logger.info(f"Received from client: {data}")
|
self.logger.debug(f"Received from client: {data}")
|
||||||
|
|
||||||
# Handle ping messages locally
|
# Handle ping messages locally
|
||||||
if method == "ping":
|
if method == "ping":
|
||||||
@ -83,13 +83,13 @@ class WebSocketProxy:
|
|||||||
"id": data.get("id")
|
"id": data.get("id")
|
||||||
}
|
}
|
||||||
await client_ws.send_str(json.dumps(pong_response))
|
await client_ws.send_str(json.dumps(pong_response))
|
||||||
self.logger.info("Responded to ping with pong")
|
self.logger.debug("Responded to ping with pong")
|
||||||
continue
|
continue
|
||||||
|
|
||||||
transformed_request = provider.transform_request(data)
|
transformed_request = provider.transform_request(data)
|
||||||
|
|
||||||
await provider_ws.send_str(json.dumps(transformed_request))
|
await provider_ws.send_str(json.dumps(transformed_request))
|
||||||
self.logger.info(f"Forwarded message to {provider.name}: {method}")
|
self.logger.debug(f"Forwarded message to {provider.name}: {method}")
|
||||||
|
|
||||||
except json.JSONDecodeError:
|
except json.JSONDecodeError:
|
||||||
self.logger.warning("Received invalid JSON from client")
|
self.logger.warning("Received invalid JSON from client")
|
||||||
@ -113,7 +113,7 @@ class WebSocketProxy:
|
|||||||
if msg.type == WSMsgType.TEXT:
|
if msg.type == WSMsgType.TEXT:
|
||||||
try:
|
try:
|
||||||
data = json.loads(msg.data)
|
data = json.loads(msg.data)
|
||||||
self.logger.info(f"Received from provider {provider.name}: {data}")
|
self.logger.debug(f"Received from provider {provider.name}: {data}")
|
||||||
|
|
||||||
transformed_response = provider.transform_response(data)
|
transformed_response = provider.transform_response(data)
|
||||||
|
|
||||||
@ -121,7 +121,7 @@ class WebSocketProxy:
|
|||||||
subscription_id = transformed_response.get("result")
|
subscription_id = transformed_response.get("result")
|
||||||
if subscription_id:
|
if subscription_id:
|
||||||
self.subscription_mappings[str(subscription_id)] = provider.name
|
self.subscription_mappings[str(subscription_id)] = provider.name
|
||||||
self.logger.info(f"SIGNATURE_SUBSCRIBE: Mapped subscription {subscription_id} to {provider.name}")
|
self.logger.debug(f"SIGNATURE_SUBSCRIBE: Mapped subscription {subscription_id} to {provider.name}")
|
||||||
|
|
||||||
transformed_response["_cached"] = False
|
transformed_response["_cached"] = False
|
||||||
transformed_response["_provider"] = provider.name
|
transformed_response["_provider"] = provider.name
|
||||||
@ -132,7 +132,7 @@ class WebSocketProxy:
|
|||||||
self.router.cache.set(method, params, transformed_response)
|
self.router.cache.set(method, params, transformed_response)
|
||||||
|
|
||||||
await client_ws.send_str(json.dumps(transformed_response))
|
await client_ws.send_str(json.dumps(transformed_response))
|
||||||
self.logger.info(f"Forwarded response to client from {provider.name}: {transformed_response}")
|
self.logger.debug(f"Forwarded response to client from {provider.name}: {transformed_response}")
|
||||||
|
|
||||||
except json.JSONDecodeError:
|
except json.JSONDecodeError:
|
||||||
self.logger.warning(f"Received invalid JSON from provider {provider.name}")
|
self.logger.warning(f"Received invalid JSON from provider {provider.name}")
|
||||||
@ -153,7 +153,7 @@ class WebSocketProxy:
|
|||||||
self.logger.warning(f"Provider WebSocket connection closed from {provider.name}")
|
self.logger.warning(f"Provider WebSocket connection closed from {provider.name}")
|
||||||
break
|
break
|
||||||
|
|
||||||
self.logger.warning(f"Provider-to-client message loop ended for {provider.name} after {message_count} messages")
|
self.logger.warning(f"Provider-to-client message loop ended for {provider.name}")
|
||||||
|
|
||||||
|
|
||||||
async def handle_ws_connection(request: web.Request) -> web.WebSocketResponse:
|
async def handle_ws_connection(request: web.Request) -> web.WebSocketResponse:
|
||||||
|
Loading…
Reference in New Issue
Block a user