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
ccxt/bitfinex.py CHANGED
@@ -751,6 +751,7 @@ class bitfinex(Exchange, ImplicitAPI):
751
751
  'pub:map:currency:explorer', # maps symbols to their recognised block explorer URLs
752
752
  'pub:map:currency:tx:fee', # maps currencies to their withdrawal fees https://github.com/ccxt/ccxt/issues/7745,
753
753
  'pub:map:tx:method', # maps withdrawal/deposit methods to their API symbols
754
+ 'pub:info:tx:status', # maps withdrawal/deposit statuses, coins: 1 = enabled, 0 = maintenance
754
755
  ]
755
756
  config = ','.join(labels)
756
757
  request: dict = {
@@ -833,40 +834,81 @@ class bitfinex(Exchange, ImplicitAPI):
833
834
  # ["ABS",[0,131.3]],
834
835
  # ["ADA",[0,0.3]],
835
836
  # ],
837
+ # # deposit/withdrawal data
838
+ # [
839
+ # ["BITCOIN", 1, 1, null, null, null, null, 0, 0, null, null, 3],
840
+ # ...
841
+ # ]
836
842
  # ]
837
843
  #
838
844
  indexed: dict = {
839
- 'sym': self.index_by(self.safe_value(response, 1, []), 0),
840
- 'label': self.index_by(self.safe_value(response, 2, []), 0),
841
- 'unit': self.index_by(self.safe_value(response, 3, []), 0),
842
- 'undl': self.index_by(self.safe_value(response, 4, []), 0),
843
- 'pool': self.index_by(self.safe_value(response, 5, []), 0),
844
- 'explorer': self.index_by(self.safe_value(response, 6, []), 0),
845
- 'fees': self.index_by(self.safe_value(response, 7, []), 0),
845
+ 'sym': self.index_by(self.safe_list(response, 1, []), 0),
846
+ 'label': self.index_by(self.safe_list(response, 2, []), 0),
847
+ 'unit': self.index_by(self.safe_list(response, 3, []), 0),
848
+ 'undl': self.index_by(self.safe_list(response, 4, []), 0),
849
+ 'pool': self.index_by(self.safe_list(response, 5, []), 0),
850
+ 'explorer': self.index_by(self.safe_list(response, 6, []), 0),
851
+ 'fees': self.index_by(self.safe_list(response, 7, []), 0),
852
+ 'networks': self.safe_list(response, 8, []),
853
+ 'statuses': self.index_by(self.safe_list(response, 9, []), 0),
846
854
  }
847
- ids = self.safe_value(response, 0, [])
855
+ indexedNetworks: dict = {}
856
+ for i in range(0, len(indexed['networks'])):
857
+ networkObj = indexed['networks'][i]
858
+ networkId = self.safe_string(networkObj, 0)
859
+ valuesList = self.safe_list(networkObj, 1)
860
+ networkName = self.safe_string(valuesList, 0)
861
+ # for GOlang transpiler, do with "safe" method
862
+ networksList = self.safe_list(indexedNetworks, networkName, [])
863
+ networksList.append(networkId)
864
+ indexedNetworks[networkName] = networksList
865
+ ids = self.safe_list(response, 0, [])
848
866
  result: dict = {}
849
867
  for i in range(0, len(ids)):
850
868
  id = ids[i]
851
- if id.find('F0') >= 0:
869
+ if id.endswith('F0'):
852
870
  # we get a lot of F0 currencies, skip those
853
871
  continue
854
872
  code = self.safe_currency_code(id)
855
- label = self.safe_value(indexed['label'], id, [])
873
+ label = self.safe_list(indexed['label'], id, [])
856
874
  name = self.safe_string(label, 1)
857
- pool = self.safe_value(indexed['pool'], id, [])
875
+ pool = self.safe_list(indexed['pool'], id, [])
858
876
  rawType = self.safe_string(pool, 1)
859
877
  isCryptoCoin = (rawType is not None) or (id in indexed['explorer']) # "hacky" solution
860
878
  type = None
861
879
  if isCryptoCoin:
862
880
  type = 'crypto'
863
- feeValues = self.safe_value(indexed['fees'], id, [])
864
- fees = self.safe_value(feeValues, 1, [])
881
+ feeValues = self.safe_list(indexed['fees'], id, [])
882
+ fees = self.safe_list(feeValues, 1, [])
865
883
  fee = self.safe_number(fees, 1)
866
- undl = self.safe_value(indexed['undl'], id, [])
884
+ undl = self.safe_list(indexed['undl'], id, [])
867
885
  precision = '8' # default precision, todo: fix "magic constants"
868
886
  fid = 'f' + id
869
- result[code] = {
887
+ dwStatuses = self.safe_list(indexed['statuses'], id, [])
888
+ depositEnabled = self.safe_integer(dwStatuses, 1) == 1
889
+ withdrawEnabled = self.safe_integer(dwStatuses, 2) == 1
890
+ networks: dict = {}
891
+ netwokIds = self.safe_list(indexedNetworks, id, [])
892
+ for j in range(0, len(netwokIds)):
893
+ networkId = netwokIds[j]
894
+ network = self.network_id_to_code(networkId)
895
+ networks[network] = {
896
+ 'info': networkId,
897
+ 'id': networkId.lower(),
898
+ 'network': networkId,
899
+ 'active': None,
900
+ 'deposit': None,
901
+ 'withdraw': None,
902
+ 'fee': None,
903
+ 'precision': None,
904
+ 'limits': {
905
+ 'withdraw': {
906
+ 'min': None,
907
+ 'max': None,
908
+ },
909
+ },
910
+ }
911
+ result[code] = self.safe_currency_structure({
870
912
  'id': fid,
871
913
  'uppercaseId': id,
872
914
  'code': code,
@@ -874,8 +916,8 @@ class bitfinex(Exchange, ImplicitAPI):
874
916
  'type': type,
875
917
  'name': name,
876
918
  'active': True,
877
- 'deposit': None,
878
- 'withdraw': None,
919
+ 'deposit': depositEnabled,
920
+ 'withdraw': withdrawEnabled,
879
921
  'fee': fee,
880
922
  'precision': int(precision),
881
923
  'limits': {
@@ -888,37 +930,8 @@ class bitfinex(Exchange, ImplicitAPI):
888
930
  'max': None,
889
931
  },
890
932
  },
891
- 'networks': {},
892
- }
893
- networks: dict = {}
894
- currencyNetworks = self.safe_value(response, 8, [])
895
- cleanId = id.replace('F0', '')
896
- for j in range(0, len(currencyNetworks)):
897
- pair = currencyNetworks[j]
898
- networkId = self.safe_string(pair, 0)
899
- currencyId = self.safe_string(self.safe_value(pair, 1, []), 0)
900
- if currencyId == cleanId:
901
- network = self.network_id_to_code(networkId)
902
- networks[network] = {
903
- 'info': networkId,
904
- 'id': networkId.lower(),
905
- 'network': networkId,
906
- 'active': None,
907
- 'deposit': None,
908
- 'withdraw': None,
909
- 'fee': None,
910
- 'precision': None,
911
- 'limits': {
912
- 'withdraw': {
913
- 'min': None,
914
- 'max': None,
915
- },
916
- },
917
- }
918
- keysNetworks = list(networks.keys())
919
- networksLength = len(keysNetworks)
920
- if networksLength > 0:
921
- result[code]['networks'] = networks
933
+ 'networks': networks,
934
+ })
922
935
  return result
923
936
 
924
937
  def fetch_balance(self, params={}) -> Balances:
ccxt/bitget.py CHANGED
@@ -2071,8 +2071,7 @@ class bitget(Exchange, ImplicitAPI):
2071
2071
  chain = chains[j]
2072
2072
  networkId = self.safe_string(chain, 'chain')
2073
2073
  network = self.network_id_to_code(networkId, code)
2074
- if network is not None:
2075
- network = network.upper()
2074
+ network = network.upper()
2076
2075
  networks[network] = {
2077
2076
  'info': chain,
2078
2077
  'id': networkId,
@@ -3407,6 +3406,7 @@ class bitget(Exchange, ImplicitAPI):
3407
3406
  :param dict [params]: extra parameters specific to the exchange API endpoint
3408
3407
  :param int [params.until]: timestamp in ms of the latest candle to fetch
3409
3408
  :param boolean [params.useHistoryEndpoint]: whether to force to use historical endpoint(it has max limit of 200)
3409
+ :param boolean [params.useHistoryEndpointForPagination]: whether to force to use historical endpoint for pagination(default True)
3410
3410
  :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)
3411
3411
  :param str [params.price]: *swap only* "mark"(to fetch mark price candles) or "index"(to fetch index price candles)
3412
3412
  :returns int[][]: A list of candles ordered, open, high, low, close, volume
@@ -3415,11 +3415,13 @@ class bitget(Exchange, ImplicitAPI):
3415
3415
  defaultLimit = 100 # default 100, max 1000
3416
3416
  maxLimitForRecentEndpoint = 1000
3417
3417
  maxLimitForHistoryEndpoint = 200 # note, max 1000 bars are supported for "recent-candles" endpoint, but "historical-candles" support only max 200
3418
+ useHistoryEndpoint = self.safe_bool(params, 'useHistoryEndpoint', False)
3419
+ useHistoryEndpointForPagination = self.safe_bool(params, 'useHistoryEndpointForPagination', True)
3418
3420
  paginate = False
3419
3421
  paginate, params = self.handle_option_and_params(params, 'fetchOHLCV', 'paginate')
3420
3422
  if paginate:
3421
- return self.fetch_paginated_call_deterministic('fetchOHLCV', symbol, since, limit, timeframe, params, maxLimitForRecentEndpoint)
3422
- useHistoryEndpoint = self.safe_bool(params, 'useHistoryEndpoint', False)
3423
+ limitForPagination = maxLimitForHistoryEndpoint if useHistoryEndpointForPagination else maxLimitForRecentEndpoint
3424
+ return self.fetch_paginated_call_deterministic('fetchOHLCV', symbol, since, limit, timeframe, params, limitForPagination)
3423
3425
  market = self.market(symbol)
3424
3426
  marketType = 'spot' if market['spot'] else 'swap'
3425
3427
  timeframes = self.options['timeframes'][marketType]
@@ -4038,6 +4040,7 @@ class bitget(Exchange, ImplicitAPI):
4038
4040
  timestamp = self.safe_integer_2(order, 'cTime', 'ctime')
4039
4041
  updateTimestamp = self.safe_integer(order, 'uTime')
4040
4042
  rawStatus = self.safe_string_2(order, 'status', 'state')
4043
+ rawStatus = self.safe_string(order, 'planStatus', rawStatus)
4041
4044
  fee = None
4042
4045
  feeCostString = self.safe_string(order, 'fee')
4043
4046
  if feeCostString is not None:
ccxt/bitrue.py CHANGED
@@ -782,66 +782,48 @@ class bitrue(Exchange, ImplicitAPI):
782
782
  id = self.safe_string(currency, 'coin')
783
783
  name = self.safe_string(currency, 'coinFulName')
784
784
  code = self.safe_currency_code(id)
785
- deposit = None
786
- withdraw = None
787
- minWithdrawString = None
788
- maxWithdrawString = None
789
- minWithdrawFeeString = None
790
785
  networkDetails = self.safe_list(currency, 'chainDetail', [])
791
786
  networks: dict = {}
792
787
  for j in range(0, len(networkDetails)):
793
788
  entry = networkDetails[j]
794
789
  networkId = self.safe_string(entry, 'chain')
795
790
  network = self.network_id_to_code(networkId, code)
796
- enableDeposit = self.safe_bool(entry, 'enableDeposit')
797
- deposit = enableDeposit if (enableDeposit) else deposit
798
- enableWithdraw = self.safe_bool(entry, 'enableWithdraw')
799
- withdraw = enableWithdraw if (enableWithdraw) else withdraw
800
- networkWithdrawFeeString = self.safe_string(entry, 'withdrawFee')
801
- if networkWithdrawFeeString is not None:
802
- minWithdrawFeeString = networkWithdrawFeeString if (minWithdrawFeeString is None) else Precise.string_min(networkWithdrawFeeString, minWithdrawFeeString)
803
- networkMinWithdrawString = self.safe_string(entry, 'minWithdraw')
804
- if networkMinWithdrawString is not None:
805
- minWithdrawString = networkMinWithdrawString if (minWithdrawString is None) else Precise.string_min(networkMinWithdrawString, minWithdrawString)
806
- networkMaxWithdrawString = self.safe_string(entry, 'maxWithdraw')
807
- if networkMaxWithdrawString is not None:
808
- maxWithdrawString = networkMaxWithdrawString if (maxWithdrawString is None) else Precise.string_max(networkMaxWithdrawString, maxWithdrawString)
809
791
  networks[network] = {
810
792
  'info': entry,
811
793
  'id': networkId,
812
794
  'network': network,
813
- 'deposit': enableDeposit,
814
- 'withdraw': enableWithdraw,
815
- 'active': enableDeposit and enableWithdraw,
816
- 'fee': self.parse_number(networkWithdrawFeeString),
795
+ 'deposit': self.safe_bool(entry, 'enableDeposit'),
796
+ 'withdraw': self.safe_bool(entry, 'enableWithdraw'),
797
+ 'active': None,
798
+ 'fee': self.safe_number(entry, 'withdrawFee'),
817
799
  'precision': None,
818
800
  'limits': {
819
801
  'withdraw': {
820
- 'min': self.parse_number(networkMinWithdrawString),
821
- 'max': self.parse_number(networkMaxWithdrawString),
802
+ 'min': self.safe_number(entry, 'minWithdraw'),
803
+ 'max': self.safe_number(entry, 'maxWithdraw'),
822
804
  },
823
805
  },
824
806
  }
825
- result[code] = {
807
+ result[code] = self.safe_currency_structure({
826
808
  'id': id,
827
809
  'name': name,
828
810
  'code': code,
829
811
  'precision': None,
830
812
  'info': currency,
831
- 'active': deposit and withdraw,
832
- 'deposit': deposit,
833
- 'withdraw': withdraw,
813
+ 'active': None,
814
+ 'deposit': None,
815
+ 'withdraw': None,
834
816
  'networks': networks,
835
- 'fee': self.parse_number(minWithdrawFeeString),
817
+ 'fee': None,
836
818
  'fees': None,
837
819
  'type': 'crypto',
838
820
  'limits': {
839
821
  'withdraw': {
840
- 'min': self.parse_number(minWithdrawString),
841
- 'max': self.parse_number(maxWithdrawString),
822
+ 'min': None,
823
+ 'max': None,
842
824
  },
843
825
  },
844
- }
826
+ })
845
827
  return result
846
828
 
847
829
  def fetch_markets(self, params={}) -> List[Market]:
ccxt/bitso.py CHANGED
@@ -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,
ccxt/bitstamp.py CHANGED
@@ -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,