ccxt 4.4.52__py2.py3-none-any.whl → 4.4.57__py2.py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- ccxt/__init__.py +1 -3
- ccxt/abstract/binance.py +0 -1
- ccxt/abstract/binancecoinm.py +0 -1
- ccxt/abstract/binanceus.py +0 -1
- ccxt/abstract/binanceusdm.py +0 -1
- ccxt/ace.py +3 -0
- ccxt/alpaca.py +5 -0
- ccxt/ascendex.py +2 -1
- ccxt/async_support/__init__.py +1 -3
- ccxt/async_support/ace.py +3 -0
- ccxt/async_support/alpaca.py +5 -0
- ccxt/async_support/ascendex.py +2 -1
- ccxt/async_support/base/exchange.py +24 -7
- ccxt/async_support/bigone.py +5 -0
- ccxt/async_support/binance.py +54 -54
- ccxt/async_support/bingx.py +25 -29
- ccxt/async_support/bit2c.py +3 -0
- ccxt/async_support/bitbank.py +3 -0
- ccxt/async_support/bitbns.py +3 -0
- ccxt/async_support/bitfinex.py +6 -1
- ccxt/async_support/bitflyer.py +6 -1
- ccxt/async_support/bitget.py +9 -5
- ccxt/async_support/bithumb.py +3 -1
- ccxt/async_support/bitmart.py +22 -12
- ccxt/async_support/bitmex.py +99 -93
- ccxt/async_support/bitopro.py +7 -2
- ccxt/async_support/bitrue.py +4 -0
- ccxt/async_support/bitso.py +5 -2
- ccxt/async_support/bitstamp.py +3 -0
- ccxt/async_support/bitteam.py +5 -0
- ccxt/async_support/bitvavo.py +4 -0
- ccxt/async_support/blockchaincom.py +4 -0
- ccxt/async_support/blofin.py +3 -0
- ccxt/async_support/btcalpha.py +5 -0
- ccxt/async_support/btcbox.py +3 -2
- ccxt/async_support/btcmarkets.py +5 -0
- ccxt/async_support/btcturk.py +3 -0
- ccxt/async_support/bybit.py +13 -5
- ccxt/async_support/cex.py +2 -0
- ccxt/async_support/coinbase.py +20 -13
- ccxt/async_support/coinbaseexchange.py +5 -0
- ccxt/async_support/coinbaseinternational.py +23 -4
- ccxt/async_support/coincatch.py +3 -0
- ccxt/async_support/coincheck.py +2 -0
- ccxt/async_support/coinex.py +6 -2
- ccxt/async_support/coinlist.py +5 -0
- ccxt/async_support/coinmate.py +4 -0
- ccxt/async_support/coinmetro.py +9 -5
- ccxt/async_support/coinone.py +3 -0
- ccxt/async_support/coinsph.py +4 -0
- ccxt/async_support/coinspot.py +1 -0
- ccxt/async_support/cryptocom.py +5 -0
- ccxt/async_support/currencycom.py +3 -0
- ccxt/async_support/defx.py +5 -0
- ccxt/async_support/delta.py +4 -1
- ccxt/async_support/deribit.py +15 -28
- ccxt/async_support/digifinex.py +10 -5
- ccxt/async_support/ellipx.py +9 -5
- ccxt/async_support/exmo.py +7 -4
- ccxt/async_support/gate.py +5 -1
- ccxt/async_support/gemini.py +3 -0
- ccxt/async_support/hashkey.py +5 -4
- ccxt/async_support/hitbtc.py +6 -2
- ccxt/async_support/hollaex.py +7 -2
- ccxt/async_support/htx.py +8 -1
- ccxt/async_support/huobijp.py +5 -0
- ccxt/async_support/hyperliquid.py +9 -4
- ccxt/async_support/idex.py +5 -1
- ccxt/async_support/independentreserve.py +4 -0
- ccxt/async_support/indodax.py +3 -0
- ccxt/async_support/kraken.py +7 -5
- ccxt/async_support/krakenfutures.py +5 -2
- ccxt/async_support/kucoin.py +13 -6
- ccxt/async_support/kucoinfutures.py +5 -1
- ccxt/async_support/kuna.py +3 -0
- ccxt/async_support/latoken.py +4 -0
- ccxt/async_support/lbank.py +6 -1
- ccxt/async_support/luno.py +6 -1
- ccxt/async_support/mercado.py +4 -0
- ccxt/async_support/mexc.py +10 -9
- ccxt/async_support/ndax.py +6 -1
- ccxt/async_support/novadax.py +5 -0
- ccxt/async_support/oceanex.py +6 -2
- ccxt/async_support/okcoin.py +4 -0
- ccxt/async_support/okx.py +17 -5
- ccxt/async_support/onetrading.py +4 -0
- ccxt/async_support/oxfun.py +3 -0
- ccxt/async_support/p2b.py +3 -0
- ccxt/async_support/paradex.py +8 -2
- ccxt/async_support/phemex.py +10 -4
- ccxt/async_support/poloniex.py +6 -3
- ccxt/async_support/poloniexfutures.py +5 -1
- ccxt/async_support/probit.py +4 -0
- ccxt/async_support/timex.py +4 -0
- ccxt/async_support/tokocrypto.py +5 -0
- ccxt/async_support/tradeogre.py +2 -0
- ccxt/async_support/upbit.py +5 -2
- ccxt/async_support/vertex.py +6 -2
- ccxt/async_support/wavesexchange.py +20 -3
- ccxt/async_support/wazirx.py +2 -0
- ccxt/async_support/whitebit.py +5 -4
- ccxt/async_support/woo.py +15 -5
- ccxt/async_support/woofipro.py +23 -9
- ccxt/async_support/xt.py +5 -0
- ccxt/async_support/yobit.py +5 -2
- ccxt/async_support/zaif.py +2 -0
- ccxt/async_support/zonda.py +2 -0
- ccxt/base/exchange.py +96 -54
- ccxt/base/types.py +1 -1
- ccxt/bigone.py +5 -0
- ccxt/binance.py +54 -54
- ccxt/bingx.py +25 -29
- ccxt/bit2c.py +3 -0
- ccxt/bitbank.py +3 -0
- ccxt/bitbns.py +3 -0
- ccxt/bitfinex.py +6 -1
- ccxt/bitflyer.py +6 -1
- ccxt/bitget.py +9 -5
- ccxt/bithumb.py +3 -1
- ccxt/bitmart.py +22 -12
- ccxt/bitmex.py +99 -93
- ccxt/bitopro.py +7 -2
- ccxt/bitrue.py +4 -0
- ccxt/bitso.py +5 -2
- ccxt/bitstamp.py +3 -0
- ccxt/bitteam.py +5 -0
- ccxt/bitvavo.py +4 -0
- ccxt/blockchaincom.py +4 -0
- ccxt/blofin.py +3 -0
- ccxt/btcalpha.py +5 -0
- ccxt/btcbox.py +3 -2
- ccxt/btcmarkets.py +5 -0
- ccxt/btcturk.py +3 -0
- ccxt/bybit.py +13 -5
- ccxt/cex.py +2 -0
- ccxt/coinbase.py +20 -13
- ccxt/coinbaseexchange.py +5 -0
- ccxt/coinbaseinternational.py +23 -4
- ccxt/coincatch.py +3 -0
- ccxt/coincheck.py +2 -0
- ccxt/coinex.py +6 -2
- ccxt/coinlist.py +5 -0
- ccxt/coinmate.py +4 -0
- ccxt/coinmetro.py +9 -5
- ccxt/coinone.py +3 -0
- ccxt/coinsph.py +4 -0
- ccxt/coinspot.py +1 -0
- ccxt/cryptocom.py +5 -0
- ccxt/currencycom.py +3 -0
- ccxt/defx.py +5 -0
- ccxt/delta.py +4 -1
- ccxt/deribit.py +15 -28
- ccxt/digifinex.py +10 -5
- ccxt/ellipx.py +9 -5
- ccxt/exmo.py +7 -4
- ccxt/gate.py +5 -1
- ccxt/gemini.py +3 -0
- ccxt/hashkey.py +5 -4
- ccxt/hitbtc.py +6 -2
- ccxt/hollaex.py +7 -2
- ccxt/htx.py +8 -1
- ccxt/huobijp.py +5 -0
- ccxt/hyperliquid.py +9 -4
- ccxt/idex.py +5 -1
- ccxt/independentreserve.py +4 -0
- ccxt/indodax.py +3 -0
- ccxt/kraken.py +7 -5
- ccxt/krakenfutures.py +5 -2
- ccxt/kucoin.py +13 -6
- ccxt/kucoinfutures.py +5 -1
- ccxt/kuna.py +3 -0
- ccxt/latoken.py +4 -0
- ccxt/lbank.py +6 -1
- ccxt/luno.py +6 -1
- ccxt/mercado.py +4 -0
- ccxt/mexc.py +10 -9
- ccxt/ndax.py +6 -1
- ccxt/novadax.py +5 -0
- ccxt/oceanex.py +6 -2
- ccxt/okcoin.py +4 -0
- ccxt/okx.py +17 -5
- ccxt/onetrading.py +4 -0
- ccxt/oxfun.py +3 -0
- ccxt/p2b.py +3 -0
- ccxt/paradex.py +8 -2
- ccxt/phemex.py +10 -4
- ccxt/poloniex.py +6 -3
- ccxt/poloniexfutures.py +5 -1
- ccxt/pro/__init__.py +1 -1
- ccxt/pro/binance.py +2 -2
- ccxt/pro/bitcoincom.py +1 -4
- ccxt/pro/bitget.py +3 -3
- ccxt/pro/bitopro.py +1 -1
- ccxt/pro/bybit.py +7 -2
- ccxt/pro/cex.py +1 -1
- ccxt/pro/coincatch.py +3 -3
- ccxt/pro/mexc.py +3 -3
- ccxt/pro/okx.py +1 -1
- ccxt/probit.py +4 -0
- ccxt/test/tests_async.py +57 -30
- ccxt/test/tests_sync.py +57 -30
- ccxt/timex.py +4 -0
- ccxt/tokocrypto.py +5 -0
- ccxt/tradeogre.py +2 -0
- ccxt/upbit.py +5 -2
- ccxt/vertex.py +6 -2
- ccxt/wavesexchange.py +20 -3
- ccxt/wazirx.py +2 -0
- ccxt/whitebit.py +5 -4
- ccxt/woo.py +15 -5
- ccxt/woofipro.py +23 -9
- ccxt/xt.py +5 -0
- ccxt/yobit.py +5 -2
- ccxt/zaif.py +2 -0
- ccxt/zonda.py +2 -0
- {ccxt-4.4.52.dist-info → ccxt-4.4.57.dist-info}/METADATA +225 -143
- {ccxt-4.4.52.dist-info → ccxt-4.4.57.dist-info}/RECORD +220 -223
- ccxt/abstract/lykke.py +0 -29
- ccxt/async_support/lykke.py +0 -1370
- ccxt/lykke.py +0 -1370
- {ccxt-4.4.52.dist-info → ccxt-4.4.57.dist-info}/LICENSE.txt +0 -0
- {ccxt-4.4.52.dist-info → ccxt-4.4.57.dist-info}/WHEEL +0 -0
- {ccxt-4.4.52.dist-info → ccxt-4.4.57.dist-info}/top_level.txt +0 -0
ccxt/p2b.py
CHANGED
@@ -219,6 +219,7 @@ class p2b(Exchange, ImplicitAPI):
|
|
219
219
|
'limit': 100,
|
220
220
|
'daysBack': 100000, # todo
|
221
221
|
'untilDays': 1,
|
222
|
+
'symbolRequired': True,
|
222
223
|
},
|
223
224
|
'fetchOrder': None, # todo
|
224
225
|
'fetchOpenOrders': {
|
@@ -226,6 +227,7 @@ class p2b(Exchange, ImplicitAPI):
|
|
226
227
|
'limit': 100,
|
227
228
|
'trigger': False,
|
228
229
|
'trailing': False,
|
230
|
+
'symbolRequired': True,
|
229
231
|
},
|
230
232
|
'fetchOrders': None, # todo
|
231
233
|
'fetchClosedOrders': {
|
@@ -236,6 +238,7 @@ class p2b(Exchange, ImplicitAPI):
|
|
236
238
|
'untilDays': 1,
|
237
239
|
'trigger': False,
|
238
240
|
'trailing': False,
|
241
|
+
'symbolRequired': False,
|
239
242
|
},
|
240
243
|
'fetchOHLCV': {
|
241
244
|
'limit': 500,
|
ccxt/paradex.py
CHANGED
@@ -312,17 +312,20 @@ class paradex(Exchange, ImplicitAPI):
|
|
312
312
|
'limit': 100, # todo
|
313
313
|
'daysBack': 100000, # todo
|
314
314
|
'untilDays': 100000, # todo
|
315
|
+
'symbolRequired': False,
|
315
316
|
},
|
316
317
|
'fetchOrder': {
|
317
318
|
'marginMode': False,
|
318
319
|
'trigger': False,
|
319
320
|
'trailing': False,
|
321
|
+
'symbolRequired': False,
|
320
322
|
},
|
321
323
|
'fetchOpenOrders': {
|
322
324
|
'marginMode': False,
|
323
325
|
'limit': 100, # todo
|
324
326
|
'trigger': False,
|
325
327
|
'trailing': False,
|
328
|
+
'symbolRequired': False,
|
326
329
|
},
|
327
330
|
'fetchOrders': {
|
328
331
|
'marginMode': False,
|
@@ -331,6 +334,7 @@ class paradex(Exchange, ImplicitAPI):
|
|
331
334
|
'untilDays': 100000, # todo
|
332
335
|
'trigger': False,
|
333
336
|
'trailing': False,
|
337
|
+
'symbolRequired': False,
|
334
338
|
},
|
335
339
|
'fetchClosedOrders': None, # todo
|
336
340
|
'fetchOHLCV': {
|
@@ -1022,16 +1026,18 @@ class paradex(Exchange, ImplicitAPI):
|
|
1022
1026
|
def prepare_paradex_domain(self, l1=False):
|
1023
1027
|
systemConfig = self.get_system_config()
|
1024
1028
|
if l1 is True:
|
1025
|
-
|
1029
|
+
l1D = {
|
1026
1030
|
'name': 'Paradex',
|
1027
1031
|
'chainId': systemConfig['l1_chain_id'],
|
1028
1032
|
'version': '1',
|
1029
1033
|
}
|
1030
|
-
|
1034
|
+
return l1D
|
1035
|
+
domain = {
|
1031
1036
|
'name': 'Paradex',
|
1032
1037
|
'chainId': systemConfig['starknet_chain_id'],
|
1033
1038
|
'version': 1,
|
1034
1039
|
}
|
1040
|
+
return domain
|
1035
1041
|
|
1036
1042
|
def retrieve_account(self):
|
1037
1043
|
cachedAccount: dict = self.safe_dict(self.options, 'paradexAccount')
|
ccxt/phemex.py
CHANGED
@@ -342,17 +342,20 @@ class phemex(Exchange, ImplicitAPI):
|
|
342
342
|
'limit': 200,
|
343
343
|
'daysBack': 100000,
|
344
344
|
'untilDays': 2, # todo implement
|
345
|
+
'symbolRequired': False,
|
345
346
|
},
|
346
347
|
'fetchOrder': {
|
347
348
|
'marginMode': False,
|
348
349
|
'trigger': False,
|
349
350
|
'trailing': False,
|
351
|
+
'symbolRequired': True,
|
350
352
|
},
|
351
353
|
'fetchOpenOrders': {
|
352
354
|
'marginMode': False,
|
353
355
|
'limit': None,
|
354
356
|
'trigger': False,
|
355
357
|
'trailing': False,
|
358
|
+
'symbolRequired': True,
|
356
359
|
},
|
357
360
|
'fetchOrders': {
|
358
361
|
'marginMode': False,
|
@@ -361,6 +364,7 @@ class phemex(Exchange, ImplicitAPI):
|
|
361
364
|
'untilDays': None,
|
362
365
|
'trigger': False,
|
363
366
|
'trailing': False,
|
367
|
+
'symbolRequired': True,
|
364
368
|
},
|
365
369
|
'fetchClosedOrders': {
|
366
370
|
'marginMode': False,
|
@@ -370,6 +374,7 @@ class phemex(Exchange, ImplicitAPI):
|
|
370
374
|
'untilDays': 2,
|
371
375
|
'trigger': False,
|
372
376
|
'trailing': False,
|
377
|
+
'symbolRequired': False,
|
373
378
|
},
|
374
379
|
'fetchOHLCV': {
|
375
380
|
'limit': 1000,
|
@@ -1262,7 +1267,7 @@ class phemex(Exchange, ImplicitAPI):
|
|
1262
1267
|
return self.to_en(price, market['priceScale'])
|
1263
1268
|
|
1264
1269
|
def from_en(self, en, scale):
|
1265
|
-
if en is None:
|
1270
|
+
if en is None or scale is None:
|
1266
1271
|
return None
|
1267
1272
|
precise = Precise(en)
|
1268
1273
|
precise.decimals = self.sum(precise.decimals, scale)
|
@@ -2167,8 +2172,9 @@ class phemex(Exchange, ImplicitAPI):
|
|
2167
2172
|
# }
|
2168
2173
|
# }
|
2169
2174
|
#
|
2170
|
-
|
2171
|
-
|
2175
|
+
if type == 'swap':
|
2176
|
+
return self.parse_swap_balance(response)
|
2177
|
+
return self.parse_spot_balance(response)
|
2172
2178
|
|
2173
2179
|
def parse_order_status(self, status: Str):
|
2174
2180
|
statuses: dict = {
|
@@ -2790,7 +2796,7 @@ class phemex(Exchange, ImplicitAPI):
|
|
2790
2796
|
data = self.safe_dict(response, 'data', {})
|
2791
2797
|
return self.parse_order(data, market)
|
2792
2798
|
|
2793
|
-
def edit_order(self, id: str, symbol: str, type: OrderType
|
2799
|
+
def edit_order(self, id: str, symbol: str, type: OrderType, side: OrderSide, amount: Num = None, price: Num = None, params={}):
|
2794
2800
|
"""
|
2795
2801
|
edit a trade order
|
2796
2802
|
|
ccxt/poloniex.py
CHANGED
@@ -317,17 +317,20 @@ class poloniex(Exchange, ImplicitAPI):
|
|
317
317
|
'limit': 1000,
|
318
318
|
'daysBack': 100000,
|
319
319
|
'untilDays': 100000,
|
320
|
+
'symbolRequired': False,
|
320
321
|
},
|
321
322
|
'fetchOrder': {
|
322
323
|
'marginMode': False,
|
323
324
|
'trigger': False,
|
324
325
|
'trailing': False,
|
326
|
+
'symbolRequired': False,
|
325
327
|
},
|
326
328
|
'fetchOpenOrders': {
|
327
329
|
'marginMode': False,
|
328
330
|
'limit': 2000,
|
329
331
|
'trigger': False,
|
330
332
|
'trailing': False,
|
333
|
+
'symbolRequired': False,
|
331
334
|
},
|
332
335
|
'fetchOrders': None,
|
333
336
|
'fetchClosedOrders': None, # todo implement
|
@@ -1777,7 +1780,7 @@ class poloniex(Exchange, ImplicitAPI):
|
|
1777
1780
|
network = self.safe_string_upper(params, 'network') # self line allows the user to specify either ERC20 or ETH
|
1778
1781
|
network = self.safe_string(networks, network, network) # handle ERC20>ETH alias
|
1779
1782
|
if network is not None:
|
1780
|
-
request['currency']
|
1783
|
+
request['currency'] = request['currency'] + network # when network the currency need to be changed to currency+network https://docs.poloniex.com/#withdraw on MultiChain Currencies section
|
1781
1784
|
params = self.omit(params, 'network')
|
1782
1785
|
else:
|
1783
1786
|
if currency['id'] == 'USDT':
|
@@ -1823,7 +1826,7 @@ class poloniex(Exchange, ImplicitAPI):
|
|
1823
1826
|
network = self.safe_string_upper(params, 'network') # self line allows the user to specify either ERC20 or ETH
|
1824
1827
|
network = self.safe_string(networks, network, network) # handle ERC20>ETH alias
|
1825
1828
|
if network is not None:
|
1826
|
-
request['currency']
|
1829
|
+
request['currency'] = request['currency'] + network # when network the currency need to be changed to currency+network https://docs.poloniex.com/#withdraw on MultiChain Currencies section
|
1827
1830
|
params = self.omit(params, 'network')
|
1828
1831
|
else:
|
1829
1832
|
if currency['id'] == 'USDT':
|
@@ -1928,7 +1931,7 @@ class poloniex(Exchange, ImplicitAPI):
|
|
1928
1931
|
network = self.safe_string_upper(params, 'network') # self line allows the user to specify either ERC20 or ETH
|
1929
1932
|
network = self.safe_string(networks, network, network) # handle ERC20>ETH alias
|
1930
1933
|
if network is not None:
|
1931
|
-
request['currency']
|
1934
|
+
request['currency'] = request['currency'] + network # when network the currency need to be changed to currency+network https://docs.poloniex.com/#withdraw on MultiChain Currencies section
|
1932
1935
|
params = self.omit(params, 'network')
|
1933
1936
|
response = self.privatePostWalletsWithdraw(self.extend(request, params))
|
1934
1937
|
#
|
ccxt/poloniexfutures.py
CHANGED
@@ -226,17 +226,20 @@ class poloniexfutures(Exchange, ImplicitAPI):
|
|
226
226
|
'limit': None,
|
227
227
|
'daysBack': 100000,
|
228
228
|
'untilDays': 7,
|
229
|
+
'symbolRequired': False,
|
229
230
|
},
|
230
231
|
'fetchOrder': {
|
231
232
|
'marginMode': False,
|
232
233
|
'trigger': False,
|
233
234
|
'trailing': False,
|
235
|
+
'symbolRequired': False,
|
234
236
|
},
|
235
237
|
'fetchOpenOrders': {
|
236
238
|
'marginMode': True,
|
237
239
|
'limit': None,
|
238
240
|
'trigger': False,
|
239
241
|
'trailing': False,
|
242
|
+
'symbolRequired': False,
|
240
243
|
},
|
241
244
|
'fetchOrders': None, # todo
|
242
245
|
'fetchClosedOrders': {
|
@@ -247,6 +250,7 @@ class poloniexfutures(Exchange, ImplicitAPI):
|
|
247
250
|
'untilDays': 100000,
|
248
251
|
'trigger': False,
|
249
252
|
'trailing': False,
|
253
|
+
'symbolRequired': False,
|
250
254
|
},
|
251
255
|
'fetchOHLCV': {
|
252
256
|
'limit': 200, # todo implement
|
@@ -1445,7 +1449,7 @@ class poloniexfutures(Exchange, ImplicitAPI):
|
|
1445
1449
|
"""
|
1446
1450
|
return self.fetch_orders_by_status('closed', symbol, since, limit, params)
|
1447
1451
|
|
1448
|
-
def fetch_order(self, id: Str
|
1452
|
+
def fetch_order(self, id: Str, symbol: Str = None, params={}):
|
1449
1453
|
"""
|
1450
1454
|
fetches information on an order made by the user
|
1451
1455
|
|
ccxt/pro/__init__.py
CHANGED
ccxt/pro/binance.py
CHANGED
@@ -247,7 +247,7 @@ class binance(ccxt.async_support.binance):
|
|
247
247
|
type = None
|
248
248
|
type, params = self.handle_market_type_and_params('watchLiquidationsForSymbols', firstMarket, params)
|
249
249
|
if type == 'spot':
|
250
|
-
raise BadRequest(self.id + 'watchLiquidationsForSymbols is not supported for spot symbols')
|
250
|
+
raise BadRequest(self.id + ' watchLiquidationsForSymbols is not supported for spot symbols')
|
251
251
|
subType = None
|
252
252
|
subType, params = self.handle_sub_type_and_params('watchLiquidationsForSymbols', firstMarket, params)
|
253
253
|
if self.isLinear(type, subType):
|
@@ -3705,7 +3705,7 @@ class binance(ccxt.async_support.binance):
|
|
3705
3705
|
payload['limit'] = limit
|
3706
3706
|
fromId = self.safe_integer(params, 'fromId')
|
3707
3707
|
if fromId is not None and since is not None:
|
3708
|
-
raise BadRequest(self.id + 'fetchMyTradesWs does not support fetching by both fromId and since parameters at the same time')
|
3708
|
+
raise BadRequest(self.id + ' fetchMyTradesWs does not support fetching by both fromId and since parameters at the same time')
|
3709
3709
|
message: dict = {
|
3710
3710
|
'id': messageHash,
|
3711
3711
|
'method': 'myTrades',
|
ccxt/pro/bitcoincom.py
CHANGED
@@ -22,10 +22,7 @@ class bitcoincom(hitbtc):
|
|
22
22
|
'urls': {
|
23
23
|
'logo': 'https://user-images.githubusercontent.com/1294454/97296144-514fa300-1861-11eb-952b-3d55d492200b.jpg',
|
24
24
|
'api': {
|
25
|
-
'ws':
|
26
|
-
'public': 'wss://api.fmfw.io/api/3/ws/public',
|
27
|
-
'private': 'wss://api.fmfw.io/api/3/ws/trading',
|
28
|
-
},
|
25
|
+
'ws': 'wss://api.fmfw.io/api/2/ws',
|
29
26
|
},
|
30
27
|
},
|
31
28
|
'fees': {
|
ccxt/pro/bitget.py
CHANGED
@@ -1916,7 +1916,7 @@ class bitget(ccxt.async_support.bitget):
|
|
1916
1916
|
del client.subscriptions[subMessageHash]
|
1917
1917
|
if messageHash in client.subscriptions:
|
1918
1918
|
del client.subscriptions[messageHash]
|
1919
|
-
error = UnsubscribeError(self.id + 'orderbook ' + symbol)
|
1919
|
+
error = UnsubscribeError(self.id + ' orderbook ' + symbol)
|
1920
1920
|
client.reject(error, subMessageHash)
|
1921
1921
|
client.resolve(True, messageHash)
|
1922
1922
|
|
@@ -1938,7 +1938,7 @@ class bitget(ccxt.async_support.bitget):
|
|
1938
1938
|
del client.subscriptions[subMessageHash]
|
1939
1939
|
if messageHash in client.subscriptions:
|
1940
1940
|
del client.subscriptions[messageHash]
|
1941
|
-
error = UnsubscribeError(self.id + 'trades ' + symbol)
|
1941
|
+
error = UnsubscribeError(self.id + ' trades ' + symbol)
|
1942
1942
|
client.reject(error, subMessageHash)
|
1943
1943
|
client.resolve(True, messageHash)
|
1944
1944
|
|
@@ -1960,7 +1960,7 @@ class bitget(ccxt.async_support.bitget):
|
|
1960
1960
|
del client.subscriptions[subMessageHash]
|
1961
1961
|
if messageHash in client.subscriptions:
|
1962
1962
|
del client.subscriptions[messageHash]
|
1963
|
-
error = UnsubscribeError(self.id + 'ticker ' + symbol)
|
1963
|
+
error = UnsubscribeError(self.id + ' ticker ' + symbol)
|
1964
1964
|
client.reject(error, subMessageHash)
|
1965
1965
|
client.resolve(True, messageHash)
|
1966
1966
|
|
ccxt/pro/bitopro.py
CHANGED
@@ -77,7 +77,7 @@ class bitopro(ccxt.async_support.bitopro):
|
|
77
77
|
if limit is None:
|
78
78
|
endPart = market['id']
|
79
79
|
else:
|
80
|
-
endPart = market['id'] + ':' +
|
80
|
+
endPart = market['id'] + ':' + limit
|
81
81
|
orderbook = await self.watch_public('order-books', messageHash, endPart)
|
82
82
|
return orderbook.limit()
|
83
83
|
|
ccxt/pro/bybit.py
CHANGED
@@ -833,10 +833,15 @@ class bybit(ccxt.async_support.bybit):
|
|
833
833
|
market = self.market(symbols[0])
|
834
834
|
if limit is None:
|
835
835
|
limit = 50 if (market['spot']) else 500
|
836
|
+
if market['option']:
|
837
|
+
limit = 100
|
836
838
|
else:
|
837
839
|
if not market['spot']:
|
838
|
-
|
839
|
-
|
840
|
+
if market['option']:
|
841
|
+
if (limit != 25) and (limit != 100):
|
842
|
+
raise BadRequest(self.id + ' watchOrderBookForSymbols() can only use limit 25 and 100 for option markets.')
|
843
|
+
elif (limit != 1) and (limit != 50) and (limit != 200) and (limit != 500):
|
844
|
+
# bybit only support limit 1, 50, 200, 500 for contract
|
840
845
|
raise BadRequest(self.id + ' watchOrderBookForSymbols() can only use limit 1, 50, 200 and 500.')
|
841
846
|
topics = []
|
842
847
|
messageHashes = []
|
ccxt/pro/cex.py
CHANGED
@@ -1188,7 +1188,7 @@ class cex(ccxt.async_support.cex):
|
|
1188
1188
|
:returns Order[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
|
1189
1189
|
"""
|
1190
1190
|
if symbol is None:
|
1191
|
-
raise ArgumentsRequired(self.id + 'fetchOpenOrdersWs requires a symbol.')
|
1191
|
+
raise ArgumentsRequired(self.id + ' fetchOpenOrdersWs requires a symbol.')
|
1192
1192
|
await self.load_markets()
|
1193
1193
|
await self.authenticate()
|
1194
1194
|
market = self.market(symbol)
|
ccxt/pro/coincatch.py
CHANGED
@@ -1403,7 +1403,7 @@ class coincatch(ccxt.async_support.coincatch):
|
|
1403
1403
|
del client.subscriptions[subMessageHash]
|
1404
1404
|
if messageHash in client.subscriptions:
|
1405
1405
|
del client.subscriptions[messageHash]
|
1406
|
-
error = UnsubscribeError(self.id + 'orderbook ' + symbol)
|
1406
|
+
error = UnsubscribeError(self.id + ' orderbook ' + symbol)
|
1407
1407
|
client.reject(error, subMessageHash)
|
1408
1408
|
client.resolve(True, messageHash)
|
1409
1409
|
|
@@ -1422,7 +1422,7 @@ class coincatch(ccxt.async_support.coincatch):
|
|
1422
1422
|
del client.subscriptions[subMessageHash]
|
1423
1423
|
if messageHash in client.subscriptions:
|
1424
1424
|
del client.subscriptions[messageHash]
|
1425
|
-
error = UnsubscribeError(self.id + 'trades ' + symbol)
|
1425
|
+
error = UnsubscribeError(self.id + ' trades ' + symbol)
|
1426
1426
|
client.reject(error, subMessageHash)
|
1427
1427
|
client.resolve(True, messageHash)
|
1428
1428
|
|
@@ -1441,7 +1441,7 @@ class coincatch(ccxt.async_support.coincatch):
|
|
1441
1441
|
del client.subscriptions[subMessageHash]
|
1442
1442
|
if messageHash in client.subscriptions:
|
1443
1443
|
del client.subscriptions[messageHash]
|
1444
|
-
error = UnsubscribeError(self.id + 'ticker ' + symbol)
|
1444
|
+
error = UnsubscribeError(self.id + ' ticker ' + symbol)
|
1445
1445
|
client.reject(error, subMessageHash)
|
1446
1446
|
client.resolve(True, messageHash)
|
1447
1447
|
|
ccxt/pro/mexc.py
CHANGED
@@ -225,7 +225,7 @@ class mexc(ccxt.async_support.mexc):
|
|
225
225
|
topics = []
|
226
226
|
if not miniTicker:
|
227
227
|
if symbols is None:
|
228
|
-
raise ArgumentsRequired(self.id + 'watchTickers required symbols argument for the bookTicker channel')
|
228
|
+
raise ArgumentsRequired(self.id + ' watchTickers required symbols argument for the bookTicker channel')
|
229
229
|
marketIds = self.market_ids(symbols)
|
230
230
|
for i in range(0, len(marketIds)):
|
231
231
|
marketId = marketIds[i]
|
@@ -406,12 +406,12 @@ class mexc(ccxt.async_support.mexc):
|
|
406
406
|
symbols = self.market_symbols(symbols, None, True, False, True)
|
407
407
|
marketType = None
|
408
408
|
if symbols is None:
|
409
|
-
raise ArgumentsRequired(self.id + 'watchBidsAsks required symbols argument')
|
409
|
+
raise ArgumentsRequired(self.id + ' watchBidsAsks required symbols argument')
|
410
410
|
markets = self.markets_for_symbols(symbols)
|
411
411
|
marketType, params = self.handle_market_type_and_params('watchBidsAsks', markets[0], params)
|
412
412
|
isSpot = marketType == 'spot'
|
413
413
|
if not isSpot:
|
414
|
-
raise NotSupported(self.id + 'watchBidsAsks only support spot market')
|
414
|
+
raise NotSupported(self.id + ' watchBidsAsks only support spot market')
|
415
415
|
messageHashes = []
|
416
416
|
topics = []
|
417
417
|
for i in range(0, len(symbols)):
|
ccxt/pro/okx.py
CHANGED
@@ -2076,7 +2076,7 @@ class okx(ccxt.async_support.okx):
|
|
2076
2076
|
await self.authenticate()
|
2077
2077
|
market = self.market(symbol)
|
2078
2078
|
if market['type'] != 'option':
|
2079
|
-
raise BadRequest(self.id + 'cancelAllOrdersWs is only applicable to Option in Portfolio Margin mode, and MMP privilege is required.')
|
2079
|
+
raise BadRequest(self.id + ' cancelAllOrdersWs is only applicable to Option in Portfolio Margin mode, and MMP privilege is required.')
|
2080
2080
|
url = self.get_url('private', 'private')
|
2081
2081
|
messageHash = self.request_id()
|
2082
2082
|
request: dict = {
|
ccxt/probit.py
CHANGED
@@ -217,17 +217,20 @@ class probit(Exchange, ImplicitAPI):
|
|
217
217
|
'limit': 1000,
|
218
218
|
'daysBack': 100000, # todo
|
219
219
|
'untilDays': 100000, # todo
|
220
|
+
'symbolRequired': False,
|
220
221
|
},
|
221
222
|
'fetchOrder': {
|
222
223
|
'marginMode': False,
|
223
224
|
'trigger': False,
|
224
225
|
'trailing': False,
|
226
|
+
'symbolRequired': True,
|
225
227
|
},
|
226
228
|
'fetchOpenOrders': {
|
227
229
|
'marginMode': False,
|
228
230
|
'limit': None,
|
229
231
|
'trigger': False,
|
230
232
|
'trailing': False,
|
233
|
+
'symbolRequired': False,
|
231
234
|
},
|
232
235
|
'fetchOrders': None,
|
233
236
|
'fetchClosedOrders': {
|
@@ -238,6 +241,7 @@ class probit(Exchange, ImplicitAPI):
|
|
238
241
|
'untilDays': 90,
|
239
242
|
'trigger': False,
|
240
243
|
'trailing': False,
|
244
|
+
'symbolRequired': False,
|
241
245
|
},
|
242
246
|
'fetchOHLCV': {
|
243
247
|
'limit': 4000,
|