wip (broken)

This commit is contained in:
Dobromir Popov
2024-11-15 00:22:20 +02:00
parent b623c4cb15
commit fee5b516a1
4 changed files with 212 additions and 211 deletions

View File

@ -84,7 +84,6 @@ class SolanaWS:
self.subscription_id = None
self.message_queue = asyncio.Queue()
self.on_message = on_message
self.websocket = None
self.last_msg_responded = False
async def save_log(log):
@ -100,8 +99,6 @@ class SolanaWS:
async def connect(self):
while True:
if self.websocket is None or self.websocket.closed:
await self.connect()
try:
current_url = random.choice(SOLANA_ENDPOINTS)
self.websocket = await websockets.connect(current_url, ping_interval=30, ping_timeout=10)
@ -178,8 +175,10 @@ class SolanaWS:
response_data = json.loads(response)
self.last_msg_responded = True
if 'result' in response_data:
if 'params' in response_data and 'result' in response_data["params"]:
await self.message_queue.put(response_data['result'])
else:
logger.warning(f"Unexpected response: {response_data}")
if one:
break
except websockets.exceptions.ConnectionClosedError:
@ -285,15 +284,16 @@ class SolanaAPI:
await solana_ws.connect()
await solana_ws.subscribe()
receive_task = asyncio.create_task(solana_ws.receive_messages())
process_task = asyncio.create_task(solana_ws.process_messages())
if first_subscription:
first_subscription = False
await async_safe_call(self.on_initial_subscription, solana_ws.subscription_id)
await async_safe_call(self.on_bot_message,f"Solana mainnet connected ({solana_ws.subscription_id})...")
receive_task = asyncio.create_task(solana_ws.receive_messages())
process_task = asyncio.create_task(solana_ws.process_messages())
try:
await asyncio.gather(receive_task, process_task)
except asyncio.CancelledError:
@ -1211,7 +1211,7 @@ class SolanaDEX:
if mint in self.TOKENS_INFO:
token_name = self.TOKENS_INFO[mint].get('symbol')
elif doGetTokenName:
token_name = await self.get_token_metadata_symbol(mint) or 'N/A'
token_name = await SAPI.get_token_metadata_symbol(mint) or 'N/A'
self.TOKENS_INFO[mint] = {'symbol': token_name}
await asyncio.sleep(2)