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.
- ccxt/__init__.py +1 -5
- ccxt/abstract/blofin.py +8 -0
- ccxt/abstract/btcbox.py +1 -0
- ccxt/apex.py +21 -30
- ccxt/ascendex.py +1 -1
- ccxt/async_support/__init__.py +1 -5
- ccxt/async_support/apex.py +21 -30
- ccxt/async_support/ascendex.py +1 -1
- ccxt/async_support/base/exchange.py +26 -3
- ccxt/async_support/base/ws/cache.py +6 -1
- ccxt/async_support/bigone.py +17 -14
- ccxt/async_support/bingx.py +13 -32
- ccxt/async_support/bitfinex.py +61 -48
- ccxt/async_support/bitget.py +7 -4
- ccxt/async_support/bitrue.py +14 -32
- ccxt/async_support/bitso.py +33 -0
- ccxt/async_support/bitstamp.py +33 -0
- ccxt/async_support/blofin.py +145 -14
- ccxt/async_support/btcbox.py +25 -5
- ccxt/async_support/bybit.py +20 -39
- ccxt/async_support/cex.py +2 -4
- ccxt/async_support/coinbase.py +56 -42
- ccxt/async_support/coinbaseexchange.py +141 -32
- ccxt/async_support/coincatch.py +14 -67
- ccxt/async_support/coinex.py +28 -29
- ccxt/async_support/coinlist.py +17 -16
- ccxt/async_support/coinmetro.py +20 -11
- ccxt/async_support/coinone.py +8 -10
- ccxt/async_support/coinsph.py +124 -2
- ccxt/async_support/cryptocom.py +109 -2
- ccxt/async_support/cryptomus.py +42 -80
- ccxt/async_support/delta.py +75 -36
- ccxt/async_support/derive.py +46 -10
- ccxt/async_support/ellipx.py +175 -77
- ccxt/async_support/gate.py +1 -1
- ccxt/async_support/gemini.py +3 -4
- ccxt/async_support/hitbtc.py +56 -65
- ccxt/async_support/htx.py +2 -2
- ccxt/async_support/hyperliquid.py +15 -2
- ccxt/async_support/kraken.py +27 -23
- ccxt/async_support/kucoinfutures.py +5 -0
- ccxt/async_support/lbank.py +1 -1
- ccxt/async_support/okx.py +1 -2
- ccxt/async_support/oxfun.py +21 -1
- ccxt/async_support/paradex.py +120 -4
- ccxt/base/errors.py +6 -0
- ccxt/base/exchange.py +40 -3
- ccxt/base/types.py +3 -0
- ccxt/bigone.py +17 -14
- ccxt/bingx.py +13 -32
- ccxt/bitfinex.py +61 -48
- ccxt/bitget.py +7 -4
- ccxt/bitrue.py +14 -32
- ccxt/bitso.py +33 -0
- ccxt/bitstamp.py +33 -0
- ccxt/blofin.py +145 -14
- ccxt/btcbox.py +24 -5
- ccxt/bybit.py +20 -39
- ccxt/cex.py +2 -4
- ccxt/coinbase.py +56 -42
- ccxt/coinbaseexchange.py +141 -32
- ccxt/coincatch.py +14 -67
- ccxt/coinex.py +28 -29
- ccxt/coinlist.py +17 -16
- ccxt/coinmetro.py +20 -11
- ccxt/coinone.py +8 -10
- ccxt/coinsph.py +124 -2
- ccxt/cryptocom.py +109 -2
- ccxt/cryptomus.py +42 -80
- ccxt/delta.py +75 -36
- ccxt/derive.py +46 -10
- ccxt/ellipx.py +175 -77
- ccxt/gate.py +1 -1
- ccxt/gemini.py +3 -4
- ccxt/hitbtc.py +56 -65
- ccxt/htx.py +2 -2
- ccxt/hyperliquid.py +15 -2
- ccxt/kraken.py +27 -23
- ccxt/kucoinfutures.py +5 -0
- ccxt/lbank.py +1 -1
- ccxt/okx.py +1 -2
- ccxt/oxfun.py +21 -1
- ccxt/paradex.py +120 -4
- ccxt/pro/__init__.py +69 -3
- ccxt/pro/binance.py +31 -33
- ccxt/pro/bithumb.py +5 -3
- ccxt/pro/coinbase.py +1 -1
- ccxt/pro/hyperliquid.py +10 -2
- ccxt/pro/kraken.py +249 -79
- ccxt/pro/mexc.py +252 -7
- ccxt/pro/poloniex.py +6 -2
- {ccxt-4.4.80.dist-info → ccxt-4.4.85.dist-info}/METADATA +7 -11
- {ccxt-4.4.80.dist-info → ccxt-4.4.85.dist-info}/RECORD +96 -104
- ccxt/abstract/bl3p.py +0 -19
- ccxt/abstract/idex.py +0 -26
- ccxt/async_support/base/ws/fast_client.py +0 -97
- ccxt/async_support/bl3p.py +0 -543
- ccxt/async_support/idex.py +0 -1889
- ccxt/bl3p.py +0 -543
- ccxt/idex.py +0 -1889
- ccxt/pro/idex.py +0 -687
- {ccxt-4.4.80.dist-info → ccxt-4.4.85.dist-info}/LICENSE.txt +0 -0
- {ccxt-4.4.80.dist-info → ccxt-4.4.85.dist-info}/WHEEL +0 -0
- {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.
|
840
|
-
'label': self.index_by(self.
|
841
|
-
'unit': self.index_by(self.
|
842
|
-
'undl': self.index_by(self.
|
843
|
-
'pool': self.index_by(self.
|
844
|
-
'explorer': self.index_by(self.
|
845
|
-
'fees': self.index_by(self.
|
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
|
-
|
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.
|
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.
|
873
|
+
label = self.safe_list(indexed['label'], id, [])
|
856
874
|
name = self.safe_string(label, 1)
|
857
|
-
pool = self.
|
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.
|
864
|
-
fees = self.
|
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.
|
884
|
+
undl = self.safe_list(indexed['undl'], id, [])
|
867
885
|
precision = '8' # default precision, todo: fix "magic constants"
|
868
886
|
fid = 'f' + id
|
869
|
-
|
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':
|
878
|
-
'withdraw':
|
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
|
-
|
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
|
-
|
3422
|
-
|
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':
|
816
|
-
'fee': self.
|
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.
|
821
|
-
'max': self.
|
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':
|
832
|
-
'deposit':
|
833
|
-
'withdraw':
|
813
|
+
'active': None,
|
814
|
+
'deposit': None,
|
815
|
+
'withdraw': None,
|
834
816
|
'networks': networks,
|
835
|
-
'fee':
|
817
|
+
'fee': None,
|
836
818
|
'fees': None,
|
837
819
|
'type': 'crypto',
|
838
820
|
'limits': {
|
839
821
|
'withdraw': {
|
840
|
-
'min':
|
841
|
-
'max':
|
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,
|