ccxt 4.1.76__py2.py3-none-any.whl → 4.1.77__py2.py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- ccxt/__init__.py +1 -1
- ccxt/async_support/__init__.py +1 -1
- ccxt/async_support/base/exchange.py +1 -1
- ccxt/async_support/bingx.py +2 -0
- ccxt/async_support/bitmex.py +5 -1
- ccxt/async_support/bitrue.py +24 -1
- ccxt/async_support/bitstamp.py +3 -2
- ccxt/async_support/coinbase.py +31 -6
- ccxt/async_support/gate.py +1 -0
- ccxt/async_support/okx.py +1 -1
- ccxt/base/exchange.py +1 -1
- ccxt/bingx.py +2 -0
- ccxt/bitmex.py +5 -1
- ccxt/bitrue.py +24 -1
- ccxt/bitstamp.py +3 -2
- ccxt/coinbase.py +31 -6
- ccxt/gate.py +1 -0
- ccxt/okx.py +1 -1
- ccxt/pro/__init__.py +1 -1
- {ccxt-4.1.76.dist-info → ccxt-4.1.77.dist-info}/METADATA +4 -4
- {ccxt-4.1.76.dist-info → ccxt-4.1.77.dist-info}/RECORD +23 -23
- {ccxt-4.1.76.dist-info → ccxt-4.1.77.dist-info}/WHEEL +0 -0
- {ccxt-4.1.76.dist-info → ccxt-4.1.77.dist-info}/top_level.txt +0 -0
ccxt/__init__.py
CHANGED
ccxt/async_support/__init__.py
CHANGED
ccxt/async_support/bingx.py
CHANGED
@@ -45,6 +45,8 @@ class bingx(Exchange, ImplicitAPI):
|
|
45
45
|
'cancelAllOrders': True,
|
46
46
|
'cancelOrder': True,
|
47
47
|
'cancelOrders': True,
|
48
|
+
'closeAllPosition': True,
|
49
|
+
'closePosition': False,
|
48
50
|
'createMarketBuyOrderWithCost': True,
|
49
51
|
'createMarketOrderWithCost': True,
|
50
52
|
'createMarketSellOrderWithCost': True,
|
ccxt/async_support/bitmex.py
CHANGED
@@ -393,7 +393,11 @@ class bitmex(Exchange, ImplicitAPI):
|
|
393
393
|
finalAmount = Precise.string_div(amountString, precision)
|
394
394
|
return self.parse_number(finalAmount)
|
395
395
|
|
396
|
-
def convert_to_real_amount(self, code:
|
396
|
+
def convert_to_real_amount(self, code: Str, amount: Str):
|
397
|
+
if code is None:
|
398
|
+
return amount
|
399
|
+
elif amount is None:
|
400
|
+
return None
|
397
401
|
currency = self.currency(code)
|
398
402
|
precision = self.safe_string(currency, 'precision')
|
399
403
|
return Precise.string_mul(amount, precision)
|
ccxt/async_support/bitrue.py
CHANGED
@@ -53,6 +53,9 @@ class bitrue(Exchange, ImplicitAPI):
|
|
53
53
|
'option': False,
|
54
54
|
'cancelAllOrders': True,
|
55
55
|
'cancelOrder': True,
|
56
|
+
'createMarketBuyOrderWithCost': True,
|
57
|
+
'createMarketOrderWithCost': False,
|
58
|
+
'createMarketSellOrderWithCost': False,
|
56
59
|
'createOrder': True,
|
57
60
|
'createStopLimitOrder': True,
|
58
61
|
'createStopMarketOrder': True,
|
@@ -1804,6 +1807,23 @@ class bitrue(Exchange, ImplicitAPI):
|
|
1804
1807
|
'trades': fills,
|
1805
1808
|
}, market)
|
1806
1809
|
|
1810
|
+
async def create_market_buy_order_with_cost(self, symbol: str, cost, params={}):
|
1811
|
+
"""
|
1812
|
+
create a market buy order by providing the symbol and cost
|
1813
|
+
:see: https://www.bitrue.com/api-docs#new-order-trade-hmac-sha256
|
1814
|
+
:see: https://www.bitrue.com/api_docs_includes_file/delivery.html#new-order-trade-hmac-sha256
|
1815
|
+
:param str symbol: unified symbol of the market to create an order in
|
1816
|
+
:param float cost: how much you want to trade in units of the quote currency
|
1817
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
1818
|
+
:returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
1819
|
+
"""
|
1820
|
+
await self.load_markets()
|
1821
|
+
market = self.market(symbol)
|
1822
|
+
if not market['swap']:
|
1823
|
+
raise NotSupported(self.id + ' createMarketBuyOrderWithCost() supports swap orders only')
|
1824
|
+
params['createMarketBuyOrderRequiresPrice'] = False
|
1825
|
+
return await self.create_order(symbol, 'market', 'buy', cost, None, params)
|
1826
|
+
|
1807
1827
|
async def create_order(self, symbol: str, type: OrderType, side: OrderSide, amount, price=None, params={}):
|
1808
1828
|
"""
|
1809
1829
|
create a trade order
|
@@ -1825,6 +1845,7 @@ class bitrue(Exchange, ImplicitAPI):
|
|
1825
1845
|
* EXCHANGE SPECIFIC PARAMETERS
|
1826
1846
|
:param decimal [params.icebergQty]:
|
1827
1847
|
:param long [params.recvWindow]:
|
1848
|
+
:param float [params.cost]: *swap market buy only* the quote quantity that can be used alternative for the amount
|
1828
1849
|
:returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
1829
1850
|
"""
|
1830
1851
|
await self.load_markets()
|
@@ -1856,7 +1877,9 @@ class bitrue(Exchange, ImplicitAPI):
|
|
1856
1877
|
elif timeInForce == 'ioc':
|
1857
1878
|
request['type'] = 'IOC'
|
1858
1879
|
request['contractName'] = market['id']
|
1859
|
-
|
1880
|
+
createMarketBuyOrderRequiresPrice = True
|
1881
|
+
createMarketBuyOrderRequiresPrice, params = self.handle_option_and_params(params, 'createOrder', 'createMarketBuyOrderRequiresPrice', True)
|
1882
|
+
if isMarket and (side == 'buy') and createMarketBuyOrderRequiresPrice:
|
1860
1883
|
cost = self.safe_string(params, 'cost')
|
1861
1884
|
params = self.omit(params, 'cost')
|
1862
1885
|
if price is None and cost is None:
|
ccxt/async_support/bitstamp.py
CHANGED
@@ -1007,6 +1007,7 @@ class bitstamp(Exchange, ImplicitAPI):
|
|
1007
1007
|
async def fetch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={}) -> List[list]:
|
1008
1008
|
"""
|
1009
1009
|
fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market
|
1010
|
+
:see: https://www.bitstamp.net/api/#tag/Market-info/operation/GetOHLCData
|
1010
1011
|
:param str symbol: unified symbol of the market to fetch OHLCV data for
|
1011
1012
|
:param str timeframe: the length of time each candle represents
|
1012
1013
|
:param int [since]: timestamp in ms of the earliest candle to fetch
|
@@ -1028,13 +1029,13 @@ class bitstamp(Exchange, ImplicitAPI):
|
|
1028
1029
|
limit = 1000
|
1029
1030
|
start = self.parse_to_int(since / 1000)
|
1030
1031
|
request['start'] = start
|
1031
|
-
request['end'] = self.sum(start,
|
1032
|
+
request['end'] = self.sum(start, duration * (limit - 1))
|
1032
1033
|
request['limit'] = limit
|
1033
1034
|
else:
|
1034
1035
|
if since is not None:
|
1035
1036
|
start = self.parse_to_int(since / 1000)
|
1036
1037
|
request['start'] = start
|
1037
|
-
request['end'] = self.sum(start,
|
1038
|
+
request['end'] = self.sum(start, duration * (limit - 1))
|
1038
1039
|
request['limit'] = min(limit, 1000) # min 1, max 1000
|
1039
1040
|
response = await self.publicGetOhlcPair(self.extend(request, params))
|
1040
1041
|
#
|
ccxt/async_support/coinbase.py
CHANGED
@@ -51,7 +51,10 @@ class coinbase(Exchange, ImplicitAPI):
|
|
51
51
|
'createLimitBuyOrder': True,
|
52
52
|
'createLimitSellOrder': True,
|
53
53
|
'createMarketBuyOrder': True,
|
54
|
+
'createMarketBuyOrderWithCost': True,
|
55
|
+
'createMarketOrderWithCost': False,
|
54
56
|
'createMarketSellOrder': True,
|
57
|
+
'createMarketSellOrderWithCost': False,
|
55
58
|
'createOrder': True,
|
56
59
|
'createPostOnlyOrder': True,
|
57
60
|
'createReduceOnlyOrder': False,
|
@@ -2010,6 +2013,22 @@ class coinbase(Exchange, ImplicitAPI):
|
|
2010
2013
|
request['limit'] = limit
|
2011
2014
|
return request
|
2012
2015
|
|
2016
|
+
async def create_market_buy_order_with_cost(self, symbol: str, cost, params={}):
|
2017
|
+
"""
|
2018
|
+
create a market buy order by providing the symbol and cost
|
2019
|
+
:see: https://docs.cloud.coinbase.com/advanced-trade-api/reference/retailbrokerageapi_postorder
|
2020
|
+
:param str symbol: unified symbol of the market to create an order in
|
2021
|
+
:param float cost: how much you want to trade in units of the quote currency
|
2022
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
2023
|
+
:returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
2024
|
+
"""
|
2025
|
+
await self.load_markets()
|
2026
|
+
market = self.market(symbol)
|
2027
|
+
if not market['spot']:
|
2028
|
+
raise NotSupported(self.id + ' createMarketBuyOrderWithCost() supports spot orders only')
|
2029
|
+
params['createMarketBuyOrderRequiresPrice'] = False
|
2030
|
+
return await self.create_order(symbol, 'market', 'buy', cost, None, params)
|
2031
|
+
|
2013
2032
|
async def create_order(self, symbol: str, type: OrderType, side: OrderSide, amount, price=None, params={}):
|
2014
2033
|
"""
|
2015
2034
|
create a trade order
|
@@ -2028,6 +2047,7 @@ class coinbase(Exchange, ImplicitAPI):
|
|
2028
2047
|
:param str [params.timeInForce]: 'GTC', 'IOC', 'GTD' or 'PO'
|
2029
2048
|
:param str [params.stop_direction]: 'UNKNOWN_STOP_DIRECTION', 'STOP_DIRECTION_STOP_UP', 'STOP_DIRECTION_STOP_DOWN' the direction the stopPrice is triggered from
|
2030
2049
|
:param str [params.end_time]: '2023-05-25T17:01:05.092Z' for 'GTD' orders
|
2050
|
+
:param float [params.cost]: *spot market buy only* the quote quantity that can be used alternative for the amount
|
2031
2051
|
:returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
2032
2052
|
"""
|
2033
2053
|
await self.load_markets()
|
@@ -2114,18 +2134,23 @@ class coinbase(Exchange, ImplicitAPI):
|
|
2114
2134
|
if isStop or isStopLoss or isTakeProfit:
|
2115
2135
|
raise NotSupported(self.id + ' createOrder() only stop limit orders are supported')
|
2116
2136
|
if side == 'buy':
|
2117
|
-
createMarketBuyOrderRequiresPrice = self.safe_value(self.options, 'createMarketBuyOrderRequiresPrice', True)
|
2118
2137
|
total = None
|
2119
|
-
|
2138
|
+
createMarketBuyOrderRequiresPrice = True
|
2139
|
+
createMarketBuyOrderRequiresPrice, params = self.handle_option_and_params(params, 'createOrder', 'createMarketBuyOrderRequiresPrice', True)
|
2140
|
+
cost = self.safe_number(params, 'cost')
|
2141
|
+
params = self.omit(params, 'cost')
|
2142
|
+
if cost is not None:
|
2143
|
+
total = self.cost_to_precision(symbol, cost)
|
2144
|
+
elif createMarketBuyOrderRequiresPrice:
|
2120
2145
|
if price is None:
|
2121
|
-
raise InvalidOrder(self.id + ' createOrder() requires a price argument for market buy orders on spot markets to calculate the total amount to spend(amount * price), alternatively set the createMarketBuyOrderRequiresPrice option to False and pass
|
2146
|
+
raise InvalidOrder(self.id + ' createOrder() requires a price argument for market buy orders on spot markets to calculate the total amount to spend(amount * price), alternatively set the createMarketBuyOrderRequiresPrice option or param to False and pass the cost to spend in the amount argument')
|
2122
2147
|
else:
|
2123
2148
|
amountString = self.number_to_string(amount)
|
2124
2149
|
priceString = self.number_to_string(price)
|
2125
|
-
|
2126
|
-
total = self.
|
2150
|
+
costRequest = Precise.string_mul(amountString, priceString)
|
2151
|
+
total = self.cost_to_precision(symbol, costRequest)
|
2127
2152
|
else:
|
2128
|
-
total = self.
|
2153
|
+
total = self.cost_to_precision(symbol, amount)
|
2129
2154
|
request['order_configuration'] = {
|
2130
2155
|
'market_market_ioc': {
|
2131
2156
|
'quote_size': total,
|
ccxt/async_support/gate.py
CHANGED
ccxt/async_support/okx.py
CHANGED
ccxt/base/exchange.py
CHANGED
ccxt/bingx.py
CHANGED
@@ -44,6 +44,8 @@ class bingx(Exchange, ImplicitAPI):
|
|
44
44
|
'cancelAllOrders': True,
|
45
45
|
'cancelOrder': True,
|
46
46
|
'cancelOrders': True,
|
47
|
+
'closeAllPosition': True,
|
48
|
+
'closePosition': False,
|
47
49
|
'createMarketBuyOrderWithCost': True,
|
48
50
|
'createMarketOrderWithCost': True,
|
49
51
|
'createMarketSellOrderWithCost': True,
|
ccxt/bitmex.py
CHANGED
@@ -393,7 +393,11 @@ class bitmex(Exchange, ImplicitAPI):
|
|
393
393
|
finalAmount = Precise.string_div(amountString, precision)
|
394
394
|
return self.parse_number(finalAmount)
|
395
395
|
|
396
|
-
def convert_to_real_amount(self, code:
|
396
|
+
def convert_to_real_amount(self, code: Str, amount: Str):
|
397
|
+
if code is None:
|
398
|
+
return amount
|
399
|
+
elif amount is None:
|
400
|
+
return None
|
397
401
|
currency = self.currency(code)
|
398
402
|
precision = self.safe_string(currency, 'precision')
|
399
403
|
return Precise.string_mul(amount, precision)
|
ccxt/bitrue.py
CHANGED
@@ -52,6 +52,9 @@ class bitrue(Exchange, ImplicitAPI):
|
|
52
52
|
'option': False,
|
53
53
|
'cancelAllOrders': True,
|
54
54
|
'cancelOrder': True,
|
55
|
+
'createMarketBuyOrderWithCost': True,
|
56
|
+
'createMarketOrderWithCost': False,
|
57
|
+
'createMarketSellOrderWithCost': False,
|
55
58
|
'createOrder': True,
|
56
59
|
'createStopLimitOrder': True,
|
57
60
|
'createStopMarketOrder': True,
|
@@ -1803,6 +1806,23 @@ class bitrue(Exchange, ImplicitAPI):
|
|
1803
1806
|
'trades': fills,
|
1804
1807
|
}, market)
|
1805
1808
|
|
1809
|
+
def create_market_buy_order_with_cost(self, symbol: str, cost, params={}):
|
1810
|
+
"""
|
1811
|
+
create a market buy order by providing the symbol and cost
|
1812
|
+
:see: https://www.bitrue.com/api-docs#new-order-trade-hmac-sha256
|
1813
|
+
:see: https://www.bitrue.com/api_docs_includes_file/delivery.html#new-order-trade-hmac-sha256
|
1814
|
+
:param str symbol: unified symbol of the market to create an order in
|
1815
|
+
:param float cost: how much you want to trade in units of the quote currency
|
1816
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
1817
|
+
:returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
1818
|
+
"""
|
1819
|
+
self.load_markets()
|
1820
|
+
market = self.market(symbol)
|
1821
|
+
if not market['swap']:
|
1822
|
+
raise NotSupported(self.id + ' createMarketBuyOrderWithCost() supports swap orders only')
|
1823
|
+
params['createMarketBuyOrderRequiresPrice'] = False
|
1824
|
+
return self.create_order(symbol, 'market', 'buy', cost, None, params)
|
1825
|
+
|
1806
1826
|
def create_order(self, symbol: str, type: OrderType, side: OrderSide, amount, price=None, params={}):
|
1807
1827
|
"""
|
1808
1828
|
create a trade order
|
@@ -1824,6 +1844,7 @@ class bitrue(Exchange, ImplicitAPI):
|
|
1824
1844
|
* EXCHANGE SPECIFIC PARAMETERS
|
1825
1845
|
:param decimal [params.icebergQty]:
|
1826
1846
|
:param long [params.recvWindow]:
|
1847
|
+
:param float [params.cost]: *swap market buy only* the quote quantity that can be used alternative for the amount
|
1827
1848
|
:returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
1828
1849
|
"""
|
1829
1850
|
self.load_markets()
|
@@ -1855,7 +1876,9 @@ class bitrue(Exchange, ImplicitAPI):
|
|
1855
1876
|
elif timeInForce == 'ioc':
|
1856
1877
|
request['type'] = 'IOC'
|
1857
1878
|
request['contractName'] = market['id']
|
1858
|
-
|
1879
|
+
createMarketBuyOrderRequiresPrice = True
|
1880
|
+
createMarketBuyOrderRequiresPrice, params = self.handle_option_and_params(params, 'createOrder', 'createMarketBuyOrderRequiresPrice', True)
|
1881
|
+
if isMarket and (side == 'buy') and createMarketBuyOrderRequiresPrice:
|
1859
1882
|
cost = self.safe_string(params, 'cost')
|
1860
1883
|
params = self.omit(params, 'cost')
|
1861
1884
|
if price is None and cost is None:
|
ccxt/bitstamp.py
CHANGED
@@ -1007,6 +1007,7 @@ class bitstamp(Exchange, ImplicitAPI):
|
|
1007
1007
|
def fetch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={}) -> List[list]:
|
1008
1008
|
"""
|
1009
1009
|
fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market
|
1010
|
+
:see: https://www.bitstamp.net/api/#tag/Market-info/operation/GetOHLCData
|
1010
1011
|
:param str symbol: unified symbol of the market to fetch OHLCV data for
|
1011
1012
|
:param str timeframe: the length of time each candle represents
|
1012
1013
|
:param int [since]: timestamp in ms of the earliest candle to fetch
|
@@ -1028,13 +1029,13 @@ class bitstamp(Exchange, ImplicitAPI):
|
|
1028
1029
|
limit = 1000
|
1029
1030
|
start = self.parse_to_int(since / 1000)
|
1030
1031
|
request['start'] = start
|
1031
|
-
request['end'] = self.sum(start,
|
1032
|
+
request['end'] = self.sum(start, duration * (limit - 1))
|
1032
1033
|
request['limit'] = limit
|
1033
1034
|
else:
|
1034
1035
|
if since is not None:
|
1035
1036
|
start = self.parse_to_int(since / 1000)
|
1036
1037
|
request['start'] = start
|
1037
|
-
request['end'] = self.sum(start,
|
1038
|
+
request['end'] = self.sum(start, duration * (limit - 1))
|
1038
1039
|
request['limit'] = min(limit, 1000) # min 1, max 1000
|
1039
1040
|
response = self.publicGetOhlcPair(self.extend(request, params))
|
1040
1041
|
#
|
ccxt/coinbase.py
CHANGED
@@ -51,7 +51,10 @@ class coinbase(Exchange, ImplicitAPI):
|
|
51
51
|
'createLimitBuyOrder': True,
|
52
52
|
'createLimitSellOrder': True,
|
53
53
|
'createMarketBuyOrder': True,
|
54
|
+
'createMarketBuyOrderWithCost': True,
|
55
|
+
'createMarketOrderWithCost': False,
|
54
56
|
'createMarketSellOrder': True,
|
57
|
+
'createMarketSellOrderWithCost': False,
|
55
58
|
'createOrder': True,
|
56
59
|
'createPostOnlyOrder': True,
|
57
60
|
'createReduceOnlyOrder': False,
|
@@ -2010,6 +2013,22 @@ class coinbase(Exchange, ImplicitAPI):
|
|
2010
2013
|
request['limit'] = limit
|
2011
2014
|
return request
|
2012
2015
|
|
2016
|
+
def create_market_buy_order_with_cost(self, symbol: str, cost, params={}):
|
2017
|
+
"""
|
2018
|
+
create a market buy order by providing the symbol and cost
|
2019
|
+
:see: https://docs.cloud.coinbase.com/advanced-trade-api/reference/retailbrokerageapi_postorder
|
2020
|
+
:param str symbol: unified symbol of the market to create an order in
|
2021
|
+
:param float cost: how much you want to trade in units of the quote currency
|
2022
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
2023
|
+
:returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
2024
|
+
"""
|
2025
|
+
self.load_markets()
|
2026
|
+
market = self.market(symbol)
|
2027
|
+
if not market['spot']:
|
2028
|
+
raise NotSupported(self.id + ' createMarketBuyOrderWithCost() supports spot orders only')
|
2029
|
+
params['createMarketBuyOrderRequiresPrice'] = False
|
2030
|
+
return self.create_order(symbol, 'market', 'buy', cost, None, params)
|
2031
|
+
|
2013
2032
|
def create_order(self, symbol: str, type: OrderType, side: OrderSide, amount, price=None, params={}):
|
2014
2033
|
"""
|
2015
2034
|
create a trade order
|
@@ -2028,6 +2047,7 @@ class coinbase(Exchange, ImplicitAPI):
|
|
2028
2047
|
:param str [params.timeInForce]: 'GTC', 'IOC', 'GTD' or 'PO'
|
2029
2048
|
:param str [params.stop_direction]: 'UNKNOWN_STOP_DIRECTION', 'STOP_DIRECTION_STOP_UP', 'STOP_DIRECTION_STOP_DOWN' the direction the stopPrice is triggered from
|
2030
2049
|
:param str [params.end_time]: '2023-05-25T17:01:05.092Z' for 'GTD' orders
|
2050
|
+
:param float [params.cost]: *spot market buy only* the quote quantity that can be used alternative for the amount
|
2031
2051
|
:returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
2032
2052
|
"""
|
2033
2053
|
self.load_markets()
|
@@ -2114,18 +2134,23 @@ class coinbase(Exchange, ImplicitAPI):
|
|
2114
2134
|
if isStop or isStopLoss or isTakeProfit:
|
2115
2135
|
raise NotSupported(self.id + ' createOrder() only stop limit orders are supported')
|
2116
2136
|
if side == 'buy':
|
2117
|
-
createMarketBuyOrderRequiresPrice = self.safe_value(self.options, 'createMarketBuyOrderRequiresPrice', True)
|
2118
2137
|
total = None
|
2119
|
-
|
2138
|
+
createMarketBuyOrderRequiresPrice = True
|
2139
|
+
createMarketBuyOrderRequiresPrice, params = self.handle_option_and_params(params, 'createOrder', 'createMarketBuyOrderRequiresPrice', True)
|
2140
|
+
cost = self.safe_number(params, 'cost')
|
2141
|
+
params = self.omit(params, 'cost')
|
2142
|
+
if cost is not None:
|
2143
|
+
total = self.cost_to_precision(symbol, cost)
|
2144
|
+
elif createMarketBuyOrderRequiresPrice:
|
2120
2145
|
if price is None:
|
2121
|
-
raise InvalidOrder(self.id + ' createOrder() requires a price argument for market buy orders on spot markets to calculate the total amount to spend(amount * price), alternatively set the createMarketBuyOrderRequiresPrice option to False and pass
|
2146
|
+
raise InvalidOrder(self.id + ' createOrder() requires a price argument for market buy orders on spot markets to calculate the total amount to spend(amount * price), alternatively set the createMarketBuyOrderRequiresPrice option or param to False and pass the cost to spend in the amount argument')
|
2122
2147
|
else:
|
2123
2148
|
amountString = self.number_to_string(amount)
|
2124
2149
|
priceString = self.number_to_string(price)
|
2125
|
-
|
2126
|
-
total = self.
|
2150
|
+
costRequest = Precise.string_mul(amountString, priceString)
|
2151
|
+
total = self.cost_to_precision(symbol, costRequest)
|
2127
2152
|
else:
|
2128
|
-
total = self.
|
2153
|
+
total = self.cost_to_precision(symbol, amount)
|
2129
2154
|
request['order_configuration'] = {
|
2130
2155
|
'market_market_ioc': {
|
2131
2156
|
'quote_size': total,
|
ccxt/gate.py
CHANGED
ccxt/okx.py
CHANGED
ccxt/pro/__init__.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: ccxt
|
3
|
-
Version: 4.1.
|
3
|
+
Version: 4.1.77
|
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
|
@@ -258,13 +258,13 @@ console.log(version, Object.keys(exchanges));
|
|
258
258
|
|
259
259
|
All-in-one browser bundle (dependencies included), served from a CDN of your choice:
|
260
260
|
|
261
|
-
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.1.
|
262
|
-
* unpkg: https://unpkg.com/ccxt@4.1.
|
261
|
+
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.1.77/dist/ccxt.browser.js
|
262
|
+
* unpkg: https://unpkg.com/ccxt@4.1.77/dist/ccxt.browser.js
|
263
263
|
|
264
264
|
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.
|
265
265
|
|
266
266
|
```HTML
|
267
|
-
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.1.
|
267
|
+
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.1.77/dist/ccxt.browser.js"></script>
|
268
268
|
```
|
269
269
|
|
270
270
|
Creates a global `ccxt` object:
|
@@ -1,4 +1,4 @@
|
|
1
|
-
ccxt/__init__.py,sha256=
|
1
|
+
ccxt/__init__.py,sha256=NK5qAeq23uUSgEvJiDK_RknzdkkFd59-jhENPS-AZKQ,15081
|
2
2
|
ccxt/ace.py,sha256=bB8RjymWAEI2MYEHMW70GwbIowmOMN9r4RY1tlj4gjY,41348
|
3
3
|
ccxt/alpaca.py,sha256=Tnc7yGp1b1iRLCZiR14iphBLEe5_01vZdbZsoy3FRao,46028
|
4
4
|
ccxt/ascendex.py,sha256=EQjZX2RRa2vBCIPnKsfaRpam9MCEGHe_zWOwMkGJ_b0,143331
|
@@ -8,7 +8,7 @@ ccxt/binance.py,sha256=jIPu6e63jpirjppsCYNTLuRGR9mN5ybPnKT5_9z0yHM,444225
|
|
8
8
|
ccxt/binancecoinm.py,sha256=pncdw6Xw2X1Po-vEvAB4nL37scoS_axGAVxetPy1YQs,1645
|
9
9
|
ccxt/binanceus.py,sha256=VuAty9YMKtrRhPzu9uN9OtLpEcTuih_rwW5y24QILkU,3554
|
10
10
|
ccxt/binanceusdm.py,sha256=KPQGlCalQ0eGlPCs2tSanOxaP8O0zFRQjGntA16Yprw,2480
|
11
|
-
ccxt/bingx.py,sha256=
|
11
|
+
ccxt/bingx.py,sha256=BCijmkgNSOKFzXjcUg3EOHIW-YUgPtxyH57CJSp1-WE,138954
|
12
12
|
ccxt/bit2c.py,sha256=hIqfedh-2SauVWQnhiZyuS4sf9dy-NApYL7USMayqKo,36068
|
13
13
|
ccxt/bitbank.py,sha256=eGEd_9eGcSJHCRpSETeqvJQJoiguLU-nLZrkq3nVze4,41604
|
14
14
|
ccxt/bitbay.py,sha256=xAIjzGRDVGwoy-Gygd99H0YN4wiaz_0lR0Z14oxaaxc,478
|
@@ -21,12 +21,12 @@ ccxt/bitforex.py,sha256=pdgV_sR-qHkMUBmASOSGinbmGCn0FKZN10hJgwXlY0Y,33761
|
|
21
21
|
ccxt/bitget.py,sha256=H5QLjI0suJpKZ6WgbL9_T_3ADUmG2vgF_bLZQgrsSL4,333699
|
22
22
|
ccxt/bithumb.py,sha256=mji93l7rEBQVhoJKxHQnEIMtMvk7wkIRrfN7o0hxYPI,43325
|
23
23
|
ccxt/bitmart.py,sha256=fkNVvPOPDG4YGkCgG7eszINhdJ0L2sIdfykiQOsfidU,183971
|
24
|
-
ccxt/bitmex.py,sha256=
|
24
|
+
ccxt/bitmex.py,sha256=YK2AOrNmvWcxVdNwh33Zv86U1MUjpD3qHARKn1ZJ0WY,119673
|
25
25
|
ccxt/bitopro.py,sha256=ziUX4lmEIcgQgnGIXvcot97X9tvZ0pBLr8jZMCDYREQ,68055
|
26
26
|
ccxt/bitpanda.py,sha256=udZVycV9g-XXGNYudNwvnHZL7eEK16zp8AlSoQbGmQk,87916
|
27
|
-
ccxt/bitrue.py,sha256=
|
27
|
+
ccxt/bitrue.py,sha256=bTjy5FdKi5KfutpQDBaR7Vbpltkq1RCkEK2AidmRAN4,136147
|
28
28
|
ccxt/bitso.py,sha256=tXGh_sjBF3xWciIBR26Ql6VzJvkBcarNIVy8V6w5_iI,69522
|
29
|
-
ccxt/bitstamp.py,sha256
|
29
|
+
ccxt/bitstamp.py,sha256=6d8S_jBUBsHh8QfmEal_zmbsysc93qSuVk2SQfaDqZQ,85459
|
30
30
|
ccxt/bittrex.py,sha256=c6oR_M-BrMX4jugWjsXVUb-gqoqVYAqMCG9xO78yROA,96641
|
31
31
|
ccxt/bitvavo.py,sha256=hiSDtxO3fNsuTDM99cyuBsD4lMlsRUYUUjba6BTBA5E,84672
|
32
32
|
ccxt/bl3p.py,sha256=X9vdABvIrH0-PyPX2nwJM_3ErKYdxmnq8WJTvsOAWts,17767
|
@@ -37,7 +37,7 @@ ccxt/btcmarkets.py,sha256=d9il29c2YsdPO56SKy1WsfxuILIHxQJRF-fVJ37rl4E,48582
|
|
37
37
|
ccxt/btcturk.py,sha256=j51LBBkUqnikl6Xa7AZ1Wl8XAvA_KnFLzb42dMZoSds,35458
|
38
38
|
ccxt/bybit.py,sha256=thO1RUCZmP4RB2rQp6-DcXCirBqBx03V-1-M6LnBW_Y,354420
|
39
39
|
ccxt/cex.py,sha256=XCdjEFY0ulfeUucO4rKZnVHXSl6wESq9u_FujLGGuB8,68727
|
40
|
-
ccxt/coinbase.py,sha256=
|
40
|
+
ccxt/coinbase.py,sha256=qpotVdK6NQS_GbuYe7EqzrZYlOgQaLHYp4heh2E8Tpc,145123
|
41
41
|
ccxt/coinbaseprime.py,sha256=Ygvljulxb2uKdei5yimCj1LMjLlUJNvP-G7ns1HpUFk,1219
|
42
42
|
ccxt/coinbasepro.py,sha256=gpe6UVg4pDDpvzjVGE_fKeoDmkdIyzNucANptY9FeH8,80087
|
43
43
|
ccxt/coincheck.py,sha256=g_gMrlcnNimI3k1SxI9Du7gmmpqd9dZSn-u3SVgHgkQ,34627
|
@@ -55,7 +55,7 @@ ccxt/digifinex.py,sha256=5OeiNfFIM-w3AAPvMXE7SIWIrtfV4bUvyxiaeCSCEo4,165923
|
|
55
55
|
ccxt/exmo.py,sha256=Vpp-5PSHf4sC8C_2aNIQG9MO2vavYftf2WpZHK3DIhs,111768
|
56
56
|
ccxt/flowbtc.py,sha256=YPvm6tbsHJJUQBspFcHuVPQfVmiWzwnVvfzRqBdQX6U,1169
|
57
57
|
ccxt/fmfwio.py,sha256=RbVLvzPwnqfDsE7Ea-N13ISCC82eJVPsXYjrleASmew,1236
|
58
|
-
ccxt/gate.py,sha256=
|
58
|
+
ccxt/gate.py,sha256=FDkuXNuTFbCMcQZRo_KeauvgkiMDCIcDJ8KpIsmQaNw,294215
|
59
59
|
ccxt/gateio.py,sha256=86AETJWODl_vA5VNeQRHZprmpNIY1HAxCddKZcnKSi8,445
|
60
60
|
ccxt/gemini.py,sha256=uKUl5-1e1fXUmTgItn_CiIa9oyCxzhCe1QtgdWTi9Uw,74637
|
61
61
|
ccxt/hitbtc.py,sha256=4L--cDzLMh2ckUFJzm-lll1Jzg7lOrGUAfO1DHD6Kuc,140528
|
@@ -86,7 +86,7 @@ ccxt/oceanex.py,sha256=aEnK9rjZYACIw_heL0NQ9AsvxlTq2dnhXx_LTkZyIgw,37630
|
|
86
86
|
ccxt/okcoin.py,sha256=nv6n4Hu0rQcD2vzgxEQXgxIEfZUXL0OX0QFPLidqUWU,145598
|
87
87
|
ccxt/okex.py,sha256=nVDSzVztmboH593DVByjzFoOpFTzumcQFH_T9kdVKlE,434
|
88
88
|
ccxt/okex5.py,sha256=LKTogVF1svNkqW_-Cx0AuAopu6esgFf7ucbv7CaodUg,441
|
89
|
-
ccxt/okx.py,sha256=
|
89
|
+
ccxt/okx.py,sha256=blwweJ51OkIFVFiqWGUUyV7D7l8FiDCOF8lT8HSmp7s,322737
|
90
90
|
ccxt/p2b.py,sha256=drrJDIulMgC3ZicZTTCNQuiHJ4Q5yWKQZp8WglUmrjA,54043
|
91
91
|
ccxt/paymium.py,sha256=oH4zQkMF7IGkq9co953Riz8wuhUj6xxKSmqs7Rz2n1s,24122
|
92
92
|
ccxt/phemex.py,sha256=LgkusilxAEpZazFkIaiUbRX4RF4hOMHlpYctVtqZQ1Q,205280
|
@@ -204,7 +204,7 @@ ccxt/abstract/woo.py,sha256=Z3ua45hKE0Tf9rtfSEYYgGEztaTO1Ri3mKl_hIo3OHs,8768
|
|
204
204
|
ccxt/abstract/yobit.py,sha256=8ycfCO8ORFly9hc0Aa47sZyX4_ZKPXS9h9yJzI-uQ7Q,1339
|
205
205
|
ccxt/abstract/zaif.py,sha256=m15WHdl3gYy0GOXNZ8NEH8eE7sVh8c0T_ITNuU8vXeU,3935
|
206
206
|
ccxt/abstract/zonda.py,sha256=aSfewvRojzmuymX6QbOnDR8v9VFqWTULMHX9Y7kKD1M,5820
|
207
|
-
ccxt/async_support/__init__.py,sha256=
|
207
|
+
ccxt/async_support/__init__.py,sha256=0JNZ2hDunad4dWeQuzbF3CDqs-kruHZVqEWCrJxbnII,14794
|
208
208
|
ccxt/async_support/ace.py,sha256=5fHmmLyH7G-Dh0RvvHYmO7X6kmuMlanS4LmD_RqX8-s,41572
|
209
209
|
ccxt/async_support/alpaca.py,sha256=Hx87_BHTcOWoyogACXP1OoBWIMGq9TuuN4AfpGeKjVI,46240
|
210
210
|
ccxt/async_support/ascendex.py,sha256=GHeezJpE30VFKhVC-AKtLM5GJsGav0nNgCrvlRkN5gE,144071
|
@@ -214,7 +214,7 @@ ccxt/async_support/binance.py,sha256=HP2EYa_FLXG14dLIxaA-5Yp31NGMmMWbOLRbZXM2Aes
|
|
214
214
|
ccxt/async_support/binancecoinm.py,sha256=IY3RLZptQA2nmZaUYRGfTa5ZY4VMWBpFYfwHc8zTHw0,1683
|
215
215
|
ccxt/async_support/binanceus.py,sha256=ENoZ52LuAo4x-OLdAlXJvEdD3VjofqWQpUzgiGoSZIw,3568
|
216
216
|
ccxt/async_support/binanceusdm.py,sha256=-1r4A4tmV2pCiLGO80hzq7MIIj4MTzOD7buZGv6JauA,2518
|
217
|
-
ccxt/async_support/bingx.py,sha256=
|
217
|
+
ccxt/async_support/bingx.py,sha256=zkATHnfgYG0-1lQu2vbopcDvmNjCbWeryCnM9f8VQP0,139780
|
218
218
|
ccxt/async_support/bit2c.py,sha256=yl5ur2ejyyxTSoc5_Bj8LNWx_GhK9Aows-v9NZuu8x0,36274
|
219
219
|
ccxt/async_support/bitbank.py,sha256=rUeL8JyeagI5HOy00UrTPvwB2xFX6Rf0rwXhoXK3oEs,41864
|
220
220
|
ccxt/async_support/bitbay.py,sha256=jcaEXi2IhYTva8ezO_SfJhwxEZk7HST4J3NaxD16BQA,492
|
@@ -227,12 +227,12 @@ ccxt/async_support/bitforex.py,sha256=B0YnnDV8OCcY9VPY3UXo4DBZ8QF9xYH1jHNdBFi7Zf
|
|
227
227
|
ccxt/async_support/bitget.py,sha256=cL4LBfw0tSUTN-kFYbrm-zDoXJXvDFqeQfNcZIQq3VU,335113
|
228
228
|
ccxt/async_support/bithumb.py,sha256=D2vQybc5kOv5S5VfwQUjw2Ri_tvItfZkzw4FW3TlGvo,43543
|
229
229
|
ccxt/async_support/bitmart.py,sha256=v38YBX4GXdKlmlxku-Z4yOlInz7setYz29LPpFlcJUc,184879
|
230
|
-
ccxt/async_support/bitmex.py,sha256=
|
230
|
+
ccxt/async_support/bitmex.py,sha256=3JhJOASP0TF4rwJlsXdW5yrA2EKZKjqDxDfSSV3otHY,120215
|
231
231
|
ccxt/async_support/bitopro.py,sha256=WS89yAscqwyZYtMFLpF45XhcTEsQgfqs6CpX_0Fuh7o,68447
|
232
232
|
ccxt/async_support/bitpanda.py,sha256=4kMrriboIdTLslQUHV7wQkOC9wavo7tXDU5ArAmtWT8,88368
|
233
|
-
ccxt/async_support/bitrue.py,sha256=
|
233
|
+
ccxt/async_support/bitrue.py,sha256=0urgKMo9epxQgBKn41LdYGamM99jvmwoDfqFyDdPBiY,136817
|
234
234
|
ccxt/async_support/bitso.py,sha256=pzY1N0FQZOY23yVn4Gln3M5tGBCOmMzrQ_SWdPZOoCk,69908
|
235
|
-
ccxt/async_support/bitstamp.py,sha256=
|
235
|
+
ccxt/async_support/bitstamp.py,sha256=Yj-a1f6f-ua3kf7uCTYMrJv2zehvYIi-30XuqTLMsTM,85899
|
236
236
|
ccxt/async_support/bittrex.py,sha256=60pkyqZJ0WZOhlSFGuj1fOt3t-kSBeGeiXYlW6XOH1Y,97171
|
237
237
|
ccxt/async_support/bitvavo.py,sha256=MOhbZQ21Z4QRtG3tP29Ltsq5eybQuhFolBhwkW5QpLk,85106
|
238
238
|
ccxt/async_support/bl3p.py,sha256=8fvFQCUOGLYe2q2ElCTdpAWyqt0a4k09kbZ207leADM,17877
|
@@ -243,7 +243,7 @@ ccxt/async_support/btcmarkets.py,sha256=i1H6KESr8nL7xDuFqmRvy0VQmHnAKrQkD_RPP7Zt
|
|
243
243
|
ccxt/async_support/btcturk.py,sha256=3zAGyyBqjTTbMhQNijsf5C9I1CdpElWz8B8gOkNYYCM,35676
|
244
244
|
ccxt/async_support/bybit.py,sha256=Jmrox-Fy1_BXkhUTJ3E-jIhe0QnrSvxTn_CECgnn2UQ,355882
|
245
245
|
ccxt/async_support/cex.py,sha256=Y7BhBRl240JStGJc9PeeVWP2Q4ESiQyUtAnPfbd1Vyw,69071
|
246
|
-
ccxt/async_support/coinbase.py,sha256=
|
246
|
+
ccxt/async_support/coinbase.py,sha256=1MdVsicCyCqJkB2lRARRxOgJwtnzZwqw0vm7GlwexR8,145905
|
247
247
|
ccxt/async_support/coinbaseprime.py,sha256=M5Ez1DsFcW3-vJ-4QoZzwYBAKjAAtJnJpkfnV4sWAIc,1233
|
248
248
|
ccxt/async_support/coinbasepro.py,sha256=yfHm6Hx0afMSogFlNLtKPc38YPip1l211285XYewRfk,80611
|
249
249
|
ccxt/async_support/coincheck.py,sha256=5W5TXe7eDAwy1LkuMOB1JE6wzQIQYlZ9orS2ct9uRk4,34833
|
@@ -261,7 +261,7 @@ ccxt/async_support/digifinex.py,sha256=tza4_wKbBQpDKyNXHUYtjA1aSVQC86yo41oV8NQ0W
|
|
261
261
|
ccxt/async_support/exmo.py,sha256=PsAnyAt10JIr9sN0SsMiNOywcxoU6k_kz9qO-U4gv6I,112400
|
262
262
|
ccxt/async_support/flowbtc.py,sha256=bCnvtcNnPxxaxqVjI1GGXKhIpz_1r4GIFWqqPokvCR0,1183
|
263
263
|
ccxt/async_support/fmfwio.py,sha256=lzfSnPrB2ARcC3EIqAuBM4vyg6LJ6n8RE71Zvt3ez1s,1250
|
264
|
-
ccxt/async_support/gate.py,sha256=
|
264
|
+
ccxt/async_support/gate.py,sha256=EqT27DNzq4gf04GHxWDidYmV4MTn3APjyuCjMCNGNN4,295707
|
265
265
|
ccxt/async_support/gateio.py,sha256=6_t032F9p9x5KGTjtSuqGXITzFOx-XAQBYLpsuQjzxw,459
|
266
266
|
ccxt/async_support/gemini.py,sha256=n9DU6a648p32Wfcb6z9hQ8swQFq-BXTWY7dA1BXPUBk,75139
|
267
267
|
ccxt/async_support/hitbtc.py,sha256=03XsnK7JR4mQQZ9G7DhX2Zk7xvE4lb6rpm2jvzLWwqQ,141334
|
@@ -292,7 +292,7 @@ ccxt/async_support/oceanex.py,sha256=fvjFGdRVza2wPzwLCeShmf9ujJfsoSG2mieY-jiPxXU
|
|
292
292
|
ccxt/async_support/okcoin.py,sha256=S06CKWHUzXM8GCRV0RgWzG0IOfPHs6HVYIy4KznHoIo,146080
|
293
293
|
ccxt/async_support/okex.py,sha256=6dbtH4bC1C2x4cQUK6W62y7PuDgO3YazuFa7DYhM4Jw,448
|
294
294
|
ccxt/async_support/okex5.py,sha256=tq41tKx06j3DDO9pu9iKInpjayVprbobVNTK8qb7hoM,455
|
295
|
-
ccxt/async_support/okx.py,sha256=
|
295
|
+
ccxt/async_support/okx.py,sha256=WIAYWedXQKwa8a06yJfS9QFaBQAGFcQPaF9qx_uF6YM,324036
|
296
296
|
ccxt/async_support/p2b.py,sha256=c5EU7roZl3hfIqznpNgl7HtTLtSwb6hNy8b2j31EuV0,54285
|
297
297
|
ccxt/async_support/paymium.py,sha256=ytSECSpo34-Uz_AcKYmcXgfewmymtBEspkHlVyHLPAE,24310
|
298
298
|
ccxt/async_support/phemex.py,sha256=bwvM7vG3aQ4aWYa07LnOyvaopaRS94rXp9dmz6XmQiI,206062
|
@@ -311,7 +311,7 @@ ccxt/async_support/yobit.py,sha256=d9bkNQqL47g7zwt4g_PnhoTQETISVwL8TfhmInvKvkU,5
|
|
311
311
|
ccxt/async_support/zaif.py,sha256=-YCjZLw87m9m-JXxUCr6AEC8KfnNX8b7IVSv5caW3QQ,28158
|
312
312
|
ccxt/async_support/zonda.py,sha256=huZYyfwcqQ6kxkxnkf7CW0nXbYWe6nTWnSJjxy5W3po,80676
|
313
313
|
ccxt/async_support/base/__init__.py,sha256=aVYSsFi--b4InRs9zDN_wtCpj8odosAB726JdUHavrk,67
|
314
|
-
ccxt/async_support/base/exchange.py,sha256=
|
314
|
+
ccxt/async_support/base/exchange.py,sha256=vrMpFdk1e2x5bV9yK88JbjHpiZmVNgzwEY704BRPFiw,70409
|
315
315
|
ccxt/async_support/base/throttler.py,sha256=tvDVcdRUVYi8fZRlEcnqtgzcgB_KMUMRs5Pu8tuU-tU,1847
|
316
316
|
ccxt/async_support/base/ws/__init__.py,sha256=uockzpLuwntKGZbs5EOWFe-Zg-k6Cj7GhNJLc_RX0so,1791
|
317
317
|
ccxt/async_support/base/ws/aiohttp_client.py,sha256=_qjsl_x-rd88QmzQeGVWovMDK0XoD3f4m5GHqxZRajs,5203
|
@@ -325,10 +325,10 @@ ccxt/async_support/base/ws/order_book_side.py,sha256=Pxrq22nCODckJ6G1OXkYEmUunIu
|
|
325
325
|
ccxt/base/__init__.py,sha256=eTx1OE3HJjspFUQjGm6LBhaQiMKJnXjkdP-JUXknyQ0,1320
|
326
326
|
ccxt/base/decimal_to_precision.py,sha256=fgWRBzRTtsf3r2INyS4f7WHlzgjB5YM1ekiwqD21aac,6634
|
327
327
|
ccxt/base/errors.py,sha256=1C38u76jlNGq06N_uwfw8b8FZHK8_3_90wM1rKfU_Rg,3878
|
328
|
-
ccxt/base/exchange.py,sha256=
|
328
|
+
ccxt/base/exchange.py,sha256=_RVP3hfhnh097kKXP3i2LOCWCOn5gDHbzHAUloG6-j0,216767
|
329
329
|
ccxt/base/precise.py,sha256=_xfu54sV0vWNnOfGTKRFykeuWP8mn4K1m9lk1tcllX4,8565
|
330
330
|
ccxt/base/types.py,sha256=LN8MOE5oGr8ATL6VNuMAnE9f6o2fZ9zbeLLyXLndlEk,5528
|
331
|
-
ccxt/pro/__init__.py,sha256=
|
331
|
+
ccxt/pro/__init__.py,sha256=kb3L8CjhVP0JKxPT2LJNfhu3LUzY3jVPT9DmBBQkVLs,6376
|
332
332
|
ccxt/pro/alpaca.py,sha256=fy1mLmw4yac7DKvGPpaqEBuA8briQqaRwPbvKsKUJwY,26974
|
333
333
|
ccxt/pro/ascendex.py,sha256=GqH6QOPZfQtbAYhdB65zJ9iIMQDGsXugSyAPUsKXk40,34730
|
334
334
|
ccxt/pro/bequant.py,sha256=3IeQ0vPg-eVqPiGMfX7yqH9qtXKm1ZqocQDeLwpA8EE,1093
|
@@ -438,7 +438,7 @@ ccxt/test/base/test_ticker.py,sha256=5J8KHgFhJLgcWyFwt3bhJ-tldMho3K7LD5yJnnUyrT4
|
|
438
438
|
ccxt/test/base/test_trade.py,sha256=AN3emAdEPhdFyunap43cKqZTS1cbaShZKTjYue67jEU,2297
|
439
439
|
ccxt/test/base/test_trading_fee.py,sha256=2_WCp3qJ2UpraQQoGFlGJYwHD-T0Bm5W7KIw4zpFvSM,1068
|
440
440
|
ccxt/test/base/test_transaction.py,sha256=BTbB4UHHXkrvYgwbrhh867nVRlevmIkIrz1W_odlQJI,1434
|
441
|
-
ccxt-4.1.
|
442
|
-
ccxt-4.1.
|
443
|
-
ccxt-4.1.
|
444
|
-
ccxt-4.1.
|
441
|
+
ccxt-4.1.77.dist-info/METADATA,sha256=edLZZ1IYKhK3PvedVztO7LpKPyFewmxku5KeJNoMLI0,106139
|
442
|
+
ccxt-4.1.77.dist-info/WHEEL,sha256=P2T-6epvtXQ2cBOE_U1K4_noqlJFN3tj15djMgEu4NM,110
|
443
|
+
ccxt-4.1.77.dist-info/top_level.txt,sha256=CkQDuCTDKNcImPV60t36G6MdYfxsAPNiSaEwifVoVMo,5
|
444
|
+
ccxt-4.1.77.dist-info/RECORD,,
|
File without changes
|
File without changes
|