ccxt 4.4.28__py2.py3-none-any.whl → 4.4.29__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 (151) hide show
  1. ccxt/__init__.py +1 -1
  2. ccxt/abstract/bybit.py +0 -13
  3. ccxt/alpaca.py +1 -1
  4. ccxt/async_support/__init__.py +1 -1
  5. ccxt/async_support/alpaca.py +1 -1
  6. ccxt/async_support/base/exchange.py +4 -1
  7. ccxt/async_support/bigone.py +1 -1
  8. ccxt/async_support/binance.py +1 -1
  9. ccxt/async_support/bingx.py +1 -1
  10. ccxt/async_support/bitbank.py +1 -1
  11. ccxt/async_support/bitfinex.py +1 -1
  12. ccxt/async_support/bitfinex2.py +1 -1
  13. ccxt/async_support/bitflyer.py +1 -1
  14. ccxt/async_support/bitget.py +96 -8
  15. ccxt/async_support/bithumb.py +1 -1
  16. ccxt/async_support/bitmart.py +1 -1
  17. ccxt/async_support/bitmex.py +1 -1
  18. ccxt/async_support/bitopro.py +22 -22
  19. ccxt/async_support/bitrue.py +29 -29
  20. ccxt/async_support/bitso.py +1 -1
  21. ccxt/async_support/bitstamp.py +1 -1
  22. ccxt/async_support/bitvavo.py +4 -1
  23. ccxt/async_support/blockchaincom.py +1 -1
  24. ccxt/async_support/btcmarkets.py +1 -1
  25. ccxt/async_support/bybit.py +50 -585
  26. ccxt/async_support/coinbase.py +1 -1
  27. ccxt/async_support/coinbaseexchange.py +1 -1
  28. ccxt/async_support/coinbaseinternational.py +1 -1
  29. ccxt/async_support/coincatch.py +25 -5
  30. ccxt/async_support/coinex.py +1 -1
  31. ccxt/async_support/coinlist.py +1 -1
  32. ccxt/async_support/coinmate.py +1 -1
  33. ccxt/async_support/coinsph.py +1 -1
  34. ccxt/async_support/cryptocom.py +1 -1
  35. ccxt/async_support/deribit.py +1 -1
  36. ccxt/async_support/digifinex.py +1 -1
  37. ccxt/async_support/exmo.py +1 -1
  38. ccxt/async_support/gate.py +1 -1
  39. ccxt/async_support/gemini.py +1 -1
  40. ccxt/async_support/hashkey.py +1 -1
  41. ccxt/async_support/hitbtc.py +1 -1
  42. ccxt/async_support/hollaex.py +1 -1
  43. ccxt/async_support/htx.py +1 -1
  44. ccxt/async_support/huobijp.py +1 -1
  45. ccxt/async_support/idex.py +1 -1
  46. ccxt/async_support/independentreserve.py +1 -1
  47. ccxt/async_support/indodax.py +1 -1
  48. ccxt/async_support/kraken.py +1 -1
  49. ccxt/async_support/kucoin.py +1 -1
  50. ccxt/async_support/kuna.py +1 -1
  51. ccxt/async_support/lbank.py +6 -1
  52. ccxt/async_support/lykke.py +1 -1
  53. ccxt/async_support/mercado.py +1 -1
  54. ccxt/async_support/mexc.py +1 -1
  55. ccxt/async_support/ndax.py +1 -1
  56. ccxt/async_support/novadax.py +1 -1
  57. ccxt/async_support/okcoin.py +1 -1
  58. ccxt/async_support/okx.py +1 -1
  59. ccxt/async_support/onetrading.py +1 -1
  60. ccxt/async_support/oxfun.py +1 -1
  61. ccxt/async_support/phemex.py +1 -1
  62. ccxt/async_support/poloniex.py +1 -1
  63. ccxt/async_support/probit.py +1 -1
  64. ccxt/async_support/tokocrypto.py +1 -1
  65. ccxt/async_support/upbit.py +1 -1
  66. ccxt/async_support/vertex.py +52 -8
  67. ccxt/async_support/wavesexchange.py +1 -1
  68. ccxt/async_support/whitebit.py +1 -1
  69. ccxt/async_support/woo.py +1 -1
  70. ccxt/async_support/woofipro.py +1 -1
  71. ccxt/async_support/xt.py +1 -1
  72. ccxt/async_support/yobit.py +2 -2
  73. ccxt/async_support/zaif.py +1 -1
  74. ccxt/async_support/zonda.py +1 -1
  75. ccxt/base/exchange.py +4 -1
  76. ccxt/bigone.py +1 -1
  77. ccxt/binance.py +1 -1
  78. ccxt/bingx.py +1 -1
  79. ccxt/bitbank.py +1 -1
  80. ccxt/bitfinex.py +1 -1
  81. ccxt/bitfinex2.py +1 -1
  82. ccxt/bitflyer.py +1 -1
  83. ccxt/bitget.py +96 -8
  84. ccxt/bithumb.py +1 -1
  85. ccxt/bitmart.py +1 -1
  86. ccxt/bitmex.py +1 -1
  87. ccxt/bitopro.py +22 -22
  88. ccxt/bitrue.py +29 -29
  89. ccxt/bitso.py +1 -1
  90. ccxt/bitstamp.py +1 -1
  91. ccxt/bitvavo.py +4 -1
  92. ccxt/blockchaincom.py +1 -1
  93. ccxt/btcmarkets.py +1 -1
  94. ccxt/bybit.py +50 -585
  95. ccxt/coinbase.py +1 -1
  96. ccxt/coinbaseexchange.py +1 -1
  97. ccxt/coinbaseinternational.py +1 -1
  98. ccxt/coincatch.py +25 -5
  99. ccxt/coinex.py +1 -1
  100. ccxt/coinlist.py +1 -1
  101. ccxt/coinmate.py +1 -1
  102. ccxt/coinsph.py +1 -1
  103. ccxt/cryptocom.py +1 -1
  104. ccxt/deribit.py +1 -1
  105. ccxt/digifinex.py +1 -1
  106. ccxt/exmo.py +1 -1
  107. ccxt/gate.py +1 -1
  108. ccxt/gemini.py +1 -1
  109. ccxt/hashkey.py +1 -1
  110. ccxt/hitbtc.py +1 -1
  111. ccxt/hollaex.py +1 -1
  112. ccxt/htx.py +1 -1
  113. ccxt/huobijp.py +1 -1
  114. ccxt/idex.py +1 -1
  115. ccxt/independentreserve.py +1 -1
  116. ccxt/indodax.py +1 -1
  117. ccxt/kraken.py +1 -1
  118. ccxt/kucoin.py +1 -1
  119. ccxt/kuna.py +1 -1
  120. ccxt/lbank.py +6 -1
  121. ccxt/lykke.py +1 -1
  122. ccxt/mercado.py +1 -1
  123. ccxt/mexc.py +1 -1
  124. ccxt/ndax.py +1 -1
  125. ccxt/novadax.py +1 -1
  126. ccxt/okcoin.py +1 -1
  127. ccxt/okx.py +1 -1
  128. ccxt/onetrading.py +1 -1
  129. ccxt/oxfun.py +1 -1
  130. ccxt/phemex.py +1 -1
  131. ccxt/poloniex.py +1 -1
  132. ccxt/pro/__init__.py +1 -1
  133. ccxt/pro/bitvavo.py +2 -1
  134. ccxt/pro/mexc.py +187 -30
  135. ccxt/probit.py +1 -1
  136. ccxt/tokocrypto.py +1 -1
  137. ccxt/upbit.py +1 -1
  138. ccxt/vertex.py +52 -8
  139. ccxt/wavesexchange.py +1 -1
  140. ccxt/whitebit.py +1 -1
  141. ccxt/woo.py +1 -1
  142. ccxt/woofipro.py +1 -1
  143. ccxt/xt.py +1 -1
  144. ccxt/yobit.py +2 -2
  145. ccxt/zaif.py +1 -1
  146. ccxt/zonda.py +1 -1
  147. {ccxt-4.4.28.dist-info → ccxt-4.4.29.dist-info}/METADATA +4 -4
  148. {ccxt-4.4.28.dist-info → ccxt-4.4.29.dist-info}/RECORD +151 -151
  149. {ccxt-4.4.28.dist-info → ccxt-4.4.29.dist-info}/LICENSE.txt +0 -0
  150. {ccxt-4.4.28.dist-info → ccxt-4.4.29.dist-info}/WHEEL +0 -0
  151. {ccxt-4.4.28.dist-info → ccxt-4.4.29.dist-info}/top_level.txt +0 -0
ccxt/bitrue.py CHANGED
@@ -633,7 +633,7 @@ class bitrue(Exchange, ImplicitAPI):
633
633
  # }
634
634
  #
635
635
  result: dict = {}
636
- coins = self.safe_value(response, 'coins', [])
636
+ coins = self.safe_list(response, 'coins', [])
637
637
  for i in range(0, len(coins)):
638
638
  currency = coins[i]
639
639
  id = self.safe_string(currency, 'coin')
@@ -644,15 +644,15 @@ class bitrue(Exchange, ImplicitAPI):
644
644
  minWithdrawString = None
645
645
  maxWithdrawString = None
646
646
  minWithdrawFeeString = None
647
- networkDetails = self.safe_value(currency, 'chainDetail', [])
647
+ networkDetails = self.safe_list(currency, 'chainDetail', [])
648
648
  networks: dict = {}
649
649
  for j in range(0, len(networkDetails)):
650
650
  entry = networkDetails[j]
651
651
  networkId = self.safe_string(entry, 'chain')
652
652
  network = self.network_id_to_code(networkId, code)
653
- enableDeposit = self.safe_value(entry, 'enableDeposit')
653
+ enableDeposit = self.safe_bool(entry, 'enableDeposit')
654
654
  deposit = enableDeposit if (enableDeposit) else deposit
655
- enableWithdraw = self.safe_value(entry, 'enableWithdraw')
655
+ enableWithdraw = self.safe_bool(entry, 'enableWithdraw')
656
656
  withdraw = enableWithdraw if (enableWithdraw) else withdraw
657
657
  networkWithdrawFeeString = self.safe_string(entry, 'withdrawFee')
658
658
  if networkWithdrawFeeString is not None:
@@ -828,11 +828,11 @@ class bitrue(Exchange, ImplicitAPI):
828
828
  symbol = base + '/' + quote
829
829
  if settle is not None:
830
830
  symbol += ':' + settle
831
- filters = self.safe_value(market, 'filters', [])
831
+ filters = self.safe_list(market, 'filters', [])
832
832
  filtersByType = self.index_by(filters, 'filterType')
833
833
  status = self.safe_string(market, 'status')
834
- priceFilter = self.safe_value(filtersByType, 'PRICE_FILTER', {})
835
- amountFilter = self.safe_value(filtersByType, 'LOT_SIZE', {})
834
+ priceFilter = self.safe_dict(filtersByType, 'PRICE_FILTER', {})
835
+ amountFilter = self.safe_dict(filtersByType, 'LOT_SIZE', {})
836
836
  defaultPricePrecision = self.safe_string(market, 'pricePrecision')
837
837
  defaultAmountPrecision = self.safe_string(market, 'quantityPrecision')
838
838
  pricePrecision = self.safe_string(priceFilter, 'priceScale', defaultPricePrecision)
@@ -980,7 +980,7 @@ class bitrue(Exchange, ImplicitAPI):
980
980
  if type == 'swap':
981
981
  if subType is not None and subType == 'inverse':
982
982
  response = self.dapiV2PrivateGetAccount(params)
983
- result = self.safe_value(response, 'data', {})
983
+ result = self.safe_dict(response, 'data', {})
984
984
  #
985
985
  # {
986
986
  # "code":"0",
@@ -1013,7 +1013,7 @@ class bitrue(Exchange, ImplicitAPI):
1013
1013
  #
1014
1014
  else:
1015
1015
  response = self.fapiV2PrivateGetAccount(params)
1016
- result = self.safe_value(response, 'data', {})
1016
+ result = self.safe_dict(response, 'data', {})
1017
1017
  #
1018
1018
  # {
1019
1019
  # "code":"0",
@@ -1228,7 +1228,7 @@ class bitrue(Exchange, ImplicitAPI):
1228
1228
  'symbol': market['id'],
1229
1229
  }
1230
1230
  response = self.spotV1PublicGetTicker24hr(self.extend(request, params))
1231
- data = self.safe_value(response, 0, {})
1231
+ data = self.safe_dict(response, 0, {})
1232
1232
  else:
1233
1233
  raise NotSupported(self.id + ' fetchTicker only support spot & swap markets')
1234
1234
  #
@@ -1286,11 +1286,11 @@ class bitrue(Exchange, ImplicitAPI):
1286
1286
  """
1287
1287
  self.load_markets()
1288
1288
  market = self.market(symbol)
1289
- timeframes = self.safe_value(self.options, 'timeframes', {})
1289
+ timeframes = self.safe_dict(self.options, 'timeframes', {})
1290
1290
  response = None
1291
1291
  data = None
1292
1292
  if market['swap']:
1293
- timeframesFuture = self.safe_value(timeframes, 'future', {})
1293
+ timeframesFuture = self.safe_dict(timeframes, 'future', {})
1294
1294
  request: dict = {
1295
1295
  'contractName': market['id'],
1296
1296
  # 1min / 5min / 15min / 30min / 1h / 1day / 1week / 1month
@@ -1304,7 +1304,7 @@ class bitrue(Exchange, ImplicitAPI):
1304
1304
  response = self.dapiV1PublicGetKlines(self.extend(request, params))
1305
1305
  data = response
1306
1306
  elif market['spot']:
1307
- timeframesSpot = self.safe_value(timeframes, 'spot', {})
1307
+ timeframesSpot = self.safe_dict(timeframes, 'spot', {})
1308
1308
  request: dict = {
1309
1309
  'symbol': market['id'],
1310
1310
  # 1m / 5m / 15m / 30m / 1H / 2H / 4H / 12H / 1D / 1W
@@ -1315,7 +1315,7 @@ class bitrue(Exchange, ImplicitAPI):
1315
1315
  if since is not None:
1316
1316
  request['fromIdx'] = since
1317
1317
  response = self.spotV1PublicGetMarketKline(self.extend(request, params))
1318
- data = self.safe_value(response, 'data', [])
1318
+ data = self.safe_list(response, 'data', [])
1319
1319
  else:
1320
1320
  raise NotSupported(self.id + ' fetchOHLCV only support spot & swap markets')
1321
1321
  #
@@ -1522,7 +1522,7 @@ class bitrue(Exchange, ImplicitAPI):
1522
1522
  # https://github.com/ccxt/ccxt/issues/13856
1523
1523
  tickers: dict = {}
1524
1524
  for i in range(0, len(data)):
1525
- ticker = self.safe_value(data, i, {})
1525
+ ticker = self.safe_dict(data, i, {})
1526
1526
  market = self.market(self.safe_value(ticker, 'symbol'))
1527
1527
  tickers[market['id']] = ticker
1528
1528
  return self.parse_tickers(tickers, symbols)
@@ -1584,8 +1584,8 @@ class bitrue(Exchange, ImplicitAPI):
1584
1584
  orderId = self.safe_string(trade, 'orderId')
1585
1585
  id = self.safe_string_2(trade, 'id', 'tradeId')
1586
1586
  side = None
1587
- buyerMaker = self.safe_value(trade, 'isBuyerMaker') # ignore "m" until Bitrue fixes api
1588
- isBuyer = self.safe_value(trade, 'isBuyer')
1587
+ buyerMaker = self.safe_bool(trade, 'isBuyerMaker') # ignore "m" until Bitrue fixes api
1588
+ isBuyer = self.safe_bool(trade, 'isBuyer')
1589
1589
  if buyerMaker is not None:
1590
1590
  side = 'sell' if buyerMaker else 'buy'
1591
1591
  if isBuyer is not None:
@@ -1597,7 +1597,7 @@ class bitrue(Exchange, ImplicitAPI):
1597
1597
  'currency': self.safe_currency_code(self.safe_string(trade, 'commissionAssert')),
1598
1598
  }
1599
1599
  takerOrMaker = None
1600
- isMaker = self.safe_value(trade, 'isMaker')
1600
+ isMaker = self.safe_bool(trade, 'isMaker')
1601
1601
  if isMaker is not None:
1602
1602
  takerOrMaker = 'maker' if isMaker else 'taker'
1603
1603
  return self.safe_trade({
@@ -1750,7 +1750,7 @@ class bitrue(Exchange, ImplicitAPI):
1750
1750
  id = self.safe_string(order, 'orderId')
1751
1751
  type = self.safe_string_lower(order, 'type')
1752
1752
  side = self.safe_string_lower(order, 'side')
1753
- fills = self.safe_value(order, 'fills', [])
1753
+ fills = self.safe_list(order, 'fills', [])
1754
1754
  clientOrderId = self.safe_string(order, 'clientOrderId')
1755
1755
  timeInForce = self.safe_string(order, 'timeInForce')
1756
1756
  postOnly = (type == 'limit_maker') or (timeInForce == 'GTX') or (type == 'post_only')
@@ -1880,7 +1880,7 @@ class bitrue(Exchange, ImplicitAPI):
1880
1880
  response = self.fapiV2PrivatePostOrder(self.extend(request, params))
1881
1881
  elif market['inverse']:
1882
1882
  response = self.dapiV2PrivatePostOrder(self.extend(request, params))
1883
- data = self.safe_value(response, 'data', {})
1883
+ data = self.safe_dict(response, 'data', {})
1884
1884
  elif market['spot']:
1885
1885
  request['symbol'] = market['id']
1886
1886
  request['quantity'] = self.amount_to_precision(symbol, amount)
@@ -1955,7 +1955,7 @@ class bitrue(Exchange, ImplicitAPI):
1955
1955
  response = self.fapiV2PrivateGetOrder(self.extend(request, params))
1956
1956
  elif market['inverse']:
1957
1957
  response = self.dapiV2PrivateGetOrder(self.extend(request, params))
1958
- data = self.safe_value(response, 'data', {})
1958
+ data = self.safe_dict(response, 'data', {})
1959
1959
  elif market['spot']:
1960
1960
  request['orderId'] = id # spot market id is mandatory
1961
1961
  request['symbol'] = market['id']
@@ -2085,7 +2085,7 @@ class bitrue(Exchange, ImplicitAPI):
2085
2085
  response = self.fapiV2PrivateGetOpenOrders(self.extend(request, params))
2086
2086
  elif market['inverse']:
2087
2087
  response = self.dapiV2PrivateGetOpenOrders(self.extend(request, params))
2088
- data = self.safe_value(response, 'data', [])
2088
+ data = self.safe_list(response, 'data', [])
2089
2089
  elif market['spot']:
2090
2090
  request['symbol'] = market['id']
2091
2091
  response = self.spotV1PrivateGetOpenOrders(self.extend(request, params))
@@ -2173,7 +2173,7 @@ class bitrue(Exchange, ImplicitAPI):
2173
2173
  response = self.fapiV2PrivatePostCancel(self.extend(request, params))
2174
2174
  elif market['inverse']:
2175
2175
  response = self.dapiV2PrivatePostCancel(self.extend(request, params))
2176
- data = self.safe_value(response, 'data', {})
2176
+ data = self.safe_dict(response, 'data', {})
2177
2177
  elif market['spot']:
2178
2178
  request['symbol'] = market['id']
2179
2179
  response = self.spotV1PrivateDeleteOrder(self.extend(request, params))
@@ -2224,7 +2224,7 @@ class bitrue(Exchange, ImplicitAPI):
2224
2224
  response = self.fapiV2PrivatePostAllOpenOrders(self.extend(request, params))
2225
2225
  elif market['inverse']:
2226
2226
  response = self.dapiV2PrivatePostAllOpenOrders(self.extend(request, params))
2227
- data = self.safe_value(response, 'data', [])
2227
+ data = self.safe_list(response, 'data', [])
2228
2228
  else:
2229
2229
  raise NotSupported(self.id + ' cancelAllOrders only support future markets')
2230
2230
  #
@@ -2269,7 +2269,7 @@ class bitrue(Exchange, ImplicitAPI):
2269
2269
  response = self.fapiV2PrivateGetMyTrades(self.extend(request, params))
2270
2270
  elif market['inverse']:
2271
2271
  response = self.dapiV2PrivateGetMyTrades(self.extend(request, params))
2272
- data = self.safe_value(response, 'data', [])
2272
+ data = self.safe_list(response, 'data', [])
2273
2273
  elif market['spot']:
2274
2274
  request['symbol'] = market['id']
2275
2275
  response = self.spotV2PrivateGetMyTrades(self.extend(request, params))
@@ -2456,7 +2456,7 @@ class bitrue(Exchange, ImplicitAPI):
2456
2456
  '6': 'canceled',
2457
2457
  },
2458
2458
  }
2459
- statuses = self.safe_value(statusesByType, type, {})
2459
+ statuses = self.safe_dict(statusesByType, type, {})
2460
2460
  return self.safe_string(statuses, status, status)
2461
2461
 
2462
2462
  def parse_transaction(self, transaction: dict, currency: Currency = None) -> Transaction:
@@ -2579,7 +2579,7 @@ class bitrue(Exchange, ImplicitAPI):
2579
2579
  'fee': fee,
2580
2580
  }
2581
2581
 
2582
- def withdraw(self, code: str, amount: float, address: str, tag=None, params={}):
2582
+ def withdraw(self, code: str, amount: float, address: str, tag=None, params={}) -> Transaction:
2583
2583
  """
2584
2584
  make a withdrawal
2585
2585
  :see: https://github.com/Bitrue-exchange/Spot-official-api-docs#withdraw-commit--withdraw_data
@@ -2637,7 +2637,7 @@ class bitrue(Exchange, ImplicitAPI):
2637
2637
  # "chainDetail": [[Object]]
2638
2638
  # }
2639
2639
  #
2640
- chainDetails = self.safe_value(fee, 'chainDetail', [])
2640
+ chainDetails = self.safe_list(fee, 'chainDetail', [])
2641
2641
  chainDetailLength = len(chainDetails)
2642
2642
  result: dict = {
2643
2643
  'info': fee,
@@ -2778,7 +2778,7 @@ class bitrue(Exchange, ImplicitAPI):
2778
2778
  """
2779
2779
  self.load_markets()
2780
2780
  currency = self.currency(code)
2781
- accountTypes = self.safe_value(self.options, 'accountsByType', {})
2781
+ accountTypes = self.safe_dict(self.options, 'accountsByType', {})
2782
2782
  fromId = self.safe_string(accountTypes, fromAccount, fromAccount)
2783
2783
  toId = self.safe_string(accountTypes, toAccount, toAccount)
2784
2784
  request: dict = {
ccxt/bitso.py CHANGED
@@ -1500,7 +1500,7 @@ class bitso(Exchange, ImplicitAPI):
1500
1500
  result[code]['info'][code] = withdrawFee
1501
1501
  return result
1502
1502
 
1503
- def withdraw(self, code: str, amount: float, address: str, tag=None, params={}):
1503
+ def withdraw(self, code: str, amount: float, address: str, tag=None, params={}) -> Transaction:
1504
1504
  """
1505
1505
  make a withdrawal
1506
1506
  :param str code: unified currency code
ccxt/bitstamp.py CHANGED
@@ -2009,7 +2009,7 @@ class bitstamp(Exchange, ImplicitAPI):
2009
2009
  'tag': tag,
2010
2010
  }
2011
2011
 
2012
- def withdraw(self, code: str, amount: float, address: str, tag=None, params={}):
2012
+ def withdraw(self, code: str, amount: float, address: str, tag=None, params={}) -> Transaction:
2013
2013
  """
2014
2014
  make a withdrawal
2015
2015
  :see: https://www.bitstamp.net/api/#tag/Withdrawals/operation/RequestFiatWithdrawal
ccxt/bitvavo.py CHANGED
@@ -1081,6 +1081,9 @@ class bitvavo(Exchange, ImplicitAPI):
1081
1081
  request['timeInForce'] = timeInForce
1082
1082
  if postOnly:
1083
1083
  request['postOnly'] = True
1084
+ clientOrderId = self.safe_string(params, 'clientOrderId')
1085
+ if clientOrderId is None:
1086
+ request['clientOrderId'] = self.uuid22()
1084
1087
  return self.extend(request, params)
1085
1088
 
1086
1089
  def create_order(self, symbol: Str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
@@ -1631,7 +1634,7 @@ class bitvavo(Exchange, ImplicitAPI):
1631
1634
  request['paymentId'] = tag
1632
1635
  return self.extend(request, params)
1633
1636
 
1634
- def withdraw(self, code: str, amount: float, address: str, tag=None, params={}):
1637
+ def withdraw(self, code: str, amount: float, address: str, tag=None, params={}) -> Transaction:
1635
1638
  """
1636
1639
  make a withdrawal
1637
1640
  :param str code: unified currency code
ccxt/blockchaincom.py CHANGED
@@ -880,7 +880,7 @@ class blockchaincom(Exchange, ImplicitAPI):
880
880
  'fee': fee,
881
881
  }
882
882
 
883
- def withdraw(self, code: str, amount: float, address: str, tag=None, params={}):
883
+ def withdraw(self, code: str, amount: float, address: str, tag=None, params={}) -> Transaction:
884
884
  """
885
885
  make a withdrawal
886
886
  :see: https://api.blockchain.com/v3/#createwithdrawal
ccxt/btcmarkets.py CHANGED
@@ -1131,7 +1131,7 @@ class btcmarkets(Exchange, ImplicitAPI):
1131
1131
  #
1132
1132
  return self.parse_trades(response, market, since, limit)
1133
1133
 
1134
- def withdraw(self, code: str, amount: float, address: str, tag=None, params={}):
1134
+ def withdraw(self, code: str, amount: float, address: str, tag=None, params={}) -> Transaction:
1135
1135
  """
1136
1136
  make a withdrawal
1137
1137
  :see: https://docs.btcmarkets.net/v3/#tag/Fund-Management-APIs/paths/~1v3~1withdrawals/post