ccxt 4.3.7__py2.py3-none-any.whl → 4.3.9__py2.py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of ccxt might be problematic. Click here for more details.

ccxt/coinmetro.py CHANGED
@@ -171,6 +171,7 @@ class coinmetro(Exchange, ImplicitAPI):
171
171
  'private': {
172
172
  'get': {
173
173
  'users/balances': 1,
174
+ 'users/wallets': 1,
174
175
  'users/wallets/history/{since}': 1.67,
175
176
  'exchange/orders/status/{orderID}': 1,
176
177
  'exchange/orders/active': 1,
@@ -910,49 +911,48 @@ class coinmetro(Exchange, ImplicitAPI):
910
911
  def fetch_balance(self, params={}) -> Balances:
911
912
  """
912
913
  query for balance and get the amount of funds available for trading or funds locked in orders
913
- :see: https://documenter.getpostman.com/view/3653795/SVfWN6KS#698ae067-43dd-4e19-a0ac-d9ba91381816
914
+ :see: https://documenter.getpostman.com/view/3653795/SVfWN6KS#741a1dcc-7307-40d0-acca-28d003d1506a
914
915
  :param dict [params]: extra parameters specific to the exchange API endpoint
915
916
  :returns dict: a `balance structure <https://docs.ccxt.com/#/?id=balance-structure>`
916
917
  """
917
918
  self.load_markets()
918
- response = self.privateGetUsersBalances(params)
919
- return self.parse_balance(response)
919
+ response = self.privateGetUsersWallets(params)
920
+ list = self.safe_list(response, 'list', [])
921
+ return self.parse_balance(list)
920
922
 
921
- def parse_balance(self, response) -> Balances:
923
+ def parse_balance(self, balances) -> Balances:
922
924
  #
923
- # {
924
- # "USDC": {
925
- # "USDC": 99,
926
- # "EUR": 91.16,
927
- # "BTC": 0.002334
928
- # },
929
- # "XCM": {
930
- # "XCM": 0,
931
- # "EUR": 0,
932
- # "BTC": 0
933
- # },
934
- # "TOTAL": {
935
- # "EUR": 91.16,
936
- # "BTC": 0.002334
925
+ # [
926
+ # {
927
+ # "xcmLocks": [],
928
+ # "xcmLockAmounts": [],
929
+ # "refList": [],
930
+ # "balanceHistory": [],
931
+ # "_id": "5fecd3c998e75c2e4d63f7c3",
932
+ # "currency": "BTC",
933
+ # "label": "BTC",
934
+ # "userId": "5fecd3c97fbfed1521db23bd",
935
+ # "__v": 0,
936
+ # "balance": 0.5,
937
+ # "createdAt": "2020-12-30T19:23:53.646Z",
938
+ # "disabled": False,
939
+ # "updatedAt": "2020-12-30T19:23:53.653Z",
940
+ # "reserved": 0,
941
+ # "id": "5fecd3c998e75c2e4d63f7c3"
937
942
  # },
938
- # "REF": {
939
- # "XCM": 0,
940
- # "EUR": 0,
941
- # "BTC": 0
942
- # }
943
- # }
943
+ # ...
944
+ # ]
944
945
  #
945
946
  result = {
946
- 'info': response,
947
+ 'info': balances,
947
948
  }
948
- balances = self.omit(response, ['TOTAL', 'REF'])
949
- currencyIds = list(balances.keys())
950
- for i in range(0, len(currencyIds)):
951
- currencyId = currencyIds[i]
949
+ for i in range(0, len(balances)):
950
+ balanceEntry = self.safe_dict(balances, i, {})
951
+ currencyId = self.safe_string(balanceEntry, 'currency')
952
952
  code = self.safe_currency_code(currencyId)
953
953
  account = self.account()
954
- currency = self.safe_value(balances, currencyId, {})
955
- account['total'] = self.safe_string(currency, currencyId)
954
+ account['total'] = self.safe_string(balanceEntry, 'balance')
955
+ account['used'] = self.safe_string(balanceEntry, 'reserved')
956
956
  result[code] = account
957
957
  return self.safe_balance(result)
958
958
 
ccxt/okx.py CHANGED
@@ -2547,6 +2547,8 @@ class okx(Exchange, ImplicitAPI):
2547
2547
  takeProfitDefined = (takeProfit is not None)
2548
2548
  trailingPercent = self.safe_string_2(params, 'trailingPercent', 'callbackRatio')
2549
2549
  isTrailingPercentOrder = trailingPercent is not None
2550
+ trigger = (triggerPrice is not None) or (type == 'trigger')
2551
+ isReduceOnly = self.safe_value(params, 'reduceOnly', False)
2550
2552
  defaultMarginMode = self.safe_string_2(self.options, 'defaultMarginMode', 'marginMode', 'cross')
2551
2553
  marginMode = self.safe_string_2(params, 'marginMode', 'tdMode') # cross or isolated, tdMode not ommited so be extended into the request
2552
2554
  margin = False
@@ -2568,6 +2570,20 @@ class okx(Exchange, ImplicitAPI):
2568
2570
  positionSide, params = self.handle_option_and_params(params, 'createOrder', 'positionSide')
2569
2571
  if positionSide is not None:
2570
2572
  request['posSide'] = positionSide
2573
+ else:
2574
+ hedged = None
2575
+ hedged, params = self.handle_option_and_params(params, 'createOrder', 'hedged')
2576
+ if hedged:
2577
+ isBuy = (side == 'buy')
2578
+ isProtective = (takeProfitPrice is not None) or (stopLossPrice is not None) or isReduceOnly
2579
+ if isProtective:
2580
+ # in case of protective orders, the posSide should be opposite of position side
2581
+ # reduceOnly is emulated and not natively supported by the exchange
2582
+ request['posSide'] = 'short' if isBuy else 'long'
2583
+ if isReduceOnly:
2584
+ params = self.omit(params, 'reduceOnly')
2585
+ else:
2586
+ request['posSide'] = 'long' if isBuy else 'short'
2571
2587
  request['tdMode'] = marginMode
2572
2588
  isMarketOrder = type == 'market'
2573
2589
  postOnly = False
@@ -2575,7 +2591,6 @@ class okx(Exchange, ImplicitAPI):
2575
2591
  params = self.omit(params, ['currency', 'ccy', 'marginMode', 'timeInForce', 'stopPrice', 'triggerPrice', 'clientOrderId', 'stopLossPrice', 'takeProfitPrice', 'slOrdPx', 'tpOrdPx', 'margin', 'stopLoss', 'takeProfit', 'trailingPercent'])
2576
2592
  ioc = (timeInForce == 'IOC') or (type == 'ioc')
2577
2593
  fok = (timeInForce == 'FOK') or (type == 'fok')
2578
- trigger = (triggerPrice is not None) or (type == 'trigger')
2579
2594
  conditional = (stopLossPrice is not None) or (takeProfitPrice is not None) or (type == 'conditional')
2580
2595
  marketIOC = (isMarketOrder and ioc) or (type == 'optimal_limit_ioc')
2581
2596
  defaultTgtCcy = self.safe_string(self.options, 'tgtCcy', 'base_ccy')
@@ -2734,6 +2749,7 @@ class okx(Exchange, ImplicitAPI):
2734
2749
  :param str [params.positionSide]: if position mode is one-way: set to 'net', if position mode is hedge-mode: set to 'long' or 'short'
2735
2750
  :param str [params.trailingPercent]: the percent to trail away from the current market price
2736
2751
  :param str [params.tpOrdKind]: 'condition' or 'limit', the default is 'condition'
2752
+ :param str [params.hedged]: True/false, to automatically set exchange-specific params needed when trading in hedge mode
2737
2753
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
2738
2754
  """
2739
2755
  self.load_markets()
@@ -5851,6 +5867,36 @@ class okx(Exchange, ImplicitAPI):
5851
5867
  #
5852
5868
  return response
5853
5869
 
5870
+ def fetch_position_mode(self, symbol: Str = None, params={}):
5871
+ """
5872
+ :see: https://www.okx.com/docs-v5/en/#trading-account-rest-api-get-account-configuration
5873
+ fetchs the position mode, hedged or one way, hedged for binance is set identically for all linear markets or all inverse markets
5874
+ :param str symbol: unified symbol of the market to fetch the order book for
5875
+ :param dict [params]: extra parameters specific to the exchange API endpoint
5876
+ :param str [param.accountId]: if you have multiple accounts, you must specify the account id to fetch the position mode
5877
+ :returns dict: an object detailing whether the market is in hedged or one-way mode
5878
+ """
5879
+ accounts = self.fetch_accounts()
5880
+ length = len(accounts)
5881
+ selectedAccount = None
5882
+ if length > 1:
5883
+ accountId = self.safe_string(params, 'accountId')
5884
+ if accountId is None:
5885
+ accountIds = self.get_list_from_object_values(accounts, 'id')
5886
+ raise ExchangeError(self.id + ' fetchPositionMode() can not detect position mode, because you have multiple accounts. Set params["accountId"] to desired id from: ' + ', '.join(accountIds))
5887
+ else:
5888
+ accountsById = self.index_by(accounts, 'id')
5889
+ selectedAccount = self.safe_dict(accountsById, accountId)
5890
+ else:
5891
+ selectedAccount = accounts[0]
5892
+ mainAccount = selectedAccount['info']
5893
+ posMode = self.safe_string(mainAccount, 'posMode') # long_short_mode, net_mode
5894
+ isHedged = posMode == 'long_short_mode'
5895
+ return {
5896
+ 'info': mainAccount,
5897
+ 'hedged': isHedged,
5898
+ }
5899
+
5854
5900
  def set_position_mode(self, hedged: bool, symbol: Str = None, params={}):
5855
5901
  """
5856
5902
  set hedged to True or False for a market
@@ -7397,7 +7443,7 @@ class okx(Exchange, ImplicitAPI):
7397
7443
  # }
7398
7444
  #
7399
7445
  rows = self.safe_list(response, 'data', [])
7400
- return self.parse_conversions(rows, 'baseCcy', 'quoteCcy', since, limit)
7446
+ return self.parse_conversions(rows, code, 'baseCcy', 'quoteCcy', since, limit)
7401
7447
 
7402
7448
  def parse_conversion(self, conversion, fromCurrency: Currency = None, toCurrency: Currency = None) -> Conversion:
7403
7449
  #
ccxt/pro/__init__.py CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  # ----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.3.7'
7
+ __version__ = '4.3.9'
8
8
 
9
9
  # ----------------------------------------------------------------------------
10
10
 
ccxt/woo.py CHANGED
@@ -2964,7 +2964,7 @@ class woo(Exchange, ImplicitAPI):
2964
2964
  #
2965
2965
  data = self.safe_dict(response, 'data', {})
2966
2966
  rows = self.safe_list(data, 'tradeVos', [])
2967
- return self.parse_conversions(rows, 'sellAsset', 'buyAsset', since, limit)
2967
+ return self.parse_conversions(rows, code, 'sellAsset', 'buyAsset', since, limit)
2968
2968
 
2969
2969
  def parse_conversion(self, conversion, fromCurrency: Currency = None, toCurrency: Currency = None) -> Conversion:
2970
2970
  #
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ccxt
3
- Version: 4.3.7
3
+ Version: 4.3.9
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
@@ -262,13 +262,13 @@ console.log(version, Object.keys(exchanges));
262
262
 
263
263
  All-in-one browser bundle (dependencies included), served from a CDN of your choice:
264
264
 
265
- * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.7/dist/ccxt.browser.js
266
- * unpkg: https://unpkg.com/ccxt@4.3.7/dist/ccxt.browser.js
265
+ * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.9/dist/ccxt.browser.js
266
+ * unpkg: https://unpkg.com/ccxt@4.3.9/dist/ccxt.browser.js
267
267
 
268
268
  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.
269
269
 
270
270
  ```HTML
271
- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.3.7/dist/ccxt.browser.js"></script>
271
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.3.9/dist/ccxt.browser.js"></script>
272
272
  ```
273
273
 
274
274
  Creates a global `ccxt` object:
@@ -1,14 +1,14 @@
1
- ccxt/__init__.py,sha256=8WUA2zrEL80wCb5tY0lxWCzHFJE0ONIby0x6dWPyiRI,15655
1
+ ccxt/__init__.py,sha256=7GocXnWyXKeNvpBVpyUHLyfnxGi8Q7I9COxpAZkzpv4,15655
2
2
  ccxt/ace.py,sha256=j7Aq0hnsMTcUCIrWCm-ZZMkptWzAY23D8zi3jZWjq3c,41650
3
3
  ccxt/alpaca.py,sha256=h9GWMKpoPOXTcYESHQKM3MWGrrqEgFvs8sLkQx0YSLs,47182
4
4
  ccxt/ascendex.py,sha256=kxKDSqysYC_VHWsRHgNqEwGbQmKw8WIH_Cp2z6vouyg,151398
5
5
  ccxt/bequant.py,sha256=RBiAmaTbL35DgiV3Hl6uchLUd78V0z1T9riTlNsrpdc,1174
6
6
  ccxt/bigone.py,sha256=G2cga-cesMkY6knbLH02JQuHxdF9J1jEEohb0uYuibo,92190
7
- ccxt/binance.py,sha256=L4uvmgqj2kyrJhc411SqOzpsG8-WwGKAMQjhuyY3FjM,611565
7
+ ccxt/binance.py,sha256=1IuamjDC4olbwojJoa-1p7s8ZaNPxdRD64_yJgBZka0,611571
8
8
  ccxt/binancecoinm.py,sha256=pncdw6Xw2X1Po-vEvAB4nL37scoS_axGAVxetPy1YQs,1645
9
9
  ccxt/binanceus.py,sha256=hdcT4OnadcdFFFjF3GtM0nWv90jqojqwdVS3xWGuW40,9163
10
10
  ccxt/binanceusdm.py,sha256=KPQGlCalQ0eGlPCs2tSanOxaP8O0zFRQjGntA16Yprw,2480
11
- ccxt/bingx.py,sha256=3wlA-eboZU2Sq9T1_wMLPdm4LAF3XKqOQ2-Ve7j0sxw,184181
11
+ ccxt/bingx.py,sha256=DkvoG0v0irmgH-x0_sYUTJRL6ZZ_nyt78ipUC8VK1Zw,184612
12
12
  ccxt/bit2c.py,sha256=zDMcQVszvO39Lo4Km_aU16AN0MoVz7WhJrLnTua5Pm0,36901
13
13
  ccxt/bitbank.py,sha256=XC2n0jpXEV7L7JoaIgjroAd__FQzucDRZnNJPfmwHWg,41839
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=xSmo7t-2TfigOBugw7xXpjUcI1hmgCwXNA7FkLy5KiQ,71533
18
18
  ccxt/bitfinex2.py,sha256=nqT65ZaSnJt6-Rv983FslGHpw4l7Z6XY1DIIhI7NPwo,158134
19
19
  ccxt/bitflyer.py,sha256=VYJ65ZGm_gYXSDQxvLqZaTwgQQCaxclpn2xaMn9m0HM,41391
20
- ccxt/bitget.py,sha256=pbtzdr63-FdFgF_wdOwWYX7-I7WGJUDnepjkbaxJlr8,422157
20
+ ccxt/bitget.py,sha256=ialRv3fxuXbjf0JmJ_uG6eDkc2IvwS8qX3QbYJCqsBo,422163
21
21
  ccxt/bithumb.py,sha256=pBq910z_-PWLxtxLCwbP91UZuFwpCfL3ziuhhZa7OWg,45528
22
22
  ccxt/bitmart.py,sha256=QeL2trt3hgvySGL4cI6YP40z5OvLZ4RqzFoUK-3E11w,199108
23
23
  ccxt/bitmex.py,sha256=CPC5c6ibCFTWF9JbgLc_sdgQ03mvdtPR-093E_aFZU4,126416
@@ -41,10 +41,10 @@ ccxt/coinbase.py,sha256=sw1ZNrDkujIerdB3fF9N-BgAmsIEmIwOHbABNpMrwAw,206918
41
41
  ccxt/coinbaseinternational.py,sha256=wr00A8TLih3_Ipur1NhhC3_tCtNaV3SOQ72eOGKE9hQ,87223
42
42
  ccxt/coinbasepro.py,sha256=MHlfA0VS0PrYyTjcwcit7I04nD-P6zgICkYzAI611Rc,78665
43
43
  ccxt/coincheck.py,sha256=GYkK5BTSFsJOuR5fSCysUqNK5b2FjEjz7dIBHXmc1Xs,35658
44
- ccxt/coinex.py,sha256=PSLLmgN3r27LsOWXAkqBjJ-0iIOsgXTgiwEBqtp9ctM,248951
44
+ ccxt/coinex.py,sha256=_zIp0QUQKVP9xQZdTM8mJKUmA1IG6kjwKnzKhPQWHzg,257752
45
45
  ccxt/coinlist.py,sha256=LQ1qHxVMS-5dtYtXVzZBtAJjqY1VdmMCEOSph68HdUk,103195
46
46
  ccxt/coinmate.py,sha256=bFSSHuOSL2OQdMZXa_5sNkXoM0FIxWgiCd0tgJjIo4M,45940
47
- ccxt/coinmetro.py,sha256=vmYo2m-s58gCaol0xvOtnANQsG8_vPSYUh0Tf36QBLw,80409
47
+ ccxt/coinmetro.py,sha256=3vnMIGwTQ3y4RNx_O8H_b6FiaDtuznvRc71foywZmpg,80679
48
48
  ccxt/coinone.py,sha256=q0Wxrp9RWjR_zz38DnR-l60MkROsUKxcRYnJcIK9EwE,46890
49
49
  ccxt/coinsph.py,sha256=FCtZiitRluc6j8v97o1cwW4R7CT1BsX2AMVV5XU9z-U,90626
50
50
  ccxt/coinspot.py,sha256=JLL9adBf137shW_vLr3LfGS5zxN6oTnEjzJkVaCkDbs,23608
@@ -84,7 +84,7 @@ ccxt/ndax.py,sha256=FQOxlMyj8m9wND2i5qiTxrog4eFASzCxhGRw1Nxu4eE,108562
84
84
  ccxt/novadax.py,sha256=h9U_ckSCN4ZDgvXrrb7MmcOTioqG_3DsmR-2Gjpx6yw,64299
85
85
  ccxt/oceanex.py,sha256=YH3tUzegvfG0fUCjtmtb3USOQtlL1tlqQ40B_i-xx7w,37860
86
86
  ccxt/okcoin.py,sha256=oJDR1yRlV_3HlgI6Uii6zr5cKDg9IaUSrhdlJZAXIMc,151110
87
- ccxt/okx.py,sha256=7ssFmF_uP1rDwmuk3xtam3mqGxA8V1yIouWP8Nk4jDE,370860
87
+ ccxt/okx.py,sha256=EUEas5pFH91BPiNSsMQA1uXhAtn67Ak6JQE-Uf0UVpA,373663
88
88
  ccxt/onetrading.py,sha256=T68x4qfncbcnXU-YdMTVEGwnr3zKvcbbfdQZa8Zourc,88107
89
89
  ccxt/p2b.py,sha256=FYxL36KwtaLIIQ793frJEtqtHyzm39hNK0mJEzAAH0U,54213
90
90
  ccxt/paymium.py,sha256=2mBwmyT93k-dXBEKEix48G8PsA2IEN_5yScEM985Z10,24203
@@ -99,7 +99,7 @@ ccxt/upbit.py,sha256=rYJ2n8d52-6q0CuaflZs4KsM-ytgdPYNjOx76jao-7I,81605
99
99
  ccxt/wavesexchange.py,sha256=SCBZNlH4v8QojSVQn70PjhO-9vvUIRuu6a8f_62k_QU,113550
100
100
  ccxt/wazirx.py,sha256=c63acRjogThVdpkvt3F1U93EPrJx3CfmoMpDFpAaZfY,51336
101
101
  ccxt/whitebit.py,sha256=B-na5mCC3Yp1-ohdJp-Z8c7_FM_R_AsrQidINUpBljM,108191
102
- ccxt/woo.py,sha256=44gDuv_eKLJiJ6OBkyYbxG4Kgbvc7ocqnPabFjYsHYY,138544
102
+ ccxt/woo.py,sha256=1jmC7paC-QaXHydtOuKqEmQ-o9JEf9VmeloT7WoQ77s,138550
103
103
  ccxt/yobit.py,sha256=KGyZulJpFsbWRPMCK2VIqXy9ZopLH1v3IO_fmZVIsi4,53216
104
104
  ccxt/zaif.py,sha256=4aZ8iZmow4TEw_IZZCPX8VDPaU7PVRJ_lNpYhN-LSCA,27957
105
105
  ccxt/zonda.py,sha256=Sxq8MsluLNKk1_9PNkdAa2zy8jP_tklrEax4P5TwISQ,80557
@@ -113,7 +113,7 @@ ccxt/abstract/binance.py,sha256=dwbtZqKhYz7kAYV0GhLzg4YXAWE3env2F1Rg4Xjmekg,9201
113
113
  ccxt/abstract/binancecoinm.py,sha256=dwbtZqKhYz7kAYV0GhLzg4YXAWE3env2F1Rg4Xjmekg,92016
114
114
  ccxt/abstract/binanceus.py,sha256=kz7rWWAzoFruY1Oj87NL80vWKnrukXJC-F6duaaej1c,98736
115
115
  ccxt/abstract/binanceusdm.py,sha256=dwbtZqKhYz7kAYV0GhLzg4YXAWE3env2F1Rg4Xjmekg,92016
116
- ccxt/abstract/bingx.py,sha256=RIoI8VLQhpISGWt10ZZDc7A4qnQGSK2nuW50r5WQLhY,16041
116
+ ccxt/abstract/bingx.py,sha256=ar7VFcqcjPNWwpjLMOpBqwb8cu7mUzeuUeBEvN6zgUQ,16032
117
117
  ccxt/abstract/bit2c.py,sha256=np6i756kSB5dO3Nj6POLKxkWkpYcsGg-4LS8BwPrizI,2830
118
118
  ccxt/abstract/bitbank.py,sha256=hrHsD7Uvtyy2o2lzCHau3-eNq16pnZ3-YDQ6Tq_sxYU,2735
119
119
  ccxt/abstract/bitbay.py,sha256=aSfewvRojzmuymX6QbOnDR8v9VFqWTULMHX9Y7kKD1M,5820
@@ -149,7 +149,7 @@ ccxt/abstract/coincheck.py,sha256=3IIVmryXmzxXqi6IleUmfDZIUMOn_L_4G9Iw8BuEEGo,34
149
149
  ccxt/abstract/coinex.py,sha256=GMvaJaiMkjW0YnG5S85PxSo-8glEjv3w0e2sg6ScjwY,34678
150
150
  ccxt/abstract/coinlist.py,sha256=t4Xc9xyWNHgHAz7nyplj8PmgrX4knA3cnk2uEJCvkQk,6538
151
151
  ccxt/abstract/coinmate.py,sha256=LYCJZIWe3sidZUozM7jBTB-AiN3cMElFhYqO9d1QvfI,6842
152
- ccxt/abstract/coinmetro.py,sha256=YxqjHTKdpP85hjOPdotRzAjsbFCy6JjVpqS3mpCmmjE,3864
152
+ ccxt/abstract/coinmetro.py,sha256=W2eAbFInYZMm1BgfZMRuCX7i201hT4q6QCtie30-_AQ,3975
153
153
  ccxt/abstract/coinone.py,sha256=X2gKABhQbzyFUs8MLo-VGyhG4CxgRSVa6qJsiJqubk0,8291
154
154
  ccxt/abstract/coinsph.py,sha256=b9r6_whKjx26f3ld_JtsFbGmF9awGLDViJV8SgXlE8Q,8007
155
155
  ccxt/abstract/coinspot.py,sha256=DVsqMQGmEZYESzYvaGBmctP3W229yF1__Y5KzGiI5RA,2707
@@ -207,17 +207,17 @@ ccxt/abstract/woo.py,sha256=yH0aXeyohXdyS3jZrztapwRmzNWk7JGpbrrf7pX_LKU,10368
207
207
  ccxt/abstract/yobit.py,sha256=8ycfCO8ORFly9hc0Aa47sZyX4_ZKPXS9h9yJzI-uQ7Q,1339
208
208
  ccxt/abstract/zaif.py,sha256=m15WHdl3gYy0GOXNZ8NEH8eE7sVh8c0T_ITNuU8vXeU,3935
209
209
  ccxt/abstract/zonda.py,sha256=aSfewvRojzmuymX6QbOnDR8v9VFqWTULMHX9Y7kKD1M,5820
210
- ccxt/async_support/__init__.py,sha256=rUDGJsADNGlHSudJoUk9wqIuHla2p_vr5kjh73hfaeU,15408
210
+ ccxt/async_support/__init__.py,sha256=kBAUaFt-5gs8n2Q34e0QhOr2ivUVVL56OTD5aQpvjd4,15408
211
211
  ccxt/async_support/ace.py,sha256=FNZKajNtvFhDEmBYzgv46pGMwvHbPQcqhsWRpAk9iwU,41874
212
212
  ccxt/async_support/alpaca.py,sha256=A1g6mT4lc8Ab5f5Hi7U_10XltruXHlE8268s45dDd6I,47394
213
213
  ccxt/async_support/ascendex.py,sha256=GJJxZnAu_OSTv3l15DbAaIsIz5QdyWAgD0-yfsTjAf4,152186
214
214
  ccxt/async_support/bequant.py,sha256=1hTwHovo1bW1XTIc8ZKjvJ-Xg6LfmpGdzT7TepykaVM,1188
215
215
  ccxt/async_support/bigone.py,sha256=fh6RPPrLRuPfVkbB_hC5RLKfF3y8fr_wmdizNE0QVjk,92644
216
- ccxt/async_support/binance.py,sha256=x24GW72fLK8dRufL0VdwpcnCv5RnMVVp9d5j0Ir9Xs4,614233
216
+ ccxt/async_support/binance.py,sha256=wDnO4pY1Coo_sX3mRffuD_w5t4HS2YTDVKo7HdXOmcQ,614239
217
217
  ccxt/async_support/binancecoinm.py,sha256=IY3RLZptQA2nmZaUYRGfTa5ZY4VMWBpFYfwHc8zTHw0,1683
218
218
  ccxt/async_support/binanceus.py,sha256=c-K3Tk7LaRJjmYdCx8vBOqsx01uXrtvt0PC2ekBiD0g,9177
219
219
  ccxt/async_support/binanceusdm.py,sha256=-1r4A4tmV2pCiLGO80hzq7MIIj4MTzOD7buZGv6JauA,2518
220
- ccxt/async_support/bingx.py,sha256=fZCKKIdt4kusnYdFxhysrDaiM8ZXz3L-ZJhFPZn8_RU,185217
220
+ ccxt/async_support/bingx.py,sha256=ZEUQzoIGTOZmxSWDjkTHHJsJnTaWVKph8jXgs718Dsw,185648
221
221
  ccxt/async_support/bit2c.py,sha256=vCfbtsUTI0j9wU51FnvzPpFwmzC3ozN4h1I4IXVgMGI,37113
222
222
  ccxt/async_support/bitbank.py,sha256=48plnjcFdy6Ovd66hm32fa0qjedmkkjfnSwDB99NwbI,42099
223
223
  ccxt/async_support/bitbay.py,sha256=jcaEXi2IhYTva8ezO_SfJhwxEZk7HST4J3NaxD16BQA,492
@@ -226,7 +226,7 @@ ccxt/async_support/bitcoincom.py,sha256=RiqwhK3RfxQ_PXTa860fphDCvwA8dalL-_rXlK85
226
226
  ccxt/async_support/bitfinex.py,sha256=U7Rx6v0EAi4vv-eV6aJqjn9ZNLZHRXnaQX0Kdqsndog,71973
227
227
  ccxt/async_support/bitfinex2.py,sha256=9GxRBCGHQQ-aA-KUd7uvbnPtogKtB28hnoIJ0jNm4GY,158868
228
228
  ccxt/async_support/bitflyer.py,sha256=jehWPOEapP8emHK_WJUey8Lt4VFQwK4-Hrmchkh-VbQ,41699
229
- ccxt/async_support/bitget.py,sha256=VzW5EfNFMz7xJLzkB2D0tae2Vpc_K-nNqpfDJ3p2kP0,423781
229
+ ccxt/async_support/bitget.py,sha256=6401z1rfk6VHJre9CRKKGp2gREqrHPdcb8cWA2gIYM0,423787
230
230
  ccxt/async_support/bithumb.py,sha256=Ii7K6dga0USJr8mvmQub0-QSCsOu6VNA1luFP8ZfT-Y,45758
231
231
  ccxt/async_support/bitmart.py,sha256=NrArkE68Vx5JZZMHtDsYesyaU1GKAkiBBQeIgENCPeA,200028
232
232
  ccxt/async_support/bitmex.py,sha256=GvHFtIp7QTDkSzyVxqZaRE5a_4OmO6gSjROQ_lUT_2w,126994
@@ -250,10 +250,10 @@ ccxt/async_support/coinbase.py,sha256=Z4Oto79qtEkoluthFnw3pTxhpQbBxthrr72xh8AGmk
250
250
  ccxt/async_support/coinbaseinternational.py,sha256=wmfQAP2reUj_R-xYJTiTp69OtB9-oSzc1j_VR-rPdlY,87777
251
251
  ccxt/async_support/coinbasepro.py,sha256=450ObJYcli-6Fkpqx8iTT-Z6TB4Uek0bIXmSWLWVsFA,79171
252
252
  ccxt/async_support/coincheck.py,sha256=B_qzNQzd3j-me0km8lEg7bnfp--A16fpa_W902ut5Lo,35864
253
- ccxt/async_support/coinex.py,sha256=w-67pcUwQLP3nbwjazf2Nbt9aKnOhr765DhZtz1OIws,250239
253
+ ccxt/async_support/coinex.py,sha256=Iq4dur7VtK3t2_7_TwfjhPA2ePOwAP6bIFXM2zhOz5Y,259028
254
254
  ccxt/async_support/coinlist.py,sha256=Zr8vYxBeJMPxTmoWRDboser04I_yE_1Z4YWOuayyRAY,103683
255
255
  ccxt/async_support/coinmate.py,sha256=XQJDqDPD2JFBDZqKzWC9AfBKV3MY3msBuYkMgUaT5M0,46206
256
- ccxt/async_support/coinmetro.py,sha256=I7ZmXVoZK-OcyMrqJ-a19NMmMuk81UoQk6UQtKKnXk4,80729
256
+ ccxt/async_support/coinmetro.py,sha256=e2OqlB8K6GDYdGYeerc-XNXg4gGzZzvguU31D_Spufo,80999
257
257
  ccxt/async_support/coinone.py,sha256=_ypMnoeBgvfhl3N9i4x7ZeUR--PAKwm1xOt8Z_8UweI,47132
258
258
  ccxt/async_support/coinsph.py,sha256=NuRYfAg8qYoYuCwtdnBCPDgX5sdQtpUx_RFRudPM4Vo,91060
259
259
  ccxt/async_support/coinspot.py,sha256=eYMpIjpGdJhV1MeLBQXxJS56ArYnL-sqcUjgkb9wmjQ,23760
@@ -293,7 +293,7 @@ ccxt/async_support/ndax.py,sha256=JtBK0pbR5OvnWuLTHr2pNV8lsoXkZ8A161b5K366v00,10
293
293
  ccxt/async_support/novadax.py,sha256=ttRfw2h1Nc-9RUgBHefTuAPLUNjp9hxfxZTxoJDViwQ,64667
294
294
  ccxt/async_support/oceanex.py,sha256=aYdYRl42FDFpaPaoLaiGYxvDM_7aq0dEjAhUa0NsJQQ,38180
295
295
  ccxt/async_support/okcoin.py,sha256=HQSAZdG_yFP9oHyJYJaZrWsRZ9IHB6qrIgDp4b0zetA,151634
296
- ccxt/async_support/okx.py,sha256=XbIbUkkrI4V-RKnelc3PEZdGw_z7jbIHYUcZJdRL6Tw,372435
296
+ ccxt/async_support/okx.py,sha256=9XkreeSaOK9rtqeLB3sbEGBngryBsnzZBn6N5D4KJas,375250
297
297
  ccxt/async_support/onetrading.py,sha256=2O3d2_E-oUZABQEyR9igcke0AJ-to-_J9579iDyGKfo,88559
298
298
  ccxt/async_support/p2b.py,sha256=KrNc3sLbHQCxbgShyqWytuQVaQfKa42Q6_HcUYNUaKI,54455
299
299
  ccxt/async_support/paymium.py,sha256=3P1J9OcDOqQKG5fUs6Xte9Xu8NB5lWu-OD-AHHGZbkM,24391
@@ -308,12 +308,12 @@ ccxt/async_support/upbit.py,sha256=aHWltVeWCuBHFepQpdTt5fLIDjgxDu0m-pra9_UZSJs,8
308
308
  ccxt/async_support/wavesexchange.py,sha256=42GGcYgVOZrbBvB6f7ur_p8NZP6SAReGBVJF3Ifvroc,114100
309
309
  ccxt/async_support/wazirx.py,sha256=70T3kb8SbUXtUnYb_Yjfue3XOcIo7MKMkrG0-XipAMo,51638
310
310
  ccxt/async_support/whitebit.py,sha256=yb655hUqvYOCrpCu7WOeDHaR8KiEb1zRchXizLBMUZw,108793
311
- ccxt/async_support/woo.py,sha256=F_eXE0-Xx2_R1hKgYUrNJU1kSNO2-kswI5NKje7SD8o,139434
311
+ ccxt/async_support/woo.py,sha256=XYiynPgseXXlMAJHocpAj9Cj0geDrwz5GK1ZKqjGZi4,139440
312
312
  ccxt/async_support/yobit.py,sha256=6eqYOcSBmXhJgcKDRMj8oRH_7aoz2E21hxgzvA1TzrA,53500
313
313
  ccxt/async_support/zaif.py,sha256=chPFWbPvYNn0KPHY0fX_nXl60WuvueRO9GNnNMpuYeo,28139
314
314
  ccxt/async_support/zonda.py,sha256=nHlJJSlr_zBSiw4WrKOp2FbO33_UFMK5YyLuf2Pvjr0,80871
315
315
  ccxt/async_support/base/__init__.py,sha256=aVYSsFi--b4InRs9zDN_wtCpj8odosAB726JdUHavrk,67
316
- ccxt/async_support/base/exchange.py,sha256=-ODDp7uJsNRZy6Is03U66FPyusHae86E1KuHR6kIRvw,107190
316
+ ccxt/async_support/base/exchange.py,sha256=mGjuuUJFIsUWF3o77oAwi9ugtLADlKqbIMZxzTWlzLY,107190
317
317
  ccxt/async_support/base/throttler.py,sha256=tvDVcdRUVYi8fZRlEcnqtgzcgB_KMUMRs5Pu8tuU-tU,1847
318
318
  ccxt/async_support/base/ws/__init__.py,sha256=uockzpLuwntKGZbs5EOWFe-Zg-k6Cj7GhNJLc_RX0so,1791
319
319
  ccxt/async_support/base/ws/aiohttp_client.py,sha256=Ed1765emEde2Hj8Ys6f5EjS54ZI1wQ0qIhd04eB7yhU,5751
@@ -327,10 +327,10 @@ ccxt/async_support/base/ws/order_book_side.py,sha256=Pxrq22nCODckJ6G1OXkYEmUunIu
327
327
  ccxt/base/__init__.py,sha256=eTx1OE3HJjspFUQjGm6LBhaQiMKJnXjkdP-JUXknyQ0,1320
328
328
  ccxt/base/decimal_to_precision.py,sha256=fgWRBzRTtsf3r2INyS4f7WHlzgjB5YM1ekiwqD21aac,6634
329
329
  ccxt/base/errors.py,sha256=u_zxABGVPU_K5oLEEZQWOI0_F5Q-SAUq1g1q6AFh7IM,4107
330
- ccxt/base/exchange.py,sha256=yMa_T8Kh7Fi9m2pjMRGulhDfPc3SFff2Pr7kfq_NgZY,274740
330
+ ccxt/base/exchange.py,sha256=BdgZ1nm-IZ7Rk4oNm1mJqh1zXInFejt6Ts1eG1k2eSY,275089
331
331
  ccxt/base/precise.py,sha256=_xfu54sV0vWNnOfGTKRFykeuWP8mn4K1m9lk1tcllX4,8565
332
332
  ccxt/base/types.py,sha256=ZDDuKtyi-6j98YdcFSa8SS1OfwuSer_PJp1QXTsaMb0,7992
333
- ccxt/pro/__init__.py,sha256=DvdZvmVwsngDqhUocIxGLNaFlafbGwICL8wt8YZzoOY,6998
333
+ ccxt/pro/__init__.py,sha256=-nMTJjs0qsqk-ox3GJPZqinHqDUbTOHeoU674KKWEq0,6998
334
334
  ccxt/pro/alpaca.py,sha256=7ePyWli0949ti5UheIn553xmnFpedrNc2W5CKauSZio,27167
335
335
  ccxt/pro/ascendex.py,sha256=fCM3EujSfJvtvffqI56UAstTtwjXFIocwukm15cF8rE,35432
336
336
  ccxt/pro/bequant.py,sha256=5zbsP8BHQTUZ8ZNL6uaACxDbUClgkOV4SYfXT_LfQVg,1351
@@ -529,7 +529,7 @@ ccxt/test/base/test_ticker.py,sha256=cMTIMb1oySNORUCmqI5ZzMswlEyCF6gJMah3vfvo8wQ
529
529
  ccxt/test/base/test_trade.py,sha256=PMtmB8V38dpaP-eb8h488xYMlR6D69yCOhsA1RuWrUA,2336
530
530
  ccxt/test/base/test_trading_fee.py,sha256=2aDCNJtqBkTC_AieO0l1HYGq5hz5qkWlkWb9Nv_fcwk,1066
531
531
  ccxt/test/base/test_transaction.py,sha256=BTbB4UHHXkrvYgwbrhh867nVRlevmIkIrz1W_odlQJI,1434
532
- ccxt-4.3.7.dist-info/METADATA,sha256=igthJB8JKKi9BXo901MXsbNfiEG_u147nFleMjGVsZ4,111189
533
- ccxt-4.3.7.dist-info/WHEEL,sha256=P2T-6epvtXQ2cBOE_U1K4_noqlJFN3tj15djMgEu4NM,110
534
- ccxt-4.3.7.dist-info/top_level.txt,sha256=CkQDuCTDKNcImPV60t36G6MdYfxsAPNiSaEwifVoVMo,5
535
- ccxt-4.3.7.dist-info/RECORD,,
532
+ ccxt-4.3.9.dist-info/METADATA,sha256=f4iWYVW3njKItojStTN7Q7kzUE7XJWtM1ZgRLgKDC4Y,111189
533
+ ccxt-4.3.9.dist-info/WHEEL,sha256=P2T-6epvtXQ2cBOE_U1K4_noqlJFN3tj15djMgEu4NM,110
534
+ ccxt-4.3.9.dist-info/top_level.txt,sha256=CkQDuCTDKNcImPV60t36G6MdYfxsAPNiSaEwifVoVMo,5
535
+ ccxt-4.3.9.dist-info/RECORD,,
File without changes