From 35061296dee600678de4dc875529dcf336848226 Mon Sep 17 00:00:00 2001 From: lavrric Date: Fri, 20 Feb 2026 15:28:39 +0100 Subject: [PATCH] fix update orders --- lighter/ws_client.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/lighter/ws_client.py b/lighter/ws_client.py index a6d5581..1369417 100644 --- a/lighter/ws_client.py +++ b/lighter/ws_client.py @@ -115,17 +115,20 @@ def update_order_book_state(self, market_id, order_book): def update_orders(self, new_orders, existing_orders): for new_order in new_orders: is_new_order = True - for existing_order in existing_orders: + # iterate over a copy so removal is safe + existing_order_copy = existing_orders[:] + for existing_order in existing_order_copy: if new_order["price"] == existing_order["price"]: is_new_order = False existing_order["size"] = new_order["size"] if float(new_order["size"]) == 0: existing_orders.remove(existing_order) - break + if is_new_order: existing_orders.append(new_order) - existing_orders = [ + # final cleanup (in-place) + existing_orders[:] = [ order for order in existing_orders if float(order["size"]) > 0 ]