ccxt 4.4.96__py2.py3-none-any.whl → 4.4.97__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.
Files changed (58) hide show
  1. ccxt/__init__.py +1 -1
  2. ccxt/abstract/binance.py +3 -0
  3. ccxt/abstract/binancecoinm.py +3 -0
  4. ccxt/abstract/binanceus.py +3 -0
  5. ccxt/abstract/binanceusdm.py +3 -0
  6. ccxt/abstract/phemex.py +1 -0
  7. ccxt/async_support/__init__.py +1 -1
  8. ccxt/async_support/base/exchange.py +6 -3
  9. ccxt/async_support/binance.py +90 -34
  10. ccxt/async_support/binancecoinm.py +5 -1
  11. ccxt/async_support/binanceus.py +3 -1
  12. ccxt/async_support/binanceusdm.py +3 -1
  13. ccxt/async_support/bingx.py +1 -1
  14. ccxt/async_support/cryptocom.py +76 -2
  15. ccxt/async_support/exmo.py +1 -1
  16. ccxt/async_support/foxbit.py +1 -1
  17. ccxt/async_support/gate.py +1 -2
  18. ccxt/async_support/hashkey.py +39 -0
  19. ccxt/async_support/hyperliquid.py +40 -25
  20. ccxt/async_support/independentreserve.py +35 -0
  21. ccxt/async_support/indodax.py +34 -0
  22. ccxt/async_support/kucoin.py +2 -1
  23. ccxt/async_support/latoken.py +42 -0
  24. ccxt/async_support/luno.py +36 -0
  25. ccxt/async_support/mercado.py +34 -0
  26. ccxt/async_support/mexc.py +3 -19
  27. ccxt/async_support/phemex.py +36 -31
  28. ccxt/base/decimal_to_precision.py +16 -10
  29. ccxt/base/exchange.py +55 -15
  30. ccxt/binance.py +90 -34
  31. ccxt/binancecoinm.py +5 -1
  32. ccxt/binanceus.py +3 -1
  33. ccxt/binanceusdm.py +3 -1
  34. ccxt/bingx.py +1 -1
  35. ccxt/cryptocom.py +76 -2
  36. ccxt/exmo.py +1 -1
  37. ccxt/foxbit.py +1 -1
  38. ccxt/gate.py +1 -2
  39. ccxt/hashkey.py +39 -0
  40. ccxt/hyperliquid.py +40 -25
  41. ccxt/independentreserve.py +35 -0
  42. ccxt/indodax.py +34 -0
  43. ccxt/kucoin.py +2 -1
  44. ccxt/latoken.py +42 -0
  45. ccxt/luno.py +36 -0
  46. ccxt/mercado.py +34 -0
  47. ccxt/mexc.py +3 -19
  48. ccxt/phemex.py +36 -31
  49. ccxt/pro/__init__.py +1 -1
  50. ccxt/pro/binancecoinm.py +3 -1
  51. ccxt/pro/binanceus.py +3 -1
  52. ccxt/pro/binanceusdm.py +3 -1
  53. ccxt/pro/bybit.py +33 -1
  54. {ccxt-4.4.96.dist-info → ccxt-4.4.97.dist-info}/METADATA +16 -16
  55. {ccxt-4.4.96.dist-info → ccxt-4.4.97.dist-info}/RECORD +58 -58
  56. {ccxt-4.4.96.dist-info → ccxt-4.4.97.dist-info}/LICENSE.txt +0 -0
  57. {ccxt-4.4.96.dist-info → ccxt-4.4.97.dist-info}/WHEEL +0 -0
  58. {ccxt-4.4.96.dist-info → ccxt-4.4.97.dist-info}/top_level.txt +0 -0
ccxt/indodax.py CHANGED
@@ -38,6 +38,9 @@ class indodax(Exchange, ImplicitAPI):
38
38
  'future': False,
39
39
  'option': False,
40
40
  'addMargin': False,
41
+ 'borrowCrossMargin': False,
42
+ 'borrowIsolatedMargin': False,
43
+ 'borrowMargin': False,
41
44
  'cancelAllOrders': False,
42
45
  'cancelOrder': True,
43
46
  'cancelOrders': False,
@@ -49,9 +52,14 @@ class indodax(Exchange, ImplicitAPI):
49
52
  'createStopLimitOrder': False,
50
53
  'createStopMarketOrder': False,
51
54
  'createStopOrder': False,
55
+ 'fetchAllGreeks': False,
52
56
  'fetchBalance': True,
57
+ 'fetchBorrowInterest': False,
58
+ 'fetchBorrowRate': False,
53
59
  'fetchBorrowRateHistories': False,
54
60
  'fetchBorrowRateHistory': False,
61
+ 'fetchBorrowRates': False,
62
+ 'fetchBorrowRatesPerSymbol': False,
55
63
  'fetchClosedOrders': True,
56
64
  'fetchCrossBorrowRate': False,
57
65
  'fetchCrossBorrowRates': False,
@@ -62,30 +70,52 @@ class indodax(Exchange, ImplicitAPI):
62
70
  'fetchDeposits': False,
63
71
  'fetchDepositsWithdrawals': True,
64
72
  'fetchFundingHistory': False,
73
+ 'fetchFundingInterval': False,
74
+ 'fetchFundingIntervals': False,
65
75
  'fetchFundingRate': False,
66
76
  'fetchFundingRateHistory': False,
67
77
  'fetchFundingRates': False,
78
+ 'fetchGreeks': False,
68
79
  'fetchIndexOHLCV': False,
69
80
  'fetchIsolatedBorrowRate': False,
70
81
  'fetchIsolatedBorrowRates': False,
82
+ 'fetchIsolatedPositions': False,
71
83
  'fetchLeverage': False,
84
+ 'fetchLeverages': False,
72
85
  'fetchLeverageTiers': False,
86
+ 'fetchLiquidations': False,
87
+ 'fetchLongShortRatio': False,
88
+ 'fetchLongShortRatioHistory': False,
89
+ 'fetchMarginAdjustmentHistory': False,
73
90
  'fetchMarginMode': False,
91
+ 'fetchMarginModes': False,
92
+ 'fetchMarketLeverageTiers': False,
74
93
  'fetchMarkets': True,
75
94
  'fetchMarkOHLCV': False,
95
+ 'fetchMarkPrice': False,
96
+ 'fetchMarkPrices': False,
97
+ 'fetchMyLiquidations': False,
98
+ 'fetchMySettlementHistory': False,
99
+ 'fetchOpenInterest': False,
76
100
  'fetchOpenInterestHistory': False,
101
+ 'fetchOpenInterests': False,
77
102
  'fetchOpenOrders': True,
103
+ 'fetchOption': False,
104
+ 'fetchOptionChain': False,
78
105
  'fetchOrder': True,
79
106
  'fetchOrderBook': True,
80
107
  'fetchOrders': False,
81
108
  'fetchPosition': False,
109
+ 'fetchPositionForSymbolWs': False,
82
110
  'fetchPositionHistory': False,
83
111
  'fetchPositionMode': False,
84
112
  'fetchPositions': False,
85
113
  'fetchPositionsForSymbol': False,
114
+ 'fetchPositionsForSymbolWs': False,
86
115
  'fetchPositionsHistory': False,
87
116
  'fetchPositionsRisk': False,
88
117
  'fetchPremiumIndexOHLCV': False,
118
+ 'fetchSettlementHistory': False,
89
119
  'fetchTicker': True,
90
120
  'fetchTime': True,
91
121
  'fetchTrades': True,
@@ -96,9 +126,13 @@ class indodax(Exchange, ImplicitAPI):
96
126
  'fetchTransactions': 'emulated',
97
127
  'fetchTransfer': False,
98
128
  'fetchTransfers': False,
129
+ 'fetchUnderlyingAssets': False,
130
+ 'fetchVolatilityHistory': False,
99
131
  'fetchWithdrawal': False,
100
132
  'fetchWithdrawals': False,
101
133
  'reduceMargin': False,
134
+ 'repayCrossMargin': False,
135
+ 'repayIsolatedMargin': False,
102
136
  'setLeverage': False,
103
137
  'setMargin': False,
104
138
  'setMarginMode': False,
ccxt/kucoin.py CHANGED
@@ -811,7 +811,7 @@ class kucoin(Exchange, ImplicitAPI):
811
811
  'TLOS': 'tlos', # tlosevm is different
812
812
  'CFX': 'cfx',
813
813
  'ACA': 'aca',
814
- 'OP': 'optimism',
814
+ 'OPTIMISM': 'optimism',
815
815
  'ONT': 'ont',
816
816
  'GLMR': 'glmr',
817
817
  'CSPR': 'cspr',
@@ -931,6 +931,7 @@ class kucoin(Exchange, ImplicitAPI):
931
931
  'CS': 'cs',
932
932
  'ORAI': 'orai',
933
933
  'BASE': 'base',
934
+ 'TARA': 'tara',
934
935
  # below will be uncommented after consensus
935
936
  # 'BITCOINDIAMON': 'bcd',
936
937
  # 'BITCOINGOLD': 'btg',
ccxt/latoken.py CHANGED
@@ -40,6 +40,10 @@ class latoken(Exchange, ImplicitAPI):
40
40
  'swap': False,
41
41
  'future': False,
42
42
  'option': False,
43
+ 'addMargin': False,
44
+ 'borrowCrossMargin': False,
45
+ 'borrowIsolatedMargin': False,
46
+ 'borrowMargin': False,
43
47
  'cancelAllOrders': True,
44
48
  'cancelOrder': True,
45
49
  'closeAllPositions': False,
@@ -49,9 +53,14 @@ class latoken(Exchange, ImplicitAPI):
49
53
  'createStopLimitOrder': True,
50
54
  'createStopMarketOrder': False,
51
55
  'createStopOrder': True,
56
+ 'fetchAllGreeks': False,
52
57
  'fetchBalance': True,
58
+ 'fetchBorrowInterest': False,
59
+ 'fetchBorrowRate': False,
53
60
  'fetchBorrowRateHistories': False,
54
61
  'fetchBorrowRateHistory': False,
62
+ 'fetchBorrowRates': False,
63
+ 'fetchBorrowRatesPerSymbol': False,
55
64
  'fetchCrossBorrowRate': False,
56
65
  'fetchCrossBorrowRates': False,
57
66
  'fetchCurrencies': True,
@@ -66,12 +75,34 @@ class latoken(Exchange, ImplicitAPI):
66
75
  'fetchFundingRate': False,
67
76
  'fetchFundingRateHistory': False,
68
77
  'fetchFundingRates': False,
78
+ 'fetchGreeks': False,
79
+ 'fetchIndexOHLCV': False,
69
80
  'fetchIsolatedBorrowRate': False,
70
81
  'fetchIsolatedBorrowRates': False,
82
+ 'fetchIsolatedPositions': False,
83
+ 'fetchLeverage': False,
84
+ 'fetchLeverages': False,
85
+ 'fetchLeverageTiers': False,
86
+ 'fetchLiquidations': False,
87
+ 'fetchLongShortRatio': False,
88
+ 'fetchLongShortRatioHistory': False,
89
+ 'fetchMarginAdjustmentHistory': False,
71
90
  'fetchMarginMode': False,
91
+ 'fetchMarginModes': False,
92
+ 'fetchMarketLeverageTiers': False,
72
93
  'fetchMarkets': True,
94
+ 'fetchMarkOHLCV': False,
95
+ 'fetchMarkPrice': False,
96
+ 'fetchMarkPrices': False,
97
+ 'fetchMyLiquidations': False,
98
+ 'fetchMySettlementHistory': False,
73
99
  'fetchMyTrades': True,
100
+ 'fetchOpenInterest': False,
101
+ 'fetchOpenInterestHistory': False,
102
+ 'fetchOpenInterests': False,
74
103
  'fetchOpenOrders': True,
104
+ 'fetchOption': False,
105
+ 'fetchOptionChain': False,
75
106
  'fetchOrder': True,
76
107
  'fetchOrderBook': True,
77
108
  'fetchOrders': True,
@@ -82,6 +113,8 @@ class latoken(Exchange, ImplicitAPI):
82
113
  'fetchPositionsForSymbol': False,
83
114
  'fetchPositionsHistory': False,
84
115
  'fetchPositionsRisk': False,
116
+ 'fetchPremiumIndexOHLCV': False,
117
+ 'fetchSettlementHistory': False,
85
118
  'fetchTicker': True,
86
119
  'fetchTickers': True,
87
120
  'fetchTime': True,
@@ -91,6 +124,15 @@ class latoken(Exchange, ImplicitAPI):
91
124
  'fetchTransactions': 'emulated',
92
125
  'fetchTransfer': False,
93
126
  'fetchTransfers': True,
127
+ 'fetchUnderlyingAssets': False,
128
+ 'fetchVolatilityHistory': False,
129
+ 'reduceMargin': False,
130
+ 'repayCrossMargin': False,
131
+ 'repayIsolatedMargin': False,
132
+ 'setLeverage': False,
133
+ 'setMargin': False,
134
+ 'setMarginMode': False,
135
+ 'setPositionMode': False,
94
136
  'transfer': True,
95
137
  },
96
138
  'urls': {
ccxt/luno.py CHANGED
@@ -32,6 +32,9 @@ class luno(Exchange, ImplicitAPI):
32
32
  'future': False,
33
33
  'option': False,
34
34
  'addMargin': False,
35
+ 'borrowCrossMargin': False,
36
+ 'borrowIsolatedMargin': False,
37
+ 'borrowMargin': False,
35
38
  'cancelOrder': True,
36
39
  'closeAllPositions': False,
37
40
  'closePosition': False,
@@ -39,48 +42,81 @@ class luno(Exchange, ImplicitAPI):
39
42
  'createOrder': True,
40
43
  'createReduceOnlyOrder': False,
41
44
  'fetchAccounts': True,
45
+ 'fetchAllGreeks': False,
42
46
  'fetchBalance': True,
47
+ 'fetchBorrowInterest': False,
48
+ 'fetchBorrowRate': False,
49
+ 'fetchBorrowRateHistories': False,
43
50
  'fetchBorrowRateHistory': False,
51
+ 'fetchBorrowRates': False,
52
+ 'fetchBorrowRatesPerSymbol': False,
44
53
  'fetchClosedOrders': True,
45
54
  'fetchCrossBorrowRate': False,
46
55
  'fetchCrossBorrowRates': False,
47
56
  'fetchCurrencies': True,
48
57
  'fetchDepositAddress': True,
49
58
  'fetchFundingHistory': False,
59
+ 'fetchFundingInterval': False,
60
+ 'fetchFundingIntervals': False,
50
61
  'fetchFundingRate': False,
51
62
  'fetchFundingRateHistory': False,
52
63
  'fetchFundingRates': False,
64
+ 'fetchGreeks': False,
53
65
  'fetchIndexOHLCV': False,
54
66
  'fetchIsolatedBorrowRate': False,
55
67
  'fetchIsolatedBorrowRates': False,
68
+ 'fetchIsolatedPositions': False,
56
69
  'fetchLedger': True,
57
70
  'fetchLeverage': False,
71
+ 'fetchLeverages': False,
58
72
  'fetchLeverageTiers': False,
73
+ 'fetchLiquidations': False,
74
+ 'fetchLongShortRatio': False,
75
+ 'fetchLongShortRatioHistory': False,
76
+ 'fetchMarginAdjustmentHistory': False,
59
77
  'fetchMarginMode': False,
78
+ 'fetchMarginModes': False,
79
+ 'fetchMarketLeverageTiers': False,
60
80
  'fetchMarkets': True,
61
81
  'fetchMarkOHLCV': False,
82
+ 'fetchMarkPrice': False,
83
+ 'fetchMarkPrices': False,
84
+ 'fetchMyLiquidations': False,
85
+ 'fetchMySettlementHistory': False,
62
86
  'fetchMyTrades': True,
63
87
  'fetchOHLCV': True,
88
+ 'fetchOpenInterest': False,
64
89
  'fetchOpenInterestHistory': False,
90
+ 'fetchOpenInterests': False,
65
91
  'fetchOpenOrders': True,
92
+ 'fetchOption': False,
93
+ 'fetchOptionChain': False,
66
94
  'fetchOrder': True,
67
95
  'fetchOrderBook': True,
68
96
  'fetchOrders': True,
69
97
  'fetchPosition': False,
98
+ 'fetchPositionForSymbolWs': False,
70
99
  'fetchPositionHistory': False,
71
100
  'fetchPositionMode': False,
72
101
  'fetchPositions': False,
73
102
  'fetchPositionsForSymbol': False,
103
+ 'fetchPositionsForSymbolWs': False,
74
104
  'fetchPositionsHistory': False,
75
105
  'fetchPositionsRisk': False,
76
106
  'fetchPremiumIndexOHLCV': False,
107
+ 'fetchSettlementHistory': False,
77
108
  'fetchTicker': True,
78
109
  'fetchTickers': True,
79
110
  'fetchTrades': True,
80
111
  'fetchTradingFee': True,
81
112
  'fetchTradingFees': False,
113
+ 'fetchUnderlyingAssets': False,
114
+ 'fetchVolatilityHistory': False,
82
115
  'reduceMargin': False,
116
+ 'repayCrossMargin': False,
117
+ 'repayIsolatedMargin': False,
83
118
  'setLeverage': False,
119
+ 'setMargin': False,
84
120
  'setMarginMode': False,
85
121
  'setPositionMode': False,
86
122
  },
ccxt/mercado.py CHANGED
@@ -32,6 +32,9 @@ class mercado(Exchange, ImplicitAPI):
32
32
  'future': False,
33
33
  'option': False,
34
34
  'addMargin': False,
35
+ 'borrowCrossMargin': False,
36
+ 'borrowIsolatedMargin': False,
37
+ 'borrowMargin': False,
35
38
  'cancelOrder': True,
36
39
  'closeAllPositions': False,
37
40
  'closePosition': False,
@@ -41,29 +44,54 @@ class mercado(Exchange, ImplicitAPI):
41
44
  'createStopLimitOrder': False,
42
45
  'createStopMarketOrder': False,
43
46
  'createStopOrder': False,
47
+ 'fetchAllGreeks': False,
44
48
  'fetchBalance': True,
49
+ 'fetchBorrowInterest': False,
50
+ 'fetchBorrowRate': False,
51
+ 'fetchBorrowRateHistories': False,
45
52
  'fetchBorrowRateHistory': False,
53
+ 'fetchBorrowRates': False,
54
+ 'fetchBorrowRatesPerSymbol': False,
46
55
  'fetchCrossBorrowRate': False,
47
56
  'fetchCrossBorrowRates': False,
48
57
  'fetchDepositAddress': False,
49
58
  'fetchDepositAddresses': False,
50
59
  'fetchDepositAddressesByNetwork': False,
51
60
  'fetchFundingHistory': False,
61
+ 'fetchFundingInterval': False,
62
+ 'fetchFundingIntervals': False,
52
63
  'fetchFundingRate': False,
53
64
  'fetchFundingRateHistory': False,
54
65
  'fetchFundingRates': False,
66
+ 'fetchGreeks': False,
55
67
  'fetchIndexOHLCV': False,
56
68
  'fetchIsolatedBorrowRate': False,
57
69
  'fetchIsolatedBorrowRates': False,
70
+ 'fetchIsolatedPositions': False,
58
71
  'fetchLeverage': False,
72
+ 'fetchLeverages': False,
59
73
  'fetchLeverageTiers': False,
74
+ 'fetchLiquidations': False,
75
+ 'fetchLongShortRatio': False,
76
+ 'fetchLongShortRatioHistory': False,
77
+ 'fetchMarginAdjustmentHistory': False,
60
78
  'fetchMarginMode': False,
79
+ 'fetchMarginModes': False,
80
+ 'fetchMarketLeverageTiers': False,
61
81
  'fetchMarkets': True,
62
82
  'fetchMarkOHLCV': False,
83
+ 'fetchMarkPrice': False,
84
+ 'fetchMarkPrices': False,
85
+ 'fetchMyLiquidations': False,
86
+ 'fetchMySettlementHistory': False,
63
87
  'fetchMyTrades': 'emulated',
64
88
  'fetchOHLCV': True,
89
+ 'fetchOpenInterest': False,
65
90
  'fetchOpenInterestHistory': False,
91
+ 'fetchOpenInterests': False,
66
92
  'fetchOpenOrders': True,
93
+ 'fetchOption': False,
94
+ 'fetchOptionChain': False,
67
95
  'fetchOrder': True,
68
96
  'fetchOrderBook': True,
69
97
  'fetchOrders': True,
@@ -75,13 +103,19 @@ class mercado(Exchange, ImplicitAPI):
75
103
  'fetchPositionsHistory': False,
76
104
  'fetchPositionsRisk': False,
77
105
  'fetchPremiumIndexOHLCV': False,
106
+ 'fetchSettlementHistory': False,
78
107
  'fetchTicker': True,
79
108
  'fetchTickers': False,
80
109
  'fetchTrades': True,
81
110
  'fetchTradingFee': False,
82
111
  'fetchTradingFees': False,
112
+ 'fetchUnderlyingAssets': False,
113
+ 'fetchVolatilityHistory': False,
83
114
  'reduceMargin': False,
115
+ 'repayCrossMargin': False,
116
+ 'repayIsolatedMargin': False,
84
117
  'setLeverage': False,
118
+ 'setMargin': False,
85
119
  'setMarginMode': False,
86
120
  'setPositionMode': False,
87
121
  'withdraw': True,
ccxt/mexc.py CHANGED
@@ -448,6 +448,7 @@ class mexc(Exchange, ImplicitAPI):
448
448
  },
449
449
  },
450
450
  },
451
+ 'useCcxtTradeId': True,
451
452
  'timeframes': {
452
453
  'spot': {
453
454
  '1m': '1m',
@@ -1694,8 +1695,8 @@ class mexc(Exchange, ImplicitAPI):
1694
1695
  'cost': self.safe_string(trade, 'commission'),
1695
1696
  'currency': self.safe_currency_code(feeAsset),
1696
1697
  }
1697
- if id is None:
1698
- id = self.synthetic_trade_id(market, timestamp, side, amountString, priceString, type, takerOrMaker)
1698
+ if id is None and self.safe_bool(self.options, 'useCcxtTradeId', True):
1699
+ id = self.create_ccxt_trade_id(timestamp, side, amountString, priceString, takerOrMaker)
1699
1700
  return self.safe_trade({
1700
1701
  'id': id,
1701
1702
  'order': orderId,
@@ -1712,23 +1713,6 @@ class mexc(Exchange, ImplicitAPI):
1712
1713
  'info': trade,
1713
1714
  }, market)
1714
1715
 
1715
- def synthetic_trade_id(self, market=None, timestamp=None, side=None, amount=None, price=None, orderType=None, takerOrMaker=None):
1716
- # TODO: can be unified method? self approach is being used by multiple exchanges(mexc, woo-coinsbit, dydx, ...)
1717
- id = ''
1718
- if timestamp is not None:
1719
- id = self.number_to_string(timestamp) + '-' + self.safe_string(market, 'id', '_')
1720
- if side is not None:
1721
- id += '-' + side
1722
- if amount is not None:
1723
- id += '-' + self.number_to_string(amount)
1724
- if price is not None:
1725
- id += '-' + self.number_to_string(price)
1726
- if takerOrMaker is not None:
1727
- id += '-' + takerOrMaker
1728
- if orderType is not None:
1729
- id += '-' + orderType
1730
- return id
1731
-
1732
1716
  def fetch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={}) -> List[list]:
1733
1717
  """
1734
1718