ccxt 4.3.77__py2.py3-none-any.whl → 4.3.78__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 +0 -1
- ccxt/async_support/bitget.py +1 -0
- ccxt/async_support/bitteam.py +0 -1
- ccxt/async_support/gate.py +2 -2
- ccxt/async_support/kraken.py +9 -9
- ccxt/async_support/kuna.py +0 -1
- ccxt/async_support/vertex.py +6 -4
- ccxt/async_support/woo.py +3 -0
- ccxt/async_support/woofipro.py +3 -0
- ccxt/async_support/xt.py +0 -1
- ccxt/base/exchange.py +56 -36
- ccxt/bingx.py +0 -1
- ccxt/bitget.py +1 -0
- ccxt/bitteam.py +0 -1
- ccxt/gate.py +2 -2
- ccxt/kraken.py +9 -9
- ccxt/kuna.py +0 -1
- ccxt/pro/__init__.py +1 -1
- ccxt/pro/binance.py +1 -1
- ccxt/pro/paradex.py +2 -0
- ccxt/vertex.py +6 -4
- ccxt/woo.py +3 -0
- ccxt/woofipro.py +3 -0
- ccxt/xt.py +0 -1
- {ccxt-4.3.77.dist-info → ccxt-4.3.78.dist-info}/METADATA +4 -4
- {ccxt-4.3.77.dist-info → ccxt-4.3.78.dist-info}/RECORD +32 -32
- {ccxt-4.3.77.dist-info → ccxt-4.3.78.dist-info}/LICENSE.txt +0 -0
- {ccxt-4.3.77.dist-info → ccxt-4.3.78.dist-info}/WHEEL +0 -0
- {ccxt-4.3.77.dist-info → ccxt-4.3.78.dist-info}/top_level.txt +0 -0
ccxt/__init__.py
CHANGED
ccxt/async_support/__init__.py
CHANGED
ccxt/async_support/bingx.py
CHANGED
ccxt/async_support/bitget.py
CHANGED
ccxt/async_support/bitteam.py
CHANGED
ccxt/async_support/gate.py
CHANGED
@@ -3294,8 +3294,8 @@ class gate(Exchange, ImplicitAPI):
|
|
3294
3294
|
side = self.safe_string_2(trade, 'side', 'type', contractSide)
|
3295
3295
|
orderId = self.safe_string(trade, 'order_id')
|
3296
3296
|
feeAmount = self.safe_string(trade, 'fee')
|
3297
|
-
gtFee = self.safe_string(trade, 'gt_fee')
|
3298
|
-
pointFee = self.safe_string(trade, 'point_fee')
|
3297
|
+
gtFee = self.omit_zero(self.safe_string(trade, 'gt_fee'))
|
3298
|
+
pointFee = self.omit_zero(self.safe_string(trade, 'point_fee'))
|
3299
3299
|
fees = []
|
3300
3300
|
if feeAmount is not None:
|
3301
3301
|
feeCurrencyId = self.safe_string(trade, 'fee_currency')
|
ccxt/async_support/kraken.py
CHANGED
@@ -1336,7 +1336,7 @@ class kraken(Exchange, ImplicitAPI):
|
|
1336
1336
|
async def create_market_order_with_cost(self, symbol: str, side: OrderSide, cost: float, params={}):
|
1337
1337
|
"""
|
1338
1338
|
create a market order by providing the symbol, side and cost
|
1339
|
-
:see: https://docs.kraken.com/rest/#tag/Trading/operation/addOrder
|
1339
|
+
:see: https://docs.kraken.com/rest/#tag/Spot-Trading/operation/addOrder
|
1340
1340
|
:param str symbol: unified symbol of the market to create an order in(only USD markets are supported)
|
1341
1341
|
:param str side: 'buy' or 'sell'
|
1342
1342
|
:param float cost: how much you want to trade in units of the quote currency
|
@@ -1351,7 +1351,7 @@ class kraken(Exchange, ImplicitAPI):
|
|
1351
1351
|
async def create_market_buy_order_with_cost(self, symbol: str, cost: float, params={}):
|
1352
1352
|
"""
|
1353
1353
|
create a market buy order by providing the symbol, side and cost
|
1354
|
-
:see: https://docs.kraken.com/rest/#tag/Trading/operation/addOrder
|
1354
|
+
:see: https://docs.kraken.com/rest/#tag/Spot-Trading/operation/addOrder
|
1355
1355
|
:param str symbol: unified symbol of the market to create an order in
|
1356
1356
|
:param float cost: how much you want to trade in units of the quote currency
|
1357
1357
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
@@ -1362,7 +1362,7 @@ class kraken(Exchange, ImplicitAPI):
|
|
1362
1362
|
|
1363
1363
|
async def create_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
|
1364
1364
|
"""
|
1365
|
-
:see: https://docs.kraken.com/rest/#tag/Trading/operation/addOrder
|
1365
|
+
:see: https://docs.kraken.com/rest/#tag/Spot-Trading/operation/addOrder
|
1366
1366
|
create a trade order
|
1367
1367
|
:param str symbol: unified symbol of the market to create an order in
|
1368
1368
|
:param str type: 'market' or 'limit'
|
@@ -1495,6 +1495,8 @@ class kraken(Exchange, ImplicitAPI):
|
|
1495
1495
|
# "status": "ok",
|
1496
1496
|
# "txid": "OAW2BO-7RWEK-PZY5UO",
|
1497
1497
|
# "originaltxid": "OXL6SS-UPNMC-26WBE7",
|
1498
|
+
# "newuserref": 1234,
|
1499
|
+
# "olduserref": 123,
|
1498
1500
|
# "volume": "0.00075000",
|
1499
1501
|
# "price": "13500.0",
|
1500
1502
|
# "orders_cancelled": 1,
|
@@ -1623,7 +1625,7 @@ class kraken(Exchange, ImplicitAPI):
|
|
1623
1625
|
if (id is None) or (id.startswith('[')):
|
1624
1626
|
txid = self.safe_list(order, 'txid')
|
1625
1627
|
id = self.safe_string(txid, 0)
|
1626
|
-
clientOrderId = self.
|
1628
|
+
clientOrderId = self.safe_string_2(order, 'userref', 'newuserref')
|
1627
1629
|
rawTrades = self.safe_value(order, 'trades', [])
|
1628
1630
|
trades = []
|
1629
1631
|
for i in range(0, len(rawTrades)):
|
@@ -1750,7 +1752,7 @@ class kraken(Exchange, ImplicitAPI):
|
|
1750
1752
|
if postOnly:
|
1751
1753
|
extendedPostFlags = flags + ',post' if (flags is not None) else 'post'
|
1752
1754
|
request['oflags'] = extendedPostFlags
|
1753
|
-
if (flags is not None) and (
|
1755
|
+
if (flags is not None) and not ('oflags' in request):
|
1754
1756
|
request['oflags'] = flags
|
1755
1757
|
params = self.omit(params, ['timeInForce', 'reduceOnly', 'stopLossPrice', 'takeProfitPrice', 'trailingAmount', 'trailingLimitAmount', 'offset'])
|
1756
1758
|
return [request, params]
|
@@ -1758,7 +1760,7 @@ class kraken(Exchange, ImplicitAPI):
|
|
1758
1760
|
async def edit_order(self, id: str, symbol: str, type: OrderType, side: OrderSide, amount: Num = None, price: Num = None, params={}):
|
1759
1761
|
"""
|
1760
1762
|
edit a trade order
|
1761
|
-
:see: https://docs.kraken.com/rest/#tag/Trading/operation/editOrder
|
1763
|
+
:see: https://docs.kraken.com/rest/#tag/Spot-Trading/operation/editOrder
|
1762
1764
|
:param str id: order id
|
1763
1765
|
:param str symbol: unified symbol of the market to create an order in
|
1764
1766
|
:param str type: 'market' or 'limit'
|
@@ -1817,15 +1819,13 @@ class kraken(Exchange, ImplicitAPI):
|
|
1817
1819
|
clientOrderId = self.safe_value_2(params, 'userref', 'clientOrderId')
|
1818
1820
|
request: dict = {
|
1819
1821
|
'trades': True, # whether or not to include trades in output(optional, default False)
|
1820
|
-
|
1822
|
+
'txid': id, # do not comma separate a list of ids - use fetchOrdersByIds instead
|
1821
1823
|
# 'userref': 'optional', # restrict results to given user reference id(optional)
|
1822
1824
|
}
|
1823
1825
|
query = params
|
1824
1826
|
if clientOrderId is not None:
|
1825
1827
|
request['userref'] = clientOrderId
|
1826
1828
|
query = self.omit(params, ['userref', 'clientOrderId'])
|
1827
|
-
else:
|
1828
|
-
request['txid'] = id
|
1829
1829
|
response = await self.privatePostQueryOrders(self.extend(request, query))
|
1830
1830
|
#
|
1831
1831
|
# {
|
ccxt/async_support/kuna.py
CHANGED
ccxt/async_support/vertex.py
CHANGED
@@ -658,6 +658,12 @@ class vertex(Exchange, ImplicitAPI):
|
|
658
658
|
amount = None
|
659
659
|
side = None
|
660
660
|
fee = None
|
661
|
+
feeCost = self.convert_from_x18(self.safe_string(trade, 'fee'))
|
662
|
+
if feeCost is not None:
|
663
|
+
fee = {
|
664
|
+
'cost': feeCost,
|
665
|
+
'currency': None,
|
666
|
+
}
|
661
667
|
id = self.safe_string_2(trade, 'trade_id', 'submission_idx')
|
662
668
|
order = self.safe_string(trade, 'digest')
|
663
669
|
timestamp = self.safe_timestamp(trade, 'timestamp')
|
@@ -673,10 +679,6 @@ class vertex(Exchange, ImplicitAPI):
|
|
673
679
|
subOrder = self.safe_dict(trade, 'order', {})
|
674
680
|
price = self.convert_from_x18(self.safe_string(subOrder, 'priceX18'))
|
675
681
|
amount = self.convert_from_x18(self.safe_string(trade, 'base_filled'))
|
676
|
-
fee = {
|
677
|
-
'cost': self.convert_from_x18(self.safe_string(trade, 'fee')),
|
678
|
-
'currency': None,
|
679
|
-
}
|
680
682
|
if Precise.string_lt(amount, '0'):
|
681
683
|
side = 'sell'
|
682
684
|
else:
|
ccxt/async_support/woo.py
CHANGED
@@ -603,6 +603,9 @@ class woo(Exchange, ImplicitAPI):
|
|
603
603
|
amount = self.safe_string(trade, 'executed_quantity')
|
604
604
|
order_id = self.safe_string(trade, 'order_id')
|
605
605
|
fee = self.parse_token_and_fee_temp(trade, 'fee_asset', 'fee')
|
606
|
+
feeCost = self.safe_string(fee, 'cost')
|
607
|
+
if feeCost is not None:
|
608
|
+
fee['cost'] = feeCost
|
606
609
|
cost = Precise.string_mul(price, amount)
|
607
610
|
side = self.safe_string_lower(trade, 'side')
|
608
611
|
id = self.safe_string(trade, 'id')
|
ccxt/async_support/woofipro.py
CHANGED
@@ -673,6 +673,9 @@ class woofipro(Exchange, ImplicitAPI):
|
|
673
673
|
amount = self.safe_string(trade, 'executed_quantity')
|
674
674
|
order_id = self.safe_string(trade, 'order_id')
|
675
675
|
fee = self.parse_token_and_fee_temp(trade, 'fee_asset', 'fee')
|
676
|
+
feeCost = self.safe_string(fee, 'cost')
|
677
|
+
if feeCost is not None:
|
678
|
+
fee['cost'] = feeCost
|
676
679
|
cost = Precise.string_mul(price, amount)
|
677
680
|
side = self.safe_string_lower(trade, 'side')
|
678
681
|
id = self.safe_string(trade, 'id')
|
ccxt/async_support/xt.py
CHANGED
ccxt/base/exchange.py
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
# -----------------------------------------------------------------------------
|
6
6
|
|
7
|
-
__version__ = '4.3.
|
7
|
+
__version__ = '4.3.78'
|
8
8
|
|
9
9
|
# -----------------------------------------------------------------------------
|
10
10
|
|
@@ -3276,40 +3276,53 @@ class Exchange(object):
|
|
3276
3276
|
multiplyPrice = Precise.string_div('1', price)
|
3277
3277
|
multiplyPrice = Precise.string_mul(multiplyPrice, contractSize)
|
3278
3278
|
cost = Precise.string_mul(multiplyPrice, amount)
|
3279
|
-
|
3280
|
-
|
3281
|
-
|
3282
|
-
fees = []
|
3283
|
-
fee = self.safe_value(trade, 'fee')
|
3284
|
-
if shouldParseFees:
|
3285
|
-
reducedFees = self.reduce_fees_by_currency(fees) if self.reduceFees else fees
|
3286
|
-
reducedLength = len(reducedFees)
|
3287
|
-
for i in range(0, reducedLength):
|
3288
|
-
reducedFees[i]['cost'] = self.safe_number(reducedFees[i], 'cost')
|
3289
|
-
if 'rate' in reducedFees[i]:
|
3290
|
-
reducedFees[i]['rate'] = self.safe_number(reducedFees[i], 'rate')
|
3291
|
-
if not parseFee and (reducedLength == 0):
|
3292
|
-
# copy fee to avoid modification by reference
|
3293
|
-
feeCopy = self.deep_extend(fee)
|
3294
|
-
feeCopy['cost'] = self.safe_number(feeCopy, 'cost')
|
3295
|
-
if 'rate' in feeCopy:
|
3296
|
-
feeCopy['rate'] = self.safe_number(feeCopy, 'rate')
|
3297
|
-
reducedFees.append(feeCopy)
|
3298
|
-
if parseFees:
|
3299
|
-
trade['fees'] = reducedFees
|
3300
|
-
if parseFee and (reducedLength == 1):
|
3301
|
-
trade['fee'] = reducedFees[0]
|
3302
|
-
tradeFee = self.safe_value(trade, 'fee')
|
3303
|
-
if tradeFee is not None:
|
3304
|
-
tradeFee['cost'] = self.safe_number(tradeFee, 'cost')
|
3305
|
-
if 'rate' in tradeFee:
|
3306
|
-
tradeFee['rate'] = self.safe_number(tradeFee, 'rate')
|
3307
|
-
trade['fee'] = tradeFee
|
3279
|
+
resultFee, resultFees = self.parsed_fee_and_fees(trade)
|
3280
|
+
trade['fee'] = resultFee
|
3281
|
+
trade['fees'] = resultFees
|
3308
3282
|
trade['amount'] = self.parse_number(amount)
|
3309
3283
|
trade['price'] = self.parse_number(price)
|
3310
3284
|
trade['cost'] = self.parse_number(cost)
|
3311
3285
|
return trade
|
3312
3286
|
|
3287
|
+
def parsed_fee_and_fees(self, container: Any):
|
3288
|
+
fee = self.safe_dict(container, 'fee')
|
3289
|
+
fees = self.safe_list(container, 'fees')
|
3290
|
+
feeDefined = fee is not None
|
3291
|
+
feesDefined = fees is not None
|
3292
|
+
# parsing only if at least one of them is defined
|
3293
|
+
shouldParseFees = (feeDefined or feesDefined)
|
3294
|
+
if shouldParseFees:
|
3295
|
+
if feeDefined:
|
3296
|
+
fee = self.parse_fee_numeric(fee)
|
3297
|
+
if not feesDefined:
|
3298
|
+
# just set it directly, no further processing needed
|
3299
|
+
fees = [fee]
|
3300
|
+
# 'fees' were set, so reparse them
|
3301
|
+
reducedFees = self.reduce_fees_by_currency(fees) if self.reduceFees else fees
|
3302
|
+
reducedLength = len(reducedFees)
|
3303
|
+
for i in range(0, reducedLength):
|
3304
|
+
reducedFees[i] = self.parse_fee_numeric(reducedFees[i])
|
3305
|
+
fees = reducedFees
|
3306
|
+
if reducedLength == 1:
|
3307
|
+
fee = reducedFees[0]
|
3308
|
+
elif reducedLength == 0:
|
3309
|
+
fee = None
|
3310
|
+
# in case `fee & fees` are None, set `fees` array
|
3311
|
+
if fee is None:
|
3312
|
+
fee = {
|
3313
|
+
'cost': None,
|
3314
|
+
'currency': None,
|
3315
|
+
}
|
3316
|
+
if fees is None:
|
3317
|
+
fees = []
|
3318
|
+
return [fee, fees]
|
3319
|
+
|
3320
|
+
def parse_fee_numeric(self, fee: Any):
|
3321
|
+
fee['cost'] = self.safe_number(fee, 'cost') # ensure numeric
|
3322
|
+
if 'rate' in fee:
|
3323
|
+
fee['rate'] = self.safe_number(fee, 'rate')
|
3324
|
+
return fee
|
3325
|
+
|
3313
3326
|
def find_nearest_ceiling(self, arr: List[float], providedValue: float):
|
3314
3327
|
# i.e. findNearestCeiling([10, 30, 50], 23) returns 30
|
3315
3328
|
length = len(arr)
|
@@ -3378,12 +3391,13 @@ class Exchange(object):
|
|
3378
3391
|
reduced = {}
|
3379
3392
|
for i in range(0, len(fees)):
|
3380
3393
|
fee = fees[i]
|
3381
|
-
|
3394
|
+
code = self.safe_string(fee, 'currency')
|
3395
|
+
feeCurrencyCode = code is not code if None else str(i)
|
3382
3396
|
if feeCurrencyCode is not None:
|
3383
3397
|
rate = self.safe_string(fee, 'rate')
|
3384
|
-
cost = self.
|
3385
|
-
if
|
3386
|
-
# omit
|
3398
|
+
cost = self.safe_string(fee, 'cost')
|
3399
|
+
if cost is None:
|
3400
|
+
# omit None cost, does not make sense, however, don't omit '0' costs, still make sense
|
3387
3401
|
continue
|
3388
3402
|
if not (feeCurrencyCode in reduced):
|
3389
3403
|
reduced[feeCurrencyCode] = {}
|
@@ -3392,7 +3406,7 @@ class Exchange(object):
|
|
3392
3406
|
reduced[feeCurrencyCode][rateKey]['cost'] = Precise.string_add(reduced[feeCurrencyCode][rateKey]['cost'], cost)
|
3393
3407
|
else:
|
3394
3408
|
reduced[feeCurrencyCode][rateKey] = {
|
3395
|
-
'currency':
|
3409
|
+
'currency': code,
|
3396
3410
|
'cost': cost,
|
3397
3411
|
}
|
3398
3412
|
if rate is not None:
|
@@ -3424,7 +3438,13 @@ class Exchange(object):
|
|
3424
3438
|
if change is None:
|
3425
3439
|
change = Precise.string_sub(last, open)
|
3426
3440
|
if average is None:
|
3427
|
-
|
3441
|
+
precision = 18
|
3442
|
+
if market is not None and self.is_tick_precision():
|
3443
|
+
marketPrecision = self.safe_dict(market, 'precision')
|
3444
|
+
precisionPrice = self.safe_string(marketPrecision, 'price')
|
3445
|
+
if precisionPrice is not None:
|
3446
|
+
precision = self.precision_from_string(precisionPrice)
|
3447
|
+
average = Precise.string_div(Precise.string_add(last, open), '2', precision)
|
3428
3448
|
if (percentage is None) and (change is not None) and (open is not None) and Precise.string_gt(open, '0'):
|
3429
3449
|
percentage = Precise.string_mul(Precise.string_div(change, open), '100')
|
3430
3450
|
if (change is None) and (percentage is not None) and (open is not None):
|
ccxt/bingx.py
CHANGED
ccxt/bitget.py
CHANGED
ccxt/bitteam.py
CHANGED
ccxt/gate.py
CHANGED
@@ -3293,8 +3293,8 @@ class gate(Exchange, ImplicitAPI):
|
|
3293
3293
|
side = self.safe_string_2(trade, 'side', 'type', contractSide)
|
3294
3294
|
orderId = self.safe_string(trade, 'order_id')
|
3295
3295
|
feeAmount = self.safe_string(trade, 'fee')
|
3296
|
-
gtFee = self.safe_string(trade, 'gt_fee')
|
3297
|
-
pointFee = self.safe_string(trade, 'point_fee')
|
3296
|
+
gtFee = self.omit_zero(self.safe_string(trade, 'gt_fee'))
|
3297
|
+
pointFee = self.omit_zero(self.safe_string(trade, 'point_fee'))
|
3298
3298
|
fees = []
|
3299
3299
|
if feeAmount is not None:
|
3300
3300
|
feeCurrencyId = self.safe_string(trade, 'fee_currency')
|
ccxt/kraken.py
CHANGED
@@ -1336,7 +1336,7 @@ class kraken(Exchange, ImplicitAPI):
|
|
1336
1336
|
def create_market_order_with_cost(self, symbol: str, side: OrderSide, cost: float, params={}):
|
1337
1337
|
"""
|
1338
1338
|
create a market order by providing the symbol, side and cost
|
1339
|
-
:see: https://docs.kraken.com/rest/#tag/Trading/operation/addOrder
|
1339
|
+
:see: https://docs.kraken.com/rest/#tag/Spot-Trading/operation/addOrder
|
1340
1340
|
:param str symbol: unified symbol of the market to create an order in(only USD markets are supported)
|
1341
1341
|
:param str side: 'buy' or 'sell'
|
1342
1342
|
:param float cost: how much you want to trade in units of the quote currency
|
@@ -1351,7 +1351,7 @@ class kraken(Exchange, ImplicitAPI):
|
|
1351
1351
|
def create_market_buy_order_with_cost(self, symbol: str, cost: float, params={}):
|
1352
1352
|
"""
|
1353
1353
|
create a market buy order by providing the symbol, side and cost
|
1354
|
-
:see: https://docs.kraken.com/rest/#tag/Trading/operation/addOrder
|
1354
|
+
:see: https://docs.kraken.com/rest/#tag/Spot-Trading/operation/addOrder
|
1355
1355
|
:param str symbol: unified symbol of the market to create an order in
|
1356
1356
|
:param float cost: how much you want to trade in units of the quote currency
|
1357
1357
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
@@ -1362,7 +1362,7 @@ class kraken(Exchange, ImplicitAPI):
|
|
1362
1362
|
|
1363
1363
|
def create_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
|
1364
1364
|
"""
|
1365
|
-
:see: https://docs.kraken.com/rest/#tag/Trading/operation/addOrder
|
1365
|
+
:see: https://docs.kraken.com/rest/#tag/Spot-Trading/operation/addOrder
|
1366
1366
|
create a trade order
|
1367
1367
|
:param str symbol: unified symbol of the market to create an order in
|
1368
1368
|
:param str type: 'market' or 'limit'
|
@@ -1495,6 +1495,8 @@ class kraken(Exchange, ImplicitAPI):
|
|
1495
1495
|
# "status": "ok",
|
1496
1496
|
# "txid": "OAW2BO-7RWEK-PZY5UO",
|
1497
1497
|
# "originaltxid": "OXL6SS-UPNMC-26WBE7",
|
1498
|
+
# "newuserref": 1234,
|
1499
|
+
# "olduserref": 123,
|
1498
1500
|
# "volume": "0.00075000",
|
1499
1501
|
# "price": "13500.0",
|
1500
1502
|
# "orders_cancelled": 1,
|
@@ -1623,7 +1625,7 @@ class kraken(Exchange, ImplicitAPI):
|
|
1623
1625
|
if (id is None) or (id.startswith('[')):
|
1624
1626
|
txid = self.safe_list(order, 'txid')
|
1625
1627
|
id = self.safe_string(txid, 0)
|
1626
|
-
clientOrderId = self.
|
1628
|
+
clientOrderId = self.safe_string_2(order, 'userref', 'newuserref')
|
1627
1629
|
rawTrades = self.safe_value(order, 'trades', [])
|
1628
1630
|
trades = []
|
1629
1631
|
for i in range(0, len(rawTrades)):
|
@@ -1750,7 +1752,7 @@ class kraken(Exchange, ImplicitAPI):
|
|
1750
1752
|
if postOnly:
|
1751
1753
|
extendedPostFlags = flags + ',post' if (flags is not None) else 'post'
|
1752
1754
|
request['oflags'] = extendedPostFlags
|
1753
|
-
if (flags is not None) and (
|
1755
|
+
if (flags is not None) and not ('oflags' in request):
|
1754
1756
|
request['oflags'] = flags
|
1755
1757
|
params = self.omit(params, ['timeInForce', 'reduceOnly', 'stopLossPrice', 'takeProfitPrice', 'trailingAmount', 'trailingLimitAmount', 'offset'])
|
1756
1758
|
return [request, params]
|
@@ -1758,7 +1760,7 @@ class kraken(Exchange, ImplicitAPI):
|
|
1758
1760
|
def edit_order(self, id: str, symbol: str, type: OrderType, side: OrderSide, amount: Num = None, price: Num = None, params={}):
|
1759
1761
|
"""
|
1760
1762
|
edit a trade order
|
1761
|
-
:see: https://docs.kraken.com/rest/#tag/Trading/operation/editOrder
|
1763
|
+
:see: https://docs.kraken.com/rest/#tag/Spot-Trading/operation/editOrder
|
1762
1764
|
:param str id: order id
|
1763
1765
|
:param str symbol: unified symbol of the market to create an order in
|
1764
1766
|
:param str type: 'market' or 'limit'
|
@@ -1817,15 +1819,13 @@ class kraken(Exchange, ImplicitAPI):
|
|
1817
1819
|
clientOrderId = self.safe_value_2(params, 'userref', 'clientOrderId')
|
1818
1820
|
request: dict = {
|
1819
1821
|
'trades': True, # whether or not to include trades in output(optional, default False)
|
1820
|
-
|
1822
|
+
'txid': id, # do not comma separate a list of ids - use fetchOrdersByIds instead
|
1821
1823
|
# 'userref': 'optional', # restrict results to given user reference id(optional)
|
1822
1824
|
}
|
1823
1825
|
query = params
|
1824
1826
|
if clientOrderId is not None:
|
1825
1827
|
request['userref'] = clientOrderId
|
1826
1828
|
query = self.omit(params, ['userref', 'clientOrderId'])
|
1827
|
-
else:
|
1828
|
-
request['txid'] = id
|
1829
1829
|
response = self.privatePostQueryOrders(self.extend(request, query))
|
1830
1830
|
#
|
1831
1831
|
# {
|
ccxt/kuna.py
CHANGED
ccxt/pro/__init__.py
CHANGED
ccxt/pro/binance.py
CHANGED
@@ -204,7 +204,7 @@ class binance(ccxt.async_support.binance):
|
|
204
204
|
:param dict [params]: exchange specific parameters for the bitmex api endpoint
|
205
205
|
:returns dict: an array of `liquidation structures <https://github.com/ccxt/ccxt/wiki/Manual#liquidation-structure>`
|
206
206
|
"""
|
207
|
-
return self.watch_liquidations_for_symbols([symbol], since, limit, params)
|
207
|
+
return await self.watch_liquidations_for_symbols([symbol], since, limit, params)
|
208
208
|
|
209
209
|
async def watch_liquidations_for_symbols(self, symbols: List[str] = None, since: Int = None, limit: Int = None, params={}) -> List[Liquidation]:
|
210
210
|
"""
|
ccxt/pro/paradex.py
CHANGED
@@ -112,6 +112,7 @@ class paradex(ccxt.async_support.paradex):
|
|
112
112
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
113
113
|
:returns dict: A dictionary of `order book structures <https://docs.ccxt.com/#/?id=order-book-structure>` indexed by market symbols
|
114
114
|
"""
|
115
|
+
await self.load_markets()
|
115
116
|
market = self.market(symbol)
|
116
117
|
messageHash = 'order_book.' + market['id'] + '.snapshot@15@100ms'
|
117
118
|
url = self.urls['api']['ws']
|
@@ -213,6 +214,7 @@ class paradex(ccxt.async_support.paradex):
|
|
213
214
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
214
215
|
:returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
|
215
216
|
"""
|
217
|
+
await self.load_markets()
|
216
218
|
symbols = self.market_symbols(symbols)
|
217
219
|
channel = 'markets_summary'
|
218
220
|
url = self.urls['api']['ws']
|
ccxt/vertex.py
CHANGED
@@ -658,6 +658,12 @@ class vertex(Exchange, ImplicitAPI):
|
|
658
658
|
amount = None
|
659
659
|
side = None
|
660
660
|
fee = None
|
661
|
+
feeCost = self.convert_from_x18(self.safe_string(trade, 'fee'))
|
662
|
+
if feeCost is not None:
|
663
|
+
fee = {
|
664
|
+
'cost': feeCost,
|
665
|
+
'currency': None,
|
666
|
+
}
|
661
667
|
id = self.safe_string_2(trade, 'trade_id', 'submission_idx')
|
662
668
|
order = self.safe_string(trade, 'digest')
|
663
669
|
timestamp = self.safe_timestamp(trade, 'timestamp')
|
@@ -673,10 +679,6 @@ class vertex(Exchange, ImplicitAPI):
|
|
673
679
|
subOrder = self.safe_dict(trade, 'order', {})
|
674
680
|
price = self.convert_from_x18(self.safe_string(subOrder, 'priceX18'))
|
675
681
|
amount = self.convert_from_x18(self.safe_string(trade, 'base_filled'))
|
676
|
-
fee = {
|
677
|
-
'cost': self.convert_from_x18(self.safe_string(trade, 'fee')),
|
678
|
-
'currency': None,
|
679
|
-
}
|
680
682
|
if Precise.string_lt(amount, '0'):
|
681
683
|
side = 'sell'
|
682
684
|
else:
|
ccxt/woo.py
CHANGED
@@ -603,6 +603,9 @@ class woo(Exchange, ImplicitAPI):
|
|
603
603
|
amount = self.safe_string(trade, 'executed_quantity')
|
604
604
|
order_id = self.safe_string(trade, 'order_id')
|
605
605
|
fee = self.parse_token_and_fee_temp(trade, 'fee_asset', 'fee')
|
606
|
+
feeCost = self.safe_string(fee, 'cost')
|
607
|
+
if feeCost is not None:
|
608
|
+
fee['cost'] = feeCost
|
606
609
|
cost = Precise.string_mul(price, amount)
|
607
610
|
side = self.safe_string_lower(trade, 'side')
|
608
611
|
id = self.safe_string(trade, 'id')
|
ccxt/woofipro.py
CHANGED
@@ -673,6 +673,9 @@ class woofipro(Exchange, ImplicitAPI):
|
|
673
673
|
amount = self.safe_string(trade, 'executed_quantity')
|
674
674
|
order_id = self.safe_string(trade, 'order_id')
|
675
675
|
fee = self.parse_token_and_fee_temp(trade, 'fee_asset', 'fee')
|
676
|
+
feeCost = self.safe_string(fee, 'cost')
|
677
|
+
if feeCost is not None:
|
678
|
+
fee['cost'] = feeCost
|
676
679
|
cost = Precise.string_mul(price, amount)
|
677
680
|
side = self.safe_string_lower(trade, 'side')
|
678
681
|
id = self.safe_string(trade, 'id')
|
ccxt/xt.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: ccxt
|
3
|
-
Version: 4.3.
|
3
|
+
Version: 4.3.78
|
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
|
@@ -270,13 +270,13 @@ console.log(version, Object.keys(exchanges));
|
|
270
270
|
|
271
271
|
All-in-one browser bundle (dependencies included), served from a CDN of your choice:
|
272
272
|
|
273
|
-
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.
|
274
|
-
* unpkg: https://unpkg.com/ccxt@4.3.
|
273
|
+
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.78/dist/ccxt.browser.min.js
|
274
|
+
* unpkg: https://unpkg.com/ccxt@4.3.78/dist/ccxt.browser.min.js
|
275
275
|
|
276
276
|
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.
|
277
277
|
|
278
278
|
```HTML
|
279
|
-
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.3.
|
279
|
+
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.3.78/dist/ccxt.browser.min.js"></script>
|
280
280
|
```
|
281
281
|
|
282
282
|
Creates a global `ccxt` object:
|
@@ -1,4 +1,4 @@
|
|
1
|
-
ccxt/__init__.py,sha256=
|
1
|
+
ccxt/__init__.py,sha256=bQokervOh_2VKFrxmeGRdEVLgQvFzgKbHp9FR_quhtw,16417
|
2
2
|
ccxt/ace.py,sha256=Gee4ymA83iAuBFm3J8NaTb7qmu9buV2trA676KCtSVg,42383
|
3
3
|
ccxt/alpaca.py,sha256=HQuhQZSFGRlT-BaCUSEZmxpzYp6tll2zn63qn3gTmoU,47470
|
4
4
|
ccxt/ascendex.py,sha256=4aEwibO_me6khr66z8JFqDBxe2gtFOWIFBE7ulBEJPs,151933
|
@@ -8,7 +8,7 @@ ccxt/binance.py,sha256=nLrtlBJqMwFmXrRE7GqEHVdV8G0tCdQR7xsQLiTrGP4,641536
|
|
8
8
|
ccxt/binancecoinm.py,sha256=arFnEh8mErSyi23eVPWE4iwoT7PWQyxGGVJCKCy6UJY,1702
|
9
9
|
ccxt/binanceus.py,sha256=hdcT4OnadcdFFFjF3GtM0nWv90jqojqwdVS3xWGuW40,9163
|
10
10
|
ccxt/binanceusdm.py,sha256=bAPcJj5HLxoCdPolriM8sJpoTBwbV78vBTbKRmWhNP4,2632
|
11
|
-
ccxt/bingx.py,sha256=
|
11
|
+
ccxt/bingx.py,sha256=dYb2tADqgxTglhSBNypxpd9pkLzekejQ1ISvgy3yeYQ,244207
|
12
12
|
ccxt/bit2c.py,sha256=KwHefm2dfgcSR5LeGbHpFQlSI3LNot8tmDEgRJc2gBc,37061
|
13
13
|
ccxt/bitbank.py,sha256=bHLOW6EAbNsjK2nXCtmxj23f2geW_-E_xfHXAvARMtw,43534
|
14
14
|
ccxt/bitbay.py,sha256=xAIjzGRDVGwoy-Gygd99H0YN4wiaz_0lR0Z14oxaaxc,478
|
@@ -17,7 +17,7 @@ ccxt/bitcoincom.py,sha256=PyWIl4nC4jp5Uba2lI1At0N_hhNyWD0DoZC_MSyL_s4,502
|
|
17
17
|
ccxt/bitfinex.py,sha256=8GoogNrMLM0UZoWkrxXehN8AN77DHxdD3p1aVarLlp4,73440
|
18
18
|
ccxt/bitfinex2.py,sha256=m1PXKkM7tDf-ud-dmyqqYMF942IO3U0Du7AS3iVx-GU,160641
|
19
19
|
ccxt/bitflyer.py,sha256=biQ8-J_HSb9_S6HE1LBDd6BGpIZSMxK5JyTZ3Xg1SdI,41683
|
20
|
-
ccxt/bitget.py,sha256=
|
20
|
+
ccxt/bitget.py,sha256=ZQvtdW3pnv-LVHG3a1UwR72b-K8Fq-BZ-tu_haz-v60,424620
|
21
21
|
ccxt/bithumb.py,sha256=8oTnFWi8Ai9fnm5FPXvNmaUAVJEOqYi-18VC23cWmXY,47935
|
22
22
|
ccxt/bitmart.py,sha256=ZSy0ua1ymOfwrMLkWNrn6elI1c8RhMtTvKfENm_0VwA,211961
|
23
23
|
ccxt/bitmex.py,sha256=oOFatIOxvXIPOdOeeVau-IdryOeYpdCtTPGxX05HA9A,126861
|
@@ -26,7 +26,7 @@ ccxt/bitpanda.py,sha256=aiwPkx9lKbVzt4ggoYdq_mIbMGtg5ZtGl2yRHO5xyz8,471
|
|
26
26
|
ccxt/bitrue.py,sha256=Qy8YKJ0A3TdQv25oyc05wD6FHXBfLDp8GWHAaLDM71c,136636
|
27
27
|
ccxt/bitso.py,sha256=CxUA6JyHHixIngDA-xld1nAqaRdcRN_GnEFh96jp8dk,71542
|
28
28
|
ccxt/bitstamp.py,sha256=9rHhmzcQfYtWvKPFG0f-KeTmrQe_weG1s7dTRcYsPqM,94237
|
29
|
-
ccxt/bitteam.py,sha256=
|
29
|
+
ccxt/bitteam.py,sha256=S5gDVlmAqoK_bOuCUmfyStFAApq2kDxQaUHHDf4byQM,102264
|
30
30
|
ccxt/bitvavo.py,sha256=2TPaTuITm7pd1Hwr0R6Bj_vveDdQ8BCjGN950P1NPDs,91773
|
31
31
|
ccxt/bl3p.py,sha256=9i67YpJBrD-6pocvqq9ZyKjYXoOIwlJKuNHIW_jgmmM,20648
|
32
32
|
ccxt/blockchaincom.py,sha256=hUYegjsT8e-eMRoEUH45l3916HgW00mJh_AOkwxNCCE,48795
|
@@ -56,7 +56,7 @@ ccxt/deribit.py,sha256=hs6yUT8s7sfmO-GJ9RZ9nQC7Y9vnp_2puTRrd9r1Plw,161350
|
|
56
56
|
ccxt/digifinex.py,sha256=pUPM7EEeRFoenX_jzNJM1RNuIUjATy6GB4J2osJJ4bY,169282
|
57
57
|
ccxt/exmo.py,sha256=KlQqGZey31br-SVwhQg6mWIESyeM_wiIKRDOzIekuSs,114638
|
58
58
|
ccxt/fmfwio.py,sha256=RbVLvzPwnqfDsE7Ea-N13ISCC82eJVPsXYjrleASmew,1236
|
59
|
-
ccxt/gate.py,sha256=
|
59
|
+
ccxt/gate.py,sha256=IJjP0zfV_BUdQLR6UxweOyqNkRB83j4YYIWQa0DQmtk,327599
|
60
60
|
ccxt/gateio.py,sha256=86AETJWODl_vA5VNeQRHZprmpNIY1HAxCddKZcnKSi8,445
|
61
61
|
ccxt/gemini.py,sha256=ddoOnPZzu-l899JGVw4b9wwT9HI20mVqLz7iihhZxng,80876
|
62
62
|
ccxt/hitbtc.py,sha256=iqyd0otbWmIHUJiJ6gzIfe34IOa8PCEeS8nG6s6Ogc0,153398
|
@@ -69,11 +69,11 @@ ccxt/hyperliquid.py,sha256=r_xDktfiSdLDbxwkN_vCKSAu4n9uPyKVlWio-ligUms,109612
|
|
69
69
|
ccxt/idex.py,sha256=P2jNsxiwIlMgrfPKbtmjLJQrzFcWp_TjgJaLq793oco,73255
|
70
70
|
ccxt/independentreserve.py,sha256=ChkSnahGsn0aN_cfaAonSk-V2Aa1UB-0cPTa1d3AdI4,37713
|
71
71
|
ccxt/indodax.py,sha256=rFfAwlYalCXdHQvhjmb7Zt4fGYqjoPv_koL21CBv-O8,53431
|
72
|
-
ccxt/kraken.py,sha256=
|
72
|
+
ccxt/kraken.py,sha256=Zv0sz1qtaKe8DlGQpTMdpjhc9Elk4I9ovu7CXFpUfqs,130282
|
73
73
|
ccxt/krakenfutures.py,sha256=2K40RYEqHB2kgo9715eXc8O2SKcZpAb26iRdC70ftts,119521
|
74
74
|
ccxt/kucoin.py,sha256=rwv5bdlaeFAMbo2vYpT3_mX_keeJmz5Nk5HF26Br3vA,226576
|
75
75
|
ccxt/kucoinfutures.py,sha256=Mn9eflwmD_FmTCHYkRvyfxG3SU3Pgv9Hpj-6umYT3h8,124558
|
76
|
-
ccxt/kuna.py,sha256=
|
76
|
+
ccxt/kuna.py,sha256=GnIMk8R_IL84FTUHDNP6jHxd2FKNX9YwfoCXoYG83uA,96157
|
77
77
|
ccxt/latoken.py,sha256=JkfGMFYEQqE_2BG3EHQozelw6yxbHXu1TPebg4a3Cgg,79462
|
78
78
|
ccxt/lbank.py,sha256=Glx9CN_jdQMiUngJLYioxzwDfgFTdusdOfK53_Bg6A8,116045
|
79
79
|
ccxt/luno.py,sha256=mJqzQFX-DneQ6Wo0Dqfc7sG0OVmaPSKAkmRs1pM7Yj8,46191
|
@@ -98,13 +98,13 @@ ccxt/timex.py,sha256=Un10iGNwAHPifpQftyXdUwoqS-10ho6ZIesz2Ts_Iqg,72068
|
|
98
98
|
ccxt/tokocrypto.py,sha256=aV-98hzr75iQO3GEmiUyTNufDqHfoze04Z2Fk195B3Q,123192
|
99
99
|
ccxt/tradeogre.py,sha256=DCxTLjtGW7ADRA-jekCkGAn81-GIgdOAxbJFcBLYOFU,24211
|
100
100
|
ccxt/upbit.py,sha256=W_W8aETJyopwhYfZd2tWvhPvi7BjQ4KSIOdn8nzyWv8,85413
|
101
|
-
ccxt/vertex.py,sha256=
|
101
|
+
ccxt/vertex.py,sha256=YoKnzxhem56C19SckA6yHUPH1bk86PfZ4Z-T01TFygg,121761
|
102
102
|
ccxt/wavesexchange.py,sha256=8KrV-euIdDeARQ-h-T-nTlFJ9hk6TLuwGl8U7Xr_Lgk,114825
|
103
103
|
ccxt/wazirx.py,sha256=LVHNdononi8FrZpT0pYiJoS-NrNi7_uIZ6Qbu8dJRPc,52405
|
104
104
|
ccxt/whitebit.py,sha256=fkM0Clt74bSiOJ_L-CehR2Gkn3v3kZksCQT0JCCG5rs,119340
|
105
|
-
ccxt/woo.py,sha256=
|
106
|
-
ccxt/woofipro.py,sha256
|
107
|
-
ccxt/xt.py,sha256=
|
105
|
+
ccxt/woo.py,sha256=VSW2iQ6t9SCB5GYlRClLfUD468HNW2SOhM6uEo3A_e4,153142
|
106
|
+
ccxt/woofipro.py,sha256=-qGU-7u764-744FvsmqVTvWXsuGxjlNCgJfAj_Yq6PA,115464
|
107
|
+
ccxt/xt.py,sha256=a9f_Oq5KyDdytyCqW15jjXXdHGumbZwCqutt8cbfsPo,202616
|
108
108
|
ccxt/yobit.py,sha256=q1oj-wf0VwNw3U7kC5AOyHRSxWVZO6s8xGscBJiSLhI,54553
|
109
109
|
ccxt/zaif.py,sha256=LgeOsvAo4ShQW1s-RidgUYK4DnRU-Dk0eJG0Ca6M_9U,28862
|
110
110
|
ccxt/zonda.py,sha256=KZfv46H6YsVpTQLSt4BvMiGFQr0WRLmbUpeODVv21O0,81419
|
@@ -218,7 +218,7 @@ ccxt/abstract/xt.py,sha256=JkWvsic3L2O968BCr9H5Wd5NIbRE9aTT2A-9WbAtl0c,27146
|
|
218
218
|
ccxt/abstract/yobit.py,sha256=8ycfCO8ORFly9hc0Aa47sZyX4_ZKPXS9h9yJzI-uQ7Q,1339
|
219
219
|
ccxt/abstract/zaif.py,sha256=m15WHdl3gYy0GOXNZ8NEH8eE7sVh8c0T_ITNuU8vXeU,3935
|
220
220
|
ccxt/abstract/zonda.py,sha256=X-hCW0SdX3YKZWixDyW-O2211M58Rno8kKJ6quY7rw4,7183
|
221
|
-
ccxt/async_support/__init__.py,sha256=
|
221
|
+
ccxt/async_support/__init__.py,sha256=emYlNdNMxVKpXa3e-KxIgOUZdCXClMAOEi1kaDs8zx0,16230
|
222
222
|
ccxt/async_support/ace.py,sha256=zBmLUKH691a2BH1sPzlJPg-uO7lD6Ys92Rv8WSzNtoo,42607
|
223
223
|
ccxt/async_support/alpaca.py,sha256=495vDvdF1IWlsh9QhUnMtkMuINdD0EzeFGlUVqCf8TE,47682
|
224
224
|
ccxt/async_support/ascendex.py,sha256=LK259BdUqU0_STGRH6DmTgaR-7lXqFpZHFVACf2um5c,152721
|
@@ -228,7 +228,7 @@ ccxt/async_support/binance.py,sha256=TG-2Cq3DF93VXoeXV3d_j2lgAW00eyHfXrCOgwb077U
|
|
228
228
|
ccxt/async_support/binancecoinm.py,sha256=yeE73xG5UXD_X3VPul6DMGnV_mgJfWYskpas1BUDdCU,1740
|
229
229
|
ccxt/async_support/binanceus.py,sha256=c-K3Tk7LaRJjmYdCx8vBOqsx01uXrtvt0PC2ekBiD0g,9177
|
230
230
|
ccxt/async_support/binanceusdm.py,sha256=8ugRkx7vyYmn67wdkEEf2f-DFMGAoC4t09usKlPVNyw,2670
|
231
|
-
ccxt/async_support/bingx.py,sha256=
|
231
|
+
ccxt/async_support/bingx.py,sha256=U6ZHlGHPwJDMjitnXE5SOXFnLeKW-_ac-rJ1KdaT798,245477
|
232
232
|
ccxt/async_support/bit2c.py,sha256=1s8GGFqdk9FHfG6-fCmJGePppIpHDHZkjN7u6gPekP8,37273
|
233
233
|
ccxt/async_support/bitbank.py,sha256=To1wSMT8i2bVRZABSXIuB2pyeLhmKkE6CHP4i9LMQQU,43794
|
234
234
|
ccxt/async_support/bitbay.py,sha256=jcaEXi2IhYTva8ezO_SfJhwxEZk7HST4J3NaxD16BQA,492
|
@@ -237,7 +237,7 @@ ccxt/async_support/bitcoincom.py,sha256=RiqwhK3RfxQ_PXTa860fphDCvwA8dalL-_rXlK85
|
|
237
237
|
ccxt/async_support/bitfinex.py,sha256=gypR-TDeWWlamJIjEYwbsEhMQYgu9kqAVvuNxOVWVTo,73880
|
238
238
|
ccxt/async_support/bitfinex2.py,sha256=vTO61ELmw5d8A7xvmINff17pCWpoiIrVnc_RJzVic3M,161375
|
239
239
|
ccxt/async_support/bitflyer.py,sha256=hIrGMxaM78V1i-gHN2FRFAhI2aaLR21mPAoIE33fW70,41991
|
240
|
-
ccxt/async_support/bitget.py,sha256=
|
240
|
+
ccxt/async_support/bitget.py,sha256=JloBQJwLONpLsNjzTxfabc-poDryi3xqwl66UNYi8DU,426244
|
241
241
|
ccxt/async_support/bithumb.py,sha256=Q0Cx_cRKZRfdpBAhQyINm63Qw3M6BRYQRiF0UqYzfis,48214
|
242
242
|
ccxt/async_support/bitmart.py,sha256=sNb0CAnVrxrlO2Htg4DCYJ12ti1eRjqtLczEj-fKM_g,212917
|
243
243
|
ccxt/async_support/bitmex.py,sha256=qSKH_dXDtpY5BUrLUbESI3a3WQhBFrc1ucv1N5GDuIU,127439
|
@@ -246,7 +246,7 @@ ccxt/async_support/bitpanda.py,sha256=2k3URBWrpnh2xHa7JiYenI7_4MW5UeOPGzetlmRkR4
|
|
246
246
|
ccxt/async_support/bitrue.py,sha256=g2wFOSJhHEiBgGYx-mpROhWsqPExMBAS_Gewf1N7U6o,137294
|
247
247
|
ccxt/async_support/bitso.py,sha256=ausf6GEbMrsdX0238fs_u8IEcrGGewVzp4Rb4hRx-rk,71928
|
248
248
|
ccxt/async_support/bitstamp.py,sha256=MuqqoC34QElzhTeQBeMRRU2SRponfzvN2FkVaPMRILA,94737
|
249
|
-
ccxt/async_support/bitteam.py,sha256=
|
249
|
+
ccxt/async_support/bitteam.py,sha256=vPMTVr0bDCd5okV_tFA9gVVW4a5NmsabvEplOm2-uOo,102596
|
250
250
|
ccxt/async_support/bitvavo.py,sha256=t11d0xzRETRJby8donxpDtlUr7NzPMR8E6xckRSviMw,92207
|
251
251
|
ccxt/async_support/bl3p.py,sha256=6K1wuBI0uFjoN0N7V6Bps_jKeNCJUQrsXO9tubuZlyU,20776
|
252
252
|
ccxt/async_support/blockchaincom.py,sha256=h5LUIfI916FbTANFanqUKYpK35aRkIsFSEPkZJGPJAA,49187
|
@@ -276,7 +276,7 @@ ccxt/async_support/deribit.py,sha256=JfdtFswWctlKE_GOjoxFIVKTNq-LUeuVik59MAx-u8s
|
|
276
276
|
ccxt/async_support/digifinex.py,sha256=6fj4RPpxV8ArNSBXm5_y_Mt7fzjYxYOSO8mcxGKXpUU,170252
|
277
277
|
ccxt/async_support/exmo.py,sha256=uVJsy3mfNLpfbY0ndl2EF9hipUylEw8J58J3wCGyyA0,115270
|
278
278
|
ccxt/async_support/fmfwio.py,sha256=lzfSnPrB2ARcC3EIqAuBM4vyg6LJ6n8RE71Zvt3ez1s,1250
|
279
|
-
ccxt/async_support/gate.py,sha256=
|
279
|
+
ccxt/async_support/gate.py,sha256=LS5x5skfemCLaH9LFmVEs6g5oLVV3Uq1XCGMYYQoLy0,329319
|
280
280
|
ccxt/async_support/gateio.py,sha256=6_t032F9p9x5KGTjtSuqGXITzFOx-XAQBYLpsuQjzxw,459
|
281
281
|
ccxt/async_support/gemini.py,sha256=7X5-PE3rPrPycUVXu3FtAcDFjNR3QUwYd6lPRQYQeEw,81389
|
282
282
|
ccxt/async_support/hitbtc.py,sha256=jWmyRAy_wkpEidgjCxU0gWur99YJjYHPjD9CN4vJbUE,154444
|
@@ -289,11 +289,11 @@ ccxt/async_support/hyperliquid.py,sha256=wFj9yXEojlPWK4JT6aOWFI08P9EwkWT9m7Furqi
|
|
289
289
|
ccxt/async_support/idex.py,sha256=UcAvdMc2CP_6E8lET4rmQiIP-RaUfZHSo6pQeA17v-g,73731
|
290
290
|
ccxt/async_support/independentreserve.py,sha256=fCTAQ1U74KOZHIoYbDxzEly1xSgykcYcdpeiJiCEXkU,37991
|
291
291
|
ccxt/async_support/indodax.py,sha256=m6F8bSiEz9c6UQuadeOfC40rnmlAVKkj94C1uvsc9k0,53739
|
292
|
-
ccxt/async_support/kraken.py,sha256=
|
292
|
+
ccxt/async_support/kraken.py,sha256=UUuukP50quWE_oK8AtN7XwTWrntNxumr-hL0JhBrrfw,130932
|
293
293
|
ccxt/async_support/krakenfutures.py,sha256=2r88_rC1cY7t4s8dgeqRUlwNC2NVaagS9wPAEonLAQs,120009
|
294
294
|
ccxt/async_support/kucoin.py,sha256=XAOfLEyRUeHfS3pB5elec6F1M_ryPyaEKZle2rPFZDM,227677
|
295
295
|
ccxt/async_support/kucoinfutures.py,sha256=uy8gNsJOI6SggxhYMH1TSTFM6rlzWvLknZL_KgCDLBE,125196
|
296
|
-
ccxt/async_support/kuna.py,sha256=
|
296
|
+
ccxt/async_support/kuna.py,sha256=QtzLgqgv8mLXECN2drWNVtdvm_vy-bawdxKvozDzbVE,96573
|
297
297
|
ccxt/async_support/latoken.py,sha256=iLypvfxDSW3PGHWLraibz0hBZV4ch5LYH5D24VOnIqk,79938
|
298
298
|
ccxt/async_support/lbank.py,sha256=MeqPjECSmsplCtatu7Ns6sHRwzAGP_6S5MwB2BomnXk,116757
|
299
299
|
ccxt/async_support/luno.py,sha256=F4t6XgboOe688S6bZCEnaF_ZEh_6f1YTqV6wRaddWo0,46529
|
@@ -318,18 +318,18 @@ ccxt/async_support/timex.py,sha256=vRHjqc-6uMgZTY-sFTBApU_QBnrUri8gaHPNw_Na3Jo,7
|
|
318
318
|
ccxt/async_support/tokocrypto.py,sha256=nzJhrGTCTWMbbjI4P_IKfO1O84td8pSssCgZhTqQ7o4,123554
|
319
319
|
ccxt/async_support/tradeogre.py,sha256=A4DEbbRL_g_5WAp7WOB96s08-zgXfGQ9lYZnDX5H1eI,24405
|
320
320
|
ccxt/async_support/upbit.py,sha256=GmhV24xdjd5NSCronYkqLCM8rr_hNdpt4NEDA5jEkLw,85895
|
321
|
-
ccxt/async_support/vertex.py,sha256=
|
321
|
+
ccxt/async_support/vertex.py,sha256=_KDPAVq5Bew-w77wiGQpivZCGRs6yGKoW9HGh8PhOLc,122261
|
322
322
|
ccxt/async_support/wavesexchange.py,sha256=kdF7Nm5a34mtgIj2HWTLuV3plt4K3EBKMpLENIxtoMk,115375
|
323
323
|
ccxt/async_support/wazirx.py,sha256=bnUpw9be3o4l2Hxm3jcfNXn5bMyZlgqoG8BGPusuIzs,52707
|
324
324
|
ccxt/async_support/whitebit.py,sha256=haF5nFYGuJzkplHBIyLLDJ6N3ThIDPpgjeI3S-TYs98,119990
|
325
|
-
ccxt/async_support/woo.py,sha256=
|
326
|
-
ccxt/async_support/woofipro.py,sha256=
|
327
|
-
ccxt/async_support/xt.py,sha256=
|
325
|
+
ccxt/async_support/woo.py,sha256=uaNh3timNm6_DNhiOn5l4Za4wagj4AhlxkDh4Fbhxfk,154110
|
326
|
+
ccxt/async_support/woofipro.py,sha256=wLOSXkKdEqpw4q-9uzM67wFdhWDp0Li1wb8nPHmBwT4,116144
|
327
|
+
ccxt/async_support/xt.py,sha256=_U-r4Gp0oBCOE6Ngo98Sn_Q6tr_81CUDDSliF0FMezE,203770
|
328
328
|
ccxt/async_support/yobit.py,sha256=JuH_yClCl_cd5L-BMTt3MPAvIF61Wpqc3W7H-fno6Hs,54881
|
329
329
|
ccxt/async_support/zaif.py,sha256=-ZTr8M2JaIRCL90VrbCDXBMAsZwbiwsFChSQ2rWODuQ,29044
|
330
330
|
ccxt/async_support/zonda.py,sha256=jncr6Wg12S72CTpu6mCKCse1pm1f8oefVQurQSrFvP0,81733
|
331
331
|
ccxt/async_support/base/__init__.py,sha256=aVYSsFi--b4InRs9zDN_wtCpj8odosAB726JdUHavrk,67
|
332
|
-
ccxt/async_support/base/exchange.py,sha256=
|
332
|
+
ccxt/async_support/base/exchange.py,sha256=MLNPAkDoC9HYLicAqYdXVQEoJ5sxZhDA3SPc3RlnUSo,110799
|
333
333
|
ccxt/async_support/base/throttler.py,sha256=tvDVcdRUVYi8fZRlEcnqtgzcgB_KMUMRs5Pu8tuU-tU,1847
|
334
334
|
ccxt/async_support/base/ws/__init__.py,sha256=uockzpLuwntKGZbs5EOWFe-Zg-k6Cj7GhNJLc_RX0so,1791
|
335
335
|
ccxt/async_support/base/ws/aiohttp_client.py,sha256=5IEiT0elWI9a7Vr-KV0jgmlbpLJWBzIlrLaCkTKGaqY,5752
|
@@ -343,14 +343,14 @@ ccxt/async_support/base/ws/order_book_side.py,sha256=GhnGUt78pJ-AYL_Dq9produGjmB
|
|
343
343
|
ccxt/base/__init__.py,sha256=eTx1OE3HJjspFUQjGm6LBhaQiMKJnXjkdP-JUXknyQ0,1320
|
344
344
|
ccxt/base/decimal_to_precision.py,sha256=fgWRBzRTtsf3r2INyS4f7WHlzgjB5YM1ekiwqD21aac,6634
|
345
345
|
ccxt/base/errors.py,sha256=tosnf1tDaBn4YMCbWVNWyDYzqft-ImVtyjqJb6q83Y4,4369
|
346
|
-
ccxt/base/exchange.py,sha256=
|
346
|
+
ccxt/base/exchange.py,sha256=MCkIeoeCB9Olj1evw0e7nLk5YA9CKoXcQsTNZRPXjgM,295256
|
347
347
|
ccxt/base/precise.py,sha256=koce64Yrp6vFbGijJtUt-QQ6XhJgeGTCksZ871FPp_A,8886
|
348
348
|
ccxt/base/types.py,sha256=TaP_RElKjGEZWuzyp4o4u2YhREyTG3rUeVT6gDffY9A,9613
|
349
|
-
ccxt/pro/__init__.py,sha256=
|
349
|
+
ccxt/pro/__init__.py,sha256=17DdWskQWu59rykFUdivTVzQiFK0eUp0WzO2K1vxO-8,7608
|
350
350
|
ccxt/pro/alpaca.py,sha256=xh1yg1Ok-Zh_Mfx-MBjNrfJDs6MUU0exFfEj3GuQPC4,27631
|
351
351
|
ccxt/pro/ascendex.py,sha256=181FIeztchLqGmgecRJEN8F8xEM45D5aMKhC-5nuNfU,35467
|
352
352
|
ccxt/pro/bequant.py,sha256=33OEUWBi4D9-2w8CmkwN3aF1qS-AlLqX3pxrWwNbXPY,1552
|
353
|
-
ccxt/pro/binance.py,sha256=
|
353
|
+
ccxt/pro/binance.py,sha256=ErqjI0lbFKFj1LFv5C0kDYmFmy8zasJbQvJfHk4pTNk,177358
|
354
354
|
ccxt/pro/binancecoinm.py,sha256=LlgF4rXHHrsQMaklhTEzSiE6U9V25AjHHg_DRat7Mf0,1036
|
355
355
|
ccxt/pro/binanceus.py,sha256=_IXpS_wyH0nEtsLR7cJLtrUlsNQoG0MSUVo3PV0RDDc,1946
|
356
356
|
ccxt/pro/binanceusdm.py,sha256=lLdOv0d-lM-1wfCc_y_POb6GdmVIiX7PFzmKTWsVyNw,1512
|
@@ -405,7 +405,7 @@ ccxt/pro/okx.py,sha256=Fw1vYXvik0E1l_IQ1ATymUtvxk5jXEMV-isVMbXQXQI,84823
|
|
405
405
|
ccxt/pro/onetrading.py,sha256=Qlr6LRRqO8te7QyTIhCk5nXJnupH8MtRWhQnH3Zc9yE,54769
|
406
406
|
ccxt/pro/oxfun.py,sha256=gcmnoD0pzEDVIaiHyuU2ABoQBrxi0CTP62H2xZD0T7g,43943
|
407
407
|
ccxt/pro/p2b.py,sha256=qulHrptdJ48MtOQ0bOZH3h_An8Ybu14cU6cJrySV5KQ,17897
|
408
|
-
ccxt/pro/paradex.py,sha256=
|
408
|
+
ccxt/pro/paradex.py,sha256=9SkO-QV08sGeh5e349hL36u4snxAYuqjdVvJlKgQhH0,14299
|
409
409
|
ccxt/pro/phemex.py,sha256=iwdftOXQIiP_Ns7PHD-5vlL74H5vtPUWOQ1zh7fyuD8,61069
|
410
410
|
ccxt/pro/poloniex.py,sha256=e81Vkvg2oRW51nXECf6lF7Cjj5CbHv7Np2QSy6z0h3k,52108
|
411
411
|
ccxt/pro/poloniexfutures.py,sha256=Iy8Q_Z8I3rUtNcZoxwVzMK2C1qLIiHjFXdZd_rr3Sww,41972
|
@@ -648,8 +648,8 @@ ccxt/test/tests_async.py,sha256=NShOLO2-HzYsh07U7aiUGssiv-AZ_p88h-NuQub9OKU,8468
|
|
648
648
|
ccxt/test/tests_helpers.py,sha256=xhOILoZ_x3RSfQjtKt6AQlkp9DkOtpTQe8GAUUZoM6s,10069
|
649
649
|
ccxt/test/tests_init.py,sha256=eVwwUHujX9t4rjgo4TqEeg7DDhR1Hb_e2SJN8NVGyl0,998
|
650
650
|
ccxt/test/tests_sync.py,sha256=6Arr2TcJpNg9eEpH_JQeBbLzaMPlb94J1P11HGlbpPg,83761
|
651
|
-
ccxt-4.3.
|
652
|
-
ccxt-4.3.
|
653
|
-
ccxt-4.3.
|
654
|
-
ccxt-4.3.
|
655
|
-
ccxt-4.3.
|
651
|
+
ccxt-4.3.78.dist-info/LICENSE.txt,sha256=EIb9221AhMHV7xF1_55STFdKTFsnJVJYkRpY2Lnvo5w,1068
|
652
|
+
ccxt-4.3.78.dist-info/METADATA,sha256=l5vIdXHqkNGS6A1ABXgsVe-_jMajokQTk2GYSgAowx8,116642
|
653
|
+
ccxt-4.3.78.dist-info/WHEEL,sha256=z9j0xAa_JmUKMpmz72K0ZGALSM_n-wQVmGbleXx2VHg,110
|
654
|
+
ccxt-4.3.78.dist-info/top_level.txt,sha256=CkQDuCTDKNcImPV60t36G6MdYfxsAPNiSaEwifVoVMo,5
|
655
|
+
ccxt-4.3.78.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|