ccxt 4.2.82__py2.py3-none-any.whl → 4.2.84__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.

Potentially problematic release.


This version of ccxt might be problematic. Click here for more details.

Files changed (191) hide show
  1. ccxt/__init__.py +1 -1
  2. ccxt/abstract/bitstamp.py +1 -1
  3. ccxt/abstract/bybit.py +1 -1
  4. ccxt/ace.py +1 -1
  5. ccxt/alpaca.py +1 -1
  6. ccxt/ascendex.py +1 -1
  7. ccxt/async_support/__init__.py +1 -1
  8. ccxt/async_support/ace.py +1 -1
  9. ccxt/async_support/alpaca.py +1 -1
  10. ccxt/async_support/ascendex.py +1 -1
  11. ccxt/async_support/base/exchange.py +1 -1
  12. ccxt/async_support/bigone.py +1 -1
  13. ccxt/async_support/binance.py +1 -1
  14. ccxt/async_support/bingx.py +1 -1
  15. ccxt/async_support/bitbank.py +1 -1
  16. ccxt/async_support/bitbns.py +1 -1
  17. ccxt/async_support/bitfinex.py +1 -1
  18. ccxt/async_support/bitfinex2.py +1 -1
  19. ccxt/async_support/bitflyer.py +1 -1
  20. ccxt/async_support/bitget.py +12 -5
  21. ccxt/async_support/bithumb.py +2 -1
  22. ccxt/async_support/bitmart.py +1 -1
  23. ccxt/async_support/bitmex.py +1 -1
  24. ccxt/async_support/bitopro.py +1 -1
  25. ccxt/async_support/bitrue.py +1 -1
  26. ccxt/async_support/bitso.py +1 -1
  27. ccxt/async_support/bitstamp.py +43 -16
  28. ccxt/async_support/bitteam.py +1 -1
  29. ccxt/async_support/bitvavo.py +1 -1
  30. ccxt/async_support/blockchaincom.py +1 -1
  31. ccxt/async_support/blofin.py +1 -1
  32. ccxt/async_support/btcalpha.py +1 -1
  33. ccxt/async_support/btcmarkets.py +1 -1
  34. ccxt/async_support/btcturk.py +1 -1
  35. ccxt/async_support/bybit.py +5 -5
  36. ccxt/async_support/cex.py +1 -1
  37. ccxt/async_support/coinbase.py +1 -1
  38. ccxt/async_support/coinbaseinternational.py +1 -1
  39. ccxt/async_support/coinbasepro.py +1 -1
  40. ccxt/async_support/coinex.py +2 -3
  41. ccxt/async_support/coinlist.py +1 -1
  42. ccxt/async_support/coinmate.py +1 -1
  43. ccxt/async_support/coinmetro.py +1 -1
  44. ccxt/async_support/coinone.py +1 -1
  45. ccxt/async_support/coinsph.py +1 -1
  46. ccxt/async_support/cryptocom.py +1 -1
  47. ccxt/async_support/currencycom.py +1 -1
  48. ccxt/async_support/delta.py +1 -1
  49. ccxt/async_support/deribit.py +17 -2
  50. ccxt/async_support/digifinex.py +1 -1
  51. ccxt/async_support/exmo.py +1 -1
  52. ccxt/async_support/gate.py +1 -1
  53. ccxt/async_support/gemini.py +2 -1
  54. ccxt/async_support/hitbtc.py +1 -1
  55. ccxt/async_support/hollaex.py +1 -1
  56. ccxt/async_support/htx.py +6 -28
  57. ccxt/async_support/huobijp.py +1 -1
  58. ccxt/async_support/hyperliquid.py +6 -5
  59. ccxt/async_support/idex.py +1 -1
  60. ccxt/async_support/independentreserve.py +1 -1
  61. ccxt/async_support/indodax.py +1 -1
  62. ccxt/async_support/kraken.py +1 -1
  63. ccxt/async_support/krakenfutures.py +1 -1
  64. ccxt/async_support/kucoin.py +11 -2
  65. ccxt/async_support/kucoinfutures.py +147 -10
  66. ccxt/async_support/kuna.py +1 -1
  67. ccxt/async_support/latoken.py +1 -1
  68. ccxt/async_support/lbank.py +1 -1
  69. ccxt/async_support/luno.py +1 -1
  70. ccxt/async_support/lykke.py +1 -1
  71. ccxt/async_support/mercado.py +1 -1
  72. ccxt/async_support/mexc.py +1 -1
  73. ccxt/async_support/ndax.py +1 -1
  74. ccxt/async_support/novadax.py +1 -1
  75. ccxt/async_support/oceanex.py +1 -1
  76. ccxt/async_support/okcoin.py +1 -1
  77. ccxt/async_support/okx.py +1 -1
  78. ccxt/async_support/onetrading.py +1 -1
  79. ccxt/async_support/p2b.py +1 -1
  80. ccxt/async_support/phemex.py +1 -1
  81. ccxt/async_support/poloniex.py +1 -1
  82. ccxt/async_support/poloniexfutures.py +1 -1
  83. ccxt/async_support/probit.py +1 -1
  84. ccxt/async_support/timex.py +1 -1
  85. ccxt/async_support/tokocrypto.py +1 -1
  86. ccxt/async_support/tradeogre.py +2 -1
  87. ccxt/async_support/upbit.py +1 -1
  88. ccxt/async_support/wavesexchange.py +1 -1
  89. ccxt/async_support/wazirx.py +1 -1
  90. ccxt/async_support/whitebit.py +1 -1
  91. ccxt/async_support/woo.py +1 -1
  92. ccxt/async_support/yobit.py +1 -1
  93. ccxt/async_support/zaif.py +1 -1
  94. ccxt/async_support/zonda.py +1 -1
  95. ccxt/base/exchange.py +1 -1
  96. ccxt/bigone.py +1 -1
  97. ccxt/binance.py +1 -1
  98. ccxt/bingx.py +1 -1
  99. ccxt/bitbank.py +1 -1
  100. ccxt/bitbns.py +1 -1
  101. ccxt/bitfinex.py +1 -1
  102. ccxt/bitfinex2.py +1 -1
  103. ccxt/bitflyer.py +1 -1
  104. ccxt/bitget.py +12 -5
  105. ccxt/bithumb.py +2 -1
  106. ccxt/bitmart.py +1 -1
  107. ccxt/bitmex.py +1 -1
  108. ccxt/bitopro.py +1 -1
  109. ccxt/bitrue.py +1 -1
  110. ccxt/bitso.py +1 -1
  111. ccxt/bitstamp.py +43 -16
  112. ccxt/bitteam.py +1 -1
  113. ccxt/bitvavo.py +1 -1
  114. ccxt/blockchaincom.py +1 -1
  115. ccxt/blofin.py +1 -1
  116. ccxt/btcalpha.py +1 -1
  117. ccxt/btcmarkets.py +1 -1
  118. ccxt/btcturk.py +1 -1
  119. ccxt/bybit.py +5 -5
  120. ccxt/cex.py +1 -1
  121. ccxt/coinbase.py +1 -1
  122. ccxt/coinbaseinternational.py +1 -1
  123. ccxt/coinbasepro.py +1 -1
  124. ccxt/coinex.py +2 -3
  125. ccxt/coinlist.py +1 -1
  126. ccxt/coinmate.py +1 -1
  127. ccxt/coinmetro.py +1 -1
  128. ccxt/coinone.py +1 -1
  129. ccxt/coinsph.py +1 -1
  130. ccxt/cryptocom.py +1 -1
  131. ccxt/currencycom.py +1 -1
  132. ccxt/delta.py +1 -1
  133. ccxt/deribit.py +17 -2
  134. ccxt/digifinex.py +1 -1
  135. ccxt/exmo.py +1 -1
  136. ccxt/gate.py +1 -1
  137. ccxt/gemini.py +2 -1
  138. ccxt/hitbtc.py +1 -1
  139. ccxt/hollaex.py +1 -1
  140. ccxt/htx.py +6 -28
  141. ccxt/huobijp.py +1 -1
  142. ccxt/hyperliquid.py +6 -5
  143. ccxt/idex.py +1 -1
  144. ccxt/independentreserve.py +1 -1
  145. ccxt/indodax.py +1 -1
  146. ccxt/kraken.py +1 -1
  147. ccxt/krakenfutures.py +1 -1
  148. ccxt/kucoin.py +11 -2
  149. ccxt/kucoinfutures.py +147 -10
  150. ccxt/kuna.py +1 -1
  151. ccxt/latoken.py +1 -1
  152. ccxt/lbank.py +1 -1
  153. ccxt/luno.py +1 -1
  154. ccxt/lykke.py +1 -1
  155. ccxt/mercado.py +1 -1
  156. ccxt/mexc.py +1 -1
  157. ccxt/ndax.py +1 -1
  158. ccxt/novadax.py +1 -1
  159. ccxt/oceanex.py +1 -1
  160. ccxt/okcoin.py +1 -1
  161. ccxt/okx.py +1 -1
  162. ccxt/onetrading.py +1 -1
  163. ccxt/p2b.py +1 -1
  164. ccxt/phemex.py +1 -1
  165. ccxt/poloniex.py +1 -1
  166. ccxt/poloniexfutures.py +1 -1
  167. ccxt/pro/__init__.py +3 -1
  168. ccxt/pro/bithumb.py +368 -0
  169. ccxt/pro/bitmart.py +1 -1
  170. ccxt/pro/bybit.py +1 -1
  171. ccxt/pro/cex.py +15 -5
  172. ccxt/pro/okx.py +2 -1
  173. ccxt/pro/p2b.py +14 -4
  174. ccxt/pro/woo.py +1 -1
  175. ccxt/probit.py +1 -1
  176. ccxt/test/base/test_market.py +3 -0
  177. ccxt/timex.py +1 -1
  178. ccxt/tokocrypto.py +1 -1
  179. ccxt/tradeogre.py +2 -1
  180. ccxt/upbit.py +1 -1
  181. ccxt/wavesexchange.py +1 -1
  182. ccxt/wazirx.py +1 -1
  183. ccxt/whitebit.py +1 -1
  184. ccxt/woo.py +1 -1
  185. ccxt/yobit.py +1 -1
  186. ccxt/zaif.py +1 -1
  187. ccxt/zonda.py +1 -1
  188. {ccxt-4.2.82.dist-info → ccxt-4.2.84.dist-info}/METADATA +5 -5
  189. {ccxt-4.2.82.dist-info → ccxt-4.2.84.dist-info}/RECORD +191 -190
  190. {ccxt-4.2.82.dist-info → ccxt-4.2.84.dist-info}/WHEEL +0 -0
  191. {ccxt-4.2.82.dist-info → ccxt-4.2.84.dist-info}/top_level.txt +0 -0
@@ -161,7 +161,7 @@ class mercado(Exchange, ImplicitAPI):
161
161
  'precisionMode': TICK_SIZE,
162
162
  })
163
163
 
164
- async def fetch_markets(self, params={}):
164
+ async def fetch_markets(self, params={}) -> List[Market]:
165
165
  """
166
166
  retrieves data on all markets for mercado
167
167
  :param dict [params]: extra parameters specific to the exchange API endpoint
@@ -1132,7 +1132,7 @@ class mexc(Exchange, ImplicitAPI):
1132
1132
  }
1133
1133
  return result
1134
1134
 
1135
- async def fetch_markets(self, params={}):
1135
+ async def fetch_markets(self, params={}) -> List[Market]:
1136
1136
  """
1137
1137
  retrieves data on all markets for mexc
1138
1138
  :param dict [params]: extra parameters specific to the exchange API endpoint
@@ -395,7 +395,7 @@ class ndax(Exchange, ImplicitAPI):
395
395
  }
396
396
  return result
397
397
 
398
- async def fetch_markets(self, params={}):
398
+ async def fetch_markets(self, params={}) -> List[Market]:
399
399
  """
400
400
  retrieves data on all markets for ndax
401
401
  :see: https://apidoc.ndax.io/#getinstruments
@@ -238,7 +238,7 @@ class novadax(Exchange, ImplicitAPI):
238
238
  #
239
239
  return self.safe_integer(response, 'data')
240
240
 
241
- async def fetch_markets(self, params={}):
241
+ async def fetch_markets(self, params={}) -> List[Market]:
242
242
  """
243
243
  retrieves data on all markets for novadax
244
244
  :see: https://doc.novadax.com/en-US/#get-all-supported-trading-symbol
@@ -156,7 +156,7 @@ class oceanex(Exchange, ImplicitAPI):
156
156
  },
157
157
  })
158
158
 
159
- async def fetch_markets(self, params={}):
159
+ async def fetch_markets(self, params={}) -> List[Market]:
160
160
  """
161
161
  retrieves data on all markets for oceanex
162
162
  :see: https://api.oceanex.pro/doc/v1/#markets-post
@@ -629,7 +629,7 @@ class okcoin(Exchange, ImplicitAPI):
629
629
  #
630
630
  return self.parse8601(self.safe_string(response, 'iso'))
631
631
 
632
- async def fetch_markets(self, params={}):
632
+ async def fetch_markets(self, params={}) -> List[Market]:
633
633
  """
634
634
  :see: https://www.okcoin.com/docs-v5/en/#rest-api-public-data-get-instruments
635
635
  retrieves data on all markets for okcoin
ccxt/async_support/okx.py CHANGED
@@ -1330,7 +1330,7 @@ class okx(Exchange, ImplicitAPI):
1330
1330
  })
1331
1331
  return result
1332
1332
 
1333
- async def fetch_markets(self, params={}):
1333
+ async def fetch_markets(self, params={}) -> List[Market]:
1334
1334
  """
1335
1335
  retrieves data on all markets for okx
1336
1336
  :see: https://www.okx.com/docs-v5/en/#rest-api-public-data-get-instruments
@@ -363,7 +363,7 @@ class onetrading(Exchange, ImplicitAPI):
363
363
  }
364
364
  return result
365
365
 
366
- async def fetch_markets(self, params={}):
366
+ async def fetch_markets(self, params={}) -> List[Market]:
367
367
  """
368
368
  retrieves data on all markets for onetrading
369
369
  :param dict [params]: extra parameters specific to the exchange API endpoint
ccxt/async_support/p2b.py CHANGED
@@ -236,7 +236,7 @@ class p2b(Exchange, ImplicitAPI):
236
236
  },
237
237
  })
238
238
 
239
- async def fetch_markets(self, params={}):
239
+ async def fetch_markets(self, params={}) -> List[Market]:
240
240
  """
241
241
  retrieves data on all markets for bigone
242
242
  :see: https://github.com/P2B-team/p2b-api-docs/blob/master/api-doc.md#markets
@@ -747,7 +747,7 @@ class phemex(Exchange, ImplicitAPI):
747
747
  'info': market,
748
748
  })
749
749
 
750
- async def fetch_markets(self, params={}):
750
+ async def fetch_markets(self, params={}) -> List[Market]:
751
751
  """
752
752
  retrieves data on all markets for phemex
753
753
  :param dict [params]: extra parameters specific to the exchange API endpoint
@@ -480,7 +480,7 @@ class poloniex(Exchange, ImplicitAPI):
480
480
  self.options['currenciesByNumericId'] = self.index_by(self.currencies, 'numericId')
481
481
  return markets
482
482
 
483
- async def fetch_markets(self, params={}):
483
+ async def fetch_markets(self, params={}) -> List[Market]:
484
484
  """
485
485
  retrieves data on all markets for poloniex
486
486
  :see: https://docs.poloniex.com/#public-endpoints-reference-data-symbol-information
@@ -215,7 +215,7 @@ class poloniexfutures(Exchange, ImplicitAPI):
215
215
  },
216
216
  })
217
217
 
218
- async def fetch_markets(self, params={}):
218
+ async def fetch_markets(self, params={}) -> List[Market]:
219
219
  """
220
220
  retrieves data on all markets for poloniexfutures
221
221
  :see: https://futures-docs.poloniex.com/#symbol-2
@@ -256,7 +256,7 @@ class probit(Exchange, ImplicitAPI):
256
256
  },
257
257
  })
258
258
 
259
- async def fetch_markets(self, params={}):
259
+ async def fetch_markets(self, params={}) -> List[Market]:
260
260
  """
261
261
  :see: https://docs-en.probit.com/reference/market
262
262
  retrieves data on all markets for probit
@@ -292,7 +292,7 @@ class timex(Exchange, ImplicitAPI):
292
292
  #
293
293
  return self.parse_to_int(response) * 1000
294
294
 
295
- async def fetch_markets(self, params={}):
295
+ async def fetch_markets(self, params={}) -> List[Market]:
296
296
  """
297
297
  retrieves data on all markets for timex
298
298
  :see: https://plasma-relay-backend.timex.io/swagger-ui/index.html?urls.primaryName=Relay#/Public/listMarkets
@@ -637,7 +637,7 @@ class tokocrypto(Exchange, ImplicitAPI):
637
637
  #
638
638
  return self.safe_integer(response, 'serverTime')
639
639
 
640
- async def fetch_markets(self, params={}):
640
+ async def fetch_markets(self, params={}) -> List[Market]:
641
641
  """
642
642
  :see: https://www.tokocrypto.com/apidocs/#get-all-supported-trading-symbol
643
643
  retrieves data on all markets for tokocrypto
@@ -6,6 +6,7 @@
6
6
  from ccxt.async_support.base.exchange import Exchange
7
7
  from ccxt.abstract.tradeogre import ImplicitAPI
8
8
  from ccxt.base.types import IndexType, Int, Market, Num, Order, OrderSide, OrderType, Str, Ticker
9
+ from typing import List
9
10
  from ccxt.base.errors import ExchangeError
10
11
  from ccxt.base.errors import BadRequest
11
12
  from ccxt.base.errors import InsufficientFunds
@@ -162,7 +163,7 @@ class tradeogre(Exchange, ImplicitAPI):
162
163
  },
163
164
  })
164
165
 
165
- async def fetch_markets(self, params={}):
166
+ async def fetch_markets(self, params={}) -> List[Market]:
166
167
  """
167
168
  retrieves data on all markets for bigone
168
169
  :see: https://github.com/P2B-team/p2b-api-docs/blob/master/api-doc.md#markets
@@ -403,7 +403,7 @@ class upbit(Exchange, ImplicitAPI):
403
403
  },
404
404
  })
405
405
 
406
- async def fetch_markets(self, params={}):
406
+ async def fetch_markets(self, params={}) -> List[Market]:
407
407
  """
408
408
  :see: https://docs.upbit.com/reference/%EB%A7%88%EC%BC%93-%EC%BD%94%EB%93%9C-%EC%A1%B0%ED%9A%8C
409
409
  retrieves data on all markets for upbit
@@ -495,7 +495,7 @@ class wavesexchange(Exchange, ImplicitAPI):
495
495
  self.options['quotes'] = quotes
496
496
  return quotes
497
497
 
498
- async def fetch_markets(self, params={}):
498
+ async def fetch_markets(self, params={}) -> List[Market]:
499
499
  """
500
500
  retrieves data on all markets for wavesexchange
501
501
  :param dict [params]: extra parameters specific to the exchange API endpoint
@@ -196,7 +196,7 @@ class wazirx(Exchange, ImplicitAPI):
196
196
  },
197
197
  })
198
198
 
199
- async def fetch_markets(self, params={}):
199
+ async def fetch_markets(self, params={}) -> List[Market]:
200
200
  """
201
201
  :see: https://docs.wazirx.com/#exchange-info
202
202
  retrieves data on all markets for wazirx
@@ -281,7 +281,7 @@ class whitebit(Exchange, ImplicitAPI):
281
281
  },
282
282
  })
283
283
 
284
- async def fetch_markets(self, params={}):
284
+ async def fetch_markets(self, params={}) -> List[Market]:
285
285
  """
286
286
  retrieves data on all markets for whitebit
287
287
  :see: https://docs.whitebit.com/public/http-v4/#market-info
ccxt/async_support/woo.py CHANGED
@@ -387,7 +387,7 @@ class woo(Exchange, ImplicitAPI):
387
387
  #
388
388
  return self.safe_integer(response, 'timestamp')
389
389
 
390
- async def fetch_markets(self, params={}):
390
+ async def fetch_markets(self, params={}) -> List[Market]:
391
391
  """
392
392
  retrieves data on all markets for woo
393
393
  :param dict [params]: extra parameters specific to the exchange API endpoint
@@ -347,7 +347,7 @@ class yobit(Exchange, ImplicitAPI):
347
347
  #
348
348
  return self.parse_balance(response)
349
349
 
350
- async def fetch_markets(self, params={}):
350
+ async def fetch_markets(self, params={}) -> List[Market]:
351
351
  """
352
352
  :see: https://yobit.net/en/api
353
353
  retrieves data on all markets for yobit
@@ -143,7 +143,7 @@ class zaif(Exchange, ImplicitAPI):
143
143
  },
144
144
  })
145
145
 
146
- async def fetch_markets(self, params={}):
146
+ async def fetch_markets(self, params={}) -> List[Market]:
147
147
  """
148
148
  :see: https://zaif-api-document.readthedocs.io/ja/latest/PublicAPI.html#id12
149
149
  retrieves data on all markets for zaif
@@ -311,7 +311,7 @@ class zonda(Exchange, ImplicitAPI):
311
311
  },
312
312
  })
313
313
 
314
- async def fetch_markets(self, params={}):
314
+ async def fetch_markets(self, params={}) -> List[Market]:
315
315
  """
316
316
  :see: https://docs.zondacrypto.exchange/reference/ticker-1
317
317
  retrieves data on all markets for zonda
ccxt/base/exchange.py CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.2.82'
7
+ __version__ = '4.2.84'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
ccxt/bigone.py CHANGED
@@ -518,7 +518,7 @@ class bigone(Exchange, ImplicitAPI):
518
518
  }
519
519
  return result
520
520
 
521
- def fetch_markets(self, params={}):
521
+ def fetch_markets(self, params={}) -> List[Market]:
522
522
  """
523
523
  retrieves data on all markets for bigone
524
524
  :see: https://open.big.one/docs/spot_asset_pair.html
ccxt/binance.py CHANGED
@@ -2789,7 +2789,7 @@ class binance(Exchange, ImplicitAPI):
2789
2789
  }
2790
2790
  return result
2791
2791
 
2792
- def fetch_markets(self, params={}):
2792
+ def fetch_markets(self, params={}) -> List[Market]:
2793
2793
  """
2794
2794
  retrieves data on all markets for binance
2795
2795
  :see: https://binance-docs.github.io/apidocs/spot/en/#exchange-information # spot
ccxt/bingx.py CHANGED
@@ -687,7 +687,7 @@ class bingx(Exchange, ImplicitAPI):
687
687
  'info': market,
688
688
  })
689
689
 
690
- def fetch_markets(self, params={}):
690
+ def fetch_markets(self, params={}) -> List[Market]:
691
691
  """
692
692
  retrieves data on all markets for bingx
693
693
  :see: https://bingx-api.github.io/docs/#/spot/market-api.html#Query%20Symbols
ccxt/bitbank.py CHANGED
@@ -164,7 +164,7 @@ class bitbank(Exchange, ImplicitAPI):
164
164
  },
165
165
  })
166
166
 
167
- def fetch_markets(self, params={}):
167
+ def fetch_markets(self, params={}) -> List[Market]:
168
168
  """
169
169
  retrieves data on all markets for bitbank
170
170
  :see: https://github.com/bitbankinc/bitbank-api-docs/blob/38d6d7c6f486c793872fd4b4087a0d090a04cd0a/rest-api.md#get-all-pairs-info
ccxt/bitbns.py CHANGED
@@ -186,7 +186,7 @@ class bitbns(Exchange, ImplicitAPI):
186
186
  'info': response,
187
187
  }
188
188
 
189
- def fetch_markets(self, params={}):
189
+ def fetch_markets(self, params={}) -> List[Market]:
190
190
  """
191
191
  retrieves data on all markets for bitbns
192
192
  :param dict [params]: extra parameters specific to the exchange API endpoint
ccxt/bitfinex.py CHANGED
@@ -557,7 +557,7 @@ class bitfinex(Exchange, ImplicitAPI):
557
557
  result[symbol] = fee
558
558
  return result
559
559
 
560
- def fetch_markets(self, params={}):
560
+ def fetch_markets(self, params={}) -> List[Market]:
561
561
  """
562
562
  retrieves data on all markets for bitfinex
563
563
  :see: https://docs.bitfinex.com/v1/reference/rest-public-symbols
ccxt/bitfinex2.py CHANGED
@@ -508,7 +508,7 @@ class bitfinex2(Exchange, ImplicitAPI):
508
508
  'info': response,
509
509
  }
510
510
 
511
- def fetch_markets(self, params={}):
511
+ def fetch_markets(self, params={}) -> List[Market]:
512
512
  """
513
513
  retrieves data on all markets for bitfinex2
514
514
  :see: https://docs.bitfinex.com/reference/rest-public-conf
ccxt/bitflyer.py CHANGED
@@ -147,7 +147,7 @@ class bitflyer(Exchange, ImplicitAPI):
147
147
  # Since they're the same we just need to return one
148
148
  return super(bitflyer, self).safe_market(marketId, market, delimiter, 'spot')
149
149
 
150
- def fetch_markets(self, params={}):
150
+ def fetch_markets(self, params={}) -> List[Market]:
151
151
  """
152
152
  retrieves data on all markets for bitflyer
153
153
  :see: https://lightning.bitflyer.com/docs?lang=en#market-list
ccxt/bitget.py CHANGED
@@ -1314,6 +1314,7 @@ class bitget(Exchange, ImplicitAPI):
1314
1314
  'precisionMode': TICK_SIZE,
1315
1315
  'commonCurrencies': {
1316
1316
  'JADE': 'Jade Protocol',
1317
+ 'DEGEN': 'DegenReborn',
1317
1318
  },
1318
1319
  'options': {
1319
1320
  'timeframes': {
@@ -1509,7 +1510,7 @@ class bitget(Exchange, ImplicitAPI):
1509
1510
  data = self.safe_value(response, 'data', {})
1510
1511
  return self.safe_integer(data, 'serverTime')
1511
1512
 
1512
- def fetch_markets(self, params={}):
1513
+ def fetch_markets(self, params={}) -> List[Market]:
1513
1514
  """
1514
1515
  retrieves data on all markets for bitget
1515
1516
  :see: https://www.bitget.com/api-doc/spot/market/Get-Symbols
@@ -2690,6 +2691,7 @@ class bitget(Exchange, ImplicitAPI):
2690
2691
  :see: https://www.bitget.com/api-doc/contract/market/Get-All-Symbol-Ticker
2691
2692
  :param str[]|None symbols: unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
2692
2693
  :param dict [params]: extra parameters specific to the exchange API endpoint
2694
+ :param str [params.subType]: *contract only* 'linear', 'inverse'
2693
2695
  :param str [params.productType]: *contract only* 'USDT-FUTURES', 'USDC-FUTURES', 'COIN-FUTURES', 'SUSDT-FUTURES', 'SUSDC-FUTURES' or 'SCOIN-FUTURES'
2694
2696
  :returns dict: a dictionary of `ticker structures <https://docs.ccxt.com/#/?id=ticker-structure>`
2695
2697
  """
@@ -2703,15 +2705,20 @@ class bitget(Exchange, ImplicitAPI):
2703
2705
  market = self.market(sandboxSymbol)
2704
2706
  else:
2705
2707
  market = self.market(symbol)
2708
+ response = None
2706
2709
  request = {}
2707
2710
  type = None
2708
2711
  type, params = self.handle_market_type_and_params('fetchTickers', market, params)
2709
- response = None
2710
- if type == 'spot':
2712
+ # Calls like `.fetch_tickers(None, {subType:'inverse'})` should be supported for self exchange, so
2713
+ # as "options.defaultSubType" is also set in exchange options, we should consider `params.subType`
2714
+ # with higher priority and only default to spot, if `subType` is not set in params
2715
+ passedSubType = self.safe_string(params, 'subType')
2716
+ productType = None
2717
+ productType, params = self.handle_product_type_and_params(market, params)
2718
+ # only if passedSubType and productType is None, then use spot
2719
+ if type == 'spot' and passedSubType is None:
2711
2720
  response = self.publicSpotGetV2SpotMarketTickers(self.extend(request, params))
2712
2721
  else:
2713
- productType = None
2714
- productType, params = self.handle_product_type_and_params(market, params)
2715
2722
  request['productType'] = productType
2716
2723
  response = self.publicMixGetV2MixMarketTickers(self.extend(request, params))
2717
2724
  #
ccxt/bithumb.py CHANGED
@@ -30,6 +30,7 @@ class bithumb(Exchange, ImplicitAPI):
30
30
  'name': 'Bithumb',
31
31
  'countries': ['KR'], # South Korea
32
32
  'rateLimit': 500,
33
+ 'pro': True,
33
34
  'has': {
34
35
  'CORS': True,
35
36
  'spot': True,
@@ -199,7 +200,7 @@ class bithumb(Exchange, ImplicitAPI):
199
200
  def amount_to_precision(self, symbol, amount):
200
201
  return self.decimal_to_precision(amount, TRUNCATE, self.markets[symbol]['precision']['amount'], DECIMAL_PLACES)
201
202
 
202
- def fetch_markets(self, params={}):
203
+ def fetch_markets(self, params={}) -> List[Market]:
203
204
  """
204
205
  retrieves data on all markets for bithumb
205
206
  :see: https://apidocs.bithumb.com/reference/%ED%98%84%EC%9E%AC%EA%B0%80-%EC%A0%95%EB%B3%B4-%EC%A1%B0%ED%9A%8C-all
ccxt/bitmart.py CHANGED
@@ -975,7 +975,7 @@ class bitmart(Exchange, ImplicitAPI):
975
975
  })
976
976
  return result
977
977
 
978
- def fetch_markets(self, params={}):
978
+ def fetch_markets(self, params={}) -> List[Market]:
979
979
  """
980
980
  retrieves data on all markets for bitmart
981
981
  :param dict [params]: extra parameters specific to the exchange API endpoint
ccxt/bitmex.py CHANGED
@@ -453,7 +453,7 @@ class bitmex(Exchange, ImplicitAPI):
453
453
  def convert_from_raw_cost(self, symbol, rawQuantity):
454
454
  return self.convert_from_raw_quantity(symbol, rawQuantity, 'quote')
455
455
 
456
- def fetch_markets(self, params={}):
456
+ def fetch_markets(self, params={}) -> List[Market]:
457
457
  """
458
458
  retrieves data on all markets for bitmex
459
459
  :see: https://www.bitmex.com/api/explorer/#not /Instrument/Instrument_getActive
ccxt/bitopro.py CHANGED
@@ -280,7 +280,7 @@ class bitopro(Exchange, ImplicitAPI):
280
280
  }
281
281
  return result
282
282
 
283
- def fetch_markets(self, params={}):
283
+ def fetch_markets(self, params={}) -> List[Market]:
284
284
  """
285
285
  retrieves data on all markets for bitopro
286
286
  :see: https://github.com/bitoex/bitopro-offical-api-docs/blob/master/api/v3/public/get_trading_pair_info.md
ccxt/bitrue.py CHANGED
@@ -713,7 +713,7 @@ class bitrue(Exchange, ImplicitAPI):
713
713
  }
714
714
  return result
715
715
 
716
- def fetch_markets(self, params={}):
716
+ def fetch_markets(self, params={}) -> List[Market]:
717
717
  """
718
718
  retrieves data on all markets for bitrue
719
719
  :see: https://github.com/Bitrue-exchange/Spot-official-api-docs#exchangeInfo_endpoint
ccxt/bitso.py CHANGED
@@ -338,7 +338,7 @@ class bitso(Exchange, ImplicitAPI):
338
338
  'info': item,
339
339
  }, currency)
340
340
 
341
- def fetch_markets(self, params={}):
341
+ def fetch_markets(self, params={}) -> List[Market]:
342
342
  """
343
343
  retrieves data on all markets for bitso
344
344
  :see: https://docs.bitso.com/bitso-api/docs/list-available-books
ccxt/bitstamp.py CHANGED
@@ -176,7 +176,7 @@ class bitstamp(Exchange, ImplicitAPI):
176
176
  'transfer-from-main/': 1,
177
177
  'my_trading_pairs/': 1,
178
178
  'fees/trading/': 1,
179
- 'fees/trading/{pair}': 1,
179
+ 'fees/trading/{market_symbol}': 1,
180
180
  'fees/withdrawal/': 1,
181
181
  'fees/withdrawal/{currency}/': 1,
182
182
  'withdrawal-requests/': 1,
@@ -468,7 +468,7 @@ class bitstamp(Exchange, ImplicitAPI):
468
468
  },
469
469
  })
470
470
 
471
- def fetch_markets(self, params={}):
471
+ def fetch_markets(self, params={}) -> List[Market]:
472
472
  """
473
473
  retrieves data on all markets for bitstamp
474
474
  :see: https://www.bitstamp.net/api/#tag/Market-info/operation/GetTradingPairsInfo
@@ -1120,7 +1120,7 @@ class bitstamp(Exchange, ImplicitAPI):
1120
1120
  def fetch_trading_fee(self, symbol: str, params={}):
1121
1121
  """
1122
1122
  fetch the trading fees for a market
1123
- :see: https://www.bitstamp.net/api/#tag/Fees/operation/GetAllTradingFees
1123
+ :see: https://www.bitstamp.net/api/#tag/Fees/operation/GetTradingFeesForCurrency
1124
1124
  :param str symbol: unified market symbol
1125
1125
  :param dict [params]: extra parameters specific to the exchange API endpoint
1126
1126
  :returns dict: a `fee structure <https://docs.ccxt.com/#/?id=fee-structure>`
@@ -1128,21 +1128,35 @@ class bitstamp(Exchange, ImplicitAPI):
1128
1128
  self.load_markets()
1129
1129
  market = self.market(symbol)
1130
1130
  request = {
1131
- 'pair': market['id'],
1131
+ 'market_symbol': market['id'],
1132
1132
  }
1133
- response = self.privatePostBalancePair(self.extend(request, params))
1134
- return self.parse_trading_fee(response, market)
1133
+ response = self.privatePostFeesTrading(self.extend(request, params))
1134
+ #
1135
+ # [
1136
+ # {
1137
+ # "currency_pair": "btcusd",
1138
+ # "fees":
1139
+ # {
1140
+ # "maker": "0.15000",
1141
+ # "taker": "0.16000"
1142
+ # },
1143
+ # "market": "btcusd"
1144
+ # }
1145
+ # ...
1146
+ # ]
1147
+ #
1148
+ tradingFeesByMarketId = self.index_by(response, 'currency_pair')
1149
+ tradingFee = self.safe_dict(tradingFeesByMarketId, market['id'])
1150
+ return self.parse_trading_fee(tradingFee, market)
1135
1151
 
1136
1152
  def parse_trading_fee(self, fee, market: Market = None):
1137
- market = self.safe_market(None, market)
1138
- feeString = self.safe_string(fee, market['id'] + '_fee')
1139
- dividedFeeString = Precise.string_div(feeString, '100')
1140
- tradeFee = self.parse_number(dividedFeeString)
1153
+ marketId = self.safe_string(fee, 'market')
1154
+ fees = self.safe_dict(fee, 'fees', {})
1141
1155
  return {
1142
1156
  'info': fee,
1143
- 'symbol': market['symbol'],
1144
- 'maker': tradeFee,
1145
- 'taker': tradeFee,
1157
+ 'symbol': self.safe_symbol(marketId, market),
1158
+ 'maker': self.safe_number(fees, 'maker'),
1159
+ 'taker': self.safe_number(fees, 'taker'),
1146
1160
  }
1147
1161
 
1148
1162
  def parse_trading_fees(self, fees):
@@ -1150,8 +1164,7 @@ class bitstamp(Exchange, ImplicitAPI):
1150
1164
  symbols = self.symbols
1151
1165
  for i in range(0, len(symbols)):
1152
1166
  symbol = symbols[i]
1153
- market = self.market(symbol)
1154
- fee = self.parse_trading_fee(fees, market)
1167
+ fee = self.parse_trading_fee(fees[i])
1155
1168
  result[symbol] = fee
1156
1169
  return result
1157
1170
 
@@ -1163,7 +1176,21 @@ class bitstamp(Exchange, ImplicitAPI):
1163
1176
  :returns dict: a dictionary of `fee structures <https://docs.ccxt.com/#/?id=fee-structure>` indexed by market symbols
1164
1177
  """
1165
1178
  self.load_markets()
1166
- response = self.privatePostBalance(params)
1179
+ response = self.privatePostFeesTrading(params)
1180
+ #
1181
+ # [
1182
+ # {
1183
+ # "currency_pair": "btcusd",
1184
+ # "fees":
1185
+ # {
1186
+ # "maker": "0.15000",
1187
+ # "taker": "0.16000"
1188
+ # },
1189
+ # "market": "btcusd"
1190
+ # }
1191
+ # ...
1192
+ # ]
1193
+ #
1167
1194
  return self.parse_trading_fees(response)
1168
1195
 
1169
1196
  def fetch_transaction_fees(self, codes: List[str] = None, params={}):
ccxt/bitteam.py CHANGED
@@ -247,7 +247,7 @@ class bitteam(Exchange, ImplicitAPI):
247
247
  },
248
248
  })
249
249
 
250
- def fetch_markets(self, params={}):
250
+ def fetch_markets(self, params={}) -> List[Market]:
251
251
  """
252
252
  retrieves data on all markets for bitteam
253
253
  :see: https://bit.team/trade/api/documentation#/CCXT/getTradeApiCcxtPairs
ccxt/bitvavo.py CHANGED
@@ -322,7 +322,7 @@ class bitvavo(Exchange, ImplicitAPI):
322
322
  #
323
323
  return self.safe_integer(response, 'time')
324
324
 
325
- def fetch_markets(self, params={}):
325
+ def fetch_markets(self, params={}) -> List[Market]:
326
326
  """
327
327
  :see: https://docs.bitvavo.com/#tag/General/paths/~1markets/get
328
328
  retrieves data on all markets for bitvavo
ccxt/blockchaincom.py CHANGED
@@ -227,7 +227,7 @@ class blockchaincom(Exchange, ImplicitAPI):
227
227
  },
228
228
  })
229
229
 
230
- def fetch_markets(self, params={}):
230
+ def fetch_markets(self, params={}) -> List[Market]:
231
231
  """
232
232
  retrieves data on all markets for blockchaincom
233
233
  :see: https://api.blockchain.com/v3/#/unauthenticated/getSymbols
ccxt/blofin.py CHANGED
@@ -355,7 +355,7 @@ class blofin(Exchange, ImplicitAPI):
355
355
  },
356
356
  })
357
357
 
358
- def fetch_markets(self, params={}):
358
+ def fetch_markets(self, params={}) -> List[Market]:
359
359
  """
360
360
  retrieves data on all markets for blofin
361
361
  :see: https://blofin.com/docs#get-instruments
ccxt/btcalpha.py CHANGED
@@ -158,7 +158,7 @@ class btcalpha(Exchange, ImplicitAPI):
158
158
  },
159
159
  })
160
160
 
161
- def fetch_markets(self, params={}):
161
+ def fetch_markets(self, params={}) -> List[Market]:
162
162
  """
163
163
  retrieves data on all markets for btcalpha
164
164
  :see: https://btc-alpha.github.io/api-docs/#list-all-currencies
ccxt/btcmarkets.py CHANGED
@@ -350,7 +350,7 @@ class btcmarkets(Exchange, ImplicitAPI):
350
350
  'info': transaction,
351
351
  }
352
352
 
353
- def fetch_markets(self, params={}):
353
+ def fetch_markets(self, params={}) -> List[Market]:
354
354
  """
355
355
  retrieves data on all markets for btcmarkets
356
356
  :see: https://docs.btcmarkets.net/v3/#tag/Market-Data-APIs/paths/~1v3~1markets/get