ccxt 4.3.54__py2.py3-none-any.whl → 4.3.56__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 (255) hide show
  1. ccxt/__init__.py +1 -1
  2. ccxt/abstract/bingx.py +16 -0
  3. ccxt/abstract/kucoin.py +3 -0
  4. ccxt/abstract/kucoinfutures.py +3 -0
  5. ccxt/ace.py +1 -1
  6. ccxt/alpaca.py +1 -1
  7. ccxt/ascendex.py +6 -4
  8. ccxt/async_support/__init__.py +1 -1
  9. ccxt/async_support/ace.py +1 -1
  10. ccxt/async_support/alpaca.py +1 -1
  11. ccxt/async_support/ascendex.py +6 -4
  12. ccxt/async_support/base/exchange.py +19 -3
  13. ccxt/async_support/bigone.py +1 -1
  14. ccxt/async_support/binance.py +13 -13
  15. ccxt/async_support/bingx.py +36 -3
  16. ccxt/async_support/bit2c.py +1 -1
  17. ccxt/async_support/bitbank.py +1 -1
  18. ccxt/async_support/bitbns.py +1 -1
  19. ccxt/async_support/bitfinex.py +1 -1
  20. ccxt/async_support/bitfinex2.py +1 -1
  21. ccxt/async_support/bitflyer.py +8 -2
  22. ccxt/async_support/bitget.py +2 -2
  23. ccxt/async_support/bithumb.py +1 -1
  24. ccxt/async_support/bitmart.py +3 -3
  25. ccxt/async_support/bitmex.py +1 -1
  26. ccxt/async_support/bitopro.py +19 -4
  27. ccxt/async_support/bitrue.py +1 -1
  28. ccxt/async_support/bitso.py +1 -1
  29. ccxt/async_support/bitstamp.py +1 -1
  30. ccxt/async_support/bitteam.py +1 -1
  31. ccxt/async_support/bitvavo.py +2 -2
  32. ccxt/async_support/bl3p.py +1 -1
  33. ccxt/async_support/blockchaincom.py +28 -28
  34. ccxt/async_support/blofin.py +1 -1
  35. ccxt/async_support/btcalpha.py +4 -11
  36. ccxt/async_support/btcbox.py +1 -1
  37. ccxt/async_support/btcmarkets.py +28 -27
  38. ccxt/async_support/btcturk.py +1 -1
  39. ccxt/async_support/bybit.py +10 -7
  40. ccxt/async_support/cex.py +2 -2
  41. ccxt/async_support/coinbase.py +33 -33
  42. ccxt/async_support/coinbaseexchange.py +1 -1
  43. ccxt/async_support/coinbaseinternational.py +1 -1
  44. ccxt/async_support/coincheck.py +1 -1
  45. ccxt/async_support/coinex.py +2 -2
  46. ccxt/async_support/coinlist.py +2 -2
  47. ccxt/async_support/coinmate.py +1 -1
  48. ccxt/async_support/coinmetro.py +1 -1
  49. ccxt/async_support/coinone.py +1 -1
  50. ccxt/async_support/coinsph.py +1 -1
  51. ccxt/async_support/coinspot.py +1 -1
  52. ccxt/async_support/cryptocom.py +1 -1
  53. ccxt/async_support/currencycom.py +1 -1
  54. ccxt/async_support/delta.py +7 -3
  55. ccxt/async_support/deribit.py +4 -4
  56. ccxt/async_support/digifinex.py +2 -2
  57. ccxt/async_support/exmo.py +2 -2
  58. ccxt/async_support/gate.py +3 -2
  59. ccxt/async_support/gemini.py +1 -1
  60. ccxt/async_support/hitbtc.py +1 -1
  61. ccxt/async_support/hollaex.py +1 -1
  62. ccxt/async_support/htx.py +3 -3
  63. ccxt/async_support/huobijp.py +1 -1
  64. ccxt/async_support/hyperliquid.py +3 -3
  65. ccxt/async_support/idex.py +1 -1
  66. ccxt/async_support/independentreserve.py +1 -1
  67. ccxt/async_support/indodax.py +1 -1
  68. ccxt/async_support/kraken.py +2 -2
  69. ccxt/async_support/kucoin.py +127 -46
  70. ccxt/async_support/kucoinfutures.py +1 -1
  71. ccxt/async_support/kuna.py +1 -1
  72. ccxt/async_support/latoken.py +1 -1
  73. ccxt/async_support/lbank.py +28 -7
  74. ccxt/async_support/luno.py +1 -1
  75. ccxt/async_support/lykke.py +1 -1
  76. ccxt/async_support/mercado.py +1 -1
  77. ccxt/async_support/mexc.py +1 -1
  78. ccxt/async_support/ndax.py +1 -1
  79. ccxt/async_support/novadax.py +1 -1
  80. ccxt/async_support/oceanex.py +1 -1
  81. ccxt/async_support/okcoin.py +1 -1
  82. ccxt/async_support/okx.py +3 -3
  83. ccxt/async_support/onetrading.py +1 -1
  84. ccxt/async_support/oxfun.py +2 -2
  85. ccxt/async_support/p2b.py +1 -1
  86. ccxt/async_support/paymium.py +1 -1
  87. ccxt/async_support/phemex.py +2 -2
  88. ccxt/async_support/poloniex.py +4 -3
  89. ccxt/async_support/poloniexfutures.py +1 -1
  90. ccxt/async_support/probit.py +1 -1
  91. ccxt/async_support/timex.py +1 -1
  92. ccxt/async_support/tokocrypto.py +1 -1
  93. ccxt/async_support/tradeogre.py +1 -1
  94. ccxt/async_support/upbit.py +1 -1
  95. ccxt/async_support/vertex.py +2 -2
  96. ccxt/async_support/wavesexchange.py +1 -1
  97. ccxt/async_support/wazirx.py +1 -1
  98. ccxt/async_support/whitebit.py +2 -2
  99. ccxt/async_support/woo.py +5 -5
  100. ccxt/async_support/woofipro.py +3 -3
  101. ccxt/async_support/yobit.py +1 -1
  102. ccxt/async_support/zaif.py +1 -1
  103. ccxt/async_support/zonda.py +1 -1
  104. ccxt/base/exchange.py +19 -3
  105. ccxt/base/types.py +4 -1
  106. ccxt/bigone.py +1 -1
  107. ccxt/binance.py +13 -13
  108. ccxt/bingx.py +36 -3
  109. ccxt/bit2c.py +1 -1
  110. ccxt/bitbank.py +1 -1
  111. ccxt/bitbns.py +1 -1
  112. ccxt/bitfinex.py +1 -1
  113. ccxt/bitfinex2.py +1 -1
  114. ccxt/bitflyer.py +8 -2
  115. ccxt/bitget.py +2 -2
  116. ccxt/bithumb.py +1 -1
  117. ccxt/bitmart.py +3 -3
  118. ccxt/bitmex.py +1 -1
  119. ccxt/bitopro.py +19 -4
  120. ccxt/bitrue.py +1 -1
  121. ccxt/bitso.py +1 -1
  122. ccxt/bitstamp.py +1 -1
  123. ccxt/bitteam.py +1 -1
  124. ccxt/bitvavo.py +2 -2
  125. ccxt/bl3p.py +1 -1
  126. ccxt/blockchaincom.py +28 -28
  127. ccxt/blofin.py +1 -1
  128. ccxt/btcalpha.py +4 -11
  129. ccxt/btcbox.py +1 -1
  130. ccxt/btcmarkets.py +28 -27
  131. ccxt/btcturk.py +1 -1
  132. ccxt/bybit.py +10 -7
  133. ccxt/cex.py +2 -2
  134. ccxt/coinbase.py +33 -33
  135. ccxt/coinbaseexchange.py +1 -1
  136. ccxt/coinbaseinternational.py +1 -1
  137. ccxt/coincheck.py +1 -1
  138. ccxt/coinex.py +2 -2
  139. ccxt/coinlist.py +2 -2
  140. ccxt/coinmate.py +1 -1
  141. ccxt/coinmetro.py +1 -1
  142. ccxt/coinone.py +1 -1
  143. ccxt/coinsph.py +1 -1
  144. ccxt/coinspot.py +1 -1
  145. ccxt/cryptocom.py +1 -1
  146. ccxt/currencycom.py +1 -1
  147. ccxt/delta.py +7 -3
  148. ccxt/deribit.py +4 -4
  149. ccxt/digifinex.py +2 -2
  150. ccxt/exmo.py +2 -2
  151. ccxt/gate.py +3 -2
  152. ccxt/gemini.py +1 -1
  153. ccxt/hitbtc.py +1 -1
  154. ccxt/hollaex.py +1 -1
  155. ccxt/htx.py +3 -3
  156. ccxt/huobijp.py +1 -1
  157. ccxt/hyperliquid.py +3 -3
  158. ccxt/idex.py +1 -1
  159. ccxt/independentreserve.py +1 -1
  160. ccxt/indodax.py +1 -1
  161. ccxt/kraken.py +2 -2
  162. ccxt/kucoin.py +127 -46
  163. ccxt/kucoinfutures.py +1 -1
  164. ccxt/kuna.py +1 -1
  165. ccxt/latoken.py +1 -1
  166. ccxt/lbank.py +28 -7
  167. ccxt/luno.py +1 -1
  168. ccxt/lykke.py +1 -1
  169. ccxt/mercado.py +1 -1
  170. ccxt/mexc.py +1 -1
  171. ccxt/ndax.py +1 -1
  172. ccxt/novadax.py +1 -1
  173. ccxt/oceanex.py +1 -1
  174. ccxt/okcoin.py +1 -1
  175. ccxt/okx.py +3 -3
  176. ccxt/onetrading.py +1 -1
  177. ccxt/oxfun.py +2 -2
  178. ccxt/p2b.py +1 -1
  179. ccxt/paymium.py +1 -1
  180. ccxt/phemex.py +2 -2
  181. ccxt/poloniex.py +4 -3
  182. ccxt/poloniexfutures.py +1 -1
  183. ccxt/pro/__init__.py +1 -1
  184. ccxt/pro/binance.py +2 -2
  185. ccxt/pro/bitvavo.py +2 -2
  186. ccxt/pro/bybit.py +2 -2
  187. ccxt/pro/cex.py +3 -3
  188. ccxt/pro/coinbase.py +22 -1
  189. ccxt/pro/cryptocom.py +1 -1
  190. ccxt/pro/gate.py +2 -2
  191. ccxt/pro/hitbtc.py +1 -1
  192. ccxt/pro/kraken.py +2 -2
  193. ccxt/pro/kucoin.py +2 -2
  194. ccxt/pro/okx.py +2 -2
  195. ccxt/pro/oxfun.py +2 -2
  196. ccxt/pro/poloniex.py +1 -1
  197. ccxt/pro/vertex.py +1 -1
  198. ccxt/probit.py +1 -1
  199. ccxt/test/{test_async.py → tests_async.py} +27 -280
  200. ccxt/test/tests_helpers.py +284 -0
  201. ccxt/test/tests_init.py +35 -0
  202. ccxt/test/{test_sync.py → tests_sync.py} +27 -282
  203. ccxt/timex.py +1 -1
  204. ccxt/tokocrypto.py +1 -1
  205. ccxt/tradeogre.py +1 -1
  206. ccxt/upbit.py +1 -1
  207. ccxt/vertex.py +2 -2
  208. ccxt/wavesexchange.py +1 -1
  209. ccxt/wazirx.py +1 -1
  210. ccxt/whitebit.py +2 -2
  211. ccxt/woo.py +5 -5
  212. ccxt/woofipro.py +3 -3
  213. ccxt/yobit.py +1 -1
  214. ccxt/zaif.py +1 -1
  215. ccxt/zonda.py +1 -1
  216. {ccxt-4.3.54.dist-info → ccxt-4.3.56.dist-info}/METADATA +5 -7
  217. {ccxt-4.3.54.dist-info → ccxt-4.3.56.dist-info}/RECORD +220 -253
  218. ccxt/test/base/__init__.py +0 -29
  219. ccxt/test/base/test_account.py +0 -26
  220. ccxt/test/base/test_balance.py +0 -56
  221. ccxt/test/base/test_borrow_interest.py +0 -35
  222. ccxt/test/base/test_borrow_rate.py +0 -32
  223. ccxt/test/base/test_calculate_fee.py +0 -51
  224. ccxt/test/base/test_crypto.py +0 -127
  225. ccxt/test/base/test_currency.py +0 -76
  226. ccxt/test/base/test_datetime.py +0 -109
  227. ccxt/test/base/test_decimal_to_precision.py +0 -392
  228. ccxt/test/base/test_deep_extend.py +0 -68
  229. ccxt/test/base/test_deposit_withdrawal.py +0 -50
  230. ccxt/test/base/test_exchange_datetime_functions.py +0 -76
  231. ccxt/test/base/test_funding_rate_history.py +0 -29
  232. ccxt/test/base/test_last_price.py +0 -31
  233. ccxt/test/base/test_ledger_entry.py +0 -45
  234. ccxt/test/base/test_ledger_item.py +0 -48
  235. ccxt/test/base/test_leverage_tier.py +0 -33
  236. ccxt/test/base/test_liquidation.py +0 -50
  237. ccxt/test/base/test_margin_mode.py +0 -24
  238. ccxt/test/base/test_margin_modification.py +0 -35
  239. ccxt/test/base/test_market.py +0 -193
  240. ccxt/test/base/test_number.py +0 -411
  241. ccxt/test/base/test_ohlcv.py +0 -33
  242. ccxt/test/base/test_open_interest.py +0 -32
  243. ccxt/test/base/test_order.py +0 -64
  244. ccxt/test/base/test_order_book.py +0 -69
  245. ccxt/test/base/test_position.py +0 -60
  246. ccxt/test/base/test_shared_methods.py +0 -353
  247. ccxt/test/base/test_status.py +0 -24
  248. ccxt/test/base/test_throttle.py +0 -126
  249. ccxt/test/base/test_ticker.py +0 -92
  250. ccxt/test/base/test_trade.py +0 -47
  251. ccxt/test/base/test_trading_fee.py +0 -26
  252. ccxt/test/base/test_transaction.py +0 -39
  253. {ccxt-4.3.54.dist-info → ccxt-4.3.56.dist-info}/LICENSE.txt +0 -0
  254. {ccxt-4.3.54.dist-info → ccxt-4.3.56.dist-info}/WHEEL +0 -0
  255. {ccxt-4.3.54.dist-info → ccxt-4.3.56.dist-info}/top_level.txt +0 -0
ccxt/bitflyer.py CHANGED
@@ -530,7 +530,7 @@ class bitflyer(Exchange, ImplicitAPI):
530
530
  :param str type: 'market' or 'limit'
531
531
  :param str side: 'buy' or 'sell'
532
532
  :param float amount: how much of currency you want to trade in units of base currency
533
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
533
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
534
534
  :param dict [params]: extra parameters specific to the exchange API endpoint
535
535
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
536
536
  """
@@ -566,7 +566,13 @@ class bitflyer(Exchange, ImplicitAPI):
566
566
  'product_code': self.market_id(symbol),
567
567
  'child_order_acceptance_id': id,
568
568
  }
569
- return self.privatePostCancelchildorder(self.extend(request, params))
569
+ response = self.privatePostCancelchildorder(self.extend(request, params))
570
+ #
571
+ # 200 OK.
572
+ #
573
+ return self.safe_order({
574
+ 'info': response,
575
+ })
570
576
 
571
577
  def parse_order_status(self, status: Str):
572
578
  statuses: dict = {
ccxt/bitget.py CHANGED
@@ -3958,7 +3958,7 @@ class bitget(Exchange, ImplicitAPI):
3958
3958
  :param str type: 'market' or 'limit'
3959
3959
  :param str side: 'buy' or 'sell'
3960
3960
  :param float amount: how much you want to trade in units of the base currency
3961
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
3961
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
3962
3962
  :param dict [params]: extra parameters specific to the exchange API endpoint
3963
3963
  :param float [params.cost]: *spot only* how much you want to trade in units of the quote currency, for market buy orders only
3964
3964
  :param float [params.triggerPrice]: *swap only* The price at which a trigger order is triggered at
@@ -4314,7 +4314,7 @@ class bitget(Exchange, ImplicitAPI):
4314
4314
  :param str type: 'market' or 'limit'
4315
4315
  :param str side: 'buy' or 'sell'
4316
4316
  :param float amount: how much you want to trade in units of the base currency
4317
- :param float [price]: the price at which the order is to be fullfilled, in units of the base currency, ignored in market orders
4317
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
4318
4318
  :param dict [params]: extra parameters specific to the exchange API endpoint
4319
4319
  :param float [params.triggerPrice]: the price that a trigger order is triggered at
4320
4320
  :param float [params.stopLossPrice]: *swap only* The price at which a stop loss order is triggered at
ccxt/bithumb.py CHANGED
@@ -677,7 +677,7 @@ class bithumb(Exchange, ImplicitAPI):
677
677
  :param str type: 'market' or 'limit'
678
678
  :param str side: 'buy' or 'sell'
679
679
  :param float amount: how much of currency you want to trade in units of base currency
680
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
680
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
681
681
  :param dict [params]: extra parameters specific to the exchange API endpoint
682
682
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
683
683
  """
ccxt/bitmart.py CHANGED
@@ -2322,7 +2322,7 @@ class bitmart(Exchange, ImplicitAPI):
2322
2322
  :param str type: 'market', 'limit' or 'trailing' for swap markets only
2323
2323
  :param str side: 'buy' or 'sell'
2324
2324
  :param float amount: how much of currency you want to trade in units of base currency
2325
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
2325
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
2326
2326
  :param dict [params]: extra parameters specific to the exchange API endpoint
2327
2327
  :param str [params.marginMode]: 'cross' or 'isolated'
2328
2328
  :param str [params.leverage]: *swap only* leverage level
@@ -2451,7 +2451,7 @@ class bitmart(Exchange, ImplicitAPI):
2451
2451
  :param str type: 'market', 'limit' or 'trailing'
2452
2452
  :param str side: 'buy' or 'sell'
2453
2453
  :param float amount: how much of currency you want to trade in units of base currency
2454
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
2454
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
2455
2455
  :param dict [params]: extra parameters specific to the exchange API endpoint
2456
2456
  :param int [params.leverage]: leverage level
2457
2457
  :param boolean [params.reduceOnly]: *swap only* reduce only
@@ -2545,7 +2545,7 @@ class bitmart(Exchange, ImplicitAPI):
2545
2545
  :param str type: 'market' or 'limit'
2546
2546
  :param str side: 'buy' or 'sell'
2547
2547
  :param float amount: how much of currency you want to trade in units of base currency
2548
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
2548
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
2549
2549
  :param dict [params]: extra parameters specific to the exchange API endpoint
2550
2550
  :param str [params.marginMode]: 'cross' or 'isolated'
2551
2551
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
ccxt/bitmex.py CHANGED
@@ -1768,7 +1768,7 @@ class bitmex(Exchange, ImplicitAPI):
1768
1768
  :param str type: 'market' or 'limit'
1769
1769
  :param str side: 'buy' or 'sell'
1770
1770
  :param float amount: how much of currency you want to trade in units of base currency
1771
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
1771
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
1772
1772
  :param dict [params]: extra parameters specific to the exchange API endpoint
1773
1773
  :param dict [params.triggerPrice]: the price at which a trigger order is triggered at
1774
1774
  :param dict [params.triggerDirection]: the direction whenever the trigger happens with relation to price - 'above' or 'below'
ccxt/bitopro.py CHANGED
@@ -964,7 +964,7 @@ class bitopro(Exchange, ImplicitAPI):
964
964
  :param str type: 'market' or 'limit'
965
965
  :param str side: 'buy' or 'sell'
966
966
  :param float amount: how much of currency you want to trade in units of base currency
967
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
967
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
968
968
  :param dict [params]: extra parameters specific to the exchange API endpoint
969
969
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
970
970
  """
@@ -1038,6 +1038,20 @@ class bitopro(Exchange, ImplicitAPI):
1038
1038
  #
1039
1039
  return self.parse_order(response, market)
1040
1040
 
1041
+ def parse_cancel_orders(self, data):
1042
+ dataKeys = list(data.keys())
1043
+ orders = []
1044
+ for i in range(0, len(dataKeys)):
1045
+ marketId = dataKeys[i]
1046
+ orderIds = data[marketId]
1047
+ for j in range(0, len(orderIds)):
1048
+ orders.append(self.safe_order({
1049
+ 'info': orderIds[j],
1050
+ 'id': orderIds[j],
1051
+ 'symbol': self.safe_symbol(marketId),
1052
+ }))
1053
+ return orders
1054
+
1041
1055
  def cancel_orders(self, ids, symbol: Str = None, params={}):
1042
1056
  """
1043
1057
  cancel multiple orders
@@ -1065,7 +1079,8 @@ class bitopro(Exchange, ImplicitAPI):
1065
1079
  # }
1066
1080
  # }
1067
1081
  #
1068
- return response
1082
+ data = self.safe_dict(response, 'data')
1083
+ return self.parse_cancel_orders(data)
1069
1084
 
1070
1085
  def cancel_all_orders(self, symbol: Str = None, params={}):
1071
1086
  """
@@ -1086,7 +1101,7 @@ class bitopro(Exchange, ImplicitAPI):
1086
1101
  response = self.privateDeleteOrdersPair(self.extend(request, params))
1087
1102
  else:
1088
1103
  response = self.privateDeleteOrdersAll(self.extend(request, params))
1089
- result = self.safe_value(response, 'data', {})
1104
+ data = self.safe_value(response, 'data', {})
1090
1105
  #
1091
1106
  # {
1092
1107
  # "data":{
@@ -1097,7 +1112,7 @@ class bitopro(Exchange, ImplicitAPI):
1097
1112
  # }
1098
1113
  # }
1099
1114
  #
1100
- return result
1115
+ return self.parse_cancel_orders(data)
1101
1116
 
1102
1117
  def fetch_order(self, id: str, symbol: Str = None, params={}):
1103
1118
  """
ccxt/bitrue.py CHANGED
@@ -1823,7 +1823,7 @@ class bitrue(Exchange, ImplicitAPI):
1823
1823
  :param str type: 'market' or 'limit'
1824
1824
  :param str side: 'buy' or 'sell'
1825
1825
  :param float amount: how much of currency you want to trade in units of base currency
1826
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
1826
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
1827
1827
  :param dict [params]: extra parameters specific to the exchange API endpoint
1828
1828
  :param float [params.triggerPrice]: *spot only* the price at which a trigger order is triggered at
1829
1829
  :param str [params.clientOrderId]: a unique id for the order, automatically generated if not sent
ccxt/bitso.py CHANGED
@@ -928,7 +928,7 @@ class bitso(Exchange, ImplicitAPI):
928
928
  :param str type: 'market' or 'limit'
929
929
  :param str side: 'buy' or 'sell'
930
930
  :param float amount: how much of currency you want to trade in units of base currency
931
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
931
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
932
932
  :param dict [params]: extra parameters specific to the exchange API endpoint
933
933
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
934
934
  """
ccxt/bitstamp.py CHANGED
@@ -1343,7 +1343,7 @@ class bitstamp(Exchange, ImplicitAPI):
1343
1343
  :param str type: 'market' or 'limit'
1344
1344
  :param str side: 'buy' or 'sell'
1345
1345
  :param float amount: how much of currency you want to trade in units of base currency
1346
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
1346
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
1347
1347
  :param dict [params]: extra parameters specific to the exchange API endpoint
1348
1348
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
1349
1349
  """
ccxt/bitteam.py CHANGED
@@ -962,7 +962,7 @@ class bitteam(Exchange, ImplicitAPI):
962
962
  :param str type: 'market' or 'limit'
963
963
  :param str side: 'buy' or 'sell'
964
964
  :param float amount: how much of currency you want to trade in units of base currency
965
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
965
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
966
966
  :param dict [params]: extra parameters specific to the bitteam api endpoint
967
967
  :returns dict: an `order structure <https://github.com/ccxt/ccxt/wiki/Manual#order-structure>`
968
968
  """
ccxt/bitvavo.py CHANGED
@@ -1091,7 +1091,7 @@ class bitvavo(Exchange, ImplicitAPI):
1091
1091
  :param str type: 'market' or 'limit'
1092
1092
  :param str side: 'buy' or 'sell'
1093
1093
  :param float amount: how much of currency you want to trade in units of base currency
1094
- :param float price: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
1094
+ :param float price: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
1095
1095
  :param dict [params]: extra parameters specific to the bitvavo api endpoint
1096
1096
  :param str [params.timeInForce]: "GTC", "IOC", or "PO"
1097
1097
  :param float [params.stopPrice]: The price at which a trigger order is triggered at
@@ -1184,7 +1184,7 @@ class bitvavo(Exchange, ImplicitAPI):
1184
1184
  :param str type: 'market' or 'limit'
1185
1185
  :param str side: 'buy' or 'sell'
1186
1186
  :param float [amount]: how much of currency you want to trade in units of base currency
1187
- :param float [price]: the price at which the order is to be fullfilled, in units of the base currency, ignored in market orders
1187
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
1188
1188
  :param dict [params]: extra parameters specific to the bitvavo api endpoint
1189
1189
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
1190
1190
  """
ccxt/bl3p.py CHANGED
@@ -375,7 +375,7 @@ class bl3p(Exchange, ImplicitAPI):
375
375
  :param str type: 'market' or 'limit'
376
376
  :param str side: 'buy' or 'sell'
377
377
  :param float amount: how much of currency you want to trade in units of base currency
378
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
378
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
379
379
  :param dict [params]: extra parameters specific to the exchange API endpoint
380
380
  *
381
381
  * EXCHANGE SPECIFIC PARAMETERS
ccxt/blockchaincom.py CHANGED
@@ -140,9 +140,9 @@ class blockchaincom(Exchange, ImplicitAPI):
140
140
  'percentage': True,
141
141
  'tiers': {
142
142
  'taker': [
143
- [self.parse_number('0'), self.parse_number('0.004')],
144
- [self.parse_number('10000'), self.parse_number('0.0022')],
145
- [self.parse_number('50000'), self.parse_number('0.002')],
143
+ [self.parse_number('0'), self.parse_number('0.0045')],
144
+ [self.parse_number('10000'), self.parse_number('0.0035')],
145
+ [self.parse_number('50000'), self.parse_number('0.0018')],
146
146
  [self.parse_number('100000'), self.parse_number('0.0018')],
147
147
  [self.parse_number('500000'), self.parse_number('0.0018')],
148
148
  [self.parse_number('1000000'), self.parse_number('0.0018')],
@@ -154,11 +154,11 @@ class blockchaincom(Exchange, ImplicitAPI):
154
154
  [self.parse_number('1000000000'), self.parse_number('0.0006')],
155
155
  ],
156
156
  'maker': [
157
- [self.parse_number('0'), self.parse_number('0.002')],
158
- [self.parse_number('10000'), self.parse_number('0.0012')],
159
- [self.parse_number('50000'), self.parse_number('0.001')],
157
+ [self.parse_number('0'), self.parse_number('0.004')],
158
+ [self.parse_number('10000'), self.parse_number('0.0017')],
159
+ [self.parse_number('50000'), self.parse_number('0.0015')],
160
160
  [self.parse_number('100000'), self.parse_number('0.0008')],
161
- [self.parse_number('500000'), self.parse_number('0.0007000000000000001')],
161
+ [self.parse_number('500000'), self.parse_number('0.0007')],
162
162
  [self.parse_number('1000000'), self.parse_number('0.0006')],
163
163
  [self.parse_number('2500000'), self.parse_number('0.0005')],
164
164
  [self.parse_number('5000000'), self.parse_number('0.0004')],
@@ -230,7 +230,7 @@ class blockchaincom(Exchange, ImplicitAPI):
230
230
  def fetch_markets(self, params={}) -> List[Market]:
231
231
  """
232
232
  retrieves data on all markets for blockchaincom
233
- :see: https://api.blockchain.com/v3/#/unauthenticated/getSymbols
233
+ :see: https://api.blockchain.com/v3/#getsymbols
234
234
  :param dict [params]: extra parameters specific to the exchange API endpoint
235
235
  :returns dict[]: an array of objects representing market data
236
236
  """
@@ -354,7 +354,7 @@ class blockchaincom(Exchange, ImplicitAPI):
354
354
  def fetch_order_book(self, symbol: str, limit: Int = None, params={}) -> OrderBook:
355
355
  """
356
356
  fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data
357
- :see: https://api.blockchain.com/v3/#/unauthenticated/getL3OrderBook
357
+ :see: https://api.blockchain.com/v3/#getl3orderbook
358
358
  :param str symbol: unified symbol of the market to fetch the order book for
359
359
  :param int [limit]: the maximum amount of order book entries to return
360
360
  :param dict [params]: extra parameters specific to the exchange API endpoint
@@ -365,7 +365,7 @@ class blockchaincom(Exchange, ImplicitAPI):
365
365
  def fetch_l3_order_book(self, symbol: str, limit: Int = None, params={}):
366
366
  """
367
367
  fetches level 3 information on open orders with bid(buy) and ask(sell) prices, volumes and other data
368
- :see: https://api.blockchain.com/v3/#/unauthenticated/getL3OrderBook
368
+ :see: https://api.blockchain.com/v3/#getl3orderbook
369
369
  :param str symbol: unified market symbol
370
370
  :param int [limit]: max number of orders to return, default is None
371
371
  :param dict [params]: extra parameters specific to the exchange API endpoint
@@ -432,7 +432,7 @@ class blockchaincom(Exchange, ImplicitAPI):
432
432
  def fetch_ticker(self, symbol: str, params={}) -> Ticker:
433
433
  """
434
434
  fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
435
- :see: https://api.blockchain.com/v3/#/unauthenticated/getTickerBySymbol
435
+ :see: https://api.blockchain.com/v3/#gettickerbysymbol
436
436
  :param str symbol: unified symbol of the market to fetch the ticker for
437
437
  :param dict [params]: extra parameters specific to the exchange API endpoint
438
438
  :returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
@@ -448,7 +448,7 @@ class blockchaincom(Exchange, ImplicitAPI):
448
448
  def fetch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
449
449
  """
450
450
  fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
451
- :see: https://api.blockchain.com/v3/#/unauthenticated/getTickers
451
+ :see: https://api.blockchain.com/v3/#gettickers
452
452
  :param str[]|None symbols: unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
453
453
  :param dict [params]: extra parameters specific to the exchange API endpoint
454
454
  :returns dict: a dictionary of `ticker structures <https://docs.ccxt.com/#/?id=ticker-structure>`
@@ -527,12 +527,12 @@ class blockchaincom(Exchange, ImplicitAPI):
527
527
  def create_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
528
528
  """
529
529
  create a trade order
530
- :see: https://api.blockchain.com/v3/#/trading/createOrder
530
+ :see: https://api.blockchain.com/v3/#createorder
531
531
  :param str symbol: unified symbol of the market to create an order in
532
532
  :param str type: 'market' or 'limit'
533
533
  :param str side: 'buy' or 'sell'
534
534
  :param float amount: how much of currency you want to trade in units of base currency
535
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
535
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
536
536
  :param dict [params]: extra parameters specific to the exchange API endpoint
537
537
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
538
538
  """
@@ -579,7 +579,7 @@ class blockchaincom(Exchange, ImplicitAPI):
579
579
  def cancel_order(self, id: str, symbol: Str = None, params={}):
580
580
  """
581
581
  cancels an open order
582
- :see: https://api.blockchain.com/v3/#/trading/deleteOrder
582
+ :see: https://api.blockchain.com/v3/#deleteorder
583
583
  :param str id: order id
584
584
  :param str symbol: unified symbol of the market the order was made in
585
585
  :param dict [params]: extra parameters specific to the exchange API endpoint
@@ -624,7 +624,7 @@ class blockchaincom(Exchange, ImplicitAPI):
624
624
  def fetch_trading_fees(self, params={}) -> TradingFees:
625
625
  """
626
626
  fetch the trading fees for multiple markets
627
- :see: https://api.blockchain.com/v3/#/trading/getFees
627
+ :see: https://api.blockchain.com/v3/#getfees
628
628
  :param dict [params]: extra parameters specific to the exchange API endpoint
629
629
  :returns dict: a dictionary of `fee structures <https://docs.ccxt.com/#/?id=fee-structure>` indexed by market symbols
630
630
  """
@@ -653,7 +653,7 @@ class blockchaincom(Exchange, ImplicitAPI):
653
653
  def fetch_canceled_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
654
654
  """
655
655
  fetches information on multiple canceled orders made by the user
656
- :see: https://api.blockchain.com/v3/#/trading/getOrders
656
+ :see: https://api.blockchain.com/v3/#getorders
657
657
  :param str symbol: unified market symbol of the market orders were made in
658
658
  :param int [since]: timestamp in ms of the earliest order, default is None
659
659
  :param int [limit]: max number of orders to return, default is None
@@ -666,7 +666,7 @@ class blockchaincom(Exchange, ImplicitAPI):
666
666
  def fetch_closed_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
667
667
  """
668
668
  fetches information on multiple closed orders made by the user
669
- :see: https://api.blockchain.com/v3/#/trading/getOrders
669
+ :see: https://api.blockchain.com/v3/#getorders
670
670
  :param str symbol: unified market symbol of the market orders were made in
671
671
  :param int [since]: the earliest time in ms to fetch orders for
672
672
  :param int [limit]: the maximum number of order structures to retrieve
@@ -679,7 +679,7 @@ class blockchaincom(Exchange, ImplicitAPI):
679
679
  def fetch_open_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
680
680
  """
681
681
  fetch all unfilled currently open orders
682
- :see: https://api.blockchain.com/v3/#/trading/getOrders
682
+ :see: https://api.blockchain.com/v3/#getorders
683
683
  :param str symbol: unified market symbol
684
684
  :param int [since]: the earliest time in ms to fetch open orders for
685
685
  :param int [limit]: the maximum number of open orders structures to retrieve
@@ -752,7 +752,7 @@ class blockchaincom(Exchange, ImplicitAPI):
752
752
  def fetch_my_trades(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
753
753
  """
754
754
  fetch all trades made by the user
755
- :see: https://api.blockchain.com/v3/#/trading/getFills
755
+ :see: https://api.blockchain.com/v3/#getfills
756
756
  :param str symbol: unified market symbol
757
757
  :param int [since]: the earliest time in ms to fetch trades for
758
758
  :param int [limit]: the maximum number of trades structures to retrieve
@@ -773,7 +773,7 @@ class blockchaincom(Exchange, ImplicitAPI):
773
773
  def fetch_deposit_address(self, code: str, params={}):
774
774
  """
775
775
  fetch the deposit address for a currency associated with self account
776
- :see: https://api.blockchain.com/v3/#/payments/getDepositAddress
776
+ :see: https://api.blockchain.com/v3/#getdepositaddress
777
777
  :param str code: unified currency code
778
778
  :param dict [params]: extra parameters specific to the exchange API endpoint
779
779
  :returns dict: an `address structure <https://docs.ccxt.com/#/?id=address-structure>`
@@ -880,7 +880,7 @@ class blockchaincom(Exchange, ImplicitAPI):
880
880
  def withdraw(self, code: str, amount: float, address: str, tag=None, params={}):
881
881
  """
882
882
  make a withdrawal
883
- :see: https://api.blockchain.com/v3/#/payments/createWithdrawal
883
+ :see: https://api.blockchain.com/v3/#createwithdrawal
884
884
  :param str code: unified currency code
885
885
  :param float amount: the amount to withdraw
886
886
  :param str address: the address to withdraw to
@@ -913,7 +913,7 @@ class blockchaincom(Exchange, ImplicitAPI):
913
913
  def fetch_withdrawals(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Transaction]:
914
914
  """
915
915
  fetch all withdrawals made from an account
916
- :see: https://api.blockchain.com/v3/#/payments/getWithdrawals
916
+ :see: https://api.blockchain.com/v3/#getwithdrawals
917
917
  :param str code: unified currency code
918
918
  :param int [since]: the earliest time in ms to fetch withdrawals for
919
919
  :param int [limit]: the maximum number of withdrawals structures to retrieve
@@ -936,7 +936,7 @@ class blockchaincom(Exchange, ImplicitAPI):
936
936
  def fetch_withdrawal(self, id: str, code: Str = None, params={}):
937
937
  """
938
938
  fetch data on a currency withdrawal via the withdrawal id
939
- :see: https://api.blockchain.com/v3/#/payments/getWithdrawalById
939
+ :see: https://api.blockchain.com/v3/#getwithdrawalbyid
940
940
  :param str id: withdrawal id
941
941
  :param str code: not used by blockchaincom.fetchWithdrawal
942
942
  :param dict [params]: extra parameters specific to the exchange API endpoint
@@ -952,7 +952,7 @@ class blockchaincom(Exchange, ImplicitAPI):
952
952
  def fetch_deposits(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Transaction]:
953
953
  """
954
954
  fetch all deposits made to an account
955
- :see: https://api.blockchain.com/v3/#/payments/getDeposits
955
+ :see: https://api.blockchain.com/v3/#getdeposits
956
956
  :param str code: unified currency code
957
957
  :param int [since]: the earliest time in ms to fetch deposits for
958
958
  :param int [limit]: the maximum number of deposits structures to retrieve
@@ -975,7 +975,7 @@ class blockchaincom(Exchange, ImplicitAPI):
975
975
  def fetch_deposit(self, id: str, code: Str = None, params={}):
976
976
  """
977
977
  fetch information on a deposit
978
- :see: https://api.blockchain.com/v3/#/payments/getDepositById
978
+ :see: https://api.blockchain.com/v3/#getdepositbyid
979
979
  :param str id: deposit id
980
980
  :param str code: not used by blockchaincom fetchDeposit()
981
981
  :param dict [params]: extra parameters specific to the exchange API endpoint
@@ -992,7 +992,7 @@ class blockchaincom(Exchange, ImplicitAPI):
992
992
  def fetch_balance(self, params={}) -> Balances:
993
993
  """
994
994
  query for balance and get the amount of funds available for trading or funds locked in orders
995
- :see: https://api.blockchain.com/v3/#/payments/getAccounts
995
+ :see: https://api.blockchain.com/v3/#getaccounts
996
996
  :param dict [params]: extra parameters specific to the exchange API endpoint
997
997
  :returns dict: a `balance structure <https://docs.ccxt.com/#/?id=balance-structure>`
998
998
  """
@@ -1035,7 +1035,7 @@ class blockchaincom(Exchange, ImplicitAPI):
1035
1035
  def fetch_order(self, id: str, symbol: Str = None, params={}):
1036
1036
  """
1037
1037
  fetches information on an order made by the user
1038
- :see: https://api.blockchain.com/v3/#/trading/getOrderById
1038
+ :see: https://api.blockchain.com/v3/#getorderbyid
1039
1039
  :param str symbol: not used by blockchaincom fetchOrder
1040
1040
  :param dict [params]: extra parameters specific to the exchange API endpoint
1041
1041
  :returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
ccxt/blofin.py CHANGED
@@ -1118,7 +1118,7 @@ class blofin(Exchange, ImplicitAPI):
1118
1118
  :param str type: 'market' or 'limit' or 'post_only' or 'ioc' or 'fok'
1119
1119
  :param str side: 'buy' or 'sell'
1120
1120
  :param float amount: how much of currency you want to trade in units of base currency
1121
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
1121
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
1122
1122
  :param dict [params]: extra parameters specific to the exchange API endpoint
1123
1123
  :param bool [params.reduceOnly]: a mark to reduce the position size for margin, swap and future orders
1124
1124
  :param bool [params.postOnly]: True to place a post only order
ccxt/btcalpha.py CHANGED
@@ -9,10 +9,8 @@ import hashlib
9
9
  from ccxt.base.types import Balances, Currency, IndexType, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction
10
10
  from typing import List
11
11
  from ccxt.base.errors import ExchangeError
12
- from ccxt.base.errors import AuthenticationError
13
12
  from ccxt.base.errors import InsufficientFunds
14
13
  from ccxt.base.errors import InvalidOrder
15
- from ccxt.base.errors import DDoSProtection
16
14
  from ccxt.base.decimal_to_precision import TICK_SIZE
17
15
  from ccxt.base.precise import Precise
18
16
 
@@ -715,7 +713,7 @@ class btcalpha(Exchange, ImplicitAPI):
715
713
  :param str type: 'limit'
716
714
  :param str side: 'buy' or 'sell'
717
715
  :param float amount: how much of currency you want to trade in units of base currency
718
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
716
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
719
717
  :param dict [params]: extra parameters specific to the exchange API endpoint
720
718
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
721
719
  """
@@ -878,14 +876,9 @@ class btcalpha(Exchange, ImplicitAPI):
878
876
  # {"date":1570599531.4814300537,"error":"Out of balance -9.99243661 BTC"}
879
877
  #
880
878
  error = self.safe_string(response, 'error')
881
- feedback = self.id + ' ' + body
882
879
  if error is not None:
880
+ feedback = self.id + ' ' + body
883
881
  self.throw_exactly_matched_exception(self.exceptions['exact'], error, feedback)
884
882
  self.throw_broadly_matched_exception(self.exceptions['broad'], error, feedback)
885
- if code == 401 or code == 403:
886
- raise AuthenticationError(feedback)
887
- elif code == 429:
888
- raise DDoSProtection(feedback)
889
- if code < 400:
890
- return None
891
- raise ExchangeError(feedback)
883
+ raise ExchangeError(feedback) # unknown error
884
+ return None
ccxt/btcbox.py CHANGED
@@ -297,7 +297,7 @@ class btcbox(Exchange, ImplicitAPI):
297
297
  :param str type: 'market' or 'limit'
298
298
  :param str side: 'buy' or 'sell'
299
299
  :param float amount: how much of currency you want to trade in units of base currency
300
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
300
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
301
301
  :param dict [params]: extra parameters specific to the exchange API endpoint
302
302
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
303
303
  """
ccxt/btcmarkets.py CHANGED
@@ -14,7 +14,6 @@ from ccxt.base.errors import BadRequest
14
14
  from ccxt.base.errors import InsufficientFunds
15
15
  from ccxt.base.errors import InvalidOrder
16
16
  from ccxt.base.errors import OrderNotFound
17
- from ccxt.base.errors import DDoSProtection
18
17
  from ccxt.base.decimal_to_precision import TICK_SIZE
19
18
  from ccxt.base.precise import Precise
20
19
 
@@ -161,16 +160,18 @@ class btcmarkets(Exchange, ImplicitAPI):
161
160
  },
162
161
  'precisionMode': TICK_SIZE,
163
162
  'exceptions': {
164
- '3': InvalidOrder,
165
- '6': DDoSProtection,
166
- 'InsufficientFund': InsufficientFunds,
167
- 'InvalidPrice': InvalidOrder,
168
- 'InvalidAmount': InvalidOrder,
169
- 'MissingArgument': InvalidOrder,
170
- 'OrderAlreadyCancelled': InvalidOrder,
171
- 'OrderNotFound': OrderNotFound,
172
- 'OrderStatusIsFinal': InvalidOrder,
173
- 'InvalidPaginationParameter': BadRequest,
163
+ 'exact': {
164
+ 'InsufficientFund': InsufficientFunds,
165
+ 'InvalidPrice': InvalidOrder,
166
+ 'InvalidAmount': InvalidOrder,
167
+ 'MissingArgument': BadRequest,
168
+ 'OrderAlreadyCancelled': InvalidOrder,
169
+ 'OrderNotFound': OrderNotFound,
170
+ 'OrderStatusIsFinal': InvalidOrder,
171
+ 'InvalidPaginationParameter': BadRequest,
172
+ },
173
+ 'broad': {
174
+ },
174
175
  },
175
176
  'fees': {
176
177
  'percentage': True,
@@ -370,7 +371,8 @@ class btcmarkets(Exchange, ImplicitAPI):
370
371
  # "minOrderAmount":"0.00007",
371
372
  # "maxOrderAmount":"1000000",
372
373
  # "amountDecimals":"8",
373
- # "priceDecimals":"2"
374
+ # "priceDecimals":"2",
375
+ # "status": "Online"
374
376
  # }
375
377
  # ]
376
378
  #
@@ -387,6 +389,7 @@ class btcmarkets(Exchange, ImplicitAPI):
387
389
  pricePrecision = self.parse_number(self.parse_precision(self.safe_string(market, 'priceDecimals')))
388
390
  minAmount = self.safe_number(market, 'minOrderAmount')
389
391
  maxAmount = self.safe_number(market, 'maxOrderAmount')
392
+ status = self.safe_string(market, 'status')
390
393
  minPrice = None
391
394
  if quote == 'AUD':
392
395
  minPrice = pricePrecision
@@ -405,7 +408,7 @@ class btcmarkets(Exchange, ImplicitAPI):
405
408
  'swap': False,
406
409
  'future': False,
407
410
  'option': False,
408
- 'active': None,
411
+ 'active': (status == 'Online'),
409
412
  'contract': False,
410
413
  'linear': None,
411
414
  'inverse': None,
@@ -760,7 +763,7 @@ class btcmarkets(Exchange, ImplicitAPI):
760
763
  :param str type: 'market' or 'limit'
761
764
  :param str side: 'buy' or 'sell'
762
765
  :param float amount: how much of currency you want to trade in units of base currency
763
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
766
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
764
767
  :param dict [params]: extra parameters specific to the exchange API endpoint
765
768
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
766
769
  """
@@ -1204,18 +1207,16 @@ class btcmarkets(Exchange, ImplicitAPI):
1204
1207
  def handle_errors(self, code: int, reason: str, url: str, method: str, headers: dict, body: str, response, requestHeaders, requestBody):
1205
1208
  if response is None:
1206
1209
  return None # fallback to default error handler
1207
- if 'success' in response:
1208
- if not response['success']:
1209
- error = self.safe_string(response, 'errorCode')
1210
- feedback = self.id + ' ' + body
1211
- self.throw_exactly_matched_exception(self.exceptions, error, feedback)
1212
- raise ExchangeError(feedback)
1213
- # v3 api errors
1214
- if code >= 400:
1215
- errorCode = self.safe_string(response, 'code')
1216
- message = self.safe_string(response, 'message')
1210
+ #
1211
+ # {"code":"UnAuthorized","message":"invalid access token"}
1212
+ # {"code":"MarketNotFound","message":"invalid marketId"}
1213
+ #
1214
+ errorCode = self.safe_string(response, 'code')
1215
+ message = self.safe_string(response, 'message')
1216
+ if errorCode is not None:
1217
1217
  feedback = self.id + ' ' + body
1218
- self.throw_exactly_matched_exception(self.exceptions, errorCode, feedback)
1219
- self.throw_exactly_matched_exception(self.exceptions, message, feedback)
1220
- raise ExchangeError(feedback)
1218
+ self.throw_exactly_matched_exception(self.exceptions['exact'], message, feedback)
1219
+ self.throw_exactly_matched_exception(self.exceptions['exact'], errorCode, feedback)
1220
+ self.throw_broadly_matched_exception(self.exceptions['broad'], message, feedback)
1221
+ raise ExchangeError(feedback) # unknown message
1221
1222
  return None
ccxt/btcturk.py CHANGED
@@ -650,7 +650,7 @@ class btcturk(Exchange, ImplicitAPI):
650
650
  :param str type: 'market' or 'limit'
651
651
  :param str side: 'buy' or 'sell'
652
652
  :param float amount: how much of currency you want to trade in units of base currency
653
- :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
653
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
654
654
  :param dict [params]: extra parameters specific to the exchange API endpoint
655
655
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
656
656
  """