ccxt 4.4.93__py2.py3-none-any.whl → 4.4.94__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/okx.py CHANGED
@@ -2556,11 +2556,11 @@ class okx(Exchange, ImplicitAPI):
2556
2556
  # it may be incorrect to use total, free and used for swap accounts
2557
2557
  eq = self.safe_string(balance, 'eq')
2558
2558
  availEq = self.safe_string(balance, 'availEq')
2559
- if (eq is None) or (availEq is None):
2559
+ account['total'] = eq
2560
+ if availEq is None:
2560
2561
  account['free'] = self.safe_string(balance, 'availBal')
2561
2562
  account['used'] = self.safe_string(balance, 'frozenBal')
2562
2563
  else:
2563
- account['total'] = eq
2564
2564
  account['free'] = availEq
2565
2565
  result[code] = account
2566
2566
  result['timestamp'] = timestamp
@@ -2958,7 +2958,8 @@ class okx(Exchange, ImplicitAPI):
2958
2958
  stopLossTriggerPrice = self.safe_value_n(stopLoss, ['triggerPrice', 'stopPrice', 'slTriggerPx'])
2959
2959
  if stopLossTriggerPrice is None:
2960
2960
  raise InvalidOrder(self.id + ' createOrder() requires a trigger price in params["stopLoss"]["triggerPrice"], or params["stopLoss"]["stopPrice"], or params["stopLoss"]["slTriggerPx"] for a stop loss order')
2961
- request['slTriggerPx'] = self.price_to_precision(symbol, stopLossTriggerPrice)
2961
+ slTriggerPx = self.price_to_precision(symbol, stopLossTriggerPrice)
2962
+ request['slTriggerPx'] = slTriggerPx
2962
2963
  stopLossLimitPrice = self.safe_value_n(stopLoss, ['price', 'stopLossPrice', 'slOrdPx'])
2963
2964
  stopLossOrderType = self.safe_string(stopLoss, 'type')
2964
2965
  if stopLossOrderType is not None:
@@ -3024,6 +3025,12 @@ class okx(Exchange, ImplicitAPI):
3024
3025
  # tpOrdKind is 'condition' which is the default
3025
3026
  if twoWayCondition:
3026
3027
  request['ordType'] = 'oco'
3028
+ if side == 'sell':
3029
+ request = self.omit(request, 'tgtCcy')
3030
+ if self.safe_string(request, 'tdMode') == 'cash':
3031
+ # for some reason tdMode = cash throws
3032
+ # {"code":"1","data":[{"algoClOrdId":"","algoId":"","clOrdId":"","sCode":"51000","sMsg":"Parameter tdMode error ","tag":""}],"msg":""}
3033
+ request['tdMode'] = marginMode
3027
3034
  if takeProfitPrice is not None:
3028
3035
  request['tpTriggerPx'] = self.price_to_precision(symbol, takeProfitPrice)
3029
3036
  tpOrdPxReq = '-1'
ccxt/pro/__init__.py CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  # ----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.4.93'
7
+ __version__ = '4.4.94'
8
8
 
9
9
  # ----------------------------------------------------------------------------
10
10
 
ccxt/test/tests_async.py CHANGED
@@ -1173,7 +1173,7 @@ class testMainClass:
1173
1173
  # -----------------------------------------------------------------------------
1174
1174
  # --- Init of brokerId tests functions-----------------------------------------
1175
1175
  # -----------------------------------------------------------------------------
1176
- promises = [self.test_binance(), self.test_okx(), self.test_cryptocom(), self.test_bybit(), self.test_kucoin(), self.test_kucoinfutures(), self.test_bitget(), self.test_mexc(), self.test_htx(), self.test_woo(), self.test_bitmart(), self.test_coinex(), self.test_bingx(), self.test_phemex(), self.test_blofin(), self.test_hyperliquid(), self.test_coinbaseinternational(), self.test_coinbase_advanced(), self.test_woofi_pro(), self.test_oxfun(), self.test_xt(), self.test_vertex(), self.test_paradex(), self.test_hashkey(), self.test_coincatch(), self.test_defx(), self.test_cryptomus(), self.test_derive(), self.test_mode_trade()]
1176
+ promises = [self.test_binance(), self.test_okx(), self.test_cryptocom(), self.test_bybit(), self.test_kucoin(), self.test_kucoinfutures(), self.test_bitget(), self.test_mexc(), self.test_htx(), self.test_woo(), self.test_bitmart(), self.test_coinex(), self.test_bingx(), self.test_phemex(), self.test_blofin(), self.test_coinbaseinternational(), self.test_coinbase_advanced(), self.test_woofi_pro(), self.test_oxfun(), self.test_xt(), self.test_vertex(), self.test_paradex(), self.test_hashkey(), self.test_coincatch(), self.test_defx(), self.test_cryptomus(), self.test_derive(), self.test_mode_trade()]
1177
1177
  await asyncio.gather(*promises)
1178
1178
  success_message = '[' + self.lang + '][TEST_SUCCESS] brokerId tests passed.'
1179
1179
  dump('[INFO]' + success_message)
@@ -1489,20 +1489,22 @@ class testMainClass:
1489
1489
  await close(exchange)
1490
1490
  return True
1491
1491
 
1492
- async def test_hyperliquid(self):
1493
- exchange = self.init_offline_exchange('hyperliquid')
1494
- id = '1'
1495
- request = None
1496
- try:
1497
- await exchange.create_order('SOL/USDC:USDC', 'limit', 'buy', 1, 100)
1498
- except Exception as e:
1499
- request = json_parse(exchange.last_request_body)
1500
- broker_id = str((request['action']['brokerCode']))
1501
- assert broker_id == id, 'hyperliquid - brokerId: ' + broker_id + ' does not start with id: ' + id
1502
- if not is_sync():
1503
- await close(exchange)
1504
- return True
1505
-
1492
+ # async testHyperliquid () {
1493
+ # const exchange = this.initOfflineExchange ('hyperliquid');
1494
+ # const id = '1';
1495
+ # let request = undefined;
1496
+ # try {
1497
+ # await exchange.createOrder ('SOL/USDC:USDC', 'limit', 'buy', 1, 100);
1498
+ # } catch (e) {
1499
+ # request = jsonParse (exchange.last_request_body);
1500
+ # }
1501
+ # const brokerId = (request['action']['brokerCode']).toString ();
1502
+ # assert (brokerId === id, 'hyperliquid - brokerId: ' + brokerId + ' does not start with id: ' + id);
1503
+ # if (!isSync ()) {
1504
+ # await close (exchange);
1505
+ # }
1506
+ # return true;
1507
+ # }
1506
1508
  async def test_coinbaseinternational(self):
1507
1509
  exchange = self.init_offline_exchange('coinbaseinternational')
1508
1510
  exchange.options['portfolio'] = 'random'
ccxt/test/tests_sync.py CHANGED
@@ -1170,7 +1170,7 @@ class testMainClass:
1170
1170
  # -----------------------------------------------------------------------------
1171
1171
  # --- Init of brokerId tests functions-----------------------------------------
1172
1172
  # -----------------------------------------------------------------------------
1173
- promises = [self.test_binance(), self.test_okx(), self.test_cryptocom(), self.test_bybit(), self.test_kucoin(), self.test_kucoinfutures(), self.test_bitget(), self.test_mexc(), self.test_htx(), self.test_woo(), self.test_bitmart(), self.test_coinex(), self.test_bingx(), self.test_phemex(), self.test_blofin(), self.test_hyperliquid(), self.test_coinbaseinternational(), self.test_coinbase_advanced(), self.test_woofi_pro(), self.test_oxfun(), self.test_xt(), self.test_vertex(), self.test_paradex(), self.test_hashkey(), self.test_coincatch(), self.test_defx(), self.test_cryptomus(), self.test_derive(), self.test_mode_trade()]
1173
+ promises = [self.test_binance(), self.test_okx(), self.test_cryptocom(), self.test_bybit(), self.test_kucoin(), self.test_kucoinfutures(), self.test_bitget(), self.test_mexc(), self.test_htx(), self.test_woo(), self.test_bitmart(), self.test_coinex(), self.test_bingx(), self.test_phemex(), self.test_blofin(), self.test_coinbaseinternational(), self.test_coinbase_advanced(), self.test_woofi_pro(), self.test_oxfun(), self.test_xt(), self.test_vertex(), self.test_paradex(), self.test_hashkey(), self.test_coincatch(), self.test_defx(), self.test_cryptomus(), self.test_derive(), self.test_mode_trade()]
1174
1174
  (promises)
1175
1175
  success_message = '[' + self.lang + '][TEST_SUCCESS] brokerId tests passed.'
1176
1176
  dump('[INFO]' + success_message)
@@ -1486,20 +1486,22 @@ class testMainClass:
1486
1486
  close(exchange)
1487
1487
  return True
1488
1488
 
1489
- def test_hyperliquid(self):
1490
- exchange = self.init_offline_exchange('hyperliquid')
1491
- id = '1'
1492
- request = None
1493
- try:
1494
- exchange.create_order('SOL/USDC:USDC', 'limit', 'buy', 1, 100)
1495
- except Exception as e:
1496
- request = json_parse(exchange.last_request_body)
1497
- broker_id = str((request['action']['brokerCode']))
1498
- assert broker_id == id, 'hyperliquid - brokerId: ' + broker_id + ' does not start with id: ' + id
1499
- if not is_sync():
1500
- close(exchange)
1501
- return True
1502
-
1489
+ # testHyperliquid () {
1490
+ # const exchange = this.initOfflineExchange ('hyperliquid');
1491
+ # const id = '1';
1492
+ # let request = undefined;
1493
+ # try {
1494
+ # exchange.createOrder ('SOL/USDC:USDC', 'limit', 'buy', 1, 100);
1495
+ # } catch (e) {
1496
+ # request = jsonParse (exchange.last_request_body);
1497
+ # }
1498
+ # const brokerId = (request['action']['brokerCode']).toString ();
1499
+ # assert (brokerId === id, 'hyperliquid - brokerId: ' + brokerId + ' does not start with id: ' + id);
1500
+ # if (!isSync ()) {
1501
+ # close (exchange);
1502
+ # }
1503
+ # return true;
1504
+ # }
1503
1505
  def test_coinbaseinternational(self):
1504
1506
  exchange = self.init_offline_exchange('coinbaseinternational')
1505
1507
  exchange.options['portfolio'] = 'random'
ccxt/wavesexchange.py CHANGED
@@ -2214,11 +2214,21 @@ class wavesexchange(Exchange, ImplicitAPI):
2214
2214
  order1 = self.safe_value(data, 'order1')
2215
2215
  order2 = self.safe_value(data, 'order2')
2216
2216
  order = None
2217
- # order2 arrived after order1
2217
+ # at first, detect if response is from `fetch_my_trades`
2218
2218
  if self.safe_string(order1, 'senderPublicKey') == self.apiKey:
2219
2219
  order = order1
2220
- else:
2220
+ elif self.safe_string(order2, 'senderPublicKey') == self.apiKey:
2221
2221
  order = order2
2222
+ else:
2223
+ # response is from `fetch_trades`, so find only taker order
2224
+ date1 = self.safe_string(order1, 'timestamp')
2225
+ date2 = self.safe_string(order2, 'timestamp')
2226
+ ts1 = self.parse8601(date1)
2227
+ ts2 = self.parse8601(date2)
2228
+ if ts1 > ts2:
2229
+ order = order1
2230
+ else:
2231
+ order = order2
2222
2232
  symbol = None
2223
2233
  assetPair = self.safe_value(order, 'assetPair')
2224
2234
  if assetPair is not None:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ccxt
3
- Version: 4.4.93
3
+ Version: 4.4.94
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
@@ -269,13 +269,13 @@ console.log(version, Object.keys(exchanges));
269
269
 
270
270
  All-in-one browser bundle (dependencies included), served from a CDN of your choice:
271
271
 
272
- * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.4.93/dist/ccxt.browser.min.js
273
- * unpkg: https://unpkg.com/ccxt@4.4.93/dist/ccxt.browser.min.js
272
+ * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.4.94/dist/ccxt.browser.min.js
273
+ * unpkg: https://unpkg.com/ccxt@4.4.94/dist/ccxt.browser.min.js
274
274
 
275
275
  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.
276
276
 
277
277
  ```HTML
278
- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.4.93/dist/ccxt.browser.min.js"></script>
278
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.4.94/dist/ccxt.browser.min.js"></script>
279
279
  ```
280
280
 
281
281
  Creates a global `ccxt` object:
@@ -1,4 +1,4 @@
1
- ccxt/__init__.py,sha256=ADcxETzdwUPThtX9s0D1cocb-c9onIvprvgSnLCiI2Y,16184
1
+ ccxt/__init__.py,sha256=qrkcRReJnARO4z6e8R6XcdLb2JIjRhIu4DaYOg6nuXg,16184
2
2
  ccxt/alpaca.py,sha256=S-PvXknJDcYUqHZWg4isZKGbTa8oU2G4Z0BqbvObNPI,80687
3
3
  ccxt/apex.py,sha256=zNACpzgcqESJBg73H7gdDoA7ixjDVhCwFRr5hVtcT5g,82680
4
4
  ccxt/ascendex.py,sha256=TRs0A2Odiu9yrog1rNC1Jo01kdmGIvDJWUd4vy3NaDI,158694
@@ -31,9 +31,9 @@ ccxt/btcalpha.py,sha256=zfH2J78nYHj-of0lLWFm7_3uzHoFdtQk6pnxFucSmIc,41323
31
31
  ccxt/btcbox.py,sha256=v0HIZASf4bqqO_vCeGvmPaIxSp3IHs96eXTKmdEKeQg,32617
32
32
  ccxt/btcmarkets.py,sha256=Wi8EctKjcc2WN9VLv0QliIpkyazo5vHaardgZDVa4pY,57446
33
33
  ccxt/btcturk.py,sha256=b8d64i0G6W7vrj0yTHoFfEWUjTyCFFm581hVIOTpwPs,41099
34
- ccxt/bybit.py,sha256=XPKsdtZLw8itseGkDC9tNFm3VrsWtKAyZ9qKWKL3gME,439817
34
+ ccxt/bybit.py,sha256=989cBEMElm1cmhLk0y2rm0mPx_wSEhXJYucqZhynqcs,439867
35
35
  ccxt/cex.py,sha256=hfk5nY0orEM2-benqiKbQvsYXaDSfzzVF_AJ5zLkDkg,75228
36
- ccxt/coinbase.py,sha256=KCXeHooSvZYzkV0qbuUvh7KUZoxV8YyvCLZo8xsJ358,236315
36
+ ccxt/coinbase.py,sha256=3oZJ7kyNOVlxmX9jjBo6Qc9KFbvZB-pf70HwvoyL8Yo,236518
37
37
  ccxt/coinbaseadvanced.py,sha256=Eb1X4_VtdNEu1q0Anr-MzdHG55OhCiZYgdeZv2kFuPg,577
38
38
  ccxt/coinbaseexchange.py,sha256=EWTa3HFTzKwLzXUUVxgHfHWHoy3wOs-xBAgdkIOFpKs,89593
39
39
  ccxt/coinbaseinternational.py,sha256=VH3RCIjvr9Y1FH-qcry92faMAEOzLR67XADKWjLDSV4,100805
@@ -41,7 +41,7 @@ ccxt/coincatch.py,sha256=e2_bRVu46cnnJvo4SUCGztFbyq43xvoA3ulYph2S7ms,244315
41
41
  ccxt/coincheck.py,sha256=c0Ynqa3HnhqCpPjjRc-tOJsLPSM-b4yIzRlRs5cqe_I,39975
42
42
  ccxt/coinex.py,sha256=2IWog856J1MkEwbFWGUBAtiLVycQJEDzk2ddXhEh964,267633
43
43
  ccxt/coinmate.py,sha256=ZbhFH_ALCbB9UpkSFlyh8RP4ZiLH7IbjJGX2PEOtUOs,48773
44
- ccxt/coinmetro.py,sha256=4HKcoDpa_BnDgnM0x47aLmBt-4KxXfSKS8pr1rE3K8k,84504
44
+ ccxt/coinmetro.py,sha256=ZUu-HF4aDu5TK40Brv48bumTQ7_iD39onyVWWhZvfDQ,84999
45
45
  ccxt/coinone.py,sha256=nzJSHoDvUsttXDNdn6Wd1p72Duj9GuRQ1bgqvphryCI,49231
46
46
  ccxt/coinsph.py,sha256=j_9eHDvD1TNRe5c4vmSDruT6XMYf-orPhof6Tn-tVSA,99456
47
47
  ccxt/coinspot.py,sha256=jQsrrLsUbHKpG1fe1lYEed4LNVLG3TJhx49NrkVyN2w,25997
@@ -61,9 +61,9 @@ ccxt/gemini.py,sha256=V46lQwQ5a15YeCcOAOEHCuJQBnDvs_9LkrgTwDdCyxc,83625
61
61
  ccxt/hashkey.py,sha256=oOZOJc9ZM-5FahVomRpk4nfRFnGG2zTRWvGO9CQ2Quw,191237
62
62
  ccxt/hitbtc.py,sha256=glI1oOlmeIwFwBIZQNDKs7VBx6hIZXOuL_LsDkm6roo,159659
63
63
  ccxt/hollaex.py,sha256=h0uplmuLHOWAabORg-5T8LTAr4fCQYtMt__EFKmm9Ks,82514
64
- ccxt/htx.py,sha256=0R4HI7lC37YBoPcF7WqnEG_Cv4LxvURG97B8BJ3n4QI,444057
64
+ ccxt/htx.py,sha256=3L7w6WJyl2MeqjZtrTMaxwfLI4YChyK2t__OHJchaO0,444187
65
65
  ccxt/huobi.py,sha256=rQI8HyRj6Jt9XgJYdTbu4tzu85sv0SWT3rvO_HY8r_E,477
66
- ccxt/hyperliquid.py,sha256=7c08y01V_RDIEmhisn3ZEuve0bYxfsZ61x-WhyJjbjw,152935
66
+ ccxt/hyperliquid.py,sha256=VuFfsu6o4eyMKhycGC4MgBRM1Ge2Y--0fiCOEQN92wE,157708
67
67
  ccxt/independentreserve.py,sha256=4kg2DbElwd39vDP_39tIjRMj4uT2E7Rm6HIxnTfcux0,43214
68
68
  ccxt/indodax.py,sha256=mnOPkrLScNIQ9CFkFY126OHgnLf2pCdnxaILPvFiwPc,57739
69
69
  ccxt/kraken.py,sha256=Hod4OtZav3g4sT1v6UqRJYENGUtBNaIqvvGt4uQjZkE,148523
@@ -81,7 +81,7 @@ ccxt/ndax.py,sha256=lnfDM_ogPiR5E9SL4iKt9iCeVbeTp8EUrM2N6J0_vM4,113853
81
81
  ccxt/novadax.py,sha256=8K6mKIBY5KyyunyBsYJEosfkr2yDrPVgJfFUpET242k,67583
82
82
  ccxt/oceanex.py,sha256=YhvVgresX7nm8sFxD8Yr5pQI5IzuuRllW-JdA9RkDSM,44195
83
83
  ccxt/okcoin.py,sha256=KbBkeYpv64SK2e9gyeaseY82DyIemAtfMrNBDaQmTOU,153941
84
- ccxt/okx.py,sha256=2EMHEKz6xpDOOF01cxLe8G4YR9mNd8pFVlzwYqqpc1w,406479
84
+ ccxt/okx.py,sha256=DXA_ggfu2f_AVlRzwr9scSh2Ov7NP2XnWDcx5bovxI8,406900
85
85
  ccxt/okxus.py,sha256=luEXOXlnV3UAmoZ_y8_7OGMxC3KyxLvy_8qI7Dc8F-g,1773
86
86
  ccxt/onetrading.py,sha256=sWvLW8q4yqJ4qGFZgp14tMt8_SYrV8fkrEstir8Y-3Y,76492
87
87
  ccxt/oxfun.py,sha256=j7X5i6v1pMnQS6TnrVl-m2u8RgCKyw9C584_Gdh1th4,124422
@@ -96,7 +96,7 @@ ccxt/tokocrypto.py,sha256=hmCMf7f3Z0tM6Ipnj7RrQDHvuKB7wKBhfSqD4ePsNiI,126321
96
96
  ccxt/tradeogre.py,sha256=i68uZmc48YRF6P1hDMsS_komPv0EeK0P0Yp9Fpn57Mw,32266
97
97
  ccxt/upbit.py,sha256=TsJvjpQel1SdbIndCGLtWrYoLjnWWO7UqU4ad-6b6Cc,100174
98
98
  ccxt/vertex.py,sha256=HNtOU7vCfipCb_wTZ3mqpY3iKpj1KmGYGZfDKMZuaJ4,129175
99
- ccxt/wavesexchange.py,sha256=Syfi1W5yLpcu0Pe4MPhpJ9lWm1TRLfzUNdofTQDF7KA,119634
99
+ ccxt/wavesexchange.py,sha256=dj3aNKZDM9MKMhqTRGQLLqbzNIRDxfBYP2_Lenf32OI,120108
100
100
  ccxt/whitebit.py,sha256=Jha9cextM4ooJ32nw7GzhDkxeIbZxHka-hpJnyQJfps,151949
101
101
  ccxt/woo.py,sha256=PM8l_etpft3HGXaY3K0y8CJ4-ldcSJ-nByYiOoQZbi0,161374
102
102
  ccxt/woofipro.py,sha256=luPx1botnkvL9DNq41yBIACiWOetwwSvoOiWcBT5_MU,121388
@@ -210,7 +210,7 @@ ccxt/abstract/xt.py,sha256=n3eX1cItL_J0j8prOViV-C_tRwIFv_GO8JTvZZw8jv8,27837
210
210
  ccxt/abstract/yobit.py,sha256=8ycfCO8ORFly9hc0Aa47sZyX4_ZKPXS9h9yJzI-uQ7Q,1339
211
211
  ccxt/abstract/zaif.py,sha256=m15WHdl3gYy0GOXNZ8NEH8eE7sVh8c0T_ITNuU8vXeU,3935
212
212
  ccxt/abstract/zonda.py,sha256=X-hCW0SdX3YKZWixDyW-O2211M58Rno8kKJ6quY7rw4,7183
213
- ccxt/async_support/__init__.py,sha256=IlTU_q9NxeHMk5oi5nTXUm5Lw35EMJ9gMAmxRmuwUD4,15957
213
+ ccxt/async_support/__init__.py,sha256=leUJfmaQBSxP53uYkUP9-YIGtcLiQrHTLBSyRc6Bf90,15957
214
214
  ccxt/async_support/alpaca.py,sha256=Tag0HpHxho_qrXoQ8rjZBVJZj9T38qg8g-mZR39_m18,81133
215
215
  ccxt/async_support/apex.py,sha256=Lf740Qrx0kRb2fVZWS0FwZeysyMz65IEFD66jzn-NfA,83168
216
216
  ccxt/async_support/ascendex.py,sha256=BWb_JpesfM8mRvkZ1QnCg5SGawTpeZEw0aVYNlstDno,159531
@@ -243,9 +243,9 @@ ccxt/async_support/btcalpha.py,sha256=yPdYrvg6xk5w2A7WTyABPxfKVohNjUc3QYLJD3tGn1
243
243
  ccxt/async_support/btcbox.py,sha256=LQESzuVcGVbuCIBUd-gx-yEkQxk3BkEPGYS3JqcBOls,32873
244
244
  ccxt/async_support/btcmarkets.py,sha256=Hyl6g0n86vkfFeA74hPiOWyf0Gy-jP3IFd3viliaTwk,57796
245
245
  ccxt/async_support/btcturk.py,sha256=hnvcz2VixRaUTK9qG14yuvI8ime5GykDnd8C539UHow,41317
246
- ccxt/async_support/bybit.py,sha256=wvigNEv6iQyyEZFnc0w4R1SLLVK5R3MKBbaN59WFb1s,441655
246
+ ccxt/async_support/bybit.py,sha256=6jrgTcvjwnhK6uHz7iNEBjPiL0MAhFStxDhmeXFLKLI,441705
247
247
  ccxt/async_support/cex.py,sha256=JGYkLVxmT2YLMN3FhPGu2uYXNDYjLqocl0LAEU5Ln98,75700
248
- ccxt/async_support/coinbase.py,sha256=F6tJV3Yl0UEnEaaXLjd_CitOQYJaXP5p0eZrE2eM1ps,237576
248
+ ccxt/async_support/coinbase.py,sha256=obEy6Oa7TwoSZdiiNvZEgALiK-B7F8QbBV8UN4qVUSc,237779
249
249
  ccxt/async_support/coinbaseadvanced.py,sha256=TnsUS2r5fvHIEfQmJh7J6Muyg8tPqDJphKYmK7gUQGE,591
250
250
  ccxt/async_support/coinbaseexchange.py,sha256=__Jy-Uerva5hCS2c6lmEgKxRb8JhxryQMugOLgH8aOw,90099
251
251
  ccxt/async_support/coinbaseinternational.py,sha256=0wTE9n8B_GOeHOH0CdA_2hnhe0abqx7Wwk4roaotE0Y,101419
@@ -253,7 +253,7 @@ ccxt/async_support/coincatch.py,sha256=2_qdmOvJo-T65OGW3LKIpYm2H2eBP7T1y6BiIJBZn
253
253
  ccxt/async_support/coincheck.py,sha256=rONaOxXDF5scpONv_YKyloPom_50tNSKkQOvT1izDMs,40181
254
254
  ccxt/async_support/coinex.py,sha256=rKjhOk0bRSh2r-RuEf-mneByxwJVl9qHvVILtAbJuZA,268921
255
255
  ccxt/async_support/coinmate.py,sha256=iC1zJju22iTcFtrQKFSsOyPkgTFQkUDa_2FWOOH029w,49039
256
- ccxt/async_support/coinmetro.py,sha256=RkkaJ7-apWSr5I9iHBc4samaqf28eWhPmIGaCB0zxyI,84824
256
+ ccxt/async_support/coinmetro.py,sha256=SfpKdBVnR8xVwuVnGvfdghnzRqz1f9XsA86i-lhWjSE,85345
257
257
  ccxt/async_support/coinone.py,sha256=nNNpMSRHFz8pQEkHcEIj9GHNHsnlWhwk_ZauMmAIePI,49473
258
258
  ccxt/async_support/coinsph.py,sha256=zHsKdCq_EMNfqlO68i-uop_ctXmwfbfUcQ_4yGmmQeI,99902
259
259
  ccxt/async_support/coinspot.py,sha256=TpccNE4N4g2lVcPPVzDVR5P2rD8TxqYXzpmNqpxRulQ,26155
@@ -273,9 +273,9 @@ ccxt/async_support/gemini.py,sha256=-6EoDaH5Ybs37lXoatifP3A39mrppJPOrS7y2NrMA-E,
273
273
  ccxt/async_support/hashkey.py,sha256=Bmts-K34h47pTTtzGtIst4tK9bK5Nup_cTS8X_qqtb4,192079
274
274
  ccxt/async_support/hitbtc.py,sha256=gZ8_Gso14v-RNPuufqOkqpeAId58KtAnumVbWgq3ZdA,160723
275
275
  ccxt/async_support/hollaex.py,sha256=FlbwoouClCNOqGPNeruR71TgmuK9zE6T4VU8uY8fAnA,82954
276
- ccxt/async_support/htx.py,sha256=YfqhOPuVmuIfhZrKJXHiES1mj5P8dtOL_O7GNZooxkc,446467
276
+ ccxt/async_support/htx.py,sha256=dcaWw469hmIkUX30NpZCT073qYmapefzroqdVjMUXrQ,446597
277
277
  ccxt/async_support/huobi.py,sha256=D4CTKw-2sl7iiX3yh7hMMkhBXHvQQ3to9_tW4WKm0rA,491
278
- ccxt/async_support/hyperliquid.py,sha256=hLLyAm_FkBD1UbYYFn2YCOIi7g80Ur1Mvztyoakk-ms,153713
278
+ ccxt/async_support/hyperliquid.py,sha256=QpIt_CY1-N-7XSDlJKIE3VD2iZtKYTUnKjEzT5w03fU,158522
279
279
  ccxt/async_support/independentreserve.py,sha256=HvAj_2WG3lKNy5R2vDmV32frQbsOb3TSvg7QHZ8E8So,43512
280
280
  ccxt/async_support/indodax.py,sha256=JssbOrL5Xy5MVgwtv9nbKPelmgOS9IMAniyZ5D5d6Lc,58047
281
281
  ccxt/async_support/kraken.py,sha256=HUMfF56ciJ7xOHVt6tiu04ysS6dufxubXpUx2_qHYHw,149205
@@ -293,7 +293,7 @@ ccxt/async_support/ndax.py,sha256=UPHLwLNELb-CU4uSpxemsH3S4ZhosLmUwUwl1IYrCmA,11
293
293
  ccxt/async_support/novadax.py,sha256=QIFIoZdkkq2odkX7V0wGn9ytgtzEDOTr4MnFGlgnKEk,67951
294
294
  ccxt/async_support/oceanex.py,sha256=_vi8sI3aucMmMPXwqqrpdfnWWHpfLYN_QaBpo2s9zvg,44533
295
295
  ccxt/async_support/okcoin.py,sha256=FTaJSgrg68t78PDy7n2Dzz4w_vYK65aLTTlhr6aqSKs,154465
296
- ccxt/async_support/okx.py,sha256=9CcVfdCtM_J0jyllMHa4sA_k20mkF-A7TNMQ0NmbGfs,408198
296
+ ccxt/async_support/okx.py,sha256=Q1SrTpdM1o3uYhcCqd_tGg4pYrEKaTlNM2SH_JDPzfM,408619
297
297
  ccxt/async_support/okxus.py,sha256=MuQ7TqH1CIKec_Z11O7hbz5bRCDzqW51fy1tZoZ1_DI,1787
298
298
  ccxt/async_support/onetrading.py,sha256=feDyVyi8JEVENCoe2rISM25CbpJeYtQDIrh65IGw5eU,76848
299
299
  ccxt/async_support/oxfun.py,sha256=Omz6V_qxRLx0RbDQMC5ytvAviTMKCWsJ_iJFGgnoaX8,124984
@@ -308,7 +308,7 @@ ccxt/async_support/tokocrypto.py,sha256=DcUSa9PEsk9UGVFQbsWLXVAN8mL-3B1s4IBiSCC2
308
308
  ccxt/async_support/tradeogre.py,sha256=LY6rpeBKLvvpm_jLoW5J_XXh5c-ona6Es9SvzOyB2uo,32508
309
309
  ccxt/async_support/upbit.py,sha256=YQArmebWn7_txLpKl19KztG7EurMuHM-8sIMfTLwCSc,100692
310
310
  ccxt/async_support/vertex.py,sha256=7AXt95aSiRwHda-xi8LN9BE7XvRZKw9dVTV_C1OwZ7M,129693
311
- ccxt/async_support/wavesexchange.py,sha256=hUuCCBhpBraqWxFXmTfhjV51oUSRQQ0W4dR6xUNleKw,120184
311
+ ccxt/async_support/wavesexchange.py,sha256=HmOY-u01iVzgb2-PDLjQ2284J7McdkMfZpx__fBxkQ0,120658
312
312
  ccxt/async_support/whitebit.py,sha256=XzyO4wtQVj-KTNc6ScKUvPwN3UzpIRZq_3Ip66sOkLs,152773
313
313
  ccxt/async_support/woo.py,sha256=_19j6IuuujHk7LTOX0WviVVwjkk487VJVJ76JCWVsXs,162386
314
314
  ccxt/async_support/woofipro.py,sha256=8nQdmgcA_plM2r3-hadxIRVusde7q9mTPF1cv_xrllY,122112
@@ -317,7 +317,7 @@ ccxt/async_support/yobit.py,sha256=B2T9UXo0ke-YyXxNW9avOPJ8cReVGXWD9OpkORI9ZSU,5
317
317
  ccxt/async_support/zaif.py,sha256=jZZv3ZjGQgkPNRfY5B5p5DNMvanHWTTS8m6BLBWm9tA,31357
318
318
  ccxt/async_support/zonda.py,sha256=2QL_B9CmBu4SU4K-Y8segpj57vzAd4aUT2H2cD3b07g,85320
319
319
  ccxt/async_support/base/__init__.py,sha256=aVYSsFi--b4InRs9zDN_wtCpj8odosAB726JdUHavrk,67
320
- ccxt/async_support/base/exchange.py,sha256=WRCIHpPMqJ4UpcL4x534QQWA1Bo4RFS1xJitRjKFViw,119440
320
+ ccxt/async_support/base/exchange.py,sha256=Z9NwTqOgxX_ZbS_RhtiRlLojF9sY4xOXTmwyXRjXVc0,119440
321
321
  ccxt/async_support/base/throttler.py,sha256=tvDVcdRUVYi8fZRlEcnqtgzcgB_KMUMRs5Pu8tuU-tU,1847
322
322
  ccxt/async_support/base/ws/__init__.py,sha256=uockzpLuwntKGZbs5EOWFe-Zg-k6Cj7GhNJLc_RX0so,1791
323
323
  ccxt/async_support/base/ws/cache.py,sha256=xf2VOtfUwloxSlIQ39M1RGZHWQzyS9IGhB5NX6cDcAc,8370
@@ -329,10 +329,10 @@ ccxt/async_support/base/ws/order_book_side.py,sha256=GhnGUt78pJ-AYL_Dq9produGjmB
329
329
  ccxt/base/__init__.py,sha256=eTx1OE3HJjspFUQjGm6LBhaQiMKJnXjkdP-JUXknyQ0,1320
330
330
  ccxt/base/decimal_to_precision.py,sha256=fgWRBzRTtsf3r2INyS4f7WHlzgjB5YM1ekiwqD21aac,6634
331
331
  ccxt/base/errors.py,sha256=MvCrL_sAM3de616T6RE0PSxiF2xV6Qqz5b1y1ghidbk,4888
332
- ccxt/base/exchange.py,sha256=64LNTmAxXu8gUG6n4pwCNjTmVZmV0otj7ceWXRB3G6o,330373
332
+ ccxt/base/exchange.py,sha256=ygC1Ymk0Jd6SUwnCS8Eq0ZaPyYBLyG5iXWNJyrMuhNQ,331662
333
333
  ccxt/base/precise.py,sha256=koce64Yrp6vFbGijJtUt-QQ6XhJgeGTCksZ871FPp_A,8886
334
334
  ccxt/base/types.py,sha256=vMQfFDVntED4YHrRJt0Q98YaM7OtGhK-DkbkqXFTYHc,11485
335
- ccxt/pro/__init__.py,sha256=eIjy2lRxsG2MCW55K2n9WhpCbDKkGBRc5JQyPyE-KIM,11381
335
+ ccxt/pro/__init__.py,sha256=60vZhOHv2jhyWF4bhK_nGvYqCK6aIfVhuMDjg-I911Y,11381
336
336
  ccxt/pro/alpaca.py,sha256=_WEorh5thYhvhn7R8hBvHW2m1P2foIbp8URjIt_9vcg,27623
337
337
  ccxt/pro/apex.py,sha256=fiKLT2R4vSCtTBXtXOgw_rJc6jPGINrpEJagzfvlL9c,42004
338
338
  ccxt/pro/ascendex.py,sha256=aSbIEzJ0Og_Nc5UGTYj3DVjGfIJ0-q0DdXSWJcQCKb4,37512
@@ -633,12 +633,12 @@ ccxt/static_dependencies/toolz/curried/operator.py,sha256=ML92mknkAwzBl2NCm-4wer
633
633
  ccxt/static_dependencies/typing_inspect/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
634
634
  ccxt/static_dependencies/typing_inspect/typing_inspect.py,sha256=5gIWomLPfuDpgd3gX1GlnX0MuXM3VorR4j2W2qXORiQ,28269
635
635
  ccxt/test/__init__.py,sha256=GKPbEcj0Rrz5HG-GUm-iY1IHhDYmlvcBXZAGk6-m2CI,141
636
- ccxt/test/tests_async.py,sha256=eRqVzaBGt3NGNbWs6HS85x_fNARypXYtaxDe3h-U0jc,94696
636
+ ccxt/test/tests_async.py,sha256=9XUjQjyqfDwv6BpbRJkkJw_qlqpLxvhjpU8W4U6fUHo,94756
637
637
  ccxt/test/tests_helpers.py,sha256=egM69A2ZFYeVF5hwC1Qt-c5DOeClY5bv4jowmceeFV8,9736
638
638
  ccxt/test/tests_init.py,sha256=qM0-Gb0h0p6CANWTkyYZI7wl-iYOcrPur7aj_OKh7m0,1212
639
- ccxt/test/tests_sync.py,sha256=rlvVBtTTdQ92rof64feV-BQX3x1nzIE4HNcxUCF17O0,93656
640
- ccxt-4.4.93.dist-info/LICENSE.txt,sha256=EIb9221AhMHV7xF1_55STFdKTFsnJVJYkRpY2Lnvo5w,1068
641
- ccxt-4.4.93.dist-info/METADATA,sha256=0cAagy7XLsySi4vbmCHipJqOVOYHHeYjBOoBpbgJQUE,131613
642
- ccxt-4.4.93.dist-info/WHEEL,sha256=Kh9pAotZVRFj97E15yTA4iADqXdQfIVTHcNaZTjxeGM,110
643
- ccxt-4.4.93.dist-info/top_level.txt,sha256=CkQDuCTDKNcImPV60t36G6MdYfxsAPNiSaEwifVoVMo,5
644
- ccxt-4.4.93.dist-info/RECORD,,
639
+ ccxt/test/tests_sync.py,sha256=JK799vTDcyHn1HKxJPcIc1Al2YfzMyHyzNTxqBCmwFg,93716
640
+ ccxt-4.4.94.dist-info/LICENSE.txt,sha256=EIb9221AhMHV7xF1_55STFdKTFsnJVJYkRpY2Lnvo5w,1068
641
+ ccxt-4.4.94.dist-info/METADATA,sha256=liTnQH6wM93aQj9-tmiz32UVyX8tZ5e8vcKXkV7xYsE,131613
642
+ ccxt-4.4.94.dist-info/WHEEL,sha256=Kh9pAotZVRFj97E15yTA4iADqXdQfIVTHcNaZTjxeGM,110
643
+ ccxt-4.4.94.dist-info/top_level.txt,sha256=CkQDuCTDKNcImPV60t36G6MdYfxsAPNiSaEwifVoVMo,5
644
+ ccxt-4.4.94.dist-info/RECORD,,
File without changes