coinex-api 0.0.71__py3-none-any.whl → 0.0.73__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.
- coinex/ccxt/__init__.py +1 -1
- coinex/ccxt/async_support/__init__.py +1 -1
- coinex/ccxt/async_support/base/exchange.py +4 -1
- coinex/ccxt/async_support/base/ws/client.py +3 -0
- coinex/ccxt/async_support/coinex.py +16 -12
- coinex/ccxt/base/exchange.py +96 -31
- coinex/ccxt/coinex.py +16 -12
- coinex/ccxt/pro/__init__.py +1 -1
- {coinex_api-0.0.71.dist-info → coinex_api-0.0.73.dist-info}/METADATA +1 -1
- {coinex_api-0.0.71.dist-info → coinex_api-0.0.73.dist-info}/RECORD +11 -11
- {coinex_api-0.0.71.dist-info → coinex_api-0.0.73.dist-info}/WHEEL +0 -0
coinex/ccxt/__init__.py
CHANGED
@@ -26,7 +26,7 @@ sys.modules['ccxt'] = ccxt_module
|
|
26
26
|
|
27
27
|
# ----------------------------------------------------------------------------
|
28
28
|
|
29
|
-
__version__ = '4.4.
|
29
|
+
__version__ = '4.4.94'
|
30
30
|
|
31
31
|
# ----------------------------------------------------------------------------
|
32
32
|
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
# -----------------------------------------------------------------------------
|
4
4
|
|
5
|
-
__version__ = '4.4.
|
5
|
+
__version__ = '4.4.94'
|
6
6
|
|
7
7
|
# -----------------------------------------------------------------------------
|
8
8
|
|
@@ -1573,6 +1573,9 @@ class Exchange(BaseExchange):
|
|
1573
1573
|
async def fetch_greeks(self, symbol: str, params={}):
|
1574
1574
|
raise NotSupported(self.id + ' fetchGreeks() is not supported yet')
|
1575
1575
|
|
1576
|
+
async def fetch_all_greeks(self, symbols: Strings = None, params={}):
|
1577
|
+
raise NotSupported(self.id + ' fetchAllGreeks() is not supported yet')
|
1578
|
+
|
1576
1579
|
async def fetch_option_chain(self, code: str, params={}):
|
1577
1580
|
raise NotSupported(self.id + ' fetchOptionChain() is not supported yet')
|
1578
1581
|
|
@@ -137,6 +137,9 @@ class Client(object):
|
|
137
137
|
self.reject(error)
|
138
138
|
|
139
139
|
task.add_done_callback(after_interrupt)
|
140
|
+
else:
|
141
|
+
# connection got terminated after the connection was made and before the receive loop ran
|
142
|
+
self.on_close(1006)
|
140
143
|
|
141
144
|
async def open(self, session, backoff_delay=0):
|
142
145
|
# exponential backoff for consequent connections if necessary
|
@@ -19,6 +19,7 @@ from ccxt.base.errors import InsufficientFunds
|
|
19
19
|
from ccxt.base.errors import InvalidOrder
|
20
20
|
from ccxt.base.errors import OrderNotFound
|
21
21
|
from ccxt.base.errors import NotSupported
|
22
|
+
from ccxt.base.errors import OperationFailed
|
22
23
|
from ccxt.base.errors import RateLimitExceeded
|
23
24
|
from ccxt.base.errors import ExchangeNotAvailable
|
24
25
|
from ccxt.base.errors import RequestTimeout
|
@@ -671,6 +672,7 @@ class coinex(Exchange, ImplicitAPI):
|
|
671
672
|
'broad': {
|
672
673
|
'ip not allow visit': PermissionDenied,
|
673
674
|
'service too busy': ExchangeNotAvailable,
|
675
|
+
'Service is not available during funding fee settlement': OperationFailed,
|
674
676
|
},
|
675
677
|
},
|
676
678
|
})
|
@@ -795,7 +797,7 @@ class coinex(Exchange, ImplicitAPI):
|
|
795
797
|
'max': None,
|
796
798
|
},
|
797
799
|
},
|
798
|
-
'networks':
|
800
|
+
'networks': networks,
|
799
801
|
'type': 'crypto',
|
800
802
|
'info': coin,
|
801
803
|
})
|
@@ -827,17 +829,19 @@ class coinex(Exchange, ImplicitAPI):
|
|
827
829
|
# "code": 0,
|
828
830
|
# "data": [
|
829
831
|
# {
|
830
|
-
# "
|
832
|
+
# "market": "BTCUSDT",
|
833
|
+
# "taker_fee_rate": "0.002",
|
834
|
+
# "maker_fee_rate": "0.002",
|
835
|
+
# "min_amount": "0.0005",
|
836
|
+
# "base_ccy": "BTC",
|
837
|
+
# "quote_ccy": "USDT",
|
831
838
|
# "base_ccy_precision": 8,
|
839
|
+
# "quote_ccy_precision": 2,
|
832
840
|
# "is_amm_available": True,
|
833
|
-
# "is_margin_available":
|
834
|
-
# "
|
835
|
-
# "
|
836
|
-
#
|
837
|
-
# "quote_ccy": "USDT",
|
838
|
-
# "quote_ccy_precision": 6,
|
839
|
-
# "taker_fee_rate": "0.003"
|
840
|
-
# },
|
841
|
+
# "is_margin_available": True,
|
842
|
+
# "is_pre_trading_available": True,
|
843
|
+
# "is_api_trading_available": True
|
844
|
+
# }
|
841
845
|
# ],
|
842
846
|
# "message": "OK"
|
843
847
|
# }
|
@@ -863,11 +867,11 @@ class coinex(Exchange, ImplicitAPI):
|
|
863
867
|
'settleId': None,
|
864
868
|
'type': 'spot',
|
865
869
|
'spot': True,
|
866
|
-
'margin':
|
870
|
+
'margin': self.safe_bool(market, 'is_margin_available'),
|
867
871
|
'swap': False,
|
868
872
|
'future': False,
|
869
873
|
'option': False,
|
870
|
-
'active':
|
874
|
+
'active': self.safe_bool(market, 'is_api_trading_available'),
|
871
875
|
'contract': False,
|
872
876
|
'linear': None,
|
873
877
|
'inverse': None,
|
coinex/ccxt/base/exchange.py
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
# -----------------------------------------------------------------------------
|
6
6
|
|
7
|
-
__version__ = '4.4.
|
7
|
+
__version__ = '4.4.94'
|
8
8
|
|
9
9
|
# -----------------------------------------------------------------------------
|
10
10
|
|
@@ -3808,8 +3808,7 @@ class Exchange(object):
|
|
3808
3808
|
|
3809
3809
|
def safe_ticker(self, ticker: dict, market: Market = None):
|
3810
3810
|
open = self.omit_zero(self.safe_string(ticker, 'open'))
|
3811
|
-
close = self.omit_zero(self.
|
3812
|
-
last = self.omit_zero(self.safe_string(ticker, 'last'))
|
3811
|
+
close = self.omit_zero(self.safe_string_2(ticker, 'close', 'last'))
|
3813
3812
|
change = self.omit_zero(self.safe_string(ticker, 'change'))
|
3814
3813
|
percentage = self.omit_zero(self.safe_string(ticker, 'percentage'))
|
3815
3814
|
average = self.omit_zero(self.safe_string(ticker, 'average'))
|
@@ -3818,29 +3817,52 @@ class Exchange(object):
|
|
3818
3817
|
quoteVolume = self.safe_string(ticker, 'quoteVolume')
|
3819
3818
|
if vwap is None:
|
3820
3819
|
vwap = Precise.string_div(self.omit_zero(quoteVolume), baseVolume)
|
3821
|
-
|
3822
|
-
|
3823
|
-
|
3824
|
-
|
3825
|
-
|
3826
|
-
|
3827
|
-
|
3828
|
-
if average is None:
|
3820
|
+
# calculate open
|
3821
|
+
if change is not None:
|
3822
|
+
if close is None and average is not None:
|
3823
|
+
close = Precise.string_add(average, Precise.string_div(change, '2'))
|
3824
|
+
if open is None and close is not None:
|
3825
|
+
open = Precise.string_sub(close, change)
|
3826
|
+
elif percentage is not None:
|
3827
|
+
if close is None and average is not None:
|
3828
|
+
openAddClose = Precise.string_mul(average, '2')
|
3829
|
+
# openAddClose = open * (1 + (100 + percentage)/100)
|
3830
|
+
denominator = Precise.string_add('2', Precise.string_div(percentage, '100'))
|
3831
|
+
calcOpen = open if (open is not None) else Precise.string_div(openAddClose, denominator)
|
3832
|
+
close = Precise.string_mul(calcOpen, Precise.string_add('1', Precise.string_div(percentage, '100')))
|
3833
|
+
if open is None and close is not None:
|
3834
|
+
open = Precise.string_div(close, Precise.string_add('1', Precise.string_div(percentage, '100')))
|
3835
|
+
# change
|
3836
|
+
if change is None:
|
3837
|
+
if close is not None and open is not None:
|
3838
|
+
change = Precise.string_sub(close, open)
|
3839
|
+
elif close is not None and percentage is not None:
|
3840
|
+
change = Precise.string_mul(Precise.string_div(percentage, '100'), Precise.string_div(close, '100'))
|
3841
|
+
elif open is not None and percentage is not None:
|
3842
|
+
change = Precise.string_mul(open, Precise.string_div(percentage, '100'))
|
3843
|
+
# calculate things according to "open"(similar can be done with "close")
|
3844
|
+
if open is not None:
|
3845
|
+
# percentage(using change)
|
3846
|
+
if percentage is None and change is not None:
|
3847
|
+
percentage = Precise.string_mul(Precise.string_div(change, open), '100')
|
3848
|
+
# close(using change)
|
3849
|
+
if close is None and change is not None:
|
3850
|
+
close = Precise.string_add(open, change)
|
3851
|
+
# close(using average)
|
3852
|
+
if close is None and average is not None:
|
3853
|
+
close = Precise.string_mul(average, '2')
|
3854
|
+
# average
|
3855
|
+
if average is None and close is not None:
|
3829
3856
|
precision = 18
|
3830
3857
|
if market is not None and self.is_tick_precision():
|
3831
3858
|
marketPrecision = self.safe_dict(market, 'precision')
|
3832
3859
|
precisionPrice = self.safe_string(marketPrecision, 'price')
|
3833
3860
|
if precisionPrice is not None:
|
3834
3861
|
precision = self.precision_from_string(precisionPrice)
|
3835
|
-
average = Precise.string_div(Precise.string_add(
|
3836
|
-
if (percentage is None) and (change is not None) and (open is not None) and Precise.string_gt(open, '0'):
|
3837
|
-
percentage = Precise.string_mul(Precise.string_div(change, open), '100')
|
3838
|
-
if (change is None) and (percentage is not None) and (open is not None):
|
3839
|
-
change = Precise.string_div(Precise.string_mul(percentage, open), '100')
|
3840
|
-
if (open is None) and (last is not None) and (change is not None):
|
3841
|
-
open = Precise.string_sub(last, change)
|
3862
|
+
average = Precise.string_div(Precise.string_add(open, close), '2', precision)
|
3842
3863
|
# timestamp and symbol operations don't belong in safeTicker
|
3843
3864
|
# they should be done in the derived classes
|
3865
|
+
closeParsed = self.parse_number(self.omit_zero(close))
|
3844
3866
|
return self.extend(ticker, {
|
3845
3867
|
'bid': self.parse_number(self.omit_zero(self.safe_string(ticker, 'bid'))),
|
3846
3868
|
'bidVolume': self.safe_number(ticker, 'bidVolume'),
|
@@ -3849,8 +3871,8 @@ class Exchange(object):
|
|
3849
3871
|
'high': self.parse_number(self.omit_zero(self.safe_string(ticker, 'high'))),
|
3850
3872
|
'low': self.parse_number(self.omit_zero(self.safe_string(ticker, 'low'))),
|
3851
3873
|
'open': self.parse_number(self.omit_zero(open)),
|
3852
|
-
'close':
|
3853
|
-
'last':
|
3874
|
+
'close': closeParsed,
|
3875
|
+
'last': closeParsed,
|
3854
3876
|
'change': self.parse_number(change),
|
3855
3877
|
'percentage': self.parse_number(percentage),
|
3856
3878
|
'average': self.parse_number(average),
|
@@ -4229,7 +4251,7 @@ class Exchange(object):
|
|
4229
4251
|
return self.filter_by_since_limit(sorted, since, limit, 0, tail)
|
4230
4252
|
|
4231
4253
|
def parse_leverage_tiers(self, response: Any, symbols: List[str] = None, marketIdKey=None):
|
4232
|
-
# marketIdKey should only be None when response is a dictionary
|
4254
|
+
# marketIdKey should only be None when response is a dictionary.
|
4233
4255
|
symbols = self.market_symbols(symbols)
|
4234
4256
|
tiers = {}
|
4235
4257
|
symbolsLength = 0
|
@@ -5450,6 +5472,9 @@ class Exchange(object):
|
|
5450
5472
|
def fetch_greeks(self, symbol: str, params={}):
|
5451
5473
|
raise NotSupported(self.id + ' fetchGreeks() is not supported yet')
|
5452
5474
|
|
5475
|
+
def fetch_all_greeks(self, symbols: Strings = None, params={}):
|
5476
|
+
raise NotSupported(self.id + ' fetchAllGreeks() is not supported yet')
|
5477
|
+
|
5453
5478
|
def fetch_option_chain(self, code: str, params={}):
|
5454
5479
|
raise NotSupported(self.id + ' fetchOptionChain() is not supported yet')
|
5455
5480
|
|
@@ -5703,10 +5728,16 @@ class Exchange(object):
|
|
5703
5728
|
precisionNumber = int(precision)
|
5704
5729
|
if precisionNumber == 0:
|
5705
5730
|
return '1'
|
5706
|
-
|
5707
|
-
|
5708
|
-
|
5709
|
-
|
5731
|
+
if precisionNumber > 0:
|
5732
|
+
parsedPrecision = '0.'
|
5733
|
+
for i in range(0, precisionNumber - 1):
|
5734
|
+
parsedPrecision = parsedPrecision + '0'
|
5735
|
+
return parsedPrecision + '1'
|
5736
|
+
else:
|
5737
|
+
parsedPrecision = '1'
|
5738
|
+
for i in range(0, precisionNumber * -1 - 1):
|
5739
|
+
parsedPrecision = parsedPrecision + '0'
|
5740
|
+
return parsedPrecision + '0'
|
5710
5741
|
|
5711
5742
|
def integer_precision_to_amount(self, precision: Str):
|
5712
5743
|
"""
|
@@ -6682,6 +6713,27 @@ class Exchange(object):
|
|
6682
6713
|
def parse_greeks(self, greeks: dict, market: Market = None):
|
6683
6714
|
raise NotSupported(self.id + ' parseGreeks() is not supported yet')
|
6684
6715
|
|
6716
|
+
def parse_all_greeks(self, greeks, symbols: Strings = None, params={}):
|
6717
|
+
#
|
6718
|
+
# the value of greeks is either a dict or a list
|
6719
|
+
#
|
6720
|
+
results = []
|
6721
|
+
if isinstance(greeks, list):
|
6722
|
+
for i in range(0, len(greeks)):
|
6723
|
+
parsedTicker = self.parse_greeks(greeks[i])
|
6724
|
+
greek = self.extend(parsedTicker, params)
|
6725
|
+
results.append(greek)
|
6726
|
+
else:
|
6727
|
+
marketIds = list(greeks.keys())
|
6728
|
+
for i in range(0, len(marketIds)):
|
6729
|
+
marketId = marketIds[i]
|
6730
|
+
market = self.safe_market(marketId)
|
6731
|
+
parsed = self.parse_greeks(greeks[marketId], market)
|
6732
|
+
greek = self.extend(parsed, params)
|
6733
|
+
results.append(greek)
|
6734
|
+
symbols = self.market_symbols(symbols)
|
6735
|
+
return self.filter_by_array(results, 'symbol', symbols)
|
6736
|
+
|
6685
6737
|
def parse_option(self, chain: dict, currency: Currency = None, market: Market = None):
|
6686
6738
|
raise NotSupported(self.id + ' parseOption() is not supported yet')
|
6687
6739
|
|
@@ -6883,14 +6935,27 @@ class Exchange(object):
|
|
6883
6935
|
"""
|
6884
6936
|
raise NotSupported(self.id + ' fetchTransfers() is not supported yet')
|
6885
6937
|
|
6886
|
-
def clean_unsubscription(self, client, subHash: str, unsubHash: str):
|
6938
|
+
def clean_unsubscription(self, client, subHash: str, unsubHash: str, subHashIsPrefix=False):
|
6887
6939
|
if unsubHash in client.subscriptions:
|
6888
6940
|
del client.subscriptions[unsubHash]
|
6889
|
-
if
|
6890
|
-
|
6891
|
-
|
6892
|
-
|
6893
|
-
|
6941
|
+
if not subHashIsPrefix:
|
6942
|
+
if subHash in client.subscriptions:
|
6943
|
+
del client.subscriptions[subHash]
|
6944
|
+
if subHash in client.futures:
|
6945
|
+
error = UnsubscribeError(self.id + ' ' + subHash)
|
6946
|
+
client.reject(error, subHash)
|
6947
|
+
else:
|
6948
|
+
clientSubscriptions = list(client.subscriptions.keys())
|
6949
|
+
for i in range(0, len(clientSubscriptions)):
|
6950
|
+
sub = clientSubscriptions[i]
|
6951
|
+
if sub.startswith(subHash):
|
6952
|
+
del client.subscriptions[sub]
|
6953
|
+
clientFutures = list(client.futures.keys())
|
6954
|
+
for i in range(0, len(clientFutures)):
|
6955
|
+
future = clientFutures[i]
|
6956
|
+
if future.startswith(subHash):
|
6957
|
+
error = UnsubscribeError(self.id + ' ' + future)
|
6958
|
+
client.reject(error, future)
|
6894
6959
|
client.resolve(True, unsubHash)
|
6895
6960
|
|
6896
6961
|
def clean_cache(self, subscription: dict):
|
coinex/ccxt/coinex.py
CHANGED
@@ -18,6 +18,7 @@ from ccxt.base.errors import InsufficientFunds
|
|
18
18
|
from ccxt.base.errors import InvalidOrder
|
19
19
|
from ccxt.base.errors import OrderNotFound
|
20
20
|
from ccxt.base.errors import NotSupported
|
21
|
+
from ccxt.base.errors import OperationFailed
|
21
22
|
from ccxt.base.errors import RateLimitExceeded
|
22
23
|
from ccxt.base.errors import ExchangeNotAvailable
|
23
24
|
from ccxt.base.errors import RequestTimeout
|
@@ -670,6 +671,7 @@ class coinex(Exchange, ImplicitAPI):
|
|
670
671
|
'broad': {
|
671
672
|
'ip not allow visit': PermissionDenied,
|
672
673
|
'service too busy': ExchangeNotAvailable,
|
674
|
+
'Service is not available during funding fee settlement': OperationFailed,
|
673
675
|
},
|
674
676
|
},
|
675
677
|
})
|
@@ -794,7 +796,7 @@ class coinex(Exchange, ImplicitAPI):
|
|
794
796
|
'max': None,
|
795
797
|
},
|
796
798
|
},
|
797
|
-
'networks':
|
799
|
+
'networks': networks,
|
798
800
|
'type': 'crypto',
|
799
801
|
'info': coin,
|
800
802
|
})
|
@@ -826,17 +828,19 @@ class coinex(Exchange, ImplicitAPI):
|
|
826
828
|
# "code": 0,
|
827
829
|
# "data": [
|
828
830
|
# {
|
829
|
-
# "
|
831
|
+
# "market": "BTCUSDT",
|
832
|
+
# "taker_fee_rate": "0.002",
|
833
|
+
# "maker_fee_rate": "0.002",
|
834
|
+
# "min_amount": "0.0005",
|
835
|
+
# "base_ccy": "BTC",
|
836
|
+
# "quote_ccy": "USDT",
|
830
837
|
# "base_ccy_precision": 8,
|
838
|
+
# "quote_ccy_precision": 2,
|
831
839
|
# "is_amm_available": True,
|
832
|
-
# "is_margin_available":
|
833
|
-
# "
|
834
|
-
# "
|
835
|
-
#
|
836
|
-
# "quote_ccy": "USDT",
|
837
|
-
# "quote_ccy_precision": 6,
|
838
|
-
# "taker_fee_rate": "0.003"
|
839
|
-
# },
|
840
|
+
# "is_margin_available": True,
|
841
|
+
# "is_pre_trading_available": True,
|
842
|
+
# "is_api_trading_available": True
|
843
|
+
# }
|
840
844
|
# ],
|
841
845
|
# "message": "OK"
|
842
846
|
# }
|
@@ -862,11 +866,11 @@ class coinex(Exchange, ImplicitAPI):
|
|
862
866
|
'settleId': None,
|
863
867
|
'type': 'spot',
|
864
868
|
'spot': True,
|
865
|
-
'margin':
|
869
|
+
'margin': self.safe_bool(market, 'is_margin_available'),
|
866
870
|
'swap': False,
|
867
871
|
'future': False,
|
868
872
|
'option': False,
|
869
|
-
'active':
|
873
|
+
'active': self.safe_bool(market, 'is_api_trading_available'),
|
870
874
|
'contract': False,
|
871
875
|
'linear': None,
|
872
876
|
'inverse': None,
|
coinex/ccxt/pro/__init__.py
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
coinex/__init__.py,sha256=d633U2PpNFHvpDWLb3lItS0ObcBN0E2XgS5QkOEejI8,246
|
2
|
-
coinex/ccxt/__init__.py,sha256=
|
3
|
-
coinex/ccxt/coinex.py,sha256=
|
2
|
+
coinex/ccxt/__init__.py,sha256=KZ3aYtzU0BWVxjgnS2m7JLUSZOVhPLip02yuRlxV9O4,6048
|
3
|
+
coinex/ccxt/coinex.py,sha256=2IWog856J1MkEwbFWGUBAtiLVycQJEDzk2ddXhEh964,267633
|
4
4
|
coinex/ccxt/abstract/coinex.py,sha256=4TRXtWgONqkm3eSL55Y5T7Q4QxJrnOTuhP0ugsKHAWo,34856
|
5
|
-
coinex/ccxt/async_support/__init__.py,sha256=
|
6
|
-
coinex/ccxt/async_support/coinex.py,sha256=
|
5
|
+
coinex/ccxt/async_support/__init__.py,sha256=pCuIPgamLHJK3XwbMcV_CHtQGtpaWRi-ulq7UJXAHYE,4781
|
6
|
+
coinex/ccxt/async_support/coinex.py,sha256=rKjhOk0bRSh2r-RuEf-mneByxwJVl9qHvVILtAbJuZA,268921
|
7
7
|
coinex/ccxt/async_support/base/__init__.py,sha256=aVYSsFi--b4InRs9zDN_wtCpj8odosAB726JdUHavrk,67
|
8
|
-
coinex/ccxt/async_support/base/exchange.py,sha256=
|
8
|
+
coinex/ccxt/async_support/base/exchange.py,sha256=Z9NwTqOgxX_ZbS_RhtiRlLojF9sY4xOXTmwyXRjXVc0,119440
|
9
9
|
coinex/ccxt/async_support/base/throttler.py,sha256=tvDVcdRUVYi8fZRlEcnqtgzcgB_KMUMRs5Pu8tuU-tU,1847
|
10
10
|
coinex/ccxt/async_support/base/ws/__init__.py,sha256=uockzpLuwntKGZbs5EOWFe-Zg-k6Cj7GhNJLc_RX0so,1791
|
11
11
|
coinex/ccxt/async_support/base/ws/cache.py,sha256=xf2VOtfUwloxSlIQ39M1RGZHWQzyS9IGhB5NX6cDcAc,8370
|
12
|
-
coinex/ccxt/async_support/base/ws/client.py,sha256=
|
12
|
+
coinex/ccxt/async_support/base/ws/client.py,sha256=ekIN5HNgeQgMG3tLZMsE889Aoxs960DLwQnwkTGhdi8,13624
|
13
13
|
coinex/ccxt/async_support/base/ws/functions.py,sha256=qwvEnjtINWL5ZU-dbbeIunjyBxzFqbGWHfVhxqAcKug,1499
|
14
14
|
coinex/ccxt/async_support/base/ws/future.py,sha256=9yFyxqT7cl-7ZFM6LM4b6UPXyO2FGIbAhs5uoJ3-Smo,1271
|
15
15
|
coinex/ccxt/async_support/base/ws/order_book.py,sha256=uBUaIHhzMRykpmo4BCsdJ-t_HozS6VxhEs8x-Kbj-NI,2894
|
@@ -17,10 +17,10 @@ coinex/ccxt/async_support/base/ws/order_book_side.py,sha256=GhnGUt78pJ-AYL_Dq9pr
|
|
17
17
|
coinex/ccxt/base/__init__.py,sha256=eTx1OE3HJjspFUQjGm6LBhaQiMKJnXjkdP-JUXknyQ0,1320
|
18
18
|
coinex/ccxt/base/decimal_to_precision.py,sha256=fgWRBzRTtsf3r2INyS4f7WHlzgjB5YM1ekiwqD21aac,6634
|
19
19
|
coinex/ccxt/base/errors.py,sha256=MvCrL_sAM3de616T6RE0PSxiF2xV6Qqz5b1y1ghidbk,4888
|
20
|
-
coinex/ccxt/base/exchange.py,sha256=
|
20
|
+
coinex/ccxt/base/exchange.py,sha256=ygC1Ymk0Jd6SUwnCS8Eq0ZaPyYBLyG5iXWNJyrMuhNQ,331662
|
21
21
|
coinex/ccxt/base/precise.py,sha256=koce64Yrp6vFbGijJtUt-QQ6XhJgeGTCksZ871FPp_A,8886
|
22
22
|
coinex/ccxt/base/types.py,sha256=vMQfFDVntED4YHrRJt0Q98YaM7OtGhK-DkbkqXFTYHc,11485
|
23
|
-
coinex/ccxt/pro/__init__.py,sha256=
|
23
|
+
coinex/ccxt/pro/__init__.py,sha256=uPuTmoy9yXfAGc46dyiv_lEKCyjuC5_Dd5zmIFWePfk,4095
|
24
24
|
coinex/ccxt/pro/coinex.py,sha256=aQ6Xa4ML0PTCgGleDJuhjqntspAREz6XxQwX9IcD6OY,56616
|
25
25
|
coinex/ccxt/static_dependencies/README.md,sha256=3TCvhhn09_Cqf9BDDpao1V7EfKHDpQ6k9oWRsLFixpU,18
|
26
26
|
coinex/ccxt/static_dependencies/__init__.py,sha256=tzFje8cloqmiIE6kola3EaYC0SnD1izWnri69hzHsSw,168
|
@@ -281,6 +281,6 @@ coinex/ccxt/static_dependencies/toolz/curried/exceptions.py,sha256=gKFOHDIayAWnX
|
|
281
281
|
coinex/ccxt/static_dependencies/toolz/curried/operator.py,sha256=ML92mknkAwzBl2NCm-4werSUmJEtSHNY9NSzhseNM9s,525
|
282
282
|
coinex/ccxt/static_dependencies/typing_inspect/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
283
283
|
coinex/ccxt/static_dependencies/typing_inspect/typing_inspect.py,sha256=5gIWomLPfuDpgd3gX1GlnX0MuXM3VorR4j2W2qXORiQ,28269
|
284
|
-
coinex_api-0.0.
|
285
|
-
coinex_api-0.0.
|
286
|
-
coinex_api-0.0.
|
284
|
+
coinex_api-0.0.73.dist-info/METADATA,sha256=530REvwUcQoZy8P2B3oenB3p3SfodshD8wyP8qaD0I0,19969
|
285
|
+
coinex_api-0.0.73.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
286
|
+
coinex_api-0.0.73.dist-info/RECORD,,
|
File without changes
|