ccxt 4.4.15__py2.py3-none-any.whl → 4.4.17__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 (149) hide show
  1. ccxt/__init__.py +1 -1
  2. ccxt/abstract/mexc.py +1 -0
  3. ccxt/ascendex.py +5 -5
  4. ccxt/async_support/__init__.py +1 -1
  5. ccxt/async_support/ascendex.py +5 -5
  6. ccxt/async_support/base/exchange.py +1 -1
  7. ccxt/async_support/bigone.py +6 -4
  8. ccxt/async_support/binance.py +66 -10
  9. ccxt/async_support/bingx.py +61 -6
  10. ccxt/async_support/bit2c.py +6 -4
  11. ccxt/async_support/bitbank.py +6 -4
  12. ccxt/async_support/bitbns.py +6 -4
  13. ccxt/async_support/bitfinex.py +4 -2
  14. ccxt/async_support/bitfinex2.py +4 -2
  15. ccxt/async_support/bitget.py +6 -5
  16. ccxt/async_support/bitmart.py +5 -4
  17. ccxt/async_support/bitmex.py +4 -4
  18. ccxt/async_support/bitso.py +5 -4
  19. ccxt/async_support/bitstamp.py +6 -4
  20. ccxt/async_support/bitvavo.py +8 -6
  21. ccxt/async_support/blockchaincom.py +11 -8
  22. ccxt/async_support/blofin.py +21 -0
  23. ccxt/async_support/bybit.py +12 -9
  24. ccxt/async_support/cex.py +5 -4
  25. ccxt/async_support/coinbase.py +4 -4
  26. ccxt/async_support/coinbaseinternational.py +4 -8
  27. ccxt/async_support/coinex.py +5 -5
  28. ccxt/async_support/coinone.py +6 -3
  29. ccxt/async_support/coinsph.py +5 -5
  30. ccxt/async_support/cryptocom.py +5 -4
  31. ccxt/async_support/currencycom.py +5 -5
  32. ccxt/async_support/delta.py +7 -5
  33. ccxt/async_support/deribit.py +6 -4
  34. ccxt/async_support/digifinex.py +6 -4
  35. ccxt/async_support/exmo.py +6 -4
  36. ccxt/async_support/gate.py +5 -4
  37. ccxt/async_support/gemini.py +4 -3
  38. ccxt/async_support/hashkey.py +7 -5
  39. ccxt/async_support/hitbtc.py +6 -5
  40. ccxt/async_support/hollaex.py +6 -5
  41. ccxt/async_support/htx.py +15 -5
  42. ccxt/async_support/hyperliquid.py +8 -7
  43. ccxt/async_support/idex.py +4 -4
  44. ccxt/async_support/independentreserve.py +4 -4
  45. ccxt/async_support/indodax.py +3 -3
  46. ccxt/async_support/kraken.py +7 -5
  47. ccxt/async_support/kucoin.py +6 -5
  48. ccxt/async_support/kucoinfutures.py +5 -3
  49. ccxt/async_support/kuna.py +9 -15
  50. ccxt/async_support/lbank.py +14 -12
  51. ccxt/async_support/lykke.py +6 -4
  52. ccxt/async_support/mexc.py +7 -6
  53. ccxt/async_support/ndax.py +33 -5
  54. ccxt/async_support/oceanex.py +4 -4
  55. ccxt/async_support/okcoin.py +8 -6
  56. ccxt/async_support/okx.py +50 -7
  57. ccxt/async_support/onetrading.py +6 -5
  58. ccxt/async_support/oxfun.py +6 -6
  59. ccxt/async_support/paymium.py +6 -5
  60. ccxt/async_support/phemex.py +8 -6
  61. ccxt/async_support/poloniex.py +6 -4
  62. ccxt/async_support/probit.py +7 -6
  63. ccxt/async_support/timex.py +8 -12
  64. ccxt/async_support/tokocrypto.py +5 -5
  65. ccxt/async_support/upbit.py +7 -6
  66. ccxt/async_support/wavesexchange.py +9 -9
  67. ccxt/async_support/wazirx.py +24 -4
  68. ccxt/async_support/whitebit.py +6 -4
  69. ccxt/async_support/woo.py +6 -4
  70. ccxt/async_support/xt.py +7 -5
  71. ccxt/async_support/yobit.py +32 -23
  72. ccxt/async_support/zonda.py +31 -6
  73. ccxt/base/exchange.py +14 -2
  74. ccxt/base/types.py +8 -0
  75. ccxt/bigone.py +6 -4
  76. ccxt/binance.py +66 -10
  77. ccxt/bingx.py +61 -6
  78. ccxt/bit2c.py +6 -4
  79. ccxt/bitbank.py +6 -4
  80. ccxt/bitbns.py +6 -4
  81. ccxt/bitfinex.py +4 -2
  82. ccxt/bitfinex2.py +4 -2
  83. ccxt/bitget.py +6 -5
  84. ccxt/bitmart.py +5 -4
  85. ccxt/bitmex.py +4 -4
  86. ccxt/bitso.py +5 -4
  87. ccxt/bitstamp.py +6 -4
  88. ccxt/bitvavo.py +8 -6
  89. ccxt/blockchaincom.py +11 -8
  90. ccxt/blofin.py +21 -0
  91. ccxt/bybit.py +12 -9
  92. ccxt/cex.py +5 -4
  93. ccxt/coinbase.py +4 -4
  94. ccxt/coinbaseinternational.py +4 -8
  95. ccxt/coinex.py +5 -5
  96. ccxt/coinone.py +6 -3
  97. ccxt/coinsph.py +5 -5
  98. ccxt/cryptocom.py +5 -4
  99. ccxt/currencycom.py +5 -5
  100. ccxt/delta.py +7 -5
  101. ccxt/deribit.py +6 -4
  102. ccxt/digifinex.py +6 -4
  103. ccxt/exmo.py +6 -4
  104. ccxt/gate.py +5 -4
  105. ccxt/gemini.py +4 -3
  106. ccxt/hashkey.py +7 -5
  107. ccxt/hitbtc.py +6 -5
  108. ccxt/hollaex.py +6 -5
  109. ccxt/htx.py +15 -5
  110. ccxt/hyperliquid.py +8 -7
  111. ccxt/idex.py +4 -4
  112. ccxt/independentreserve.py +4 -4
  113. ccxt/indodax.py +3 -3
  114. ccxt/kraken.py +7 -5
  115. ccxt/kucoin.py +6 -5
  116. ccxt/kucoinfutures.py +5 -3
  117. ccxt/kuna.py +9 -15
  118. ccxt/lbank.py +14 -12
  119. ccxt/lykke.py +6 -4
  120. ccxt/mexc.py +7 -6
  121. ccxt/ndax.py +33 -5
  122. ccxt/oceanex.py +4 -4
  123. ccxt/okcoin.py +8 -6
  124. ccxt/okx.py +50 -7
  125. ccxt/onetrading.py +6 -5
  126. ccxt/oxfun.py +6 -6
  127. ccxt/paymium.py +6 -5
  128. ccxt/phemex.py +8 -6
  129. ccxt/poloniex.py +6 -4
  130. ccxt/pro/__init__.py +1 -1
  131. ccxt/pro/bitvavo.py +1 -1
  132. ccxt/probit.py +7 -6
  133. ccxt/test/tests_async.py +1 -0
  134. ccxt/test/tests_sync.py +1 -0
  135. ccxt/timex.py +8 -12
  136. ccxt/tokocrypto.py +5 -5
  137. ccxt/upbit.py +7 -6
  138. ccxt/wavesexchange.py +9 -9
  139. ccxt/wazirx.py +24 -4
  140. ccxt/whitebit.py +6 -4
  141. ccxt/woo.py +6 -4
  142. ccxt/xt.py +7 -5
  143. ccxt/yobit.py +32 -23
  144. ccxt/zonda.py +31 -6
  145. {ccxt-4.4.15.dist-info → ccxt-4.4.17.dist-info}/METADATA +4 -4
  146. {ccxt-4.4.15.dist-info → ccxt-4.4.17.dist-info}/RECORD +149 -149
  147. {ccxt-4.4.15.dist-info → ccxt-4.4.17.dist-info}/LICENSE.txt +0 -0
  148. {ccxt-4.4.15.dist-info → ccxt-4.4.17.dist-info}/WHEEL +0 -0
  149. {ccxt-4.4.15.dist-info → ccxt-4.4.17.dist-info}/top_level.txt +0 -0
@@ -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={}):
@@ -7,7 +7,7 @@ from ccxt.async_support.base.exchange import Exchange
7
7
  from ccxt.abstract.yobit import ImplicitAPI
8
8
  import asyncio
9
9
  import hashlib
10
- from ccxt.base.types import Balances, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFees
10
+ from ccxt.base.types import Balances, DepositAddress, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFees
11
11
  from typing import List
12
12
  from ccxt.base.errors import ExchangeError
13
13
  from ccxt.base.errors import AuthenticationError
@@ -52,27 +52,48 @@ class yobit(Exchange, ImplicitAPI):
52
52
  'createStopMarketOrder': False,
53
53
  'createStopOrder': False,
54
54
  'fetchBalance': True,
55
+ 'fetchBorrowInterest': False,
56
+ 'fetchBorrowRate': False,
55
57
  'fetchBorrowRateHistories': False,
56
58
  'fetchBorrowRateHistory': False,
59
+ 'fetchBorrowRates': False,
60
+ 'fetchBorrowRatesPerSymbol': False,
57
61
  'fetchCrossBorrowRate': False,
58
62
  'fetchCrossBorrowRates': False,
59
63
  'fetchDepositAddress': True,
64
+ 'fetchDepositAddresses': False,
65
+ 'fetchDepositAddressesByNetwork': False,
60
66
  'fetchDeposits': False,
61
67
  'fetchFundingHistory': False,
68
+ 'fetchFundingInterval': False,
69
+ 'fetchFundingIntervals': False,
62
70
  'fetchFundingRate': False,
63
71
  'fetchFundingRateHistory': False,
64
72
  'fetchFundingRates': False,
73
+ 'fetchGreeks': False,
65
74
  'fetchIndexOHLCV': False,
66
75
  'fetchIsolatedBorrowRate': False,
67
76
  'fetchIsolatedBorrowRates': False,
77
+ 'fetchIsolatedPositions': False,
68
78
  'fetchLeverage': False,
79
+ 'fetchLeverages': False,
69
80
  'fetchLeverageTiers': False,
81
+ 'fetchLiquidations': False,
82
+ 'fetchMarginAdjustmentHistory': False,
70
83
  'fetchMarginMode': False,
84
+ 'fetchMarginModes': False,
85
+ 'fetchMarketLeverageTiers': False,
71
86
  'fetchMarkets': True,
72
87
  'fetchMarkOHLCV': False,
88
+ 'fetchMarkPrices': False,
89
+ 'fetchMyLiquidations': False,
90
+ 'fetchMySettlementHistory': False,
73
91
  'fetchMyTrades': True,
92
+ 'fetchOpenInterest': False,
74
93
  'fetchOpenInterestHistory': False,
75
94
  'fetchOpenOrders': True,
95
+ 'fetchOption': False,
96
+ 'fetchOptionChain': False,
76
97
  'fetchOrder': True,
77
98
  'fetchOrderBook': True,
78
99
  'fetchOrderBooks': True,
@@ -84,6 +105,7 @@ class yobit(Exchange, ImplicitAPI):
84
105
  'fetchPositionsHistory': False,
85
106
  'fetchPositionsRisk': False,
86
107
  'fetchPremiumIndexOHLCV': False,
108
+ 'fetchSettlementHistory': False,
87
109
  'fetchTicker': True,
88
110
  'fetchTickers': True,
89
111
  'fetchTrades': True,
@@ -92,9 +114,14 @@ class yobit(Exchange, ImplicitAPI):
92
114
  'fetchTransactions': False,
93
115
  'fetchTransfer': False,
94
116
  'fetchTransfers': False,
117
+ 'fetchUnderlyingAssets': False,
118
+ 'fetchVolatilityHistory': False,
95
119
  'fetchWithdrawals': False,
96
120
  'reduceMargin': False,
121
+ 'repayCrossMargin': False,
122
+ 'repayIsolatedMargin': False,
97
123
  'setLeverage': False,
124
+ 'setMargin': False,
98
125
  'setMarginMode': False,
99
126
  'setPositionMode': False,
100
127
  'transfer': False,
@@ -1126,10 +1153,10 @@ class yobit(Exchange, ImplicitAPI):
1126
1153
  'info': response['info'],
1127
1154
  }
1128
1155
 
1129
- async def fetch_deposit_address(self, code: str, params={}):
1156
+ async def fetch_deposit_address(self, code: str, params={}) -> DepositAddress:
1130
1157
  """
1131
- :see: https://yobit.net/en/api
1132
1158
  fetch the deposit address for a currency associated with self account
1159
+ :see: https://yobit.net/en/api
1133
1160
  :param str code: unified currency code
1134
1161
  :param dict [params]: extra parameters specific to the exchange API endpoint
1135
1162
  :returns dict: an `address structure <https://docs.ccxt.com/#/?id=address-structure>`
@@ -1152,29 +1179,11 @@ class yobit(Exchange, ImplicitAPI):
1152
1179
  address = self.safe_string(response['return'], 'address')
1153
1180
  self.check_address(address)
1154
1181
  return {
1155
- 'id': None,
1182
+ 'info': response,
1156
1183
  'currency': code,
1184
+ 'network': None,
1157
1185
  'address': address,
1158
1186
  'tag': None,
1159
- 'network': None,
1160
- 'info': response,
1161
- 'txid': None,
1162
- 'type': None,
1163
- 'amount': None,
1164
- 'status': None,
1165
- 'timestamp': None,
1166
- 'datetime': None,
1167
- 'addressFrom': None,
1168
- 'addressTo': None,
1169
- 'tagFrom': None,
1170
- 'tagTo': None,
1171
- 'updated': None,
1172
- 'comment': None,
1173
- 'fee': {
1174
- 'currency': None,
1175
- 'cost': None,
1176
- 'rate': None,
1177
- },
1178
1187
  }
1179
1188
 
1180
1189
  async def withdraw(self, code: str, amount: float, address: str, tag=None, params={}):
@@ -6,7 +6,7 @@
6
6
  from ccxt.async_support.base.exchange import Exchange
7
7
  from ccxt.abstract.zonda import ImplicitAPI
8
8
  import hashlib
9
- from ccxt.base.types import Balances, Currency, Int, LedgerEntry, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, TransferEntry
9
+ from ccxt.base.types import Balances, Currency, DepositAddress, Int, LedgerEntry, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, TransferEntry
10
10
  from typing import List
11
11
  from ccxt.base.errors import ExchangeError
12
12
  from ccxt.base.errors import AuthenticationError
@@ -50,32 +50,52 @@ class zonda(Exchange, ImplicitAPI):
50
50
  'createOrder': True,
51
51
  'createReduceOnlyOrder': False,
52
52
  'fetchBalance': True,
53
+ 'fetchBorrowInterest': False,
54
+ 'fetchBorrowRate': False,
53
55
  'fetchBorrowRateHistories': False,
54
56
  'fetchBorrowRateHistory': False,
57
+ 'fetchBorrowRates': False,
58
+ 'fetchBorrowRatesPerSymbol': False,
55
59
  'fetchCrossBorrowRate': False,
56
60
  'fetchCrossBorrowRates': False,
57
61
  'fetchDeposit': False,
58
62
  'fetchDepositAddress': True,
59
63
  'fetchDepositAddresses': True,
64
+ 'fetchDepositAddressesByNetwork': False,
60
65
  'fetchDeposits': None,
61
66
  'fetchFundingHistory': False,
67
+ 'fetchFundingInterval': False,
68
+ 'fetchFundingIntervals': False,
62
69
  'fetchFundingRate': False,
63
70
  'fetchFundingRateHistory': False,
64
71
  'fetchFundingRates': False,
72
+ 'fetchGreeks': False,
65
73
  'fetchIndexOHLCV': False,
66
74
  'fetchIsolatedBorrowRate': False,
67
75
  'fetchIsolatedBorrowRates': False,
76
+ 'fetchIsolatedPositions': False,
68
77
  'fetchLedger': True,
69
78
  'fetchLeverage': False,
79
+ 'fetchLeverages': False,
70
80
  'fetchLeverageTiers': False,
81
+ 'fetchLiquidations': False,
82
+ 'fetchMarginAdjustmentHistory': False,
71
83
  'fetchMarginMode': False,
84
+ 'fetchMarginModes': False,
85
+ 'fetchMarketLeverageTiers': False,
72
86
  'fetchMarkets': True,
73
87
  'fetchMarkOHLCV': False,
88
+ 'fetchMarkPrices': False,
89
+ 'fetchMyLiquidations': False,
90
+ 'fetchMySettlementHistory': False,
74
91
  'fetchMyTrades': True,
75
92
  'fetchOHLCV': True,
93
+ 'fetchOpenInterest': False,
76
94
  'fetchOpenInterestHistory': False,
77
95
  'fetchOpenOrder': False,
78
96
  'fetchOpenOrders': True,
97
+ 'fetchOption': False,
98
+ 'fetchOptionChain': False,
79
99
  'fetchOrderBook': True,
80
100
  'fetchOrderBooks': False,
81
101
  'fetchPosition': False,
@@ -83,6 +103,7 @@ class zonda(Exchange, ImplicitAPI):
83
103
  'fetchPositions': False,
84
104
  'fetchPositionsRisk': False,
85
105
  'fetchPremiumIndexOHLCV': False,
106
+ 'fetchSettlementHistory': False,
86
107
  'fetchTicker': True,
87
108
  'fetchTickers': True,
88
109
  'fetchTime': False,
@@ -93,9 +114,13 @@ class zonda(Exchange, ImplicitAPI):
93
114
  'fetchTransactionFees': False,
94
115
  'fetchTransactions': None,
95
116
  'fetchTransfer': False,
117
+ 'fetchUnderlyingAssets': False,
118
+ 'fetchVolatilityHistory': False,
96
119
  'fetchWithdrawal': False,
97
120
  'fetchWithdrawals': None,
98
121
  'reduceMargin': False,
122
+ 'repayCrossMargin': False,
123
+ 'repayIsolatedMargin': False,
99
124
  'setLeverage': False,
100
125
  'setMargin': False,
101
126
  'setMarginMode': False,
@@ -1476,7 +1501,7 @@ class zonda(Exchange, ImplicitAPI):
1476
1501
  }
1477
1502
  return self.safe_bool(fiatCurrencies, currency, False)
1478
1503
 
1479
- def parse_deposit_address(self, depositAddress, currency: Currency = None):
1504
+ def parse_deposit_address(self, depositAddress, currency: Currency = None) -> DepositAddress:
1480
1505
  #
1481
1506
  # {
1482
1507
  # "address": "33u5YAEhQbYfjHHPsfMfCoSdEjfwYjVcBE",
@@ -1490,14 +1515,14 @@ class zonda(Exchange, ImplicitAPI):
1490
1515
  address = self.safe_string(depositAddress, 'address')
1491
1516
  self.check_address(address)
1492
1517
  return {
1518
+ 'info': depositAddress,
1493
1519
  'currency': self.safe_currency_code(currencyId, currency),
1520
+ 'network': None,
1494
1521
  'address': address,
1495
1522
  'tag': self.safe_string(depositAddress, 'tag'),
1496
- 'network': None,
1497
- 'info': depositAddress,
1498
1523
  }
1499
1524
 
1500
- async def fetch_deposit_address(self, code: str, params={}):
1525
+ async def fetch_deposit_address(self, code: str, params={}) -> DepositAddress:
1501
1526
  """
1502
1527
  :see: https://docs.zondacrypto.exchange/reference/deposit-addresses-for-crypto
1503
1528
  fetch the deposit address for a currency associated with self account
@@ -1529,7 +1554,7 @@ class zonda(Exchange, ImplicitAPI):
1529
1554
  first = self.safe_dict(data, 0)
1530
1555
  return self.parse_deposit_address(first, currency)
1531
1556
 
1532
- async def fetch_deposit_addresses(self, codes: Strings = None, params={}):
1557
+ async def fetch_deposit_addresses(self, codes: Strings = None, params={}) -> List[DepositAddress]:
1533
1558
  """
1534
1559
  :see: https://docs.zondacrypto.exchange/reference/deposit-addresses-for-crypto
1535
1560
  fetch deposit addresses for multiple currencies and chain types
ccxt/base/exchange.py CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.4.15'
7
+ __version__ = '4.4.17'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -2491,6 +2491,18 @@ class Exchange(object):
2491
2491
  def fetch_trading_limits(self, symbols: Strings = None, params={}):
2492
2492
  raise NotSupported(self.id + ' fetchTradingLimits() is not supported yet')
2493
2493
 
2494
+ def parse_currency(self, rawCurrency: dict):
2495
+ raise NotSupported(self.id + ' parseCurrency() is not supported yet')
2496
+
2497
+ def parse_currencies(self, rawCurrencies):
2498
+ result = {}
2499
+ arr = self.to_array(rawCurrencies)
2500
+ for i in range(0, len(arr)):
2501
+ parsed = self.parse_currency(arr[i])
2502
+ code = parsed['code']
2503
+ result[code] = parsed
2504
+ return result
2505
+
2494
2506
  def parse_market(self, market: dict):
2495
2507
  raise NotSupported(self.id + ' parseMarket() is not supported yet')
2496
2508
 
@@ -5423,7 +5435,7 @@ class Exchange(object):
5423
5435
  if codes is not None:
5424
5436
  result = self.filter_by_array(result, 'currency', codes, False)
5425
5437
  if indexed:
5426
- return self.index_by(result, 'currency')
5438
+ result = self.filter_by_array(result, 'currency', None, indexed)
5427
5439
  return result
5428
5440
 
5429
5441
  def parse_borrow_interests(self, response, market: Market = None):
ccxt/base/types.py CHANGED
@@ -514,6 +514,14 @@ class LedgerEntry:
514
514
  fee: Fee
515
515
 
516
516
 
517
+ class DepositAddress:
518
+ info: Any
519
+ currency: Str
520
+ network: Optional[Str]
521
+ address: Str
522
+ tag: Optional[Str]
523
+
524
+
517
525
  FundingRates = Dict[Str, FundingRate]
518
526
  LastPrices = Dict[Str, LastPrice]
519
527
  Currencies = Dict[Str, CurrencyInterface]
ccxt/bigone.py CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  from ccxt.base.exchange import Exchange
7
7
  from ccxt.abstract.bigone import ImplicitAPI
8
- from ccxt.base.types import Balances, Bool, Currencies, Currency, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, TransferEntry
8
+ from ccxt.base.types import Balances, Bool, Currencies, Currency, DepositAddress, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, TransferEntry
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,8 @@ class bigone(Exchange, ImplicitAPI):
51
51
  'fetchClosedOrders': True,
52
52
  'fetchCurrencies': True,
53
53
  'fetchDepositAddress': True,
54
+ 'fetchDepositAddresses': False,
55
+ 'fetchDepositAddressesByNetwork': False,
54
56
  'fetchDeposits': True,
55
57
  'fetchFundingRate': False,
56
58
  'fetchMarkets': True,
@@ -1700,7 +1702,7 @@ class bigone(Exchange, ImplicitAPI):
1700
1702
  headers['User-Agent'] = 'ccxt/' + self.id + '-' + self.version
1701
1703
  return {'url': url, 'method': method, 'body': body, 'headers': headers}
1702
1704
 
1703
- def fetch_deposit_address(self, code: str, params={}):
1705
+ 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://open.big.one/docs/spot_deposit.html#get-deposite-address-of-one-asset-of-user
@@ -1743,11 +1745,11 @@ class bigone(Exchange, ImplicitAPI):
1743
1745
  tag = self.safe_string(addressObject, 'memo')
1744
1746
  self.check_address(address)
1745
1747
  return {
1748
+ 'info': response,
1746
1749
  'currency': code,
1750
+ 'network': self.network_id_to_code(selectedNetworkId),
1747
1751
  'address': address,
1748
1752
  'tag': tag,
1749
- 'network': self.network_id_to_code(selectedNetworkId),
1750
- 'info': response,
1751
1753
  }
1752
1754
 
1753
1755
  def parse_transaction_status(self, status: Str):