MCPcopy Create free account
hub / github.com/ccxt/ccxt / handle_orders

Method handle_orders

python/ccxt/pro/lighter.py:1056–1098  ·  view source on GitHub ↗
(self, client: Client, message)

Source from the content-addressed store, hash-verified

1054 return await self.unsubscribe(messageHash, self.extend(request, params))
1055
1056 def handle_orders(self, client: Client, message):
1057 #
1058 # {
1059 # "account": {ACCOUNT_INDEX},
1060 # "channel": "account_orders:{MARKET_INDEX}",
1061 # "nonce": INTEGER,
1062 # "orders": {
1063 # "{MARKET_INDEX}": [Order] # the only present market index will be the one provided
1064 # },
1065 # "type": "update/account_orders"
1066 # }
1067 #
1068 # {
1069 # "channel": "account_all_orders:{ACCOUNT_ID}",
1070 # "orders": {
1071 # "{MARKET_INDEX}": [Order]
1072 # },
1073 # "type": "update/account_all_orders"
1074 # }
1075 #
1076 data = self.safe_dict(message, 'orders', {})
1077 marketIds = list(data.keys())
1078 idsLength = len(marketIds)
1079 if idsLength == 0:
1080 return False # nothing to process
1081 if self.orders is None:
1082 limit = self.safe_integer(self.options, 'ordersLimit', 1000)
1083 self.orders = ArrayCache(limit)
1084 stored = self.orders
1085 messageHash = self.get_message_hash('orders')
1086 for i in range(0, len(marketIds)):
1087 marketId = marketIds[i]
1088 market = self.safe_market(marketId)
1089 orders = self.safe_list(data, marketId, [])
1090 for j in range(0, len(orders)):
1091 order = self.parse_order(orders[j], market)
1092 stored.append(order)
1093 symbol = order['symbol']
1094 if symbol is not None:
1095 symbolSpecificMessageHash = self.get_message_hash('orders', symbol)
1096 client.resolve(stored, symbolSpecificMessageHash)
1097 client.resolve(stored, messageHash)
1098 return True
1099
1100 def handle_error_message(self, client, message):
1101 #

Callers 1

handle_messageMethod · 0.95

Calls 10

get_message_hashMethod · 0.95
parse_orderMethod · 0.95
ArrayCacheClass · 0.90
safe_dictMethod · 0.80
safe_integerMethod · 0.80
safe_listMethod · 0.80
resolveMethod · 0.65
rangeFunction · 0.50
safe_marketMethod · 0.45
appendMethod · 0.45

Tested by

no test coverage detected