diff --git a/src/core/client.py b/src/core/client.py index 7542613..b1b74b4 100644 --- a/src/core/client.py +++ b/src/core/client.py @@ -64,7 +64,7 @@ class SolanaClient: ValueError: If account doesn't exist or has no data """ client = await self.get_client() - response = await client.get_account_info(pubkey) + response = await client.get_account_info(pubkey, encoding="base64") # base64 encoding for account data by default if not response.value: raise ValueError(f"Account {pubkey} not found") return response.value @@ -149,7 +149,7 @@ class SolanaClient: wait_time = 2**attempt logger.warning( - f"Transaction attempt {attempt + 1} failed: {str(e)}, retrying in {wait_time}s" + f"Transaction attempt {attempt + 1} failed: {e!s}, retrying in {wait_time}s" ) await asyncio.sleep(wait_time) @@ -170,7 +170,7 @@ class SolanaClient: await client.confirm_transaction(signature, commitment=commitment) return True except Exception as e: - logger.error(f"Failed to confirm transaction {signature}: {str(e)}") + logger.error(f"Failed to confirm transaction {signature}: {e!s}") return False async def post_rpc(self, body: dict[str, Any]) -> dict[str, Any] | None: @@ -193,8 +193,8 @@ class SolanaClient: response.raise_for_status() return await response.json() except aiohttp.ClientError as e: - logger.error(f"RPC request failed: {str(e)}", exc_info=True) + logger.error(f"RPC request failed: {e!s}", exc_info=True) return None except json.JSONDecodeError as e: - logger.error(f"Failed to decode RPC response: {str(e)}", exc_info=True) + logger.error(f"Failed to decode RPC response: {e!s}", exc_info=True) return None diff --git a/src/monitoring/block_listener.py b/src/monitoring/block_listener.py index 846b761..5c3c5db 100644 --- a/src/monitoring/block_listener.py +++ b/src/monitoring/block_listener.py @@ -86,7 +86,7 @@ class BlockListener(BaseTokenListener): ping_task.cancel() except Exception as e: - logger.error(f"WebSocket connection error: {str(e)}") + logger.error(f"WebSocket connection error: {e!s}") logger.info("Reconnecting in 5 seconds...") await asyncio.sleep(5) @@ -105,7 +105,7 @@ class BlockListener(BaseTokenListener): {"mentionsAccountOrProgram": str(self.pump_program)}, { "commitment": "confirmed", - "encoding": "base64", + "encoding": "base64", # base64 is faster than other encoding options "showRewards": False, "transactionDetails": "full", "maxSupportedTransactionVersion": 0, @@ -129,7 +129,7 @@ class BlockListener(BaseTokenListener): try: pong_waiter = await websocket.ping() await asyncio.wait_for(pong_waiter, timeout=10) - except asyncio.TimeoutError: + except TimeoutError: logger.warning("Ping timeout - server not responding") # Force reconnection await websocket.close() @@ -137,7 +137,7 @@ class BlockListener(BaseTokenListener): except asyncio.CancelledError: pass except Exception as e: - logger.error(f"Ping error: {str(e)}") + logger.error(f"Ping error: {e!s}") async def _wait_for_token_creation(self, websocket) -> TokenInfo | None: """Wait for token creation event. @@ -176,12 +176,12 @@ class BlockListener(BaseTokenListener): if token_info: return token_info - except asyncio.TimeoutError: + except TimeoutError: logger.debug("No data received for 30 seconds") except websockets.exceptions.ConnectionClosed: logger.warning("WebSocket connection closed") raise except Exception as e: - logger.error(f"Error processing WebSocket message: {str(e)}") + logger.error(f"Error processing WebSocket message: {e!s}") return None