ccxt 4.4.74__py2.py3-none-any.whl → 4.4.75__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 -1
- ccxt/abstract/coinlist.py +3 -0
- ccxt/async_support/__init__.py +1 -1
- ccxt/async_support/base/exchange.py +1 -1
- ccxt/async_support/bitopro.py +37 -0
- ccxt/async_support/coinlist.py +5 -0
- ccxt/async_support/okx.py +24 -24
- ccxt/base/errors.py +6 -0
- ccxt/base/exchange.py +9 -8
- ccxt/bitopro.py +37 -0
- ccxt/coinlist.py +5 -0
- ccxt/okx.py +24 -24
- ccxt/pro/__init__.py +1 -1
- {ccxt-4.4.74.dist-info → ccxt-4.4.75.dist-info}/METADATA +4 -4
- {ccxt-4.4.74.dist-info → ccxt-4.4.75.dist-info}/RECORD +18 -18
- {ccxt-4.4.74.dist-info → ccxt-4.4.75.dist-info}/LICENSE.txt +0 -0
- {ccxt-4.4.74.dist-info → ccxt-4.4.75.dist-info}/WHEEL +0 -0
- {ccxt-4.4.74.dist-info → ccxt-4.4.75.dist-info}/top_level.txt +0 -0
ccxt/__init__.py
CHANGED
ccxt/abstract/coinlist.py
CHANGED
@@ -16,6 +16,7 @@ class ImplicitAPI:
|
|
16
16
|
public_get_v1_leaderboard = publicGetV1Leaderboard = Entry('v1/leaderboard', 'public', 'GET', {'cost': 1})
|
17
17
|
public_get_v1_affiliate_competition_code = publicGetV1AffiliateCompetitionCode = Entry('v1/affiliate/{competition_code}', 'public', 'GET', {'cost': 1})
|
18
18
|
public_get_v1_competition_competition_id = publicGetV1CompetitionCompetitionId = Entry('v1/competition/{competition_id}', 'public', 'GET', {'cost': 1})
|
19
|
+
public_get_v1_symbols_symbol_funding = publicGetV1SymbolsSymbolFunding = Entry('v1/symbols/{symbol}/funding', 'public', 'GET', {'cost': 1})
|
19
20
|
private_get_v1_fees = privateGetV1Fees = Entry('v1/fees', 'private', 'GET', {'cost': 1})
|
20
21
|
private_get_v1_accounts = privateGetV1Accounts = Entry('v1/accounts', 'private', 'GET', {'cost': 1})
|
21
22
|
private_get_v1_accounts_trader_id = privateGetV1AccountsTraderId = Entry('v1/accounts/{trader_id}', 'private', 'GET', {'cost': 1})
|
@@ -35,6 +36,7 @@ class ImplicitAPI:
|
|
35
36
|
private_get_v1_credits = privateGetV1Credits = Entry('v1/credits', 'private', 'GET', {'cost': 1})
|
36
37
|
private_get_v1_positions = privateGetV1Positions = Entry('v1/positions', 'private', 'GET', {'cost': 1})
|
37
38
|
private_get_v1_accounts_trader_id_competitions = privateGetV1AccountsTraderIdCompetitions = Entry('v1/accounts/{trader_id}/competitions', 'private', 'GET', {'cost': 1})
|
39
|
+
private_get_v1_closedpositions = privateGetV1ClosedPositions = Entry('v1/closedPositions', 'private', 'GET', {'cost': 1})
|
38
40
|
private_post_v1_keys = privatePostV1Keys = Entry('v1/keys', 'private', 'POST', {'cost': 1})
|
39
41
|
private_post_v1_orders = privatePostV1Orders = Entry('v1/orders', 'private', 'POST', {'cost': 1})
|
40
42
|
private_post_v1_orders_cancel_all_after = privatePostV1OrdersCancelAllAfter = Entry('v1/orders/cancel-all-after', 'private', 'POST', {'cost': 1})
|
@@ -48,6 +50,7 @@ class ImplicitAPI:
|
|
48
50
|
private_post_v1_accounts_trader_id_create_competition = privatePostV1AccountsTraderIdCreateCompetition = Entry('v1/accounts/{trader_id}/create-competition', 'private', 'POST', {'cost': 1})
|
49
51
|
private_patch_v1_orders_order_id = privatePatchV1OrdersOrderId = Entry('v1/orders/{order_id}', 'private', 'PATCH', {'cost': 1})
|
50
52
|
private_patch_v1_orders_bulk = privatePatchV1OrdersBulk = Entry('v1/orders/bulk', 'private', 'PATCH', {'cost': 1})
|
53
|
+
private_put_v1_accounts_trader_id_alias = privatePutV1AccountsTraderIdAlias = Entry('v1/accounts/{trader_id}/alias', 'private', 'PUT', {'cost': 1})
|
51
54
|
private_delete_v1_keys_key = privateDeleteV1KeysKey = Entry('v1/keys/{key}', 'private', 'DELETE', {'cost': 1})
|
52
55
|
private_delete_v1_orders = privateDeleteV1Orders = Entry('v1/orders', 'private', 'DELETE', {'cost': 1})
|
53
56
|
private_delete_v1_orders_order_id = privateDeleteV1OrdersOrderId = Entry('v1/orders/{order_id}', 'private', 'DELETE', {'cost': 1})
|
ccxt/async_support/__init__.py
CHANGED
ccxt/async_support/bitopro.py
CHANGED
@@ -36,19 +36,29 @@ class bitopro(Exchange, ImplicitAPI):
|
|
36
36
|
'swap': False,
|
37
37
|
'future': False,
|
38
38
|
'option': False,
|
39
|
+
'addMargin': False,
|
40
|
+
'borrowCrossMargin': False,
|
41
|
+
'borrowIsolatedMargin': False,
|
42
|
+
'borrowMargin': False,
|
39
43
|
'cancelAllOrders': True,
|
40
44
|
'cancelOrder': True,
|
41
45
|
'cancelOrders': True,
|
42
46
|
'closeAllPositions': False,
|
43
47
|
'closePosition': False,
|
44
48
|
'createOrder': True,
|
49
|
+
'createOrderWithTakeProfitAndStopLoss': False,
|
50
|
+
'createOrderWithTakeProfitAndStopLossWs': False,
|
45
51
|
'createReduceOnlyOrder': False,
|
46
52
|
'createStopOrder': True,
|
47
53
|
'createTriggerOrder': True,
|
48
54
|
'editOrder': False,
|
49
55
|
'fetchBalance': True,
|
56
|
+
'fetchBorrowInterest': False,
|
57
|
+
'fetchBorrowRate': False,
|
50
58
|
'fetchBorrowRateHistories': False,
|
51
59
|
'fetchBorrowRateHistory': False,
|
60
|
+
'fetchBorrowRates': False,
|
61
|
+
'fetchBorrowRatesPerSymbol': False,
|
52
62
|
'fetchClosedOrders': True,
|
53
63
|
'fetchCrossBorrowRate': False,
|
54
64
|
'fetchCrossBorrowRates': False,
|
@@ -59,19 +69,39 @@ class bitopro(Exchange, ImplicitAPI):
|
|
59
69
|
'fetchDepositWithdrawFee': 'emulated',
|
60
70
|
'fetchDepositWithdrawFees': True,
|
61
71
|
'fetchFundingHistory': False,
|
72
|
+
'fetchFundingInterval': False,
|
73
|
+
'fetchFundingIntervals': False,
|
62
74
|
'fetchFundingRate': False,
|
63
75
|
'fetchFundingRateHistory': False,
|
64
76
|
'fetchFundingRates': False,
|
77
|
+
'fetchGreeks': False,
|
65
78
|
'fetchIndexOHLCV': False,
|
66
79
|
'fetchIsolatedBorrowRate': False,
|
67
80
|
'fetchIsolatedBorrowRates': False,
|
81
|
+
'fetchIsolatedPositions': False,
|
82
|
+
'fetchLeverage': False,
|
83
|
+
'fetchLeverages': False,
|
84
|
+
'fetchLeverageTiers': False,
|
85
|
+
'fetchLiquidations': False,
|
86
|
+
'fetchLongShortRatio': False,
|
87
|
+
'fetchLongShortRatioHistory': False,
|
88
|
+
'fetchMarginAdjustmentHistory': False,
|
68
89
|
'fetchMarginMode': False,
|
90
|
+
'fetchMarginModes': False,
|
91
|
+
'fetchMarketLeverageTiers': False,
|
69
92
|
'fetchMarkets': True,
|
70
93
|
'fetchMarkOHLCV': False,
|
94
|
+
'fetchMarkPrices': False,
|
95
|
+
'fetchMyLiquidations': False,
|
96
|
+
'fetchMySettlementHistory': False,
|
71
97
|
'fetchMyTrades': True,
|
72
98
|
'fetchOHLCV': True,
|
99
|
+
'fetchOpenInterest': False,
|
73
100
|
'fetchOpenInterestHistory': False,
|
101
|
+
'fetchOpenInterests': False,
|
74
102
|
'fetchOpenOrders': True,
|
103
|
+
'fetchOption': False,
|
104
|
+
'fetchOptionChain': False,
|
75
105
|
'fetchOrder': True,
|
76
106
|
'fetchOrderBook': True,
|
77
107
|
'fetchOrders': False,
|
@@ -84,6 +114,7 @@ class bitopro(Exchange, ImplicitAPI):
|
|
84
114
|
'fetchPositionsHistory': False,
|
85
115
|
'fetchPositionsRisk': False,
|
86
116
|
'fetchPremiumIndexOHLCV': False,
|
117
|
+
'fetchSettlementHistory': False,
|
87
118
|
'fetchTicker': True,
|
88
119
|
'fetchTickers': True,
|
89
120
|
'fetchTime': False,
|
@@ -94,10 +125,16 @@ class bitopro(Exchange, ImplicitAPI):
|
|
94
125
|
'fetchTransactions': False,
|
95
126
|
'fetchTransfer': False,
|
96
127
|
'fetchTransfers': False,
|
128
|
+
'fetchVolatilityHistory': False,
|
97
129
|
'fetchWithdrawal': True,
|
98
130
|
'fetchWithdrawals': True,
|
131
|
+
'reduceMargin': False,
|
132
|
+
'repayCrossMargin': False,
|
133
|
+
'repayIsolatedMargin': False,
|
99
134
|
'setLeverage': False,
|
135
|
+
'setMargin': False,
|
100
136
|
'setMarginMode': False,
|
137
|
+
'setPositionMode': False,
|
101
138
|
'transfer': False,
|
102
139
|
'withdraw': True,
|
103
140
|
},
|
ccxt/async_support/coinlist.py
CHANGED
@@ -171,6 +171,7 @@ class coinlist(Exchange, ImplicitAPI):
|
|
171
171
|
'v1/leaderboard': 1,
|
172
172
|
'v1/affiliate/{competition_code}': 1,
|
173
173
|
'v1/competition/{competition_id}': 1,
|
174
|
+
'v1/symbols/{symbol}/funding': 1,
|
174
175
|
},
|
175
176
|
},
|
176
177
|
'private': {
|
@@ -194,6 +195,7 @@ class coinlist(Exchange, ImplicitAPI):
|
|
194
195
|
'v1/credits': 1, # not unified
|
195
196
|
'v1/positions': 1,
|
196
197
|
'v1/accounts/{trader_id}/competitions': 1,
|
198
|
+
'v1/closedPositions': 1,
|
197
199
|
},
|
198
200
|
'post': {
|
199
201
|
'v1/keys': 1, # not unified
|
@@ -212,6 +214,9 @@ class coinlist(Exchange, ImplicitAPI):
|
|
212
214
|
'v1/orders/{order_id}': 1,
|
213
215
|
'v1/orders/bulk': 1, # not unified
|
214
216
|
},
|
217
|
+
'put': {
|
218
|
+
'v1/accounts/{trader_id}/alias': 1,
|
219
|
+
},
|
215
220
|
'delete': {
|
216
221
|
'v1/keys/{key}': 1, # not unified
|
217
222
|
'v1/orders': 1,
|
ccxt/async_support/okx.py
CHANGED
@@ -1825,31 +1825,31 @@ class okx(Exchange, ImplicitAPI):
|
|
1825
1825
|
chainsLength = len(chains)
|
1826
1826
|
for j in range(0, chainsLength):
|
1827
1827
|
chain = chains[j]
|
1828
|
-
|
1829
|
-
|
1830
|
-
|
1831
|
-
|
1832
|
-
chainPart = '-'.join(parts)
|
1833
|
-
networkCode = self.network_id_to_code(chainPart, currency['code'])
|
1834
|
-
networks[networkCode] = {
|
1835
|
-
'id': networkId,
|
1836
|
-
'network': networkCode,
|
1837
|
-
'active': None,
|
1838
|
-
'deposit': self.safe_bool(chain, 'canDep'),
|
1839
|
-
'withdraw': self.safe_bool(chain, 'canWd'),
|
1840
|
-
'fee': self.safe_number(chain, 'fee'),
|
1841
|
-
'precision': self.parse_number(self.parse_precision(self.safe_string(chain, 'wdTickSz'))),
|
1842
|
-
'limits': {
|
1843
|
-
'withdraw': {
|
1844
|
-
'min': self.safe_number(chain, 'minWd'),
|
1845
|
-
'max': self.safe_number(chain, 'maxWd'),
|
1846
|
-
},
|
1847
|
-
},
|
1848
|
-
'info': chain,
|
1849
|
-
}
|
1850
|
-
else:
|
1851
|
-
# only happens for FIAT currency
|
1828
|
+
# allow empty string for rare fiat-currencies, e.g. TRY
|
1829
|
+
networkId = self.safe_string(chain, 'chain', '') # USDT-BEP20, USDT-Avalance-C, etc
|
1830
|
+
if networkId == '':
|
1831
|
+
# only happens for fiat 'TRY' currency
|
1852
1832
|
type = 'fiat'
|
1833
|
+
idParts = networkId.split('-')
|
1834
|
+
parts = self.array_slice(idParts, 1)
|
1835
|
+
chainPart = '-'.join(parts)
|
1836
|
+
networkCode = self.network_id_to_code(chainPart, currency['code'])
|
1837
|
+
networks[networkCode] = {
|
1838
|
+
'id': networkId,
|
1839
|
+
'network': networkCode,
|
1840
|
+
'active': None,
|
1841
|
+
'deposit': self.safe_bool(chain, 'canDep'),
|
1842
|
+
'withdraw': self.safe_bool(chain, 'canWd'),
|
1843
|
+
'fee': self.safe_number(chain, 'fee'),
|
1844
|
+
'precision': self.parse_number(self.parse_precision(self.safe_string(chain, 'wdTickSz'))),
|
1845
|
+
'limits': {
|
1846
|
+
'withdraw': {
|
1847
|
+
'min': self.safe_number(chain, 'minWd'),
|
1848
|
+
'max': self.safe_number(chain, 'maxWd'),
|
1849
|
+
},
|
1850
|
+
},
|
1851
|
+
'info': chain,
|
1852
|
+
}
|
1853
1853
|
firstChain = self.safe_dict(chains, 0, {})
|
1854
1854
|
result[code] = self.safe_currency_structure({
|
1855
1855
|
'info': chains,
|
ccxt/base/errors.py
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
# ----------------------------------------------------------------------------
|
2
|
+
|
3
|
+
# PLEASE DO NOT EDIT THIS FILE, IT IS GENERATED AND WILL BE OVERWRITTEN:
|
4
|
+
# https://github.com/ccxt/ccxt/blob/master/CONTRIBUTING.md#how-to-contribute-code
|
5
|
+
# EDIT THE CORRESPONDENT .ts FILE INSTEAD
|
6
|
+
|
1
7
|
error_hierarchy = {
|
2
8
|
'BaseError': {
|
3
9
|
'ExchangeError': {
|
ccxt/base/exchange.py
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
# -----------------------------------------------------------------------------
|
6
6
|
|
7
|
-
__version__ = '4.4.
|
7
|
+
__version__ = '4.4.75'
|
8
8
|
|
9
9
|
# -----------------------------------------------------------------------------
|
10
10
|
|
@@ -2913,9 +2913,6 @@ class Exchange(object):
|
|
2913
2913
|
|
2914
2914
|
def safe_currency_structure(self, currency: object):
|
2915
2915
|
# derive data from networks: deposit, withdraw, active, fee, limits, precision
|
2916
|
-
currencyDeposit = self.safe_bool(currency, 'deposit')
|
2917
|
-
currencyWithdraw = self.safe_bool(currency, 'withdraw')
|
2918
|
-
currencyActive = self.safe_bool(currency, 'active')
|
2919
2916
|
networks = self.safe_dict(currency, 'networks', {})
|
2920
2917
|
keys = list(networks.keys())
|
2921
2918
|
length = len(keys)
|
@@ -2924,20 +2921,24 @@ class Exchange(object):
|
|
2924
2921
|
key = keys[i]
|
2925
2922
|
network = networks[key]
|
2926
2923
|
deposit = self.safe_bool(network, 'deposit')
|
2924
|
+
currencyDeposit = self.safe_bool(currency, 'deposit')
|
2927
2925
|
if currencyDeposit is None or deposit:
|
2928
2926
|
currency['deposit'] = deposit
|
2929
2927
|
withdraw = self.safe_bool(network, 'withdraw')
|
2928
|
+
currencyWithdraw = self.safe_bool(currency, 'withdraw')
|
2930
2929
|
if currencyWithdraw is None or withdraw:
|
2931
2930
|
currency['withdraw'] = withdraw
|
2932
|
-
active = self.safe_bool(network, 'active')
|
2933
|
-
if currencyActive is None or active:
|
2934
|
-
currency['active'] = active
|
2935
2931
|
# set network 'active' to False if D or W is disabled
|
2936
|
-
|
2932
|
+
active = self.safe_bool(network, 'active')
|
2933
|
+
if active is None:
|
2937
2934
|
if deposit and withdraw:
|
2938
2935
|
currency['networks'][key]['active'] = True
|
2939
2936
|
elif deposit is not None and withdraw is not None:
|
2940
2937
|
currency['networks'][key]['active'] = False
|
2938
|
+
active = self.safe_bool(network, 'active')
|
2939
|
+
currencyActive = self.safe_bool(currency, 'active')
|
2940
|
+
if currencyActive is None or active:
|
2941
|
+
currency['active'] = active
|
2941
2942
|
# find lowest fee(which is more desired)
|
2942
2943
|
fee = self.safe_string(network, 'fee')
|
2943
2944
|
feeMain = self.safe_string(currency, 'fee')
|
ccxt/bitopro.py
CHANGED
@@ -36,19 +36,29 @@ class bitopro(Exchange, ImplicitAPI):
|
|
36
36
|
'swap': False,
|
37
37
|
'future': False,
|
38
38
|
'option': False,
|
39
|
+
'addMargin': False,
|
40
|
+
'borrowCrossMargin': False,
|
41
|
+
'borrowIsolatedMargin': False,
|
42
|
+
'borrowMargin': False,
|
39
43
|
'cancelAllOrders': True,
|
40
44
|
'cancelOrder': True,
|
41
45
|
'cancelOrders': True,
|
42
46
|
'closeAllPositions': False,
|
43
47
|
'closePosition': False,
|
44
48
|
'createOrder': True,
|
49
|
+
'createOrderWithTakeProfitAndStopLoss': False,
|
50
|
+
'createOrderWithTakeProfitAndStopLossWs': False,
|
45
51
|
'createReduceOnlyOrder': False,
|
46
52
|
'createStopOrder': True,
|
47
53
|
'createTriggerOrder': True,
|
48
54
|
'editOrder': False,
|
49
55
|
'fetchBalance': True,
|
56
|
+
'fetchBorrowInterest': False,
|
57
|
+
'fetchBorrowRate': False,
|
50
58
|
'fetchBorrowRateHistories': False,
|
51
59
|
'fetchBorrowRateHistory': False,
|
60
|
+
'fetchBorrowRates': False,
|
61
|
+
'fetchBorrowRatesPerSymbol': False,
|
52
62
|
'fetchClosedOrders': True,
|
53
63
|
'fetchCrossBorrowRate': False,
|
54
64
|
'fetchCrossBorrowRates': False,
|
@@ -59,19 +69,39 @@ class bitopro(Exchange, ImplicitAPI):
|
|
59
69
|
'fetchDepositWithdrawFee': 'emulated',
|
60
70
|
'fetchDepositWithdrawFees': True,
|
61
71
|
'fetchFundingHistory': False,
|
72
|
+
'fetchFundingInterval': False,
|
73
|
+
'fetchFundingIntervals': False,
|
62
74
|
'fetchFundingRate': False,
|
63
75
|
'fetchFundingRateHistory': False,
|
64
76
|
'fetchFundingRates': False,
|
77
|
+
'fetchGreeks': False,
|
65
78
|
'fetchIndexOHLCV': False,
|
66
79
|
'fetchIsolatedBorrowRate': False,
|
67
80
|
'fetchIsolatedBorrowRates': False,
|
81
|
+
'fetchIsolatedPositions': False,
|
82
|
+
'fetchLeverage': False,
|
83
|
+
'fetchLeverages': False,
|
84
|
+
'fetchLeverageTiers': False,
|
85
|
+
'fetchLiquidations': False,
|
86
|
+
'fetchLongShortRatio': False,
|
87
|
+
'fetchLongShortRatioHistory': False,
|
88
|
+
'fetchMarginAdjustmentHistory': False,
|
68
89
|
'fetchMarginMode': False,
|
90
|
+
'fetchMarginModes': False,
|
91
|
+
'fetchMarketLeverageTiers': False,
|
69
92
|
'fetchMarkets': True,
|
70
93
|
'fetchMarkOHLCV': False,
|
94
|
+
'fetchMarkPrices': False,
|
95
|
+
'fetchMyLiquidations': False,
|
96
|
+
'fetchMySettlementHistory': False,
|
71
97
|
'fetchMyTrades': True,
|
72
98
|
'fetchOHLCV': True,
|
99
|
+
'fetchOpenInterest': False,
|
73
100
|
'fetchOpenInterestHistory': False,
|
101
|
+
'fetchOpenInterests': False,
|
74
102
|
'fetchOpenOrders': True,
|
103
|
+
'fetchOption': False,
|
104
|
+
'fetchOptionChain': False,
|
75
105
|
'fetchOrder': True,
|
76
106
|
'fetchOrderBook': True,
|
77
107
|
'fetchOrders': False,
|
@@ -84,6 +114,7 @@ class bitopro(Exchange, ImplicitAPI):
|
|
84
114
|
'fetchPositionsHistory': False,
|
85
115
|
'fetchPositionsRisk': False,
|
86
116
|
'fetchPremiumIndexOHLCV': False,
|
117
|
+
'fetchSettlementHistory': False,
|
87
118
|
'fetchTicker': True,
|
88
119
|
'fetchTickers': True,
|
89
120
|
'fetchTime': False,
|
@@ -94,10 +125,16 @@ class bitopro(Exchange, ImplicitAPI):
|
|
94
125
|
'fetchTransactions': False,
|
95
126
|
'fetchTransfer': False,
|
96
127
|
'fetchTransfers': False,
|
128
|
+
'fetchVolatilityHistory': False,
|
97
129
|
'fetchWithdrawal': True,
|
98
130
|
'fetchWithdrawals': True,
|
131
|
+
'reduceMargin': False,
|
132
|
+
'repayCrossMargin': False,
|
133
|
+
'repayIsolatedMargin': False,
|
99
134
|
'setLeverage': False,
|
135
|
+
'setMargin': False,
|
100
136
|
'setMarginMode': False,
|
137
|
+
'setPositionMode': False,
|
101
138
|
'transfer': False,
|
102
139
|
'withdraw': True,
|
103
140
|
},
|
ccxt/coinlist.py
CHANGED
@@ -171,6 +171,7 @@ class coinlist(Exchange, ImplicitAPI):
|
|
171
171
|
'v1/leaderboard': 1,
|
172
172
|
'v1/affiliate/{competition_code}': 1,
|
173
173
|
'v1/competition/{competition_id}': 1,
|
174
|
+
'v1/symbols/{symbol}/funding': 1,
|
174
175
|
},
|
175
176
|
},
|
176
177
|
'private': {
|
@@ -194,6 +195,7 @@ class coinlist(Exchange, ImplicitAPI):
|
|
194
195
|
'v1/credits': 1, # not unified
|
195
196
|
'v1/positions': 1,
|
196
197
|
'v1/accounts/{trader_id}/competitions': 1,
|
198
|
+
'v1/closedPositions': 1,
|
197
199
|
},
|
198
200
|
'post': {
|
199
201
|
'v1/keys': 1, # not unified
|
@@ -212,6 +214,9 @@ class coinlist(Exchange, ImplicitAPI):
|
|
212
214
|
'v1/orders/{order_id}': 1,
|
213
215
|
'v1/orders/bulk': 1, # not unified
|
214
216
|
},
|
217
|
+
'put': {
|
218
|
+
'v1/accounts/{trader_id}/alias': 1,
|
219
|
+
},
|
215
220
|
'delete': {
|
216
221
|
'v1/keys/{key}': 1, # not unified
|
217
222
|
'v1/orders': 1,
|
ccxt/okx.py
CHANGED
@@ -1824,31 +1824,31 @@ class okx(Exchange, ImplicitAPI):
|
|
1824
1824
|
chainsLength = len(chains)
|
1825
1825
|
for j in range(0, chainsLength):
|
1826
1826
|
chain = chains[j]
|
1827
|
-
|
1828
|
-
|
1829
|
-
|
1830
|
-
|
1831
|
-
chainPart = '-'.join(parts)
|
1832
|
-
networkCode = self.network_id_to_code(chainPart, currency['code'])
|
1833
|
-
networks[networkCode] = {
|
1834
|
-
'id': networkId,
|
1835
|
-
'network': networkCode,
|
1836
|
-
'active': None,
|
1837
|
-
'deposit': self.safe_bool(chain, 'canDep'),
|
1838
|
-
'withdraw': self.safe_bool(chain, 'canWd'),
|
1839
|
-
'fee': self.safe_number(chain, 'fee'),
|
1840
|
-
'precision': self.parse_number(self.parse_precision(self.safe_string(chain, 'wdTickSz'))),
|
1841
|
-
'limits': {
|
1842
|
-
'withdraw': {
|
1843
|
-
'min': self.safe_number(chain, 'minWd'),
|
1844
|
-
'max': self.safe_number(chain, 'maxWd'),
|
1845
|
-
},
|
1846
|
-
},
|
1847
|
-
'info': chain,
|
1848
|
-
}
|
1849
|
-
else:
|
1850
|
-
# only happens for FIAT currency
|
1827
|
+
# allow empty string for rare fiat-currencies, e.g. TRY
|
1828
|
+
networkId = self.safe_string(chain, 'chain', '') # USDT-BEP20, USDT-Avalance-C, etc
|
1829
|
+
if networkId == '':
|
1830
|
+
# only happens for fiat 'TRY' currency
|
1851
1831
|
type = 'fiat'
|
1832
|
+
idParts = networkId.split('-')
|
1833
|
+
parts = self.array_slice(idParts, 1)
|
1834
|
+
chainPart = '-'.join(parts)
|
1835
|
+
networkCode = self.network_id_to_code(chainPart, currency['code'])
|
1836
|
+
networks[networkCode] = {
|
1837
|
+
'id': networkId,
|
1838
|
+
'network': networkCode,
|
1839
|
+
'active': None,
|
1840
|
+
'deposit': self.safe_bool(chain, 'canDep'),
|
1841
|
+
'withdraw': self.safe_bool(chain, 'canWd'),
|
1842
|
+
'fee': self.safe_number(chain, 'fee'),
|
1843
|
+
'precision': self.parse_number(self.parse_precision(self.safe_string(chain, 'wdTickSz'))),
|
1844
|
+
'limits': {
|
1845
|
+
'withdraw': {
|
1846
|
+
'min': self.safe_number(chain, 'minWd'),
|
1847
|
+
'max': self.safe_number(chain, 'maxWd'),
|
1848
|
+
},
|
1849
|
+
},
|
1850
|
+
'info': chain,
|
1851
|
+
}
|
1852
1852
|
firstChain = self.safe_dict(chains, 0, {})
|
1853
1853
|
result[code] = self.safe_currency_structure({
|
1854
1854
|
'info': chains,
|
ccxt/pro/__init__.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: ccxt
|
3
|
-
Version: 4.4.
|
3
|
+
Version: 4.4.75
|
4
4
|
Summary: A JavaScript / TypeScript / Python / C# / PHP cryptocurrency trading library with support for 100+ exchanges
|
5
5
|
Home-page: https://ccxt.com
|
6
6
|
Author: Igor Kroitor
|
@@ -275,13 +275,13 @@ console.log(version, Object.keys(exchanges));
|
|
275
275
|
|
276
276
|
All-in-one browser bundle (dependencies included), served from a CDN of your choice:
|
277
277
|
|
278
|
-
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.4.
|
279
|
-
* unpkg: https://unpkg.com/ccxt@4.4.
|
278
|
+
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.4.75/dist/ccxt.browser.min.js
|
279
|
+
* unpkg: https://unpkg.com/ccxt@4.4.75/dist/ccxt.browser.min.js
|
280
280
|
|
281
281
|
CDNs are not updated in real-time and may have delays. Defaulting to the most recent version without specifying the version number is not recommended. Please, keep in mind that we are not responsible for the correct operation of those CDN servers.
|
282
282
|
|
283
283
|
```HTML
|
284
|
-
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.4.
|
284
|
+
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.4.75/dist/ccxt.browser.min.js"></script>
|
285
285
|
```
|
286
286
|
|
287
287
|
Creates a global `ccxt` object:
|
@@ -1,4 +1,4 @@
|
|
1
|
-
ccxt/__init__.py,sha256=
|
1
|
+
ccxt/__init__.py,sha256=G4vOj3jggb3J3gYgeTW1T3QL7FUZdk-Cyc8mgV5BJZQ,16370
|
2
2
|
ccxt/ace.py,sha256=waqSDmnGLRzi_0YjNNv93r1zC0v58yoVbKxNImhx-iM,46490
|
3
3
|
ccxt/alpaca.py,sha256=S-PvXknJDcYUqHZWg4isZKGbTa8oU2G4Z0BqbvObNPI,80687
|
4
4
|
ccxt/ascendex.py,sha256=XZnzDjRSe1_EKkzg1xZeyc4-aRPa56UqP8ObkMUfPHA,156277
|
@@ -20,7 +20,7 @@ ccxt/bitget.py,sha256=Gv8LW2P3dVT0d79eTlQUU5m-BiFLm3bMwogSqgUdnIE,436199
|
|
20
20
|
ccxt/bithumb.py,sha256=GHYK_Xwzk9nwINHN1lhnRvnTX8mL98RZQ3Khz213A1s,51640
|
21
21
|
ccxt/bitmart.py,sha256=OD4GvkRT4GgUz4E9yJOxMkGBuvXkUDikjRexNrFd-fw,247895
|
22
22
|
ccxt/bitmex.py,sha256=bCgSeL8i0djDfb5aPXVljngTmmMpx73Cp6Kou5ngDGw,131447
|
23
|
-
ccxt/bitopro.py,sha256=
|
23
|
+
ccxt/bitopro.py,sha256=gU96cIA_XJKLFiUTu89QGdFio1yCeCLXKR4u8-fczJQ,75177
|
24
24
|
ccxt/bitpanda.py,sha256=X1xluJEGWtDs5ovAf8djIMZNW-V-3brs4UjdqiWoanE,510
|
25
25
|
ccxt/bitrue.py,sha256=d6d61DB0luJf9q1jzerKERADt4GJcOLWRpcP-Rp8yuw,139716
|
26
26
|
ccxt/bitso.py,sha256=e2_gds0NESHx1EyRmQDwGPKBJu_-wRmZ06PuSxT3yy0,74161
|
@@ -43,7 +43,7 @@ ccxt/coinbaseinternational.py,sha256=VH3RCIjvr9Y1FH-qcry92faMAEOzLR67XADKWjLDSV4
|
|
43
43
|
ccxt/coincatch.py,sha256=hCZCgNDEX496Xtos1QIdrFrH-IUPG2ZRkHRIGcujECk,244228
|
44
44
|
ccxt/coincheck.py,sha256=CAuMcY3JvLbwpGHR4W1qUt-P7zKRqRRLsObxK5C9I0I,38011
|
45
45
|
ccxt/coinex.py,sha256=Mvi_vVZJZNL9yqhJIPg3v2C69igyUYhmMPsnQFjwQeo,267224
|
46
|
-
ccxt/coinlist.py,sha256=
|
46
|
+
ccxt/coinlist.py,sha256=prqFJ5SqBWNUBmoVaQuAJwWbsWz-g6Wo-CQURaOKNgI,110530
|
47
47
|
ccxt/coinmate.py,sha256=ZbhFH_ALCbB9UpkSFlyh8RP4ZiLH7IbjJGX2PEOtUOs,48773
|
48
48
|
ccxt/coinmetro.py,sha256=idTmegdHUed_nMhk6G-wOrMs1f3g4vjwX98W_IXwMF0,84058
|
49
49
|
ccxt/coinone.py,sha256=J68O8a4oOoCBQ2u_kqWTfspAmNDYhYleD709VLbjf58,49256
|
@@ -87,7 +87,7 @@ ccxt/ndax.py,sha256=qBDsdMjWDflk80pGm_KrLZ_kTSMA1nhNWEw2yNMoeLw,113607
|
|
87
87
|
ccxt/novadax.py,sha256=8K6mKIBY5KyyunyBsYJEosfkr2yDrPVgJfFUpET242k,67583
|
88
88
|
ccxt/oceanex.py,sha256=YhvVgresX7nm8sFxD8Yr5pQI5IzuuRllW-JdA9RkDSM,44195
|
89
89
|
ccxt/okcoin.py,sha256=fuAOZXqsGaDttvVlLIN2-KVev3Ga-HJ6oSrk0q5tf9I,154935
|
90
|
-
ccxt/okx.py,sha256=
|
90
|
+
ccxt/okx.py,sha256=ssuDcNuEYgWBAaC4zCsogPFYl2Ay6ygQWZd3S-U-Wlk,393109
|
91
91
|
ccxt/onetrading.py,sha256=mNmwMVK-7qQEW6L35kfN6OwqvGLiVXrot4B2SDx3_TQ,76305
|
92
92
|
ccxt/oxfun.py,sha256=XfF-kErOOwLBHVpqxpXngFj8EZmXqAGtpmGE_2Q5Ssg,127504
|
93
93
|
ccxt/p2b.py,sha256=2mkYFm3h_lFtgEu13F6sDgbj3UxYyTG-3R_l-w7NZiM,56725
|
@@ -152,7 +152,7 @@ ccxt/abstract/coinbaseinternational.py,sha256=ic3EjzSwsOAZpMQQk2yVO8iO8_ZfkGysai
|
|
152
152
|
ccxt/abstract/coincatch.py,sha256=mCUMZarGuKB1EfwWeXQkRclHiye9wUIXxjghcRGQu5A,14248
|
153
153
|
ccxt/abstract/coincheck.py,sha256=3IIVmryXmzxXqi6IleUmfDZIUMOn_L_4G9Iw8BuEEGo,3417
|
154
154
|
ccxt/abstract/coinex.py,sha256=4TRXtWgONqkm3eSL55Y5T7Q4QxJrnOTuhP0ugsKHAWo,34856
|
155
|
-
ccxt/abstract/coinlist.py,sha256=
|
155
|
+
ccxt/abstract/coinlist.py,sha256=Y3H892ew_GrfOZ7vpKoF5jLr_EixGAdi_4BXyT7PPnc,6960
|
156
156
|
ccxt/abstract/coinmate.py,sha256=LYCJZIWe3sidZUozM7jBTB-AiN3cMElFhYqO9d1QvfI,6842
|
157
157
|
ccxt/abstract/coinmetro.py,sha256=W2eAbFInYZMm1BgfZMRuCX7i201hT4q6QCtie30-_AQ,3975
|
158
158
|
ccxt/abstract/coinone.py,sha256=X2gKABhQbzyFUs8MLo-VGyhG4CxgRSVa6qJsiJqubk0,8291
|
@@ -218,7 +218,7 @@ ccxt/abstract/xt.py,sha256=p0fG3O8kIeMYIvMlqxrhpXeo7lraee6lIlu9yqu6f10,27340
|
|
218
218
|
ccxt/abstract/yobit.py,sha256=8ycfCO8ORFly9hc0Aa47sZyX4_ZKPXS9h9yJzI-uQ7Q,1339
|
219
219
|
ccxt/abstract/zaif.py,sha256=m15WHdl3gYy0GOXNZ8NEH8eE7sVh8c0T_ITNuU8vXeU,3935
|
220
220
|
ccxt/abstract/zonda.py,sha256=X-hCW0SdX3YKZWixDyW-O2211M58Rno8kKJ6quY7rw4,7183
|
221
|
-
ccxt/async_support/__init__.py,sha256=
|
221
|
+
ccxt/async_support/__init__.py,sha256=CSUAaeaD-LPUFIkYbUNetUKDbQeaaYijp7SCcBZF7u0,16163
|
222
222
|
ccxt/async_support/ace.py,sha256=apWhPVYnqyNeDDk_uwu-rus8x-pCFe9M1rNgV88s8_Q,46714
|
223
223
|
ccxt/async_support/alpaca.py,sha256=Tag0HpHxho_qrXoQ8rjZBVJZj9T38qg8g-mZR39_m18,81133
|
224
224
|
ccxt/async_support/ascendex.py,sha256=Z9nw2WDkLqLHV338kw0qGaqECBC-bKc7H7p8YGeEpPU,157090
|
@@ -240,7 +240,7 @@ ccxt/async_support/bitget.py,sha256=B0KcbXhCO4g6ahGBHC1b05Fa-rHLKsJYtvqVR7Qm56o,
|
|
240
240
|
ccxt/async_support/bithumb.py,sha256=ar0QoFintFU7qv7wW6xjnYqBR3keNYN4qN5cbybYxEY,51919
|
241
241
|
ccxt/async_support/bitmart.py,sha256=m_tcJec63zJqcMMgeb1aiQpRYaSgaEdgpgjNx1taicI,249019
|
242
242
|
ccxt/async_support/bitmex.py,sha256=BG2V3EfAb0omoPnvfi3CcaWrernaMeJJ8WeEH2CiW1Y,132025
|
243
|
-
ccxt/async_support/bitopro.py,sha256=
|
243
|
+
ccxt/async_support/bitopro.py,sha256=dxeqGJbH-j0ocBMnmXruk2DGbUQPeja15x3GeQizWUk,75587
|
244
244
|
ccxt/async_support/bitpanda.py,sha256=zj2ad7e9spjosP19nGH2s9oJnlSsJ7CZFNK4alIt51w,524
|
245
245
|
ccxt/async_support/bitrue.py,sha256=qJoihFg5EZQAHvsReXGwbM9xJWBvIkVrOn32roWDwTw,140374
|
246
246
|
ccxt/async_support/bitso.py,sha256=PbF9iC4-Wea_msXhO614VPX6o-8RAqzK0reSC_dxwIc,74547
|
@@ -263,7 +263,7 @@ ccxt/async_support/coinbaseinternational.py,sha256=0wTE9n8B_GOeHOH0CdA_2hnhe0abq
|
|
263
263
|
ccxt/async_support/coincatch.py,sha256=LxtDw2TGjbf5zQfqwV5HJ_DdXfm3YeyO919kx9H_2DE,245286
|
264
264
|
ccxt/async_support/coincheck.py,sha256=riQpuspYXE3FXgjQQaNFSjnWGtsPUBwdOrq9Hy3eTO8,38217
|
265
265
|
ccxt/async_support/coinex.py,sha256=0JPbf9b12J3xP4--A1oJQF4cZ8-mm0bgnBiR_7zSOig,268512
|
266
|
-
ccxt/async_support/coinlist.py,sha256=
|
266
|
+
ccxt/async_support/coinlist.py,sha256=IcaxZlGaD0uIyv3xL3ozgzTcHyLkFd5KlHjbHUzj0l4,111018
|
267
267
|
ccxt/async_support/coinmate.py,sha256=iC1zJju22iTcFtrQKFSsOyPkgTFQkUDa_2FWOOH029w,49039
|
268
268
|
ccxt/async_support/coinmetro.py,sha256=j--kJNppZEMGBBsxR9P_W6W7JeizLAVER55_0ivNrrY,84378
|
269
269
|
ccxt/async_support/coinone.py,sha256=lgNQvv3yRVotcDMnl_k1tpiLgpaDA-tANM4orHiVPYs,49498
|
@@ -307,7 +307,7 @@ ccxt/async_support/ndax.py,sha256=8JiB4Eu1CqAqkTXDVJ-h5iKv9IjR6aya7il6HJKXuCI,11
|
|
307
307
|
ccxt/async_support/novadax.py,sha256=QIFIoZdkkq2odkX7V0wGn9ytgtzEDOTr4MnFGlgnKEk,67951
|
308
308
|
ccxt/async_support/oceanex.py,sha256=_vi8sI3aucMmMPXwqqrpdfnWWHpfLYN_QaBpo2s9zvg,44533
|
309
309
|
ccxt/async_support/okcoin.py,sha256=ybHgnBUymd-vpAlyT5F1sX8bcmSIb6IQtrxha0opRvg,155459
|
310
|
-
ccxt/async_support/okx.py,sha256=
|
310
|
+
ccxt/async_support/okx.py,sha256=z9dyMnz4NG8zaDh526e1UF7LPrYJf5-5mwtfhQjYfyo,394774
|
311
311
|
ccxt/async_support/onetrading.py,sha256=rHzlEI2JW61LbuNUtSZeICL7Pa71lwJthU8lJJn3O9M,76661
|
312
312
|
ccxt/async_support/oxfun.py,sha256=Hd4A3Ym0UCoxINhjMuD_d19MP8K1Kkk7K6plK114e5k,128048
|
313
313
|
ccxt/async_support/p2b.py,sha256=A_RPhOvbOMozI8Ypvw_Qzon5c6609l-fle3hYMT4j4w,56967
|
@@ -331,7 +331,7 @@ ccxt/async_support/yobit.py,sha256=B2T9UXo0ke-YyXxNW9avOPJ8cReVGXWD9OpkORI9ZSU,5
|
|
331
331
|
ccxt/async_support/zaif.py,sha256=jZZv3ZjGQgkPNRfY5B5p5DNMvanHWTTS8m6BLBWm9tA,31357
|
332
332
|
ccxt/async_support/zonda.py,sha256=2QL_B9CmBu4SU4K-Y8segpj57vzAd4aUT2H2cD3b07g,85320
|
333
333
|
ccxt/async_support/base/__init__.py,sha256=aVYSsFi--b4InRs9zDN_wtCpj8odosAB726JdUHavrk,67
|
334
|
-
ccxt/async_support/base/exchange.py,sha256=
|
334
|
+
ccxt/async_support/base/exchange.py,sha256=X4BrbR9Oo-33uUotlodYrIW7ucESwmoHYnUmWAkS8ck,117223
|
335
335
|
ccxt/async_support/base/throttler.py,sha256=tvDVcdRUVYi8fZRlEcnqtgzcgB_KMUMRs5Pu8tuU-tU,1847
|
336
336
|
ccxt/async_support/base/ws/__init__.py,sha256=uockzpLuwntKGZbs5EOWFe-Zg-k6Cj7GhNJLc_RX0so,1791
|
337
337
|
ccxt/async_support/base/ws/aiohttp_client.py,sha256=Y5HxAVXyyYduj6b6SbbUZETlq3GrVMzrkW1r-TMgpb8,6329
|
@@ -344,11 +344,11 @@ ccxt/async_support/base/ws/order_book.py,sha256=uBUaIHhzMRykpmo4BCsdJ-t_HozS6Vxh
|
|
344
344
|
ccxt/async_support/base/ws/order_book_side.py,sha256=GhnGUt78pJ-AYL_Dq9produGjmBJLCI5FHIRdMz1O-g,6551
|
345
345
|
ccxt/base/__init__.py,sha256=eTx1OE3HJjspFUQjGm6LBhaQiMKJnXjkdP-JUXknyQ0,1320
|
346
346
|
ccxt/base/decimal_to_precision.py,sha256=fgWRBzRTtsf3r2INyS4f7WHlzgjB5YM1ekiwqD21aac,6634
|
347
|
-
ccxt/base/errors.py,sha256=
|
348
|
-
ccxt/base/exchange.py,sha256=
|
347
|
+
ccxt/base/errors.py,sha256=MvCrL_sAM3de616T6RE0PSxiF2xV6Qqz5b1y1ghidbk,4888
|
348
|
+
ccxt/base/exchange.py,sha256=ZvK4GMhsYIvcZ7KloZD22dcBDOWtroMR88T5mu7zQ7E,322633
|
349
349
|
ccxt/base/precise.py,sha256=koce64Yrp6vFbGijJtUt-QQ6XhJgeGTCksZ871FPp_A,8886
|
350
350
|
ccxt/base/types.py,sha256=SfxIKDSsxP7MPHWiOVI965Nr5NSEPpAno5fuveTRi3w,11423
|
351
|
-
ccxt/pro/__init__.py,sha256=
|
351
|
+
ccxt/pro/__init__.py,sha256=nW-r_tVVC4zH0-UHo8Tkzi8SoHQDlJ-1MHlUvNy8BRI,7596
|
352
352
|
ccxt/pro/alpaca.py,sha256=_WEorh5thYhvhn7R8hBvHW2m1P2foIbp8URjIt_9vcg,27623
|
353
353
|
ccxt/pro/ascendex.py,sha256=aSbIEzJ0Og_Nc5UGTYj3DVjGfIJ0-q0DdXSWJcQCKb4,37512
|
354
354
|
ccxt/pro/bequant.py,sha256=reG2yXBhxn_TuOIg4J2BiLxl8Lw5Lag3IBMGBkiQCd0,1591
|
@@ -655,8 +655,8 @@ ccxt/test/tests_async.py,sha256=_eOeOojWW2Twyd62H485whALy9IKSlUd4JlrKN26qws,9258
|
|
655
655
|
ccxt/test/tests_helpers.py,sha256=egM69A2ZFYeVF5hwC1Qt-c5DOeClY5bv4jowmceeFV8,9736
|
656
656
|
ccxt/test/tests_init.py,sha256=qM0-Gb0h0p6CANWTkyYZI7wl-iYOcrPur7aj_OKh7m0,1212
|
657
657
|
ccxt/test/tests_sync.py,sha256=5qKpTyujmxiXJ0jNwYNdYzzwbkXHHfiO0QuQCBCjbqI,91566
|
658
|
-
ccxt-4.4.
|
659
|
-
ccxt-4.4.
|
660
|
-
ccxt-4.4.
|
661
|
-
ccxt-4.4.
|
662
|
-
ccxt-4.4.
|
658
|
+
ccxt-4.4.75.dist-info/LICENSE.txt,sha256=EIb9221AhMHV7xF1_55STFdKTFsnJVJYkRpY2Lnvo5w,1068
|
659
|
+
ccxt-4.4.75.dist-info/METADATA,sha256=bmUwfOuBpctzj2xcBnuswOYWfXy71sj0TzoM8A5_sAk,131033
|
660
|
+
ccxt-4.4.75.dist-info/WHEEL,sha256=Kh9pAotZVRFj97E15yTA4iADqXdQfIVTHcNaZTjxeGM,110
|
661
|
+
ccxt-4.4.75.dist-info/top_level.txt,sha256=CkQDuCTDKNcImPV60t36G6MdYfxsAPNiSaEwifVoVMo,5
|
662
|
+
ccxt-4.4.75.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|