ccxt 4.3.7__py2.py3-none-any.whl → 4.3.8__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.
Potentially problematic release.
This version of ccxt might be problematic. Click here for more details.
- ccxt/__init__.py +1 -1
- ccxt/async_support/__init__.py +1 -1
- ccxt/async_support/base/exchange.py +1 -1
- ccxt/async_support/binance.py +1 -1
- ccxt/async_support/bingx.py +1 -1
- ccxt/async_support/bitget.py +1 -1
- ccxt/async_support/coinex.py +104 -145
- ccxt/async_support/okx.py +1 -1
- ccxt/async_support/woo.py +1 -1
- ccxt/base/exchange.py +12 -4
- ccxt/binance.py +1 -1
- ccxt/bingx.py +1 -1
- ccxt/bitget.py +1 -1
- ccxt/coinex.py +104 -145
- ccxt/okx.py +1 -1
- ccxt/pro/__init__.py +1 -1
- ccxt/woo.py +1 -1
- {ccxt-4.3.7.dist-info → ccxt-4.3.8.dist-info}/METADATA +4 -4
- {ccxt-4.3.7.dist-info → ccxt-4.3.8.dist-info}/RECORD +21 -21
- {ccxt-4.3.7.dist-info → ccxt-4.3.8.dist-info}/WHEEL +0 -0
- {ccxt-4.3.7.dist-info → ccxt-4.3.8.dist-info}/top_level.txt +0 -0
ccxt/__init__.py
CHANGED
ccxt/async_support/__init__.py
CHANGED
ccxt/async_support/binance.py
CHANGED
@@ -11884,7 +11884,7 @@ class binance(Exchange, ImplicitAPI):
|
|
11884
11884
|
# }
|
11885
11885
|
#
|
11886
11886
|
rows = self.safe_list(response, responseQuery, [])
|
11887
|
-
return self.parse_conversions(rows, fromCurrencyKey, toCurrencyKey, since, limit)
|
11887
|
+
return self.parse_conversions(rows, code, fromCurrencyKey, toCurrencyKey, since, limit)
|
11888
11888
|
|
11889
11889
|
def parse_conversion(self, conversion, fromCurrency: Currency = None, toCurrency: Currency = None) -> Conversion:
|
11890
11890
|
#
|
ccxt/async_support/bingx.py
CHANGED
@@ -2318,7 +2318,7 @@ class bingx(Exchange, ImplicitAPI):
|
|
2318
2318
|
return self.safe_order({
|
2319
2319
|
'info': info,
|
2320
2320
|
'id': self.safe_string_2(order, 'orderId', 'i'),
|
2321
|
-
'clientOrderId': self.safe_string_n(order, ['clientOrderID', 'origClientOrderId', 'c']),
|
2321
|
+
'clientOrderId': self.safe_string_n(order, ['clientOrderID', 'clientOrderId', 'origClientOrderId', 'c']),
|
2322
2322
|
'symbol': self.safe_symbol(marketId, market, '-', marketType),
|
2323
2323
|
'timestamp': timestamp,
|
2324
2324
|
'datetime': self.iso8601(timestamp),
|
ccxt/async_support/bitget.py
CHANGED
@@ -8063,7 +8063,7 @@ class bitget(Exchange, ImplicitAPI):
|
|
8063
8063
|
#
|
8064
8064
|
data = self.safe_dict(response, 'data', {})
|
8065
8065
|
dataList = self.safe_list(data, 'dataList', [])
|
8066
|
-
return self.parse_conversions(dataList, 'fromCoin', 'toCoin', since, limit)
|
8066
|
+
return self.parse_conversions(dataList, code, 'fromCoin', 'toCoin', since, limit)
|
8067
8067
|
|
8068
8068
|
def parse_conversion(self, conversion, fromCurrency: Currency = None, toCurrency: Currency = None) -> Conversion:
|
8069
8069
|
#
|
ccxt/async_support/coinex.py
CHANGED
@@ -1488,196 +1488,151 @@ class coinex(Exchange, ImplicitAPI):
|
|
1488
1488
|
|
1489
1489
|
async def fetch_margin_balance(self, params={}):
|
1490
1490
|
await self.load_markets()
|
1491
|
-
|
1492
|
-
marketId = self.safe_string(params, 'market')
|
1493
|
-
market: Market = None
|
1494
|
-
if symbol is not None:
|
1495
|
-
market = self.market(symbol)
|
1496
|
-
marketId = market['id']
|
1497
|
-
elif marketId is None:
|
1498
|
-
raise ArgumentsRequired(self.id + ' fetchMarginBalance() fetching a margin account requires a market parameter or a symbol parameter')
|
1499
|
-
params = self.omit(params, ['symbol', 'market'])
|
1500
|
-
request = {
|
1501
|
-
'market': marketId,
|
1502
|
-
}
|
1503
|
-
response = await self.v1PrivateGetMarginAccount(self.extend(request, params))
|
1491
|
+
response = await self.v2PrivateGetAssetsMarginBalance(params)
|
1504
1492
|
#
|
1505
|
-
#
|
1506
|
-
#
|
1507
|
-
#
|
1508
|
-
#
|
1509
|
-
#
|
1510
|
-
#
|
1511
|
-
#
|
1512
|
-
#
|
1513
|
-
#
|
1514
|
-
#
|
1515
|
-
#
|
1516
|
-
#
|
1517
|
-
#
|
1518
|
-
#
|
1519
|
-
#
|
1520
|
-
#
|
1521
|
-
#
|
1522
|
-
#
|
1523
|
-
#
|
1524
|
-
#
|
1525
|
-
#
|
1526
|
-
#
|
1527
|
-
#
|
1528
|
-
#
|
1529
|
-
#
|
1530
|
-
#
|
1531
|
-
#
|
1532
|
-
#
|
1533
|
-
#
|
1534
|
-
# "liquidation_price": ""
|
1535
|
-
# },
|
1536
|
-
# "message": "Success"
|
1537
|
-
# }
|
1493
|
+
# {
|
1494
|
+
# "data": [
|
1495
|
+
# {
|
1496
|
+
# "margin_account": "BTCUSDT",
|
1497
|
+
# "base_ccy": "BTC",
|
1498
|
+
# "quote_ccy": "USDT",
|
1499
|
+
# "available": {
|
1500
|
+
# "base_ccy": "0.00000026",
|
1501
|
+
# "quote_ccy": "0"
|
1502
|
+
# },
|
1503
|
+
# "frozen": {
|
1504
|
+
# "base_ccy": "0",
|
1505
|
+
# "quote_ccy": "0"
|
1506
|
+
# },
|
1507
|
+
# "repaid": {
|
1508
|
+
# "base_ccy": "0",
|
1509
|
+
# "quote_ccy": "0"
|
1510
|
+
# },
|
1511
|
+
# "interest": {
|
1512
|
+
# "base_ccy": "0",
|
1513
|
+
# "quote_ccy": "0"
|
1514
|
+
# },
|
1515
|
+
# "rik_rate": "",
|
1516
|
+
# "liq_price": ""
|
1517
|
+
# },
|
1518
|
+
# ],
|
1519
|
+
# "code": 0,
|
1520
|
+
# "message": "OK"
|
1521
|
+
# }
|
1538
1522
|
#
|
1539
1523
|
result = {'info': response}
|
1540
|
-
|
1541
|
-
|
1542
|
-
|
1543
|
-
|
1544
|
-
|
1545
|
-
|
1546
|
-
|
1547
|
-
|
1548
|
-
|
1549
|
-
|
1550
|
-
|
1551
|
-
|
1552
|
-
|
1553
|
-
|
1554
|
-
|
1555
|
-
|
1556
|
-
buyAccount = self.account()
|
1557
|
-
buyCurrencyId = self.safe_string(data, 'buy_asset_type')
|
1558
|
-
buyCurrencyCode = self.safe_currency_code(buyCurrencyId)
|
1559
|
-
buyAccount['free'] = self.safe_string(free, 'buy_type')
|
1560
|
-
buyAccount['total'] = self.safe_string(total, 'buy_type')
|
1561
|
-
buyDebt = self.safe_string(loan, 'buy_type')
|
1562
|
-
buyInterest = self.safe_string(interest, 'buy_type')
|
1563
|
-
buyAccount['debt'] = Precise.string_add(buyDebt, buyInterest)
|
1564
|
-
result[buyCurrencyCode] = buyAccount
|
1565
|
-
#
|
1524
|
+
balances = self.safe_list(response, 'data', [])
|
1525
|
+
for i in range(0, len(balances)):
|
1526
|
+
entry = balances[i]
|
1527
|
+
free = self.safe_dict(entry, 'available', {})
|
1528
|
+
used = self.safe_dict(entry, 'frozen', {})
|
1529
|
+
loan = self.safe_dict(entry, 'repaid', {})
|
1530
|
+
interest = self.safe_dict(entry, 'interest', {})
|
1531
|
+
baseAccount = self.account()
|
1532
|
+
baseCurrencyId = self.safe_string(entry, 'base_ccy')
|
1533
|
+
baseCurrencyCode = self.safe_currency_code(baseCurrencyId)
|
1534
|
+
baseAccount['free'] = self.safe_string(free, 'base_ccy')
|
1535
|
+
baseAccount['used'] = self.safe_string(used, 'base_ccy')
|
1536
|
+
baseDebt = self.safe_string(loan, 'base_ccy')
|
1537
|
+
baseInterest = self.safe_string(interest, 'base_ccy')
|
1538
|
+
baseAccount['debt'] = Precise.string_add(baseDebt, baseInterest)
|
1539
|
+
result[baseCurrencyCode] = baseAccount
|
1566
1540
|
return self.safe_balance(result)
|
1567
1541
|
|
1568
1542
|
async def fetch_spot_balance(self, params={}):
|
1569
1543
|
await self.load_markets()
|
1570
|
-
response = await self.
|
1544
|
+
response = await self.v2PrivateGetAssetsSpotBalance(params)
|
1571
1545
|
#
|
1572
1546
|
# {
|
1573
|
-
#
|
1574
|
-
#
|
1575
|
-
#
|
1576
|
-
#
|
1577
|
-
#
|
1578
|
-
#
|
1579
|
-
#
|
1580
|
-
#
|
1581
|
-
#
|
1582
|
-
# },
|
1583
|
-
# "ETH": { # ETH account
|
1584
|
-
# "available": "5.06000", # Available ETH
|
1585
|
-
# "frozen": "0.00000" # Frozen ETH
|
1586
|
-
# }
|
1587
|
-
# },
|
1588
|
-
# "message": "Ok"
|
1547
|
+
# "code": 0,
|
1548
|
+
# "data": [
|
1549
|
+
# {
|
1550
|
+
# "available": "0.00000046",
|
1551
|
+
# "ccy": "USDT",
|
1552
|
+
# "frozen": "0"
|
1553
|
+
# }
|
1554
|
+
# ],
|
1555
|
+
# "message": "OK"
|
1589
1556
|
# }
|
1590
1557
|
#
|
1591
1558
|
result = {'info': response}
|
1592
|
-
balances = self.
|
1593
|
-
|
1594
|
-
|
1595
|
-
currencyId =
|
1559
|
+
balances = self.safe_list(response, 'data', [])
|
1560
|
+
for i in range(0, len(balances)):
|
1561
|
+
entry = balances[i]
|
1562
|
+
currencyId = self.safe_string(entry, 'ccy')
|
1596
1563
|
code = self.safe_currency_code(currencyId)
|
1597
|
-
balance = self.safe_value(balances, currencyId, {})
|
1598
1564
|
account = self.account()
|
1599
|
-
account['free'] = self.safe_string(
|
1600
|
-
account['used'] = self.safe_string(
|
1565
|
+
account['free'] = self.safe_string(entry, 'available')
|
1566
|
+
account['used'] = self.safe_string(entry, 'frozen')
|
1601
1567
|
result[code] = account
|
1602
1568
|
return self.safe_balance(result)
|
1603
1569
|
|
1604
1570
|
async def fetch_swap_balance(self, params={}):
|
1605
1571
|
await self.load_markets()
|
1606
|
-
response = await self.
|
1572
|
+
response = await self.v2PrivateGetAssetsFuturesBalance(params)
|
1607
1573
|
#
|
1608
1574
|
# {
|
1609
1575
|
# "code": 0,
|
1610
|
-
# "data":
|
1611
|
-
#
|
1612
|
-
# "available": "
|
1613
|
-
# "
|
1614
|
-
# "frozen": "0
|
1615
|
-
# "margin": "0
|
1616
|
-
# "
|
1617
|
-
# "
|
1576
|
+
# "data": [
|
1577
|
+
# {
|
1578
|
+
# "available": "0.00000046",
|
1579
|
+
# "ccy": "USDT",
|
1580
|
+
# "frozen": "0",
|
1581
|
+
# "margin": "0",
|
1582
|
+
# "transferrable": "0.00000046",
|
1583
|
+
# "unrealized_pnl": "0"
|
1618
1584
|
# }
|
1619
|
-
#
|
1585
|
+
# ],
|
1620
1586
|
# "message": "OK"
|
1621
1587
|
# }
|
1622
1588
|
#
|
1623
1589
|
result = {'info': response}
|
1624
|
-
balances = self.
|
1625
|
-
|
1626
|
-
|
1627
|
-
currencyId =
|
1590
|
+
balances = self.safe_list(response, 'data', [])
|
1591
|
+
for i in range(0, len(balances)):
|
1592
|
+
entry = balances[i]
|
1593
|
+
currencyId = self.safe_string(entry, 'ccy')
|
1628
1594
|
code = self.safe_currency_code(currencyId)
|
1629
|
-
balance = self.safe_value(balances, currencyId, {})
|
1630
1595
|
account = self.account()
|
1631
|
-
account['free'] = self.safe_string(
|
1632
|
-
account['used'] = self.safe_string(
|
1633
|
-
account['total'] = self.safe_string(balance, 'balance_total')
|
1596
|
+
account['free'] = self.safe_string(entry, 'available')
|
1597
|
+
account['used'] = self.safe_string(entry, 'frozen')
|
1634
1598
|
result[code] = account
|
1635
1599
|
return self.safe_balance(result)
|
1636
1600
|
|
1637
1601
|
async def fetch_financial_balance(self, params={}):
|
1638
1602
|
await self.load_markets()
|
1639
|
-
response = await self.
|
1603
|
+
response = await self.v2PrivateGetAssetsFinancialBalance(params)
|
1640
1604
|
#
|
1641
1605
|
# {
|
1642
|
-
#
|
1643
|
-
#
|
1644
|
-
#
|
1645
|
-
#
|
1646
|
-
#
|
1647
|
-
#
|
1648
|
-
#
|
1649
|
-
#
|
1650
|
-
#
|
1651
|
-
#
|
1652
|
-
# "available": "999900",
|
1653
|
-
# "frozen": "0",
|
1654
|
-
# "lock": "0"
|
1655
|
-
# }
|
1656
|
-
# ],
|
1657
|
-
# "message": "Success"
|
1658
|
-
# }
|
1606
|
+
# "code": 0,
|
1607
|
+
# "data": [
|
1608
|
+
# {
|
1609
|
+
# "available": "0.00000046",
|
1610
|
+
# "ccy": "USDT",
|
1611
|
+
# "frozen": "0"
|
1612
|
+
# }
|
1613
|
+
# ],
|
1614
|
+
# "message": "OK"
|
1615
|
+
# }
|
1659
1616
|
#
|
1660
1617
|
result = {'info': response}
|
1661
|
-
balances = self.
|
1618
|
+
balances = self.safe_list(response, 'data', [])
|
1662
1619
|
for i in range(0, len(balances)):
|
1663
|
-
|
1664
|
-
currencyId = self.safe_string(
|
1620
|
+
entry = balances[i]
|
1621
|
+
currencyId = self.safe_string(entry, 'ccy')
|
1665
1622
|
code = self.safe_currency_code(currencyId)
|
1666
1623
|
account = self.account()
|
1667
|
-
account['free'] = self.safe_string(
|
1668
|
-
|
1669
|
-
locked = self.safe_string(balance, 'lock')
|
1670
|
-
account['used'] = Precise.string_add(frozen, locked)
|
1624
|
+
account['free'] = self.safe_string(entry, 'available')
|
1625
|
+
account['used'] = self.safe_string(entry, 'frozen')
|
1671
1626
|
result[code] = account
|
1672
1627
|
return self.safe_balance(result)
|
1673
1628
|
|
1674
1629
|
async def fetch_balance(self, params={}) -> Balances:
|
1675
1630
|
"""
|
1676
1631
|
query for balance and get the amount of funds available for trading or funds locked in orders
|
1677
|
-
:see: https://
|
1678
|
-
:see: https://
|
1679
|
-
:see: https://
|
1680
|
-
:see: https://
|
1632
|
+
:see: https://docs.coinex.com/api/v2/assets/balance/http/get-spot-balance # spot
|
1633
|
+
:see: https://docs.coinex.com/api/v2/assets/balance/http/get-futures-balance # swap
|
1634
|
+
:see: https://docs.coinex.com/api/v2/assets/balance/http/get-marigin-balance # margin
|
1635
|
+
:see: https://docs.coinex.com/api/v2/assets/balance/http/get-financial-balance # financial
|
1681
1636
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
1682
1637
|
:param str [params.type]: 'margin', 'swap', 'financial', or 'spot'
|
1683
1638
|
:returns dict: a `balance structure <https://docs.ccxt.com/#/?id=balance-structure>`
|
@@ -5448,7 +5403,10 @@ class coinex(Exchange, ImplicitAPI):
|
|
5448
5403
|
self.check_required_credentials()
|
5449
5404
|
query = self.keysort(query)
|
5450
5405
|
urlencoded = self.rawencode(query)
|
5451
|
-
preparedString = method + '/' + version + '/' + path
|
5406
|
+
preparedString = method + '/' + version + '/' + path
|
5407
|
+
if urlencoded:
|
5408
|
+
preparedString += '?' + urlencoded
|
5409
|
+
preparedString += nonce + self.secret
|
5452
5410
|
signature = self.hash(self.encode(preparedString), 'sha256')
|
5453
5411
|
headers = {
|
5454
5412
|
'X-COINEX-KEY': self.apiKey,
|
@@ -5456,7 +5414,8 @@ class coinex(Exchange, ImplicitAPI):
|
|
5456
5414
|
'X-COINEX-TIMESTAMP': nonce,
|
5457
5415
|
}
|
5458
5416
|
if (method == 'GET') or (method == 'DELETE') or (method == 'PUT'):
|
5459
|
-
|
5417
|
+
if urlencoded:
|
5418
|
+
url += '?' + urlencoded
|
5460
5419
|
else:
|
5461
5420
|
body = self.json(query)
|
5462
5421
|
return {'url': url, 'method': method, 'body': body, 'headers': headers}
|
ccxt/async_support/okx.py
CHANGED
@@ -7398,7 +7398,7 @@ class okx(Exchange, ImplicitAPI):
|
|
7398
7398
|
# }
|
7399
7399
|
#
|
7400
7400
|
rows = self.safe_list(response, 'data', [])
|
7401
|
-
return self.parse_conversions(rows, 'baseCcy', 'quoteCcy', since, limit)
|
7401
|
+
return self.parse_conversions(rows, code, 'baseCcy', 'quoteCcy', since, limit)
|
7402
7402
|
|
7403
7403
|
def parse_conversion(self, conversion, fromCurrency: Currency = None, toCurrency: Currency = None) -> Conversion:
|
7404
7404
|
#
|
ccxt/async_support/woo.py
CHANGED
@@ -2964,7 +2964,7 @@ class woo(Exchange, ImplicitAPI):
|
|
2964
2964
|
#
|
2965
2965
|
data = self.safe_dict(response, 'data', {})
|
2966
2966
|
rows = self.safe_list(data, 'tradeVos', [])
|
2967
|
-
return self.parse_conversions(rows, 'sellAsset', 'buyAsset', since, limit)
|
2967
|
+
return self.parse_conversions(rows, code, 'sellAsset', 'buyAsset', since, limit)
|
2968
2968
|
|
2969
2969
|
def parse_conversion(self, conversion, fromCurrency: Currency = None, toCurrency: Currency = None) -> Conversion:
|
2970
2970
|
#
|
ccxt/base/exchange.py
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
# -----------------------------------------------------------------------------
|
6
6
|
|
7
|
-
__version__ = '4.3.
|
7
|
+
__version__ = '4.3.8'
|
8
8
|
|
9
9
|
# -----------------------------------------------------------------------------
|
10
10
|
|
@@ -5683,7 +5683,7 @@ class Exchange(object):
|
|
5683
5683
|
def parse_leverage(self, leverage, market: Market = None):
|
5684
5684
|
raise NotSupported(self.id + ' parseLeverage() is not supported yet')
|
5685
5685
|
|
5686
|
-
def parse_conversions(self, conversions: List[Any], fromCurrencyKey: Str = None, toCurrencyKey: Str = None, since: Int = None, limit: Int = None, params={}):
|
5686
|
+
def parse_conversions(self, conversions: List[Any], code: Str = None, fromCurrencyKey: Str = None, toCurrencyKey: Str = None, since: Int = None, limit: Int = None, params={}):
|
5687
5687
|
conversions = self.to_array(conversions)
|
5688
5688
|
result = []
|
5689
5689
|
fromCurrency = None
|
@@ -5699,8 +5699,16 @@ class Exchange(object):
|
|
5699
5699
|
conversion = self.extend(self.parseConversion(entry, fromCurrency, toCurrency), params)
|
5700
5700
|
result.append(conversion)
|
5701
5701
|
sorted = self.sort_by(result, 'timestamp')
|
5702
|
-
|
5703
|
-
|
5702
|
+
currency = None
|
5703
|
+
if code is not None:
|
5704
|
+
currency = self.currency(code)
|
5705
|
+
code = currency['code']
|
5706
|
+
if code is None:
|
5707
|
+
return self.filter_by_since_limit(sorted, since, limit)
|
5708
|
+
fromConversion = self.filter_by(sorted, 'fromCurrency', code)
|
5709
|
+
toConversion = self.filter_by(sorted, 'toCurrency', code)
|
5710
|
+
both = self.array_concat(fromConversion, toConversion)
|
5711
|
+
return self.filter_by_since_limit(both, since, limit)
|
5704
5712
|
|
5705
5713
|
def parse_conversion(self, conversion, fromCurrency: Currency = None, toCurrency: Currency = None):
|
5706
5714
|
raise NotSupported(self.id + ' parseConversion() is not supported yet')
|
ccxt/binance.py
CHANGED
@@ -11883,7 +11883,7 @@ class binance(Exchange, ImplicitAPI):
|
|
11883
11883
|
# }
|
11884
11884
|
#
|
11885
11885
|
rows = self.safe_list(response, responseQuery, [])
|
11886
|
-
return self.parse_conversions(rows, fromCurrencyKey, toCurrencyKey, since, limit)
|
11886
|
+
return self.parse_conversions(rows, code, fromCurrencyKey, toCurrencyKey, since, limit)
|
11887
11887
|
|
11888
11888
|
def parse_conversion(self, conversion, fromCurrency: Currency = None, toCurrency: Currency = None) -> Conversion:
|
11889
11889
|
#
|
ccxt/bingx.py
CHANGED
@@ -2317,7 +2317,7 @@ class bingx(Exchange, ImplicitAPI):
|
|
2317
2317
|
return self.safe_order({
|
2318
2318
|
'info': info,
|
2319
2319
|
'id': self.safe_string_2(order, 'orderId', 'i'),
|
2320
|
-
'clientOrderId': self.safe_string_n(order, ['clientOrderID', 'origClientOrderId', 'c']),
|
2320
|
+
'clientOrderId': self.safe_string_n(order, ['clientOrderID', 'clientOrderId', 'origClientOrderId', 'c']),
|
2321
2321
|
'symbol': self.safe_symbol(marketId, market, '-', marketType),
|
2322
2322
|
'timestamp': timestamp,
|
2323
2323
|
'datetime': self.iso8601(timestamp),
|
ccxt/bitget.py
CHANGED
@@ -8062,7 +8062,7 @@ class bitget(Exchange, ImplicitAPI):
|
|
8062
8062
|
#
|
8063
8063
|
data = self.safe_dict(response, 'data', {})
|
8064
8064
|
dataList = self.safe_list(data, 'dataList', [])
|
8065
|
-
return self.parse_conversions(dataList, 'fromCoin', 'toCoin', since, limit)
|
8065
|
+
return self.parse_conversions(dataList, code, 'fromCoin', 'toCoin', since, limit)
|
8066
8066
|
|
8067
8067
|
def parse_conversion(self, conversion, fromCurrency: Currency = None, toCurrency: Currency = None) -> Conversion:
|
8068
8068
|
#
|
ccxt/coinex.py
CHANGED
@@ -1487,196 +1487,151 @@ class coinex(Exchange, ImplicitAPI):
|
|
1487
1487
|
|
1488
1488
|
def fetch_margin_balance(self, params={}):
|
1489
1489
|
self.load_markets()
|
1490
|
-
|
1491
|
-
marketId = self.safe_string(params, 'market')
|
1492
|
-
market: Market = None
|
1493
|
-
if symbol is not None:
|
1494
|
-
market = self.market(symbol)
|
1495
|
-
marketId = market['id']
|
1496
|
-
elif marketId is None:
|
1497
|
-
raise ArgumentsRequired(self.id + ' fetchMarginBalance() fetching a margin account requires a market parameter or a symbol parameter')
|
1498
|
-
params = self.omit(params, ['symbol', 'market'])
|
1499
|
-
request = {
|
1500
|
-
'market': marketId,
|
1501
|
-
}
|
1502
|
-
response = self.v1PrivateGetMarginAccount(self.extend(request, params))
|
1490
|
+
response = self.v2PrivateGetAssetsMarginBalance(params)
|
1503
1491
|
#
|
1504
|
-
#
|
1505
|
-
#
|
1506
|
-
#
|
1507
|
-
#
|
1508
|
-
#
|
1509
|
-
#
|
1510
|
-
#
|
1511
|
-
#
|
1512
|
-
#
|
1513
|
-
#
|
1514
|
-
#
|
1515
|
-
#
|
1516
|
-
#
|
1517
|
-
#
|
1518
|
-
#
|
1519
|
-
#
|
1520
|
-
#
|
1521
|
-
#
|
1522
|
-
#
|
1523
|
-
#
|
1524
|
-
#
|
1525
|
-
#
|
1526
|
-
#
|
1527
|
-
#
|
1528
|
-
#
|
1529
|
-
#
|
1530
|
-
#
|
1531
|
-
#
|
1532
|
-
#
|
1533
|
-
# "liquidation_price": ""
|
1534
|
-
# },
|
1535
|
-
# "message": "Success"
|
1536
|
-
# }
|
1492
|
+
# {
|
1493
|
+
# "data": [
|
1494
|
+
# {
|
1495
|
+
# "margin_account": "BTCUSDT",
|
1496
|
+
# "base_ccy": "BTC",
|
1497
|
+
# "quote_ccy": "USDT",
|
1498
|
+
# "available": {
|
1499
|
+
# "base_ccy": "0.00000026",
|
1500
|
+
# "quote_ccy": "0"
|
1501
|
+
# },
|
1502
|
+
# "frozen": {
|
1503
|
+
# "base_ccy": "0",
|
1504
|
+
# "quote_ccy": "0"
|
1505
|
+
# },
|
1506
|
+
# "repaid": {
|
1507
|
+
# "base_ccy": "0",
|
1508
|
+
# "quote_ccy": "0"
|
1509
|
+
# },
|
1510
|
+
# "interest": {
|
1511
|
+
# "base_ccy": "0",
|
1512
|
+
# "quote_ccy": "0"
|
1513
|
+
# },
|
1514
|
+
# "rik_rate": "",
|
1515
|
+
# "liq_price": ""
|
1516
|
+
# },
|
1517
|
+
# ],
|
1518
|
+
# "code": 0,
|
1519
|
+
# "message": "OK"
|
1520
|
+
# }
|
1537
1521
|
#
|
1538
1522
|
result = {'info': response}
|
1539
|
-
|
1540
|
-
|
1541
|
-
|
1542
|
-
|
1543
|
-
|
1544
|
-
|
1545
|
-
|
1546
|
-
|
1547
|
-
|
1548
|
-
|
1549
|
-
|
1550
|
-
|
1551
|
-
|
1552
|
-
|
1553
|
-
|
1554
|
-
|
1555
|
-
buyAccount = self.account()
|
1556
|
-
buyCurrencyId = self.safe_string(data, 'buy_asset_type')
|
1557
|
-
buyCurrencyCode = self.safe_currency_code(buyCurrencyId)
|
1558
|
-
buyAccount['free'] = self.safe_string(free, 'buy_type')
|
1559
|
-
buyAccount['total'] = self.safe_string(total, 'buy_type')
|
1560
|
-
buyDebt = self.safe_string(loan, 'buy_type')
|
1561
|
-
buyInterest = self.safe_string(interest, 'buy_type')
|
1562
|
-
buyAccount['debt'] = Precise.string_add(buyDebt, buyInterest)
|
1563
|
-
result[buyCurrencyCode] = buyAccount
|
1564
|
-
#
|
1523
|
+
balances = self.safe_list(response, 'data', [])
|
1524
|
+
for i in range(0, len(balances)):
|
1525
|
+
entry = balances[i]
|
1526
|
+
free = self.safe_dict(entry, 'available', {})
|
1527
|
+
used = self.safe_dict(entry, 'frozen', {})
|
1528
|
+
loan = self.safe_dict(entry, 'repaid', {})
|
1529
|
+
interest = self.safe_dict(entry, 'interest', {})
|
1530
|
+
baseAccount = self.account()
|
1531
|
+
baseCurrencyId = self.safe_string(entry, 'base_ccy')
|
1532
|
+
baseCurrencyCode = self.safe_currency_code(baseCurrencyId)
|
1533
|
+
baseAccount['free'] = self.safe_string(free, 'base_ccy')
|
1534
|
+
baseAccount['used'] = self.safe_string(used, 'base_ccy')
|
1535
|
+
baseDebt = self.safe_string(loan, 'base_ccy')
|
1536
|
+
baseInterest = self.safe_string(interest, 'base_ccy')
|
1537
|
+
baseAccount['debt'] = Precise.string_add(baseDebt, baseInterest)
|
1538
|
+
result[baseCurrencyCode] = baseAccount
|
1565
1539
|
return self.safe_balance(result)
|
1566
1540
|
|
1567
1541
|
def fetch_spot_balance(self, params={}):
|
1568
1542
|
self.load_markets()
|
1569
|
-
response = self.
|
1543
|
+
response = self.v2PrivateGetAssetsSpotBalance(params)
|
1570
1544
|
#
|
1571
1545
|
# {
|
1572
|
-
#
|
1573
|
-
#
|
1574
|
-
#
|
1575
|
-
#
|
1576
|
-
#
|
1577
|
-
#
|
1578
|
-
#
|
1579
|
-
#
|
1580
|
-
#
|
1581
|
-
# },
|
1582
|
-
# "ETH": { # ETH account
|
1583
|
-
# "available": "5.06000", # Available ETH
|
1584
|
-
# "frozen": "0.00000" # Frozen ETH
|
1585
|
-
# }
|
1586
|
-
# },
|
1587
|
-
# "message": "Ok"
|
1546
|
+
# "code": 0,
|
1547
|
+
# "data": [
|
1548
|
+
# {
|
1549
|
+
# "available": "0.00000046",
|
1550
|
+
# "ccy": "USDT",
|
1551
|
+
# "frozen": "0"
|
1552
|
+
# }
|
1553
|
+
# ],
|
1554
|
+
# "message": "OK"
|
1588
1555
|
# }
|
1589
1556
|
#
|
1590
1557
|
result = {'info': response}
|
1591
|
-
balances = self.
|
1592
|
-
|
1593
|
-
|
1594
|
-
currencyId =
|
1558
|
+
balances = self.safe_list(response, 'data', [])
|
1559
|
+
for i in range(0, len(balances)):
|
1560
|
+
entry = balances[i]
|
1561
|
+
currencyId = self.safe_string(entry, 'ccy')
|
1595
1562
|
code = self.safe_currency_code(currencyId)
|
1596
|
-
balance = self.safe_value(balances, currencyId, {})
|
1597
1563
|
account = self.account()
|
1598
|
-
account['free'] = self.safe_string(
|
1599
|
-
account['used'] = self.safe_string(
|
1564
|
+
account['free'] = self.safe_string(entry, 'available')
|
1565
|
+
account['used'] = self.safe_string(entry, 'frozen')
|
1600
1566
|
result[code] = account
|
1601
1567
|
return self.safe_balance(result)
|
1602
1568
|
|
1603
1569
|
def fetch_swap_balance(self, params={}):
|
1604
1570
|
self.load_markets()
|
1605
|
-
response = self.
|
1571
|
+
response = self.v2PrivateGetAssetsFuturesBalance(params)
|
1606
1572
|
#
|
1607
1573
|
# {
|
1608
1574
|
# "code": 0,
|
1609
|
-
# "data":
|
1610
|
-
#
|
1611
|
-
# "available": "
|
1612
|
-
# "
|
1613
|
-
# "frozen": "0
|
1614
|
-
# "margin": "0
|
1615
|
-
# "
|
1616
|
-
# "
|
1575
|
+
# "data": [
|
1576
|
+
# {
|
1577
|
+
# "available": "0.00000046",
|
1578
|
+
# "ccy": "USDT",
|
1579
|
+
# "frozen": "0",
|
1580
|
+
# "margin": "0",
|
1581
|
+
# "transferrable": "0.00000046",
|
1582
|
+
# "unrealized_pnl": "0"
|
1617
1583
|
# }
|
1618
|
-
#
|
1584
|
+
# ],
|
1619
1585
|
# "message": "OK"
|
1620
1586
|
# }
|
1621
1587
|
#
|
1622
1588
|
result = {'info': response}
|
1623
|
-
balances = self.
|
1624
|
-
|
1625
|
-
|
1626
|
-
currencyId =
|
1589
|
+
balances = self.safe_list(response, 'data', [])
|
1590
|
+
for i in range(0, len(balances)):
|
1591
|
+
entry = balances[i]
|
1592
|
+
currencyId = self.safe_string(entry, 'ccy')
|
1627
1593
|
code = self.safe_currency_code(currencyId)
|
1628
|
-
balance = self.safe_value(balances, currencyId, {})
|
1629
1594
|
account = self.account()
|
1630
|
-
account['free'] = self.safe_string(
|
1631
|
-
account['used'] = self.safe_string(
|
1632
|
-
account['total'] = self.safe_string(balance, 'balance_total')
|
1595
|
+
account['free'] = self.safe_string(entry, 'available')
|
1596
|
+
account['used'] = self.safe_string(entry, 'frozen')
|
1633
1597
|
result[code] = account
|
1634
1598
|
return self.safe_balance(result)
|
1635
1599
|
|
1636
1600
|
def fetch_financial_balance(self, params={}):
|
1637
1601
|
self.load_markets()
|
1638
|
-
response = self.
|
1602
|
+
response = self.v2PrivateGetAssetsFinancialBalance(params)
|
1639
1603
|
#
|
1640
1604
|
# {
|
1641
|
-
#
|
1642
|
-
#
|
1643
|
-
#
|
1644
|
-
#
|
1645
|
-
#
|
1646
|
-
#
|
1647
|
-
#
|
1648
|
-
#
|
1649
|
-
#
|
1650
|
-
#
|
1651
|
-
# "available": "999900",
|
1652
|
-
# "frozen": "0",
|
1653
|
-
# "lock": "0"
|
1654
|
-
# }
|
1655
|
-
# ],
|
1656
|
-
# "message": "Success"
|
1657
|
-
# }
|
1605
|
+
# "code": 0,
|
1606
|
+
# "data": [
|
1607
|
+
# {
|
1608
|
+
# "available": "0.00000046",
|
1609
|
+
# "ccy": "USDT",
|
1610
|
+
# "frozen": "0"
|
1611
|
+
# }
|
1612
|
+
# ],
|
1613
|
+
# "message": "OK"
|
1614
|
+
# }
|
1658
1615
|
#
|
1659
1616
|
result = {'info': response}
|
1660
|
-
balances = self.
|
1617
|
+
balances = self.safe_list(response, 'data', [])
|
1661
1618
|
for i in range(0, len(balances)):
|
1662
|
-
|
1663
|
-
currencyId = self.safe_string(
|
1619
|
+
entry = balances[i]
|
1620
|
+
currencyId = self.safe_string(entry, 'ccy')
|
1664
1621
|
code = self.safe_currency_code(currencyId)
|
1665
1622
|
account = self.account()
|
1666
|
-
account['free'] = self.safe_string(
|
1667
|
-
|
1668
|
-
locked = self.safe_string(balance, 'lock')
|
1669
|
-
account['used'] = Precise.string_add(frozen, locked)
|
1623
|
+
account['free'] = self.safe_string(entry, 'available')
|
1624
|
+
account['used'] = self.safe_string(entry, 'frozen')
|
1670
1625
|
result[code] = account
|
1671
1626
|
return self.safe_balance(result)
|
1672
1627
|
|
1673
1628
|
def fetch_balance(self, params={}) -> Balances:
|
1674
1629
|
"""
|
1675
1630
|
query for balance and get the amount of funds available for trading or funds locked in orders
|
1676
|
-
:see: https://
|
1677
|
-
:see: https://
|
1678
|
-
:see: https://
|
1679
|
-
:see: https://
|
1631
|
+
:see: https://docs.coinex.com/api/v2/assets/balance/http/get-spot-balance # spot
|
1632
|
+
:see: https://docs.coinex.com/api/v2/assets/balance/http/get-futures-balance # swap
|
1633
|
+
:see: https://docs.coinex.com/api/v2/assets/balance/http/get-marigin-balance # margin
|
1634
|
+
:see: https://docs.coinex.com/api/v2/assets/balance/http/get-financial-balance # financial
|
1680
1635
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
1681
1636
|
:param str [params.type]: 'margin', 'swap', 'financial', or 'spot'
|
1682
1637
|
:returns dict: a `balance structure <https://docs.ccxt.com/#/?id=balance-structure>`
|
@@ -5447,7 +5402,10 @@ class coinex(Exchange, ImplicitAPI):
|
|
5447
5402
|
self.check_required_credentials()
|
5448
5403
|
query = self.keysort(query)
|
5449
5404
|
urlencoded = self.rawencode(query)
|
5450
|
-
preparedString = method + '/' + version + '/' + path
|
5405
|
+
preparedString = method + '/' + version + '/' + path
|
5406
|
+
if urlencoded:
|
5407
|
+
preparedString += '?' + urlencoded
|
5408
|
+
preparedString += nonce + self.secret
|
5451
5409
|
signature = self.hash(self.encode(preparedString), 'sha256')
|
5452
5410
|
headers = {
|
5453
5411
|
'X-COINEX-KEY': self.apiKey,
|
@@ -5455,7 +5413,8 @@ class coinex(Exchange, ImplicitAPI):
|
|
5455
5413
|
'X-COINEX-TIMESTAMP': nonce,
|
5456
5414
|
}
|
5457
5415
|
if (method == 'GET') or (method == 'DELETE') or (method == 'PUT'):
|
5458
|
-
|
5416
|
+
if urlencoded:
|
5417
|
+
url += '?' + urlencoded
|
5459
5418
|
else:
|
5460
5419
|
body = self.json(query)
|
5461
5420
|
return {'url': url, 'method': method, 'body': body, 'headers': headers}
|
ccxt/okx.py
CHANGED
@@ -7397,7 +7397,7 @@ class okx(Exchange, ImplicitAPI):
|
|
7397
7397
|
# }
|
7398
7398
|
#
|
7399
7399
|
rows = self.safe_list(response, 'data', [])
|
7400
|
-
return self.parse_conversions(rows, 'baseCcy', 'quoteCcy', since, limit)
|
7400
|
+
return self.parse_conversions(rows, code, 'baseCcy', 'quoteCcy', since, limit)
|
7401
7401
|
|
7402
7402
|
def parse_conversion(self, conversion, fromCurrency: Currency = None, toCurrency: Currency = None) -> Conversion:
|
7403
7403
|
#
|
ccxt/pro/__init__.py
CHANGED
ccxt/woo.py
CHANGED
@@ -2964,7 +2964,7 @@ class woo(Exchange, ImplicitAPI):
|
|
2964
2964
|
#
|
2965
2965
|
data = self.safe_dict(response, 'data', {})
|
2966
2966
|
rows = self.safe_list(data, 'tradeVos', [])
|
2967
|
-
return self.parse_conversions(rows, 'sellAsset', 'buyAsset', since, limit)
|
2967
|
+
return self.parse_conversions(rows, code, 'sellAsset', 'buyAsset', since, limit)
|
2968
2968
|
|
2969
2969
|
def parse_conversion(self, conversion, fromCurrency: Currency = None, toCurrency: Currency = None) -> Conversion:
|
2970
2970
|
#
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: ccxt
|
3
|
-
Version: 4.3.
|
3
|
+
Version: 4.3.8
|
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
|
@@ -262,13 +262,13 @@ console.log(version, Object.keys(exchanges));
|
|
262
262
|
|
263
263
|
All-in-one browser bundle (dependencies included), served from a CDN of your choice:
|
264
264
|
|
265
|
-
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.
|
266
|
-
* unpkg: https://unpkg.com/ccxt@4.3.
|
265
|
+
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.8/dist/ccxt.browser.js
|
266
|
+
* unpkg: https://unpkg.com/ccxt@4.3.8/dist/ccxt.browser.js
|
267
267
|
|
268
268
|
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.
|
269
269
|
|
270
270
|
```HTML
|
271
|
-
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.3.
|
271
|
+
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.3.8/dist/ccxt.browser.js"></script>
|
272
272
|
```
|
273
273
|
|
274
274
|
Creates a global `ccxt` object:
|
@@ -1,14 +1,14 @@
|
|
1
|
-
ccxt/__init__.py,sha256=
|
1
|
+
ccxt/__init__.py,sha256=l_tRqR9xi1JXkm8GzE-Dii9BEAhXn65qC9d3BALIh5o,15655
|
2
2
|
ccxt/ace.py,sha256=j7Aq0hnsMTcUCIrWCm-ZZMkptWzAY23D8zi3jZWjq3c,41650
|
3
3
|
ccxt/alpaca.py,sha256=h9GWMKpoPOXTcYESHQKM3MWGrrqEgFvs8sLkQx0YSLs,47182
|
4
4
|
ccxt/ascendex.py,sha256=kxKDSqysYC_VHWsRHgNqEwGbQmKw8WIH_Cp2z6vouyg,151398
|
5
5
|
ccxt/bequant.py,sha256=RBiAmaTbL35DgiV3Hl6uchLUd78V0z1T9riTlNsrpdc,1174
|
6
6
|
ccxt/bigone.py,sha256=G2cga-cesMkY6knbLH02JQuHxdF9J1jEEohb0uYuibo,92190
|
7
|
-
ccxt/binance.py,sha256=
|
7
|
+
ccxt/binance.py,sha256=1IuamjDC4olbwojJoa-1p7s8ZaNPxdRD64_yJgBZka0,611571
|
8
8
|
ccxt/binancecoinm.py,sha256=pncdw6Xw2X1Po-vEvAB4nL37scoS_axGAVxetPy1YQs,1645
|
9
9
|
ccxt/binanceus.py,sha256=hdcT4OnadcdFFFjF3GtM0nWv90jqojqwdVS3xWGuW40,9163
|
10
10
|
ccxt/binanceusdm.py,sha256=KPQGlCalQ0eGlPCs2tSanOxaP8O0zFRQjGntA16Yprw,2480
|
11
|
-
ccxt/bingx.py,sha256=
|
11
|
+
ccxt/bingx.py,sha256=fbkFsAM4cyYhIg-D5bmLBySK0N11pgXU7ctGDQVmOPU,184198
|
12
12
|
ccxt/bit2c.py,sha256=zDMcQVszvO39Lo4Km_aU16AN0MoVz7WhJrLnTua5Pm0,36901
|
13
13
|
ccxt/bitbank.py,sha256=XC2n0jpXEV7L7JoaIgjroAd__FQzucDRZnNJPfmwHWg,41839
|
14
14
|
ccxt/bitbay.py,sha256=xAIjzGRDVGwoy-Gygd99H0YN4wiaz_0lR0Z14oxaaxc,478
|
@@ -17,7 +17,7 @@ ccxt/bitcoincom.py,sha256=PyWIl4nC4jp5Uba2lI1At0N_hhNyWD0DoZC_MSyL_s4,502
|
|
17
17
|
ccxt/bitfinex.py,sha256=xSmo7t-2TfigOBugw7xXpjUcI1hmgCwXNA7FkLy5KiQ,71533
|
18
18
|
ccxt/bitfinex2.py,sha256=nqT65ZaSnJt6-Rv983FslGHpw4l7Z6XY1DIIhI7NPwo,158134
|
19
19
|
ccxt/bitflyer.py,sha256=VYJ65ZGm_gYXSDQxvLqZaTwgQQCaxclpn2xaMn9m0HM,41391
|
20
|
-
ccxt/bitget.py,sha256=
|
20
|
+
ccxt/bitget.py,sha256=ialRv3fxuXbjf0JmJ_uG6eDkc2IvwS8qX3QbYJCqsBo,422163
|
21
21
|
ccxt/bithumb.py,sha256=pBq910z_-PWLxtxLCwbP91UZuFwpCfL3ziuhhZa7OWg,45528
|
22
22
|
ccxt/bitmart.py,sha256=QeL2trt3hgvySGL4cI6YP40z5OvLZ4RqzFoUK-3E11w,199108
|
23
23
|
ccxt/bitmex.py,sha256=CPC5c6ibCFTWF9JbgLc_sdgQ03mvdtPR-093E_aFZU4,126416
|
@@ -41,7 +41,7 @@ ccxt/coinbase.py,sha256=sw1ZNrDkujIerdB3fF9N-BgAmsIEmIwOHbABNpMrwAw,206918
|
|
41
41
|
ccxt/coinbaseinternational.py,sha256=wr00A8TLih3_Ipur1NhhC3_tCtNaV3SOQ72eOGKE9hQ,87223
|
42
42
|
ccxt/coinbasepro.py,sha256=MHlfA0VS0PrYyTjcwcit7I04nD-P6zgICkYzAI611Rc,78665
|
43
43
|
ccxt/coincheck.py,sha256=GYkK5BTSFsJOuR5fSCysUqNK5b2FjEjz7dIBHXmc1Xs,35658
|
44
|
-
ccxt/coinex.py,sha256=
|
44
|
+
ccxt/coinex.py,sha256=KPxW3BgMtLekkIZ-sIK06NXDEWWGAX2WhLLflq7e_YQ,246642
|
45
45
|
ccxt/coinlist.py,sha256=LQ1qHxVMS-5dtYtXVzZBtAJjqY1VdmMCEOSph68HdUk,103195
|
46
46
|
ccxt/coinmate.py,sha256=bFSSHuOSL2OQdMZXa_5sNkXoM0FIxWgiCd0tgJjIo4M,45940
|
47
47
|
ccxt/coinmetro.py,sha256=vmYo2m-s58gCaol0xvOtnANQsG8_vPSYUh0Tf36QBLw,80409
|
@@ -84,7 +84,7 @@ ccxt/ndax.py,sha256=FQOxlMyj8m9wND2i5qiTxrog4eFASzCxhGRw1Nxu4eE,108562
|
|
84
84
|
ccxt/novadax.py,sha256=h9U_ckSCN4ZDgvXrrb7MmcOTioqG_3DsmR-2Gjpx6yw,64299
|
85
85
|
ccxt/oceanex.py,sha256=YH3tUzegvfG0fUCjtmtb3USOQtlL1tlqQ40B_i-xx7w,37860
|
86
86
|
ccxt/okcoin.py,sha256=oJDR1yRlV_3HlgI6Uii6zr5cKDg9IaUSrhdlJZAXIMc,151110
|
87
|
-
ccxt/okx.py,sha256=
|
87
|
+
ccxt/okx.py,sha256=9a11R-S3jvumPsepjZeX3NcMN702OxAzF4IYtdif5BM,370866
|
88
88
|
ccxt/onetrading.py,sha256=T68x4qfncbcnXU-YdMTVEGwnr3zKvcbbfdQZa8Zourc,88107
|
89
89
|
ccxt/p2b.py,sha256=FYxL36KwtaLIIQ793frJEtqtHyzm39hNK0mJEzAAH0U,54213
|
90
90
|
ccxt/paymium.py,sha256=2mBwmyT93k-dXBEKEix48G8PsA2IEN_5yScEM985Z10,24203
|
@@ -99,7 +99,7 @@ ccxt/upbit.py,sha256=rYJ2n8d52-6q0CuaflZs4KsM-ytgdPYNjOx76jao-7I,81605
|
|
99
99
|
ccxt/wavesexchange.py,sha256=SCBZNlH4v8QojSVQn70PjhO-9vvUIRuu6a8f_62k_QU,113550
|
100
100
|
ccxt/wazirx.py,sha256=c63acRjogThVdpkvt3F1U93EPrJx3CfmoMpDFpAaZfY,51336
|
101
101
|
ccxt/whitebit.py,sha256=B-na5mCC3Yp1-ohdJp-Z8c7_FM_R_AsrQidINUpBljM,108191
|
102
|
-
ccxt/woo.py,sha256=
|
102
|
+
ccxt/woo.py,sha256=1jmC7paC-QaXHydtOuKqEmQ-o9JEf9VmeloT7WoQ77s,138550
|
103
103
|
ccxt/yobit.py,sha256=KGyZulJpFsbWRPMCK2VIqXy9ZopLH1v3IO_fmZVIsi4,53216
|
104
104
|
ccxt/zaif.py,sha256=4aZ8iZmow4TEw_IZZCPX8VDPaU7PVRJ_lNpYhN-LSCA,27957
|
105
105
|
ccxt/zonda.py,sha256=Sxq8MsluLNKk1_9PNkdAa2zy8jP_tklrEax4P5TwISQ,80557
|
@@ -207,17 +207,17 @@ ccxt/abstract/woo.py,sha256=yH0aXeyohXdyS3jZrztapwRmzNWk7JGpbrrf7pX_LKU,10368
|
|
207
207
|
ccxt/abstract/yobit.py,sha256=8ycfCO8ORFly9hc0Aa47sZyX4_ZKPXS9h9yJzI-uQ7Q,1339
|
208
208
|
ccxt/abstract/zaif.py,sha256=m15WHdl3gYy0GOXNZ8NEH8eE7sVh8c0T_ITNuU8vXeU,3935
|
209
209
|
ccxt/abstract/zonda.py,sha256=aSfewvRojzmuymX6QbOnDR8v9VFqWTULMHX9Y7kKD1M,5820
|
210
|
-
ccxt/async_support/__init__.py,sha256=
|
210
|
+
ccxt/async_support/__init__.py,sha256=3Rkznjx-YbTYEtnz0IQCaMJWTxfDqsb78gp8ol63Hhw,15408
|
211
211
|
ccxt/async_support/ace.py,sha256=FNZKajNtvFhDEmBYzgv46pGMwvHbPQcqhsWRpAk9iwU,41874
|
212
212
|
ccxt/async_support/alpaca.py,sha256=A1g6mT4lc8Ab5f5Hi7U_10XltruXHlE8268s45dDd6I,47394
|
213
213
|
ccxt/async_support/ascendex.py,sha256=GJJxZnAu_OSTv3l15DbAaIsIz5QdyWAgD0-yfsTjAf4,152186
|
214
214
|
ccxt/async_support/bequant.py,sha256=1hTwHovo1bW1XTIc8ZKjvJ-Xg6LfmpGdzT7TepykaVM,1188
|
215
215
|
ccxt/async_support/bigone.py,sha256=fh6RPPrLRuPfVkbB_hC5RLKfF3y8fr_wmdizNE0QVjk,92644
|
216
|
-
ccxt/async_support/binance.py,sha256=
|
216
|
+
ccxt/async_support/binance.py,sha256=wDnO4pY1Coo_sX3mRffuD_w5t4HS2YTDVKo7HdXOmcQ,614239
|
217
217
|
ccxt/async_support/binancecoinm.py,sha256=IY3RLZptQA2nmZaUYRGfTa5ZY4VMWBpFYfwHc8zTHw0,1683
|
218
218
|
ccxt/async_support/binanceus.py,sha256=c-K3Tk7LaRJjmYdCx8vBOqsx01uXrtvt0PC2ekBiD0g,9177
|
219
219
|
ccxt/async_support/binanceusdm.py,sha256=-1r4A4tmV2pCiLGO80hzq7MIIj4MTzOD7buZGv6JauA,2518
|
220
|
-
ccxt/async_support/bingx.py,sha256=
|
220
|
+
ccxt/async_support/bingx.py,sha256=F4o26bQPigtTEpGOQEFJAJjUi4jCLqzj0OKUpg9IROw,185234
|
221
221
|
ccxt/async_support/bit2c.py,sha256=vCfbtsUTI0j9wU51FnvzPpFwmzC3ozN4h1I4IXVgMGI,37113
|
222
222
|
ccxt/async_support/bitbank.py,sha256=48plnjcFdy6Ovd66hm32fa0qjedmkkjfnSwDB99NwbI,42099
|
223
223
|
ccxt/async_support/bitbay.py,sha256=jcaEXi2IhYTva8ezO_SfJhwxEZk7HST4J3NaxD16BQA,492
|
@@ -226,7 +226,7 @@ ccxt/async_support/bitcoincom.py,sha256=RiqwhK3RfxQ_PXTa860fphDCvwA8dalL-_rXlK85
|
|
226
226
|
ccxt/async_support/bitfinex.py,sha256=U7Rx6v0EAi4vv-eV6aJqjn9ZNLZHRXnaQX0Kdqsndog,71973
|
227
227
|
ccxt/async_support/bitfinex2.py,sha256=9GxRBCGHQQ-aA-KUd7uvbnPtogKtB28hnoIJ0jNm4GY,158868
|
228
228
|
ccxt/async_support/bitflyer.py,sha256=jehWPOEapP8emHK_WJUey8Lt4VFQwK4-Hrmchkh-VbQ,41699
|
229
|
-
ccxt/async_support/bitget.py,sha256=
|
229
|
+
ccxt/async_support/bitget.py,sha256=6401z1rfk6VHJre9CRKKGp2gREqrHPdcb8cWA2gIYM0,423787
|
230
230
|
ccxt/async_support/bithumb.py,sha256=Ii7K6dga0USJr8mvmQub0-QSCsOu6VNA1luFP8ZfT-Y,45758
|
231
231
|
ccxt/async_support/bitmart.py,sha256=NrArkE68Vx5JZZMHtDsYesyaU1GKAkiBBQeIgENCPeA,200028
|
232
232
|
ccxt/async_support/bitmex.py,sha256=GvHFtIp7QTDkSzyVxqZaRE5a_4OmO6gSjROQ_lUT_2w,126994
|
@@ -250,7 +250,7 @@ ccxt/async_support/coinbase.py,sha256=Z4Oto79qtEkoluthFnw3pTxhpQbBxthrr72xh8AGmk
|
|
250
250
|
ccxt/async_support/coinbaseinternational.py,sha256=wmfQAP2reUj_R-xYJTiTp69OtB9-oSzc1j_VR-rPdlY,87777
|
251
251
|
ccxt/async_support/coinbasepro.py,sha256=450ObJYcli-6Fkpqx8iTT-Z6TB4Uek0bIXmSWLWVsFA,79171
|
252
252
|
ccxt/async_support/coincheck.py,sha256=B_qzNQzd3j-me0km8lEg7bnfp--A16fpa_W902ut5Lo,35864
|
253
|
-
ccxt/async_support/coinex.py,sha256=
|
253
|
+
ccxt/async_support/coinex.py,sha256=LxymCWCepxE-1aP6FQi-HMegO1XmT6PmFOORIIJlZKE,247930
|
254
254
|
ccxt/async_support/coinlist.py,sha256=Zr8vYxBeJMPxTmoWRDboser04I_yE_1Z4YWOuayyRAY,103683
|
255
255
|
ccxt/async_support/coinmate.py,sha256=XQJDqDPD2JFBDZqKzWC9AfBKV3MY3msBuYkMgUaT5M0,46206
|
256
256
|
ccxt/async_support/coinmetro.py,sha256=I7ZmXVoZK-OcyMrqJ-a19NMmMuk81UoQk6UQtKKnXk4,80729
|
@@ -293,7 +293,7 @@ ccxt/async_support/ndax.py,sha256=JtBK0pbR5OvnWuLTHr2pNV8lsoXkZ8A161b5K366v00,10
|
|
293
293
|
ccxt/async_support/novadax.py,sha256=ttRfw2h1Nc-9RUgBHefTuAPLUNjp9hxfxZTxoJDViwQ,64667
|
294
294
|
ccxt/async_support/oceanex.py,sha256=aYdYRl42FDFpaPaoLaiGYxvDM_7aq0dEjAhUa0NsJQQ,38180
|
295
295
|
ccxt/async_support/okcoin.py,sha256=HQSAZdG_yFP9oHyJYJaZrWsRZ9IHB6qrIgDp4b0zetA,151634
|
296
|
-
ccxt/async_support/okx.py,sha256=
|
296
|
+
ccxt/async_support/okx.py,sha256=fnyuunAWpMYfBZel29DRqAaAgwRKUFric-VuiSnekGI,372441
|
297
297
|
ccxt/async_support/onetrading.py,sha256=2O3d2_E-oUZABQEyR9igcke0AJ-to-_J9579iDyGKfo,88559
|
298
298
|
ccxt/async_support/p2b.py,sha256=KrNc3sLbHQCxbgShyqWytuQVaQfKa42Q6_HcUYNUaKI,54455
|
299
299
|
ccxt/async_support/paymium.py,sha256=3P1J9OcDOqQKG5fUs6Xte9Xu8NB5lWu-OD-AHHGZbkM,24391
|
@@ -308,12 +308,12 @@ ccxt/async_support/upbit.py,sha256=aHWltVeWCuBHFepQpdTt5fLIDjgxDu0m-pra9_UZSJs,8
|
|
308
308
|
ccxt/async_support/wavesexchange.py,sha256=42GGcYgVOZrbBvB6f7ur_p8NZP6SAReGBVJF3Ifvroc,114100
|
309
309
|
ccxt/async_support/wazirx.py,sha256=70T3kb8SbUXtUnYb_Yjfue3XOcIo7MKMkrG0-XipAMo,51638
|
310
310
|
ccxt/async_support/whitebit.py,sha256=yb655hUqvYOCrpCu7WOeDHaR8KiEb1zRchXizLBMUZw,108793
|
311
|
-
ccxt/async_support/woo.py,sha256=
|
311
|
+
ccxt/async_support/woo.py,sha256=XYiynPgseXXlMAJHocpAj9Cj0geDrwz5GK1ZKqjGZi4,139440
|
312
312
|
ccxt/async_support/yobit.py,sha256=6eqYOcSBmXhJgcKDRMj8oRH_7aoz2E21hxgzvA1TzrA,53500
|
313
313
|
ccxt/async_support/zaif.py,sha256=chPFWbPvYNn0KPHY0fX_nXl60WuvueRO9GNnNMpuYeo,28139
|
314
314
|
ccxt/async_support/zonda.py,sha256=nHlJJSlr_zBSiw4WrKOp2FbO33_UFMK5YyLuf2Pvjr0,80871
|
315
315
|
ccxt/async_support/base/__init__.py,sha256=aVYSsFi--b4InRs9zDN_wtCpj8odosAB726JdUHavrk,67
|
316
|
-
ccxt/async_support/base/exchange.py,sha256
|
316
|
+
ccxt/async_support/base/exchange.py,sha256=I1kH2KjcXhwry4lH4ghvYMP9IDRgWTa0dMICCKPrGB8,107190
|
317
317
|
ccxt/async_support/base/throttler.py,sha256=tvDVcdRUVYi8fZRlEcnqtgzcgB_KMUMRs5Pu8tuU-tU,1847
|
318
318
|
ccxt/async_support/base/ws/__init__.py,sha256=uockzpLuwntKGZbs5EOWFe-Zg-k6Cj7GhNJLc_RX0so,1791
|
319
319
|
ccxt/async_support/base/ws/aiohttp_client.py,sha256=Ed1765emEde2Hj8Ys6f5EjS54ZI1wQ0qIhd04eB7yhU,5751
|
@@ -327,10 +327,10 @@ ccxt/async_support/base/ws/order_book_side.py,sha256=Pxrq22nCODckJ6G1OXkYEmUunIu
|
|
327
327
|
ccxt/base/__init__.py,sha256=eTx1OE3HJjspFUQjGm6LBhaQiMKJnXjkdP-JUXknyQ0,1320
|
328
328
|
ccxt/base/decimal_to_precision.py,sha256=fgWRBzRTtsf3r2INyS4f7WHlzgjB5YM1ekiwqD21aac,6634
|
329
329
|
ccxt/base/errors.py,sha256=u_zxABGVPU_K5oLEEZQWOI0_F5Q-SAUq1g1q6AFh7IM,4107
|
330
|
-
ccxt/base/exchange.py,sha256=
|
330
|
+
ccxt/base/exchange.py,sha256=BwIzHwYb4Sh4Sal6LVjQKvw8qkexXbbFwsq8PKRz7qo,275089
|
331
331
|
ccxt/base/precise.py,sha256=_xfu54sV0vWNnOfGTKRFykeuWP8mn4K1m9lk1tcllX4,8565
|
332
332
|
ccxt/base/types.py,sha256=ZDDuKtyi-6j98YdcFSa8SS1OfwuSer_PJp1QXTsaMb0,7992
|
333
|
-
ccxt/pro/__init__.py,sha256=
|
333
|
+
ccxt/pro/__init__.py,sha256=GV-tHeSbyfEVy2GUbLd1mzJUhyVeSFggx7LHIGzFB3M,6998
|
334
334
|
ccxt/pro/alpaca.py,sha256=7ePyWli0949ti5UheIn553xmnFpedrNc2W5CKauSZio,27167
|
335
335
|
ccxt/pro/ascendex.py,sha256=fCM3EujSfJvtvffqI56UAstTtwjXFIocwukm15cF8rE,35432
|
336
336
|
ccxt/pro/bequant.py,sha256=5zbsP8BHQTUZ8ZNL6uaACxDbUClgkOV4SYfXT_LfQVg,1351
|
@@ -529,7 +529,7 @@ ccxt/test/base/test_ticker.py,sha256=cMTIMb1oySNORUCmqI5ZzMswlEyCF6gJMah3vfvo8wQ
|
|
529
529
|
ccxt/test/base/test_trade.py,sha256=PMtmB8V38dpaP-eb8h488xYMlR6D69yCOhsA1RuWrUA,2336
|
530
530
|
ccxt/test/base/test_trading_fee.py,sha256=2aDCNJtqBkTC_AieO0l1HYGq5hz5qkWlkWb9Nv_fcwk,1066
|
531
531
|
ccxt/test/base/test_transaction.py,sha256=BTbB4UHHXkrvYgwbrhh867nVRlevmIkIrz1W_odlQJI,1434
|
532
|
-
ccxt-4.3.
|
533
|
-
ccxt-4.3.
|
534
|
-
ccxt-4.3.
|
535
|
-
ccxt-4.3.
|
532
|
+
ccxt-4.3.8.dist-info/METADATA,sha256=--yLmF4JlM5W6P5HxHg7-EehZxRYOxWCvIHk2UFLNr4,111189
|
533
|
+
ccxt-4.3.8.dist-info/WHEEL,sha256=P2T-6epvtXQ2cBOE_U1K4_noqlJFN3tj15djMgEu4NM,110
|
534
|
+
ccxt-4.3.8.dist-info/top_level.txt,sha256=CkQDuCTDKNcImPV60t36G6MdYfxsAPNiSaEwifVoVMo,5
|
535
|
+
ccxt-4.3.8.dist-info/RECORD,,
|
File without changes
|
File without changes
|