ccxt 4.4.80__py2.py3-none-any.whl → 4.4.85__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 (104) hide show
  1. ccxt/__init__.py +1 -5
  2. ccxt/abstract/blofin.py +8 -0
  3. ccxt/abstract/btcbox.py +1 -0
  4. ccxt/apex.py +21 -30
  5. ccxt/ascendex.py +1 -1
  6. ccxt/async_support/__init__.py +1 -5
  7. ccxt/async_support/apex.py +21 -30
  8. ccxt/async_support/ascendex.py +1 -1
  9. ccxt/async_support/base/exchange.py +26 -3
  10. ccxt/async_support/base/ws/cache.py +6 -1
  11. ccxt/async_support/bigone.py +17 -14
  12. ccxt/async_support/bingx.py +13 -32
  13. ccxt/async_support/bitfinex.py +61 -48
  14. ccxt/async_support/bitget.py +7 -4
  15. ccxt/async_support/bitrue.py +14 -32
  16. ccxt/async_support/bitso.py +33 -0
  17. ccxt/async_support/bitstamp.py +33 -0
  18. ccxt/async_support/blofin.py +145 -14
  19. ccxt/async_support/btcbox.py +25 -5
  20. ccxt/async_support/bybit.py +20 -39
  21. ccxt/async_support/cex.py +2 -4
  22. ccxt/async_support/coinbase.py +56 -42
  23. ccxt/async_support/coinbaseexchange.py +141 -32
  24. ccxt/async_support/coincatch.py +14 -67
  25. ccxt/async_support/coinex.py +28 -29
  26. ccxt/async_support/coinlist.py +17 -16
  27. ccxt/async_support/coinmetro.py +20 -11
  28. ccxt/async_support/coinone.py +8 -10
  29. ccxt/async_support/coinsph.py +124 -2
  30. ccxt/async_support/cryptocom.py +109 -2
  31. ccxt/async_support/cryptomus.py +42 -80
  32. ccxt/async_support/delta.py +75 -36
  33. ccxt/async_support/derive.py +46 -10
  34. ccxt/async_support/ellipx.py +175 -77
  35. ccxt/async_support/gate.py +1 -1
  36. ccxt/async_support/gemini.py +3 -4
  37. ccxt/async_support/hitbtc.py +56 -65
  38. ccxt/async_support/htx.py +2 -2
  39. ccxt/async_support/hyperliquid.py +15 -2
  40. ccxt/async_support/kraken.py +27 -23
  41. ccxt/async_support/kucoinfutures.py +5 -0
  42. ccxt/async_support/lbank.py +1 -1
  43. ccxt/async_support/okx.py +1 -2
  44. ccxt/async_support/oxfun.py +21 -1
  45. ccxt/async_support/paradex.py +120 -4
  46. ccxt/base/errors.py +6 -0
  47. ccxt/base/exchange.py +40 -3
  48. ccxt/base/types.py +3 -0
  49. ccxt/bigone.py +17 -14
  50. ccxt/bingx.py +13 -32
  51. ccxt/bitfinex.py +61 -48
  52. ccxt/bitget.py +7 -4
  53. ccxt/bitrue.py +14 -32
  54. ccxt/bitso.py +33 -0
  55. ccxt/bitstamp.py +33 -0
  56. ccxt/blofin.py +145 -14
  57. ccxt/btcbox.py +24 -5
  58. ccxt/bybit.py +20 -39
  59. ccxt/cex.py +2 -4
  60. ccxt/coinbase.py +56 -42
  61. ccxt/coinbaseexchange.py +141 -32
  62. ccxt/coincatch.py +14 -67
  63. ccxt/coinex.py +28 -29
  64. ccxt/coinlist.py +17 -16
  65. ccxt/coinmetro.py +20 -11
  66. ccxt/coinone.py +8 -10
  67. ccxt/coinsph.py +124 -2
  68. ccxt/cryptocom.py +109 -2
  69. ccxt/cryptomus.py +42 -80
  70. ccxt/delta.py +75 -36
  71. ccxt/derive.py +46 -10
  72. ccxt/ellipx.py +175 -77
  73. ccxt/gate.py +1 -1
  74. ccxt/gemini.py +3 -4
  75. ccxt/hitbtc.py +56 -65
  76. ccxt/htx.py +2 -2
  77. ccxt/hyperliquid.py +15 -2
  78. ccxt/kraken.py +27 -23
  79. ccxt/kucoinfutures.py +5 -0
  80. ccxt/lbank.py +1 -1
  81. ccxt/okx.py +1 -2
  82. ccxt/oxfun.py +21 -1
  83. ccxt/paradex.py +120 -4
  84. ccxt/pro/__init__.py +69 -3
  85. ccxt/pro/binance.py +31 -33
  86. ccxt/pro/bithumb.py +5 -3
  87. ccxt/pro/coinbase.py +1 -1
  88. ccxt/pro/hyperliquid.py +10 -2
  89. ccxt/pro/kraken.py +249 -79
  90. ccxt/pro/mexc.py +252 -7
  91. ccxt/pro/poloniex.py +6 -2
  92. {ccxt-4.4.80.dist-info → ccxt-4.4.85.dist-info}/METADATA +7 -11
  93. {ccxt-4.4.80.dist-info → ccxt-4.4.85.dist-info}/RECORD +96 -104
  94. ccxt/abstract/bl3p.py +0 -19
  95. ccxt/abstract/idex.py +0 -26
  96. ccxt/async_support/base/ws/fast_client.py +0 -97
  97. ccxt/async_support/bl3p.py +0 -543
  98. ccxt/async_support/idex.py +0 -1889
  99. ccxt/bl3p.py +0 -543
  100. ccxt/idex.py +0 -1889
  101. ccxt/pro/idex.py +0 -687
  102. {ccxt-4.4.80.dist-info → ccxt-4.4.85.dist-info}/LICENSE.txt +0 -0
  103. {ccxt-4.4.80.dist-info → ccxt-4.4.85.dist-info}/WHEEL +0 -0
  104. {ccxt-4.4.80.dist-info → ccxt-4.4.85.dist-info}/top_level.txt +0 -0
@@ -752,6 +752,7 @@ class bitfinex(Exchange, ImplicitAPI):
752
752
  'pub:map:currency:explorer', # maps symbols to their recognised block explorer URLs
753
753
  'pub:map:currency:tx:fee', # maps currencies to their withdrawal fees https://github.com/ccxt/ccxt/issues/7745,
754
754
  'pub:map:tx:method', # maps withdrawal/deposit methods to their API symbols
755
+ 'pub:info:tx:status', # maps withdrawal/deposit statuses, coins: 1 = enabled, 0 = maintenance
755
756
  ]
756
757
  config = ','.join(labels)
757
758
  request: dict = {
@@ -834,40 +835,81 @@ class bitfinex(Exchange, ImplicitAPI):
834
835
  # ["ABS",[0,131.3]],
835
836
  # ["ADA",[0,0.3]],
836
837
  # ],
838
+ # # deposit/withdrawal data
839
+ # [
840
+ # ["BITCOIN", 1, 1, null, null, null, null, 0, 0, null, null, 3],
841
+ # ...
842
+ # ]
837
843
  # ]
838
844
  #
839
845
  indexed: dict = {
840
- 'sym': self.index_by(self.safe_value(response, 1, []), 0),
841
- 'label': self.index_by(self.safe_value(response, 2, []), 0),
842
- 'unit': self.index_by(self.safe_value(response, 3, []), 0),
843
- 'undl': self.index_by(self.safe_value(response, 4, []), 0),
844
- 'pool': self.index_by(self.safe_value(response, 5, []), 0),
845
- 'explorer': self.index_by(self.safe_value(response, 6, []), 0),
846
- 'fees': self.index_by(self.safe_value(response, 7, []), 0),
846
+ 'sym': self.index_by(self.safe_list(response, 1, []), 0),
847
+ 'label': self.index_by(self.safe_list(response, 2, []), 0),
848
+ 'unit': self.index_by(self.safe_list(response, 3, []), 0),
849
+ 'undl': self.index_by(self.safe_list(response, 4, []), 0),
850
+ 'pool': self.index_by(self.safe_list(response, 5, []), 0),
851
+ 'explorer': self.index_by(self.safe_list(response, 6, []), 0),
852
+ 'fees': self.index_by(self.safe_list(response, 7, []), 0),
853
+ 'networks': self.safe_list(response, 8, []),
854
+ 'statuses': self.index_by(self.safe_list(response, 9, []), 0),
847
855
  }
848
- ids = self.safe_value(response, 0, [])
856
+ indexedNetworks: dict = {}
857
+ for i in range(0, len(indexed['networks'])):
858
+ networkObj = indexed['networks'][i]
859
+ networkId = self.safe_string(networkObj, 0)
860
+ valuesList = self.safe_list(networkObj, 1)
861
+ networkName = self.safe_string(valuesList, 0)
862
+ # for GOlang transpiler, do with "safe" method
863
+ networksList = self.safe_list(indexedNetworks, networkName, [])
864
+ networksList.append(networkId)
865
+ indexedNetworks[networkName] = networksList
866
+ ids = self.safe_list(response, 0, [])
849
867
  result: dict = {}
850
868
  for i in range(0, len(ids)):
851
869
  id = ids[i]
852
- if id.find('F0') >= 0:
870
+ if id.endswith('F0'):
853
871
  # we get a lot of F0 currencies, skip those
854
872
  continue
855
873
  code = self.safe_currency_code(id)
856
- label = self.safe_value(indexed['label'], id, [])
874
+ label = self.safe_list(indexed['label'], id, [])
857
875
  name = self.safe_string(label, 1)
858
- pool = self.safe_value(indexed['pool'], id, [])
876
+ pool = self.safe_list(indexed['pool'], id, [])
859
877
  rawType = self.safe_string(pool, 1)
860
878
  isCryptoCoin = (rawType is not None) or (id in indexed['explorer']) # "hacky" solution
861
879
  type = None
862
880
  if isCryptoCoin:
863
881
  type = 'crypto'
864
- feeValues = self.safe_value(indexed['fees'], id, [])
865
- fees = self.safe_value(feeValues, 1, [])
882
+ feeValues = self.safe_list(indexed['fees'], id, [])
883
+ fees = self.safe_list(feeValues, 1, [])
866
884
  fee = self.safe_number(fees, 1)
867
- undl = self.safe_value(indexed['undl'], id, [])
885
+ undl = self.safe_list(indexed['undl'], id, [])
868
886
  precision = '8' # default precision, todo: fix "magic constants"
869
887
  fid = 'f' + id
870
- result[code] = {
888
+ dwStatuses = self.safe_list(indexed['statuses'], id, [])
889
+ depositEnabled = self.safe_integer(dwStatuses, 1) == 1
890
+ withdrawEnabled = self.safe_integer(dwStatuses, 2) == 1
891
+ networks: dict = {}
892
+ netwokIds = self.safe_list(indexedNetworks, id, [])
893
+ for j in range(0, len(netwokIds)):
894
+ networkId = netwokIds[j]
895
+ network = self.network_id_to_code(networkId)
896
+ networks[network] = {
897
+ 'info': networkId,
898
+ 'id': networkId.lower(),
899
+ 'network': networkId,
900
+ 'active': None,
901
+ 'deposit': None,
902
+ 'withdraw': None,
903
+ 'fee': None,
904
+ 'precision': None,
905
+ 'limits': {
906
+ 'withdraw': {
907
+ 'min': None,
908
+ 'max': None,
909
+ },
910
+ },
911
+ }
912
+ result[code] = self.safe_currency_structure({
871
913
  'id': fid,
872
914
  'uppercaseId': id,
873
915
  'code': code,
@@ -875,8 +917,8 @@ class bitfinex(Exchange, ImplicitAPI):
875
917
  'type': type,
876
918
  'name': name,
877
919
  'active': True,
878
- 'deposit': None,
879
- 'withdraw': None,
920
+ 'deposit': depositEnabled,
921
+ 'withdraw': withdrawEnabled,
880
922
  'fee': fee,
881
923
  'precision': int(precision),
882
924
  'limits': {
@@ -889,37 +931,8 @@ class bitfinex(Exchange, ImplicitAPI):
889
931
  'max': None,
890
932
  },
891
933
  },
892
- 'networks': {},
893
- }
894
- networks: dict = {}
895
- currencyNetworks = self.safe_value(response, 8, [])
896
- cleanId = id.replace('F0', '')
897
- for j in range(0, len(currencyNetworks)):
898
- pair = currencyNetworks[j]
899
- networkId = self.safe_string(pair, 0)
900
- currencyId = self.safe_string(self.safe_value(pair, 1, []), 0)
901
- if currencyId == cleanId:
902
- network = self.network_id_to_code(networkId)
903
- networks[network] = {
904
- 'info': networkId,
905
- 'id': networkId.lower(),
906
- 'network': networkId,
907
- 'active': None,
908
- 'deposit': None,
909
- 'withdraw': None,
910
- 'fee': None,
911
- 'precision': None,
912
- 'limits': {
913
- 'withdraw': {
914
- 'min': None,
915
- 'max': None,
916
- },
917
- },
918
- }
919
- keysNetworks = list(networks.keys())
920
- networksLength = len(keysNetworks)
921
- if networksLength > 0:
922
- result[code]['networks'] = networks
934
+ 'networks': networks,
935
+ })
923
936
  return result
924
937
 
925
938
  async def fetch_balance(self, params={}) -> Balances:
@@ -2072,8 +2072,7 @@ class bitget(Exchange, ImplicitAPI):
2072
2072
  chain = chains[j]
2073
2073
  networkId = self.safe_string(chain, 'chain')
2074
2074
  network = self.network_id_to_code(networkId, code)
2075
- if network is not None:
2076
- network = network.upper()
2075
+ network = network.upper()
2077
2076
  networks[network] = {
2078
2077
  'info': chain,
2079
2078
  'id': networkId,
@@ -3408,6 +3407,7 @@ class bitget(Exchange, ImplicitAPI):
3408
3407
  :param dict [params]: extra parameters specific to the exchange API endpoint
3409
3408
  :param int [params.until]: timestamp in ms of the latest candle to fetch
3410
3409
  :param boolean [params.useHistoryEndpoint]: whether to force to use historical endpoint(it has max limit of 200)
3410
+ :param boolean [params.useHistoryEndpointForPagination]: whether to force to use historical endpoint for pagination(default True)
3411
3411
  :param boolean [params.paginate]: default False, when True will automatically paginate by calling self endpoint multiple times. See in the docs all the [available parameters](https://github.com/ccxt/ccxt/wiki/Manual#pagination-params)
3412
3412
  :param str [params.price]: *swap only* "mark"(to fetch mark price candles) or "index"(to fetch index price candles)
3413
3413
  :returns int[][]: A list of candles ordered, open, high, low, close, volume
@@ -3416,11 +3416,13 @@ class bitget(Exchange, ImplicitAPI):
3416
3416
  defaultLimit = 100 # default 100, max 1000
3417
3417
  maxLimitForRecentEndpoint = 1000
3418
3418
  maxLimitForHistoryEndpoint = 200 # note, max 1000 bars are supported for "recent-candles" endpoint, but "historical-candles" support only max 200
3419
+ useHistoryEndpoint = self.safe_bool(params, 'useHistoryEndpoint', False)
3420
+ useHistoryEndpointForPagination = self.safe_bool(params, 'useHistoryEndpointForPagination', True)
3419
3421
  paginate = False
3420
3422
  paginate, params = self.handle_option_and_params(params, 'fetchOHLCV', 'paginate')
3421
3423
  if paginate:
3422
- return await self.fetch_paginated_call_deterministic('fetchOHLCV', symbol, since, limit, timeframe, params, maxLimitForRecentEndpoint)
3423
- useHistoryEndpoint = self.safe_bool(params, 'useHistoryEndpoint', False)
3424
+ limitForPagination = maxLimitForHistoryEndpoint if useHistoryEndpointForPagination else maxLimitForRecentEndpoint
3425
+ return await self.fetch_paginated_call_deterministic('fetchOHLCV', symbol, since, limit, timeframe, params, limitForPagination)
3424
3426
  market = self.market(symbol)
3425
3427
  marketType = 'spot' if market['spot'] else 'swap'
3426
3428
  timeframes = self.options['timeframes'][marketType]
@@ -4039,6 +4041,7 @@ class bitget(Exchange, ImplicitAPI):
4039
4041
  timestamp = self.safe_integer_2(order, 'cTime', 'ctime')
4040
4042
  updateTimestamp = self.safe_integer(order, 'uTime')
4041
4043
  rawStatus = self.safe_string_2(order, 'status', 'state')
4044
+ rawStatus = self.safe_string(order, 'planStatus', rawStatus)
4042
4045
  fee = None
4043
4046
  feeCostString = self.safe_string(order, 'fee')
4044
4047
  if feeCostString is not None:
@@ -783,66 +783,48 @@ class bitrue(Exchange, ImplicitAPI):
783
783
  id = self.safe_string(currency, 'coin')
784
784
  name = self.safe_string(currency, 'coinFulName')
785
785
  code = self.safe_currency_code(id)
786
- deposit = None
787
- withdraw = None
788
- minWithdrawString = None
789
- maxWithdrawString = None
790
- minWithdrawFeeString = None
791
786
  networkDetails = self.safe_list(currency, 'chainDetail', [])
792
787
  networks: dict = {}
793
788
  for j in range(0, len(networkDetails)):
794
789
  entry = networkDetails[j]
795
790
  networkId = self.safe_string(entry, 'chain')
796
791
  network = self.network_id_to_code(networkId, code)
797
- enableDeposit = self.safe_bool(entry, 'enableDeposit')
798
- deposit = enableDeposit if (enableDeposit) else deposit
799
- enableWithdraw = self.safe_bool(entry, 'enableWithdraw')
800
- withdraw = enableWithdraw if (enableWithdraw) else withdraw
801
- networkWithdrawFeeString = self.safe_string(entry, 'withdrawFee')
802
- if networkWithdrawFeeString is not None:
803
- minWithdrawFeeString = networkWithdrawFeeString if (minWithdrawFeeString is None) else Precise.string_min(networkWithdrawFeeString, minWithdrawFeeString)
804
- networkMinWithdrawString = self.safe_string(entry, 'minWithdraw')
805
- if networkMinWithdrawString is not None:
806
- minWithdrawString = networkMinWithdrawString if (minWithdrawString is None) else Precise.string_min(networkMinWithdrawString, minWithdrawString)
807
- networkMaxWithdrawString = self.safe_string(entry, 'maxWithdraw')
808
- if networkMaxWithdrawString is not None:
809
- maxWithdrawString = networkMaxWithdrawString if (maxWithdrawString is None) else Precise.string_max(networkMaxWithdrawString, maxWithdrawString)
810
792
  networks[network] = {
811
793
  'info': entry,
812
794
  'id': networkId,
813
795
  'network': network,
814
- 'deposit': enableDeposit,
815
- 'withdraw': enableWithdraw,
816
- 'active': enableDeposit and enableWithdraw,
817
- 'fee': self.parse_number(networkWithdrawFeeString),
796
+ 'deposit': self.safe_bool(entry, 'enableDeposit'),
797
+ 'withdraw': self.safe_bool(entry, 'enableWithdraw'),
798
+ 'active': None,
799
+ 'fee': self.safe_number(entry, 'withdrawFee'),
818
800
  'precision': None,
819
801
  'limits': {
820
802
  'withdraw': {
821
- 'min': self.parse_number(networkMinWithdrawString),
822
- 'max': self.parse_number(networkMaxWithdrawString),
803
+ 'min': self.safe_number(entry, 'minWithdraw'),
804
+ 'max': self.safe_number(entry, 'maxWithdraw'),
823
805
  },
824
806
  },
825
807
  }
826
- result[code] = {
808
+ result[code] = self.safe_currency_structure({
827
809
  'id': id,
828
810
  'name': name,
829
811
  'code': code,
830
812
  'precision': None,
831
813
  'info': currency,
832
- 'active': deposit and withdraw,
833
- 'deposit': deposit,
834
- 'withdraw': withdraw,
814
+ 'active': None,
815
+ 'deposit': None,
816
+ 'withdraw': None,
835
817
  'networks': networks,
836
- 'fee': self.parse_number(minWithdrawFeeString),
818
+ 'fee': None,
837
819
  'fees': None,
838
820
  'type': 'crypto',
839
821
  'limits': {
840
822
  'withdraw': {
841
- 'min': self.parse_number(minWithdrawString),
842
- 'max': self.parse_number(maxWithdrawString),
823
+ 'min': None,
824
+ 'max': None,
843
825
  },
844
826
  },
845
- }
827
+ })
846
828
  return result
847
829
 
848
830
  async def fetch_markets(self, params={}) -> List[Market]:
@@ -36,6 +36,9 @@ class bitso(Exchange, ImplicitAPI):
36
36
  'future': False,
37
37
  'option': False,
38
38
  'addMargin': False,
39
+ 'borrowCrossMargin': False,
40
+ 'borrowIsolatedMargin': False,
41
+ 'borrowMargin': False,
39
42
  'cancelAllOrders': True,
40
43
  'cancelOrder': True,
41
44
  'cancelOrders': True,
@@ -43,11 +46,17 @@ class bitso(Exchange, ImplicitAPI):
43
46
  'closePosition': False,
44
47
  'createDepositAddress': False,
45
48
  'createOrder': True,
49
+ 'createOrderWithTakeProfitAndStopLoss': False,
50
+ 'createOrderWithTakeProfitAndStopLossWs': False,
46
51
  'createReduceOnlyOrder': False,
47
52
  'fetchAccounts': False,
48
53
  'fetchBalance': True,
54
+ 'fetchBorrowInterest': False,
55
+ 'fetchBorrowRate': False,
49
56
  'fetchBorrowRateHistories': False,
50
57
  'fetchBorrowRateHistory': False,
58
+ 'fetchBorrowRates': False,
59
+ 'fetchBorrowRatesPerSymbol': False,
51
60
  'fetchCrossBorrowRate': False,
52
61
  'fetchCrossBorrowRates': False,
53
62
  'fetchDeposit': True,
@@ -59,21 +68,40 @@ class bitso(Exchange, ImplicitAPI):
59
68
  'fetchDepositWithdrawFee': 'emulated',
60
69
  'fetchDepositWithdrawFees': True,
61
70
  'fetchFundingHistory': False,
71
+ 'fetchFundingInterval': False,
72
+ 'fetchFundingIntervals': False,
62
73
  'fetchFundingRate': False,
63
74
  'fetchFundingRateHistory': False,
64
75
  'fetchFundingRates': False,
76
+ 'fetchGreeks': False,
65
77
  'fetchIndexOHLCV': False,
66
78
  'fetchIsolatedBorrowRate': False,
67
79
  'fetchIsolatedBorrowRates': False,
80
+ 'fetchIsolatedPositions': False,
68
81
  'fetchLedger': True,
69
82
  'fetchLeverage': False,
83
+ 'fetchLeverages': False,
84
+ 'fetchLeverageTiers': False,
85
+ 'fetchLiquidations': False,
86
+ 'fetchLongShortRatio': False,
87
+ 'fetchLongShortRatioHistory': False,
88
+ 'fetchMarginAdjustmentHistory': False,
70
89
  'fetchMarginMode': False,
90
+ 'fetchMarginModes': False,
91
+ 'fetchMarketLeverageTiers': False,
71
92
  'fetchMarkets': True,
72
93
  'fetchMarkOHLCV': False,
94
+ 'fetchMarkPrices': False,
95
+ 'fetchMyLiquidations': False,
96
+ 'fetchMySettlementHistory': False,
73
97
  'fetchMyTrades': True,
74
98
  'fetchOHLCV': True,
99
+ 'fetchOpenInterest': False,
75
100
  'fetchOpenInterestHistory': False,
101
+ 'fetchOpenInterests': False,
76
102
  'fetchOpenOrders': True,
103
+ 'fetchOption': False,
104
+ 'fetchOptionChain': False,
77
105
  'fetchOrder': True,
78
106
  'fetchOrderBook': True,
79
107
  'fetchOrderTrades': True,
@@ -85,6 +113,7 @@ class bitso(Exchange, ImplicitAPI):
85
113
  'fetchPositionsHistory': False,
86
114
  'fetchPositionsRisk': False,
87
115
  'fetchPremiumIndexOHLCV': False,
116
+ 'fetchSettlementHistory': False,
88
117
  'fetchTicker': True,
89
118
  'fetchTickers': False,
90
119
  'fetchTime': False,
@@ -96,8 +125,12 @@ class bitso(Exchange, ImplicitAPI):
96
125
  'fetchTransactions': False,
97
126
  'fetchTransfer': False,
98
127
  'fetchTransfers': False,
128
+ 'fetchVolatilityHistory': False,
99
129
  'reduceMargin': False,
130
+ 'repayCrossMargin': False,
131
+ 'repayIsolatedMargin': False,
100
132
  'setLeverage': False,
133
+ 'setMargin': False,
101
134
  'setMarginMode': False,
102
135
  'setPositionMode': False,
103
136
  'transfer': False,
@@ -44,18 +44,27 @@ class bitstamp(Exchange, ImplicitAPI):
44
44
  'future': False,
45
45
  'option': False,
46
46
  'addMargin': False,
47
+ 'borrowCrossMargin': False,
48
+ 'borrowIsolatedMargin': False,
49
+ 'borrowMargin': False,
47
50
  'cancelAllOrders': True,
48
51
  'cancelOrder': True,
49
52
  'closeAllPositions': False,
50
53
  'closePosition': False,
51
54
  'createOrder': True,
55
+ 'createOrderWithTakeProfitAndStopLoss': False,
56
+ 'createOrderWithTakeProfitAndStopLossWs': False,
52
57
  'createReduceOnlyOrder': False,
53
58
  'createStopLimitOrder': False,
54
59
  'createStopMarketOrder': False,
55
60
  'createStopOrder': False,
56
61
  'fetchBalance': True,
62
+ 'fetchBorrowInterest': False,
63
+ 'fetchBorrowRate': False,
57
64
  'fetchBorrowRateHistories': False,
58
65
  'fetchBorrowRateHistory': False,
66
+ 'fetchBorrowRates': False,
67
+ 'fetchBorrowRatesPerSymbol': False,
59
68
  'fetchCrossBorrowRate': False,
60
69
  'fetchCrossBorrowRates': False,
61
70
  'fetchCurrencies': True,
@@ -66,21 +75,40 @@ class bitstamp(Exchange, ImplicitAPI):
66
75
  'fetchDepositWithdrawFee': 'emulated',
67
76
  'fetchDepositWithdrawFees': True,
68
77
  'fetchFundingHistory': False,
78
+ 'fetchFundingInterval': False,
79
+ 'fetchFundingIntervals': False,
69
80
  'fetchFundingRate': False,
70
81
  'fetchFundingRateHistory': False,
71
82
  'fetchFundingRates': False,
83
+ 'fetchGreeks': False,
72
84
  'fetchIndexOHLCV': False,
73
85
  'fetchIsolatedBorrowRate': False,
74
86
  'fetchIsolatedBorrowRates': False,
87
+ 'fetchIsolatedPositions': False,
75
88
  'fetchLedger': True,
76
89
  'fetchLeverage': False,
90
+ 'fetchLeverages': False,
91
+ 'fetchLeverageTiers': False,
92
+ 'fetchLiquidations': False,
93
+ 'fetchLongShortRatio': False,
94
+ 'fetchLongShortRatioHistory': False,
95
+ 'fetchMarginAdjustmentHistory': False,
77
96
  'fetchMarginMode': False,
97
+ 'fetchMarginModes': False,
98
+ 'fetchMarketLeverageTiers': False,
78
99
  'fetchMarkets': True,
79
100
  'fetchMarkOHLCV': False,
101
+ 'fetchMarkPrices': False,
102
+ 'fetchMyLiquidations': False,
103
+ 'fetchMySettlementHistory': False,
80
104
  'fetchMyTrades': True,
81
105
  'fetchOHLCV': True,
106
+ 'fetchOpenInterest': False,
82
107
  'fetchOpenInterestHistory': False,
108
+ 'fetchOpenInterests': False,
83
109
  'fetchOpenOrders': True,
110
+ 'fetchOption': False,
111
+ 'fetchOptionChain': False,
84
112
  'fetchOrder': True,
85
113
  'fetchOrderBook': True,
86
114
  'fetchPosition': False,
@@ -91,6 +119,7 @@ class bitstamp(Exchange, ImplicitAPI):
91
119
  'fetchPositionsHistory': False,
92
120
  'fetchPositionsRisk': False,
93
121
  'fetchPremiumIndexOHLCV': False,
122
+ 'fetchSettlementHistory': False,
94
123
  'fetchTicker': True,
95
124
  'fetchTickers': True,
96
125
  'fetchTrades': True,
@@ -98,9 +127,13 @@ class bitstamp(Exchange, ImplicitAPI):
98
127
  'fetchTradingFees': True,
99
128
  'fetchTransactionFees': True,
100
129
  'fetchTransactions': 'emulated',
130
+ 'fetchVolatilityHistory': False,
101
131
  'fetchWithdrawals': True,
102
132
  'reduceMargin': False,
133
+ 'repayCrossMargin': False,
134
+ 'repayIsolatedMargin': False,
103
135
  'setLeverage': False,
136
+ 'setMargin': False,
104
137
  'setMarginMode': False,
105
138
  'setPositionMode': False,
106
139
  'transfer': True,