ccxt 4.4.93__py2.py3-none-any.whl → 4.4.95__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 (52) hide show
  1. ccxt/__init__.py +1 -1
  2. ccxt/abstract/bingx.py +3 -0
  3. ccxt/abstract/hyperliquid.py +1 -1
  4. ccxt/abstract/woo.py +59 -4
  5. ccxt/async_support/__init__.py +1 -1
  6. ccxt/async_support/base/exchange.py +1 -1
  7. ccxt/async_support/base/ws/future.py +2 -0
  8. ccxt/async_support/bingx.py +129 -92
  9. ccxt/async_support/bitget.py +1 -1
  10. ccxt/async_support/bitstamp.py +2 -0
  11. ccxt/async_support/blofin.py +6 -1
  12. ccxt/async_support/bybit.py +3 -3
  13. ccxt/async_support/coinbase.py +40 -1
  14. ccxt/async_support/coinmate.py +34 -0
  15. ccxt/async_support/coinmetro.py +15 -3
  16. ccxt/async_support/coinone.py +34 -0
  17. ccxt/async_support/coinsph.py +29 -0
  18. ccxt/async_support/gate.py +1 -1
  19. ccxt/async_support/htx.py +5 -1
  20. ccxt/async_support/hyperliquid.py +126 -33
  21. ccxt/async_support/okx.py +10 -3
  22. ccxt/async_support/wavesexchange.py +12 -2
  23. ccxt/async_support/woo.py +1251 -875
  24. ccxt/base/errors.py +0 -6
  25. ccxt/base/exchange.py +44 -22
  26. ccxt/bingx.py +129 -92
  27. ccxt/bitget.py +1 -1
  28. ccxt/bitstamp.py +2 -0
  29. ccxt/blofin.py +6 -1
  30. ccxt/bybit.py +3 -3
  31. ccxt/coinbase.py +40 -1
  32. ccxt/coinmate.py +34 -0
  33. ccxt/coinmetro.py +14 -3
  34. ccxt/coinone.py +34 -0
  35. ccxt/coinsph.py +29 -0
  36. ccxt/gate.py +1 -1
  37. ccxt/htx.py +5 -1
  38. ccxt/hyperliquid.py +126 -33
  39. ccxt/okx.py +10 -3
  40. ccxt/pro/__init__.py +1 -1
  41. ccxt/pro/hyperliquid.py +6 -6
  42. ccxt/pro/kraken.py +17 -16
  43. ccxt/pro/mexc.py +10 -10
  44. ccxt/test/tests_async.py +19 -17
  45. ccxt/test/tests_sync.py +19 -17
  46. ccxt/wavesexchange.py +12 -2
  47. ccxt/woo.py +1251 -875
  48. {ccxt-4.4.93.dist-info → ccxt-4.4.95.dist-info}/METADATA +4 -4
  49. {ccxt-4.4.93.dist-info → ccxt-4.4.95.dist-info}/RECORD +52 -52
  50. {ccxt-4.4.93.dist-info → ccxt-4.4.95.dist-info}/LICENSE.txt +0 -0
  51. {ccxt-4.4.93.dist-info → ccxt-4.4.95.dist-info}/WHEEL +0 -0
  52. {ccxt-4.4.93.dist-info → ccxt-4.4.95.dist-info}/top_level.txt +0 -0
@@ -14,6 +14,7 @@ from ccxt.base.errors import AuthenticationError
14
14
  from ccxt.base.errors import PermissionDenied
15
15
  from ccxt.base.errors import ArgumentsRequired
16
16
  from ccxt.base.errors import BadRequest
17
+ from ccxt.base.errors import InsufficientFunds
17
18
  from ccxt.base.errors import InvalidOrder
18
19
  from ccxt.base.errors import OrderNotFound
19
20
  from ccxt.base.errors import NotSupported
@@ -51,6 +52,9 @@ class coinbase(Exchange, ImplicitAPI):
51
52
  'future': False,
52
53
  'option': False,
53
54
  'addMargin': False,
55
+ 'borrowCrossMargin': False,
56
+ 'borrowIsolatedMargin': False,
57
+ 'borrowMargin': False,
54
58
  'cancelOrder': True,
55
59
  'cancelOrders': True,
56
60
  'closeAllPositions': False,
@@ -65,6 +69,8 @@ class coinbase(Exchange, ImplicitAPI):
65
69
  'createMarketSellOrder': True,
66
70
  'createMarketSellOrderWithCost': False,
67
71
  'createOrder': True,
72
+ 'createOrderWithTakeProfitAndStopLoss': False,
73
+ 'createOrderWithTakeProfitAndStopLossWs': False,
68
74
  'createPostOnlyOrder': True,
69
75
  'createReduceOnlyOrder': False,
70
76
  'createStopLimitOrder': True,
@@ -75,8 +81,12 @@ class coinbase(Exchange, ImplicitAPI):
75
81
  'fetchAccounts': True,
76
82
  'fetchBalance': True,
77
83
  'fetchBidsAsks': True,
84
+ 'fetchBorrowInterest': False,
85
+ 'fetchBorrowRate': False,
78
86
  'fetchBorrowRateHistories': False,
79
87
  'fetchBorrowRateHistory': False,
88
+ 'fetchBorrowRates': False,
89
+ 'fetchBorrowRatesPerSymbol': False,
80
90
  'fetchCanceledOrders': True,
81
91
  'fetchClosedOrders': True,
82
92
  'fetchConvertQuote': True,
@@ -94,42 +104,69 @@ class coinbase(Exchange, ImplicitAPI):
94
104
  'fetchDeposits': True,
95
105
  'fetchDepositsWithdrawals': True,
96
106
  'fetchFundingHistory': False,
107
+ 'fetchFundingInterval': False,
108
+ 'fetchFundingIntervals': False,
97
109
  'fetchFundingRate': False,
98
110
  'fetchFundingRateHistory': False,
99
111
  'fetchFundingRates': False,
112
+ 'fetchGreeks': False,
100
113
  'fetchIndexOHLCV': False,
101
114
  'fetchIsolatedBorrowRate': False,
102
115
  'fetchIsolatedBorrowRates': False,
116
+ 'fetchIsolatedPositions': False,
103
117
  'fetchL2OrderBook': False,
104
118
  'fetchLedger': True,
105
119
  'fetchLeverage': False,
120
+ 'fetchLeverages': False,
106
121
  'fetchLeverageTiers': False,
122
+ 'fetchLiquidations': False,
123
+ 'fetchLongShortRatio': False,
124
+ 'fetchLongShortRatioHistory': False,
125
+ 'fetchMarginAdjustmentHistory': False,
107
126
  'fetchMarginMode': False,
127
+ 'fetchMarginModes': False,
128
+ 'fetchMarketLeverageTiers': False,
108
129
  'fetchMarkets': True,
109
130
  'fetchMarkOHLCV': False,
131
+ 'fetchMarkPrices': False,
110
132
  'fetchMyBuys': True,
133
+ 'fetchMyLiquidations': False,
111
134
  'fetchMySells': True,
135
+ 'fetchMySettlementHistory': False,
112
136
  'fetchMyTrades': True,
113
137
  'fetchOHLCV': True,
138
+ 'fetchOpenInterest': False,
114
139
  'fetchOpenInterestHistory': False,
140
+ 'fetchOpenInterests': False,
115
141
  'fetchOpenOrders': True,
142
+ 'fetchOption': False,
143
+ 'fetchOptionChain': False,
116
144
  'fetchOrder': True,
117
145
  'fetchOrderBook': True,
118
146
  'fetchOrders': True,
119
147
  'fetchPosition': True,
148
+ 'fetchPositionHistory': False,
120
149
  'fetchPositionMode': False,
121
150
  'fetchPositions': True,
151
+ 'fetchPositionsForSymbol': False,
152
+ 'fetchPositionsHistory': False,
122
153
  'fetchPositionsRisk': False,
123
154
  'fetchPremiumIndexOHLCV': False,
155
+ 'fetchSettlementHistory': False,
124
156
  'fetchTicker': True,
125
157
  'fetchTickers': True,
126
158
  'fetchTime': True,
127
159
  'fetchTrades': True,
128
160
  'fetchTradingFee': 'emulated',
129
161
  'fetchTradingFees': True,
162
+ 'fetchVolatilityHistory': False,
130
163
  'fetchWithdrawals': True,
131
164
  'reduceMargin': False,
165
+ 'repayCrossMargin': False,
166
+ 'repayIsolatedMargin': False,
167
+ 'repayMargin': False,
132
168
  'setLeverage': False,
169
+ 'setMargin': False,
133
170
  'setMarginMode': False,
134
171
  'setPositionMode': False,
135
172
  'withdraw': True,
@@ -333,12 +370,14 @@ class coinbase(Exchange, ImplicitAPI):
333
370
  'rate_limit_exceeded': RateLimitExceeded, # 429 Rate limit exceeded
334
371
  'internal_server_error': ExchangeError, # 500 Internal server error
335
372
  'UNSUPPORTED_ORDER_CONFIGURATION': BadRequest,
336
- 'INSUFFICIENT_FUND': BadRequest,
373
+ 'INSUFFICIENT_FUND': InsufficientFunds,
337
374
  'PERMISSION_DENIED': PermissionDenied,
338
375
  'INVALID_ARGUMENT': BadRequest,
339
376
  'PREVIEW_STOP_PRICE_ABOVE_LAST_TRADE_PRICE': InvalidOrder,
377
+ 'PREVIEW_INSUFFICIENT_FUND': InsufficientFunds,
340
378
  },
341
379
  'broad': {
380
+ 'Insufficient balance in source account': InsufficientFunds,
342
381
  'request timestamp expired': InvalidNonce, # {"errors":[{"id":"authentication_error","message":"request timestamp expired"}]}
343
382
  'order with self orderID was not found': OrderNotFound, # {"error":"unknown","error_details":"order with self orderID was not found","message":"order with self orderID was not found"}
344
383
  },
@@ -35,32 +35,60 @@ class coinmate(Exchange, ImplicitAPI):
35
35
  'future': False,
36
36
  'option': False,
37
37
  'addMargin': False,
38
+ 'borrowCrossMargin': False,
39
+ 'borrowIsolatedMargin': False,
40
+ 'borrowMargin': False,
38
41
  'cancelOrder': True,
39
42
  'closeAllPositions': False,
40
43
  'closePosition': False,
41
44
  'createOrder': True,
45
+ 'createOrderWithTakeProfitAndStopLoss': False,
46
+ 'createOrderWithTakeProfitAndStopLossWs': False,
47
+ 'createPostOnlyOrder': False,
42
48
  'createReduceOnlyOrder': False,
43
49
  'fetchBalance': True,
50
+ 'fetchBorrowInterest': False,
51
+ 'fetchBorrowRate': False,
44
52
  'fetchBorrowRateHistories': False,
45
53
  'fetchBorrowRateHistory': False,
54
+ 'fetchBorrowRates': False,
55
+ 'fetchBorrowRatesPerSymbol': False,
46
56
  'fetchCrossBorrowRate': False,
47
57
  'fetchCrossBorrowRates': False,
48
58
  'fetchDepositsWithdrawals': True,
49
59
  'fetchFundingHistory': False,
60
+ 'fetchFundingInterval': False,
61
+ 'fetchFundingIntervals': False,
50
62
  'fetchFundingRate': False,
51
63
  'fetchFundingRateHistory': False,
52
64
  'fetchFundingRates': False,
65
+ 'fetchGreeks': False,
53
66
  'fetchIndexOHLCV': False,
54
67
  'fetchIsolatedBorrowRate': False,
55
68
  'fetchIsolatedBorrowRates': False,
69
+ 'fetchIsolatedPositions': False,
56
70
  'fetchLeverage': False,
71
+ 'fetchLeverages': False,
57
72
  'fetchLeverageTiers': False,
73
+ 'fetchLiquidations': False,
74
+ 'fetchLongShortRatio': False,
75
+ 'fetchLongShortRatioHistory': False,
76
+ 'fetchMarginAdjustmentHistory': False,
58
77
  'fetchMarginMode': False,
78
+ 'fetchMarginModes': False,
79
+ 'fetchMarketLeverageTiers': False,
59
80
  'fetchMarkets': True,
60
81
  'fetchMarkOHLCV': False,
82
+ 'fetchMarkPrices': False,
83
+ 'fetchMyLiquidations': False,
84
+ 'fetchMySettlementHistory': False,
61
85
  'fetchMyTrades': True,
86
+ 'fetchOpenInterest': False,
62
87
  'fetchOpenInterestHistory': False,
88
+ 'fetchOpenInterests': False,
63
89
  'fetchOpenOrders': True,
90
+ 'fetchOption': False,
91
+ 'fetchOptionChain': False,
64
92
  'fetchOrder': True,
65
93
  'fetchOrderBook': True,
66
94
  'fetchOrders': True,
@@ -72,14 +100,20 @@ class coinmate(Exchange, ImplicitAPI):
72
100
  'fetchPositionsHistory': False,
73
101
  'fetchPositionsRisk': False,
74
102
  'fetchPremiumIndexOHLCV': False,
103
+ 'fetchSettlementHistory': False,
75
104
  'fetchTicker': True,
76
105
  'fetchTickers': True,
77
106
  'fetchTrades': True,
78
107
  'fetchTradingFee': True,
79
108
  'fetchTradingFees': False,
80
109
  'fetchTransactions': 'emulated',
110
+ 'fetchVolatilityHistory': False,
81
111
  'reduceMargin': False,
112
+ 'repayCrossMargin': False,
113
+ 'repayIsolatedMargin': False,
114
+ 'repayMargin': False,
82
115
  'setLeverage': False,
116
+ 'setMargin': False,
83
117
  'setMarginMode': False,
84
118
  'setPositionMode': False,
85
119
  'transfer': False,
@@ -5,6 +5,7 @@
5
5
 
6
6
  from ccxt.async_support.base.exchange import Exchange
7
7
  from ccxt.abstract.coinmetro import ImplicitAPI
8
+ import asyncio
8
9
  from ccxt.base.types import Any, Balances, Currencies, Currency, IndexType, Int, LedgerEntry, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade
9
10
  from typing import List
10
11
  from ccxt.base.errors import ExchangeError
@@ -220,6 +221,7 @@ class coinmetro(Exchange, ImplicitAPI):
220
221
  'options': {
221
222
  'currenciesByIdForParseMarket': None,
222
223
  'currencyIdsListForParseMarket': ['QRDO'],
224
+ 'skippedMarkets': ['VXVUSDT'], # broken markets which do not have enough info in API
223
225
  },
224
226
  'features': {
225
227
  'spot': {
@@ -439,9 +441,12 @@ class coinmetro(Exchange, ImplicitAPI):
439
441
  :param dict [params]: extra parameters specific to the exchange API endpoint
440
442
  :returns dict[]: an array of objects representing market data
441
443
  """
442
- response = await self.publicGetMarkets(params)
444
+ promises = []
445
+ promises.append(self.publicGetMarkets(params))
443
446
  if self.safe_value(self.options, 'currenciesByIdForParseMarket') is None:
444
- await self.fetch_currencies()
447
+ promises.append(self.fetch_currencies())
448
+ responses = await asyncio.gather(*promises)
449
+ response = responses[0]
445
450
  #
446
451
  # [
447
452
  # {
@@ -457,7 +462,14 @@ class coinmetro(Exchange, ImplicitAPI):
457
462
  # ...
458
463
  # ]
459
464
  #
460
- return self.parse_markets(response)
465
+ skippedMarkets = self.safe_list(self.options, 'skippedMarkets', [])
466
+ result = []
467
+ for i in range(0, len(response)):
468
+ market = self.parse_market(response[i])
469
+ if self.in_array(market['id'], skippedMarkets):
470
+ continue
471
+ result.append(market)
472
+ return result
461
473
 
462
474
  def parse_market(self, market: dict) -> Market:
463
475
  id = self.safe_string(market, 'pair')
@@ -36,18 +36,28 @@ class coinone(Exchange, ImplicitAPI):
36
36
  'future': False,
37
37
  'option': False,
38
38
  'addMargin': False,
39
+ 'borrowCrossMargin': False,
40
+ 'borrowIsolatedMargin': False,
41
+ 'borrowMargin': False,
39
42
  'cancelOrder': True,
40
43
  'closeAllPositions': False,
41
44
  'closePosition': False,
42
45
  'createMarketOrder': False,
43
46
  'createOrder': True,
47
+ 'createOrderWithTakeProfitAndStopLoss': False,
48
+ 'createOrderWithTakeProfitAndStopLossWs': False,
49
+ 'createPostOnlyOrder': False,
44
50
  'createReduceOnlyOrder': False,
45
51
  'createStopLimitOrder': False,
46
52
  'createStopMarketOrder': False,
47
53
  'createStopOrder': False,
48
54
  'fetchBalance': True,
55
+ 'fetchBorrowInterest': False,
56
+ 'fetchBorrowRate': False,
49
57
  'fetchBorrowRateHistories': False,
50
58
  'fetchBorrowRateHistory': False,
59
+ 'fetchBorrowRates': False,
60
+ 'fetchBorrowRatesPerSymbol': False,
51
61
  'fetchClosedOrders': False, # the endpoint that should return closed orders actually returns trades, https://github.com/ccxt/ccxt/pull/7067
52
62
  'fetchCrossBorrowRate': False,
53
63
  'fetchCrossBorrowRates': False,
@@ -56,20 +66,38 @@ class coinone(Exchange, ImplicitAPI):
56
66
  'fetchDepositAddresses': True,
57
67
  'fetchDepositAddressesByNetwork': False,
58
68
  'fetchFundingHistory': False,
69
+ 'fetchFundingInterval': False,
70
+ 'fetchFundingIntervals': False,
59
71
  'fetchFundingRate': False,
60
72
  'fetchFundingRateHistory': False,
61
73
  'fetchFundingRates': False,
74
+ 'fetchGreeks': False,
62
75
  'fetchIndexOHLCV': False,
63
76
  'fetchIsolatedBorrowRate': False,
64
77
  'fetchIsolatedBorrowRates': False,
78
+ 'fetchIsolatedPositions': False,
65
79
  'fetchLeverage': False,
80
+ 'fetchLeverages': False,
66
81
  'fetchLeverageTiers': False,
82
+ 'fetchLiquidations': False,
83
+ 'fetchLongShortRatio': False,
84
+ 'fetchLongShortRatioHistory': False,
85
+ 'fetchMarginAdjustmentHistory': False,
67
86
  'fetchMarginMode': False,
87
+ 'fetchMarginModes': False,
88
+ 'fetchMarketLeverageTiers': False,
68
89
  'fetchMarkets': True,
69
90
  'fetchMarkOHLCV': False,
91
+ 'fetchMarkPrices': False,
92
+ 'fetchMyLiquidations': False,
93
+ 'fetchMySettlementHistory': False,
70
94
  'fetchMyTrades': True,
95
+ 'fetchOpenInterest': False,
71
96
  'fetchOpenInterestHistory': False,
97
+ 'fetchOpenInterests': False,
72
98
  'fetchOpenOrders': True,
99
+ 'fetchOption': False,
100
+ 'fetchOptionChain': False,
73
101
  'fetchOrder': True,
74
102
  'fetchOrderBook': True,
75
103
  'fetchPosition': False,
@@ -80,11 +108,17 @@ class coinone(Exchange, ImplicitAPI):
80
108
  'fetchPositionsHistory': False,
81
109
  'fetchPositionsRisk': False,
82
110
  'fetchPremiumIndexOHLCV': False,
111
+ 'fetchSettlementHistory': False,
83
112
  'fetchTicker': True,
84
113
  'fetchTickers': True,
85
114
  'fetchTrades': True,
115
+ 'fetchVolatilityHistory': False,
86
116
  'reduceMargin': False,
117
+ 'repayCrossMargin': False,
118
+ 'repayIsolatedMargin': False,
119
+ 'repayMargin': False,
87
120
  'setLeverage': False,
121
+ 'setMargin': False,
88
122
  'setMarginMode': False,
89
123
  'setPositionMode': False,
90
124
  'ws': True,
@@ -47,6 +47,9 @@ class coinsph(Exchange, ImplicitAPI):
47
47
  'future': False,
48
48
  'option': False,
49
49
  'addMargin': False,
50
+ 'borrowCrossMargin': False,
51
+ 'borrowIsolatedMargin': False,
52
+ 'borrowMargin': False,
50
53
  'cancelAllOrders': True,
51
54
  'cancelOrder': True,
52
55
  'cancelOrders': False,
@@ -57,6 +60,8 @@ class coinsph(Exchange, ImplicitAPI):
57
60
  'createMarketOrderWithCost': False,
58
61
  'createMarketSellOrderWithCost': False,
59
62
  'createOrder': True,
63
+ 'createOrderWithTakeProfitAndStopLoss': False,
64
+ 'createOrderWithTakeProfitAndStopLossWs': False,
60
65
  'createPostOnlyOrder': False,
61
66
  'createReduceOnlyOrder': False,
62
67
  'createStopLimitOrder': True,
@@ -68,8 +73,11 @@ class coinsph(Exchange, ImplicitAPI):
68
73
  'fetchBalance': True,
69
74
  'fetchBidsAsks': False,
70
75
  'fetchBorrowInterest': False,
76
+ 'fetchBorrowRate': False,
71
77
  'fetchBorrowRateHistories': False,
72
78
  'fetchBorrowRateHistory': False,
79
+ 'fetchBorrowRates': False,
80
+ 'fetchBorrowRatesPerSymbol': False,
73
81
  'fetchCanceledOrders': False,
74
82
  'fetchClosedOrder': False,
75
83
  'fetchClosedOrders': True,
@@ -84,24 +92,42 @@ class coinsph(Exchange, ImplicitAPI):
84
92
  'fetchDepositWithdrawFee': False,
85
93
  'fetchDepositWithdrawFees': False,
86
94
  'fetchFundingHistory': False,
95
+ 'fetchFundingInterval': False,
96
+ 'fetchFundingIntervals': False,
87
97
  'fetchFundingRate': False,
88
98
  'fetchFundingRateHistory': False,
89
99
  'fetchFundingRates': False,
100
+ 'fetchGreeks': False,
90
101
  'fetchIndexOHLCV': False,
91
102
  'fetchIsolatedBorrowRate': False,
92
103
  'fetchIsolatedBorrowRates': False,
104
+ 'fetchIsolatedPositions': False,
93
105
  'fetchL3OrderBook': False,
94
106
  'fetchLedger': False,
95
107
  'fetchLeverage': False,
108
+ 'fetchLeverages': False,
96
109
  'fetchLeverageTiers': False,
110
+ 'fetchLiquidations': False,
111
+ 'fetchLongShortRatio': False,
112
+ 'fetchLongShortRatioHistory': False,
113
+ 'fetchMarginAdjustmentHistory': False,
114
+ 'fetchMarginMode': False,
115
+ 'fetchMarginModes': False,
97
116
  'fetchMarketLeverageTiers': False,
98
117
  'fetchMarkets': True,
99
118
  'fetchMarkOHLCV': False,
119
+ 'fetchMarkPrices': False,
120
+ 'fetchMyLiquidations': False,
121
+ 'fetchMySettlementHistory': False,
100
122
  'fetchMyTrades': True,
101
123
  'fetchOHLCV': True,
124
+ 'fetchOpenInterest': False,
102
125
  'fetchOpenInterestHistory': False,
126
+ 'fetchOpenInterests': False,
103
127
  'fetchOpenOrder': None,
104
128
  'fetchOpenOrders': True,
129
+ 'fetchOption': False,
130
+ 'fetchOptionChain': False,
105
131
  'fetchOrder': True,
106
132
  'fetchOrderBook': True,
107
133
  'fetchOrderBooks': False,
@@ -115,6 +141,7 @@ class coinsph(Exchange, ImplicitAPI):
115
141
  'fetchPositionsHistory': False,
116
142
  'fetchPositionsRisk': False,
117
143
  'fetchPremiumIndexOHLCV': False,
144
+ 'fetchSettlementHistory': False,
118
145
  'fetchStatus': True,
119
146
  'fetchTicker': True,
120
147
  'fetchTickers': True,
@@ -127,12 +154,14 @@ class coinsph(Exchange, ImplicitAPI):
127
154
  'fetchTransactionFees': False,
128
155
  'fetchTransactions': False,
129
156
  'fetchTransfers': False,
157
+ 'fetchVolatilityHistory': False,
130
158
  'fetchWithdrawal': None,
131
159
  'fetchWithdrawals': True,
132
160
  'fetchWithdrawalWhitelist': False,
133
161
  'reduceMargin': False,
134
162
  'repayCrossMargin': False,
135
163
  'repayIsolatedMargin': False,
164
+ 'repayMargin': False,
136
165
  'setLeverage': False,
137
166
  'setMargin': False,
138
167
  'setMarginMode': False,
@@ -3755,7 +3755,7 @@ class gate(Exchange, ImplicitAPI):
3755
3755
  start = self.parse_to_int(since / 1000)
3756
3756
  request['from'] = start
3757
3757
  request['to'] = self.sum(start, 30 * 24 * 60 * 60)
3758
- request, params = self.handle_until_option('to', request, params)
3758
+ request, params = self.handle_until_option('to', request, params, 0.001)
3759
3759
  response = await self.privateWalletGetDeposits(self.extend(request, params))
3760
3760
  return self.parse_transactions(response, currency)
3761
3761
 
ccxt/async_support/htx.py CHANGED
@@ -6577,12 +6577,16 @@ class htx(Exchange, ImplicitAPI):
6577
6577
  paginate = False
6578
6578
  paginate, params = self.handle_option_and_params(params, 'fetchFundingRateHistory', 'paginate')
6579
6579
  if paginate:
6580
- return await self.fetch_paginated_call_cursor('fetchFundingRateHistory', symbol, since, limit, params, 'page_index', 'current_page', 1, 50)
6580
+ return await self.fetch_paginated_call_cursor('fetchFundingRateHistory', symbol, since, limit, params, 'current_page', 'page_index', 1, 50)
6581
6581
  await self.load_markets()
6582
6582
  market = self.market(symbol)
6583
6583
  request: dict = {
6584
6584
  'contract_code': market['id'],
6585
6585
  }
6586
+ if limit is not None:
6587
+ request['page_size'] = limit
6588
+ else:
6589
+ request['page_size'] = 50 # max
6586
6590
  response = None
6587
6591
  if market['inverse']:
6588
6592
  response = await self.contractPublicGetSwapApiV1SwapHistoricalFundingRate(self.extend(request, params))