ccxt 4.2.84__py2.py3-none-any.whl → 4.2.85__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 -1
- ccxt/ace.py +5 -5
- ccxt/ascendex.py +8 -8
- ccxt/async_support/__init__.py +1 -1
- ccxt/async_support/ace.py +5 -5
- ccxt/async_support/ascendex.py +8 -8
- ccxt/async_support/base/exchange.py +3 -27
- ccxt/async_support/bigone.py +12 -12
- ccxt/async_support/binance.py +20 -32
- ccxt/async_support/bingx.py +12 -9
- ccxt/async_support/bit2c.py +1 -1
- ccxt/async_support/bitbank.py +8 -8
- ccxt/async_support/bitbns.py +5 -5
- ccxt/async_support/bitfinex.py +1 -1
- ccxt/async_support/bitfinex2.py +1 -1
- ccxt/async_support/bitget.py +29 -24
- ccxt/async_support/bithumb.py +5 -5
- ccxt/async_support/bitmart.py +16 -16
- ccxt/async_support/bitopro.py +1 -1
- ccxt/async_support/bitrue.py +4 -4
- ccxt/async_support/bitso.py +5 -5
- ccxt/async_support/bitstamp.py +1 -1
- ccxt/async_support/bitteam.py +8 -8
- ccxt/async_support/bl3p.py +1 -1
- ccxt/async_support/btcturk.py +6 -6
- ccxt/async_support/bybit.py +30 -83
- ccxt/async_support/coincheck.py +4 -4
- ccxt/async_support/coinex.py +11 -11
- ccxt/async_support/coinlist.py +7 -7
- ccxt/async_support/coinmate.py +4 -4
- ccxt/async_support/coinmetro.py +3 -3
- ccxt/async_support/coinone.py +5 -5
- ccxt/async_support/coinspot.py +2 -2
- ccxt/async_support/cryptocom.py +17 -17
- ccxt/async_support/currencycom.py +1 -1
- ccxt/async_support/delta.py +0 -8
- ccxt/async_support/deribit.py +16 -80
- ccxt/async_support/digifinex.py +8 -8
- ccxt/async_support/exmo.py +8 -8
- ccxt/async_support/gate.py +0 -8
- ccxt/async_support/hitbtc.py +5 -4
- ccxt/async_support/hollaex.py +7 -7
- ccxt/async_support/htx.py +7 -7
- ccxt/async_support/huobijp.py +3 -3
- ccxt/async_support/idex.py +2 -2
- ccxt/async_support/independentreserve.py +2 -2
- ccxt/async_support/indodax.py +2 -2
- ccxt/async_support/kraken.py +8 -8
- ccxt/async_support/krakenfutures.py +6 -6
- ccxt/async_support/kucoin.py +4 -1
- ccxt/async_support/kucoinfutures.py +8 -8
- ccxt/async_support/kuna.py +16 -16
- ccxt/async_support/latoken.py +2 -2
- ccxt/async_support/lbank.py +10 -10
- ccxt/async_support/luno.py +4 -4
- ccxt/async_support/mercado.py +5 -5
- ccxt/async_support/mexc.py +6 -6
- ccxt/async_support/ndax.py +1 -1
- ccxt/async_support/novadax.py +9 -9
- ccxt/async_support/oceanex.py +7 -7
- ccxt/async_support/okcoin.py +13 -13
- ccxt/async_support/okx.py +23 -31
- ccxt/async_support/onetrading.py +4 -4
- ccxt/async_support/p2b.py +7 -7
- ccxt/async_support/phemex.py +12 -12
- ccxt/async_support/poloniexfutures.py +5 -5
- ccxt/async_support/probit.py +11 -11
- ccxt/async_support/timex.py +7 -7
- ccxt/async_support/tokocrypto.py +9 -9
- ccxt/async_support/wavesexchange.py +3 -3
- ccxt/async_support/whitebit.py +5 -5
- ccxt/async_support/woo.py +1 -1
- ccxt/async_support/zaif.py +1 -1
- ccxt/async_support/zonda.py +7 -7
- ccxt/base/exchange.py +66 -23
- ccxt/bigone.py +12 -12
- ccxt/binance.py +20 -32
- ccxt/bingx.py +12 -9
- ccxt/bit2c.py +1 -1
- ccxt/bitbank.py +8 -8
- ccxt/bitbns.py +5 -5
- ccxt/bitfinex.py +1 -1
- ccxt/bitfinex2.py +1 -1
- ccxt/bitget.py +29 -24
- ccxt/bithumb.py +5 -5
- ccxt/bitmart.py +16 -16
- ccxt/bitopro.py +1 -1
- ccxt/bitrue.py +4 -4
- ccxt/bitso.py +5 -5
- ccxt/bitstamp.py +1 -1
- ccxt/bitteam.py +8 -8
- ccxt/bl3p.py +1 -1
- ccxt/btcturk.py +6 -6
- ccxt/bybit.py +30 -83
- ccxt/coincheck.py +4 -4
- ccxt/coinex.py +11 -11
- ccxt/coinlist.py +7 -7
- ccxt/coinmate.py +4 -4
- ccxt/coinmetro.py +3 -3
- ccxt/coinone.py +5 -5
- ccxt/coinspot.py +2 -2
- ccxt/cryptocom.py +17 -17
- ccxt/currencycom.py +1 -1
- ccxt/delta.py +0 -8
- ccxt/deribit.py +16 -80
- ccxt/digifinex.py +8 -8
- ccxt/exmo.py +8 -8
- ccxt/gate.py +0 -8
- ccxt/hitbtc.py +5 -4
- ccxt/hollaex.py +7 -7
- ccxt/htx.py +7 -7
- ccxt/huobijp.py +3 -3
- ccxt/idex.py +2 -2
- ccxt/independentreserve.py +2 -2
- ccxt/indodax.py +2 -2
- ccxt/kraken.py +8 -8
- ccxt/krakenfutures.py +6 -6
- ccxt/kucoin.py +4 -1
- ccxt/kucoinfutures.py +8 -8
- ccxt/kuna.py +16 -16
- ccxt/latoken.py +2 -2
- ccxt/lbank.py +10 -10
- ccxt/luno.py +4 -4
- ccxt/mercado.py +5 -5
- ccxt/mexc.py +6 -6
- ccxt/ndax.py +1 -1
- ccxt/novadax.py +9 -9
- ccxt/oceanex.py +7 -7
- ccxt/okcoin.py +13 -13
- ccxt/okx.py +23 -31
- ccxt/onetrading.py +4 -4
- ccxt/p2b.py +7 -7
- ccxt/phemex.py +12 -12
- ccxt/poloniexfutures.py +5 -5
- ccxt/pro/__init__.py +1 -1
- ccxt/pro/binance.py +150 -112
- ccxt/pro/kucoin.py +6 -7
- ccxt/pro/okx.py +12 -1
- ccxt/probit.py +11 -11
- ccxt/timex.py +7 -7
- ccxt/tokocrypto.py +9 -9
- ccxt/wavesexchange.py +3 -3
- ccxt/whitebit.py +5 -5
- ccxt/woo.py +1 -1
- ccxt/zaif.py +1 -1
- ccxt/zonda.py +7 -7
- {ccxt-4.2.84.dist-info → ccxt-4.2.85.dist-info}/METADATA +4 -4
- {ccxt-4.2.84.dist-info → ccxt-4.2.85.dist-info}/RECORD +150 -150
- {ccxt-4.2.84.dist-info → ccxt-4.2.85.dist-info}/WHEEL +0 -0
- {ccxt-4.2.84.dist-info → ccxt-4.2.85.dist-info}/top_level.txt +0 -0
ccxt/mexc.py
CHANGED
@@ -2680,7 +2680,7 @@ class mexc(Exchange, ImplicitAPI):
|
|
2680
2680
|
# ]
|
2681
2681
|
# }
|
2682
2682
|
#
|
2683
|
-
data = self.
|
2683
|
+
data = self.safe_list(response, 'data')
|
2684
2684
|
return self.parse_orders(data, market)
|
2685
2685
|
|
2686
2686
|
def fetch_open_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
|
@@ -2930,7 +2930,7 @@ class mexc(Exchange, ImplicitAPI):
|
|
2930
2930
|
# ]
|
2931
2931
|
# }
|
2932
2932
|
#
|
2933
|
-
data = self.
|
2933
|
+
data = self.safe_list(response, 'data')
|
2934
2934
|
return self.parse_orders(data, market)
|
2935
2935
|
|
2936
2936
|
def cancel_all_orders(self, symbol: Str = None, params={}):
|
@@ -3013,7 +3013,7 @@ class mexc(Exchange, ImplicitAPI):
|
|
3013
3013
|
# "code": "0"
|
3014
3014
|
# }
|
3015
3015
|
#
|
3016
|
-
data = self.
|
3016
|
+
data = self.safe_list(response, 'data', [])
|
3017
3017
|
return self.parse_orders(data, market)
|
3018
3018
|
|
3019
3019
|
def parse_order(self, order, market: Market = None) -> Order:
|
@@ -4084,7 +4084,7 @@ class mexc(Exchange, ImplicitAPI):
|
|
4084
4084
|
# ]
|
4085
4085
|
# }
|
4086
4086
|
#
|
4087
|
-
data = self.
|
4087
|
+
data = self.safe_list(response, 'data')
|
4088
4088
|
return self.parse_leverage_tiers(data, symbols, 'symbol')
|
4089
4089
|
|
4090
4090
|
def parse_market_leverage_tiers(self, info, market: Market = None):
|
@@ -4505,7 +4505,7 @@ class mexc(Exchange, ImplicitAPI):
|
|
4505
4505
|
# ]
|
4506
4506
|
# }
|
4507
4507
|
#
|
4508
|
-
data = self.
|
4508
|
+
data = self.safe_list(response, 'data', [])
|
4509
4509
|
return self.parse_positions(data, symbols)
|
4510
4510
|
|
4511
4511
|
def parse_position(self, position, market: Market = None):
|
@@ -4596,7 +4596,7 @@ class mexc(Exchange, ImplicitAPI):
|
|
4596
4596
|
# }
|
4597
4597
|
# }
|
4598
4598
|
#
|
4599
|
-
data = self.
|
4599
|
+
data = self.safe_dict(response, 'data', {})
|
4600
4600
|
return self.parse_transfer(data)
|
4601
4601
|
elif marketType == 'swap':
|
4602
4602
|
raise BadRequest(self.id + ' fetchTransfer() is not supported for ' + marketType)
|
ccxt/ndax.py
CHANGED
@@ -1858,7 +1858,7 @@ class ndax(Exchange, ImplicitAPI):
|
|
1858
1858
|
# ]
|
1859
1859
|
#
|
1860
1860
|
grouped = self.group_by(response, 'ChangeReason')
|
1861
|
-
trades = self.
|
1861
|
+
trades = self.safe_list(grouped, 'Trade', [])
|
1862
1862
|
return self.parse_trades(trades, market, since, limit)
|
1863
1863
|
|
1864
1864
|
def fetch_deposit_address(self, code: str, params={}):
|
ccxt/novadax.py
CHANGED
@@ -405,7 +405,7 @@ class novadax(Exchange, ImplicitAPI):
|
|
405
405
|
# "message":"Success"
|
406
406
|
# }
|
407
407
|
#
|
408
|
-
data = self.
|
408
|
+
data = self.safe_dict(response, 'data', {})
|
409
409
|
return self.parse_ticker(data, market)
|
410
410
|
|
411
411
|
def fetch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
|
@@ -593,7 +593,7 @@ class novadax(Exchange, ImplicitAPI):
|
|
593
593
|
# "message":"Success"
|
594
594
|
# }
|
595
595
|
#
|
596
|
-
data = self.
|
596
|
+
data = self.safe_list(response, 'data', [])
|
597
597
|
return self.parse_trades(data, market, since, limit)
|
598
598
|
|
599
599
|
def fetch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={}) -> List[list]:
|
@@ -644,7 +644,7 @@ class novadax(Exchange, ImplicitAPI):
|
|
644
644
|
# "message": "Success"
|
645
645
|
# }
|
646
646
|
#
|
647
|
-
data = self.
|
647
|
+
data = self.safe_list(response, 'data', [])
|
648
648
|
return self.parse_ohlcvs(data, market, timeframe, since, limit)
|
649
649
|
|
650
650
|
def parse_ohlcv(self, ohlcv, market: Market = None) -> list:
|
@@ -804,7 +804,7 @@ class novadax(Exchange, ImplicitAPI):
|
|
804
804
|
# "message": "Success"
|
805
805
|
# }
|
806
806
|
#
|
807
|
-
data = self.
|
807
|
+
data = self.safe_dict(response, 'data', {})
|
808
808
|
return self.parse_order(data, market)
|
809
809
|
|
810
810
|
def cancel_order(self, id: str, symbol: Str = None, params={}):
|
@@ -830,7 +830,7 @@ class novadax(Exchange, ImplicitAPI):
|
|
830
830
|
# "message": "Success"
|
831
831
|
# }
|
832
832
|
#
|
833
|
-
data = self.
|
833
|
+
data = self.safe_dict(response, 'data', {})
|
834
834
|
return self.parse_order(data)
|
835
835
|
|
836
836
|
def fetch_order(self, id: str, symbol: Str = None, params={}):
|
@@ -867,7 +867,7 @@ class novadax(Exchange, ImplicitAPI):
|
|
867
867
|
# "message": "Success"
|
868
868
|
# }
|
869
869
|
#
|
870
|
-
data = self.
|
870
|
+
data = self.safe_dict(response, 'data', {})
|
871
871
|
return self.parse_order(data)
|
872
872
|
|
873
873
|
def fetch_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
|
@@ -922,7 +922,7 @@ class novadax(Exchange, ImplicitAPI):
|
|
922
922
|
# "message": "Success"
|
923
923
|
# }
|
924
924
|
#
|
925
|
-
data = self.
|
925
|
+
data = self.safe_list(response, 'data', [])
|
926
926
|
return self.parse_orders(data, market, since, limit)
|
927
927
|
|
928
928
|
def fetch_open_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
|
@@ -1297,7 +1297,7 @@ class novadax(Exchange, ImplicitAPI):
|
|
1297
1297
|
# "message": "Success"
|
1298
1298
|
# }
|
1299
1299
|
#
|
1300
|
-
data = self.
|
1300
|
+
data = self.safe_list(response, 'data', [])
|
1301
1301
|
return self.parse_transactions(data, currency, since, limit)
|
1302
1302
|
|
1303
1303
|
def parse_transaction_status(self, status):
|
@@ -1435,7 +1435,7 @@ class novadax(Exchange, ImplicitAPI):
|
|
1435
1435
|
# "message": "Success"
|
1436
1436
|
# }
|
1437
1437
|
#
|
1438
|
-
data = self.
|
1438
|
+
data = self.safe_list(response, 'data', [])
|
1439
1439
|
return self.parse_trades(data, market, since, limit)
|
1440
1440
|
|
1441
1441
|
def sign(self, path, api='public', method='GET', params={}, headers=None, body=None):
|
ccxt/oceanex.py
CHANGED
@@ -271,7 +271,7 @@ class oceanex(Exchange, ImplicitAPI):
|
|
271
271
|
# }
|
272
272
|
# }
|
273
273
|
#
|
274
|
-
data = self.
|
274
|
+
data = self.safe_dict(response, 'data', {})
|
275
275
|
return self.parse_ticker(data, market)
|
276
276
|
|
277
277
|
def fetch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
|
@@ -484,7 +484,7 @@ class oceanex(Exchange, ImplicitAPI):
|
|
484
484
|
# ]
|
485
485
|
# }
|
486
486
|
#
|
487
|
-
data = self.
|
487
|
+
data = self.safe_list(response, 'data')
|
488
488
|
return self.parse_trades(data, market, since, limit)
|
489
489
|
|
490
490
|
def parse_trade(self, trade, market: Market = None) -> Trade:
|
@@ -620,7 +620,7 @@ class oceanex(Exchange, ImplicitAPI):
|
|
620
620
|
if type == 'limit':
|
621
621
|
request['price'] = self.price_to_precision(symbol, price)
|
622
622
|
response = self.privatePostOrders(self.extend(request, params))
|
623
|
-
data = self.
|
623
|
+
data = self.safe_dict(response, 'data')
|
624
624
|
return self.parse_order(data, market)
|
625
625
|
|
626
626
|
def fetch_order(self, id: str, symbol: Str = None, params={}):
|
@@ -752,7 +752,7 @@ class oceanex(Exchange, ImplicitAPI):
|
|
752
752
|
if limit is not None:
|
753
753
|
request['limit'] = limit
|
754
754
|
response = self.publicPostK(self.extend(request, params))
|
755
|
-
ohlcvs = self.
|
755
|
+
ohlcvs = self.safe_list(response, 'data', [])
|
756
756
|
return self.parse_ohlcvs(ohlcvs, market, timeframe, since, limit)
|
757
757
|
|
758
758
|
def parse_order(self, order, market: Market = None) -> Order:
|
@@ -828,7 +828,7 @@ class oceanex(Exchange, ImplicitAPI):
|
|
828
828
|
"""
|
829
829
|
self.load_markets()
|
830
830
|
response = self.privatePostOrderDelete(self.extend({'id': id}, params))
|
831
|
-
data = self.
|
831
|
+
data = self.safe_dict(response, 'data')
|
832
832
|
return self.parse_order(data)
|
833
833
|
|
834
834
|
def cancel_orders(self, ids, symbol: Str = None, params={}):
|
@@ -842,7 +842,7 @@ class oceanex(Exchange, ImplicitAPI):
|
|
842
842
|
"""
|
843
843
|
self.load_markets()
|
844
844
|
response = self.privatePostOrderDeleteMulti(self.extend({'ids': ids}, params))
|
845
|
-
data = self.
|
845
|
+
data = self.safe_list(response, 'data')
|
846
846
|
return self.parse_orders(data)
|
847
847
|
|
848
848
|
def cancel_all_orders(self, symbol: Str = None, params={}):
|
@@ -855,7 +855,7 @@ class oceanex(Exchange, ImplicitAPI):
|
|
855
855
|
"""
|
856
856
|
self.load_markets()
|
857
857
|
response = self.privatePostOrdersClear(params)
|
858
|
-
data = self.
|
858
|
+
data = self.safe_list(response, 'data')
|
859
859
|
return self.parse_orders(data)
|
860
860
|
|
861
861
|
def sign(self, path, api='public', method='GET', params={}, headers=None, body=None):
|
ccxt/okcoin.py
CHANGED
@@ -971,7 +971,7 @@ class okcoin(Exchange, ImplicitAPI):
|
|
971
971
|
'instType': 'SPOT',
|
972
972
|
}
|
973
973
|
response = self.publicGetMarketTickers(self.extend(request, params))
|
974
|
-
data = self.
|
974
|
+
data = self.safe_list(response, 'data', [])
|
975
975
|
return self.parse_tickers(data, symbols, params)
|
976
976
|
|
977
977
|
def parse_trade(self, trade, market: Market = None) -> Trade:
|
@@ -1072,7 +1072,7 @@ class okcoin(Exchange, ImplicitAPI):
|
|
1072
1072
|
response = self.publicGetMarketTrades(self.extend(request, params))
|
1073
1073
|
else:
|
1074
1074
|
response = self.publicGetMarketHistoryTrades(self.extend(request, params))
|
1075
|
-
data = self.
|
1075
|
+
data = self.safe_list(response, 'data', [])
|
1076
1076
|
return self.parse_trades(data, market, since, limit)
|
1077
1077
|
|
1078
1078
|
def parse_ohlcv(self, ohlcv, market: Market = None) -> list:
|
@@ -1130,7 +1130,7 @@ class okcoin(Exchange, ImplicitAPI):
|
|
1130
1130
|
response = self.publicGetMarketCandles(self.extend(request, params))
|
1131
1131
|
else:
|
1132
1132
|
response = self.publicGetMarketHistoryCandles(self.extend(request, params))
|
1133
|
-
data = self.
|
1133
|
+
data = self.safe_list(response, 'data', [])
|
1134
1134
|
return self.parse_ohlcvs(data, market, timeframe, since, limit)
|
1135
1135
|
|
1136
1136
|
def parse_account_balance(self, response):
|
@@ -1571,7 +1571,7 @@ class okcoin(Exchange, ImplicitAPI):
|
|
1571
1571
|
response = self.privatePostTradeCancelOrder(self.extend(request, query))
|
1572
1572
|
# {"code":"0","data":[{"clOrdId":"","ordId":"317251910906576896","sCode":"0","sMsg":""}],"msg":""}
|
1573
1573
|
data = self.safe_value(response, 'data', [])
|
1574
|
-
order = self.
|
1574
|
+
order = self.safe_dict(data, 0)
|
1575
1575
|
return self.parse_order(order, market)
|
1576
1576
|
|
1577
1577
|
def parse_ids(self, ids):
|
@@ -1654,7 +1654,7 @@ class okcoin(Exchange, ImplicitAPI):
|
|
1654
1654
|
# }
|
1655
1655
|
#
|
1656
1656
|
#
|
1657
|
-
ordersData = self.
|
1657
|
+
ordersData = self.safe_list(response, 'data', [])
|
1658
1658
|
return self.parse_orders(ordersData, market, None, None, params)
|
1659
1659
|
|
1660
1660
|
def parse_order_status(self, status):
|
@@ -1895,7 +1895,7 @@ class okcoin(Exchange, ImplicitAPI):
|
|
1895
1895
|
else:
|
1896
1896
|
response = self.privateGetTradeOrder(self.extend(request, query))
|
1897
1897
|
data = self.safe_value(response, 'data', [])
|
1898
|
-
order = self.
|
1898
|
+
order = self.safe_dict(data, 0)
|
1899
1899
|
return self.parse_order(order)
|
1900
1900
|
|
1901
1901
|
def fetch_open_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
|
@@ -1936,7 +1936,7 @@ class okcoin(Exchange, ImplicitAPI):
|
|
1936
1936
|
response = self.privateGetTradeOrdersAlgoPending(self.extend(request, params))
|
1937
1937
|
else:
|
1938
1938
|
response = self.privateGetTradeOrdersPending(self.extend(request, params))
|
1939
|
-
data = self.
|
1939
|
+
data = self.safe_list(response, 'data', [])
|
1940
1940
|
return self.parse_orders(data, market, since, limit)
|
1941
1941
|
|
1942
1942
|
def fetch_closed_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
|
@@ -2017,7 +2017,7 @@ class okcoin(Exchange, ImplicitAPI):
|
|
2017
2017
|
# "msg":""
|
2018
2018
|
# }
|
2019
2019
|
#
|
2020
|
-
data = self.
|
2020
|
+
data = self.safe_list(response, 'data', [])
|
2021
2021
|
return self.parse_orders(data, market, since, limit)
|
2022
2022
|
|
2023
2023
|
def parse_deposit_address(self, depositAddress, currency: Currency = None):
|
@@ -2223,7 +2223,7 @@ class okcoin(Exchange, ImplicitAPI):
|
|
2223
2223
|
# }
|
2224
2224
|
#
|
2225
2225
|
data = self.safe_value(response, 'data', [])
|
2226
|
-
rawTransfer = self.
|
2226
|
+
rawTransfer = self.safe_dict(data, 0, {})
|
2227
2227
|
return self.parse_transfer(rawTransfer, currency)
|
2228
2228
|
|
2229
2229
|
def parse_transfer(self, transfer, currency: Currency = None):
|
@@ -2359,7 +2359,7 @@ class okcoin(Exchange, ImplicitAPI):
|
|
2359
2359
|
# }
|
2360
2360
|
#
|
2361
2361
|
data = self.safe_value(response, 'data', [])
|
2362
|
-
transaction = self.
|
2362
|
+
transaction = self.safe_dict(data, 0)
|
2363
2363
|
return self.parse_transaction(transaction, currency)
|
2364
2364
|
|
2365
2365
|
def fetch_deposits(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Transaction]:
|
@@ -2428,7 +2428,7 @@ class okcoin(Exchange, ImplicitAPI):
|
|
2428
2428
|
# ]
|
2429
2429
|
# }
|
2430
2430
|
#
|
2431
|
-
data = self.
|
2431
|
+
data = self.safe_list(response, 'data', [])
|
2432
2432
|
return self.parse_transactions(data, currency, since, limit, params)
|
2433
2433
|
|
2434
2434
|
def fetch_withdrawals(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Transaction]:
|
@@ -2489,7 +2489,7 @@ class okcoin(Exchange, ImplicitAPI):
|
|
2489
2489
|
# ]
|
2490
2490
|
# }
|
2491
2491
|
#
|
2492
|
-
data = self.
|
2492
|
+
data = self.safe_list(response, 'data', [])
|
2493
2493
|
return self.parse_transactions(data, currency, since, limit, params)
|
2494
2494
|
|
2495
2495
|
def parse_transaction_status(self, status):
|
@@ -2650,7 +2650,7 @@ class okcoin(Exchange, ImplicitAPI):
|
|
2650
2650
|
response = self.privateGetTradeFillsHistory(self.extend(request, params))
|
2651
2651
|
else:
|
2652
2652
|
response = self.privateGetTradeFills(self.extend(request, params))
|
2653
|
-
data = self.
|
2653
|
+
data = self.safe_list(response, 'data', [])
|
2654
2654
|
return self.parse_trades(data, market, since, limit)
|
2655
2655
|
|
2656
2656
|
def fetch_order_trades(self, id: str, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
|
ccxt/okx.py
CHANGED
@@ -1138,14 +1138,6 @@ class okx(Exchange, ImplicitAPI):
|
|
1138
1138
|
exchangeTypes = self.safe_value(self.options, 'exchangeType', {})
|
1139
1139
|
return self.safe_string(exchangeTypes, type, type)
|
1140
1140
|
|
1141
|
-
def convert_expire_date(self, date):
|
1142
|
-
# parse YYMMDD to timestamp
|
1143
|
-
year = date[0:2]
|
1144
|
-
month = date[2:4]
|
1145
|
-
day = date[4:6]
|
1146
|
-
reconstructedDate = '20' + year + '-' + month + '-' + day + 'T00:00:00Z'
|
1147
|
-
return reconstructedDate
|
1148
|
-
|
1149
1141
|
def create_expired_option_market(self, symbol: str):
|
1150
1142
|
# support expired option contracts
|
1151
1143
|
quote = 'USD'
|
@@ -1832,7 +1824,7 @@ class okx(Exchange, ImplicitAPI):
|
|
1832
1824
|
# }
|
1833
1825
|
#
|
1834
1826
|
data = self.safe_value(response, 'data', [])
|
1835
|
-
first = self.
|
1827
|
+
first = self.safe_dict(data, 0, {})
|
1836
1828
|
return self.parse_ticker(first, market)
|
1837
1829
|
|
1838
1830
|
def fetch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
|
@@ -2045,7 +2037,7 @@ class okx(Exchange, ImplicitAPI):
|
|
2045
2037
|
# "msg": ""
|
2046
2038
|
# }
|
2047
2039
|
#
|
2048
|
-
data = self.
|
2040
|
+
data = self.safe_list(response, 'data', [])
|
2049
2041
|
return self.parse_trades(data, market, since, limit)
|
2050
2042
|
|
2051
2043
|
def parse_ohlcv(self, ohlcv, market: Market = None) -> list:
|
@@ -2161,7 +2153,7 @@ class okx(Exchange, ImplicitAPI):
|
|
2161
2153
|
# ]
|
2162
2154
|
# }
|
2163
2155
|
#
|
2164
|
-
data = self.
|
2156
|
+
data = self.safe_list(response, 'data', [])
|
2165
2157
|
return self.parse_ohlcvs(data, market, timeframe, since, limit)
|
2166
2158
|
|
2167
2159
|
def fetch_funding_rate_history(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
|
@@ -2802,7 +2794,7 @@ class okx(Exchange, ImplicitAPI):
|
|
2802
2794
|
# "msg": "",
|
2803
2795
|
# "outTime": "1697979038586493"
|
2804
2796
|
# }
|
2805
|
-
data = self.
|
2797
|
+
data = self.safe_list(response, 'data', [])
|
2806
2798
|
return self.parse_orders(data)
|
2807
2799
|
|
2808
2800
|
def edit_order_request(self, id: str, symbol, type, side, amount=None, price=None, params={}):
|
@@ -2979,7 +2971,7 @@ class okx(Exchange, ImplicitAPI):
|
|
2979
2971
|
response = self.privatePostTradeCancelOrder(self.extend(request, query))
|
2980
2972
|
# {"code":"0","data":[{"clOrdId":"","ordId":"317251910906576896","sCode":"0","sMsg":""}],"msg":""}
|
2981
2973
|
data = self.safe_value(response, 'data', [])
|
2982
|
-
order = self.
|
2974
|
+
order = self.safe_dict(data, 0)
|
2983
2975
|
return self.parse_order(order, market)
|
2984
2976
|
|
2985
2977
|
def parse_ids(self, ids):
|
@@ -3079,7 +3071,7 @@ class okx(Exchange, ImplicitAPI):
|
|
3079
3071
|
# "msg": ""
|
3080
3072
|
# }
|
3081
3073
|
#
|
3082
|
-
ordersData = self.
|
3074
|
+
ordersData = self.safe_list(response, 'data', [])
|
3083
3075
|
return self.parse_orders(ordersData, market, None, None, params)
|
3084
3076
|
|
3085
3077
|
def parse_order_status(self, status):
|
@@ -3433,7 +3425,7 @@ class okx(Exchange, ImplicitAPI):
|
|
3433
3425
|
# }
|
3434
3426
|
#
|
3435
3427
|
data = self.safe_value(response, 'data', [])
|
3436
|
-
order = self.
|
3428
|
+
order = self.safe_dict(data, 0)
|
3437
3429
|
return self.parse_order(order, market)
|
3438
3430
|
|
3439
3431
|
def fetch_open_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
|
@@ -3587,7 +3579,7 @@ class okx(Exchange, ImplicitAPI):
|
|
3587
3579
|
# "msg": ""
|
3588
3580
|
# }
|
3589
3581
|
#
|
3590
|
-
data = self.
|
3582
|
+
data = self.safe_list(response, 'data', [])
|
3591
3583
|
return self.parse_orders(data, market, since, limit)
|
3592
3584
|
|
3593
3585
|
def fetch_canceled_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
|
@@ -3760,7 +3752,7 @@ class okx(Exchange, ImplicitAPI):
|
|
3760
3752
|
# "msg": ""
|
3761
3753
|
# }
|
3762
3754
|
#
|
3763
|
-
data = self.
|
3755
|
+
data = self.safe_list(response, 'data', [])
|
3764
3756
|
return self.parse_orders(data, market, since, limit)
|
3765
3757
|
|
3766
3758
|
def fetch_closed_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
|
@@ -3934,7 +3926,7 @@ class okx(Exchange, ImplicitAPI):
|
|
3934
3926
|
# "msg": ""
|
3935
3927
|
# }
|
3936
3928
|
#
|
3937
|
-
data = self.
|
3929
|
+
data = self.safe_list(response, 'data', [])
|
3938
3930
|
return self.parse_orders(data, market, since, limit)
|
3939
3931
|
|
3940
3932
|
def fetch_my_trades(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
|
@@ -4000,7 +3992,7 @@ class okx(Exchange, ImplicitAPI):
|
|
4000
3992
|
# "msg": ""
|
4001
3993
|
# }
|
4002
3994
|
#
|
4003
|
-
data = self.
|
3995
|
+
data = self.safe_list(response, 'data', [])
|
4004
3996
|
return self.parse_trades(data, market, since, limit, query)
|
4005
3997
|
|
4006
3998
|
def fetch_order_trades(self, id: str, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
|
@@ -4450,7 +4442,7 @@ class okx(Exchange, ImplicitAPI):
|
|
4450
4442
|
# }
|
4451
4443
|
#
|
4452
4444
|
data = self.safe_value(response, 'data', [])
|
4453
|
-
transaction = self.
|
4445
|
+
transaction = self.safe_dict(data, 0)
|
4454
4446
|
return self.parse_transaction(transaction, currency)
|
4455
4447
|
|
4456
4448
|
def fetch_deposits(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Transaction]:
|
@@ -4525,7 +4517,7 @@ class okx(Exchange, ImplicitAPI):
|
|
4525
4517
|
# ]
|
4526
4518
|
# }
|
4527
4519
|
#
|
4528
|
-
data = self.
|
4520
|
+
data = self.safe_list(response, 'data', [])
|
4529
4521
|
return self.parse_transactions(data, currency, since, limit, params)
|
4530
4522
|
|
4531
4523
|
def fetch_deposit(self, id: str, code: Str = None, params={}):
|
@@ -4547,7 +4539,7 @@ class okx(Exchange, ImplicitAPI):
|
|
4547
4539
|
request['ccy'] = currency['id']
|
4548
4540
|
response = self.privateGetAssetDepositHistory(self.extend(request, params))
|
4549
4541
|
data = self.safe_value(response, 'data')
|
4550
|
-
deposit = self.
|
4542
|
+
deposit = self.safe_dict(data, 0, {})
|
4551
4543
|
return self.parse_transaction(deposit, currency)
|
4552
4544
|
|
4553
4545
|
def fetch_withdrawals(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Transaction]:
|
@@ -4614,7 +4606,7 @@ class okx(Exchange, ImplicitAPI):
|
|
4614
4606
|
# ]
|
4615
4607
|
# }
|
4616
4608
|
#
|
4617
|
-
data = self.
|
4609
|
+
data = self.safe_list(response, 'data', [])
|
4618
4610
|
return self.parse_transactions(data, currency, since, limit, params)
|
4619
4611
|
|
4620
4612
|
def fetch_withdrawal(self, id: str, code: Str = None, params={}):
|
@@ -4657,7 +4649,7 @@ class okx(Exchange, ImplicitAPI):
|
|
4657
4649
|
# }
|
4658
4650
|
#
|
4659
4651
|
data = self.safe_value(response, 'data')
|
4660
|
-
withdrawal = self.
|
4652
|
+
withdrawal = self.safe_dict(data, 0, {})
|
4661
4653
|
return self.parse_transaction(withdrawal)
|
4662
4654
|
|
4663
4655
|
def parse_transaction_status(self, status):
|
@@ -5241,7 +5233,7 @@ class okx(Exchange, ImplicitAPI):
|
|
5241
5233
|
# }
|
5242
5234
|
#
|
5243
5235
|
data = self.safe_value(response, 'data', [])
|
5244
|
-
rawTransfer = self.
|
5236
|
+
rawTransfer = self.safe_dict(data, 0, {})
|
5245
5237
|
return self.parse_transfer(rawTransfer, currency)
|
5246
5238
|
|
5247
5239
|
def parse_transfer(self, transfer, currency: Currency = None):
|
@@ -5354,7 +5346,7 @@ class okx(Exchange, ImplicitAPI):
|
|
5354
5346
|
# }
|
5355
5347
|
#
|
5356
5348
|
data = self.safe_value(response, 'data', [])
|
5357
|
-
transfer = self.
|
5349
|
+
transfer = self.safe_dict(data, 0)
|
5358
5350
|
return self.parse_transfer(transfer)
|
5359
5351
|
|
5360
5352
|
def fetch_transfers(self, code: Str = None, since: Int = None, limit: Int = None, params={}):
|
@@ -5412,7 +5404,7 @@ class okx(Exchange, ImplicitAPI):
|
|
5412
5404
|
# "msg": ""
|
5413
5405
|
# }
|
5414
5406
|
#
|
5415
|
-
transfers = self.
|
5407
|
+
transfers = self.safe_list(response, 'data', [])
|
5416
5408
|
return self.parse_transfers(transfers, currency, since, limit, params)
|
5417
5409
|
|
5418
5410
|
def sign(self, path, api='public', method='GET', params={}, headers=None, body=None):
|
@@ -6383,7 +6375,7 @@ class okx(Exchange, ImplicitAPI):
|
|
6383
6375
|
# "msg": ""
|
6384
6376
|
# }
|
6385
6377
|
#
|
6386
|
-
data = self.
|
6378
|
+
data = self.safe_list(response, 'data', [])
|
6387
6379
|
return self.parse_open_interest(data[0], market)
|
6388
6380
|
|
6389
6381
|
def fetch_open_interest_history(self, symbol: str, timeframe='1d', since: Int = None, limit: Int = None, params={}):
|
@@ -6445,7 +6437,7 @@ class okx(Exchange, ImplicitAPI):
|
|
6445
6437
|
# "msg": ''
|
6446
6438
|
# }
|
6447
6439
|
#
|
6448
|
-
data = self.
|
6440
|
+
data = self.safe_list(response, 'data', [])
|
6449
6441
|
return self.parse_open_interests(data, None, since, limit)
|
6450
6442
|
|
6451
6443
|
def parse_open_interest(self, interest, market: Market = None):
|
@@ -6560,7 +6552,7 @@ class okx(Exchange, ImplicitAPI):
|
|
6560
6552
|
# "msg": ""
|
6561
6553
|
# }
|
6562
6554
|
#
|
6563
|
-
data = self.
|
6555
|
+
data = self.safe_list(response, 'data')
|
6564
6556
|
return self.parse_deposit_withdraw_fees(data, codes)
|
6565
6557
|
|
6566
6558
|
def parse_deposit_withdraw_fees(self, response, codes=None, currencyIdKey=None):
|
@@ -6908,7 +6900,7 @@ class okx(Exchange, ImplicitAPI):
|
|
6908
6900
|
# }
|
6909
6901
|
#
|
6910
6902
|
data = self.safe_value(response, 'data')
|
6911
|
-
order = self.
|
6903
|
+
order = self.safe_dict(data, 0)
|
6912
6904
|
return self.parse_order(order, market)
|
6913
6905
|
|
6914
6906
|
def fetch_option(self, symbol: str, params={}) -> Option:
|
ccxt/onetrading.py
CHANGED
@@ -1117,7 +1117,7 @@ class onetrading(Exchange, ImplicitAPI):
|
|
1117
1117
|
# "cursor": "eyJhY2NvdW50X2lkIjp7InMiOiJlMzY5YWM4MC00NTc3LTExZTktYWUwOC05YmVkYzQ3OTBiODQiLCJzcyI6W10sIm5zIjpbXSwiYnMiOltdLCJtIjp7fSwibCI6W119LCJpdGVtX2tleSI6eyJzIjoiV0lUSERSQVdBTDo6MmFlMjYwY2ItOTk3MC00YmNiLTgxNmEtZGY4MDVmY2VhZTY1Iiwic3MiOltdLCJucyI6W10sImJzIjpbXSwibSI6e30sImwiOltdfSwiZ2xvYmFsX3dpdGhkcmF3YWxfaW5kZXhfaGFzaF9rZXkiOnsicyI6ImUzNjlhYzgwLTQ1NzctMTFlOS1hZTA4LTliZWRjNDc5MGI4NCIsInNzIjpbXSwibnMiOltdLCJicyI6W10sIm0iOnt9LCJsIjpbXX0sInRpbWVzdGFtcCI6eyJuIjoiMTU4ODA1ODc2Nzk0OCIsInNzIjpbXSwibnMiOltdLCJicyI6W10sIm0iOnt9LCJsIjpbXX19"
|
1118
1118
|
# }
|
1119
1119
|
#
|
1120
|
-
depositHistory = self.
|
1120
|
+
depositHistory = self.safe_list(response, 'deposit_history', [])
|
1121
1121
|
return self.parse_transactions(depositHistory, currency, since, limit, {'type': 'deposit'})
|
1122
1122
|
|
1123
1123
|
def fetch_withdrawals(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Transaction]:
|
@@ -1176,7 +1176,7 @@ class onetrading(Exchange, ImplicitAPI):
|
|
1176
1176
|
# "max_page_size": 2
|
1177
1177
|
# }
|
1178
1178
|
#
|
1179
|
-
withdrawalHistory = self.
|
1179
|
+
withdrawalHistory = self.safe_list(response, 'withdrawal_history', [])
|
1180
1180
|
return self.parse_transactions(withdrawalHistory, currency, since, limit, {'type': 'withdrawal'})
|
1181
1181
|
|
1182
1182
|
def withdraw(self, code: str, amount: float, address, tag=None, params={}):
|
@@ -1737,7 +1737,7 @@ class onetrading(Exchange, ImplicitAPI):
|
|
1737
1737
|
# "max_page_size": 100
|
1738
1738
|
# }
|
1739
1739
|
#
|
1740
|
-
orderHistory = self.
|
1740
|
+
orderHistory = self.safe_list(response, 'order_history', [])
|
1741
1741
|
return self.parse_orders(orderHistory, market, since, limit)
|
1742
1742
|
|
1743
1743
|
def fetch_closed_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
|
@@ -1868,7 +1868,7 @@ class onetrading(Exchange, ImplicitAPI):
|
|
1868
1868
|
# "cursor": "string"
|
1869
1869
|
# }
|
1870
1870
|
#
|
1871
|
-
tradeHistory = self.
|
1871
|
+
tradeHistory = self.safe_list(response, 'trade_history', [])
|
1872
1872
|
return self.parse_trades(tradeHistory, market, since, limit)
|
1873
1873
|
|
1874
1874
|
def sign(self, path, api='public', method='GET', params={}, headers=None, body=None):
|
ccxt/p2b.py
CHANGED
@@ -564,7 +564,7 @@ class p2b(Exchange, ImplicitAPI):
|
|
564
564
|
# current_time: '1699255571.413828'
|
565
565
|
# }
|
566
566
|
#
|
567
|
-
result = self.
|
567
|
+
result = self.safe_list(response, 'result', [])
|
568
568
|
return self.parse_trades(result, market, since, limit)
|
569
569
|
|
570
570
|
def parse_trade(self, trade, market: Market = None):
|
@@ -676,7 +676,7 @@ class p2b(Exchange, ImplicitAPI):
|
|
676
676
|
# current_time: '1699256375.030494'
|
677
677
|
# }
|
678
678
|
#
|
679
|
-
result = self.
|
679
|
+
result = self.safe_list(response, 'result', [])
|
680
680
|
return self.parse_ohlcvs(result, market, timeframe, since, limit)
|
681
681
|
|
682
682
|
def parse_ohlcv(self, ohlcv, market: Market = None) -> list:
|
@@ -805,7 +805,7 @@ class p2b(Exchange, ImplicitAPI):
|
|
805
805
|
# }
|
806
806
|
# }
|
807
807
|
#
|
808
|
-
result = self.
|
808
|
+
result = self.safe_dict(response, 'result')
|
809
809
|
return self.parse_order(result, market)
|
810
810
|
|
811
811
|
def cancel_order(self, id: str, symbol: Str = None, params={}):
|
@@ -848,7 +848,7 @@ class p2b(Exchange, ImplicitAPI):
|
|
848
848
|
# }
|
849
849
|
# }
|
850
850
|
#
|
851
|
-
result = self.
|
851
|
+
result = self.safe_dict(response, 'result')
|
852
852
|
return self.parse_order(result)
|
853
853
|
|
854
854
|
def fetch_open_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
|
@@ -899,7 +899,7 @@ class p2b(Exchange, ImplicitAPI):
|
|
899
899
|
# ]
|
900
900
|
# }
|
901
901
|
#
|
902
|
-
result = self.
|
902
|
+
result = self.safe_list(response, 'result', [])
|
903
903
|
return self.parse_orders(result, market, since, limit)
|
904
904
|
|
905
905
|
def fetch_order_trades(self, id: str, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
|
@@ -948,7 +948,7 @@ class p2b(Exchange, ImplicitAPI):
|
|
948
948
|
# }
|
949
949
|
#
|
950
950
|
result = self.safe_value(response, 'result', {})
|
951
|
-
records = self.
|
951
|
+
records = self.safe_list(result, 'records', [])
|
952
952
|
return self.parse_trades(records, market, since, limit)
|
953
953
|
|
954
954
|
def fetch_my_trades(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
|
@@ -1015,7 +1015,7 @@ class p2b(Exchange, ImplicitAPI):
|
|
1015
1015
|
# }
|
1016
1016
|
#
|
1017
1017
|
result = self.safe_value(response, 'result', {})
|
1018
|
-
deals = self.
|
1018
|
+
deals = self.safe_list(result, 'deals', [])
|
1019
1019
|
return self.parse_trades(deals, market, since, limit)
|
1020
1020
|
|
1021
1021
|
def fetch_closed_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
|