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/async_support/bitfinex.py
CHANGED
@@ -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.
|
841
|
-
'label': self.index_by(self.
|
842
|
-
'unit': self.index_by(self.
|
843
|
-
'undl': self.index_by(self.
|
844
|
-
'pool': self.index_by(self.
|
845
|
-
'explorer': self.index_by(self.
|
846
|
-
'fees': self.index_by(self.
|
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
|
-
|
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.
|
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.
|
874
|
+
label = self.safe_list(indexed['label'], id, [])
|
857
875
|
name = self.safe_string(label, 1)
|
858
|
-
pool = self.
|
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.
|
865
|
-
fees = self.
|
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.
|
885
|
+
undl = self.safe_list(indexed['undl'], id, [])
|
868
886
|
precision = '8' # default precision, todo: fix "magic constants"
|
869
887
|
fid = 'f' + id
|
870
|
-
|
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':
|
879
|
-
'withdraw':
|
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:
|
ccxt/async_support/bitget.py
CHANGED
@@ -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
|
-
|
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
|
-
|
3423
|
-
|
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:
|
ccxt/async_support/bitrue.py
CHANGED
@@ -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':
|
817
|
-
'fee': self.
|
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.
|
822
|
-
'max': self.
|
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':
|
833
|
-
'deposit':
|
834
|
-
'withdraw':
|
814
|
+
'active': None,
|
815
|
+
'deposit': None,
|
816
|
+
'withdraw': None,
|
835
817
|
'networks': networks,
|
836
|
-
'fee':
|
818
|
+
'fee': None,
|
837
819
|
'fees': None,
|
838
820
|
'type': 'crypto',
|
839
821
|
'limits': {
|
840
822
|
'withdraw': {
|
841
|
-
'min':
|
842
|
-
'max':
|
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]:
|
ccxt/async_support/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/async_support/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,
|