ccxt 4.4.72__py2.py3-none-any.whl → 4.4.73__py2.py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- ccxt/__init__.py +1 -3
- ccxt/ace.py +36 -1
- ccxt/alpaca.py +46 -0
- ccxt/ascendex.py +1 -1
- ccxt/async_support/__init__.py +1 -3
- ccxt/async_support/ace.py +36 -1
- ccxt/async_support/alpaca.py +46 -0
- ccxt/async_support/ascendex.py +1 -1
- ccxt/async_support/base/exchange.py +1 -1
- ccxt/async_support/binance.py +18 -14
- ccxt/async_support/bit2c.py +11 -0
- ccxt/async_support/bitget.py +6 -5
- ccxt/async_support/bitrue.py +1 -1
- ccxt/async_support/bybit.py +32 -25
- ccxt/async_support/defx.py +1 -1
- ccxt/async_support/derive.py +2 -0
- ccxt/base/exchange.py +5 -11
- ccxt/binance.py +18 -14
- ccxt/bit2c.py +11 -0
- ccxt/bitget.py +6 -5
- ccxt/bitrue.py +1 -1
- ccxt/bybit.py +32 -25
- ccxt/defx.py +1 -1
- ccxt/derive.py +2 -0
- ccxt/pro/__init__.py +1 -3
- ccxt/test/tests_async.py +6 -3
- ccxt/test/tests_sync.py +6 -3
- {ccxt-4.4.72.dist-info → ccxt-4.4.73.dist-info}/METADATA +5 -5
- {ccxt-4.4.72.dist-info → ccxt-4.4.73.dist-info}/RECORD +32 -33
- ccxt/abstract/bitfinex1.py +0 -69
- {ccxt-4.4.72.dist-info → ccxt-4.4.73.dist-info}/LICENSE.txt +0 -0
- {ccxt-4.4.72.dist-info → ccxt-4.4.73.dist-info}/WHEEL +0 -0
- {ccxt-4.4.72.dist-info → ccxt-4.4.73.dist-info}/top_level.txt +0 -0
ccxt/bybit.py
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
from ccxt.base.exchange import Exchange
|
7
7
|
from ccxt.abstract.bybit import ImplicitAPI
|
8
8
|
import hashlib
|
9
|
-
from ccxt.base.types import Any, Balances, BorrowInterest, Conversion, CrossBorrowRate, Currencies, Currency, DepositAddress, Greeks, Int, LedgerEntry, Leverage, LeverageTier, LeverageTiers, LongShortRatio, Market, Num, Option, OptionChain, Order, OrderBook, OrderRequest, CancellationRequest, OrderSide, OrderType, Position, Str, Strings, Ticker, Tickers, FundingRate, FundingRates, Trade, TradingFeeInterface, TradingFees, Transaction, MarketInterface, TransferEntry
|
9
|
+
from ccxt.base.types import Any, Balances, BorrowInterest, Conversion, CrossBorrowRate, Currencies, Currency, DepositAddress, FundingHistory, Greeks, Int, LedgerEntry, Leverage, LeverageTier, LeverageTiers, Liquidation, LongShortRatio, Market, Num, Option, OptionChain, Order, OrderBook, OrderRequest, CancellationRequest, OrderSide, OrderType, Position, Str, Strings, Ticker, Tickers, FundingRate, FundingRates, Trade, TradingFeeInterface, TradingFees, Transaction, MarketInterface, TransferEntry
|
10
10
|
from typing import List
|
11
11
|
from ccxt.base.errors import ExchangeError
|
12
12
|
from ccxt.base.errors import AuthenticationError
|
@@ -2475,7 +2475,7 @@ class bybit(Exchange, ImplicitAPI):
|
|
2475
2475
|
tickerList = self.safe_list(result, 'list', [])
|
2476
2476
|
return self.parse_tickers(tickerList, parsedSymbols)
|
2477
2477
|
|
2478
|
-
def fetch_bids_asks(self, symbols: Strings = None, params={}):
|
2478
|
+
def fetch_bids_asks(self, symbols: Strings = None, params={}) -> Tickers:
|
2479
2479
|
"""
|
2480
2480
|
fetches the bid and ask price and volume for multiple markets
|
2481
2481
|
|
@@ -3689,7 +3689,7 @@ class bybit(Exchange, ImplicitAPI):
|
|
3689
3689
|
'trades': None,
|
3690
3690
|
}, market)
|
3691
3691
|
|
3692
|
-
def create_market_buy_order_with_cost(self, symbol: str, cost: float, params={}):
|
3692
|
+
def create_market_buy_order_with_cost(self, symbol: str, cost: float, params={}) -> Order:
|
3693
3693
|
"""
|
3694
3694
|
create a market buy order by providing the symbol and cost
|
3695
3695
|
|
@@ -3706,7 +3706,7 @@ class bybit(Exchange, ImplicitAPI):
|
|
3706
3706
|
raise NotSupported(self.id + ' createMarketBuyOrderWithCost() supports spot orders only')
|
3707
3707
|
return self.create_order(symbol, 'market', 'buy', cost, 1, params)
|
3708
3708
|
|
3709
|
-
def create_market_sell_order_with_cost(self, symbol: str, cost: float, params={}):
|
3709
|
+
def create_market_sell_order_with_cost(self, symbol: str, cost: float, params={}) -> Order:
|
3710
3710
|
"""
|
3711
3711
|
create a market sell order by providing the symbol and cost
|
3712
3712
|
|
@@ -3727,7 +3727,7 @@ class bybit(Exchange, ImplicitAPI):
|
|
3727
3727
|
raise NotSupported(self.id + ' createMarketSellOrderWithCost() supports spot orders only')
|
3728
3728
|
return self.create_order(symbol, 'market', 'sell', cost, 1, params)
|
3729
3729
|
|
3730
|
-
def create_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
|
3730
|
+
def create_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}) -> Order:
|
3731
3731
|
"""
|
3732
3732
|
create a trade order
|
3733
3733
|
|
@@ -3986,7 +3986,7 @@ class bybit(Exchange, ImplicitAPI):
|
|
3986
3986
|
params = self.omit(params, ['stopPrice', 'timeInForce', 'stopLossPrice', 'takeProfitPrice', 'postOnly', 'clientOrderId', 'triggerPrice', 'stopLoss', 'takeProfit', 'trailingAmount', 'trailingTriggerPrice', 'hedged'])
|
3987
3987
|
return self.extend(request, params)
|
3988
3988
|
|
3989
|
-
def create_orders(self, orders: List[OrderRequest], params={}):
|
3989
|
+
def create_orders(self, orders: List[OrderRequest], params={}) -> List[Order]:
|
3990
3990
|
"""
|
3991
3991
|
create a list of trade orders
|
3992
3992
|
|
@@ -4136,7 +4136,7 @@ class bybit(Exchange, ImplicitAPI):
|
|
4136
4136
|
params = self.omit(params, ['stopPrice', 'stopLossPrice', 'takeProfitPrice', 'triggerPrice', 'clientOrderId', 'stopLoss', 'takeProfit'])
|
4137
4137
|
return request
|
4138
4138
|
|
4139
|
-
def edit_order(self, id: str, symbol: str, type: OrderType, side: OrderSide, amount: Num = None, price: Num = None, params={}):
|
4139
|
+
def edit_order(self, id: str, symbol: str, type: OrderType, side: OrderSide, amount: Num = None, price: Num = None, params={}) -> Order:
|
4140
4140
|
"""
|
4141
4141
|
edit a trade order
|
4142
4142
|
|
@@ -4186,7 +4186,7 @@ class bybit(Exchange, ImplicitAPI):
|
|
4186
4186
|
'id': self.safe_string(result, 'orderId'),
|
4187
4187
|
})
|
4188
4188
|
|
4189
|
-
def edit_orders(self, orders: List[OrderRequest], params={}):
|
4189
|
+
def edit_orders(self, orders: List[OrderRequest], params={}) -> List[Order]:
|
4190
4190
|
"""
|
4191
4191
|
edit a list of trade orders
|
4192
4192
|
|
@@ -4297,7 +4297,7 @@ class bybit(Exchange, ImplicitAPI):
|
|
4297
4297
|
request['category'] = 'option'
|
4298
4298
|
return self.extend(request, params)
|
4299
4299
|
|
4300
|
-
def cancel_order(self, id: str, symbol: Str = None, params={}):
|
4300
|
+
def cancel_order(self, id: str, symbol: Str = None, params={}) -> Order:
|
4301
4301
|
"""
|
4302
4302
|
cancels an open order
|
4303
4303
|
|
@@ -4332,7 +4332,7 @@ class bybit(Exchange, ImplicitAPI):
|
|
4332
4332
|
result = self.safe_dict(response, 'result', {})
|
4333
4333
|
return self.parse_order(result, market)
|
4334
4334
|
|
4335
|
-
def cancel_orders(self, ids, symbol: Str = None, params={}):
|
4335
|
+
def cancel_orders(self, ids, symbol: Str = None, params={}) -> List[Order]:
|
4336
4336
|
"""
|
4337
4337
|
cancel multiple orders
|
4338
4338
|
|
@@ -4601,7 +4601,7 @@ class bybit(Exchange, ImplicitAPI):
|
|
4601
4601
|
return response
|
4602
4602
|
return self.parse_orders(orders, market)
|
4603
4603
|
|
4604
|
-
def fetch_order_classic(self, id: str, symbol: Str = None, params={}):
|
4604
|
+
def fetch_order_classic(self, id: str, symbol: Str = None, params={}) -> Order:
|
4605
4605
|
"""
|
4606
4606
|
fetches information on an order made by the user *classic accounts only*
|
4607
4607
|
|
@@ -4846,7 +4846,7 @@ classic accounts only/ spot not supported* fetches information on an order made
|
|
4846
4846
|
data = self.add_pagination_cursor_to_result(response)
|
4847
4847
|
return self.parse_orders(data, market, since, limit)
|
4848
4848
|
|
4849
|
-
def fetch_closed_order(self, id: str, symbol: Str = None, params={}):
|
4849
|
+
def fetch_closed_order(self, id: str, symbol: Str = None, params={}) -> Order:
|
4850
4850
|
"""
|
4851
4851
|
fetches information on a closed order made by the user
|
4852
4852
|
|
@@ -4876,7 +4876,7 @@ classic accounts only/ spot not supported* fetches information on an order made
|
|
4876
4876
|
raise InvalidOrder(self.id + ' returned more than one order')
|
4877
4877
|
return self.safe_value(result, 0)
|
4878
4878
|
|
4879
|
-
def fetch_open_order(self, id: str, symbol: Str = None, params={}):
|
4879
|
+
def fetch_open_order(self, id: str, symbol: Str = None, params={}) -> Order:
|
4880
4880
|
"""
|
4881
4881
|
fetches information on an open order made by the user
|
4882
4882
|
|
@@ -5032,7 +5032,7 @@ classic accounts only/ spot not supported* fetches information on an order made
|
|
5032
5032
|
}
|
5033
5033
|
return self.fetch_canceled_and_closed_orders(symbol, since, limit, self.extend(request, params))
|
5034
5034
|
|
5035
|
-
def fetch_canceled_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
|
5035
|
+
def fetch_canceled_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
|
5036
5036
|
"""
|
5037
5037
|
fetches information on multiple canceled orders made by the user
|
5038
5038
|
|
@@ -5155,7 +5155,7 @@ classic accounts only/ spot not supported* fetches information on an order made
|
|
5155
5155
|
data = self.add_pagination_cursor_to_result(response)
|
5156
5156
|
return self.parse_orders(data, market, since, limit)
|
5157
5157
|
|
5158
|
-
def fetch_order_trades(self, id: str, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
|
5158
|
+
def fetch_order_trades(self, id: str, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
|
5159
5159
|
"""
|
5160
5160
|
fetch all the trades made from a single order
|
5161
5161
|
|
@@ -5177,7 +5177,7 @@ classic accounts only/ spot not supported* fetches information on an order made
|
|
5177
5177
|
params = self.omit(params, ['clientOrderId', 'orderLinkId'])
|
5178
5178
|
return self.fetch_my_trades(symbol, since, limit, self.extend(request, params))
|
5179
5179
|
|
5180
|
-
def fetch_my_trades(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
|
5180
|
+
def fetch_my_trades(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
|
5181
5181
|
"""
|
5182
5182
|
fetch all trades made by the user
|
5183
5183
|
|
@@ -5900,7 +5900,7 @@ classic accounts only/ spot not supported* fetches information on an order made
|
|
5900
5900
|
result = self.safe_dict(response, 'result', {})
|
5901
5901
|
return self.parse_transaction(result, currency)
|
5902
5902
|
|
5903
|
-
def fetch_position(self, symbol: str, params={}):
|
5903
|
+
def fetch_position(self, symbol: str, params={}) -> Position:
|
5904
5904
|
"""
|
5905
5905
|
fetch data on a single open contract trade position
|
5906
5906
|
|
@@ -5971,7 +5971,7 @@ classic accounts only/ spot not supported* fetches information on an order made
|
|
5971
5971
|
position['datetime'] = self.iso8601(timestamp)
|
5972
5972
|
return position
|
5973
5973
|
|
5974
|
-
def fetch_positions(self, symbols: Strings = None, params={}):
|
5974
|
+
def fetch_positions(self, symbols: Strings = None, params={}) -> List[Position]:
|
5975
5975
|
"""
|
5976
5976
|
fetch all open positions
|
5977
5977
|
|
@@ -5983,9 +5983,14 @@ classic accounts only/ spot not supported* fetches information on an order made
|
|
5983
5983
|
:param str [params.subType]: market subType, ['linear', 'inverse']
|
5984
5984
|
:param str [params.baseCoin]: Base coin. Supports linear, inverse & option
|
5985
5985
|
:param str [params.settleCoin]: Settle coin. Supports linear, inverse & option
|
5986
|
+
:param boolean [params.paginate]: default False, when True will automatically paginate by calling self endpoint multiple times
|
5986
5987
|
:returns dict[]: a list of `position structure <https://docs.ccxt.com/#/?id=position-structure>`
|
5987
5988
|
"""
|
5988
5989
|
self.load_markets()
|
5990
|
+
paginate = False
|
5991
|
+
paginate, params = self.handle_option_and_params(params, 'fetchPositions', 'paginate')
|
5992
|
+
if paginate:
|
5993
|
+
return self.fetch_paginated_call_cursor('fetchPositions', symbols, None, None, params, 'nextPageCursor', 'cursor', None, 200)
|
5989
5994
|
symbol = None
|
5990
5995
|
if (symbols is not None) and isinstance(symbols, list):
|
5991
5996
|
symbolsLength = len(symbols)
|
@@ -6016,6 +6021,8 @@ classic accounts only/ spot not supported* fetches information on an order made
|
|
6016
6021
|
# inverse
|
6017
6022
|
if symbol is None and baseCoin is None:
|
6018
6023
|
request['category'] = 'inverse'
|
6024
|
+
if self.safe_integer(params, 'limit') is None:
|
6025
|
+
request['limit'] = 200 # max limit
|
6019
6026
|
params = self.omit(params, ['type'])
|
6020
6027
|
request['category'] = type
|
6021
6028
|
response = self.privateGetV5PositionList(self.extend(request, params))
|
@@ -6064,7 +6071,7 @@ classic accounts only/ spot not supported* fetches information on an order made
|
|
6064
6071
|
results.append(self.parse_position(rawPosition))
|
6065
6072
|
return self.filter_by_array_positions(results, 'symbol', symbols, False)
|
6066
6073
|
|
6067
|
-
def parse_position(self, position: dict, market: Market = None):
|
6074
|
+
def parse_position(self, position: dict, market: Market = None) -> Position:
|
6068
6075
|
#
|
6069
6076
|
# linear swap
|
6070
6077
|
#
|
@@ -7015,7 +7022,7 @@ classic accounts only/ spot not supported* fetches information on an order made
|
|
7015
7022
|
'amount': amount,
|
7016
7023
|
})
|
7017
7024
|
|
7018
|
-
def parse_margin_loan(self, info, currency: Currency = None):
|
7025
|
+
def parse_margin_loan(self, info, currency: Currency = None) -> dict:
|
7019
7026
|
#
|
7020
7027
|
# borrowCrossMargin
|
7021
7028
|
#
|
@@ -7253,7 +7260,7 @@ classic accounts only/ spot not supported* fetches information on an order made
|
|
7253
7260
|
result[symbol] = fee
|
7254
7261
|
return result
|
7255
7262
|
|
7256
|
-
def parse_deposit_withdraw_fee(self, fee, currency: Currency = None):
|
7263
|
+
def parse_deposit_withdraw_fee(self, fee, currency: Currency = None) -> Any:
|
7257
7264
|
#
|
7258
7265
|
# {
|
7259
7266
|
# "name": "BTC",
|
@@ -7701,7 +7708,7 @@ classic accounts only/ spot not supported* fetches information on an order made
|
|
7701
7708
|
'info': greeks,
|
7702
7709
|
}
|
7703
7710
|
|
7704
|
-
def fetch_my_liquidations(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
|
7711
|
+
def fetch_my_liquidations(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Liquidation]:
|
7705
7712
|
"""
|
7706
7713
|
retrieves the users liquidated positions
|
7707
7714
|
|
@@ -7780,7 +7787,7 @@ classic accounts only/ spot not supported* fetches information on an order made
|
|
7780
7787
|
liquidations = self.add_pagination_cursor_to_result(response)
|
7781
7788
|
return self.parse_liquidations(liquidations, market, since, limit)
|
7782
7789
|
|
7783
|
-
def parse_liquidation(self, liquidation, market: Market = None):
|
7790
|
+
def parse_liquidation(self, liquidation, market: Market = None) -> Liquidation:
|
7784
7791
|
#
|
7785
7792
|
# {
|
7786
7793
|
# "symbol": "ETHPERP",
|
@@ -7943,7 +7950,7 @@ classic accounts only/ spot not supported* fetches information on an order made
|
|
7943
7950
|
})
|
7944
7951
|
return tiers
|
7945
7952
|
|
7946
|
-
def fetch_funding_history(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
|
7953
|
+
def fetch_funding_history(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[FundingHistory]:
|
7947
7954
|
"""
|
7948
7955
|
fetch the history of funding payments paid and received on self account
|
7949
7956
|
|
@@ -7984,7 +7991,7 @@ classic accounts only/ spot not supported* fetches information on an order made
|
|
7984
7991
|
fundings = self.add_pagination_cursor_to_result(response)
|
7985
7992
|
return self.parse_incomes(fundings, market, since, limit)
|
7986
7993
|
|
7987
|
-
def parse_income(self, income, market: Market = None):
|
7994
|
+
def parse_income(self, income, market: Market = None) -> object:
|
7988
7995
|
#
|
7989
7996
|
# {
|
7990
7997
|
# "symbol": "XMRUSDT",
|
ccxt/defx.py
CHANGED
@@ -613,7 +613,7 @@ class defx(Exchange, ImplicitAPI):
|
|
613
613
|
'active': self.safe_string(market, 'status', '') == 'active',
|
614
614
|
'contract': True,
|
615
615
|
'linear': True,
|
616
|
-
'inverse':
|
616
|
+
'inverse': False,
|
617
617
|
'taker': self.safe_number(fees, 'taker'),
|
618
618
|
'maker': self.safe_number(fees, 'maker'),
|
619
619
|
'contractSize': self.parse_number('1'),
|
ccxt/derive.py
CHANGED
ccxt/pro/__init__.py
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
# ----------------------------------------------------------------------------
|
6
6
|
|
7
|
-
__version__ = '4.4.
|
7
|
+
__version__ = '4.4.73'
|
8
8
|
|
9
9
|
# ----------------------------------------------------------------------------
|
10
10
|
|
@@ -22,7 +22,6 @@ from ccxt.pro.binanceusdm import binanceusdm # noqa
|
|
22
22
|
from ccxt.pro.bingx import bingx # noqa: F401
|
23
23
|
from ccxt.pro.bitcoincom import bitcoincom # noqa: F401
|
24
24
|
from ccxt.pro.bitfinex import bitfinex # noqa: F401
|
25
|
-
from ccxt.pro.bitfinex1 import bitfinex1 # noqa: F401
|
26
25
|
from ccxt.pro.bitget import bitget # noqa: F401
|
27
26
|
from ccxt.pro.bithumb import bithumb # noqa: F401
|
28
27
|
from ccxt.pro.bitmart import bitmart # noqa: F401
|
@@ -97,7 +96,6 @@ exchanges = [
|
|
97
96
|
'bingx',
|
98
97
|
'bitcoincom',
|
99
98
|
'bitfinex',
|
100
|
-
'bitfinex1',
|
101
99
|
'bitget',
|
102
100
|
'bithumb',
|
103
101
|
'bitmart',
|
ccxt/test/tests_async.py
CHANGED
@@ -1156,7 +1156,9 @@ class testMainClass:
|
|
1156
1156
|
|
1157
1157
|
async def test_binance(self):
|
1158
1158
|
exchange = self.init_offline_exchange('binance')
|
1159
|
-
spot_id = 'x-
|
1159
|
+
spot_id = 'x-TKT5PX2F'
|
1160
|
+
swap_id = 'x-cvBPrNm9'
|
1161
|
+
inverse_swap_id = 'x-xcKtGhcu'
|
1160
1162
|
spot_order_request = None
|
1161
1163
|
try:
|
1162
1164
|
await exchange.create_order('BTC/USDT', 'limit', 'buy', 1, 20000)
|
@@ -1165,7 +1167,6 @@ class testMainClass:
|
|
1165
1167
|
client_order_id = spot_order_request['newClientOrderId']
|
1166
1168
|
spot_id_string = str(spot_id)
|
1167
1169
|
assert client_order_id.startswith(spot_id_string), 'binance - spot clientOrderId: ' + client_order_id + ' does not start with spotId' + spot_id_string
|
1168
|
-
swap_id = 'x-xcKtGhcu'
|
1169
1170
|
swap_order_request = None
|
1170
1171
|
try:
|
1171
1172
|
await exchange.create_order('BTC/USDT:USDT', 'limit', 'buy', 1, 20000)
|
@@ -1176,11 +1177,13 @@ class testMainClass:
|
|
1176
1177
|
await exchange.create_order('BTC/USD:BTC', 'limit', 'buy', 1, 20000)
|
1177
1178
|
except Exception as e:
|
1178
1179
|
swap_inverse_order_request = self.urlencoded_to_dict(exchange.last_request_body)
|
1180
|
+
# linear swap
|
1179
1181
|
client_order_id_swap = swap_order_request['newClientOrderId']
|
1180
1182
|
swap_id_string = str(swap_id)
|
1181
1183
|
assert client_order_id_swap.startswith(swap_id_string), 'binance - swap clientOrderId: ' + client_order_id_swap + ' does not start with swapId' + swap_id_string
|
1184
|
+
# inverse swap
|
1182
1185
|
client_order_id_inverse = swap_inverse_order_request['newClientOrderId']
|
1183
|
-
assert client_order_id_inverse.startswith(
|
1186
|
+
assert client_order_id_inverse.startswith(inverse_swap_id), 'binance - swap clientOrderIdInverse: ' + client_order_id_inverse + ' does not start with swapId' + inverse_swap_id
|
1184
1187
|
create_orders_request = None
|
1185
1188
|
try:
|
1186
1189
|
orders = [{
|
ccxt/test/tests_sync.py
CHANGED
@@ -1153,7 +1153,9 @@ class testMainClass:
|
|
1153
1153
|
|
1154
1154
|
def test_binance(self):
|
1155
1155
|
exchange = self.init_offline_exchange('binance')
|
1156
|
-
spot_id = 'x-
|
1156
|
+
spot_id = 'x-TKT5PX2F'
|
1157
|
+
swap_id = 'x-cvBPrNm9'
|
1158
|
+
inverse_swap_id = 'x-xcKtGhcu'
|
1157
1159
|
spot_order_request = None
|
1158
1160
|
try:
|
1159
1161
|
exchange.create_order('BTC/USDT', 'limit', 'buy', 1, 20000)
|
@@ -1162,7 +1164,6 @@ class testMainClass:
|
|
1162
1164
|
client_order_id = spot_order_request['newClientOrderId']
|
1163
1165
|
spot_id_string = str(spot_id)
|
1164
1166
|
assert client_order_id.startswith(spot_id_string), 'binance - spot clientOrderId: ' + client_order_id + ' does not start with spotId' + spot_id_string
|
1165
|
-
swap_id = 'x-xcKtGhcu'
|
1166
1167
|
swap_order_request = None
|
1167
1168
|
try:
|
1168
1169
|
exchange.create_order('BTC/USDT:USDT', 'limit', 'buy', 1, 20000)
|
@@ -1173,11 +1174,13 @@ class testMainClass:
|
|
1173
1174
|
exchange.create_order('BTC/USD:BTC', 'limit', 'buy', 1, 20000)
|
1174
1175
|
except Exception as e:
|
1175
1176
|
swap_inverse_order_request = self.urlencoded_to_dict(exchange.last_request_body)
|
1177
|
+
# linear swap
|
1176
1178
|
client_order_id_swap = swap_order_request['newClientOrderId']
|
1177
1179
|
swap_id_string = str(swap_id)
|
1178
1180
|
assert client_order_id_swap.startswith(swap_id_string), 'binance - swap clientOrderId: ' + client_order_id_swap + ' does not start with swapId' + swap_id_string
|
1181
|
+
# inverse swap
|
1179
1182
|
client_order_id_inverse = swap_inverse_order_request['newClientOrderId']
|
1180
|
-
assert client_order_id_inverse.startswith(
|
1183
|
+
assert client_order_id_inverse.startswith(inverse_swap_id), 'binance - swap clientOrderIdInverse: ' + client_order_id_inverse + ' does not start with swapId' + inverse_swap_id
|
1181
1184
|
create_orders_request = None
|
1182
1185
|
try:
|
1183
1186
|
orders = [{
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: ccxt
|
3
|
-
Version: 4.4.
|
3
|
+
Version: 4.4.73
|
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
|
@@ -49,7 +49,7 @@ Requires-Dist: mypy==1.6.1; extra == "type"
|
|
49
49
|
|
50
50
|
# CCXT – CryptoCurrency eXchange Trading Library
|
51
51
|
|
52
|
-
[](https://www.npmjs.com/package/ccxt) [](https://npmjs.com/package/ccxt) [](https://pypi.python.org/pypi/ccxt) [](https://www.nuget.org/packages/ccxt) [](https://godoc.org/github.com/ccxt/ccxt/go/v4) [](https://discord.gg/ccxt) [](https://www.npmjs.com/package/ccxt) [](https://npmjs.com/package/ccxt) [](https://pypi.python.org/pypi/ccxt) [](https://www.nuget.org/packages/ccxt) [](https://godoc.org/github.com/ccxt/ccxt/go/v4) [](https://discord.gg/ccxt) [](https://github.com/ccxt/ccxt/wiki/Exchange-Markets) [](https://x.com/ccxt_official)
|
53
53
|
|
54
54
|
A `JavaScript` / `Python` / `PHP` / `C#` / `Go` library for cryptocurrency trading and e-commerce with support for many bitcoin/ether/altcoin exchange markets and merchant APIs.
|
55
55
|
|
@@ -275,13 +275,13 @@ console.log(version, Object.keys(exchanges));
|
|
275
275
|
|
276
276
|
All-in-one browser bundle (dependencies included), served from a CDN of your choice:
|
277
277
|
|
278
|
-
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.4.
|
279
|
-
* unpkg: https://unpkg.com/ccxt@4.4.
|
278
|
+
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.4.73/dist/ccxt.browser.min.js
|
279
|
+
* unpkg: https://unpkg.com/ccxt@4.4.73/dist/ccxt.browser.min.js
|
280
280
|
|
281
281
|
CDNs are not updated in real-time and may have delays. Defaulting to the most recent version without specifying the version number is not recommended. Please, keep in mind that we are not responsible for the correct operation of those CDN servers.
|
282
282
|
|
283
283
|
```HTML
|
284
|
-
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.4.
|
284
|
+
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.4.73/dist/ccxt.browser.min.js"></script>
|
285
285
|
```
|
286
286
|
|
287
287
|
Creates a global `ccxt` object:
|
@@ -1,28 +1,28 @@
|
|
1
|
-
ccxt/__init__.py,sha256=
|
2
|
-
ccxt/ace.py,sha256=
|
3
|
-
ccxt/alpaca.py,sha256=
|
4
|
-
ccxt/ascendex.py,sha256=
|
1
|
+
ccxt/__init__.py,sha256=RztRo9FpPzhLT86r6771MPBMQbE3EcsgxYGM4MiVGug,16570
|
2
|
+
ccxt/ace.py,sha256=BcblXVAXk7fiUdnosjRxZSiUFvH4KWpc1gYeBbXwvYc,46360
|
3
|
+
ccxt/alpaca.py,sha256=LHKHJ2Xcb-35lbzfb7CabINWiVSgmOWITYnT2WDzceg,80557
|
4
|
+
ccxt/ascendex.py,sha256=EsSZIh86lwNrpfSDu4p_3a5zlC9LPZCqavgK4Ol2wu0,156009
|
5
5
|
ccxt/bequant.py,sha256=gNe6tFy91-lEW8pEYv2-SmmjpwAm403ZxIpuN_QZqVw,1193
|
6
6
|
ccxt/bigone.py,sha256=3FADYcYU_fryjR1a3EoLFc4VRnY5pa7bUaWx1gnoA-s,95960
|
7
|
-
ccxt/binance.py,sha256=
|
7
|
+
ccxt/binance.py,sha256=BcOYc0qeMHJu2lvkTCDw5MUsnmDPYQtk1WkrW2TKJnM,688461
|
8
8
|
ccxt/binancecoinm.py,sha256=UEJd_dZQkrLdJpaCE_t9aHCwJdxpjheyTaWJ8RKWIm8,1720
|
9
9
|
ccxt/binanceus.py,sha256=fPaJxinZbmJbrXMW1aYW32n6fXX_VL7odjLEng77wdI,9500
|
10
10
|
ccxt/binanceusdm.py,sha256=BI4hya6nydNHC7hiYw6FVk7QaQWHG6emVnCx1K6R02k,2650
|
11
11
|
ccxt/bingx.py,sha256=z_a38o2AqO-0Yu6fxtBaYU9biV5wD8oHXIypfxVPq-8,274636
|
12
|
-
ccxt/bit2c.py,sha256=
|
12
|
+
ccxt/bit2c.py,sha256=jk_JV782RhYLYJlI8YuhPS_e9O01fhOboB1yKEo50o4,39965
|
13
13
|
ccxt/bitbank.py,sha256=eoSBMt-CZi6p2Xy5dq17N0sGNlfiERmPRdqlhVZHOG4,46286
|
14
14
|
ccxt/bitbns.py,sha256=rysY94AjfqPhC3rvPBp-7OL79rJgMS5gKMnYc200A0Y,50903
|
15
15
|
ccxt/bitcoincom.py,sha256=kpGs1gz2443UrgEsWYeCR5L6FJyYqK5XLmFWaL-I0xM,541
|
16
16
|
ccxt/bitfinex.py,sha256=fwh4ENtKOMlPI3UtE1urj71r220zz6v4tT1kMLUk5o8,166096
|
17
17
|
ccxt/bitfinex1.py,sha256=cC6NuPoQlWY5RoTnoRRgNK8yCr1GbF1NrOaZ341ZOkc,74223
|
18
18
|
ccxt/bitflyer.py,sha256=tSKipH_SKEK8iChF94sxIjizx_volR1xaElIF2PGABI,46888
|
19
|
-
ccxt/bitget.py,sha256=
|
19
|
+
ccxt/bitget.py,sha256=Gv8LW2P3dVT0d79eTlQUU5m-BiFLm3bMwogSqgUdnIE,436199
|
20
20
|
ccxt/bithumb.py,sha256=akxyY_PY_7qnAkSEvG8V2DbOhfHZnCNW_OkJDUzUawY,50065
|
21
21
|
ccxt/bitmart.py,sha256=hWhCICJl9EMFzcESneSAA9eANyBi6b89On5Z09SpBgM,245514
|
22
22
|
ccxt/bitmex.py,sha256=bCgSeL8i0djDfb5aPXVljngTmmMpx73Cp6Kou5ngDGw,131447
|
23
23
|
ccxt/bitopro.py,sha256=UGH7MklI1wSm0yjXstw7E3Rj-pQjQ2su3sXcgsi_TM4,73487
|
24
24
|
ccxt/bitpanda.py,sha256=X1xluJEGWtDs5ovAf8djIMZNW-V-3brs4UjdqiWoanE,510
|
25
|
-
ccxt/bitrue.py,sha256=
|
25
|
+
ccxt/bitrue.py,sha256=d6d61DB0luJf9q1jzerKERADt4GJcOLWRpcP-Rp8yuw,139716
|
26
26
|
ccxt/bitso.py,sha256=e2_gds0NESHx1EyRmQDwGPKBJu_-wRmZ06PuSxT3yy0,74161
|
27
27
|
ccxt/bitstamp.py,sha256=nus2MaPtVHbewqnexouhrDRmlCSL7EwaPz8FD3cZEEQ,95597
|
28
28
|
ccxt/bitteam.py,sha256=8vxluU2p50rTg9XzQTsWLH3Fye-F79DmZhvza_Xk9h0,105198
|
@@ -34,7 +34,7 @@ ccxt/btcalpha.py,sha256=t9ku28FD2yE4rc-V4U-eRhsHKz4izMSCK8xb7wQ4kNE,39704
|
|
34
34
|
ccxt/btcbox.py,sha256=nsJrbfky_4wC-O1oXb4oWr3EYiO49L-sa4-0NxB9Zkg,30034
|
35
35
|
ccxt/btcmarkets.py,sha256=jC6RA5Tn1DR4FZpZln-KZKkz9WYT6o_MNJ6s6G-Dhjs,55829
|
36
36
|
ccxt/btcturk.py,sha256=mNG1uJqcPgTQ0g2sozq5Up1xNndrF_vraYEYsOs3jKw,39482
|
37
|
-
ccxt/bybit.py,sha256
|
37
|
+
ccxt/bybit.py,sha256=-eJalOjxBi7rIBpQIN2SeEBjsVW3hYhoJhjk-kqL66M,437859
|
38
38
|
ccxt/cex.py,sha256=5yB96CM_tmyANEzTS2KM2yvbCfSListIRhGD2QR1OFQ,72422
|
39
39
|
ccxt/coinbase.py,sha256=vrwEzhBSqn-ix9ISm1C3VF5i16YZPl5Lmilj_uN_cPY,235254
|
40
40
|
ccxt/coinbaseadvanced.py,sha256=Eb1X4_VtdNEu1q0Anr-MzdHG55OhCiZYgdeZv2kFuPg,577
|
@@ -51,10 +51,10 @@ ccxt/coinsph.py,sha256=kc8u9WFexGiD4EjDlsktLU5goZekE6rQ3P2vDGv1kWo,94117
|
|
51
51
|
ccxt/coinspot.py,sha256=jQsrrLsUbHKpG1fe1lYEed4LNVLG3TJhx49NrkVyN2w,25997
|
52
52
|
ccxt/cryptocom.py,sha256=MqHql1i3rEqSdJHunGVHlqv6gl4p68YyPENMnseYJiU,141103
|
53
53
|
ccxt/cryptomus.py,sha256=s6tum4nnC5DYt8Ki0Ci83Art3dlNsure_J3TGV8-qyQ,49365
|
54
|
-
ccxt/defx.py,sha256=
|
54
|
+
ccxt/defx.py,sha256=De6JxZmnWS5uqxpJiqvYI7oOTFZs7KCCqayqsChDN1I,85273
|
55
55
|
ccxt/delta.py,sha256=JPSd5GoqifEZU1bVRTd_OiO0e8AK28XkGwNQuGIgoJw,154855
|
56
56
|
ccxt/deribit.py,sha256=po5t94NF-pqzmQ6KKcqQ7WHUnEuNgEhQ_OrMckgpCOg,166136
|
57
|
-
ccxt/derive.py,sha256=
|
57
|
+
ccxt/derive.py,sha256=hqzzxeBDAL8W24lIW7vh_cYmPBO1-WFcW5_86do4Il4,120456
|
58
58
|
ccxt/digifinex.py,sha256=8ctj-Nrgt2gM9UWB8DpGIYqtgaLA7eVEbsMaBhCUSpc,177404
|
59
59
|
ccxt/ellipx.py,sha256=oBPWB0503KrU-FmD3w27IZCvEqGoqUu2c8QZ33dGl9E,78966
|
60
60
|
ccxt/exmo.py,sha256=unemEt52-1fmPvdp51TFXX0ctNaNwAj6LJVpWTXFx-I,120604
|
@@ -126,7 +126,6 @@ ccxt/abstract/bitbank.py,sha256=7NfcFZ4u4osVPeYc9VVBuw65thDCr8qSrlzk_1P3D1U,3398
|
|
126
126
|
ccxt/abstract/bitbns.py,sha256=3T3cHS7SgzGipd6F8vzPnmM0x3XNfQXEPjoInD-C1Sw,4082
|
127
127
|
ccxt/abstract/bitcoincom.py,sha256=OTBtNu3DQeAqAC_Lbi0NePUs-ZQQllcLrVDI2G04nwQ,15601
|
128
128
|
ccxt/abstract/bitfinex.py,sha256=LvMGq5mhAfkGTah3YDrvbU95jnX5_8v18NI-5QRlrgc,19290
|
129
|
-
ccxt/abstract/bitfinex1.py,sha256=OLUXdJEycyN_qrBhPuTTOVlwu3jkqVWenoTmS-W3bOE,7605
|
130
129
|
ccxt/abstract/bitflyer.py,sha256=fcVd6Nm4o2Rn8MaSuclvNbBBrIL5JCnWcXoXsOxZFbw,3679
|
131
130
|
ccxt/abstract/bitget.py,sha256=jbL-2S9MlDloP2yACzptr6DkUwzoWH5ALpcjPCHInj0,91042
|
132
131
|
ccxt/abstract/bithumb.py,sha256=GR7QJ6CwTBne59SaGRVj9Rdz_zecG-8imRWX7oe6MoQ,3443
|
@@ -221,31 +220,31 @@ ccxt/abstract/xt.py,sha256=p0fG3O8kIeMYIvMlqxrhpXeo7lraee6lIlu9yqu6f10,27340
|
|
221
220
|
ccxt/abstract/yobit.py,sha256=8ycfCO8ORFly9hc0Aa47sZyX4_ZKPXS9h9yJzI-uQ7Q,1339
|
222
221
|
ccxt/abstract/zaif.py,sha256=m15WHdl3gYy0GOXNZ8NEH8eE7sVh8c0T_ITNuU8vXeU,3935
|
223
222
|
ccxt/abstract/zonda.py,sha256=X-hCW0SdX3YKZWixDyW-O2211M58Rno8kKJ6quY7rw4,7183
|
224
|
-
ccxt/async_support/__init__.py,sha256=
|
225
|
-
ccxt/async_support/ace.py,sha256=
|
226
|
-
ccxt/async_support/alpaca.py,sha256=
|
227
|
-
ccxt/async_support/ascendex.py,sha256=
|
223
|
+
ccxt/async_support/__init__.py,sha256=D8dPDkkV5rkVm6cL0kb8gMijrC4AEN_2YXO7eLUuubQ,16383
|
224
|
+
ccxt/async_support/ace.py,sha256=H9NZRmxbizv_YHeP8x-b-9D7vI7wNqeITf5nGjlxtlQ,46584
|
225
|
+
ccxt/async_support/alpaca.py,sha256=4SgXk9xPZ3q4WTXufu4N83ZaYYwXcVfsbLAboN9kx60,81003
|
226
|
+
ccxt/async_support/ascendex.py,sha256=8IdgSV_n1rwf_1OdD7k3i-s59bC91mBaF0hei1mxHoo,156822
|
228
227
|
ccxt/async_support/bequant.py,sha256=Szyla1q_L8o_mX09QYxltw4tfMWpxXkj95I4WxnjB8A,1207
|
229
228
|
ccxt/async_support/bigone.py,sha256=1g0eoESEzEwVy7ryotNtSh8Tv8WuVPI4C1KG-NspU3Y,96414
|
230
|
-
ccxt/async_support/binance.py,sha256=
|
229
|
+
ccxt/async_support/binance.py,sha256=jGkyd7nTbFRlZsyCQhEeB107vAYgeGHMYd5xj3nBWF0,691374
|
231
230
|
ccxt/async_support/binancecoinm.py,sha256=1NC5yuHlkNgXH5mEz20lU7O7u3pODa6fluSmHO7W5Lc,1758
|
232
231
|
ccxt/async_support/binanceus.py,sha256=fD4Rm2iJZ6YZuJAbRt5TPh2p8dIyN8yQkovnSWKF6F8,9514
|
233
232
|
ccxt/async_support/binanceusdm.py,sha256=7SvgLSpu0-VWHDP_WH8Zo-SEORsyF-tuHhWdQnFMf80,2688
|
234
233
|
ccxt/async_support/bingx.py,sha256=g3ZQb9WHDpOhicO7txVOEJbrDwsNmg60U4zMeN_qvrc,276002
|
235
|
-
ccxt/async_support/bit2c.py,sha256=
|
234
|
+
ccxt/async_support/bit2c.py,sha256=FERAhmsi5xZ-E77MxMKt-ckEGa6qCSJ6ik1si_Skaeg,40177
|
236
235
|
ccxt/async_support/bitbank.py,sha256=xi8LvBORSMhn5jQk8AlPG6-F_PDXDE4mMzyR1FybQ1I,46546
|
237
236
|
ccxt/async_support/bitbns.py,sha256=L2_GDjTTycASkstkfizQ7pcBVzOWYvC7CoBk1nt4h-4,51157
|
238
237
|
ccxt/async_support/bitcoincom.py,sha256=NN_AWmT0tzikiwFDtf3aUqRXbgFTbdRIeL0kPbL5QpQ,555
|
239
238
|
ccxt/async_support/bitfinex.py,sha256=OQLjMJVv-6D1FoIV1Oa2nUJgCbKTWaxoBST815iGYg4,166856
|
240
239
|
ccxt/async_support/bitfinex1.py,sha256=5wTplLdKMIEoWUwrG5_W5rXhrPbrch1358Bwa6TU1ek,74689
|
241
240
|
ccxt/async_support/bitflyer.py,sha256=DoKSbGzqMRXt2d91fHG-DFd6ZuH0qIqzj9cYr0FyYCk,47214
|
242
|
-
ccxt/async_support/bitget.py,sha256=
|
241
|
+
ccxt/async_support/bitget.py,sha256=B0KcbXhCO4g6ahGBHC1b05Fa-rHLKsJYtvqVR7Qm56o,437889
|
243
242
|
ccxt/async_support/bithumb.py,sha256=JUj5gTAtb71KlO-rpNOacV-m7isAzkjRfh3iS0JhSpY,50344
|
244
243
|
ccxt/async_support/bitmart.py,sha256=2KJA_yqf_br2WvOSQUvQE5yPyTif68NNHyL5Ks54ULg,246608
|
245
244
|
ccxt/async_support/bitmex.py,sha256=BG2V3EfAb0omoPnvfi3CcaWrernaMeJJ8WeEH2CiW1Y,132025
|
246
245
|
ccxt/async_support/bitopro.py,sha256=pjKbqTBiaD5qUkz7LRd9-ohkrkFGol9FjUgFLUxBOqs,73897
|
247
246
|
ccxt/async_support/bitpanda.py,sha256=zj2ad7e9spjosP19nGH2s9oJnlSsJ7CZFNK4alIt51w,524
|
248
|
-
ccxt/async_support/bitrue.py,sha256=
|
247
|
+
ccxt/async_support/bitrue.py,sha256=qJoihFg5EZQAHvsReXGwbM9xJWBvIkVrOn32roWDwTw,140374
|
249
248
|
ccxt/async_support/bitso.py,sha256=PbF9iC4-Wea_msXhO614VPX6o-8RAqzK0reSC_dxwIc,74547
|
250
249
|
ccxt/async_support/bitstamp.py,sha256=7MNcyr9yI9jR4e3CzIp2H9sku979VtjM4Tp2hGfWJSo,96097
|
251
250
|
ccxt/async_support/bitteam.py,sha256=hucr7t-uGSsn6otP90c4ohzW4U9DwrWRieHZcW_J2Ig,105530
|
@@ -257,7 +256,7 @@ ccxt/async_support/btcalpha.py,sha256=KXc-Xl6ZeSwYkYYXPPMSQalbY-XwFCOvNCcVx9_qCZ
|
|
257
256
|
ccxt/async_support/btcbox.py,sha256=bY4LZaCVh2eEyrHF0rRc65D8ws53oAcC0MqbJyU_odE,30258
|
258
257
|
ccxt/async_support/btcmarkets.py,sha256=ByaubB2c6aGB5BQGi6mZq65EYHAWEEu7Tuoj9Kauucw,56179
|
259
258
|
ccxt/async_support/btcturk.py,sha256=ox_4BvoFHyn8BJJTmJMX5-UB8tZt03KGAMMCqe8yUhE,39700
|
260
|
-
ccxt/async_support/bybit.py,sha256=
|
259
|
+
ccxt/async_support/bybit.py,sha256=mS3iZ35cxkmtBMVfrK6dZNrYWhH-hHY3tu34GN1_r9s,439679
|
261
260
|
ccxt/async_support/cex.py,sha256=KFwJCXNn653tOiRKnwgd2Dxav2KNMwexrzJF8G-oekU,72894
|
262
261
|
ccxt/async_support/coinbase.py,sha256=Wz0ePPCxWRfLgl5dcYmN0eOfwdWVnOmOdw3BsDPhqQI,236498
|
263
262
|
ccxt/async_support/coinbaseadvanced.py,sha256=TnsUS2r5fvHIEfQmJh7J6Muyg8tPqDJphKYmK7gUQGE,591
|
@@ -274,10 +273,10 @@ ccxt/async_support/coinsph.py,sha256=-Ah82PH0mChd3T9ZQcHyCN_1ZTRsux8zR3cD4d_O00U
|
|
274
273
|
ccxt/async_support/coinspot.py,sha256=TpccNE4N4g2lVcPPVzDVR5P2rD8TxqYXzpmNqpxRulQ,26155
|
275
274
|
ccxt/async_support/cryptocom.py,sha256=GCtbWxu0SD3kW4SuECPYKP-ZQiV0VuIhVswWjuCmikE,141711
|
276
275
|
ccxt/async_support/cryptomus.py,sha256=p6hDlvDUyOic62x_SM7QPA13Y0jNzuxRxQ-u5ZqIXFE,49565
|
277
|
-
ccxt/async_support/defx.py,sha256=
|
276
|
+
ccxt/async_support/defx.py,sha256=un6WAsBM-xkHk6Hj7Xgi21swWoPiTjGhIfk8pnYgYPc,85775
|
278
277
|
ccxt/async_support/delta.py,sha256=ZgrxGTbXprUn9XrsNtbo7wasyVoAAy5W0gf-v-4wiI4,155463
|
279
278
|
ccxt/async_support/deribit.py,sha256=zYlQZfmIcGs-4Qtrxw1oTu7E-o_7MS5dUoa4X-G0u-w,166918
|
280
|
-
ccxt/async_support/derive.py,sha256=
|
279
|
+
ccxt/async_support/derive.py,sha256=iLumdamXnz1WNM4iY9ZeSyUClK_OAhwOhF_0DR4CpMc,120952
|
281
280
|
ccxt/async_support/digifinex.py,sha256=dHYmMTTwAslYtwcsYarCwBV0e1omt5EoJjEzgEVP3Y8,178392
|
282
281
|
ccxt/async_support/ellipx.py,sha256=rNGNBp2Wko2yG-Fx0p9TM862Md6MOmloxbugb4ngh9U,79274
|
283
282
|
ccxt/async_support/exmo.py,sha256=G8SrYyKO0yIjLXjM9MYdBN6n0AU2a8aHN11RbXf-66I,121290
|
@@ -334,7 +333,7 @@ ccxt/async_support/yobit.py,sha256=B2T9UXo0ke-YyXxNW9avOPJ8cReVGXWD9OpkORI9ZSU,5
|
|
334
333
|
ccxt/async_support/zaif.py,sha256=jZZv3ZjGQgkPNRfY5B5p5DNMvanHWTTS8m6BLBWm9tA,31357
|
335
334
|
ccxt/async_support/zonda.py,sha256=2QL_B9CmBu4SU4K-Y8segpj57vzAd4aUT2H2cD3b07g,85320
|
336
335
|
ccxt/async_support/base/__init__.py,sha256=aVYSsFi--b4InRs9zDN_wtCpj8odosAB726JdUHavrk,67
|
337
|
-
ccxt/async_support/base/exchange.py,sha256=
|
336
|
+
ccxt/async_support/base/exchange.py,sha256=GtxvJNOBbMV_e_7TSY6GnRnQ4e5KG4rn-UtzgpDhVDk,117223
|
338
337
|
ccxt/async_support/base/throttler.py,sha256=tvDVcdRUVYi8fZRlEcnqtgzcgB_KMUMRs5Pu8tuU-tU,1847
|
339
338
|
ccxt/async_support/base/ws/__init__.py,sha256=uockzpLuwntKGZbs5EOWFe-Zg-k6Cj7GhNJLc_RX0so,1791
|
340
339
|
ccxt/async_support/base/ws/aiohttp_client.py,sha256=Y5HxAVXyyYduj6b6SbbUZETlq3GrVMzrkW1r-TMgpb8,6329
|
@@ -348,10 +347,10 @@ ccxt/async_support/base/ws/order_book_side.py,sha256=GhnGUt78pJ-AYL_Dq9produGjmB
|
|
348
347
|
ccxt/base/__init__.py,sha256=eTx1OE3HJjspFUQjGm6LBhaQiMKJnXjkdP-JUXknyQ0,1320
|
349
348
|
ccxt/base/decimal_to_precision.py,sha256=fgWRBzRTtsf3r2INyS4f7WHlzgjB5YM1ekiwqD21aac,6634
|
350
349
|
ccxt/base/errors.py,sha256=MvCrL_sAM3de616T6RE0PSxiF2xV6Qqz5b1y1ghidbk,4888
|
351
|
-
ccxt/base/exchange.py,sha256=
|
350
|
+
ccxt/base/exchange.py,sha256=skWoCo-W0G1uEjFjc6rdFwjuJ1kGCUWozMCTY0re3u4,321798
|
352
351
|
ccxt/base/precise.py,sha256=koce64Yrp6vFbGijJtUt-QQ6XhJgeGTCksZ871FPp_A,8886
|
353
352
|
ccxt/base/types.py,sha256=SfxIKDSsxP7MPHWiOVI965Nr5NSEPpAno5fuveTRi3w,11423
|
354
|
-
ccxt/pro/__init__.py,sha256=
|
353
|
+
ccxt/pro/__init__.py,sha256=cGlZqC6X6c89ogyyuUEzu-VqDHx52Lbmze40wTj6R38,7804
|
355
354
|
ccxt/pro/alpaca.py,sha256=_WEorh5thYhvhn7R8hBvHW2m1P2foIbp8URjIt_9vcg,27623
|
356
355
|
ccxt/pro/ascendex.py,sha256=P6a81iK_T6uyEK6JHcNQbjJwLvurrUeQVoQqvp2_IU8,37512
|
357
356
|
ccxt/pro/bequant.py,sha256=reG2yXBhxn_TuOIg4J2BiLxl8Lw5Lag3IBMGBkiQCd0,1591
|
@@ -654,12 +653,12 @@ ccxt/static_dependencies/toolz/curried/operator.py,sha256=ML92mknkAwzBl2NCm-4wer
|
|
654
653
|
ccxt/static_dependencies/typing_inspect/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
655
654
|
ccxt/static_dependencies/typing_inspect/typing_inspect.py,sha256=5gIWomLPfuDpgd3gX1GlnX0MuXM3VorR4j2W2qXORiQ,28269
|
656
655
|
ccxt/test/__init__.py,sha256=GKPbEcj0Rrz5HG-GUm-iY1IHhDYmlvcBXZAGk6-m2CI,141
|
657
|
-
ccxt/test/tests_async.py,sha256=
|
656
|
+
ccxt/test/tests_async.py,sha256=_eOeOojWW2Twyd62H485whALy9IKSlUd4JlrKN26qws,92582
|
658
657
|
ccxt/test/tests_helpers.py,sha256=egM69A2ZFYeVF5hwC1Qt-c5DOeClY5bv4jowmceeFV8,9736
|
659
658
|
ccxt/test/tests_init.py,sha256=qM0-Gb0h0p6CANWTkyYZI7wl-iYOcrPur7aj_OKh7m0,1212
|
660
|
-
ccxt/test/tests_sync.py,sha256=
|
661
|
-
ccxt-4.4.
|
662
|
-
ccxt-4.4.
|
663
|
-
ccxt-4.4.
|
664
|
-
ccxt-4.4.
|
665
|
-
ccxt-4.4.
|
659
|
+
ccxt/test/tests_sync.py,sha256=5qKpTyujmxiXJ0jNwYNdYzzwbkXHHfiO0QuQCBCjbqI,91566
|
660
|
+
ccxt-4.4.73.dist-info/LICENSE.txt,sha256=EIb9221AhMHV7xF1_55STFdKTFsnJVJYkRpY2Lnvo5w,1068
|
661
|
+
ccxt-4.4.73.dist-info/METADATA,sha256=fdfH1HwnMA6iHxRWiZ2-mgjXdTgDcPXgL7B2wVHAlRw,131033
|
662
|
+
ccxt-4.4.73.dist-info/WHEEL,sha256=Kh9pAotZVRFj97E15yTA4iADqXdQfIVTHcNaZTjxeGM,110
|
663
|
+
ccxt-4.4.73.dist-info/top_level.txt,sha256=CkQDuCTDKNcImPV60t36G6MdYfxsAPNiSaEwifVoVMo,5
|
664
|
+
ccxt-4.4.73.dist-info/RECORD,,
|