ccxt 4.4.15__py2.py3-none-any.whl → 4.4.16__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 (145) hide show
  1. ccxt/__init__.py +1 -1
  2. ccxt/ascendex.py +5 -5
  3. ccxt/async_support/__init__.py +1 -1
  4. ccxt/async_support/ascendex.py +5 -5
  5. ccxt/async_support/base/exchange.py +1 -1
  6. ccxt/async_support/bigone.py +6 -4
  7. ccxt/async_support/binance.py +58 -7
  8. ccxt/async_support/bingx.py +7 -6
  9. ccxt/async_support/bit2c.py +6 -4
  10. ccxt/async_support/bitbank.py +6 -4
  11. ccxt/async_support/bitbns.py +6 -4
  12. ccxt/async_support/bitfinex.py +4 -2
  13. ccxt/async_support/bitfinex2.py +4 -2
  14. ccxt/async_support/bitget.py +6 -5
  15. ccxt/async_support/bitmart.py +5 -4
  16. ccxt/async_support/bitmex.py +4 -4
  17. ccxt/async_support/bitso.py +5 -4
  18. ccxt/async_support/bitstamp.py +6 -4
  19. ccxt/async_support/bitvavo.py +6 -4
  20. ccxt/async_support/blockchaincom.py +11 -8
  21. ccxt/async_support/blofin.py +21 -0
  22. ccxt/async_support/bybit.py +6 -6
  23. ccxt/async_support/cex.py +5 -4
  24. ccxt/async_support/coinbase.py +4 -4
  25. ccxt/async_support/coinex.py +5 -5
  26. ccxt/async_support/coinone.py +6 -3
  27. ccxt/async_support/coinsph.py +5 -5
  28. ccxt/async_support/cryptocom.py +5 -4
  29. ccxt/async_support/currencycom.py +5 -5
  30. ccxt/async_support/delta.py +7 -5
  31. ccxt/async_support/deribit.py +6 -4
  32. ccxt/async_support/digifinex.py +6 -4
  33. ccxt/async_support/exmo.py +6 -4
  34. ccxt/async_support/gate.py +5 -4
  35. ccxt/async_support/gemini.py +4 -3
  36. ccxt/async_support/hashkey.py +7 -5
  37. ccxt/async_support/hitbtc.py +6 -5
  38. ccxt/async_support/hollaex.py +6 -5
  39. ccxt/async_support/htx.py +15 -5
  40. ccxt/async_support/hyperliquid.py +8 -7
  41. ccxt/async_support/idex.py +4 -4
  42. ccxt/async_support/independentreserve.py +4 -4
  43. ccxt/async_support/indodax.py +3 -3
  44. ccxt/async_support/kraken.py +7 -5
  45. ccxt/async_support/kucoin.py +6 -5
  46. ccxt/async_support/kucoinfutures.py +5 -3
  47. ccxt/async_support/kuna.py +5 -3
  48. ccxt/async_support/lbank.py +14 -12
  49. ccxt/async_support/lykke.py +6 -4
  50. ccxt/async_support/mexc.py +6 -6
  51. ccxt/async_support/ndax.py +33 -5
  52. ccxt/async_support/oceanex.py +4 -4
  53. ccxt/async_support/okcoin.py +8 -6
  54. ccxt/async_support/okx.py +17 -6
  55. ccxt/async_support/onetrading.py +6 -5
  56. ccxt/async_support/oxfun.py +6 -6
  57. ccxt/async_support/paymium.py +6 -5
  58. ccxt/async_support/phemex.py +8 -6
  59. ccxt/async_support/poloniex.py +6 -4
  60. ccxt/async_support/probit.py +7 -6
  61. ccxt/async_support/timex.py +4 -4
  62. ccxt/async_support/tokocrypto.py +5 -5
  63. ccxt/async_support/upbit.py +7 -6
  64. ccxt/async_support/wavesexchange.py +9 -9
  65. ccxt/async_support/wazirx.py +24 -4
  66. ccxt/async_support/whitebit.py +6 -4
  67. ccxt/async_support/woo.py +6 -4
  68. ccxt/async_support/xt.py +7 -5
  69. ccxt/async_support/yobit.py +32 -23
  70. ccxt/async_support/zonda.py +31 -6
  71. ccxt/base/exchange.py +2 -2
  72. ccxt/base/types.py +8 -0
  73. ccxt/bigone.py +6 -4
  74. ccxt/binance.py +58 -7
  75. ccxt/bingx.py +7 -6
  76. ccxt/bit2c.py +6 -4
  77. ccxt/bitbank.py +6 -4
  78. ccxt/bitbns.py +6 -4
  79. ccxt/bitfinex.py +4 -2
  80. ccxt/bitfinex2.py +4 -2
  81. ccxt/bitget.py +6 -5
  82. ccxt/bitmart.py +5 -4
  83. ccxt/bitmex.py +4 -4
  84. ccxt/bitso.py +5 -4
  85. ccxt/bitstamp.py +6 -4
  86. ccxt/bitvavo.py +6 -4
  87. ccxt/blockchaincom.py +11 -8
  88. ccxt/blofin.py +21 -0
  89. ccxt/bybit.py +6 -6
  90. ccxt/cex.py +5 -4
  91. ccxt/coinbase.py +4 -4
  92. ccxt/coinex.py +5 -5
  93. ccxt/coinone.py +6 -3
  94. ccxt/coinsph.py +5 -5
  95. ccxt/cryptocom.py +5 -4
  96. ccxt/currencycom.py +5 -5
  97. ccxt/delta.py +7 -5
  98. ccxt/deribit.py +6 -4
  99. ccxt/digifinex.py +6 -4
  100. ccxt/exmo.py +6 -4
  101. ccxt/gate.py +5 -4
  102. ccxt/gemini.py +4 -3
  103. ccxt/hashkey.py +7 -5
  104. ccxt/hitbtc.py +6 -5
  105. ccxt/hollaex.py +6 -5
  106. ccxt/htx.py +15 -5
  107. ccxt/hyperliquid.py +8 -7
  108. ccxt/idex.py +4 -4
  109. ccxt/independentreserve.py +4 -4
  110. ccxt/indodax.py +3 -3
  111. ccxt/kraken.py +7 -5
  112. ccxt/kucoin.py +6 -5
  113. ccxt/kucoinfutures.py +5 -3
  114. ccxt/kuna.py +5 -3
  115. ccxt/lbank.py +14 -12
  116. ccxt/lykke.py +6 -4
  117. ccxt/mexc.py +6 -6
  118. ccxt/ndax.py +33 -5
  119. ccxt/oceanex.py +4 -4
  120. ccxt/okcoin.py +8 -6
  121. ccxt/okx.py +17 -6
  122. ccxt/onetrading.py +6 -5
  123. ccxt/oxfun.py +6 -6
  124. ccxt/paymium.py +6 -5
  125. ccxt/phemex.py +8 -6
  126. ccxt/poloniex.py +6 -4
  127. ccxt/pro/__init__.py +1 -1
  128. ccxt/probit.py +7 -6
  129. ccxt/test/tests_async.py +1 -0
  130. ccxt/test/tests_sync.py +1 -0
  131. ccxt/timex.py +4 -4
  132. ccxt/tokocrypto.py +5 -5
  133. ccxt/upbit.py +7 -6
  134. ccxt/wavesexchange.py +9 -9
  135. ccxt/wazirx.py +24 -4
  136. ccxt/whitebit.py +6 -4
  137. ccxt/woo.py +6 -4
  138. ccxt/xt.py +7 -5
  139. ccxt/yobit.py +32 -23
  140. ccxt/zonda.py +31 -6
  141. {ccxt-4.4.15.dist-info → ccxt-4.4.16.dist-info}/METADATA +4 -4
  142. {ccxt-4.4.15.dist-info → ccxt-4.4.16.dist-info}/RECORD +145 -145
  143. {ccxt-4.4.15.dist-info → ccxt-4.4.16.dist-info}/LICENSE.txt +0 -0
  144. {ccxt-4.4.15.dist-info → ccxt-4.4.16.dist-info}/WHEEL +0 -0
  145. {ccxt-4.4.15.dist-info → ccxt-4.4.16.dist-info}/top_level.txt +0 -0
@@ -7,7 +7,7 @@ from ccxt.async_support.base.exchange import Exchange
7
7
  from ccxt.abstract.phemex import ImplicitAPI
8
8
  import hashlib
9
9
  import numbers
10
- from ccxt.base.types import Balances, Currencies, Currency, Int, LeverageTier, LeverageTiers, MarginModification, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, FundingRate, Trade, Transaction, TransferEntry
10
+ from ccxt.base.types import Balances, Currencies, Currency, DepositAddress, Int, LeverageTier, LeverageTiers, MarginModification, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, FundingRate, Trade, Transaction, TransferEntry
11
11
  from typing import List
12
12
  from ccxt.base.errors import ExchangeError
13
13
  from ccxt.base.errors import AuthenticationError
@@ -64,6 +64,8 @@ class phemex(Exchange, ImplicitAPI):
64
64
  'fetchCrossBorrowRates': False,
65
65
  'fetchCurrencies': True,
66
66
  'fetchDepositAddress': True,
67
+ 'fetchDepositAddresses': False,
68
+ 'fetchDepositAddressesByNetwork': False,
67
69
  'fetchDeposits': True,
68
70
  'fetchFundingHistory': True,
69
71
  'fetchFundingRate': True,
@@ -3145,7 +3147,7 @@ class phemex(Exchange, ImplicitAPI):
3145
3147
  data = self.safe_value(data, 'rows', [])
3146
3148
  return self.parse_trades(data, market, since, limit)
3147
3149
 
3148
- async def fetch_deposit_address(self, code: str, params={}):
3150
+ async def fetch_deposit_address(self, code: str, params={}) -> DepositAddress:
3149
3151
  """
3150
3152
  fetch the deposit address for a currency associated with self account
3151
3153
  :param str code: unified currency code
@@ -3157,9 +3159,9 @@ class phemex(Exchange, ImplicitAPI):
3157
3159
  request: dict = {
3158
3160
  'currency': currency['id'],
3159
3161
  }
3160
- defaultNetworks = self.safe_value(self.options, 'defaultNetworks')
3162
+ defaultNetworks = self.safe_dict(self.options, 'defaultNetworks')
3161
3163
  defaultNetwork = self.safe_string_upper(defaultNetworks, code)
3162
- networks = self.safe_value(self.options, 'networks', {})
3164
+ networks = self.safe_dict(self.options, 'networks', {})
3163
3165
  network = self.safe_string_upper(params, 'network', defaultNetwork)
3164
3166
  network = self.safe_string(networks, network, network)
3165
3167
  if network is None:
@@ -3182,11 +3184,11 @@ class phemex(Exchange, ImplicitAPI):
3182
3184
  tag = self.safe_string(data, 'tag')
3183
3185
  self.check_address(address)
3184
3186
  return {
3187
+ 'info': response,
3185
3188
  'currency': code,
3189
+ 'network': None,
3186
3190
  'address': address,
3187
3191
  'tag': tag,
3188
- 'network': None,
3189
- 'info': response,
3190
3192
  }
3191
3193
 
3192
3194
  async def fetch_deposits(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Transaction]:
@@ -6,7 +6,7 @@
6
6
  from ccxt.async_support.base.exchange import Exchange
7
7
  from ccxt.abstract.poloniex import ImplicitAPI
8
8
  import hashlib
9
- from ccxt.base.types import Balances, Currencies, Currency, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFees, Transaction, TransferEntry
9
+ from ccxt.base.types import Balances, Currencies, Currency, DepositAddress, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFees, Transaction, TransferEntry
10
10
  from typing import List
11
11
  from ccxt.base.errors import ExchangeError
12
12
  from ccxt.base.errors import AuthenticationError
@@ -56,6 +56,8 @@ class poloniex(Exchange, ImplicitAPI):
56
56
  'fetchClosedOrder': False,
57
57
  'fetchCurrencies': True,
58
58
  'fetchDepositAddress': True,
59
+ 'fetchDepositAddresses': False,
60
+ 'fetchDepositAddressesByNetwork': False,
59
61
  'fetchDeposits': True,
60
62
  'fetchDepositsWithdrawals': True,
61
63
  'fetchDepositWithdrawFee': 'emulated',
@@ -1700,7 +1702,7 @@ class poloniex(Exchange, ImplicitAPI):
1700
1702
  'info': response,
1701
1703
  }
1702
1704
 
1703
- async def fetch_deposit_address(self, code: str, params={}):
1705
+ async def fetch_deposit_address(self, code: str, params={}) -> DepositAddress:
1704
1706
  """
1705
1707
  fetch the deposit address for a currency associated with self account
1706
1708
  :see: https://api-docs.poloniex.com/spot/api/private/wallet#deposit-addresses
@@ -1737,11 +1739,11 @@ class poloniex(Exchange, ImplicitAPI):
1737
1739
  tag = address
1738
1740
  address = depositAddress
1739
1741
  return {
1742
+ 'info': response,
1740
1743
  'currency': code,
1744
+ 'network': network,
1741
1745
  'address': address,
1742
1746
  'tag': tag,
1743
- 'network': network,
1744
- 'info': response,
1745
1747
  }
1746
1748
 
1747
1749
  async def transfer(self, code: str, amount: float, fromAccount: str, toAccount: str, params={}) -> TransferEntry:
@@ -6,7 +6,7 @@
6
6
  from ccxt.async_support.base.exchange import Exchange
7
7
  from ccxt.abstract.probit import ImplicitAPI
8
8
  import math
9
- from ccxt.base.types import Balances, Currencies, Currency, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction
9
+ from ccxt.base.types import Balances, Currencies, Currency, DepositAddress, 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
12
  from ccxt.base.errors import AuthenticationError
@@ -62,6 +62,7 @@ class probit(Exchange, ImplicitAPI):
62
62
  'fetchCurrencies': True,
63
63
  'fetchDepositAddress': True,
64
64
  'fetchDepositAddresses': True,
65
+ 'fetchDepositAddressesByNetwork': False,
65
66
  'fetchDeposits': True,
66
67
  'fetchDepositsWithdrawals': True,
67
68
  'fetchFundingHistory': False,
@@ -1232,7 +1233,7 @@ class probit(Exchange, ImplicitAPI):
1232
1233
  data = self.safe_dict(response, 'data')
1233
1234
  return self.parse_order(data)
1234
1235
 
1235
- def parse_deposit_address(self, depositAddress, currency: Currency = None):
1236
+ def parse_deposit_address(self, depositAddress, currency: Currency = None) -> DepositAddress:
1236
1237
  address = self.safe_string(depositAddress, 'address')
1237
1238
  tag = self.safe_string(depositAddress, 'destination_tag')
1238
1239
  currencyId = self.safe_string(depositAddress, 'currency_id')
@@ -1241,14 +1242,14 @@ class probit(Exchange, ImplicitAPI):
1241
1242
  network = self.safe_string(depositAddress, 'platform_id')
1242
1243
  self.check_address(address)
1243
1244
  return {
1245
+ 'info': depositAddress,
1244
1246
  'currency': code,
1247
+ 'network': network,
1245
1248
  'address': address,
1246
1249
  'tag': tag,
1247
- 'network': network,
1248
- 'info': depositAddress,
1249
1250
  }
1250
1251
 
1251
- async def fetch_deposit_address(self, code: str, params={}):
1252
+ async def fetch_deposit_address(self, code: str, params={}) -> DepositAddress:
1252
1253
  """
1253
1254
  :see: https://docs-en.probit.com/reference/deposit_address
1254
1255
  fetch the deposit address for a currency associated with self account
@@ -1298,7 +1299,7 @@ class probit(Exchange, ImplicitAPI):
1298
1299
  raise InvalidAddress(self.id + ' fetchDepositAddress() returned an empty response')
1299
1300
  return self.parse_deposit_address(firstAddress, currency)
1300
1301
 
1301
- async def fetch_deposit_addresses(self, codes: Strings = None, params={}):
1302
+ async def fetch_deposit_addresses(self, codes: Strings = None, params={}) -> List[DepositAddress]:
1302
1303
  """
1303
1304
  :see: https://docs-en.probit.com/reference/deposit_address
1304
1305
  fetch deposit addresses for multiple currencies and chain types
@@ -5,7 +5,7 @@
5
5
 
6
6
  from ccxt.async_support.base.exchange import Exchange
7
7
  from ccxt.abstract.timex import ImplicitAPI
8
- from ccxt.base.types import Balances, Currencies, Currency, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFeeInterface, Transaction
8
+ from ccxt.base.types import Balances, Currencies, Currency, DepositAddress, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFeeInterface, Transaction
9
9
  from typing import List
10
10
  from ccxt.base.errors import ExchangeError
11
11
  from ccxt.base.errors import AuthenticationError
@@ -1514,7 +1514,7 @@ class timex(Exchange, ImplicitAPI):
1514
1514
  'trades': rawTrades,
1515
1515
  }, market)
1516
1516
 
1517
- async def fetch_deposit_address(self, code: str, params={}):
1517
+ async def fetch_deposit_address(self, code: str, params={}) -> DepositAddress:
1518
1518
  """
1519
1519
  fetch the deposit address for a currency associated with self account, does not accept params["network"]
1520
1520
  :see: https://plasma-relay-backend.timex.io/swagger-ui/index.html?urls.primaryName=Relay#/Currency/selectCurrencyBySymbol
@@ -1548,7 +1548,7 @@ class timex(Exchange, ImplicitAPI):
1548
1548
  data = self.safe_dict(response, 'currency', {})
1549
1549
  return self.parse_deposit_address(data, currency)
1550
1550
 
1551
- def parse_deposit_address(self, depositAddress, currency: Currency = None):
1551
+ def parse_deposit_address(self, depositAddress, currency: Currency = None) -> DepositAddress:
1552
1552
  #
1553
1553
  # {
1554
1554
  # symbol: 'BTC',
@@ -1567,9 +1567,9 @@ class timex(Exchange, ImplicitAPI):
1567
1567
  return {
1568
1568
  'info': depositAddress,
1569
1569
  'currency': self.safe_currency_code(currencyId, currency),
1570
+ 'network': None,
1570
1571
  'address': self.safe_string(depositAddress, 'address'),
1571
1572
  'tag': None,
1572
- 'network': None,
1573
1573
  }
1574
1574
 
1575
1575
  def sign(self, path, api='public', method='GET', params={}, headers=None, body=None):
@@ -7,7 +7,7 @@ from ccxt.async_support.base.exchange import Exchange
7
7
  from ccxt.abstract.tokocrypto import ImplicitAPI
8
8
  import hashlib
9
9
  import json
10
- from ccxt.base.types import Balances, Currency, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction
10
+ from ccxt.base.types import Balances, Currency, DepositAddress, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction
11
11
  from typing import List
12
12
  from ccxt.base.errors import ExchangeError
13
13
  from ccxt.base.errors import AuthenticationError
@@ -1950,10 +1950,10 @@ class tokocrypto(Exchange, ImplicitAPI):
1950
1950
  trades = self.safe_list(data, 'list', [])
1951
1951
  return self.parse_trades(trades, market, since, limit)
1952
1952
 
1953
- async def fetch_deposit_address(self, code: str, params={}):
1953
+ async def fetch_deposit_address(self, code: str, params={}) -> DepositAddress:
1954
1954
  """
1955
- :see: https://www.tokocrypto.com/apidocs/#deposit-address-signed
1956
1955
  fetch the deposit address for a currency associated with self account
1956
+ :see: https://www.tokocrypto.com/apidocs/#deposit-address-signed
1957
1957
  :param str code: unified currency code
1958
1958
  :param dict [params]: extra parameters specific to the exchange API endpoint
1959
1959
  :returns dict: an `address structure <https://docs.ccxt.com/#/?id=address-structure>`
@@ -1995,11 +1995,11 @@ class tokocrypto(Exchange, ImplicitAPI):
1995
1995
  tag = None
1996
1996
  self.check_address(address)
1997
1997
  return {
1998
+ 'info': response,
1998
1999
  'currency': code,
2000
+ 'network': self.safe_string(data, 'network'),
1999
2001
  'address': address,
2000
2002
  'tag': tag,
2001
- 'network': self.safe_string(data, 'network'),
2002
- 'info': response,
2003
2003
  }
2004
2004
 
2005
2005
  async def fetch_deposits(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Transaction]:
@@ -5,7 +5,7 @@
5
5
 
6
6
  from ccxt.async_support.base.exchange import Exchange
7
7
  from ccxt.abstract.upbit import ImplicitAPI
8
- from ccxt.base.types import Balances, Currency, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFeeInterface, Transaction
8
+ from ccxt.base.types import Balances, Currency, DepositAddress, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFeeInterface, Transaction
9
9
  from typing import List
10
10
  from ccxt.base.errors import ExchangeError
11
11
  from ccxt.base.errors import AuthenticationError
@@ -51,6 +51,7 @@ class upbit(Exchange, ImplicitAPI):
51
51
  'fetchDeposit': True,
52
52
  'fetchDepositAddress': True,
53
53
  'fetchDepositAddresses': True,
54
+ 'fetchDepositAddressesByNetwork': False,
54
55
  'fetchDeposits': True,
55
56
  'fetchFundingHistory': False,
56
57
  'fetchFundingRate': False,
@@ -1696,7 +1697,7 @@ class upbit(Exchange, ImplicitAPI):
1696
1697
  #
1697
1698
  return self.parse_order(response)
1698
1699
 
1699
- async def fetch_deposit_addresses(self, codes: Strings = None, params={}):
1700
+ async def fetch_deposit_addresses(self, codes: Strings = None, params={}) -> List[DepositAddress]:
1700
1701
  """
1701
1702
  :see: https://docs.upbit.com/reference/%EC%A0%84%EC%B2%B4-%EC%9E%85%EA%B8%88-%EC%A3%BC%EC%86%8C-%EC%A1%B0%ED%9A%8C
1702
1703
  fetch deposit addresses for multiple currencies and chain types
@@ -1727,7 +1728,7 @@ class upbit(Exchange, ImplicitAPI):
1727
1728
  #
1728
1729
  return self.parse_deposit_addresses(response, codes)
1729
1730
 
1730
- def parse_deposit_address(self, depositAddress, currency: Currency = None):
1731
+ def parse_deposit_address(self, depositAddress, currency: Currency = None) -> DepositAddress:
1731
1732
  #
1732
1733
  # {
1733
1734
  # currency: 'XRP',
@@ -1743,14 +1744,14 @@ class upbit(Exchange, ImplicitAPI):
1743
1744
  networkId = self.safe_string(depositAddress, 'net_type')
1744
1745
  self.check_address(address)
1745
1746
  return {
1747
+ 'info': depositAddress,
1746
1748
  'currency': code,
1749
+ 'network': self.network_id_to_code(networkId),
1747
1750
  'address': address,
1748
1751
  'tag': tag,
1749
- 'network': self.network_id_to_code(networkId),
1750
- 'info': depositAddress,
1751
1752
  }
1752
1753
 
1753
- async def fetch_deposit_address(self, code: str, params={}):
1754
+ async def fetch_deposit_address(self, code: str, params={}) -> DepositAddress:
1754
1755
  """
1755
1756
  :see: https://docs.upbit.com/reference/%EC%A0%84%EC%B2%B4-%EC%9E%85%EA%B8%88-%EC%A3%BC%EC%86%8C-%EC%A1%B0%ED%9A%8C
1756
1757
  fetch the deposit address for a currency associated with self account
@@ -7,7 +7,7 @@ from ccxt.async_support.base.exchange import Exchange
7
7
  from ccxt.abstract.wavesexchange import ImplicitAPI
8
8
  import asyncio
9
9
  import json
10
- from ccxt.base.types import Balances, Currency, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction
10
+ from ccxt.base.types import Balances, Currency, DepositAddress, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction
11
11
  from typing import List
12
12
  from typing import Any
13
13
  from ccxt.base.errors import ExchangeError
@@ -59,6 +59,8 @@ class wavesexchange(Exchange, ImplicitAPI):
59
59
  'fetchCrossBorrowRate': False,
60
60
  'fetchCrossBorrowRates': False,
61
61
  'fetchDepositAddress': True,
62
+ 'fetchDepositAddresses': None,
63
+ 'fetchDepositAddressesByNetwork': None,
62
64
  'fetchDepositWithdrawFee': 'emulated',
63
65
  'fetchDepositWithdrawFees': True,
64
66
  'fetchFundingHistory': False,
@@ -1019,7 +1021,7 @@ class wavesexchange(Exchange, ImplicitAPI):
1019
1021
  self.safe_number(data, 'volume', 0),
1020
1022
  ]
1021
1023
 
1022
- async def fetch_deposit_address(self, code: str, params={}):
1024
+ async def fetch_deposit_address(self, code: str, params={}) -> DepositAddress:
1023
1025
  """
1024
1026
  fetch the deposit address for a currency associated with self account
1025
1027
  :param str code: unified currency code
@@ -1098,12 +1100,11 @@ class wavesexchange(Exchange, ImplicitAPI):
1098
1100
  responseInner = await self.nodeGetAddressesPublicKeyPublicKey(self.extend(request, request))
1099
1101
  addressInner = self.safe_string(response, 'address')
1100
1102
  return {
1101
- 'address': addressInner,
1102
- 'code': code, # kept here for backward-compatibility, but will be removed soon
1103
+ 'info': responseInner,
1103
1104
  'currency': code,
1104
1105
  'network': network,
1106
+ 'address': addressInner,
1105
1107
  'tag': None,
1106
- 'info': responseInner,
1107
1108
  }
1108
1109
  else:
1109
1110
  request: dict = {
@@ -1141,12 +1142,11 @@ class wavesexchange(Exchange, ImplicitAPI):
1141
1142
  addresses = self.safe_value(response, 'deposit_addresses')
1142
1143
  address = self.safe_string(addresses, 0)
1143
1144
  return {
1144
- 'address': address,
1145
- 'code': code, # kept here for backward-compatibility, but will be removed soon
1145
+ 'info': response,
1146
1146
  'currency': code,
1147
- 'tag': None,
1148
1147
  'network': unifiedNetwork,
1149
- 'info': response,
1148
+ 'address': address,
1149
+ 'tag': None,
1150
1150
  }
1151
1151
 
1152
1152
  async def get_matcher_public_key(self):
@@ -6,7 +6,7 @@
6
6
  from ccxt.async_support.base.exchange import Exchange
7
7
  from ccxt.abstract.wazirx import ImplicitAPI
8
8
  import hashlib
9
- from ccxt.base.types import Balances, Currencies, Currency, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction
9
+ from ccxt.base.types import Balances, Currencies, Currency, DepositAddress, 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
12
  from ccxt.base.errors import PermissionDenied
@@ -50,34 +50,51 @@ class wazirx(Exchange, ImplicitAPI):
50
50
  'fetchBalance': True,
51
51
  'fetchBidsAsks': False,
52
52
  'fetchBorrowInterest': False,
53
+ 'fetchBorrowRate': False,
53
54
  'fetchBorrowRateHistories': False,
54
55
  'fetchBorrowRateHistory': False,
56
+ 'fetchBorrowRates': False,
57
+ 'fetchBorrowRatesPerSymbol': False,
55
58
  'fetchClosedOrders': False,
56
59
  'fetchCrossBorrowRate': False,
57
60
  'fetchCrossBorrowRates': False,
58
61
  'fetchCurrencies': True,
59
62
  'fetchDepositAddress': True,
63
+ 'fetchDepositAddresses': False,
60
64
  'fetchDepositAddressesByNetwork': False,
61
65
  'fetchDeposits': True,
62
66
  'fetchDepositsWithdrawals': False,
63
67
  'fetchFundingHistory': False,
68
+ 'fetchFundingInterval': False,
69
+ 'fetchFundingIntervals': False,
64
70
  'fetchFundingRate': False,
65
71
  'fetchFundingRateHistory': False,
66
72
  'fetchFundingRates': False,
73
+ 'fetchGreeks': False,
67
74
  'fetchIndexOHLCV': False,
68
75
  'fetchIsolatedBorrowRate': False,
69
76
  'fetchIsolatedBorrowRates': False,
70
77
  'fetchIsolatedPositions': False,
71
78
  'fetchLeverage': False,
79
+ 'fetchLeverages': False,
72
80
  'fetchLeverageTiers': False,
81
+ 'fetchLiquidations': False,
82
+ 'fetchMarginAdjustmentHistory': False,
73
83
  'fetchMarginMode': False,
84
+ 'fetchMarginModes': False,
74
85
  'fetchMarketLeverageTiers': False,
75
86
  'fetchMarkets': True,
76
87
  'fetchMarkOHLCV': False,
88
+ 'fetchMarkPrices': False,
89
+ 'fetchMyLiquidations': False,
90
+ 'fetchMySettlementHistory': False,
77
91
  'fetchMyTrades': False,
78
92
  'fetchOHLCV': True,
93
+ 'fetchOpenInterest': False,
79
94
  'fetchOpenInterestHistory': False,
80
95
  'fetchOpenOrders': True,
96
+ 'fetchOption': False,
97
+ 'fetchOptionChain': False,
81
98
  'fetchOrder': False,
82
99
  'fetchOrderBook': True,
83
100
  'fetchOrders': True,
@@ -89,6 +106,7 @@ class wazirx(Exchange, ImplicitAPI):
89
106
  'fetchPositionsHistory': False,
90
107
  'fetchPositionsRisk': False,
91
108
  'fetchPremiumIndexOHLCV': False,
109
+ 'fetchSettlementHistory': False,
92
110
  'fetchStatus': True,
93
111
  'fetchTicker': True,
94
112
  'fetchTickers': True,
@@ -99,6 +117,8 @@ class wazirx(Exchange, ImplicitAPI):
99
117
  'fetchTransactionFees': False,
100
118
  'fetchTransactions': False,
101
119
  'fetchTransfers': False,
120
+ 'fetchUnderlyingAssets': False,
121
+ 'fetchVolatilityHistory': False,
102
122
  'fetchWithdrawals': True,
103
123
  'reduceMargin': False,
104
124
  'repayCrossMargin': False,
@@ -1049,7 +1069,7 @@ class wazirx(Exchange, ImplicitAPI):
1049
1069
  }
1050
1070
  return result
1051
1071
 
1052
- async def fetch_deposit_address(self, code: str, params={}):
1072
+ async def fetch_deposit_address(self, code: str, params={}) -> DepositAddress:
1053
1073
  """
1054
1074
  fetch the deposit address for a currency associated with self account
1055
1075
  :see: https://docs.wazirx.com/#deposit-address-supporting-network-user_data
@@ -1077,11 +1097,11 @@ class wazirx(Exchange, ImplicitAPI):
1077
1097
  # }
1078
1098
  #
1079
1099
  return {
1100
+ 'info': response,
1080
1101
  'currency': code,
1102
+ 'network': self.network_code_to_id(networkCode, code),
1081
1103
  'address': self.safe_string(response, 'address'),
1082
1104
  'tag': None,
1083
- 'network': self.network_code_to_id(networkCode, code),
1084
- 'info': response,
1085
1105
  }
1086
1106
 
1087
1107
  async def fetch_withdrawals(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Transaction]:
@@ -6,7 +6,7 @@
6
6
  from ccxt.async_support.base.exchange import Exchange
7
7
  from ccxt.abstract.whitebit import ImplicitAPI
8
8
  import hashlib
9
- from ccxt.base.types import Balances, Bool, Currencies, Currency, Int, Market, MarketType, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, FundingRate, FundingRates, Trade, TradingFees, Transaction, TransferEntry
9
+ from ccxt.base.types import Balances, Bool, Currencies, Currency, DepositAddress, Int, Market, MarketType, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, FundingRate, FundingRates, Trade, TradingFees, Transaction, TransferEntry
10
10
  from typing import List
11
11
  from ccxt.base.errors import ExchangeError
12
12
  from ccxt.base.errors import AuthenticationError
@@ -62,6 +62,8 @@ class whitebit(Exchange, ImplicitAPI):
62
62
  'fetchCurrencies': True,
63
63
  'fetchDeposit': True,
64
64
  'fetchDepositAddress': True,
65
+ 'fetchDepositAddresses': False,
66
+ 'fetchDepositAddressesByNetwork': False,
65
67
  'fetchDeposits': True,
66
68
  'fetchDepositsWithdrawals': True,
67
69
  'fetchDepositWithdrawFee': 'emulated',
@@ -1758,7 +1760,7 @@ class whitebit(Exchange, ImplicitAPI):
1758
1760
  data = self.safe_list(response, 'records', [])
1759
1761
  return self.parse_trades(data, market)
1760
1762
 
1761
- async def fetch_deposit_address(self, code: str, params={}):
1763
+ async def fetch_deposit_address(self, code: str, params={}) -> DepositAddress:
1762
1764
  """
1763
1765
  fetch the deposit address for a currency associated with self account
1764
1766
  :see: https://docs.whitebit.com/private/http-main-v4/#get-fiat-deposit-address
@@ -1820,11 +1822,11 @@ class whitebit(Exchange, ImplicitAPI):
1820
1822
  tag = self.safe_string(account, 'memo')
1821
1823
  self.check_address(address)
1822
1824
  return {
1825
+ 'info': response,
1823
1826
  'currency': code,
1827
+ 'network': None,
1824
1828
  'address': address,
1825
1829
  'tag': tag,
1826
- 'network': None,
1827
- 'info': response,
1828
1830
  }
1829
1831
 
1830
1832
  async def set_leverage(self, leverage: Int, symbol: Str = None, params={}):
ccxt/async_support/woo.py CHANGED
@@ -6,7 +6,7 @@
6
6
  from ccxt.async_support.base.exchange import Exchange
7
7
  from ccxt.abstract.woo import ImplicitAPI
8
8
  import hashlib
9
- from ccxt.base.types import Account, Balances, Bool, Conversion, Currencies, Currency, Int, LedgerEntry, Leverage, MarginModification, Market, MarketType, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, FundingRate, FundingRates, Trade, TradingFees, Transaction, TransferEntry
9
+ from ccxt.base.types import Account, Balances, Bool, Conversion, Currencies, Currency, DepositAddress, Int, LedgerEntry, Leverage, MarginModification, Market, MarketType, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, FundingRate, FundingRates, Trade, TradingFees, Transaction, TransferEntry
10
10
  from typing import List
11
11
  from typing import Any
12
12
  from ccxt.base.errors import ExchangeError
@@ -76,6 +76,8 @@ class woo(Exchange, ImplicitAPI):
76
76
  'fetchConvertTradeHistory': True,
77
77
  'fetchCurrencies': True,
78
78
  'fetchDepositAddress': True,
79
+ 'fetchDepositAddresses': False,
80
+ 'fetchDepositAddressesByNetwork': False,
79
81
  'fetchDeposits': True,
80
82
  'fetchDepositsWithdrawals': True,
81
83
  'fetchFundingHistory': True,
@@ -1906,7 +1908,7 @@ class woo(Exchange, ImplicitAPI):
1906
1908
  result[code] = account
1907
1909
  return self.safe_balance(result)
1908
1910
 
1909
- async def fetch_deposit_address(self, code: str, params={}):
1911
+ async def fetch_deposit_address(self, code: str, params={}) -> DepositAddress:
1910
1912
  """
1911
1913
  fetch the deposit address for a currency associated with self account
1912
1914
  :see: https://docs.woo.org/#get-token-deposit-address
@@ -1934,11 +1936,11 @@ class woo(Exchange, ImplicitAPI):
1934
1936
  address = self.safe_string(response, 'address')
1935
1937
  self.check_address(address)
1936
1938
  return {
1939
+ 'info': response,
1937
1940
  'currency': code,
1941
+ 'network': networkCode,
1938
1942
  'address': address,
1939
1943
  'tag': tag,
1940
- 'network': networkCode,
1941
- 'info': response,
1942
1944
  }
1943
1945
 
1944
1946
  async def get_asset_history_rows(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> Any:
ccxt/async_support/xt.py CHANGED
@@ -7,7 +7,7 @@ from ccxt.async_support.base.exchange import Exchange
7
7
  from ccxt.abstract.xt import ImplicitAPI
8
8
  import asyncio
9
9
  import hashlib
10
- from ccxt.base.types import Currencies, Currency, Int, LedgerEntry, LeverageTier, MarginModification, Market, Num, Order, OrderSide, OrderType, Str, Tickers, FundingRate, Transaction, TransferEntry
10
+ from ccxt.base.types import Currencies, Currency, DepositAddress, Int, LedgerEntry, LeverageTier, MarginModification, Market, Num, Order, OrderSide, OrderType, Str, Tickers, FundingRate, Transaction, TransferEntry
11
11
  from typing import List
12
12
  from ccxt.base.errors import ExchangeError
13
13
  from ccxt.base.errors import AuthenticationError
@@ -73,6 +73,8 @@ class xt(Exchange, ImplicitAPI):
73
73
  'fetchCurrencies': True,
74
74
  'fetchDeposit': False,
75
75
  'fetchDepositAddress': True,
76
+ 'fetchDepositAddresses': False,
77
+ 'fetchDepositAddressesByNetwork': False,
76
78
  'fetchDeposits': True,
77
79
  'fetchDepositWithdrawals': False,
78
80
  'fetchDepositWithdrawFee': False,
@@ -3422,7 +3424,7 @@ class xt(Exchange, ImplicitAPI):
3422
3424
  }
3423
3425
  return self.safe_string(ledgerType, type, type)
3424
3426
 
3425
- async def fetch_deposit_address(self, code: str, params={}):
3427
+ async def fetch_deposit_address(self, code: str, params={}) -> DepositAddress:
3426
3428
  """
3427
3429
  fetch the deposit address for a currency associated with self account
3428
3430
  :see: https://doc.xt.com/#deposit_withdrawaldepositAddressGet
@@ -3456,7 +3458,7 @@ class xt(Exchange, ImplicitAPI):
3456
3458
  result = self.safe_value(response, 'result', {})
3457
3459
  return self.parse_deposit_address(result, currency)
3458
3460
 
3459
- def parse_deposit_address(self, depositAddress, currency=None):
3461
+ def parse_deposit_address(self, depositAddress, currency=None) -> DepositAddress:
3460
3462
  #
3461
3463
  # {
3462
3464
  # "address": "0x7f7173cf29d3846d20ca5a3aec1120b93dbd157a",
@@ -3466,11 +3468,11 @@ class xt(Exchange, ImplicitAPI):
3466
3468
  address = self.safe_string(depositAddress, 'address')
3467
3469
  self.check_address(address)
3468
3470
  return {
3471
+ 'info': depositAddress,
3469
3472
  'currency': self.safe_currency_code(None, currency),
3473
+ 'network': None,
3470
3474
  'address': address,
3471
3475
  'tag': self.safe_string(depositAddress, 'memo'),
3472
- 'network': None,
3473
- 'info': depositAddress,
3474
3476
  }
3475
3477
 
3476
3478
  async def fetch_deposits(self, code: Str = None, since: Int = None, limit: Int = None, params={}):