ccxt 4.0.41__py2.py3-none-any.whl → 4.0.43__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 CHANGED
@@ -22,7 +22,7 @@
22
22
 
23
23
  # ----------------------------------------------------------------------------
24
24
 
25
- __version__ = '4.0.41'
25
+ __version__ = '4.0.43'
26
26
 
27
27
  # ----------------------------------------------------------------------------
28
28
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.0.41'
7
+ __version__ = '4.0.43'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # -----------------------------------------------------------------------------
4
4
 
5
- __version__ = '4.0.41'
5
+ __version__ = '4.0.43'
6
6
 
7
7
  # -----------------------------------------------------------------------------
8
8
 
@@ -3163,13 +3163,13 @@ class bybit(Exchange, ImplicitAPI):
3163
3163
  'PENDING_CANCEL': 'open',
3164
3164
  'PENDING_NEW': 'open',
3165
3165
  'REJECTED': 'rejected',
3166
- 'PARTIALLY_FILLED_CANCELLED': 'canceled',
3166
+ 'PARTIALLY_FILLED_CANCELLED': 'closed', # context: https://github.com/ccxt/ccxt/issues/18685
3167
3167
  # v3 contract / unified margin / unified account
3168
3168
  'Created': 'open',
3169
3169
  'New': 'open',
3170
3170
  'Rejected': 'rejected', # order is triggered but failed upon being placed
3171
3171
  'PartiallyFilled': 'open',
3172
- 'PartiallyFilledCanceled': 'canceled',
3172
+ 'PartiallyFilledCanceled': 'closed', # context: https://github.com/ccxt/ccxt/issues/18685
3173
3173
  'Filled': 'closed',
3174
3174
  'PendingCancel': 'open',
3175
3175
  'Cancelled': 'canceled',
@@ -11,7 +11,6 @@ from ccxt.base.types import OrderType
11
11
  from typing import Optional
12
12
  from typing import List
13
13
  from ccxt.base.errors import ExchangeError
14
- from ccxt.base.errors import ArgumentsRequired
15
14
  from ccxt.base.errors import BadRequest
16
15
  from ccxt.base.errors import BadSymbol
17
16
  from ccxt.base.errors import InsufficientFunds
@@ -36,14 +35,15 @@ class delta(Exchange, ImplicitAPI):
36
35
  'has': {
37
36
  'CORS': None,
38
37
  'spot': True,
39
- 'margin': None,
40
- 'swap': None,
41
- 'future': None,
42
- 'option': None,
38
+ 'margin': False,
39
+ 'swap': True,
40
+ 'future': False,
41
+ 'option': True,
43
42
  'addMargin': True,
44
43
  'cancelAllOrders': True,
45
44
  'cancelOrder': True,
46
45
  'createOrder': True,
46
+ 'createReduceOnlyOrder': True,
47
47
  'editOrder': True,
48
48
  'fetchBalance': True,
49
49
  'fetchClosedOrders': True,
@@ -51,15 +51,18 @@ class delta(Exchange, ImplicitAPI):
51
51
  'fetchDeposit': None,
52
52
  'fetchDepositAddress': True,
53
53
  'fetchDeposits': None,
54
+ 'fetchFundingHistory': False,
54
55
  'fetchFundingRate': True,
55
56
  'fetchFundingRateHistory': False,
56
57
  'fetchFundingRates': True,
58
+ 'fetchIndexOHLCV': True,
57
59
  'fetchLedger': True,
58
60
  'fetchLeverage': True,
59
61
  'fetchLeverageTiers': False, # An infinite number of tiers, see examples/js/delta-maintenance-margin-rate-max-leverage.js
60
62
  'fetchMarginMode': False,
61
63
  'fetchMarketLeverageTiers': False,
62
64
  'fetchMarkets': True,
65
+ 'fetchMarkOHLCV': True,
63
66
  'fetchMyTrades': True,
64
67
  'fetchOHLCV': True,
65
68
  'fetchOpenInterest': True,
@@ -68,6 +71,7 @@ class delta(Exchange, ImplicitAPI):
68
71
  'fetchPosition': True,
69
72
  'fetchPositionMode': False,
70
73
  'fetchPositions': True,
74
+ 'fetchPremiumIndexOHLCV': False,
71
75
  'fetchSettlementHistory': True,
72
76
  'fetchStatus': True,
73
77
  'fetchTicker': True,
@@ -80,6 +84,9 @@ class delta(Exchange, ImplicitAPI):
80
84
  'fetchWithdrawals': None,
81
85
  'reduceMargin': True,
82
86
  'setLeverage': True,
87
+ 'setMargin': False,
88
+ 'setMarginMode': False,
89
+ 'setPositionMode': False,
83
90
  'transfer': False,
84
91
  'withdraw': False,
85
92
  },
@@ -418,6 +425,7 @@ class delta(Exchange, ImplicitAPI):
418
425
  async def fetch_currencies(self, params={}):
419
426
  """
420
427
  fetches all available currencies on an exchange
428
+ see https://docs.delta.exchange/#get-list-of-all-assets
421
429
  :param dict [params]: extra parameters specific to the delta api endpoint
422
430
  :returns dict: an associative dictionary of currencies
423
431
  """
@@ -499,6 +507,7 @@ class delta(Exchange, ImplicitAPI):
499
507
  async def fetch_markets(self, params={}):
500
508
  """
501
509
  retrieves data on all markets for delta
510
+ see https://docs.delta.exchange/#get-list-of-products
502
511
  :param dict [params]: extra parameters specific to the exchange api endpoint
503
512
  :returns dict[]: an array of objects representing market data
504
513
  """
@@ -1229,6 +1238,7 @@ class delta(Exchange, ImplicitAPI):
1229
1238
  async def fetch_order_book(self, symbol: str, limit: Optional[int] = None, params={}):
1230
1239
  """
1231
1240
  fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data
1241
+ see https://docs.delta.exchange/#get-l2-orderbook
1232
1242
  :param str symbol: unified symbol of the market to fetch the order book for
1233
1243
  :param int [limit]: the maximum amount of order book entries to return
1234
1244
  :param dict [params]: extra parameters specific to the delta api endpoint
@@ -1361,6 +1371,7 @@ class delta(Exchange, ImplicitAPI):
1361
1371
  async def fetch_trades(self, symbol: str, since: Optional[int] = None, limit: Optional[int] = None, params={}):
1362
1372
  """
1363
1373
  get the list of most recent trades for a particular symbol
1374
+ see https://docs.delta.exchange/#get-public-trades
1364
1375
  :param str symbol: unified symbol of the market to fetch trades for
1365
1376
  :param int [since]: timestamp in ms of the earliest trade to fetch
1366
1377
  :param int [limit]: the maximum amount of trades to fetch
@@ -1414,6 +1425,7 @@ class delta(Exchange, ImplicitAPI):
1414
1425
  async def fetch_ohlcv(self, symbol: str, timeframe='1m', since: Optional[int] = None, limit: Optional[int] = None, params={}):
1415
1426
  """
1416
1427
  fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market
1428
+ see https://docs.delta.exchange/#get-ohlc-candles
1417
1429
  :param str symbol: unified symbol of the market to fetch OHLCV data for
1418
1430
  :param str timeframe: the length of time each candle represents
1419
1431
  :param int [since]: timestamp in ms of the earliest candle to fetch
@@ -1424,7 +1436,6 @@ class delta(Exchange, ImplicitAPI):
1424
1436
  await self.load_markets()
1425
1437
  market = self.market(symbol)
1426
1438
  request = {
1427
- 'symbol': market['id'],
1428
1439
  'resolution': self.safe_string(self.timeframes, timeframe, timeframe),
1429
1440
  }
1430
1441
  duration = self.parse_timeframe(timeframe)
@@ -1437,6 +1448,14 @@ class delta(Exchange, ImplicitAPI):
1437
1448
  start = self.parse_to_int(since / 1000)
1438
1449
  request['start'] = start
1439
1450
  request['end'] = self.sum(start, limit * duration)
1451
+ price = self.safe_string(params, 'price')
1452
+ if price == 'mark':
1453
+ request['symbol'] = 'MARK:' + market['id']
1454
+ elif price == 'index':
1455
+ request['symbol'] = market['info']['spot_index']['symbol']
1456
+ else:
1457
+ request['symbol'] = market['id']
1458
+ params = self.omit(params, 'price')
1440
1459
  response = await self.publicGetHistoryCandles(self.extend(request, params))
1441
1460
  #
1442
1461
  # {
@@ -1469,6 +1488,7 @@ class delta(Exchange, ImplicitAPI):
1469
1488
  async def fetch_balance(self, params={}):
1470
1489
  """
1471
1490
  query for balance and get the amount of funds available for trading or funds locked in orders
1491
+ see https://docs.delta.exchange/#get-wallet-balances
1472
1492
  :param dict [params]: extra parameters specific to the delta api endpoint
1473
1493
  :returns dict: a `balance structure <https://docs.ccxt.com/en/latest/manual.html?#balance-structure>`
1474
1494
  """
@@ -1500,6 +1520,7 @@ class delta(Exchange, ImplicitAPI):
1500
1520
  async def fetch_position(self, symbol: str, params={}):
1501
1521
  """
1502
1522
  fetch data on a single open contract trade position
1523
+ see https://docs.delta.exchange/#get-position
1503
1524
  :param str symbol: unified market symbol of the market the position is held in, default is None
1504
1525
  :param dict [params]: extra parameters specific to the delta api endpoint
1505
1526
  :returns dict: a `position structure <https://docs.ccxt.com/#/?id=position-structure>`
@@ -1526,6 +1547,7 @@ class delta(Exchange, ImplicitAPI):
1526
1547
  async def fetch_positions(self, symbols: Optional[List[str]] = None, params={}):
1527
1548
  """
1528
1549
  fetch all open positions
1550
+ see https://docs.delta.exchange/#get-margined-positions
1529
1551
  :param str[]|None symbols: list of unified market symbols
1530
1552
  :param dict [params]: extra parameters specific to the delta api endpoint
1531
1553
  :returns dict[]: a list of `position structure <https://docs.ccxt.com/#/?id=position-structure>`
@@ -1717,12 +1739,14 @@ class delta(Exchange, ImplicitAPI):
1717
1739
  async def create_order(self, symbol: str, type: OrderType, side: OrderSide, amount, price=None, params={}):
1718
1740
  """
1719
1741
  create a trade order
1742
+ see https://docs.delta.exchange/#place-order
1720
1743
  :param str symbol: unified symbol of the market to create an order in
1721
1744
  :param str type: 'market' or 'limit'
1722
1745
  :param str side: 'buy' or 'sell'
1723
1746
  :param float amount: how much of currency you want to trade in units of base currency
1724
1747
  :param float price: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
1725
1748
  :param dict [params]: extra parameters specific to the delta api endpoint
1749
+ :param bool [params.reduceOnly]: *contract only* indicates if self order is to reduce the size of a position
1726
1750
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
1727
1751
  """
1728
1752
  await self.load_markets()
@@ -1745,6 +1769,10 @@ class delta(Exchange, ImplicitAPI):
1745
1769
  params = self.omit(params, ['clientOrderId', 'client_order_id'])
1746
1770
  if clientOrderId is not None:
1747
1771
  request['client_order_id'] = clientOrderId
1772
+ reduceOnly = self.safe_value(params, 'reduceOnly')
1773
+ if reduceOnly:
1774
+ request['reduce_only'] = reduceOnly
1775
+ params = self.omit(params, 'reduceOnly')
1748
1776
  response = await self.privatePostOrders(self.extend(request, params))
1749
1777
  #
1750
1778
  # {
@@ -1786,6 +1814,18 @@ class delta(Exchange, ImplicitAPI):
1786
1814
  return self.parse_order(result, market)
1787
1815
 
1788
1816
  async def edit_order(self, id: str, symbol, type, side, amount=None, price=None, params={}):
1817
+ """
1818
+ edit a trade order
1819
+ see https://docs.delta.exchange/#edit-order
1820
+ :param str id: order id
1821
+ :param str symbol: unified symbol of the market to create an order in
1822
+ :param str type: 'market' or 'limit'
1823
+ :param str side: 'buy' or 'sell'
1824
+ :param float amount: how much of the currency you want to trade in units of the base currency
1825
+ :param float price: the price at which the order is to be fullfilled, in units of the quote currency
1826
+ :param dict [params]: extra parameters specific to the delta api endpoint
1827
+ :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
1828
+ """
1789
1829
  await self.load_markets()
1790
1830
  market = self.market(symbol)
1791
1831
  request = {
@@ -1822,13 +1862,13 @@ class delta(Exchange, ImplicitAPI):
1822
1862
  async def cancel_order(self, id: str, symbol: Optional[str] = None, params={}):
1823
1863
  """
1824
1864
  cancels an open order
1865
+ see https://docs.delta.exchange/#cancel-order
1825
1866
  :param str id: order id
1826
1867
  :param str symbol: unified symbol of the market the order was made in
1827
1868
  :param dict [params]: extra parameters specific to the delta api endpoint
1828
1869
  :returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
1829
1870
  """
1830
- if symbol is None:
1831
- raise ArgumentsRequired(self.id + ' cancelOrder() requires a symbol argument')
1871
+ self.check_required_symbol('cancelOrder', symbol)
1832
1872
  await self.load_markets()
1833
1873
  market = self.market(symbol)
1834
1874
  request = {
@@ -1878,12 +1918,12 @@ class delta(Exchange, ImplicitAPI):
1878
1918
  async def cancel_all_orders(self, symbol: Optional[str] = None, params={}):
1879
1919
  """
1880
1920
  cancel all open orders in a market
1921
+ see https://docs.delta.exchange/#cancel-all-open-orders
1881
1922
  :param str symbol: unified market symbol of the market to cancel orders in
1882
1923
  :param dict [params]: extra parameters specific to the delta api endpoint
1883
1924
  :returns dict[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
1884
1925
  """
1885
- if symbol is None:
1886
- raise ArgumentsRequired(self.id + ' cancelAllOrders() requires a symbol argument')
1926
+ self.check_required_symbol('cancelAllOrders', symbol)
1887
1927
  await self.load_markets()
1888
1928
  market = self.market(symbol)
1889
1929
  request = {
@@ -1903,9 +1943,10 @@ class delta(Exchange, ImplicitAPI):
1903
1943
  async def fetch_open_orders(self, symbol: Optional[str] = None, since: Optional[int] = None, limit: Optional[int] = None, params={}):
1904
1944
  """
1905
1945
  fetch all unfilled currently open orders
1946
+ see https://docs.delta.exchange/#get-active-orders
1906
1947
  :param str symbol: unified market symbol
1907
1948
  :param int [since]: the earliest time in ms to fetch open orders for
1908
- :param int [limit]: the maximum number of open orders structures to retrieve
1949
+ :param int [limit]: the maximum number of open order structures to retrieve
1909
1950
  :param dict [params]: extra parameters specific to the delta api endpoint
1910
1951
  :returns Order[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
1911
1952
  """
@@ -1914,9 +1955,10 @@ class delta(Exchange, ImplicitAPI):
1914
1955
  async def fetch_closed_orders(self, symbol: Optional[str] = None, since: Optional[int] = None, limit: Optional[int] = None, params={}):
1915
1956
  """
1916
1957
  fetches information on multiple closed orders made by the user
1958
+ see https://docs.delta.exchange/#get-order-history-cancelled-and-closed
1917
1959
  :param str symbol: unified market symbol of the market orders were made in
1918
1960
  :param int [since]: the earliest time in ms to fetch orders for
1919
- :param int [limit]: the maximum number of orde structures to retrieve
1961
+ :param int [limit]: the maximum number of order structures to retrieve
1920
1962
  :param dict [params]: extra parameters specific to the delta api endpoint
1921
1963
  :returns Order[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
1922
1964
  """
@@ -1972,6 +2014,7 @@ class delta(Exchange, ImplicitAPI):
1972
2014
  async def fetch_my_trades(self, symbol: Optional[str] = None, since: Optional[int] = None, limit: Optional[int] = None, params={}):
1973
2015
  """
1974
2016
  fetch all trades made by the user
2017
+ see https://docs.delta.exchange/#get-user-fills-by-filters
1975
2018
  :param str symbol: unified market symbol
1976
2019
  :param int [since]: the earliest time in ms to fetch trades for
1977
2020
  :param int [limit]: the maximum number of trades structures to retrieve
@@ -2048,6 +2091,7 @@ class delta(Exchange, ImplicitAPI):
2048
2091
  async def fetch_ledger(self, code: Optional[str] = None, since: Optional[int] = None, limit: Optional[int] = None, params={}):
2049
2092
  """
2050
2093
  fetch the history of changes, actions done by the user or operations that altered balance of the user
2094
+ see https://docs.delta.exchange/#get-wallet-transactions
2051
2095
  :param str code: unified currency code, default is None
2052
2096
  :param int [since]: timestamp in ms of the earliest ledger entry, default is None
2053
2097
  :param int [limit]: max number of ledger entrys to return, default is None
ccxt/base/exchange.py CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.0.41'
7
+ __version__ = '4.0.43'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
ccxt/bybit.py CHANGED
@@ -3162,13 +3162,13 @@ class bybit(Exchange, ImplicitAPI):
3162
3162
  'PENDING_CANCEL': 'open',
3163
3163
  'PENDING_NEW': 'open',
3164
3164
  'REJECTED': 'rejected',
3165
- 'PARTIALLY_FILLED_CANCELLED': 'canceled',
3165
+ 'PARTIALLY_FILLED_CANCELLED': 'closed', # context: https://github.com/ccxt/ccxt/issues/18685
3166
3166
  # v3 contract / unified margin / unified account
3167
3167
  'Created': 'open',
3168
3168
  'New': 'open',
3169
3169
  'Rejected': 'rejected', # order is triggered but failed upon being placed
3170
3170
  'PartiallyFilled': 'open',
3171
- 'PartiallyFilledCanceled': 'canceled',
3171
+ 'PartiallyFilledCanceled': 'closed', # context: https://github.com/ccxt/ccxt/issues/18685
3172
3172
  'Filled': 'closed',
3173
3173
  'PendingCancel': 'open',
3174
3174
  'Cancelled': 'canceled',
ccxt/delta.py CHANGED
@@ -11,7 +11,6 @@ from ccxt.base.types import OrderType
11
11
  from typing import Optional
12
12
  from typing import List
13
13
  from ccxt.base.errors import ExchangeError
14
- from ccxt.base.errors import ArgumentsRequired
15
14
  from ccxt.base.errors import BadRequest
16
15
  from ccxt.base.errors import BadSymbol
17
16
  from ccxt.base.errors import InsufficientFunds
@@ -36,14 +35,15 @@ class delta(Exchange, ImplicitAPI):
36
35
  'has': {
37
36
  'CORS': None,
38
37
  'spot': True,
39
- 'margin': None,
40
- 'swap': None,
41
- 'future': None,
42
- 'option': None,
38
+ 'margin': False,
39
+ 'swap': True,
40
+ 'future': False,
41
+ 'option': True,
43
42
  'addMargin': True,
44
43
  'cancelAllOrders': True,
45
44
  'cancelOrder': True,
46
45
  'createOrder': True,
46
+ 'createReduceOnlyOrder': True,
47
47
  'editOrder': True,
48
48
  'fetchBalance': True,
49
49
  'fetchClosedOrders': True,
@@ -51,15 +51,18 @@ class delta(Exchange, ImplicitAPI):
51
51
  'fetchDeposit': None,
52
52
  'fetchDepositAddress': True,
53
53
  'fetchDeposits': None,
54
+ 'fetchFundingHistory': False,
54
55
  'fetchFundingRate': True,
55
56
  'fetchFundingRateHistory': False,
56
57
  'fetchFundingRates': True,
58
+ 'fetchIndexOHLCV': True,
57
59
  'fetchLedger': True,
58
60
  'fetchLeverage': True,
59
61
  'fetchLeverageTiers': False, # An infinite number of tiers, see examples/js/delta-maintenance-margin-rate-max-leverage.js
60
62
  'fetchMarginMode': False,
61
63
  'fetchMarketLeverageTiers': False,
62
64
  'fetchMarkets': True,
65
+ 'fetchMarkOHLCV': True,
63
66
  'fetchMyTrades': True,
64
67
  'fetchOHLCV': True,
65
68
  'fetchOpenInterest': True,
@@ -68,6 +71,7 @@ class delta(Exchange, ImplicitAPI):
68
71
  'fetchPosition': True,
69
72
  'fetchPositionMode': False,
70
73
  'fetchPositions': True,
74
+ 'fetchPremiumIndexOHLCV': False,
71
75
  'fetchSettlementHistory': True,
72
76
  'fetchStatus': True,
73
77
  'fetchTicker': True,
@@ -80,6 +84,9 @@ class delta(Exchange, ImplicitAPI):
80
84
  'fetchWithdrawals': None,
81
85
  'reduceMargin': True,
82
86
  'setLeverage': True,
87
+ 'setMargin': False,
88
+ 'setMarginMode': False,
89
+ 'setPositionMode': False,
83
90
  'transfer': False,
84
91
  'withdraw': False,
85
92
  },
@@ -418,6 +425,7 @@ class delta(Exchange, ImplicitAPI):
418
425
  def fetch_currencies(self, params={}):
419
426
  """
420
427
  fetches all available currencies on an exchange
428
+ see https://docs.delta.exchange/#get-list-of-all-assets
421
429
  :param dict [params]: extra parameters specific to the delta api endpoint
422
430
  :returns dict: an associative dictionary of currencies
423
431
  """
@@ -499,6 +507,7 @@ class delta(Exchange, ImplicitAPI):
499
507
  def fetch_markets(self, params={}):
500
508
  """
501
509
  retrieves data on all markets for delta
510
+ see https://docs.delta.exchange/#get-list-of-products
502
511
  :param dict [params]: extra parameters specific to the exchange api endpoint
503
512
  :returns dict[]: an array of objects representing market data
504
513
  """
@@ -1229,6 +1238,7 @@ class delta(Exchange, ImplicitAPI):
1229
1238
  def fetch_order_book(self, symbol: str, limit: Optional[int] = None, params={}):
1230
1239
  """
1231
1240
  fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data
1241
+ see https://docs.delta.exchange/#get-l2-orderbook
1232
1242
  :param str symbol: unified symbol of the market to fetch the order book for
1233
1243
  :param int [limit]: the maximum amount of order book entries to return
1234
1244
  :param dict [params]: extra parameters specific to the delta api endpoint
@@ -1361,6 +1371,7 @@ class delta(Exchange, ImplicitAPI):
1361
1371
  def fetch_trades(self, symbol: str, since: Optional[int] = None, limit: Optional[int] = None, params={}):
1362
1372
  """
1363
1373
  get the list of most recent trades for a particular symbol
1374
+ see https://docs.delta.exchange/#get-public-trades
1364
1375
  :param str symbol: unified symbol of the market to fetch trades for
1365
1376
  :param int [since]: timestamp in ms of the earliest trade to fetch
1366
1377
  :param int [limit]: the maximum amount of trades to fetch
@@ -1414,6 +1425,7 @@ class delta(Exchange, ImplicitAPI):
1414
1425
  def fetch_ohlcv(self, symbol: str, timeframe='1m', since: Optional[int] = None, limit: Optional[int] = None, params={}):
1415
1426
  """
1416
1427
  fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market
1428
+ see https://docs.delta.exchange/#get-ohlc-candles
1417
1429
  :param str symbol: unified symbol of the market to fetch OHLCV data for
1418
1430
  :param str timeframe: the length of time each candle represents
1419
1431
  :param int [since]: timestamp in ms of the earliest candle to fetch
@@ -1424,7 +1436,6 @@ class delta(Exchange, ImplicitAPI):
1424
1436
  self.load_markets()
1425
1437
  market = self.market(symbol)
1426
1438
  request = {
1427
- 'symbol': market['id'],
1428
1439
  'resolution': self.safe_string(self.timeframes, timeframe, timeframe),
1429
1440
  }
1430
1441
  duration = self.parse_timeframe(timeframe)
@@ -1437,6 +1448,14 @@ class delta(Exchange, ImplicitAPI):
1437
1448
  start = self.parse_to_int(since / 1000)
1438
1449
  request['start'] = start
1439
1450
  request['end'] = self.sum(start, limit * duration)
1451
+ price = self.safe_string(params, 'price')
1452
+ if price == 'mark':
1453
+ request['symbol'] = 'MARK:' + market['id']
1454
+ elif price == 'index':
1455
+ request['symbol'] = market['info']['spot_index']['symbol']
1456
+ else:
1457
+ request['symbol'] = market['id']
1458
+ params = self.omit(params, 'price')
1440
1459
  response = self.publicGetHistoryCandles(self.extend(request, params))
1441
1460
  #
1442
1461
  # {
@@ -1469,6 +1488,7 @@ class delta(Exchange, ImplicitAPI):
1469
1488
  def fetch_balance(self, params={}):
1470
1489
  """
1471
1490
  query for balance and get the amount of funds available for trading or funds locked in orders
1491
+ see https://docs.delta.exchange/#get-wallet-balances
1472
1492
  :param dict [params]: extra parameters specific to the delta api endpoint
1473
1493
  :returns dict: a `balance structure <https://docs.ccxt.com/en/latest/manual.html?#balance-structure>`
1474
1494
  """
@@ -1500,6 +1520,7 @@ class delta(Exchange, ImplicitAPI):
1500
1520
  def fetch_position(self, symbol: str, params={}):
1501
1521
  """
1502
1522
  fetch data on a single open contract trade position
1523
+ see https://docs.delta.exchange/#get-position
1503
1524
  :param str symbol: unified market symbol of the market the position is held in, default is None
1504
1525
  :param dict [params]: extra parameters specific to the delta api endpoint
1505
1526
  :returns dict: a `position structure <https://docs.ccxt.com/#/?id=position-structure>`
@@ -1526,6 +1547,7 @@ class delta(Exchange, ImplicitAPI):
1526
1547
  def fetch_positions(self, symbols: Optional[List[str]] = None, params={}):
1527
1548
  """
1528
1549
  fetch all open positions
1550
+ see https://docs.delta.exchange/#get-margined-positions
1529
1551
  :param str[]|None symbols: list of unified market symbols
1530
1552
  :param dict [params]: extra parameters specific to the delta api endpoint
1531
1553
  :returns dict[]: a list of `position structure <https://docs.ccxt.com/#/?id=position-structure>`
@@ -1717,12 +1739,14 @@ class delta(Exchange, ImplicitAPI):
1717
1739
  def create_order(self, symbol: str, type: OrderType, side: OrderSide, amount, price=None, params={}):
1718
1740
  """
1719
1741
  create a trade order
1742
+ see https://docs.delta.exchange/#place-order
1720
1743
  :param str symbol: unified symbol of the market to create an order in
1721
1744
  :param str type: 'market' or 'limit'
1722
1745
  :param str side: 'buy' or 'sell'
1723
1746
  :param float amount: how much of currency you want to trade in units of base currency
1724
1747
  :param float price: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
1725
1748
  :param dict [params]: extra parameters specific to the delta api endpoint
1749
+ :param bool [params.reduceOnly]: *contract only* indicates if self order is to reduce the size of a position
1726
1750
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
1727
1751
  """
1728
1752
  self.load_markets()
@@ -1745,6 +1769,10 @@ class delta(Exchange, ImplicitAPI):
1745
1769
  params = self.omit(params, ['clientOrderId', 'client_order_id'])
1746
1770
  if clientOrderId is not None:
1747
1771
  request['client_order_id'] = clientOrderId
1772
+ reduceOnly = self.safe_value(params, 'reduceOnly')
1773
+ if reduceOnly:
1774
+ request['reduce_only'] = reduceOnly
1775
+ params = self.omit(params, 'reduceOnly')
1748
1776
  response = self.privatePostOrders(self.extend(request, params))
1749
1777
  #
1750
1778
  # {
@@ -1786,6 +1814,18 @@ class delta(Exchange, ImplicitAPI):
1786
1814
  return self.parse_order(result, market)
1787
1815
 
1788
1816
  def edit_order(self, id: str, symbol, type, side, amount=None, price=None, params={}):
1817
+ """
1818
+ edit a trade order
1819
+ see https://docs.delta.exchange/#edit-order
1820
+ :param str id: order id
1821
+ :param str symbol: unified symbol of the market to create an order in
1822
+ :param str type: 'market' or 'limit'
1823
+ :param str side: 'buy' or 'sell'
1824
+ :param float amount: how much of the currency you want to trade in units of the base currency
1825
+ :param float price: the price at which the order is to be fullfilled, in units of the quote currency
1826
+ :param dict [params]: extra parameters specific to the delta api endpoint
1827
+ :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
1828
+ """
1789
1829
  self.load_markets()
1790
1830
  market = self.market(symbol)
1791
1831
  request = {
@@ -1822,13 +1862,13 @@ class delta(Exchange, ImplicitAPI):
1822
1862
  def cancel_order(self, id: str, symbol: Optional[str] = None, params={}):
1823
1863
  """
1824
1864
  cancels an open order
1865
+ see https://docs.delta.exchange/#cancel-order
1825
1866
  :param str id: order id
1826
1867
  :param str symbol: unified symbol of the market the order was made in
1827
1868
  :param dict [params]: extra parameters specific to the delta api endpoint
1828
1869
  :returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
1829
1870
  """
1830
- if symbol is None:
1831
- raise ArgumentsRequired(self.id + ' cancelOrder() requires a symbol argument')
1871
+ self.check_required_symbol('cancelOrder', symbol)
1832
1872
  self.load_markets()
1833
1873
  market = self.market(symbol)
1834
1874
  request = {
@@ -1878,12 +1918,12 @@ class delta(Exchange, ImplicitAPI):
1878
1918
  def cancel_all_orders(self, symbol: Optional[str] = None, params={}):
1879
1919
  """
1880
1920
  cancel all open orders in a market
1921
+ see https://docs.delta.exchange/#cancel-all-open-orders
1881
1922
  :param str symbol: unified market symbol of the market to cancel orders in
1882
1923
  :param dict [params]: extra parameters specific to the delta api endpoint
1883
1924
  :returns dict[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
1884
1925
  """
1885
- if symbol is None:
1886
- raise ArgumentsRequired(self.id + ' cancelAllOrders() requires a symbol argument')
1926
+ self.check_required_symbol('cancelAllOrders', symbol)
1887
1927
  self.load_markets()
1888
1928
  market = self.market(symbol)
1889
1929
  request = {
@@ -1903,9 +1943,10 @@ class delta(Exchange, ImplicitAPI):
1903
1943
  def fetch_open_orders(self, symbol: Optional[str] = None, since: Optional[int] = None, limit: Optional[int] = None, params={}):
1904
1944
  """
1905
1945
  fetch all unfilled currently open orders
1946
+ see https://docs.delta.exchange/#get-active-orders
1906
1947
  :param str symbol: unified market symbol
1907
1948
  :param int [since]: the earliest time in ms to fetch open orders for
1908
- :param int [limit]: the maximum number of open orders structures to retrieve
1949
+ :param int [limit]: the maximum number of open order structures to retrieve
1909
1950
  :param dict [params]: extra parameters specific to the delta api endpoint
1910
1951
  :returns Order[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
1911
1952
  """
@@ -1914,9 +1955,10 @@ class delta(Exchange, ImplicitAPI):
1914
1955
  def fetch_closed_orders(self, symbol: Optional[str] = None, since: Optional[int] = None, limit: Optional[int] = None, params={}):
1915
1956
  """
1916
1957
  fetches information on multiple closed orders made by the user
1958
+ see https://docs.delta.exchange/#get-order-history-cancelled-and-closed
1917
1959
  :param str symbol: unified market symbol of the market orders were made in
1918
1960
  :param int [since]: the earliest time in ms to fetch orders for
1919
- :param int [limit]: the maximum number of orde structures to retrieve
1961
+ :param int [limit]: the maximum number of order structures to retrieve
1920
1962
  :param dict [params]: extra parameters specific to the delta api endpoint
1921
1963
  :returns Order[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
1922
1964
  """
@@ -1972,6 +2014,7 @@ class delta(Exchange, ImplicitAPI):
1972
2014
  def fetch_my_trades(self, symbol: Optional[str] = None, since: Optional[int] = None, limit: Optional[int] = None, params={}):
1973
2015
  """
1974
2016
  fetch all trades made by the user
2017
+ see https://docs.delta.exchange/#get-user-fills-by-filters
1975
2018
  :param str symbol: unified market symbol
1976
2019
  :param int [since]: the earliest time in ms to fetch trades for
1977
2020
  :param int [limit]: the maximum number of trades structures to retrieve
@@ -2048,6 +2091,7 @@ class delta(Exchange, ImplicitAPI):
2048
2091
  def fetch_ledger(self, code: Optional[str] = None, since: Optional[int] = None, limit: Optional[int] = None, params={}):
2049
2092
  """
2050
2093
  fetch the history of changes, actions done by the user or operations that altered balance of the user
2094
+ see https://docs.delta.exchange/#get-wallet-transactions
2051
2095
  :param str code: unified currency code, default is None
2052
2096
  :param int [since]: timestamp in ms of the earliest ledger entry, default is None
2053
2097
  :param int [limit]: max number of ledger entrys to return, default is None
ccxt/pro/__init__.py CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  # ----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.0.41'
7
+ __version__ = '4.0.43'
8
8
 
9
9
  # ----------------------------------------------------------------------------
10
10
 
ccxt/pro/binance.py CHANGED
@@ -2085,6 +2085,7 @@ class binance(ccxt.async_support.binance):
2085
2085
  trade = self.parse_trade(message)
2086
2086
  orderId = self.safe_string(trade, 'order')
2087
2087
  tradeFee = self.safe_value(trade, 'fee')
2088
+ tradeFee = self.extend({}, tradeFee)
2088
2089
  symbol = self.safe_string(trade, 'symbol')
2089
2090
  if orderId is not None and tradeFee is not None and symbol is not None:
2090
2091
  cachedOrders = self.orders
@@ -2095,7 +2096,7 @@ class binance(ccxt.async_support.binance):
2095
2096
  # accumulate order fees
2096
2097
  fees = self.safe_value(order, 'fees')
2097
2098
  fee = self.safe_value(order, 'fee')
2098
- if fees is not None:
2099
+ if not self.is_empty(fees):
2099
2100
  insertNewFeeCurrency = True
2100
2101
  for i in range(0, len(fees)):
2101
2102
  orderFee = fees[i]
ccxt/pro/bybit.py CHANGED
@@ -868,19 +868,19 @@ class bybit(ccxt.async_support.bybit):
868
868
  # ]
869
869
  # }
870
870
  #
871
- type = self.safe_string(message, 'type', '')
872
871
  if self.orders is None:
873
872
  limit = self.safe_integer(self.options, 'ordersLimit', 1000)
874
873
  self.orders = ArrayCacheBySymbolById(limit)
875
874
  orders = self.orders
876
- rawOrders = []
875
+ rawOrders = self.safe_value(message, 'data', [])
876
+ first = self.safe_value(rawOrders, 0, {})
877
+ category = self.safe_string(first, 'category')
878
+ isSpot = category == 'spot'
877
879
  parser = None
878
- if type == 'snapshot':
879
- rawOrders = self.safe_value(message, 'data', [])
880
+ if isSpot:
880
881
  parser = 'parseWsSpotOrder'
881
882
  else:
882
883
  parser = 'parseContractOrder'
883
- rawOrders = self.safe_value(message, 'data', [])
884
884
  rawOrders = self.safe_value(rawOrders, 'result', rawOrders)
885
885
  symbols = {}
886
886
  for i in range(0, len(rawOrders)):
@@ -925,31 +925,72 @@ class bybit(ccxt.async_support.bybit):
925
925
  # v: '0', # leverage
926
926
  # d: 'NO_LIQ'
927
927
  # }
928
+ # v5
929
+ # {
930
+ # "category":"spot",
931
+ # "symbol":"LTCUSDT",
932
+ # "orderId":"1474764674982492160",
933
+ # "orderLinkId":"1690541649154749",
934
+ # "blockTradeId":"",
935
+ # "side":"Buy",
936
+ # "positionIdx":0,
937
+ # "orderStatus":"Cancelled",
938
+ # "cancelType":"UNKNOWN",
939
+ # "rejectReason":"EC_NoError",
940
+ # "timeInForce":"GTC",
941
+ # "isLeverage":"0",
942
+ # "price":"0",
943
+ # "qty":"5.00000",
944
+ # "avgPrice":"0",
945
+ # "leavesQty":"0.00000",
946
+ # "leavesValue":"5.0000000",
947
+ # "cumExecQty":"0.00000",
948
+ # "cumExecValue":"0.0000000",
949
+ # "cumExecFee":"",
950
+ # "orderType":"Market",
951
+ # "stopOrderType":"",
952
+ # "orderIv":"",
953
+ # "triggerPrice":"0.000",
954
+ # "takeProfit":"",
955
+ # "stopLoss":"",
956
+ # "triggerBy":"",
957
+ # "tpTriggerBy":"",
958
+ # "slTriggerBy":"",
959
+ # "triggerDirection":0,
960
+ # "placeType":"",
961
+ # "lastPriceOnCreated":"0.000",
962
+ # "closeOnTrigger":false,
963
+ # "reduceOnly":false,
964
+ # "smpGroup":0,
965
+ # "smpType":"None",
966
+ # "smpOrderId":"",
967
+ # "createdTime":"1690541649160",
968
+ # "updatedTime":"1690541649168"
969
+ # }
928
970
  #
929
- id = self.safe_string(order, 'i')
930
- marketId = self.safe_string(order, 's')
971
+ id = self.safe_string_2(order, 'i', 'orderId')
972
+ marketId = self.safe_string_2(order, 's', 'symbol')
931
973
  symbol = self.safe_symbol(marketId, market, None, 'spot')
932
- timestamp = self.safe_integer(order, 'O')
933
- price = self.safe_string(order, 'p')
974
+ timestamp = self.safe_integer_2(order, 'O', 'createdTime')
975
+ price = self.safe_string_2(order, 'p', 'price')
934
976
  if price == '0':
935
977
  price = None # market orders
936
- filled = self.safe_string(order, 'z')
937
- status = self.parse_order_status(self.safe_string(order, 'X'))
938
- side = self.safe_string_lower(order, 'S')
939
- lastTradeTimestamp = self.safe_string(order, 'E')
940
- timeInForce = self.safe_string(order, 'f')
978
+ filled = self.safe_string_2(order, 'z', 'cumExecQty')
979
+ status = self.parse_order_status(self.safe_string_2(order, 'X', 'orderStatus'))
980
+ side = self.safe_string_lower_2(order, 'S', 'side')
981
+ lastTradeTimestamp = self.safe_string_2(order, 'E', 'updatedTime')
982
+ timeInForce = self.safe_string_2(order, 'f', 'timeInForce')
941
983
  amount = None
942
- cost = self.safe_string(order, 'Z')
943
- q = self.safe_string(order, 'q')
944
- type = self.safe_string_lower(order, 'o')
945
- if type.find('quote') >= 0:
984
+ cost = self.safe_string_2(order, 'Z', 'cumExecValue')
985
+ type = self.safe_string_lower_2(order, 'o', 'orderType')
986
+ if (type is not None) and (type.find('market') >= 0):
987
+ type = 'market'
988
+ if type == 'market' and side == 'buy':
946
989
  amount = filled
947
990
  else:
948
- amount = q
949
- if type.find('market') >= 0:
950
- type = 'market'
991
+ amount = self.safe_string_2(order, 'orderQty', 'qty')
951
992
  fee = None
952
- feeCost = self.safe_string(order, 'n')
993
+ feeCost = self.safe_string_2(order, 'n', 'cumExecFee')
953
994
  if feeCost is not None and feeCost != '0':
954
995
  feeCurrencyId = self.safe_string(order, 'N')
955
996
  feeCurrencyCode = self.safe_currency_code(feeCurrencyId)
@@ -957,10 +998,11 @@ class bybit(ccxt.async_support.bybit):
957
998
  'cost': feeCost,
958
999
  'currency': feeCurrencyCode,
959
1000
  }
1001
+ triggerPrice = self.omit_zero(self.safe_string(order, 'triggerPrice'))
960
1002
  return self.safe_order({
961
1003
  'info': order,
962
1004
  'id': id,
963
- 'clientOrderId': self.safe_string(order, 'c'),
1005
+ 'clientOrderId': self.safe_string_2(order, 'c', 'orderLinkId'),
964
1006
  'timestamp': timestamp,
965
1007
  'datetime': self.iso8601(timestamp),
966
1008
  'lastTradeTimestamp': lastTradeTimestamp,
@@ -970,11 +1012,14 @@ class bybit(ccxt.async_support.bybit):
970
1012
  'postOnly': None,
971
1013
  'side': side,
972
1014
  'price': price,
973
- 'stopPrice': None,
974
- 'triggerPrice': None,
1015
+ 'stopPrice': triggerPrice,
1016
+ 'triggerPrice': triggerPrice,
1017
+ 'takeProfitPrice': self.safe_string(order, 'takeProfit'),
1018
+ 'stopLossPrice': self.safe_string(order, 'stopLoss'),
1019
+ 'reduceOnly': self.safe_value(order, 'reduceOnly'),
975
1020
  'amount': amount,
976
1021
  'cost': cost,
977
- 'average': None,
1022
+ 'average': self.safe_string(order, 'avgPrice'),
978
1023
  'filled': filled,
979
1024
  'remaining': None,
980
1025
  'status': status,
ccxt/pro/cryptocom.py CHANGED
@@ -10,6 +10,7 @@ from ccxt.base.types import OrderSide
10
10
  from ccxt.base.types import OrderType
11
11
  from ccxt.async_support.base.ws.client import Client
12
12
  from typing import Optional
13
+ from ccxt.base.errors import NetworkError
13
14
  from ccxt.base.errors import AuthenticationError
14
15
 
15
16
 
@@ -55,7 +56,11 @@ class cryptocom(ccxt.async_support.cryptocom):
55
56
  # "method": "public/heartbeat",
56
57
  # "code": 0
57
58
  # }
58
- await client.send({'id': self.safe_integer(message, 'id'), 'method': 'public/respond-heartbeat'})
59
+ try:
60
+ await client.send({'id': self.safe_integer(message, 'id'), 'method': 'public/respond-heartbeat'})
61
+ except Exception as e:
62
+ error = NetworkError(self.id + ' pong failed with error ' + self.json(e))
63
+ client.reset(error)
59
64
 
60
65
  async def watch_order_book(self, symbol: str, limit: Optional[int] = None, params={}):
61
66
  """
@@ -134,7 +134,7 @@ def assert_currency_code(exchange, skipped_properties, method, entry, actual_cod
134
134
  log_text = log_template(exchange, method, entry)
135
135
  if actual_code is not None:
136
136
  assert isinstance(actual_code, str), 'currency code should be either undefined or a string' + log_text
137
- assert (actual_code in exchange.currencies), 'currency code should be present in exchange.currencies' + log_text
137
+ assert (actual_code in exchange.currencies), 'currency code (\"' + actual_code + '\") should be present in exchange.currencies' + log_text
138
138
  if expected_code is not None:
139
139
  assert actual_code == expected_code, 'currency code in response (\"' + string_value(actual_code) + '\") should be equal to expected code (\"' + string_value(expected_code) + '\")' + log_text
140
140
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ccxt
3
- Version: 4.0.41
3
+ Version: 4.0.43
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
@@ -64,7 +64,7 @@ Current feature list:
64
64
 
65
65
  ## Sponsored Promotion
66
66
 
67
- [![OKX + CCXT Exclusive Event: Trade And Earn](https://github-production-user-asset-6210df.s3.amazonaws.com/1294454/255981933-75add442-caf7-4a67-9f48-ec83740a5402.png)](https://www.okx.com/liquid-marketplace?channelid=CCXT2023)
67
+ [![OKX + CCXT Exclusive Event: Trade And Earn](https://github-production-user-asset-6210df.s3.amazonaws.com/1294454/255981933-75add442-caf7-4a67-9f48-ec83740a5402.png)](https://www.okx.com/account/register?channelid=CCXT2023)
68
68
 
69
69
  [![OKX + CCXT: Nitro Spreads](https://github-production-user-asset-6210df.s3.amazonaws.com/1294454/255981940-fabfcf1d-0c82-4a94-b376-ad7dcb406345.jpg)](https://www.okx.com/liquid-marketplace?channelid=CCXT2023)
70
70
 
@@ -263,20 +263,20 @@ console.log(version, Object.keys(exchanges));
263
263
  All-in-one browser bundle (dependencies included), served from a CDN of your choice:
264
264
 
265
265
  <<<<<<< HEAD
266
- * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.0.41/dist/ccxt.browser.js
267
- * unpkg: https://unpkg.com/ccxt@4.0.41/dist/ccxt.browser.js
266
+ * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.0.43/dist/ccxt.browser.js
267
+ * unpkg: https://unpkg.com/ccxt@4.0.43/dist/ccxt.browser.js
268
268
  =======
269
- * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.0.41/dist/ccxt.browser.js
270
- * unpkg: https://unpkg.com/ccxt@4.0.41/dist/ccxt.browser.js
269
+ * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.0.43/dist/ccxt.browser.js
270
+ * unpkg: https://unpkg.com/ccxt@4.0.43/dist/ccxt.browser.js
271
271
  >>>>>>> e74b18a3a8a8cbcfe45ce4c1d32b9c03d4fae41c
272
272
 
273
273
  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.
274
274
 
275
275
  ```HTML
276
276
  <<<<<<< HEAD
277
- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.0.41/dist/ccxt.browser.js"></script>
277
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.0.43/dist/ccxt.browser.js"></script>
278
278
  =======
279
- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.0.41/dist/ccxt.browser.js"></script>
279
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.0.43/dist/ccxt.browser.js"></script>
280
280
  >>>>>>> e74b18a3a8a8cbcfe45ce4c1d32b9c03d4fae41c
281
281
  ```
282
282
 
@@ -1,4 +1,4 @@
1
- ccxt/__init__.py,sha256=pXBNmtD9405myFxAc0UdvxNNGawobnOupM7Vg_NPQLo,15438
1
+ ccxt/__init__.py,sha256=Lycwv6ZL6ouN1d_6nmKFbcYQUj6PVBEbRdqCdAsaI8g,15438
2
2
  ccxt/ace.py,sha256=8uTO7fzyxHnEhE3Y8VDP2EcWxh9gjs9xPMbuXjkUA7A,41372
3
3
  ccxt/alpaca.py,sha256=_cPmZ0obENxKSzsqLu0t1Ae-rUwN8z1DUB3Af8Kh4sA,33434
4
4
  ccxt/ascendex.py,sha256=rGD9sFxbRf_lEZavZpa6UEBIeX1tMydeFZzDOaQ3s8o,132537
@@ -38,7 +38,7 @@ ccxt/btcbox.py,sha256=LM1tJiE9OR5g4JqcdjCa3RUKAGwQRwPLAZmo7eXu66c,22513
38
38
  ccxt/btcmarkets.py,sha256=g6zZBYS2SMiLY9MlnP0A5VGJlIZ_0yuF8guk9E0_SQU,48609
39
39
  ccxt/btctradeua.py,sha256=sy56Hmc0AaducvQ_2piTor0BwTvjD02IgqoQ-gBTYcU,22219
40
40
  ccxt/btcturk.py,sha256=VJ5J9gmTJHIOQ0IQrHyrJym9BNIlWfNPpzO8_twINZo,35397
41
- ccxt/bybit.py,sha256=J3rfXxy1wBwN64ByI-VCZtEreRdlXb1JEGqK2vs0M1o,410801
41
+ ccxt/bybit.py,sha256=Ij8oTZgbI0tObJ2k2wOTlMYxfhTHaTUNqFLkRnMYKno,410905
42
42
  ccxt/cex.py,sha256=JffSHKKJYIno7pfkHNhmg6Olr7YXOJM0ui3ImX5WMHA,64733
43
43
  ccxt/coinbase.py,sha256=aswSRpuvEpWPGy5EdeYbz6bTFRZw5-yboIJbBPa7n7U,129413
44
44
  ccxt/coinbaseprime.py,sha256=Ygvljulxb2uKdei5yimCj1LMjLlUJNvP-G7ns1HpUFk,1219
@@ -52,7 +52,7 @@ ccxt/coinsph.py,sha256=ssYaS995SpKWKyvwgAG2OP0oOUkRClhdPif3KHXO4tk,87724
52
52
  ccxt/coinspot.py,sha256=FpruJRYAEEa1Ecab0S1o5QmQLqcqUb-2upYhopTJYtY,18823
53
53
  ccxt/cryptocom.py,sha256=Pg49E9wRGKeDH1N2uXaI7oN78hAbo338MghWOsYMLCg,126840
54
54
  ccxt/currencycom.py,sha256=J11A-DrVPXm0PiSj9Fjv6L3w5nqDcPMOiuSrlpg2KUo,82225
55
- ccxt/delta.py,sha256=KVP8y4nl8bvDLnmWlsYbilhk7hOfZ3EHc0SpA9Bpcf4,128977
55
+ ccxt/delta.py,sha256=121VscwCNoZc0IjgfUmMzO64kf6-wOJ0DOyd62tr7Ss,131357
56
56
  ccxt/deribit.py,sha256=cxcdtHUq3VnUH9UWdBV5kHt3VfQeemd524Lu8EI-t3E,123800
57
57
  ccxt/digifinex.py,sha256=jbP6esId7yqvSkbzsyg66EOd8Et3UKUT4q3omKjXYDQ,150987
58
58
  ccxt/exmo.py,sha256=bZQg1t8yrKscH3FWDKd5DmGsjR9d5-vJnOIoGG1swfk,88943
@@ -213,7 +213,7 @@ ccxt/abstract/woo.py,sha256=ah_izsOyPt18l_rl1nzgbtwpRTeAo1_MJE8_qMvdCCg,7747
213
213
  ccxt/abstract/yobit.py,sha256=8ycfCO8ORFly9hc0Aa47sZyX4_ZKPXS9h9yJzI-uQ7Q,1339
214
214
  ccxt/abstract/zaif.py,sha256=m15WHdl3gYy0GOXNZ8NEH8eE7sVh8c0T_ITNuU8vXeU,3935
215
215
  ccxt/abstract/zonda.py,sha256=VoxuPkSq8vAvKnDvOqnByhwsIf09m7yIrs8HejFrDk4,5482
216
- ccxt/async_support/__init__.py,sha256=eAxLu0IAJL239te7kktpQCbJZAYw7MQW0xcjtGjpfWo,15221
216
+ ccxt/async_support/__init__.py,sha256=H9SUIyarYBcDZ5nv2NxhyI6PJjZbNywT9SIuaMPycG8,15221
217
217
  ccxt/async_support/ace.py,sha256=xTtzqhVgpoDI4YgR9rRTRHTV2UsQmNYNfbuJc6aBKxA,41596
218
218
  ccxt/async_support/alpaca.py,sha256=hWimV0LrPixw15-FH7lMFB6s6EMEOjDlZOhWjznzu3g,33580
219
219
  ccxt/async_support/ascendex.py,sha256=tHwC-p_ilrM8r6k7w4Q59v8-PLOGlbsUCLHeKLLwbns,133169
@@ -253,7 +253,7 @@ ccxt/async_support/btcbox.py,sha256=l961P-BSrefmcjrrdGMg7BO0L70Nrq9TdD5mjzHKo0k,
253
253
  ccxt/async_support/btcmarkets.py,sha256=l886ioshN0u-rOZEeFW2cDsijch8UjWuvQz6QCyJw-I,48959
254
254
  ccxt/async_support/btctradeua.py,sha256=tSaZ_DygP7abbM2wwilf6ea6A7v9JePkWjr2icruxTQ,22365
255
255
  ccxt/async_support/btcturk.py,sha256=tJKSlRhwK7VmPBmLbliz2Sr9RC0mqP_t_Si9g7Jyi1w,35615
256
- ccxt/async_support/bybit.py,sha256=q0T5d7KCNws3MeN7_U7t7XC8vMlzMxfIL6klrrr1emQ,412743
256
+ ccxt/async_support/bybit.py,sha256=UAxM69cT5hz1eQvFm1tGCItKCzdrJflTP12Nkr-y1HY,412847
257
257
  ccxt/async_support/cex.py,sha256=lvobfj75tjkRaJDCCJeW8SG9gRMEDP98WmTSdZalfHs,65059
258
258
  ccxt/async_support/coinbase.py,sha256=ylb26vPGyVuePoSUvEhKLlbdX5CYCw3HMCgBLcuG9Xc,130093
259
259
  ccxt/async_support/coinbaseprime.py,sha256=M5Ez1DsFcW3-vJ-4QoZzwYBAKjAAtJnJpkfnV4sWAIc,1233
@@ -267,7 +267,7 @@ ccxt/async_support/coinsph.py,sha256=Vzhgniq03Ulf_TqwsqZWJEKZLtwA_k39el6KCVb5iz0
267
267
  ccxt/async_support/coinspot.py,sha256=3zHmFc24mgMxZkSWwq1ygwYv3UnR5d-xqr0rlOZhpPo,18957
268
268
  ccxt/async_support/cryptocom.py,sha256=GlhmxHOTr_dElsQEn0dg8up0xUCUpkeI2_a26Nhc3Yo,127418
269
269
  ccxt/async_support/currencycom.py,sha256=urQJtAIubM11b3LD_MOadf0vj95RSfbVf0D1q0aIrXg,82635
270
- ccxt/async_support/delta.py,sha256=SW6y0l-YIxRqYqxgzQtPLATU-OtrLU8xIZKy19pV3ro,129507
270
+ ccxt/async_support/delta.py,sha256=G93XzS_ZlEDvtS_UZ6ikoyGrVRJWio9K-D4TEqFkfBI,131887
271
271
  ccxt/async_support/deribit.py,sha256=2ORxgEFSnc2xboBeSG76cbDLdSKPzHi3QRZheYYZRrA,124372
272
272
  ccxt/async_support/digifinex.py,sha256=vCpv_8FoZNs21uX0plWZioxdZDnTU9QQ2LngoMt848I,151693
273
273
  ccxt/async_support/exmo.py,sha256=ocg9JUh_6p3OFA_DJdhP5tVkTuYnFfgIeMqMNzvg9XY,89485
@@ -322,7 +322,7 @@ ccxt/async_support/yobit.py,sha256=cRJgQNE-EfjXAligG8-iKxYA-yt9tKGilGnXg1PDrbg,5
322
322
  ccxt/async_support/zaif.py,sha256=Bg4Bfk63mluMSp1_8VE4_JPZEXSb940MocZGFisG9IA,28985
323
323
  ccxt/async_support/zonda.py,sha256=9je6awNUpQAHqF8uKfqIqjXyG8CQOPmzU1xDdxzpNDo,79823
324
324
  ccxt/async_support/base/__init__.py,sha256=aVYSsFi--b4InRs9zDN_wtCpj8odosAB726JdUHavrk,67
325
- ccxt/async_support/base/exchange.py,sha256=-JuUSNQqnkALfY-CRLum701Ci48vA1iUYDXtWxHKCpQ,143255
325
+ ccxt/async_support/base/exchange.py,sha256=Rnr8XxJpIDy8NBPaklnk-6rSfyHhBfUgOcd-FU17aMc,143255
326
326
  ccxt/async_support/base/throttler.py,sha256=tvDVcdRUVYi8fZRlEcnqtgzcgB_KMUMRs5Pu8tuU-tU,1847
327
327
  ccxt/async_support/base/ws/__init__.py,sha256=uockzpLuwntKGZbs5EOWFe-Zg-k6Cj7GhNJLc_RX0so,1791
328
328
  ccxt/async_support/base/ws/aiohttp_client.py,sha256=xmlZV30Vb9Kq7JCm3D5FuEmuj1zp5H4F4hrz8-Y-Ir4,4999
@@ -336,14 +336,14 @@ ccxt/async_support/base/ws/order_book_side.py,sha256=GH-475Ni0mLOx7mUDnz4jjzaGkh
336
336
  ccxt/base/__init__.py,sha256=eTx1OE3HJjspFUQjGm6LBhaQiMKJnXjkdP-JUXknyQ0,1320
337
337
  ccxt/base/decimal_to_precision.py,sha256=fgWRBzRTtsf3r2INyS4f7WHlzgjB5YM1ekiwqD21aac,6634
338
338
  ccxt/base/errors.py,sha256=-LVeTNyXvu3QEgb-p-KzMpcBgzHlvFTwDzmZK7Gfc14,3401
339
- ccxt/base/exchange.py,sha256=34FYXwx8ai8Oxqppccvu7ZiMREdwf75rzgdYnsQHrlc,182860
339
+ ccxt/base/exchange.py,sha256=5tm4VrvVO4OIGoiRqS7s-g6z7S9p5klNGwM5Gt2b4Mk,182860
340
340
  ccxt/base/precise.py,sha256=_xfu54sV0vWNnOfGTKRFykeuWP8mn4K1m9lk1tcllX4,8565
341
341
  ccxt/base/types.py,sha256=be7MU-iLHhynL-GmIzPxb0SD6GIps-w3PmPN05irsAA,1406
342
- ccxt/pro/__init__.py,sha256=09xlS3Hwr2GMUQOhDJK39rAwlvVGTJ4Smy2FFvBC5oE,6480
342
+ ccxt/pro/__init__.py,sha256=-xhdBW9_SM4TIKxWJs826jBjXExqqNjNfGuWttqI7SE,6480
343
343
  ccxt/pro/alpaca.py,sha256=BBBvLzVQ6CNS2000QZp487Iwg99ZJbRycpQo3ETePtE,26671
344
344
  ccxt/pro/ascendex.py,sha256=ChYDvZALiyF0LylzEVeZE41oSXT2JWkCWI7SWwzzn-Q,34551
345
345
  ccxt/pro/bequant.py,sha256=3IeQ0vPg-eVqPiGMfX7yqH9qtXKm1ZqocQDeLwpA8EE,1093
346
- ccxt/pro/binance.py,sha256=is8enOcq_iY42sDcKJU7G2Beu9G1ML7Pw81Muy0kroY,106492
346
+ ccxt/pro/binance.py,sha256=hH000E0hgow0LskkUcL9zgOYXxfAxczI_DnjVAa7kyM,106548
347
347
  ccxt/pro/binancecoinm.py,sha256=vu5SUgP70T1Dax-Am3rch7ZldGrmUwxr_rI51Y38xjw,724
348
348
  ccxt/pro/binanceus.py,sha256=xKL-1cOHyqlLTwLGg-DPf6g3JMM1oU2Kv708FiGJwrY,2016
349
349
  ccxt/pro/binanceusdm.py,sha256=S0eT662O2ReplsihWk42nhJWqw1XsODpeDQa9eFVVt8,1357
@@ -361,13 +361,13 @@ ccxt/pro/bittrex.py,sha256=qmJsOjtCvnFBqGz_mq8vquWyNb3jhrA27ZUAAmew2js,36714
361
361
  ccxt/pro/bitvavo.py,sha256=yHlFOFoKcXIGXQKwSNLcMDLpecdiD6QemMNui1Jq9Rs,26018
362
362
  ccxt/pro/blockchaincom.py,sha256=ekH7cVvFxtQ9idFsZ8NF6pQhWrANciwh1L8vHYdIO2I,31529
363
363
  ccxt/pro/btcex.py,sha256=Rlr242PDi-zJDAAydgNwaotNGwRR3sy7TPrzUTLkkgc,31150
364
- ccxt/pro/bybit.py,sha256=p-Af3_2AlTGKVOptYvmN2YWZ1AG9NgRs272vhN7uGp0,60518
364
+ ccxt/pro/bybit.py,sha256=hSzQ3WCASIqlBTurIhOyheGImgSzDKs0kyRs-igSnsw,62599
365
365
  ccxt/pro/cex.py,sha256=jBI23_DQ326AWQLvSQ2-vDF7SVo86vqIPJn8TIsztWk,44889
366
366
  ccxt/pro/coinbase.py,sha256=hsbKjjAHSxzGVwYkG-PTB8dIzveh7FVzqI-MENejvag,22041
367
367
  ccxt/pro/coinbaseprime.py,sha256=d5lgKZ8TKAOnYCGAD9e7AYjGQhtkWoNX7Q3eUGx0zEw,1121
368
368
  ccxt/pro/coinbasepro.py,sha256=BJu3N2wd9wR1JtN5bBzYAtlygqvxJAVwgNtDRgxsNqc,30100
369
369
  ccxt/pro/coinex.py,sha256=gMiwmh5U6pBMGy-RZ_zIVbnn0svb38yWCUHw3H9OfnY,44155
370
- ccxt/pro/cryptocom.py,sha256=C09T4ODR-H0IIvmOVPv95xV7hr_TZ3DbE-LB8LzcN6I,29908
370
+ ccxt/pro/cryptocom.py,sha256=w8Ma_1LEVCMt2puCvxYWJ2_4GWZkEis0cKzqh7mVImo,30116
371
371
  ccxt/pro/currencycom.py,sha256=EsJ_1nSBNmiaLX9BHxLCtN_YHAqb7d_dhQoZiu_eLMM,22090
372
372
  ccxt/pro/deribit.py,sha256=8TmDYXiRqY6lYOKaHIgvEjFEGmtprji-D5tzmX2L5kc,34029
373
373
  ccxt/pro/exmo.py,sha256=gine3Pns9MTtzGiRvcLxoS1xl7JTVuxsVD8yAEZOSUw,24400
@@ -443,14 +443,14 @@ ccxt/test/base/test_open_interest.py,sha256=FPQ6Uw8Ge1GXOuJSilgd2lo1jOBG9XSEyb5g
443
443
  ccxt/test/base/test_order.py,sha256=8cWYalF3baENArsYECCQBZSgn-daCTQUbW9uKF8cSeM,3889
444
444
  ccxt/test/base/test_order_book.py,sha256=_OPG7rXzRux_L9U1GmOQ-V6JUW9nMVehzhVjC-Y0yds,3225
445
445
  ccxt/test/base/test_position.py,sha256=4gwnCxb-RORWYQ2q_jQRbd0T71w-6sbyeQgb5Ma8kqE,3985
446
- ccxt/test/base/test_shared_methods.py,sha256=UyKjI1nFRkAtH5SWvrX0x9Y4sDnQcf5MVcwmcJUw7Bg,16204
446
+ ccxt/test/base/test_shared_methods.py,sha256=tF69OKB7TuMKqK2KntmkAy_wBHUqGIkuNdtJjdvb7-M,16230
447
447
  ccxt/test/base/test_status.py,sha256=J9NZRnxxFVA7C3DgjDC9fBR7tyAFDeesb-0g33KnoGo,783
448
448
  ccxt/test/base/test_throttle.py,sha256=GvLQWtA4fAk_yJrxeisek-wAz7eJdHj0DDKR4_V1beg,3123
449
449
  ccxt/test/base/test_ticker.py,sha256=h9AV_O6s-Ax3vB3sFoN0Mz22rMOi65i9BDv0SNejH98,5658
450
450
  ccxt/test/base/test_trade.py,sha256=bL9o3S_TGW8Nnlxu-BYkRG8NyRzKAWrU66uO5jJCM3A,2259
451
451
  ccxt/test/base/test_trading_fee.py,sha256=yRCpLHLg_ca9JQXdZB3_pIMHgHLGEfeQF95E6d1e2Bc,1125
452
452
  ccxt/test/base/test_transaction.py,sha256=BTbB4UHHXkrvYgwbrhh867nVRlevmIkIrz1W_odlQJI,1434
453
- ccxt-4.0.41.dist-info/METADATA,sha256=eKILsN6vKgaUp9hElVCm2cepi-UUOFh-dY_08i4ppFo,111376
454
- ccxt-4.0.41.dist-info/WHEEL,sha256=a-zpFRIJzOq5QfuhBzbhiA1eHTzNCJn8OdRvhdNX0Rk,110
455
- ccxt-4.0.41.dist-info/top_level.txt,sha256=CkQDuCTDKNcImPV60t36G6MdYfxsAPNiSaEwifVoVMo,5
456
- ccxt-4.0.41.dist-info/RECORD,,
453
+ ccxt-4.0.43.dist-info/METADATA,sha256=i1GR6X1hXF3zbRcXiqNERudkHtteqvB08gV8K2QnhNA,111374
454
+ ccxt-4.0.43.dist-info/WHEEL,sha256=a-zpFRIJzOq5QfuhBzbhiA1eHTzNCJn8OdRvhdNX0Rk,110
455
+ ccxt-4.0.43.dist-info/top_level.txt,sha256=CkQDuCTDKNcImPV60t36G6MdYfxsAPNiSaEwifVoVMo,5
456
+ ccxt-4.0.43.dist-info/RECORD,,
File without changes