ccxt 4.3.37__py2.py3-none-any.whl → 4.3.39__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/okx.py +3 -0
- ccxt/async_support/__init__.py +1 -1
- ccxt/async_support/base/exchange.py +1 -1
- ccxt/async_support/bitmart.py +34 -35
- ccxt/async_support/bl3p.py +7 -1
- ccxt/async_support/btcalpha.py +7 -2
- ccxt/async_support/btcturk.py +11 -1
- ccxt/async_support/coinbase.py +2 -2
- ccxt/async_support/coincheck.py +8 -1
- ccxt/async_support/coinex.py +9 -6
- ccxt/async_support/coinlist.py +6 -4
- ccxt/async_support/mexc.py +1 -1
- ccxt/async_support/okx.py +3 -0
- ccxt/base/exchange.py +1 -1
- ccxt/bitmart.py +34 -35
- ccxt/bl3p.py +7 -1
- ccxt/btcalpha.py +7 -2
- ccxt/btcturk.py +11 -1
- ccxt/coinbase.py +2 -2
- ccxt/coincheck.py +8 -1
- ccxt/coinex.py +9 -6
- ccxt/coinlist.py +6 -4
- ccxt/mexc.py +1 -1
- ccxt/okx.py +3 -0
- ccxt/pro/__init__.py +1 -1
- {ccxt-4.3.37.dist-info → ccxt-4.3.39.dist-info}/METADATA +8 -6
- {ccxt-4.3.37.dist-info → ccxt-4.3.39.dist-info}/RECORD +30 -30
- {ccxt-4.3.37.dist-info → ccxt-4.3.39.dist-info}/WHEEL +0 -0
- {ccxt-4.3.37.dist-info → ccxt-4.3.39.dist-info}/top_level.txt +0 -0
ccxt/__init__.py
CHANGED
ccxt/abstract/okx.py
CHANGED
@@ -69,6 +69,9 @@ class ImplicitAPI:
|
|
69
69
|
public_get_finance_staking_defi_eth_apy_history = publicGetFinanceStakingDefiEthApyHistory = Entry('finance/staking-defi/eth/apy-history', 'public', 'GET', {'cost': 1.6666666666666667})
|
70
70
|
public_get_finance_savings_lending_rate_summary = publicGetFinanceSavingsLendingRateSummary = Entry('finance/savings/lending-rate-summary', 'public', 'GET', {'cost': 1.6666666666666667})
|
71
71
|
public_get_finance_savings_lending_rate_history = publicGetFinanceSavingsLendingRateHistory = Entry('finance/savings/lending-rate-history', 'public', 'GET', {'cost': 1.6666666666666667})
|
72
|
+
public_get_finance_fixed_loan_lending_offers = publicGetFinanceFixedLoanLendingOffers = Entry('finance/fixed-loan/lending-offers', 'public', 'GET', {'cost': 3.3333333333333335})
|
73
|
+
public_get_finance_fixed_loan_lending_apy_history = publicGetFinanceFixedLoanLendingApyHistory = Entry('finance/fixed-loan/lending-apy-history', 'public', 'GET', {'cost': 3.3333333333333335})
|
74
|
+
public_get_finance_fixed_loan_pending_lending_volume = publicGetFinanceFixedLoanPendingLendingVolume = Entry('finance/fixed-loan/pending-lending-volume', 'public', 'GET', {'cost': 3.3333333333333335})
|
72
75
|
public_get_finance_sfp_dcd_products = publicGetFinanceSfpDcdProducts = Entry('finance/sfp/dcd/products', 'public', 'GET', {'cost': 0.6666666666666666})
|
73
76
|
public_get_copytrading_public_lead_traders = publicGetCopytradingPublicLeadTraders = Entry('copytrading/public-lead-traders', 'public', 'GET', {'cost': 4})
|
74
77
|
public_get_copytrading_public_weekly_pnl = publicGetCopytradingPublicWeeklyPnl = Entry('copytrading/public-weekly-pnl', 'public', 'GET', {'cost': 4})
|
ccxt/async_support/__init__.py
CHANGED
ccxt/async_support/bitmart.py
CHANGED
@@ -1412,13 +1412,13 @@ class bitmart(Exchange, ImplicitAPI):
|
|
1412
1412
|
#
|
1413
1413
|
# public fetchTrades spot( amount = count * price )
|
1414
1414
|
#
|
1415
|
-
#
|
1416
|
-
#
|
1417
|
-
#
|
1418
|
-
#
|
1419
|
-
#
|
1420
|
-
#
|
1421
|
-
#
|
1415
|
+
# [
|
1416
|
+
# "BTC_USDT", # symbol
|
1417
|
+
# "1717212457302", # timestamp
|
1418
|
+
# "67643.11", # price
|
1419
|
+
# "0.00106", # size
|
1420
|
+
# "sell" # side
|
1421
|
+
# ]
|
1422
1422
|
#
|
1423
1423
|
# spot: fetchMyTrades
|
1424
1424
|
#
|
@@ -1465,22 +1465,23 @@ class bitmart(Exchange, ImplicitAPI):
|
|
1465
1465
|
# 'lastTradeID': 6802340762
|
1466
1466
|
# }
|
1467
1467
|
#
|
1468
|
-
timestamp = self.safe_integer_n(trade, ['
|
1469
|
-
|
1468
|
+
timestamp = self.safe_integer_n(trade, ['createTime', 'create_time', 1])
|
1469
|
+
isPublic = self.safe_string(trade, 0)
|
1470
|
+
isPublicTrade = (isPublic is not None)
|
1470
1471
|
amount = None
|
1471
1472
|
cost = None
|
1472
1473
|
type = None
|
1473
1474
|
side = None
|
1474
1475
|
if isPublicTrade:
|
1475
|
-
amount = self.
|
1476
|
+
amount = self.safe_string_2(trade, 'count', 3)
|
1476
1477
|
cost = self.safe_string(trade, 'amount')
|
1477
|
-
side = self.
|
1478
|
+
side = self.safe_string_2(trade, 'type', 4)
|
1478
1479
|
else:
|
1479
1480
|
amount = self.safe_string_n(trade, ['size', 'vol', 'fillQty'])
|
1480
1481
|
cost = self.safe_string(trade, 'notional')
|
1481
1482
|
type = self.safe_string(trade, 'type')
|
1482
1483
|
side = self.parse_order_side(self.safe_string(trade, 'side'))
|
1483
|
-
marketId = self.
|
1484
|
+
marketId = self.safe_string_2(trade, 'symbol', 0)
|
1484
1485
|
market = self.safe_market(marketId, market)
|
1485
1486
|
feeCostString = self.safe_string_2(trade, 'fee', 'paid_fees')
|
1486
1487
|
fee = None
|
@@ -1502,7 +1503,7 @@ class bitmart(Exchange, ImplicitAPI):
|
|
1502
1503
|
'symbol': market['symbol'],
|
1503
1504
|
'type': type,
|
1504
1505
|
'side': side,
|
1505
|
-
'price': self.
|
1506
|
+
'price': self.safe_string_n(trade, ['price', 'fillPrice', 2]),
|
1506
1507
|
'amount': amount,
|
1507
1508
|
'cost': cost,
|
1508
1509
|
'takerOrMaker': self.safe_string_lower_2(trade, 'tradeRole', 'exec_type'),
|
@@ -1511,10 +1512,11 @@ class bitmart(Exchange, ImplicitAPI):
|
|
1511
1512
|
|
1512
1513
|
async def fetch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
|
1513
1514
|
"""
|
1514
|
-
get
|
1515
|
+
get a list of the most recent trades for a particular symbol
|
1516
|
+
:see: https://developer-pro.bitmart.com/en/spot/#get-recent-trades-v3
|
1515
1517
|
:param str symbol: unified symbol of the market to fetch trades for
|
1516
1518
|
:param int [since]: timestamp in ms of the earliest trade to fetch
|
1517
|
-
:param int [limit]: the maximum
|
1519
|
+
:param int [limit]: the maximum number of trades to fetch
|
1518
1520
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
1519
1521
|
:returns Trade[]: a list of `trade structures <https://docs.ccxt.com/#/?id=public-trades>`
|
1520
1522
|
"""
|
@@ -1525,30 +1527,27 @@ class bitmart(Exchange, ImplicitAPI):
|
|
1525
1527
|
request: dict = {
|
1526
1528
|
'symbol': market['id'],
|
1527
1529
|
}
|
1528
|
-
|
1529
|
-
|
1530
|
-
|
1530
|
+
if limit is not None:
|
1531
|
+
request['limit'] = limit
|
1532
|
+
response = await self.publicGetSpotQuotationV3Trades(self.extend(request, params))
|
1531
1533
|
#
|
1532
1534
|
# {
|
1533
|
-
# "
|
1534
|
-
# "
|
1535
|
-
# "
|
1536
|
-
# "data":
|
1537
|
-
#
|
1538
|
-
#
|
1539
|
-
#
|
1540
|
-
#
|
1541
|
-
#
|
1542
|
-
#
|
1543
|
-
#
|
1544
|
-
#
|
1545
|
-
# ]
|
1546
|
-
# }
|
1535
|
+
# "code": 1000,
|
1536
|
+
# "trace": "58031f9a5bd.111.17117",
|
1537
|
+
# "message": "success",
|
1538
|
+
# "data": [
|
1539
|
+
# [
|
1540
|
+
# "BTC_USDT",
|
1541
|
+
# "1717212457302",
|
1542
|
+
# "67643.11",
|
1543
|
+
# "0.00106",
|
1544
|
+
# "sell"
|
1545
|
+
# ],
|
1546
|
+
# ]
|
1547
1547
|
# }
|
1548
1548
|
#
|
1549
|
-
data = self.
|
1550
|
-
|
1551
|
-
return self.parse_trades(trades, market, since, limit)
|
1549
|
+
data = self.safe_list(response, 'data', [])
|
1550
|
+
return self.parse_trades(data, market, since, limit)
|
1552
1551
|
|
1553
1552
|
def parse_ohlcv(self, ohlcv, market: Market = None) -> list:
|
1554
1553
|
#
|
ccxt/async_support/bl3p.py
CHANGED
@@ -413,7 +413,13 @@ class bl3p(Exchange, ImplicitAPI):
|
|
413
413
|
request: dict = {
|
414
414
|
'order_id': id,
|
415
415
|
}
|
416
|
-
|
416
|
+
response = await self.privatePostMarketMoneyOrderCancel(self.extend(request, params))
|
417
|
+
#
|
418
|
+
# "success"
|
419
|
+
#
|
420
|
+
return self.safe_order({
|
421
|
+
'info': response,
|
422
|
+
})
|
417
423
|
|
418
424
|
async def create_deposit_address(self, code: str, params={}):
|
419
425
|
"""
|
ccxt/async_support/btcalpha.py
CHANGED
@@ -679,7 +679,7 @@ class btcalpha(Exchange, ImplicitAPI):
|
|
679
679
|
filled = self.safe_string(order, 'amount_filled')
|
680
680
|
amount = self.safe_string(order, 'amount_original')
|
681
681
|
status = self.parse_order_status(self.safe_string(order, 'status'))
|
682
|
-
id = self.
|
682
|
+
id = self.safe_string_n(order, ['oid', 'id', 'order'])
|
683
683
|
trades = self.safe_value(order, 'trades')
|
684
684
|
side = self.safe_string_2(order, 'my_side', 'type')
|
685
685
|
return self.safe_order({
|
@@ -751,7 +751,12 @@ class btcalpha(Exchange, ImplicitAPI):
|
|
751
751
|
'order': id,
|
752
752
|
}
|
753
753
|
response = await self.privatePostOrderCancel(self.extend(request, params))
|
754
|
-
|
754
|
+
#
|
755
|
+
# {
|
756
|
+
# "order": 63568
|
757
|
+
# }
|
758
|
+
#
|
759
|
+
return self.parse_order(response)
|
755
760
|
|
756
761
|
async def fetch_order(self, id: str, symbol: Str = None, params={}):
|
757
762
|
"""
|
ccxt/async_support/btcturk.py
CHANGED
@@ -684,7 +684,17 @@ class btcturk(Exchange, ImplicitAPI):
|
|
684
684
|
request: dict = {
|
685
685
|
'id': id,
|
686
686
|
}
|
687
|
-
|
687
|
+
response = await self.privateDeleteOrder(self.extend(request, params))
|
688
|
+
#
|
689
|
+
# {
|
690
|
+
# "success": True,
|
691
|
+
# "message": "SUCCESS",
|
692
|
+
# "code": 0
|
693
|
+
# }
|
694
|
+
#
|
695
|
+
return self.safe_order({
|
696
|
+
'info': response,
|
697
|
+
})
|
688
698
|
|
689
699
|
async def fetch_open_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
|
690
700
|
"""
|
ccxt/async_support/coinbase.py
CHANGED
@@ -503,9 +503,9 @@ class coinbase(Exchange, ImplicitAPI):
|
|
503
503
|
paginate = False
|
504
504
|
paginate, params = self.handle_option_and_params(params, 'fetchAccounts', 'paginate')
|
505
505
|
if paginate:
|
506
|
-
return await self.fetch_paginated_call_cursor('fetchAccounts', None, None, None, params, 'cursor', 'cursor', None,
|
506
|
+
return await self.fetch_paginated_call_cursor('fetchAccounts', None, None, None, params, 'cursor', 'cursor', None, 250)
|
507
507
|
request: dict = {
|
508
|
-
'limit':
|
508
|
+
'limit': 250,
|
509
509
|
}
|
510
510
|
response = await self.v3PrivateGetBrokerageAccounts(self.extend(request, params))
|
511
511
|
#
|
ccxt/async_support/coincheck.py
CHANGED
@@ -595,7 +595,14 @@ class coincheck(Exchange, ImplicitAPI):
|
|
595
595
|
request: dict = {
|
596
596
|
'id': id,
|
597
597
|
}
|
598
|
-
|
598
|
+
response = await self.privateDeleteExchangeOrdersId(self.extend(request, params))
|
599
|
+
#
|
600
|
+
# {
|
601
|
+
# "success": True,
|
602
|
+
# "id": 12345
|
603
|
+
# }
|
604
|
+
#
|
605
|
+
return self.parse_order(response)
|
599
606
|
|
600
607
|
async def fetch_deposits(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Transaction]:
|
601
608
|
"""
|
ccxt/async_support/coinex.py
CHANGED
@@ -1635,14 +1635,13 @@ class coinex(Exchange, ImplicitAPI):
|
|
1635
1635
|
marketType, params = self.handle_market_type_and_params('fetchBalance', None, params)
|
1636
1636
|
marginMode = None
|
1637
1637
|
marginMode, params = self.handle_margin_mode_and_params('fetchBalance', params)
|
1638
|
-
|
1639
|
-
|
1640
|
-
if marketType == 'margin':
|
1641
|
-
return await self.fetch_margin_balance(params)
|
1642
|
-
elif marketType == 'swap':
|
1638
|
+
isMargin = (marginMode is not None) or (marketType == 'margin')
|
1639
|
+
if marketType == 'swap':
|
1643
1640
|
return await self.fetch_swap_balance(params)
|
1644
1641
|
elif marketType == 'financial':
|
1645
1642
|
return await self.fetch_financial_balance(params)
|
1643
|
+
elif isMargin:
|
1644
|
+
return await self.fetch_margin_balance(params)
|
1646
1645
|
else:
|
1647
1646
|
return await self.fetch_spot_balance(params)
|
1648
1647
|
|
@@ -3060,7 +3059,11 @@ class coinex(Exchange, ImplicitAPI):
|
|
3060
3059
|
#
|
3061
3060
|
# {"code":0,"data":{},"message":"OK"}
|
3062
3061
|
#
|
3063
|
-
return
|
3062
|
+
return [
|
3063
|
+
self.safe_order({
|
3064
|
+
'info': response,
|
3065
|
+
}),
|
3066
|
+
]
|
3064
3067
|
|
3065
3068
|
async def fetch_order(self, id: str, symbol: Str = None, params={}):
|
3066
3069
|
"""
|
ccxt/async_support/coinlist.py
CHANGED
@@ -2177,16 +2177,18 @@ class coinlist(Exchange, ImplicitAPI):
|
|
2177
2177
|
request = self.omit(params, self.extract_params(path))
|
2178
2178
|
endpoint = '/' + self.implode_params(path, params)
|
2179
2179
|
url = self.urls['api'][api] + endpoint
|
2180
|
-
|
2180
|
+
isBulk = isinstance(params, list)
|
2181
|
+
query: Str = None
|
2182
|
+
if not isBulk:
|
2183
|
+
query = self.urlencode(request)
|
2181
2184
|
if api == 'private':
|
2182
2185
|
self.check_required_credentials()
|
2183
2186
|
timestamp = str(self.seconds())
|
2184
2187
|
auth = timestamp + method + endpoint
|
2185
|
-
isBulk = isinstance(params, list)
|
2186
2188
|
if (method == 'POST') or (method == 'PATCH') or isBulk:
|
2187
2189
|
body = self.json(request)
|
2188
2190
|
auth += body
|
2189
|
-
elif len(query) != 0:
|
2191
|
+
elif query is not None and len(query) != 0:
|
2190
2192
|
auth += '?' + query
|
2191
2193
|
url += '?' + query
|
2192
2194
|
signature = self.hmac(self.encode(auth), self.base64_to_binary(self.secret), hashlib.sha256, 'base64')
|
@@ -2196,7 +2198,7 @@ class coinlist(Exchange, ImplicitAPI):
|
|
2196
2198
|
'CL-ACCESS-TIMESTAMP': timestamp,
|
2197
2199
|
'Content-Type': 'application/json',
|
2198
2200
|
}
|
2199
|
-
elif len(query) != 0:
|
2201
|
+
elif query is not None and len(query) != 0:
|
2200
2202
|
url += '?' + query
|
2201
2203
|
return {'url': url, 'method': method, 'body': body, 'headers': headers}
|
2202
2204
|
|
ccxt/async_support/mexc.py
CHANGED
@@ -161,7 +161,7 @@ class mexc(Exchange, ImplicitAPI):
|
|
161
161
|
'fees': [
|
162
162
|
'https://www.mexc.com/fee',
|
163
163
|
],
|
164
|
-
'referral': 'https://
|
164
|
+
'referral': 'https://www.mexc.com/register?inviteCode=mexc-1FQ1GNu1',
|
165
165
|
},
|
166
166
|
'api': {
|
167
167
|
'spot': {
|
ccxt/async_support/okx.py
CHANGED
@@ -280,6 +280,9 @@ class okx(Exchange, ImplicitAPI):
|
|
280
280
|
'finance/staking-defi/eth/apy-history': 5 / 3,
|
281
281
|
'finance/savings/lending-rate-summary': 5 / 3,
|
282
282
|
'finance/savings/lending-rate-history': 5 / 3,
|
283
|
+
'finance/fixed-loan/lending-offers': 10 / 3,
|
284
|
+
'finance/fixed-loan/lending-apy-history': 10 / 3,
|
285
|
+
'finance/fixed-loan/pending-lending-volume': 10 / 3,
|
283
286
|
# public broker
|
284
287
|
'finance/sfp/dcd/products': 2 / 3,
|
285
288
|
# copytrading
|
ccxt/base/exchange.py
CHANGED
ccxt/bitmart.py
CHANGED
@@ -1412,13 +1412,13 @@ class bitmart(Exchange, ImplicitAPI):
|
|
1412
1412
|
#
|
1413
1413
|
# public fetchTrades spot( amount = count * price )
|
1414
1414
|
#
|
1415
|
-
#
|
1416
|
-
#
|
1417
|
-
#
|
1418
|
-
#
|
1419
|
-
#
|
1420
|
-
#
|
1421
|
-
#
|
1415
|
+
# [
|
1416
|
+
# "BTC_USDT", # symbol
|
1417
|
+
# "1717212457302", # timestamp
|
1418
|
+
# "67643.11", # price
|
1419
|
+
# "0.00106", # size
|
1420
|
+
# "sell" # side
|
1421
|
+
# ]
|
1422
1422
|
#
|
1423
1423
|
# spot: fetchMyTrades
|
1424
1424
|
#
|
@@ -1465,22 +1465,23 @@ class bitmart(Exchange, ImplicitAPI):
|
|
1465
1465
|
# 'lastTradeID': 6802340762
|
1466
1466
|
# }
|
1467
1467
|
#
|
1468
|
-
timestamp = self.safe_integer_n(trade, ['
|
1469
|
-
|
1468
|
+
timestamp = self.safe_integer_n(trade, ['createTime', 'create_time', 1])
|
1469
|
+
isPublic = self.safe_string(trade, 0)
|
1470
|
+
isPublicTrade = (isPublic is not None)
|
1470
1471
|
amount = None
|
1471
1472
|
cost = None
|
1472
1473
|
type = None
|
1473
1474
|
side = None
|
1474
1475
|
if isPublicTrade:
|
1475
|
-
amount = self.
|
1476
|
+
amount = self.safe_string_2(trade, 'count', 3)
|
1476
1477
|
cost = self.safe_string(trade, 'amount')
|
1477
|
-
side = self.
|
1478
|
+
side = self.safe_string_2(trade, 'type', 4)
|
1478
1479
|
else:
|
1479
1480
|
amount = self.safe_string_n(trade, ['size', 'vol', 'fillQty'])
|
1480
1481
|
cost = self.safe_string(trade, 'notional')
|
1481
1482
|
type = self.safe_string(trade, 'type')
|
1482
1483
|
side = self.parse_order_side(self.safe_string(trade, 'side'))
|
1483
|
-
marketId = self.
|
1484
|
+
marketId = self.safe_string_2(trade, 'symbol', 0)
|
1484
1485
|
market = self.safe_market(marketId, market)
|
1485
1486
|
feeCostString = self.safe_string_2(trade, 'fee', 'paid_fees')
|
1486
1487
|
fee = None
|
@@ -1502,7 +1503,7 @@ class bitmart(Exchange, ImplicitAPI):
|
|
1502
1503
|
'symbol': market['symbol'],
|
1503
1504
|
'type': type,
|
1504
1505
|
'side': side,
|
1505
|
-
'price': self.
|
1506
|
+
'price': self.safe_string_n(trade, ['price', 'fillPrice', 2]),
|
1506
1507
|
'amount': amount,
|
1507
1508
|
'cost': cost,
|
1508
1509
|
'takerOrMaker': self.safe_string_lower_2(trade, 'tradeRole', 'exec_type'),
|
@@ -1511,10 +1512,11 @@ class bitmart(Exchange, ImplicitAPI):
|
|
1511
1512
|
|
1512
1513
|
def fetch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
|
1513
1514
|
"""
|
1514
|
-
get
|
1515
|
+
get a list of the most recent trades for a particular symbol
|
1516
|
+
:see: https://developer-pro.bitmart.com/en/spot/#get-recent-trades-v3
|
1515
1517
|
:param str symbol: unified symbol of the market to fetch trades for
|
1516
1518
|
:param int [since]: timestamp in ms of the earliest trade to fetch
|
1517
|
-
:param int [limit]: the maximum
|
1519
|
+
:param int [limit]: the maximum number of trades to fetch
|
1518
1520
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
1519
1521
|
:returns Trade[]: a list of `trade structures <https://docs.ccxt.com/#/?id=public-trades>`
|
1520
1522
|
"""
|
@@ -1525,30 +1527,27 @@ class bitmart(Exchange, ImplicitAPI):
|
|
1525
1527
|
request: dict = {
|
1526
1528
|
'symbol': market['id'],
|
1527
1529
|
}
|
1528
|
-
|
1529
|
-
|
1530
|
-
|
1530
|
+
if limit is not None:
|
1531
|
+
request['limit'] = limit
|
1532
|
+
response = self.publicGetSpotQuotationV3Trades(self.extend(request, params))
|
1531
1533
|
#
|
1532
1534
|
# {
|
1533
|
-
# "
|
1534
|
-
# "
|
1535
|
-
# "
|
1536
|
-
# "data":
|
1537
|
-
#
|
1538
|
-
#
|
1539
|
-
#
|
1540
|
-
#
|
1541
|
-
#
|
1542
|
-
#
|
1543
|
-
#
|
1544
|
-
#
|
1545
|
-
# ]
|
1546
|
-
# }
|
1535
|
+
# "code": 1000,
|
1536
|
+
# "trace": "58031f9a5bd.111.17117",
|
1537
|
+
# "message": "success",
|
1538
|
+
# "data": [
|
1539
|
+
# [
|
1540
|
+
# "BTC_USDT",
|
1541
|
+
# "1717212457302",
|
1542
|
+
# "67643.11",
|
1543
|
+
# "0.00106",
|
1544
|
+
# "sell"
|
1545
|
+
# ],
|
1546
|
+
# ]
|
1547
1547
|
# }
|
1548
1548
|
#
|
1549
|
-
data = self.
|
1550
|
-
|
1551
|
-
return self.parse_trades(trades, market, since, limit)
|
1549
|
+
data = self.safe_list(response, 'data', [])
|
1550
|
+
return self.parse_trades(data, market, since, limit)
|
1552
1551
|
|
1553
1552
|
def parse_ohlcv(self, ohlcv, market: Market = None) -> list:
|
1554
1553
|
#
|
ccxt/bl3p.py
CHANGED
@@ -413,7 +413,13 @@ class bl3p(Exchange, ImplicitAPI):
|
|
413
413
|
request: dict = {
|
414
414
|
'order_id': id,
|
415
415
|
}
|
416
|
-
|
416
|
+
response = self.privatePostMarketMoneyOrderCancel(self.extend(request, params))
|
417
|
+
#
|
418
|
+
# "success"
|
419
|
+
#
|
420
|
+
return self.safe_order({
|
421
|
+
'info': response,
|
422
|
+
})
|
417
423
|
|
418
424
|
def create_deposit_address(self, code: str, params={}):
|
419
425
|
"""
|
ccxt/btcalpha.py
CHANGED
@@ -679,7 +679,7 @@ class btcalpha(Exchange, ImplicitAPI):
|
|
679
679
|
filled = self.safe_string(order, 'amount_filled')
|
680
680
|
amount = self.safe_string(order, 'amount_original')
|
681
681
|
status = self.parse_order_status(self.safe_string(order, 'status'))
|
682
|
-
id = self.
|
682
|
+
id = self.safe_string_n(order, ['oid', 'id', 'order'])
|
683
683
|
trades = self.safe_value(order, 'trades')
|
684
684
|
side = self.safe_string_2(order, 'my_side', 'type')
|
685
685
|
return self.safe_order({
|
@@ -751,7 +751,12 @@ class btcalpha(Exchange, ImplicitAPI):
|
|
751
751
|
'order': id,
|
752
752
|
}
|
753
753
|
response = self.privatePostOrderCancel(self.extend(request, params))
|
754
|
-
|
754
|
+
#
|
755
|
+
# {
|
756
|
+
# "order": 63568
|
757
|
+
# }
|
758
|
+
#
|
759
|
+
return self.parse_order(response)
|
755
760
|
|
756
761
|
def fetch_order(self, id: str, symbol: Str = None, params={}):
|
757
762
|
"""
|
ccxt/btcturk.py
CHANGED
@@ -684,7 +684,17 @@ class btcturk(Exchange, ImplicitAPI):
|
|
684
684
|
request: dict = {
|
685
685
|
'id': id,
|
686
686
|
}
|
687
|
-
|
687
|
+
response = self.privateDeleteOrder(self.extend(request, params))
|
688
|
+
#
|
689
|
+
# {
|
690
|
+
# "success": True,
|
691
|
+
# "message": "SUCCESS",
|
692
|
+
# "code": 0
|
693
|
+
# }
|
694
|
+
#
|
695
|
+
return self.safe_order({
|
696
|
+
'info': response,
|
697
|
+
})
|
688
698
|
|
689
699
|
def fetch_open_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
|
690
700
|
"""
|
ccxt/coinbase.py
CHANGED
@@ -502,9 +502,9 @@ class coinbase(Exchange, ImplicitAPI):
|
|
502
502
|
paginate = False
|
503
503
|
paginate, params = self.handle_option_and_params(params, 'fetchAccounts', 'paginate')
|
504
504
|
if paginate:
|
505
|
-
return self.fetch_paginated_call_cursor('fetchAccounts', None, None, None, params, 'cursor', 'cursor', None,
|
505
|
+
return self.fetch_paginated_call_cursor('fetchAccounts', None, None, None, params, 'cursor', 'cursor', None, 250)
|
506
506
|
request: dict = {
|
507
|
-
'limit':
|
507
|
+
'limit': 250,
|
508
508
|
}
|
509
509
|
response = self.v3PrivateGetBrokerageAccounts(self.extend(request, params))
|
510
510
|
#
|
ccxt/coincheck.py
CHANGED
@@ -595,7 +595,14 @@ class coincheck(Exchange, ImplicitAPI):
|
|
595
595
|
request: dict = {
|
596
596
|
'id': id,
|
597
597
|
}
|
598
|
-
|
598
|
+
response = self.privateDeleteExchangeOrdersId(self.extend(request, params))
|
599
|
+
#
|
600
|
+
# {
|
601
|
+
# "success": True,
|
602
|
+
# "id": 12345
|
603
|
+
# }
|
604
|
+
#
|
605
|
+
return self.parse_order(response)
|
599
606
|
|
600
607
|
def fetch_deposits(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Transaction]:
|
601
608
|
"""
|
ccxt/coinex.py
CHANGED
@@ -1634,14 +1634,13 @@ class coinex(Exchange, ImplicitAPI):
|
|
1634
1634
|
marketType, params = self.handle_market_type_and_params('fetchBalance', None, params)
|
1635
1635
|
marginMode = None
|
1636
1636
|
marginMode, params = self.handle_margin_mode_and_params('fetchBalance', params)
|
1637
|
-
|
1638
|
-
|
1639
|
-
if marketType == 'margin':
|
1640
|
-
return self.fetch_margin_balance(params)
|
1641
|
-
elif marketType == 'swap':
|
1637
|
+
isMargin = (marginMode is not None) or (marketType == 'margin')
|
1638
|
+
if marketType == 'swap':
|
1642
1639
|
return self.fetch_swap_balance(params)
|
1643
1640
|
elif marketType == 'financial':
|
1644
1641
|
return self.fetch_financial_balance(params)
|
1642
|
+
elif isMargin:
|
1643
|
+
return self.fetch_margin_balance(params)
|
1645
1644
|
else:
|
1646
1645
|
return self.fetch_spot_balance(params)
|
1647
1646
|
|
@@ -3059,7 +3058,11 @@ class coinex(Exchange, ImplicitAPI):
|
|
3059
3058
|
#
|
3060
3059
|
# {"code":0,"data":{},"message":"OK"}
|
3061
3060
|
#
|
3062
|
-
return
|
3061
|
+
return [
|
3062
|
+
self.safe_order({
|
3063
|
+
'info': response,
|
3064
|
+
}),
|
3065
|
+
]
|
3063
3066
|
|
3064
3067
|
def fetch_order(self, id: str, symbol: Str = None, params={}):
|
3065
3068
|
"""
|
ccxt/coinlist.py
CHANGED
@@ -2177,16 +2177,18 @@ class coinlist(Exchange, ImplicitAPI):
|
|
2177
2177
|
request = self.omit(params, self.extract_params(path))
|
2178
2178
|
endpoint = '/' + self.implode_params(path, params)
|
2179
2179
|
url = self.urls['api'][api] + endpoint
|
2180
|
-
|
2180
|
+
isBulk = isinstance(params, list)
|
2181
|
+
query: Str = None
|
2182
|
+
if not isBulk:
|
2183
|
+
query = self.urlencode(request)
|
2181
2184
|
if api == 'private':
|
2182
2185
|
self.check_required_credentials()
|
2183
2186
|
timestamp = str(self.seconds())
|
2184
2187
|
auth = timestamp + method + endpoint
|
2185
|
-
isBulk = isinstance(params, list)
|
2186
2188
|
if (method == 'POST') or (method == 'PATCH') or isBulk:
|
2187
2189
|
body = self.json(request)
|
2188
2190
|
auth += body
|
2189
|
-
elif len(query) != 0:
|
2191
|
+
elif query is not None and len(query) != 0:
|
2190
2192
|
auth += '?' + query
|
2191
2193
|
url += '?' + query
|
2192
2194
|
signature = self.hmac(self.encode(auth), self.base64_to_binary(self.secret), hashlib.sha256, 'base64')
|
@@ -2196,7 +2198,7 @@ class coinlist(Exchange, ImplicitAPI):
|
|
2196
2198
|
'CL-ACCESS-TIMESTAMP': timestamp,
|
2197
2199
|
'Content-Type': 'application/json',
|
2198
2200
|
}
|
2199
|
-
elif len(query) != 0:
|
2201
|
+
elif query is not None and len(query) != 0:
|
2200
2202
|
url += '?' + query
|
2201
2203
|
return {'url': url, 'method': method, 'body': body, 'headers': headers}
|
2202
2204
|
|
ccxt/mexc.py
CHANGED
@@ -161,7 +161,7 @@ class mexc(Exchange, ImplicitAPI):
|
|
161
161
|
'fees': [
|
162
162
|
'https://www.mexc.com/fee',
|
163
163
|
],
|
164
|
-
'referral': 'https://
|
164
|
+
'referral': 'https://www.mexc.com/register?inviteCode=mexc-1FQ1GNu1',
|
165
165
|
},
|
166
166
|
'api': {
|
167
167
|
'spot': {
|
ccxt/okx.py
CHANGED
@@ -279,6 +279,9 @@ class okx(Exchange, ImplicitAPI):
|
|
279
279
|
'finance/staking-defi/eth/apy-history': 5 / 3,
|
280
280
|
'finance/savings/lending-rate-summary': 5 / 3,
|
281
281
|
'finance/savings/lending-rate-history': 5 / 3,
|
282
|
+
'finance/fixed-loan/lending-offers': 10 / 3,
|
283
|
+
'finance/fixed-loan/lending-apy-history': 10 / 3,
|
284
|
+
'finance/fixed-loan/pending-lending-volume': 10 / 3,
|
282
285
|
# public broker
|
283
286
|
'finance/sfp/dcd/products': 2 / 3,
|
284
287
|
# copytrading
|
ccxt/pro/__init__.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: ccxt
|
3
|
-
Version: 4.3.
|
3
|
+
Version: 4.3.39
|
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
|
@@ -70,6 +70,8 @@ Current feature list:
|
|
70
70
|
|
71
71
|
## Sponsored Promotion
|
72
72
|
|
73
|
+
[](https://www.bitmex.com/app/register/NZTR1q)
|
74
|
+
|
73
75
|
## See Also
|
74
76
|
|
75
77
|
- <sub>[](https://tab-trader.com/?utm_source=ccxt)</sub> **[TabTrader](https://tab-trader.com/?utm_source=ccxt)** – trading on all exchanges in one app. Available on **[Android](https://play.google.com/store/apps/details?id=com.tabtrader.android&referrer=utm_source%3Dccxt)** and **[iOS](https://itunes.apple.com/app/apple-store/id1095716562?mt=8)**!
|
@@ -98,7 +100,7 @@ Current feature list:
|
|
98
100
|
| [](https://www.huobi.com/en-us/v/register/double-invite/?inviter_id=11343840&invite_code=6rmm2223) | htx | [HTX](https://www.huobi.com/en-us/v/register/double-invite/?inviter_id=11343840&invite_code=6rmm2223) | [](https://huobiapi.github.io/docs/spot/v1/en/) | [](https://github.com/ccxt/ccxt/wiki/Certification) | [](https://ccxt.pro) | [](https://www.huobi.com/en-us/v/register/double-invite/?inviter_id=11343840&invite_code=6rmm2223) |
|
99
101
|
| [](https://www.kucoin.com/ucenter/signup?rcode=E5wkqe) | kucoin | [KuCoin](https://www.kucoin.com/ucenter/signup?rcode=E5wkqe) | [](https://docs.kucoin.com) | [](https://github.com/ccxt/ccxt/wiki/Certification) | [](https://ccxt.pro) | |
|
100
102
|
| [](https://futures.kucoin.com/?rcode=E5wkqe) | kucoinfutures | [KuCoin Futures](https://futures.kucoin.com/?rcode=E5wkqe) | [](https://docs.kucoin.com/futures) | [](https://github.com/ccxt/ccxt/wiki/Certification) | [](https://ccxt.pro) | |
|
101
|
-
| [](https://
|
103
|
+
| [](https://www.mexc.com/register?inviteCode=mexc-1FQ1GNu1) | mexc | [MEXC Global](https://www.mexc.com/register?inviteCode=mexc-1FQ1GNu1) | [](https://mexcdevelop.github.io/apidocs/) | [](https://github.com/ccxt/ccxt/wiki/Certification) | [](https://ccxt.pro) | |
|
102
104
|
| [](https://www.okx.com/join/CCXT2023) | okx | [OKX](https://www.okx.com/join/CCXT2023) | [](https://www.okx.com/docs-v5/en/) | [](https://github.com/ccxt/ccxt/wiki/Certification) | [](https://ccxt.pro) | [](https://www.okx.com/join/CCXT2023) |
|
103
105
|
| [](https://x.woo.org/register?ref=YWOWC96B) | woo | [WOO X](https://x.woo.org/register?ref=YWOWC96B) | [](https://docs.woo.org/) | [](https://github.com/ccxt/ccxt/wiki/Certification) | [](https://ccxt.pro) | [](https://x.woo.org/register?ref=YWOWC96B) |
|
104
106
|
| [](https://dex.woo.org/en/trade?ref=CCXT) | woofipro | [WOOFI PRO](https://dex.woo.org/en/trade?ref=CCXT) | [](https://orderly.network/docs/build-on-evm/building-on-evm) | [](https://github.com/ccxt/ccxt/wiki/Certification) | [](https://ccxt.pro) | [](https://dex.woo.org/en/trade?ref=CCXT) |
|
@@ -182,7 +184,7 @@ The CCXT library currently supports the following 98 cryptocurrency exchange mar
|
|
182
184
|
| [](https://www.luno.com/invite/44893A) | luno | [luno](https://www.luno.com/invite/44893A) | [](https://www.luno.com/en/api) | | [](https://ccxt.pro) |
|
183
185
|
| [](https://www.lykke.com) | lykke | [Lykke](https://www.lykke.com) | [](https://hft-apiv2.lykke.com/swagger/ui/index.html) | | |
|
184
186
|
| [](https://www.mercadobitcoin.com.br) | mercado | [Mercado Bitcoin](https://www.mercadobitcoin.com.br) | [](https://www.mercadobitcoin.com.br/api-doc) | | |
|
185
|
-
| [](https://
|
187
|
+
| [](https://www.mexc.com/register?inviteCode=mexc-1FQ1GNu1) | mexc | [MEXC Global](https://www.mexc.com/register?inviteCode=mexc-1FQ1GNu1) | [](https://mexcdevelop.github.io/apidocs/) | [](https://github.com/ccxt/ccxt/wiki/Certification) | [](https://ccxt.pro) |
|
186
188
|
| [](https://one.ndax.io/bfQiSL) | ndax | [NDAX](https://one.ndax.io/bfQiSL) | [](https://apidoc.ndax.io/) | | [](https://ccxt.pro) |
|
187
189
|
| [](https://www.novadax.com.br/?s=ccxt) | novadax | [NovaDAX](https://www.novadax.com.br/?s=ccxt) | [](https://doc.novadax.com/pt-BR/) | | |
|
188
190
|
| [](https://oceanex.pro/signup?referral=VE24QX) | oceanex | [OceanEx](https://oceanex.pro/signup?referral=VE24QX) | [](https://api.oceanex.pro/doc/v1) | | |
|
@@ -264,13 +266,13 @@ console.log(version, Object.keys(exchanges));
|
|
264
266
|
|
265
267
|
All-in-one browser bundle (dependencies included), served from a CDN of your choice:
|
266
268
|
|
267
|
-
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.
|
268
|
-
* unpkg: https://unpkg.com/ccxt@4.3.
|
269
|
+
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.39/dist/ccxt.browser.min.js
|
270
|
+
* unpkg: https://unpkg.com/ccxt@4.3.39/dist/ccxt.browser.min.js
|
269
271
|
|
270
272
|
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.
|
271
273
|
|
272
274
|
```HTML
|
273
|
-
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.3.
|
275
|
+
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.3.39/dist/ccxt.browser.min.js"></script>
|
274
276
|
```
|
275
277
|
|
276
278
|
Creates a global `ccxt` object:
|
@@ -1,4 +1,4 @@
|
|
1
|
-
ccxt/__init__.py,sha256=
|
1
|
+
ccxt/__init__.py,sha256=W0LeQRfhwjIVAes71WDlvPNRzp3UhULNZzskPdNpw58,15950
|
2
2
|
ccxt/ace.py,sha256=6x4vkcS2lGSkAQuzS-AAgYJLPDNNfNo9NMIdAoXzs18,41776
|
3
3
|
ccxt/alpaca.py,sha256=EZ7uF3XI8EXXIsCZ-UVpruBXS96Kps6WOOukmdcgCn0,47326
|
4
4
|
ccxt/ascendex.py,sha256=rUUU3n4j8QrMrJCk4pVwVastIYzS3eDTUAL9R2ePErk,151832
|
@@ -19,7 +19,7 @@ ccxt/bitfinex2.py,sha256=smVuwDShHy4m4s4i4xGzx04r197GKPL8MA3lT2End4E,160612
|
|
19
19
|
ccxt/bitflyer.py,sha256=rvykeLLkDYVMEwXs4rInQClYwdXIXmj_7mxDpGT216I,41565
|
20
20
|
ccxt/bitget.py,sha256=7ETvr_9MSWv0KlbdmVxBMd-K7z_2EAdTq1Xaj_Gi6nE,423496
|
21
21
|
ccxt/bithumb.py,sha256=0oRYEp30LykNchRZwqbsiZlrzY4koY6EFWubVYs5hU8,45684
|
22
|
-
ccxt/bitmart.py,sha256=
|
22
|
+
ccxt/bitmart.py,sha256=I21OAvRJASy0tQk-l0NfBP4BmMyUxbryx3mUmW7tE6U,204434
|
23
23
|
ccxt/bitmex.py,sha256=koETQgb-yVZ3ZfP6qIHyTMLTDk8eXTHauhwhaP79ZBQ,126862
|
24
24
|
ccxt/bitopro.py,sha256=kjGn1UOy6toGyEbpV_al50eGCjqI75GN4LXpGbmL4Tw,68743
|
25
25
|
ccxt/bitpanda.py,sha256=aiwPkx9lKbVzt4ggoYdq_mIbMGtg5ZtGl2yRHO5xyz8,471
|
@@ -28,22 +28,22 @@ ccxt/bitso.py,sha256=eIFHfR1BUkrwrq1b8BmeumrmNyUc0brLTPXBUXpw2dc,71092
|
|
28
28
|
ccxt/bitstamp.py,sha256=tgwBpJtz_nR1iJlA2SwNLOKWLLuHCMlEqcVzw5XExbw,92448
|
29
29
|
ccxt/bitteam.py,sha256=Nh6KvtzPFmBuEgNRN8riiIKCyHsxi86sf0pe-XVc7NY,102223
|
30
30
|
ccxt/bitvavo.py,sha256=gLqkdE4_XwKKAer78KOT_D8L5NlbNfFCGAnBSNje9r8,91774
|
31
|
-
ccxt/bl3p.py,sha256=
|
31
|
+
ccxt/bl3p.py,sha256=ao8c2nrO4nlDyICLZma8tiJsRgM-3chRlooi_Hu7Zxg,20649
|
32
32
|
ccxt/blockchaincom.py,sha256=Snf5tclR2T_qQD_eS6cQbeONpBrub6irhRAK6Y00BgM,48974
|
33
33
|
ccxt/blofin.py,sha256=LrKelmUtqUes41vHsKEVclYTyCClA88NHfh8nbrRA7g,99500
|
34
|
-
ccxt/btcalpha.py,sha256=
|
34
|
+
ccxt/btcalpha.py,sha256=LyqEmXi-h6pz6MaVcBLWGBDGMuDiu2cXbwk35jXb1_k,36967
|
35
35
|
ccxt/btcbox.py,sha256=1Vs2A4jOe5Wc4qgOblDBrIyRmp0m_aQZCk9-R7DvSqs,23588
|
36
36
|
ccxt/btcmarkets.py,sha256=mSK14nf9EPwKtdd9vZAAQe4LCWWE9B8atZLANAOGnVs,51654
|
37
|
-
ccxt/btcturk.py,sha256=
|
37
|
+
ccxt/btcturk.py,sha256=IqUB3IL4pJlIWEMfD50FNH7gcycC6Q9rLdRe7RZaUro,36993
|
38
38
|
ccxt/bybit.py,sha256=QOdG3Z17PYdUoXYG33UY0JvSZRhWJrNC2eihI8eMOr4,413194
|
39
39
|
ccxt/cex.py,sha256=IUb295DSS6H3SsPbCjvBKPzzNpQYvBXaRqFF-T450wM,70086
|
40
|
-
ccxt/coinbase.py,sha256=
|
40
|
+
ccxt/coinbase.py,sha256=jTQ91In82SqxfgMJ7kyHD2b8NqW_vOWchmTm825ADac,217233
|
41
41
|
ccxt/coinbaseadvanced.py,sha256=d5g6nRx-NCcCwZDdtp8FsI2D-pRjSvnAP9ISSKY_nCQ,538
|
42
42
|
ccxt/coinbaseexchange.py,sha256=pnS1O5ZkUIY3QQ8IotdWgvJDo0qB0NS6RJZPrPOvwd4,78908
|
43
43
|
ccxt/coinbaseinternational.py,sha256=cGMA-DukMh64r0zd-Z5Ussyo7kYiItXV8YWnU5myAF4,87472
|
44
|
-
ccxt/coincheck.py,sha256
|
45
|
-
ccxt/coinex.py,sha256=
|
46
|
-
ccxt/coinlist.py,sha256=
|
44
|
+
ccxt/coincheck.py,sha256=-9MS_DPgSfyPplgvjFzRfaQ3YSHW_WDxP3WnTAiICws,35943
|
45
|
+
ccxt/coinex.py,sha256=xS7McsQM9YLWhYg10hFp_oj_ABE5Q3eaUHiekDVsVGU,258057
|
46
|
+
ccxt/coinlist.py,sha256=zmpX2cbjDrFUZG46aIgk-BnBffod73K2muoU-cyHwGI,103479
|
47
47
|
ccxt/coinmate.py,sha256=J9oS9ktyC-Z4Yxe9vVwtRNFTUPtLSaBzeuQIbsg7u04,46112
|
48
48
|
ccxt/coinmetro.py,sha256=QMbKRQQ3w6kvvMKZ71WCpFeoVDLn_iFL3O-3ihwErqs,80869
|
49
49
|
ccxt/coinone.py,sha256=MccKIV9Mm6h79wS2pCey-OECT-ySeScTcTGETzdj1Rk,47026
|
@@ -79,12 +79,12 @@ ccxt/lbank.py,sha256=ZVDfA2EJR8Qxj10d-3y1kwemrr-wxFzKTLkmoTJAPqs,115407
|
|
79
79
|
ccxt/luno.py,sha256=Yx6jUJb4mLbBGVg0WZy_Ttr5VRYNgG9DEXmjM3mnzAI,46031
|
80
80
|
ccxt/lykke.py,sha256=bCIZ09jov-B-B5Qk26jsy9TUDJtXsOetM3ChPuSDCL4,51220
|
81
81
|
ccxt/mercado.py,sha256=zdf064h1PZjMZuy2ZMxilTxElBcwUZuH8-xcOi9TNVQ,35471
|
82
|
-
ccxt/mexc.py,sha256=
|
82
|
+
ccxt/mexc.py,sha256=2Evx39g8kBLwUL_CF6K-kkq3-A0HYQsKjr7EHZG5zXQ,241295
|
83
83
|
ccxt/ndax.py,sha256=u8s6Bs48TKhwc2jk81GwzU3N0DpsCEYsFcFaxBOA3Mo,108865
|
84
84
|
ccxt/novadax.py,sha256=wbDaAYYvn3Xo4MG7uOIzkzc9hOjeymZbFzmdacup-SA,64437
|
85
85
|
ccxt/oceanex.py,sha256=FqoJb_yUOwMqS2wJLZsSy-SOtlKgZhW5xn6ZYMBvs0U,38022
|
86
86
|
ccxt/okcoin.py,sha256=ZgcUzRfL5UnquTqze3WOkQttZF-Fcq-9p13YiNHYixg,151402
|
87
|
-
ccxt/okx.py,sha256=
|
87
|
+
ccxt/okx.py,sha256=6m2Y8_Fc_UulSegzU69k1VdMr70toCK2G7NxQjN-XtA,377868
|
88
88
|
ccxt/onetrading.py,sha256=2nSe_Z_Jy7O4rPggwbY17M6oimu-t0PkeTejTu26XcA,88340
|
89
89
|
ccxt/p2b.py,sha256=_kQjmJ1O9sgb5HnNsefD0Jy-DejW4chndqraV5jV3ak,54334
|
90
90
|
ccxt/paymium.py,sha256=9TfMe2ViBYYodGcbVTPm6QOyuIxI6vmbl46xa5bl8D8,24420
|
@@ -190,7 +190,7 @@ ccxt/abstract/ndax.py,sha256=M98Ys406KT6T19Y98dXriD6YjzfglHHbnfQw-PDYWtM,11878
|
|
190
190
|
ccxt/abstract/novadax.py,sha256=IvQFP_v2Q-Sx0tK2bXx4oY81rtNwC7gkc75p_E2jhKw,3093
|
191
191
|
ccxt/abstract/oceanex.py,sha256=a0xAelMYDY_J3QwwLyIX2tGQcv4z2gmX_yJyC6FqoFg,1721
|
192
192
|
ccxt/abstract/okcoin.py,sha256=3NmYh-68W_4AXmkqjkf9dRaJcPgNYQG5mKZssJKT4gs,9414
|
193
|
-
ccxt/abstract/okx.py,sha256=
|
193
|
+
ccxt/abstract/okx.py,sha256=Mjczthyel0LfaPV14FD5yD-9uuJdzpCbjGNDHICJgEk,47041
|
194
194
|
ccxt/abstract/onetrading.py,sha256=TtJq4d44lrutV8wcK0lX4v0EfQ72ly6fxR-zB7-FSuI,3859
|
195
195
|
ccxt/abstract/p2b.py,sha256=XwaH1hLIi2T6RHltUwFj28Y5fbo6dc0jbjI01sVeOJw,2054
|
196
196
|
ccxt/abstract/paymium.py,sha256=Bol6PEkHg_47betqBnL4aQQ4IhIp4owID_12VfDqn0E,2843
|
@@ -210,7 +210,7 @@ ccxt/abstract/woofipro.py,sha256=El50vWGAV-4QPIDhgSnd4egfvk246NB6vTC-8h722vs,160
|
|
210
210
|
ccxt/abstract/yobit.py,sha256=8ycfCO8ORFly9hc0Aa47sZyX4_ZKPXS9h9yJzI-uQ7Q,1339
|
211
211
|
ccxt/abstract/zaif.py,sha256=m15WHdl3gYy0GOXNZ8NEH8eE7sVh8c0T_ITNuU8vXeU,3935
|
212
212
|
ccxt/abstract/zonda.py,sha256=X-hCW0SdX3YKZWixDyW-O2211M58Rno8kKJ6quY7rw4,7183
|
213
|
-
ccxt/async_support/__init__.py,sha256=
|
213
|
+
ccxt/async_support/__init__.py,sha256=ZzbvN7Hl7Tn2naehb0w14Juxgw7XTVKflCwu-2W0R-U,15723
|
214
214
|
ccxt/async_support/ace.py,sha256=tsRgs_o4Iq7q8IkD83FUdC-2ztylhgO4cp2hww3rlqQ,42000
|
215
215
|
ccxt/async_support/alpaca.py,sha256=3845DgojoA1p0pxrqnDIqHbbRcEwZhZIkE4aygD5ics,47538
|
216
216
|
ccxt/async_support/ascendex.py,sha256=7tZ4C7FfzmuB_ADYjl6IkyQQ5JG0Vt1AD_B3fTeY6V0,152620
|
@@ -231,7 +231,7 @@ ccxt/async_support/bitfinex2.py,sha256=QQstleJSkjDRMHGSFZQIUHJ5fx55Bgdytk35gMWke
|
|
231
231
|
ccxt/async_support/bitflyer.py,sha256=RWrRkrZJow4M5uwoqTCD0bcITItbC5WZ57Mcmv0_1nk,41873
|
232
232
|
ccxt/async_support/bitget.py,sha256=BLMe-ofDnsehCgJSJZkKK2JN7NbsBFZGop_cuM57cyU,425120
|
233
233
|
ccxt/async_support/bithumb.py,sha256=0_SehUTG-pqL8uBHE_IhwJ5BjNTFfbxwF0A_IufTNuA,45914
|
234
|
-
ccxt/async_support/bitmart.py,sha256=
|
234
|
+
ccxt/async_support/bitmart.py,sha256=F1LeYW_ExcJ1SKRABq_LqH5dq6Q145HanIvG40RPRsc,205390
|
235
235
|
ccxt/async_support/bitmex.py,sha256=JCRSgTWNwB97A1vwvEpajD8VQ4AE8Qs5ZU1yd8KaiYc,127440
|
236
236
|
ccxt/async_support/bitopro.py,sha256=OWWNB_6Vpe10JG0P7dpmgerPEtmuxbx5_DLBFWnsL7w,69147
|
237
237
|
ccxt/async_support/bitpanda.py,sha256=2k3URBWrpnh2xHa7JiYenI7_4MW5UeOPGzetlmRkR4U,485
|
@@ -240,22 +240,22 @@ ccxt/async_support/bitso.py,sha256=s1arsCntXJPE6oTHU4Isav3JyFc5ioQXq-ZxVp-popQ,7
|
|
240
240
|
ccxt/async_support/bitstamp.py,sha256=YAXST5PwFID2Gh-ikWy3xK0tXT_jUsIqi7bHFhbe5r0,92948
|
241
241
|
ccxt/async_support/bitteam.py,sha256=7qkGnxmLhFIu8WOvVmRFE0wV9HKNmJk-yHrqJ43ksuk,102555
|
242
242
|
ccxt/async_support/bitvavo.py,sha256=kSonShw7cz-0n1cvjc5z7k5Vnbe1Q9AgCQHWpZchUv0,92208
|
243
|
-
ccxt/async_support/bl3p.py,sha256=
|
243
|
+
ccxt/async_support/bl3p.py,sha256=hEZ7xEtj7MDkHJ8nZjJN4VZLmAMVzljBpqsi9YBQ3YM,20777
|
244
244
|
ccxt/async_support/blockchaincom.py,sha256=P_edztJfehnxSbWAnEGGzUgp3YNQ3cgtSUFgXpyzK_8,49366
|
245
245
|
ccxt/async_support/blofin.py,sha256=lCzCaKe2caQj1XFUIZ8zXj5WBWxDGFjg_SNykxbnHYc,100084
|
246
|
-
ccxt/async_support/btcalpha.py,sha256=
|
246
|
+
ccxt/async_support/btcalpha.py,sha256=SYmpEot6Knp0B0FAZ5-0r_w5SuQqEhQYFwLnTekyiAM,37245
|
247
247
|
ccxt/async_support/btcbox.py,sha256=ML57vDSZC7UJfl5MvNKytPtvyR_rOnIoBOZRhGPxWwE,23782
|
248
248
|
ccxt/async_support/btcmarkets.py,sha256=l_nhiwG3VEJw2SJc2z53B5tyPSMkrNSowu9TmfLIgp0,52004
|
249
|
-
ccxt/async_support/btcturk.py,sha256=
|
249
|
+
ccxt/async_support/btcturk.py,sha256=wWelnADTNhrGGVH0qjuDaOPZ5xkMblggHUDFGQBMG20,37211
|
250
250
|
ccxt/async_support/bybit.py,sha256=0FOxbry0iP0nK24xlMKBpBAYgMWrAvp2TtIUowaJgyQ,414998
|
251
251
|
ccxt/async_support/cex.py,sha256=8XcqkxF2fSzLnenfkyvXxHmnWgUvrifaBAI-HiJLIZY,70436
|
252
|
-
ccxt/async_support/coinbase.py,sha256=
|
252
|
+
ccxt/async_support/coinbase.py,sha256=oZCypjcCiAPf5dIZqbmu_ZcGjunkkPg4wLtqw1KUHfs,218387
|
253
253
|
ccxt/async_support/coinbaseadvanced.py,sha256=Kupwnuxiu_qTjwCNV2asacoDUNFQvcaHNAznUJPhdQs,552
|
254
254
|
ccxt/async_support/coinbaseexchange.py,sha256=eDJIvxNNm-MvdFzCUlM0JQMwcSm1DBymXy4AaV2GKJc,79414
|
255
255
|
ccxt/async_support/coinbaseinternational.py,sha256=pIybc9DfEeUVVnorHAkAitibuHuEatQZ2MciwIW6WLA,88026
|
256
|
-
ccxt/async_support/coincheck.py,sha256=
|
257
|
-
ccxt/async_support/coinex.py,sha256=
|
258
|
-
ccxt/async_support/coinlist.py,sha256=
|
256
|
+
ccxt/async_support/coincheck.py,sha256=Vhnzmdr_N7fpSOIthoTE6HSqVA5xPF2bG6W5UleVdkk,36149
|
257
|
+
ccxt/async_support/coinex.py,sha256=_TNVuWDPgU9KUSJEN_T-IXWgOH234TTz4ZUfdtLWqRA,259315
|
258
|
+
ccxt/async_support/coinlist.py,sha256=qKoKEKjQA-GFFXewulvSdchQvtVwCmSk6vRUjy88ajI,103967
|
259
259
|
ccxt/async_support/coinmate.py,sha256=nYBc_dXLwXDmGMOpBrpOLD9K7O3YTyhx9FerCRYEn3I,46378
|
260
260
|
ccxt/async_support/coinmetro.py,sha256=RFOMp1sxrk3jsM_5M0sLou1q79y9kz32pWPkJOcNPTQ,81189
|
261
261
|
ccxt/async_support/coinone.py,sha256=nL8JFr2uknykekkDnFiwW6OCLehv3yM0CmyNQNuWa3I,47268
|
@@ -291,12 +291,12 @@ ccxt/async_support/lbank.py,sha256=8XJIKUYhoSZ9sQqAw7VrOV-7cDe9o_8KaV-slgWAkpY,1
|
|
291
291
|
ccxt/async_support/luno.py,sha256=Pdw-ls7Pnp8uqwT4aTMevS11lFBo2B0fzz8gpfSVCRE,46369
|
292
292
|
ccxt/async_support/lykke.py,sha256=eyKqdeCl9UJtOc8RnRa5yggaKCJeGc3aw6zKNKIrAfw,51534
|
293
293
|
ccxt/async_support/mercado.py,sha256=r6izA8YEgagyOuvt66UKf0DPS3EiZM3hgCj920Gq8Os,35713
|
294
|
-
ccxt/async_support/mexc.py,sha256=
|
294
|
+
ccxt/async_support/mexc.py,sha256=iNzFChkrC57YxyLek0NW1RzYUu3Tvo6YWCjksosS5p8,242473
|
295
295
|
ccxt/async_support/ndax.py,sha256=R3gQ8igEJnX7XOMqOi8nKxVTJVKwsZKAxAZaJi1yRDg,109389
|
296
296
|
ccxt/async_support/novadax.py,sha256=7hgBWCcuZRDRSD79-Wel4cesQuyQjo_CP-MK2S7IKOw,64805
|
297
297
|
ccxt/async_support/oceanex.py,sha256=GdudBIC9hCuwI7vE3Mmrw8qvlQmuKclCGTyhuFjorOU,38342
|
298
298
|
ccxt/async_support/okcoin.py,sha256=3l0dRwsxG9u5hyFYxlHRFfKJ4gzvcXOQ3FTTAkHHwx4,151926
|
299
|
-
ccxt/async_support/okx.py,sha256=
|
299
|
+
ccxt/async_support/okx.py,sha256=iTFg2uVB_Ohk84PoqVu70fAdn4nwpb2wtRbdSLULyfQ,379455
|
300
300
|
ccxt/async_support/onetrading.py,sha256=u6Y7zWjfVBVBl9RLIUfwAneZzE4fOENx7Y11zE7MChM,88792
|
301
301
|
ccxt/async_support/p2b.py,sha256=vwavNnMyU7tJF1FIIBhZe4az58clzptk0bEuIDPmOAA,54576
|
302
302
|
ccxt/async_support/paymium.py,sha256=WKPElafAfmg06ATcLLIS0V09kZIGlSbn0L7Z3rcLvQA,24608
|
@@ -317,7 +317,7 @@ ccxt/async_support/yobit.py,sha256=KQcu9nXJPDlAodZyxOXKIn6eTSLmlvUlgRFE6EBLfug,5
|
|
317
317
|
ccxt/async_support/zaif.py,sha256=jTK5pLZSpKL1Pt0qAJTjN09TDS5AfhptGgGAqw7sNwE,29045
|
318
318
|
ccxt/async_support/zonda.py,sha256=e5sSXcFM7NZSyCGPoKmeyNe5wLIxJZJhDAetMknwAYo,81544
|
319
319
|
ccxt/async_support/base/__init__.py,sha256=aVYSsFi--b4InRs9zDN_wtCpj8odosAB726JdUHavrk,67
|
320
|
-
ccxt/async_support/base/exchange.py,sha256=
|
320
|
+
ccxt/async_support/base/exchange.py,sha256=cYG_fcCZqKj0YCpwwFIZWTTpM9NZd8hA0609klIobRA,109872
|
321
321
|
ccxt/async_support/base/throttler.py,sha256=tvDVcdRUVYi8fZRlEcnqtgzcgB_KMUMRs5Pu8tuU-tU,1847
|
322
322
|
ccxt/async_support/base/ws/__init__.py,sha256=uockzpLuwntKGZbs5EOWFe-Zg-k6Cj7GhNJLc_RX0so,1791
|
323
323
|
ccxt/async_support/base/ws/aiohttp_client.py,sha256=5IEiT0elWI9a7Vr-KV0jgmlbpLJWBzIlrLaCkTKGaqY,5752
|
@@ -331,10 +331,10 @@ ccxt/async_support/base/ws/order_book_side.py,sha256=GhnGUt78pJ-AYL_Dq9produGjmB
|
|
331
331
|
ccxt/base/__init__.py,sha256=eTx1OE3HJjspFUQjGm6LBhaQiMKJnXjkdP-JUXknyQ0,1320
|
332
332
|
ccxt/base/decimal_to_precision.py,sha256=fgWRBzRTtsf3r2INyS4f7WHlzgjB5YM1ekiwqD21aac,6634
|
333
333
|
ccxt/base/errors.py,sha256=FGdyULeNCNcl52gA_CNhe2dZmat9GJGkTdlIyDXAF_A,4213
|
334
|
-
ccxt/base/exchange.py,sha256=
|
334
|
+
ccxt/base/exchange.py,sha256=cKy2czpOW8LJ1kArPIHMQRe9L5Dtnv6BrWqyJl27Ndo,280871
|
335
335
|
ccxt/base/precise.py,sha256=_xfu54sV0vWNnOfGTKRFykeuWP8mn4K1m9lk1tcllX4,8565
|
336
336
|
ccxt/base/types.py,sha256=RGGcbz86cVtrmU602zoFO5gSWrv_J7IHxQkPnzmNirs,9247
|
337
|
-
ccxt/pro/__init__.py,sha256=
|
337
|
+
ccxt/pro/__init__.py,sha256=mZhV4KeTDr09JO-LlRJZAYzoXpX6an8iSs3g8L3FmqY,7107
|
338
338
|
ccxt/pro/alpaca.py,sha256=81nFwDKyNlmUnhSyRyDLmLU6LGt3yqip1L_Ms2UyAmw,27215
|
339
339
|
ccxt/pro/ascendex.py,sha256=e4WZqmTkIz9sVAWtKAaV6BvanrM2ylRdzjxrclZYmOE,35456
|
340
340
|
ccxt/pro/bequant.py,sha256=5zbsP8BHQTUZ8ZNL6uaACxDbUClgkOV4SYfXT_LfQVg,1351
|
@@ -535,7 +535,7 @@ ccxt/test/base/test_ticker.py,sha256=cMTIMb1oySNORUCmqI5ZzMswlEyCF6gJMah3vfvo8wQ
|
|
535
535
|
ccxt/test/base/test_trade.py,sha256=PMtmB8V38dpaP-eb8h488xYMlR6D69yCOhsA1RuWrUA,2336
|
536
536
|
ccxt/test/base/test_trading_fee.py,sha256=2aDCNJtqBkTC_AieO0l1HYGq5hz5qkWlkWb9Nv_fcwk,1066
|
537
537
|
ccxt/test/base/test_transaction.py,sha256=BTbB4UHHXkrvYgwbrhh867nVRlevmIkIrz1W_odlQJI,1434
|
538
|
-
ccxt-4.3.
|
539
|
-
ccxt-4.3.
|
540
|
-
ccxt-4.3.
|
541
|
-
ccxt-4.3.
|
538
|
+
ccxt-4.3.39.dist-info/METADATA,sha256=aglXP5k7whSv6d95AnBBeUr1Oh77YHOPYdI5nUH1llA,112977
|
539
|
+
ccxt-4.3.39.dist-info/WHEEL,sha256=P2T-6epvtXQ2cBOE_U1K4_noqlJFN3tj15djMgEu4NM,110
|
540
|
+
ccxt-4.3.39.dist-info/top_level.txt,sha256=CkQDuCTDKNcImPV60t36G6MdYfxsAPNiSaEwifVoVMo,5
|
541
|
+
ccxt-4.3.39.dist-info/RECORD,,
|
File without changes
|
File without changes
|