2222 cast ,
2323)
2424
25+ import websockets .exceptions
2526from bt_decode import MetadataV15 , PortableRegistry , decode as decode_by_type_string
2627from scalecodec .base import ScaleBytes , ScaleType , RuntimeConfigurationObject
2728from scalecodec .type_registry import load_type_registry_preset
@@ -600,6 +601,7 @@ async def _cancel(self):
600601
601602 async def connect (self , force = False ):
602603 async with self ._lock :
604+ logger .debug (f"Websocket connecting to { self .ws_url } " )
603605 if self ._sending is None or self ._sending .empty ():
604606 self ._sending = asyncio .Queue ()
605607 if self ._exit_task :
@@ -724,8 +726,10 @@ async def _start_receiving(self, ws: ClientConnection) -> Exception:
724726 if not fut .done ():
725727 fut .set_exception (e )
726728 fut .cancel ()
729+ elif isinstance (e , websockets .exceptions .ConnectionClosedOK ):
730+ logger .debug ("Websocket connection closed." )
727731 else :
728- logger .debug ("Timeout occurred. Reconnecting." )
732+ logger .debug (f "Timeout occurred. Reconnecting." )
729733 return e
730734
731735 async def _start_sending (self , ws ) -> Exception :
@@ -754,6 +758,8 @@ async def _start_sending(self, ws) -> Exception:
754758 for i in self ._received .keys ():
755759 self ._received [i ].set_exception (e )
756760 self ._received [i ].cancel ()
761+ elif isinstance (e , websockets .exceptions .ConnectionClosedOK ):
762+ logger .debug ("Websocket connection closed." )
757763 else :
758764 logger .debug ("Timeout occurred. Reconnecting." )
759765 return e
@@ -2371,6 +2377,9 @@ async def _make_rpc_request(
23712377 for payload in payloads :
23722378 item_id = await ws .send (payload ["payload" ])
23732379 request_manager .add_request (item_id , payload ["id" ])
2380+ logger .debug (
2381+ f"Submitted payload ID { payload ['id' ]} with websocket ID { item_id } : { payload } "
2382+ )
23742383
23752384 while True :
23762385 for item_id in request_manager .unresponded ():
@@ -2391,6 +2400,10 @@ async def _make_rpc_request(
23912400 )
23922401 subscription_added = True
23932402 except KeyError :
2403+ logger .error (
2404+ f"Error received from subtensor for { item_id } : { response } \n "
2405+ f"Currently received responses: { request_manager .get_results ()} "
2406+ )
23942407 raise SubstrateRequestException (str (response ))
23952408 (
23962409 decoded_response ,
@@ -2407,6 +2420,20 @@ async def _make_rpc_request(
24072420 request_manager .add_response (
24082421 item_id , decoded_response , complete
24092422 )
2423+ if (
2424+ len (stringified_response := str (decoded_response ))
2425+ < 2_000
2426+ ):
2427+ output_response = stringified_response
2428+ # avoids clogging logs up needlessly (esp for Metadata stuff)
2429+ else :
2430+ output_response = (
2431+ f"{ stringified_response [:2_000 ]} (truncated)"
2432+ )
2433+ logger .debug (
2434+ f"Received response for item ID { item_id } :\n { output_response } \n "
2435+ f"Complete: { complete } "
2436+ )
24102437
24112438 if request_manager .is_complete :
24122439 break
0 commit comments