ccxt 3.1.36__py2.py3-none-any.whl → 3.1.38__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/abstract/bitstamp.py +4 -0
- ccxt/abstract/probit.py +1 -0
- ccxt/async_support/__init__.py +1 -1
- ccxt/async_support/base/exchange.py +2 -1
- ccxt/async_support/bitget.py +48 -5
- ccxt/async_support/bitso.py +2 -0
- ccxt/async_support/bitstamp.py +4 -0
- ccxt/async_support/krakenfutures.py +74 -2
- ccxt/async_support/probit.py +1 -0
- ccxt/async_support/wavesexchange.py +2 -0
- ccxt/base/exchange.py +2 -1
- ccxt/bitget.py +48 -5
- ccxt/bitso.py +2 -0
- ccxt/bitstamp.py +4 -0
- ccxt/krakenfutures.py +74 -2
- ccxt/pro/__init__.py +1 -1
- ccxt/pro/bitfinex2.py +1 -1
- ccxt/probit.py +1 -0
- ccxt/wavesexchange.py +2 -0
- {ccxt-3.1.36.dist-info → ccxt-3.1.38.dist-info}/METADATA +4 -4
- {ccxt-3.1.36.dist-info → ccxt-3.1.38.dist-info}/RECORD +24 -24
- {ccxt-3.1.36.dist-info → ccxt-3.1.38.dist-info}/WHEEL +0 -0
- {ccxt-3.1.36.dist-info → ccxt-3.1.38.dist-info}/top_level.txt +0 -0
ccxt/__init__.py
CHANGED
ccxt/abstract/bitstamp.py
CHANGED
@@ -204,3 +204,7 @@ class ImplicitAPI:
|
|
204
204
|
private_post_doge_address = privatePostDogeAddress = Entry('doge_address/', 'private', 'POST', {'cost': 1})
|
205
205
|
private_post_flr_withdrawal = privatePostFlrWithdrawal = Entry('flr_withdrawal/', 'private', 'POST', {'cost': 1})
|
206
206
|
private_post_flr_address = privatePostFlrAddress = Entry('flr_address/', 'private', 'POST', {'cost': 1})
|
207
|
+
private_post_dgld_withdrawal = privatePostDgldWithdrawal = Entry('dgld_withdrawal/', 'private', 'POST', {'cost': 1})
|
208
|
+
private_post_dgld_address = privatePostDgldAddress = Entry('dgld_address/', 'private', 'POST', {'cost': 1})
|
209
|
+
private_post_ldo_withdrawal = privatePostLdoWithdrawal = Entry('ldo_withdrawal/', 'private', 'POST', {'cost': 1})
|
210
|
+
private_post_ldo_address = privatePostLdoAddress = Entry('ldo_address/', 'private', 'POST', {'cost': 1})
|
ccxt/abstract/probit.py
CHANGED
@@ -19,4 +19,5 @@ class ImplicitAPI:
|
|
19
19
|
private_get_order_history = privateGetOrderHistory = Entry('order_history', 'private', 'GET', {'cost': 1})
|
20
20
|
private_get_trade_history = privateGetTradeHistory = Entry('trade_history', 'private', 'GET', {'cost': 1})
|
21
21
|
private_get_deposit_address = privateGetDepositAddress = Entry('deposit_address', 'private', 'GET', {'cost': 1})
|
22
|
+
private_get_transfer_payment = privateGetTransferPayment = Entry('transfer/payment', 'private', 'GET', {'cost': 1})
|
22
23
|
accounts_post_token = accountsPostToken = Entry('token', 'accounts', 'POST', {'cost': 1})
|
ccxt/async_support/__init__.py
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
# -----------------------------------------------------------------------------
|
4
4
|
|
5
|
-
__version__ = '3.1.
|
5
|
+
__version__ = '3.1.38'
|
6
6
|
|
7
7
|
# -----------------------------------------------------------------------------
|
8
8
|
|
@@ -2518,6 +2518,7 @@ class Exchange(BaseExchange):
|
|
2518
2518
|
if self.has['fetchFundingRates']:
|
2519
2519
|
await self.load_markets()
|
2520
2520
|
market = self.market(symbol)
|
2521
|
+
symbol = market['symbol']
|
2521
2522
|
if not market['contract']:
|
2522
2523
|
raise BadSymbol(self.id + ' fetchFundingRate() supports contract markets only')
|
2523
2524
|
rates = await self.fetchFundingRates([symbol], params)
|
ccxt/async_support/bitget.py
CHANGED
@@ -1788,6 +1788,45 @@ class bitget(Exchange, ImplicitAPI):
|
|
1788
1788
|
# quoteVolume: '5552388715.9215',
|
1789
1789
|
# usdtVolume: '5552388715.9215'
|
1790
1790
|
# }
|
1791
|
+
# spot tickers
|
1792
|
+
# {
|
1793
|
+
# "symbol":"LINKUSDT",
|
1794
|
+
# "high24h":"5.2816",
|
1795
|
+
# "low24h":"5.0828",
|
1796
|
+
# "close":"5.24",
|
1797
|
+
# "quoteVol":"1427864.6815",
|
1798
|
+
# "baseVol":"276089.9017",
|
1799
|
+
# "usdtVol":"1427864.68148328",
|
1800
|
+
# "ts":"1686653354407",
|
1801
|
+
# "buyOne":"5.239",
|
1802
|
+
# "sellOne":"5.2404",
|
1803
|
+
# "+":"95.187",
|
1804
|
+
# "askSz":"947.6127",
|
1805
|
+
# "openUtc0":"5.1599",
|
1806
|
+
# "changeUtc":"0.01552",
|
1807
|
+
# "change":"0.02594"
|
1808
|
+
# }
|
1809
|
+
# swap tickers
|
1810
|
+
# {
|
1811
|
+
# "symbol":"BTCUSDT_UMCBL",
|
1812
|
+
# "last":"26139",
|
1813
|
+
# "bestAsk":"26139",
|
1814
|
+
# "bestBid":"26138.5",
|
1815
|
+
# "bidSz":"4.62",
|
1816
|
+
# "askSz":"11.142",
|
1817
|
+
# "high24h":"26260",
|
1818
|
+
# "low24h":"25637",
|
1819
|
+
# "timestamp":"1686653988192",
|
1820
|
+
# "priceChangePercent":"0.01283",
|
1821
|
+
# "baseVolume":"130207.098",
|
1822
|
+
# "quoteVolume":"3378775678.441",
|
1823
|
+
# "usdtVolume":"3378775678.441",
|
1824
|
+
# "openUtc":"25889",
|
1825
|
+
# "chgUtc":"0.00966",
|
1826
|
+
# "indexPrice":"26159.375846",
|
1827
|
+
# "fundingRate":"0.000062",
|
1828
|
+
# "holdingAmount":"74551.735"
|
1829
|
+
# }
|
1791
1830
|
#
|
1792
1831
|
marketId = self.safe_string(ticker, 'symbol')
|
1793
1832
|
if (market is None) and (marketId is not None) and (marketId.find('_') == -1):
|
@@ -1803,10 +1842,13 @@ class bitget(Exchange, ImplicitAPI):
|
|
1803
1842
|
quoteVolume = self.safe_string_2(ticker, 'quoteVol', 'quoteVolume')
|
1804
1843
|
baseVolume = self.safe_string_2(ticker, 'baseVol', 'baseVolume')
|
1805
1844
|
timestamp = self.safe_integer_2(ticker, 'ts', 'timestamp')
|
1845
|
+
bidVolume = self.safe_string(ticker, 'bidSz')
|
1846
|
+
askVolume = self.safe_string(ticker, 'askSz')
|
1806
1847
|
datetime = self.iso8601(timestamp)
|
1807
1848
|
bid = self.safe_string_2(ticker, 'buyOne', 'bestBid')
|
1808
1849
|
ask = self.safe_string_2(ticker, 'sellOne', 'bestAsk')
|
1809
|
-
percentage = Precise.string_mul(self.
|
1850
|
+
percentage = Precise.string_mul(self.safe_string_n(ticker, ['priceChangePercent', 'changeUtc', 'change', 'chgUtc']), '100')
|
1851
|
+
open = self.safe_string_2(ticker, 'openUtc0', 'openUtc')
|
1810
1852
|
return self.safe_ticker({
|
1811
1853
|
'symbol': symbol,
|
1812
1854
|
'timestamp': timestamp,
|
@@ -1814,11 +1856,11 @@ class bitget(Exchange, ImplicitAPI):
|
|
1814
1856
|
'high': high,
|
1815
1857
|
'low': low,
|
1816
1858
|
'bid': bid,
|
1817
|
-
'bidVolume':
|
1859
|
+
'bidVolume': bidVolume,
|
1818
1860
|
'ask': ask,
|
1819
|
-
'askVolume':
|
1861
|
+
'askVolume': askVolume,
|
1820
1862
|
'vwap': None,
|
1821
|
-
'open':
|
1863
|
+
'open': open,
|
1822
1864
|
'close': close,
|
1823
1865
|
'last': None,
|
1824
1866
|
'previousClose': None,
|
@@ -2574,7 +2616,8 @@ class bitget(Exchange, ImplicitAPI):
|
|
2574
2616
|
triggerType = self.safe_string(params, 'triggerType', 'market_price')
|
2575
2617
|
request['triggerType'] = triggerType
|
2576
2618
|
request['triggerPrice'] = self.price_to_precision(symbol, triggerPrice)
|
2577
|
-
|
2619
|
+
if price is not None:
|
2620
|
+
request['executePrice'] = self.price_to_precision(symbol, price)
|
2578
2621
|
method = 'privateSpotPostPlanPlacePlan'
|
2579
2622
|
if quantity is not None:
|
2580
2623
|
request[quantityKey] = quantity
|
ccxt/async_support/bitso.py
CHANGED
@@ -999,6 +999,8 @@ class bitso(Exchange, ImplicitAPI):
|
|
999
999
|
def parse_order_status(self, status):
|
1000
1000
|
statuses = {
|
1001
1001
|
'partial-fill': 'open', # self is a common substitution in ccxt
|
1002
|
+
'partially filled': 'open',
|
1003
|
+
'queued': 'open',
|
1002
1004
|
'completed': 'closed',
|
1003
1005
|
}
|
1004
1006
|
return self.safe_string(statuses, status, status)
|
ccxt/async_support/bitstamp.py
CHANGED
@@ -59,9 +59,9 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
59
59
|
'fetchBorrowRatesPerSymbol': False,
|
60
60
|
'fetchClosedOrders': None, # https://support.kraken.com/hc/en-us/articles/360058243651-Historical-orders
|
61
61
|
'fetchFundingHistory': None,
|
62
|
-
'fetchFundingRate':
|
62
|
+
'fetchFundingRate': 'emulated',
|
63
63
|
'fetchFundingRateHistory': True,
|
64
|
-
'fetchFundingRates':
|
64
|
+
'fetchFundingRates': True,
|
65
65
|
'fetchIndexOHLCV': False,
|
66
66
|
'fetchIsolatedPositions': False,
|
67
67
|
'fetchLeverageTiers': True,
|
@@ -1513,6 +1513,78 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
1513
1513
|
result[code] = account
|
1514
1514
|
return self.safe_balance(result)
|
1515
1515
|
|
1516
|
+
async def fetch_funding_rates(self, symbols: Optional[List[str]] = None, params={}):
|
1517
|
+
"""
|
1518
|
+
see https://docs.futures.kraken.com/#http-api-trading-v3-api-market-data-get-tickers
|
1519
|
+
fetch the current funding rates
|
1520
|
+
:param [str] symbols: unified market symbols
|
1521
|
+
:param dict params: extra parameters specific to the krakenfutures api endpoint
|
1522
|
+
:returns [dict]: an array of `funding rate structures <https://docs.ccxt.com/#/?id=funding-rate-structure>`
|
1523
|
+
"""
|
1524
|
+
await self.load_markets()
|
1525
|
+
marketIds = self.market_ids(symbols)
|
1526
|
+
response = await self.publicGetTickers(params)
|
1527
|
+
tickers = self.safe_value(response, 'tickers')
|
1528
|
+
fundingRates = []
|
1529
|
+
for i in range(0, len(tickers)):
|
1530
|
+
entry = tickers[i]
|
1531
|
+
entry_symbol = self.safe_value(entry, 'symbol')
|
1532
|
+
if marketIds is not None:
|
1533
|
+
if not self.in_array(entry_symbol, marketIds):
|
1534
|
+
continue
|
1535
|
+
market = self.safe_market(entry_symbol)
|
1536
|
+
parsed = self.parse_funding_rate(entry, market)
|
1537
|
+
fundingRates.append(parsed)
|
1538
|
+
return self.index_by(fundingRates, 'symbol')
|
1539
|
+
|
1540
|
+
def parse_funding_rate(self, ticker, market=None):
|
1541
|
+
#
|
1542
|
+
# {'ask': 26.283,
|
1543
|
+
# 'askSize': 4.6,
|
1544
|
+
# 'bid': 26.201,
|
1545
|
+
# 'bidSize': 190,
|
1546
|
+
# 'fundingRate': -0.000944642727438883,
|
1547
|
+
# 'fundingRatePrediction': -0.000872671532340275,
|
1548
|
+
# 'indexPrice': 26.253,
|
1549
|
+
# 'last': 26.3,
|
1550
|
+
# 'lastSize': 0.1,
|
1551
|
+
# 'lastTime': '2023-06-11T18:55:28.958Z',
|
1552
|
+
# 'markPrice': 26.239,
|
1553
|
+
# 'open24h': 26.3,
|
1554
|
+
# 'openInterest': 641.1,
|
1555
|
+
# 'pair': 'COMP:USD',
|
1556
|
+
# 'postOnly': False,
|
1557
|
+
# 'suspended': False,
|
1558
|
+
# 'symbol': 'pf_compusd',
|
1559
|
+
# 'tag': 'perpetual',
|
1560
|
+
# 'vol24h': 0.1,
|
1561
|
+
# 'volumeQuote': 2.63}
|
1562
|
+
#
|
1563
|
+
marketId = self.safe_string(ticker, 'symbol')
|
1564
|
+
symbol = self.symbol(marketId)
|
1565
|
+
timestamp = self.parse8601(self.safe_string(ticker, 'lastTime'))
|
1566
|
+
fundingRate = self.safe_number(ticker, 'fundingRate')
|
1567
|
+
nextFundingRate = self.safe_number(ticker, 'fundingRatePrediction')
|
1568
|
+
return {
|
1569
|
+
'info': ticker,
|
1570
|
+
'symbol': symbol,
|
1571
|
+
'markPrice': None,
|
1572
|
+
'indexPrice': None,
|
1573
|
+
'interestRate': None,
|
1574
|
+
'estimatedSettlePrice': None,
|
1575
|
+
'timestamp': timestamp,
|
1576
|
+
'datetime': self.iso8601(timestamp),
|
1577
|
+
'fundingRate': fundingRate,
|
1578
|
+
'fundingTimestamp': None,
|
1579
|
+
'fundingDatetime': None,
|
1580
|
+
'nextFundingRate': nextFundingRate,
|
1581
|
+
'nextFundingTimestamp': None,
|
1582
|
+
'nextFundingDatetime': None,
|
1583
|
+
'previousFundingRate': None,
|
1584
|
+
'previousFundingTimestamp': None,
|
1585
|
+
'previousFundingDatetime': None,
|
1586
|
+
}
|
1587
|
+
|
1516
1588
|
async def fetch_funding_rate_history(self, symbol: Optional[str] = None, since: Optional[int] = None, limit: Optional[int] = None, params={}):
|
1517
1589
|
self.check_required_symbol('fetchFundingRateHistory', symbol)
|
1518
1590
|
await self.load_markets()
|
ccxt/async_support/probit.py
CHANGED
@@ -21,6 +21,7 @@ from ccxt.base.errors import OrderNotFound
|
|
21
21
|
from ccxt.base.errors import DuplicateOrderId
|
22
22
|
from ccxt.base.errors import ExchangeNotAvailable
|
23
23
|
from ccxt.base.errors import AuthenticationError
|
24
|
+
from ccxt.base.decimal_to_precision import DECIMAL_PLACES
|
24
25
|
from ccxt.base.precise import Precise
|
25
26
|
|
26
27
|
|
@@ -312,6 +313,7 @@ class wavesexchange(Exchange, ImplicitAPI):
|
|
312
313
|
'currencies': {
|
313
314
|
'WX': self.safe_currency_structure({'id': 'EMAMLxDnv3xiz8RXg8Btj33jcEw3wLczL3JKYYmuubpc', 'numericId': None, 'code': 'WX', 'precision': self.parse_number('8')}),
|
314
315
|
},
|
316
|
+
'precisionMode': DECIMAL_PLACES,
|
315
317
|
'options': {
|
316
318
|
'allowedCandles': 1440,
|
317
319
|
'accessToken': None,
|
ccxt/base/exchange.py
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
# -----------------------------------------------------------------------------
|
6
6
|
|
7
|
-
__version__ = '3.1.
|
7
|
+
__version__ = '3.1.38'
|
8
8
|
|
9
9
|
# -----------------------------------------------------------------------------
|
10
10
|
|
@@ -3674,6 +3674,7 @@ class Exchange(object):
|
|
3674
3674
|
if self.has['fetchFundingRates']:
|
3675
3675
|
self.load_markets()
|
3676
3676
|
market = self.market(symbol)
|
3677
|
+
symbol = market['symbol']
|
3677
3678
|
if not market['contract']:
|
3678
3679
|
raise BadSymbol(self.id + ' fetchFundingRate() supports contract markets only')
|
3679
3680
|
rates = self.fetchFundingRates([symbol], params)
|
ccxt/bitget.py
CHANGED
@@ -1787,6 +1787,45 @@ class bitget(Exchange, ImplicitAPI):
|
|
1787
1787
|
# quoteVolume: '5552388715.9215',
|
1788
1788
|
# usdtVolume: '5552388715.9215'
|
1789
1789
|
# }
|
1790
|
+
# spot tickers
|
1791
|
+
# {
|
1792
|
+
# "symbol":"LINKUSDT",
|
1793
|
+
# "high24h":"5.2816",
|
1794
|
+
# "low24h":"5.0828",
|
1795
|
+
# "close":"5.24",
|
1796
|
+
# "quoteVol":"1427864.6815",
|
1797
|
+
# "baseVol":"276089.9017",
|
1798
|
+
# "usdtVol":"1427864.68148328",
|
1799
|
+
# "ts":"1686653354407",
|
1800
|
+
# "buyOne":"5.239",
|
1801
|
+
# "sellOne":"5.2404",
|
1802
|
+
# "+":"95.187",
|
1803
|
+
# "askSz":"947.6127",
|
1804
|
+
# "openUtc0":"5.1599",
|
1805
|
+
# "changeUtc":"0.01552",
|
1806
|
+
# "change":"0.02594"
|
1807
|
+
# }
|
1808
|
+
# swap tickers
|
1809
|
+
# {
|
1810
|
+
# "symbol":"BTCUSDT_UMCBL",
|
1811
|
+
# "last":"26139",
|
1812
|
+
# "bestAsk":"26139",
|
1813
|
+
# "bestBid":"26138.5",
|
1814
|
+
# "bidSz":"4.62",
|
1815
|
+
# "askSz":"11.142",
|
1816
|
+
# "high24h":"26260",
|
1817
|
+
# "low24h":"25637",
|
1818
|
+
# "timestamp":"1686653988192",
|
1819
|
+
# "priceChangePercent":"0.01283",
|
1820
|
+
# "baseVolume":"130207.098",
|
1821
|
+
# "quoteVolume":"3378775678.441",
|
1822
|
+
# "usdtVolume":"3378775678.441",
|
1823
|
+
# "openUtc":"25889",
|
1824
|
+
# "chgUtc":"0.00966",
|
1825
|
+
# "indexPrice":"26159.375846",
|
1826
|
+
# "fundingRate":"0.000062",
|
1827
|
+
# "holdingAmount":"74551.735"
|
1828
|
+
# }
|
1790
1829
|
#
|
1791
1830
|
marketId = self.safe_string(ticker, 'symbol')
|
1792
1831
|
if (market is None) and (marketId is not None) and (marketId.find('_') == -1):
|
@@ -1802,10 +1841,13 @@ class bitget(Exchange, ImplicitAPI):
|
|
1802
1841
|
quoteVolume = self.safe_string_2(ticker, 'quoteVol', 'quoteVolume')
|
1803
1842
|
baseVolume = self.safe_string_2(ticker, 'baseVol', 'baseVolume')
|
1804
1843
|
timestamp = self.safe_integer_2(ticker, 'ts', 'timestamp')
|
1844
|
+
bidVolume = self.safe_string(ticker, 'bidSz')
|
1845
|
+
askVolume = self.safe_string(ticker, 'askSz')
|
1805
1846
|
datetime = self.iso8601(timestamp)
|
1806
1847
|
bid = self.safe_string_2(ticker, 'buyOne', 'bestBid')
|
1807
1848
|
ask = self.safe_string_2(ticker, 'sellOne', 'bestAsk')
|
1808
|
-
percentage = Precise.string_mul(self.
|
1849
|
+
percentage = Precise.string_mul(self.safe_string_n(ticker, ['priceChangePercent', 'changeUtc', 'change', 'chgUtc']), '100')
|
1850
|
+
open = self.safe_string_2(ticker, 'openUtc0', 'openUtc')
|
1809
1851
|
return self.safe_ticker({
|
1810
1852
|
'symbol': symbol,
|
1811
1853
|
'timestamp': timestamp,
|
@@ -1813,11 +1855,11 @@ class bitget(Exchange, ImplicitAPI):
|
|
1813
1855
|
'high': high,
|
1814
1856
|
'low': low,
|
1815
1857
|
'bid': bid,
|
1816
|
-
'bidVolume':
|
1858
|
+
'bidVolume': bidVolume,
|
1817
1859
|
'ask': ask,
|
1818
|
-
'askVolume':
|
1860
|
+
'askVolume': askVolume,
|
1819
1861
|
'vwap': None,
|
1820
|
-
'open':
|
1862
|
+
'open': open,
|
1821
1863
|
'close': close,
|
1822
1864
|
'last': None,
|
1823
1865
|
'previousClose': None,
|
@@ -2573,7 +2615,8 @@ class bitget(Exchange, ImplicitAPI):
|
|
2573
2615
|
triggerType = self.safe_string(params, 'triggerType', 'market_price')
|
2574
2616
|
request['triggerType'] = triggerType
|
2575
2617
|
request['triggerPrice'] = self.price_to_precision(symbol, triggerPrice)
|
2576
|
-
|
2618
|
+
if price is not None:
|
2619
|
+
request['executePrice'] = self.price_to_precision(symbol, price)
|
2577
2620
|
method = 'privateSpotPostPlanPlacePlan'
|
2578
2621
|
if quantity is not None:
|
2579
2622
|
request[quantityKey] = quantity
|
ccxt/bitso.py
CHANGED
@@ -999,6 +999,8 @@ class bitso(Exchange, ImplicitAPI):
|
|
999
999
|
def parse_order_status(self, status):
|
1000
1000
|
statuses = {
|
1001
1001
|
'partial-fill': 'open', # self is a common substitution in ccxt
|
1002
|
+
'partially filled': 'open',
|
1003
|
+
'queued': 'open',
|
1002
1004
|
'completed': 'closed',
|
1003
1005
|
}
|
1004
1006
|
return self.safe_string(statuses, status, status)
|
ccxt/bitstamp.py
CHANGED
ccxt/krakenfutures.py
CHANGED
@@ -59,9 +59,9 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
59
59
|
'fetchBorrowRatesPerSymbol': False,
|
60
60
|
'fetchClosedOrders': None, # https://support.kraken.com/hc/en-us/articles/360058243651-Historical-orders
|
61
61
|
'fetchFundingHistory': None,
|
62
|
-
'fetchFundingRate':
|
62
|
+
'fetchFundingRate': 'emulated',
|
63
63
|
'fetchFundingRateHistory': True,
|
64
|
-
'fetchFundingRates':
|
64
|
+
'fetchFundingRates': True,
|
65
65
|
'fetchIndexOHLCV': False,
|
66
66
|
'fetchIsolatedPositions': False,
|
67
67
|
'fetchLeverageTiers': True,
|
@@ -1513,6 +1513,78 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
1513
1513
|
result[code] = account
|
1514
1514
|
return self.safe_balance(result)
|
1515
1515
|
|
1516
|
+
def fetch_funding_rates(self, symbols: Optional[List[str]] = None, params={}):
|
1517
|
+
"""
|
1518
|
+
see https://docs.futures.kraken.com/#http-api-trading-v3-api-market-data-get-tickers
|
1519
|
+
fetch the current funding rates
|
1520
|
+
:param [str] symbols: unified market symbols
|
1521
|
+
:param dict params: extra parameters specific to the krakenfutures api endpoint
|
1522
|
+
:returns [dict]: an array of `funding rate structures <https://docs.ccxt.com/#/?id=funding-rate-structure>`
|
1523
|
+
"""
|
1524
|
+
self.load_markets()
|
1525
|
+
marketIds = self.market_ids(symbols)
|
1526
|
+
response = self.publicGetTickers(params)
|
1527
|
+
tickers = self.safe_value(response, 'tickers')
|
1528
|
+
fundingRates = []
|
1529
|
+
for i in range(0, len(tickers)):
|
1530
|
+
entry = tickers[i]
|
1531
|
+
entry_symbol = self.safe_value(entry, 'symbol')
|
1532
|
+
if marketIds is not None:
|
1533
|
+
if not self.in_array(entry_symbol, marketIds):
|
1534
|
+
continue
|
1535
|
+
market = self.safe_market(entry_symbol)
|
1536
|
+
parsed = self.parse_funding_rate(entry, market)
|
1537
|
+
fundingRates.append(parsed)
|
1538
|
+
return self.index_by(fundingRates, 'symbol')
|
1539
|
+
|
1540
|
+
def parse_funding_rate(self, ticker, market=None):
|
1541
|
+
#
|
1542
|
+
# {'ask': 26.283,
|
1543
|
+
# 'askSize': 4.6,
|
1544
|
+
# 'bid': 26.201,
|
1545
|
+
# 'bidSize': 190,
|
1546
|
+
# 'fundingRate': -0.000944642727438883,
|
1547
|
+
# 'fundingRatePrediction': -0.000872671532340275,
|
1548
|
+
# 'indexPrice': 26.253,
|
1549
|
+
# 'last': 26.3,
|
1550
|
+
# 'lastSize': 0.1,
|
1551
|
+
# 'lastTime': '2023-06-11T18:55:28.958Z',
|
1552
|
+
# 'markPrice': 26.239,
|
1553
|
+
# 'open24h': 26.3,
|
1554
|
+
# 'openInterest': 641.1,
|
1555
|
+
# 'pair': 'COMP:USD',
|
1556
|
+
# 'postOnly': False,
|
1557
|
+
# 'suspended': False,
|
1558
|
+
# 'symbol': 'pf_compusd',
|
1559
|
+
# 'tag': 'perpetual',
|
1560
|
+
# 'vol24h': 0.1,
|
1561
|
+
# 'volumeQuote': 2.63}
|
1562
|
+
#
|
1563
|
+
marketId = self.safe_string(ticker, 'symbol')
|
1564
|
+
symbol = self.symbol(marketId)
|
1565
|
+
timestamp = self.parse8601(self.safe_string(ticker, 'lastTime'))
|
1566
|
+
fundingRate = self.safe_number(ticker, 'fundingRate')
|
1567
|
+
nextFundingRate = self.safe_number(ticker, 'fundingRatePrediction')
|
1568
|
+
return {
|
1569
|
+
'info': ticker,
|
1570
|
+
'symbol': symbol,
|
1571
|
+
'markPrice': None,
|
1572
|
+
'indexPrice': None,
|
1573
|
+
'interestRate': None,
|
1574
|
+
'estimatedSettlePrice': None,
|
1575
|
+
'timestamp': timestamp,
|
1576
|
+
'datetime': self.iso8601(timestamp),
|
1577
|
+
'fundingRate': fundingRate,
|
1578
|
+
'fundingTimestamp': None,
|
1579
|
+
'fundingDatetime': None,
|
1580
|
+
'nextFundingRate': nextFundingRate,
|
1581
|
+
'nextFundingTimestamp': None,
|
1582
|
+
'nextFundingDatetime': None,
|
1583
|
+
'previousFundingRate': None,
|
1584
|
+
'previousFundingTimestamp': None,
|
1585
|
+
'previousFundingDatetime': None,
|
1586
|
+
}
|
1587
|
+
|
1516
1588
|
def fetch_funding_rate_history(self, symbol: Optional[str] = None, since: Optional[int] = None, limit: Optional[int] = None, params={}):
|
1517
1589
|
self.check_required_symbol('fetchFundingRateHistory', symbol)
|
1518
1590
|
self.load_markets()
|
ccxt/pro/__init__.py
CHANGED
ccxt/pro/bitfinex2.py
CHANGED
ccxt/probit.py
CHANGED
ccxt/wavesexchange.py
CHANGED
@@ -21,6 +21,7 @@ from ccxt.base.errors import OrderNotFound
|
|
21
21
|
from ccxt.base.errors import DuplicateOrderId
|
22
22
|
from ccxt.base.errors import ExchangeNotAvailable
|
23
23
|
from ccxt.base.errors import AuthenticationError
|
24
|
+
from ccxt.base.decimal_to_precision import DECIMAL_PLACES
|
24
25
|
from ccxt.base.precise import Precise
|
25
26
|
|
26
27
|
|
@@ -312,6 +313,7 @@ class wavesexchange(Exchange, ImplicitAPI):
|
|
312
313
|
'currencies': {
|
313
314
|
'WX': self.safe_currency_structure({'id': 'EMAMLxDnv3xiz8RXg8Btj33jcEw3wLczL3JKYYmuubpc', 'numericId': None, 'code': 'WX', 'precision': self.parse_number('8')}),
|
314
315
|
},
|
316
|
+
'precisionMode': DECIMAL_PLACES,
|
315
317
|
'options': {
|
316
318
|
'allowedCandles': 1440,
|
317
319
|
'accessToken': None,
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: ccxt
|
3
|
-
Version: 3.1.
|
3
|
+
Version: 3.1.38
|
4
4
|
Summary: A JavaScript / TypeScript / Python / C# / PHP cryptocurrency trading library with support for 130+ exchanges
|
5
5
|
Home-page: https://ccxt.com
|
6
6
|
Author: Igor Kroitor
|
@@ -264,13 +264,13 @@ console.log(version, Object.keys(exchanges));
|
|
264
264
|
|
265
265
|
All-in-one browser bundle (dependencies included), served from a CDN of your choice:
|
266
266
|
|
267
|
-
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@3.1.
|
268
|
-
* unpkg: https://unpkg.com/ccxt@3.1.
|
267
|
+
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@3.1.38/dist/ccxt.browser.js
|
268
|
+
* unpkg: https://unpkg.com/ccxt@3.1.38/dist/ccxt.browser.js
|
269
269
|
|
270
270
|
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
271
|
|
272
272
|
```HTML
|
273
|
-
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@3.1.
|
273
|
+
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@3.1.38/dist/ccxt.browser.js"></script>
|
274
274
|
```
|
275
275
|
|
276
276
|
Creates a global `ccxt` object:
|
@@ -1,4 +1,4 @@
|
|
1
|
-
ccxt/__init__.py,sha256=
|
1
|
+
ccxt/__init__.py,sha256=WDNQJwzqkNuFCK9-scYfDupfHThxRkzWDxCfoh1qgUA,15531
|
2
2
|
ccxt/ace.py,sha256=X4xNSn-7c-K-KFZBUZXwdijv2gsSo1AjiuDV2Ay_qI8,41378
|
3
3
|
ccxt/alpaca.py,sha256=67-UgBXEXmAGMIYlxsufpFOLDSQi-V6-ZOefTAzSNJs,33210
|
4
4
|
ccxt/ascendex.py,sha256=Tfu6IHoc1hZGAwvEV8U5dhjTUyGOPXyp3hf-Ry6LFuU,129319
|
@@ -17,15 +17,15 @@ ccxt/bitfinex.py,sha256=mLdZP_RZp--Gb85WiU9Rvfk_KrhLkYnSHGcqPBmuaFw,69361
|
|
17
17
|
ccxt/bitfinex2.py,sha256=rLsOuXWVHhgYVBGeeMva8Xcu0VCRhZIfY663lzL_EXg,111558
|
18
18
|
ccxt/bitflyer.py,sha256=Mjiqpa3UoZXZQzFrQD_LGprO7T7VINBZ1uZRJwZRjYY,37790
|
19
19
|
ccxt/bitforex.py,sha256=bEkzgW6lwa1y05ScVEau6sa7Awt1o9Smt9tizEAfwPQ,32194
|
20
|
-
ccxt/bitget.py,sha256=
|
20
|
+
ccxt/bitget.py,sha256=wF3S_RunKMYgXbDCLs5JYTg3KjoQFZwbge3LKseRPlQ,221648
|
21
21
|
ccxt/bithumb.py,sha256=7ouyliU_gsTO6v8GT5W1Gz4W-1tDwK3W1JfgNRm8OBE,42621
|
22
22
|
ccxt/bitmart.py,sha256=rvO61qVRM_dFTP5NkhE4sTDXzRePu9d7Y3hFGIIDGA8,131545
|
23
23
|
ccxt/bitmex.py,sha256=SRpwZ4xT0oE96OBraqo40w9L9Tb5Wt621M_3CI7Yq-8,111196
|
24
24
|
ccxt/bitopro.py,sha256=sT-RuUetuQ-FuCJxZq34efT8JvvntxsYRfRByqIzcpI,63323
|
25
25
|
ccxt/bitpanda.py,sha256=8KtkT25UEoP7qAJY3895HsQvaR72DbAQOY1CYHK8aTE,87382
|
26
26
|
ccxt/bitrue.py,sha256=4k88te4hS7uWDxFrvYNjGBW_eip5-Oy-2lN4Y5eCRr0,89641
|
27
|
-
ccxt/bitso.py,sha256=
|
28
|
-
ccxt/bitstamp.py,sha256=
|
27
|
+
ccxt/bitso.py,sha256=QfkYN1oW0knJCo5hxecXDZFn5vq8qKGyK-msbCaaSQg,68625
|
28
|
+
ccxt/bitstamp.py,sha256=OXde5jfJ3vWvjOirdURG_QL_eK7gnLLoztHI4wPZ5To,84340
|
29
29
|
ccxt/bitstamp1.py,sha256=_LKJ9D-PWsxt8hE_RXz35gb7Geizxri4j2c_r4CzpjY,17834
|
30
30
|
ccxt/bittrex.py,sha256=RiZFtoeMP2QuqTkQhov5WbPEVOsHGUAOtVkr_HxUBjw,93446
|
31
31
|
ccxt/bitvavo.py,sha256=OgZf6vMA96m3PnL5TmaXQ5BepSqi_9pVD6WOG43XpX0,76810
|
@@ -73,7 +73,7 @@ ccxt/independentreserve.py,sha256=5D5puP6RytBla_1flfvu9d6hI82w45QiO9HFqF8iQd0,29
|
|
73
73
|
ccxt/indodax.py,sha256=Hk5D_PMptCh3saTwKe3H5sp9JWCnUlIVZQAb0Cw9AlE,42486
|
74
74
|
ccxt/itbit.py,sha256=raVWHPOc3hNcpmTB9VymcPH8I3su9V3DLuuCTj5EAgY,34960
|
75
75
|
ccxt/kraken.py,sha256=B93yMVRNmUg2HXGnJiDAHsIEjJVX6QPyznJvaU8QgRE,101458
|
76
|
-
ccxt/krakenfutures.py,sha256=
|
76
|
+
ccxt/krakenfutures.py,sha256=aaFhiasNa3cfpbIlWq0WgosdD9fkKJcSQcTxGV7hmJc,84671
|
77
77
|
ccxt/kucoin.py,sha256=6l2iofmOBIl-65gaHQYeyjebvvQt6RSIAozz9UXBCYo,168018
|
78
78
|
ccxt/kucoinfutures.py,sha256=g7Uv4HPghymBLPqif_X1iBfbuJT9Go4yomvM1JoW5Ls,101375
|
79
79
|
ccxt/kuna.py,sha256=9Xvk8E1MWenPP_kwk8YR3SAWAwu9GRIY3P3TSd6eVMg,37799
|
@@ -96,14 +96,14 @@ ccxt/paymium.py,sha256=LPrrw7IUDEFp8Y4BPfsU7nDi8Y_LhOYE7wrj2xq_Hr4,23936
|
|
96
96
|
ccxt/phemex.py,sha256=UiIZQc1utixqnkYHL8hZNFv25hHyq8F6tus1Ic-2zvo,192872
|
97
97
|
ccxt/poloniex.py,sha256=329U_68IhoBT2dHWd8nGO8Qw0-OuYTVBk2k2Q4oui6c,93487
|
98
98
|
ccxt/poloniexfutures.py,sha256=Vwch1rC1CIjwouZPbnzgeQi0w8QA84zsBx5RQ_sS2pc,76647
|
99
|
-
ccxt/probit.py,sha256=
|
99
|
+
ccxt/probit.py,sha256=F7py-ex-HbBP-GE_CPEgau_alNaIO03cJYm6hqImgzc,69870
|
100
100
|
ccxt/ripio.py,sha256=B9wGD-eDe2fAmHlw-kCYOOqFqP0PHkaR1kt0EA_po3g,47325
|
101
101
|
ccxt/stex.py,sha256=FvBv-9LL-l9T3nqiAAzgoyQakjnRTRnhLYC5ttkU9-4,117868
|
102
102
|
ccxt/tidex.py,sha256=dzrcfkRwg8Zei2IIzNkav0SvDwJbPfRLMd8xLiLfZbo,42456
|
103
103
|
ccxt/timex.py,sha256=GblEn7gD1D1aDNN6pudgcC-VHIZxCKFuXCwke_HmOnc,65518
|
104
104
|
ccxt/tokocrypto.py,sha256=z9svHjjy6Yfl1GTN8jhiIi1Tuyc52YvGxL0BTZApIbY,119299
|
105
105
|
ccxt/upbit.py,sha256=E2tqa9cPXMsOrZ7S8EuDmyMyWqPjQ7aXzt40wkGVfvw,75580
|
106
|
-
ccxt/wavesexchange.py,sha256=
|
106
|
+
ccxt/wavesexchange.py,sha256=vqoCvsKr2COEYwB_kahJZHXFoGuFfZNiua3WpRukH54,103656
|
107
107
|
ccxt/wazirx.py,sha256=j58VNX1679R7uElg5pValNDhiXk328MlM4GQ8Ovgyp4,35593
|
108
108
|
ccxt/whitebit.py,sha256=25wMYsliYMwh84AjpCKy_6mDBOQ-gVIVqmIKpe5o8T4,92270
|
109
109
|
ccxt/woo.py,sha256=AFePHXS_2i-1wJeMDaYJM7_UYzabhQnjzbCXd3yjHX8,94854
|
@@ -139,7 +139,7 @@ ccxt/abstract/bitopro.py,sha256=vL017EIFFGrR3ERc4frgCwqZkCJo8B_YAeEweiiQoM0,2919
|
|
139
139
|
ccxt/abstract/bitpanda.py,sha256=TtJq4d44lrutV8wcK0lX4v0EfQ72ly6fxR-zB7-FSuI,3859
|
140
140
|
ccxt/abstract/bitrue.py,sha256=uNOkkbjtJ9kr1ksp6C9CDP4FQ2ZVhc5Vd1MGilSCJ1I,3648
|
141
141
|
ccxt/abstract/bitso.py,sha256=aWtuVoQ3CLMBTukWz3L3-gagyhIeEcEf4G5J48Hz_3k,4025
|
142
|
-
ccxt/abstract/bitstamp.py,sha256=
|
142
|
+
ccxt/abstract/bitstamp.py,sha256=wJDhmGf73AIEF6vMldzSKgeh0qUmgOuNYsXKDzsiyUI,24027
|
143
143
|
ccxt/abstract/bitstamp1.py,sha256=yvbXBbBdQAZcOIA1f3cumJqoKFZqbUfU7TWRzYgTTTg,1987
|
144
144
|
ccxt/abstract/bittrex.py,sha256=UKl5VAQRLbpoG_uZt4L12uS_SLuLwfbGYCOscK0rfbQ,9337
|
145
145
|
ccxt/abstract/bitvavo.py,sha256=bPoB0TAmdey7t_O7GBrZpaS9MtwjySWsO1ctqqIuLTw,2357
|
@@ -207,7 +207,7 @@ ccxt/abstract/paymium.py,sha256=PvsQHHBYBGyWP4eDX_4Ezqq88FPqdSyhkdy5BPJG9s4,2752
|
|
207
207
|
ccxt/abstract/phemex.py,sha256=lAk6NPuqxxPHAWTjxGDz_W3x9U88v8tjJU4uCIXykQk,12172
|
208
208
|
ccxt/abstract/poloniex.py,sha256=zPyRTMRU_z8wnXdwFVU2a6qgrBHxveUH-lDIySfRRuk,6301
|
209
209
|
ccxt/abstract/poloniexfutures.py,sha256=ph59p69TXI12BkFr173ryCapNSg5Amb4MynXN5GB2FE,4575
|
210
|
-
ccxt/abstract/probit.py,sha256=
|
210
|
+
ccxt/abstract/probit.py,sha256=PxQkrvv3EQ2TvOxJmc_mAF_aH8xFFw6pZaVVjjUo5_4,1969
|
211
211
|
ccxt/abstract/tidex.py,sha256=vOKBLzodqzlRNLCJWR2PNVEuscslNvUdoQOWQ0P4mpk,1953
|
212
212
|
ccxt/abstract/timex.py,sha256=9b0CDsyjm8XrYZmhUMB1dTHUmyE9YrsZTCZrz1UTt6E,5875
|
213
213
|
ccxt/abstract/tokocrypto.py,sha256=OF5UW4ch_Lf3-avOPgd4AD4CVrOUDUfUpSMCmxhNHlk,4094
|
@@ -220,7 +220,7 @@ ccxt/abstract/xt.py,sha256=xHHv2viFGK0_iPZ4gu6Wb0aOrpcKhr9zoY-BIPWh5bs,27028
|
|
220
220
|
ccxt/abstract/yobit.py,sha256=8ycfCO8ORFly9hc0Aa47sZyX4_ZKPXS9h9yJzI-uQ7Q,1339
|
221
221
|
ccxt/abstract/zaif.py,sha256=m15WHdl3gYy0GOXNZ8NEH8eE7sVh8c0T_ITNuU8vXeU,3935
|
222
222
|
ccxt/abstract/zonda.py,sha256=VoxuPkSq8vAvKnDvOqnByhwsIf09m7yIrs8HejFrDk4,5482
|
223
|
-
ccxt/async_support/__init__.py,sha256=
|
223
|
+
ccxt/async_support/__init__.py,sha256=Ny46Nabr-YewqSL-xg-fVg6pBHRk2rE95VQMVYs9ThI,15324
|
224
224
|
ccxt/async_support/ace.py,sha256=cpzMJrG4paMTXdrfdHuJtSXND1NKhfKLNxaYeicMalc,41602
|
225
225
|
ccxt/async_support/alpaca.py,sha256=0Q7bp7mUhU6lKkCNWdjgt1NR3Rz1QpfC9rAVzTutSwk,33356
|
226
226
|
ccxt/async_support/ascendex.py,sha256=V0G5f9Gg79EjJIVpsuNuQGomoZmx9_WAKGsUjqSJs8k,129933
|
@@ -239,15 +239,15 @@ ccxt/async_support/bitfinex.py,sha256=1pCKbPkjQyNZCLNI49qqlvu0AFYb1SlZ8KmJY7RDhQ
|
|
239
239
|
ccxt/async_support/bitfinex2.py,sha256=RkbKHztzdht9LjSZby5avwv0Kk9_QIqmOkucFqqFCVc,112028
|
240
240
|
ccxt/async_support/bitflyer.py,sha256=8TO5aCFtnilvQHr5PRsQ6J6YoTlzJmX8111u607p3sE,38098
|
241
241
|
ccxt/async_support/bitforex.py,sha256=qSYt8LjR1Cf_ZFhO9U64B9ywwvHDwSuKdqRHeJ84i4M,32418
|
242
|
-
ccxt/async_support/bitget.py,sha256=
|
242
|
+
ccxt/async_support/bitget.py,sha256=G4_FlFy3eI7x1i5cicqqrATNLl67kQtXzWff-zl6Nn8,222522
|
243
243
|
ccxt/async_support/bithumb.py,sha256=DynBg-aTjHGhTqXKMYERrLk9QFfs59Z7Kwi73envhao,42839
|
244
244
|
ccxt/async_support/bitmart.py,sha256=dG-jlys7t30I2kPpi-D0IhJW4ShkDhbCo75QeSsIfmY,132183
|
245
245
|
ccxt/async_support/bitmex.py,sha256=HI_e8NyiT2HBx7sa5YCBJ1fI2xHhZcbIFQK3qcslhkU,111660
|
246
246
|
ccxt/async_support/bitopro.py,sha256=TJPBAPLMYBTAQPTmiIqS73r6JTT-UjebtIbXEDEy16s,63691
|
247
247
|
ccxt/async_support/bitpanda.py,sha256=frmW8i1cTE_LIiznGksIMkqCJxVqm_nXv1YAkrNzQxM,87834
|
248
248
|
ccxt/async_support/bitrue.py,sha256=hDT3k7-XyRYu1SmON5XGsxFO4b8fPrylkqAyoLkKaO4,90015
|
249
|
-
ccxt/async_support/bitso.py,sha256=
|
250
|
-
ccxt/async_support/bitstamp.py,sha256=
|
249
|
+
ccxt/async_support/bitso.py,sha256=HghNgeHVylIjIGOcOI7bdp-4itZKnKU8Hi8jdHhxz18,69011
|
250
|
+
ccxt/async_support/bitstamp.py,sha256=oucUAu3ulVHhFRYCoa1JPEQR8TCrZ4F7Zf-opXgz0u8,84780
|
251
251
|
ccxt/async_support/bitstamp1.py,sha256=Reu_ZNHN6ogh7Ume9Y_Do16lT2mgBYsOrhTvaPL8Fu0,17980
|
252
252
|
ccxt/async_support/bittrex.py,sha256=Rr-5WYSLSY4iKbfh74L7CC-0CEF5xg_k01jyuqoaGNA,93952
|
253
253
|
ccxt/async_support/bitvavo.py,sha256=hO3QV6t-pmcSBPfuBQFWKTnJhZpVhoIdPhw5LodaGIo,77220
|
@@ -295,7 +295,7 @@ ccxt/async_support/independentreserve.py,sha256=_lMc83RVOj5kLoE3M3pOPb11N6Jlmhli
|
|
295
295
|
ccxt/async_support/indodax.py,sha256=XQDJ3ZGA1CWaS8ZCxZd1nNZj2m1dHruTGqj-uOkmV4E,42758
|
296
296
|
ccxt/async_support/itbit.py,sha256=nSiSPygyEAiDm5kcpRYFJGXjx631XB3oGK6M8zGoiDs,35208
|
297
297
|
ccxt/async_support/kraken.py,sha256=YTcT7WMVoyJOUhDowaVZ-Da6OD9xwEEZbjDVHhgXoR0,102000
|
298
|
-
ccxt/async_support/krakenfutures.py,sha256=
|
298
|
+
ccxt/async_support/krakenfutures.py,sha256=9y4Z3oEMV7QAUTofCUuOg669YwBTvKwSlyosGhXb9Z8,84991
|
299
299
|
ccxt/async_support/kucoin.py,sha256=3icBIaZMhzBRx-WFMEQGU4GyvAdBr4mr_2kUPOX1H9M,168650
|
300
300
|
ccxt/async_support/kucoinfutures.py,sha256=rewe_K8PO1WSWx-dgutpkQvXcLcFnCiKE78MBFSZIhg,101845
|
301
301
|
ccxt/async_support/kuna.py,sha256=TDidt-wI2_z28I51qRoCVhAVL5bXmUsiZdfEkDOhPFI,38047
|
@@ -318,14 +318,14 @@ ccxt/async_support/paymium.py,sha256=mtOB_A5_kGtJUmWld9aLgZ3FxgTkb8u28U8hzcZvPow
|
|
318
318
|
ccxt/async_support/phemex.py,sha256=H-sZj6CFdMOP93U6TaEL8M7PyPcM_Y6On84xhsS_ooU,193468
|
319
319
|
ccxt/async_support/poloniex.py,sha256=1aC2pTB31fe6q4LlTcVrCI99_2RvEjZTDkT10bGV3jo,93987
|
320
320
|
ccxt/async_support/poloniexfutures.py,sha256=veK4VLc_M8tdZ88xyB-FO4MENw289Dpag2qiZyhMIrM,77015
|
321
|
-
ccxt/async_support/probit.py,sha256=
|
321
|
+
ccxt/async_support/probit.py,sha256=GioYdFYRYXyASDvifRBYASkq1IVgvT8jAI1trqCr6DA,70220
|
322
322
|
ccxt/async_support/ripio.py,sha256=ZXAx-Uj7_Nx0e9V_zSoPpoYSbBh2PHmbI5T2eS3Ao8s,47585
|
323
323
|
ccxt/async_support/stex.py,sha256=wUGDvP94zkMWk4vdD2c5Ib2f8JC7E-C2mK6cFVK1wZU,118368
|
324
324
|
ccxt/async_support/tidex.py,sha256=0CBqyvSJ8WIN0HiRLtw9CRyS4cixBVakJdr1mCt5eLI,42704
|
325
325
|
ccxt/async_support/timex.py,sha256=ouoy6zc43acii1CN5uQmaF6UcxG0qzP5FQmnMPagat8,65850
|
326
326
|
ccxt/async_support/tokocrypto.py,sha256=rj76-zZP7MtreFGEKlPpyr7cVSaZB4eckJxQ3kfP68k,119643
|
327
327
|
ccxt/async_support/upbit.py,sha256=S_Dx-1rcJ0e3pVnCNQQ13E-6wEXQYtTJlc2AECWLkAE,76014
|
328
|
-
ccxt/async_support/wavesexchange.py,sha256=
|
328
|
+
ccxt/async_support/wavesexchange.py,sha256=GuWuSBOYM6b38BbMIul_4zohZ6jTHdG4-vMN7_J3BkE,104150
|
329
329
|
ccxt/async_support/wazirx.py,sha256=XWnemZZKkMYaek6vPWAyqp7lRUqgiTxXOfPpOA9rEZA,35841
|
330
330
|
ccxt/async_support/whitebit.py,sha256=KIfBrvVHxE6T5XVYreozAmnyqrwAB_kr-WUobaaBSZE,92722
|
331
331
|
ccxt/async_support/woo.py,sha256=XB2NyiqiHK8em_q_lvZL1n7N9y44G4ygG4y0E2fxJVE,95438
|
@@ -335,7 +335,7 @@ ccxt/async_support/zaif.py,sha256=eCR5rPQU9BpP2b-X0hPtOtN2FXiKZ4URHyyZ53Di6T4,29
|
|
335
335
|
ccxt/async_support/zb.py,sha256=W8HHyssjCLTugSRs80TnAwGJl85vp7nyNPOn9RLpXFk,184533
|
336
336
|
ccxt/async_support/zonda.py,sha256=8fLlL4exIr24N0vaf07psLeqNEqhLS2cZj-_VVXsnyM,74375
|
337
337
|
ccxt/async_support/base/__init__.py,sha256=aVYSsFi--b4InRs9zDN_wtCpj8odosAB726JdUHavrk,67
|
338
|
-
ccxt/async_support/base/exchange.py,sha256=
|
338
|
+
ccxt/async_support/base/exchange.py,sha256=zJ9CmhinTo6i7rnZJpWm1rZMHfL-n2l3Ycs6lCfMou0,131103
|
339
339
|
ccxt/async_support/base/throttler.py,sha256=tvDVcdRUVYi8fZRlEcnqtgzcgB_KMUMRs5Pu8tuU-tU,1847
|
340
340
|
ccxt/async_support/base/ws/__init__.py,sha256=uockzpLuwntKGZbs5EOWFe-Zg-k6Cj7GhNJLc_RX0so,1791
|
341
341
|
ccxt/async_support/base/ws/aiohttp_client.py,sha256=xmlZV30Vb9Kq7JCm3D5FuEmuj1zp5H4F4hrz8-Y-Ir4,4999
|
@@ -349,10 +349,10 @@ ccxt/async_support/base/ws/order_book_side.py,sha256=GH-475Ni0mLOx7mUDnz4jjzaGkh
|
|
349
349
|
ccxt/base/__init__.py,sha256=eTx1OE3HJjspFUQjGm6LBhaQiMKJnXjkdP-JUXknyQ0,1320
|
350
350
|
ccxt/base/decimal_to_precision.py,sha256=fgWRBzRTtsf3r2INyS4f7WHlzgjB5YM1ekiwqD21aac,6634
|
351
351
|
ccxt/base/errors.py,sha256=-LVeTNyXvu3QEgb-p-KzMpcBgzHlvFTwDzmZK7Gfc14,3401
|
352
|
-
ccxt/base/exchange.py,sha256=
|
352
|
+
ccxt/base/exchange.py,sha256=HQydHCjteCvvOR7viH22zeBpIz_BllPiXylmMjrO-Tk,170605
|
353
353
|
ccxt/base/precise.py,sha256=_xfu54sV0vWNnOfGTKRFykeuWP8mn4K1m9lk1tcllX4,8565
|
354
354
|
ccxt/base/types.py,sha256=8FseQkf_LL-nXdb5LyT6RpDaU8pr3HAI9Jb9Wj_oDN0,1366
|
355
|
-
ccxt/pro/__init__.py,sha256=
|
355
|
+
ccxt/pro/__init__.py,sha256=wTm4HGwHvRH0Ei58i8xAcz6lmgQK98FdIywmCum4BEI,6463
|
356
356
|
ccxt/pro/alpaca.py,sha256=CmaU0MJq0HiNaYvBHeDJfTa-letDiEQonRON7Q_3W_k,26686
|
357
357
|
ccxt/pro/ascendex.py,sha256=k6rpuiPhj3ipeWRG5vwR22SS4iAzQPe1q1WxJaaucLk,34565
|
358
358
|
ccxt/pro/bequant.py,sha256=qz8JjnpkAQY_CFiFSKGqrjjgZ2167_TBKjSJOb9NeDw,1081
|
@@ -362,7 +362,7 @@ ccxt/pro/binanceus.py,sha256=xKL-1cOHyqlLTwLGg-DPf6g3JMM1oU2Kv708FiGJwrY,2016
|
|
362
362
|
ccxt/pro/binanceusdm.py,sha256=S0eT662O2ReplsihWk42nhJWqw1XsODpeDQa9eFVVt8,1357
|
363
363
|
ccxt/pro/bitcoincom.py,sha256=ipRe4xMqvwh81FAJhzQI8P_sGCmmHFw42owF-FwcoD4,914
|
364
364
|
ccxt/pro/bitfinex.py,sha256=IfWEXCtvk8m4gDbfS8RbCGaodVaDdrGySLckk1GM3w0,24768
|
365
|
-
ccxt/pro/bitfinex2.py,sha256=
|
365
|
+
ccxt/pro/bitfinex2.py,sha256=G6F_3qGFQ8WiOHYBX21JKG-7OBwrGa2IneQrMnfx9mA,42085
|
366
366
|
ccxt/pro/bitget.py,sha256=2iO5ReeZa6beJE2jeCjFk6voOdpRqPMtJfh5vVcIBCY,46241
|
367
367
|
ccxt/pro/bitmart.py,sha256=eQcMqCa_Y2wY7dSTiCYj0kDv3NbdD5EKfIbMJx22SUw,24498
|
368
368
|
ccxt/pro/bitmex.py,sha256=EfI-Ymz1RcLvElmDiC--7fXbCue68B6HEMJUGVV6cMM,55624
|
@@ -462,7 +462,7 @@ ccxt/test/base/test_ticker.py,sha256=h9AV_O6s-Ax3vB3sFoN0Mz22rMOi65i9BDv0SNejH98
|
|
462
462
|
ccxt/test/base/test_trade.py,sha256=bL9o3S_TGW8Nnlxu-BYkRG8NyRzKAWrU66uO5jJCM3A,2259
|
463
463
|
ccxt/test/base/test_trading_fee.py,sha256=yRCpLHLg_ca9JQXdZB3_pIMHgHLGEfeQF95E6d1e2Bc,1125
|
464
464
|
ccxt/test/base/test_transaction.py,sha256=BTbB4UHHXkrvYgwbrhh867nVRlevmIkIrz1W_odlQJI,1434
|
465
|
-
ccxt-3.1.
|
466
|
-
ccxt-3.1.
|
467
|
-
ccxt-3.1.
|
468
|
-
ccxt-3.1.
|
465
|
+
ccxt-3.1.38.dist-info/METADATA,sha256=0gs-vS27yNXlaxiUzYA3jsoQ6AWe-1K5YHs0WtM894U,110521
|
466
|
+
ccxt-3.1.38.dist-info/WHEEL,sha256=a-zpFRIJzOq5QfuhBzbhiA1eHTzNCJn8OdRvhdNX0Rk,110
|
467
|
+
ccxt-3.1.38.dist-info/top_level.txt,sha256=CkQDuCTDKNcImPV60t36G6MdYfxsAPNiSaEwifVoVMo,5
|
468
|
+
ccxt-3.1.38.dist-info/RECORD,,
|
File without changes
|
File without changes
|