xync-client 0.0.25.dev50__tar.gz → 0.0.25.dev51__tar.gz
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.
- {xync_client-0.0.25.dev50/xync_client.egg-info → xync_client-0.0.25.dev51}/PKG-INFO +1 -1
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client/Abc/Ex.py +1 -1
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client/Okx/etype/pm.py +1 -1
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client/Okx/ex.py +23 -19
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51/xync_client.egg-info}/PKG-INFO +1 -1
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/.env.sample +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/.gitignore +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/.pre-commit-config.yaml +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/README.md +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/makefile +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/pyproject.toml +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/setup.cfg +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/tests/TestAgent.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/tests/TestAsset.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/tests/TestEx.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/tests/TestOrder.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/tests/_todo_refact/Binance/test_binance.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/tests/_todo_refact/Bybit/test_bybit.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/tests/_todo_refact/Bybit/test_bybit_p2p.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/tests/_todo_refact/Gate/test_gate.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/tests/_todo_refact/Htx/test_htx_p2p.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/tests/_todo_refact/Wallet/test_agent.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/tests/_todo_refact/Wallet/test_ex.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/tests/_todo_refact/__init__.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/tests/_todo_refact/_test_ex.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client/Abc/Agent.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client/Abc/Asset.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client/Abc/AuthTrait.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client/Abc/Base.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client/Abc/BaseTest.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client/Abc/InAgent.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client/Abc/Order.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client/Abc/types.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client/Binance/__init__.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client/Binance/binance_async.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client/Binance/earn_api.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client/Binance/ex.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client/Binance/exceptions.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client/Binance/sapi.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client/Binance/web_c2c.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client/BingX/__init__.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client/BingX/agent.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client/BingX/base.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client/BingX/etype/ad.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client/BingX/etype/pm.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client/BingX/ex.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client/BingX/req.mjs +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client/BingX/sign.js +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client/BitGet/__init__.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client/BitGet/agent.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client/BitGet/ex.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client/BitGet/req.mjs +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client/Bybit/agent.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client/Bybit/ex.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client/Bybit/web_earn.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client/Bybit/web_p2p.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client/Gate/ex.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client/Gate/premarket.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client/Htx/agent.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client/Htx/earn.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client/Htx/etype/__init__.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client/Htx/etype/ad.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client/Htx/etype/cred.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client/Htx/etype/pm.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client/Htx/ex.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client/KuCoin/etype/ad.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client/KuCoin/etype/pm.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client/KuCoin/ex.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client/KuCoin/web.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client/Okx/etype/ad.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client/TgWallet/agent.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client/TgWallet/asset.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client/TgWallet/auth.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client/TgWallet/ex.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client/TgWallet/inAgent.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client/TgWallet/order.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client/TgWallet/pyd.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client/TgWallet/pyro.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client/TgWallet/web.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client/__init__.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client/loader.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client/pm_unifier.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client/pyro.py +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client.egg-info/SOURCES.txt +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client.egg-info/dependency_links.txt +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client.egg-info/requires.txt +0 -0
- {xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client.egg-info/top_level.txt +0 -0
|
@@ -125,7 +125,7 @@ class BaseExClient(BaseClient):
|
|
|
125
125
|
k: v for k, v in sorted((await self.pms()).items(), key=lambda x: x[1].name)
|
|
126
126
|
} # sort by name
|
|
127
127
|
pms: dict[int | str, models.Pm] = dict({})
|
|
128
|
-
prev = 0, "", "" # id, normd-name, orig-name
|
|
128
|
+
prev = 0, "", "", None # id, normd-name, orig-name
|
|
129
129
|
cntrs = [c.lower() for c in await models.Country.all().values_list("name", flat=True)]
|
|
130
130
|
uni = self.unifier_class(cntrs)
|
|
131
131
|
for k, pm in pms_epyds.items():
|
|
@@ -10,6 +10,7 @@ from xync_client.loader import PG_DSN
|
|
|
10
10
|
from xync_client.Okx.etype import ad, pm
|
|
11
11
|
from xync_client.Abc.types import PmEx
|
|
12
12
|
|
|
13
|
+
|
|
13
14
|
class ExClient(BaseExClient):
|
|
14
15
|
async def _pms(self, cur) -> list[pm.PmE]:
|
|
15
16
|
params = {
|
|
@@ -20,11 +21,10 @@ class ExClient(BaseExClient):
|
|
|
20
21
|
return [pm.PmE(**_pm) for _pm in pms["data"]]
|
|
21
22
|
|
|
22
23
|
# 19: Список поддерживаемых валют тейкера
|
|
23
|
-
async def curs(self) ->
|
|
24
|
+
async def curs(self) -> dict[int, types.CurEx]: # {cur.exid: cur.ticker}
|
|
24
25
|
curs = await self._get("/v3/users/common/list/currencies")
|
|
25
26
|
return {
|
|
26
|
-
cur["displayName"]: types.CurEx(exid=cur["currencyId"],ticker=cur["displayName"])
|
|
27
|
-
for cur in curs["data"]
|
|
27
|
+
cur["displayName"]: types.CurEx(exid=cur["currencyId"], ticker=cur["displayName"]) for cur in curs["data"]
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
# 20: Список платежных методов
|
|
@@ -32,32 +32,31 @@ class ExClient(BaseExClient):
|
|
|
32
32
|
all_pms = {}
|
|
33
33
|
for cur_obj in (await self.curs()).values():
|
|
34
34
|
pms = await self._pms(cur_obj.ticker)
|
|
35
|
-
for
|
|
36
|
-
all_pms[
|
|
35
|
+
for p in pms:
|
|
36
|
+
all_pms[p.paymentMethod] = PmEx(exid=p.paymentMethod, name=p.paymentMethod)
|
|
37
37
|
return all_pms
|
|
38
38
|
|
|
39
39
|
# 21: Список платежных методов по каждой валюте
|
|
40
40
|
async def cur_pms_map(self) -> MapOfIdsList: # {cur.exid: [pm.exid]}
|
|
41
|
-
return {
|
|
41
|
+
return {
|
|
42
|
+
cur.exid: [pm.paymentMethod for pm in await self._pms(cur.ticker)] for cur in (await self.curs()).values()
|
|
43
|
+
}
|
|
42
44
|
|
|
43
45
|
# 22: Список торгуемых монет (с ограничениям по валютам, если есть)
|
|
44
|
-
async def coins(self) ->
|
|
46
|
+
async def coins(self) -> dict[int, types.CoinEx]: # {coin.exid: coin.ticker}
|
|
45
47
|
for cur in (await self.curs()).keys():
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
48
|
+
coins = await self._get("/v3/c2c/currency/pairs", {"type": 2, "quote": cur})
|
|
49
|
+
return {
|
|
50
|
+
coin["baseCurrency"]: types.CoinEx(exid=coin["baseCurrencyId"], ticker=coin["baseCurrency"])
|
|
51
|
+
for coin in coins["data"]
|
|
50
52
|
}
|
|
51
|
-
coins = await self._get("/v3/c2c/currency/pairs", params=params)
|
|
52
|
-
return {coin["baseCurrency"]: types.CoinEx(exid=coin["baseCurrencyId"], ticker=coin["baseCurrency"]) for coin in coins["data"]}
|
|
53
53
|
|
|
54
54
|
# 23: Список пар валюта/монет
|
|
55
55
|
async def pairs(self) -> MapOfIdsList:
|
|
56
56
|
coins = (await self.coins()).keys()
|
|
57
57
|
curs = (await self.curs()).keys()
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
return s, b
|
|
58
|
+
p = {cur: {c for c in coins} for cur in curs}
|
|
59
|
+
return p, p
|
|
61
60
|
|
|
62
61
|
# 24: Список объяв по (buy/sell, cur, coin, pm)
|
|
63
62
|
async def ads(
|
|
@@ -92,9 +91,14 @@ async def main():
|
|
|
92
91
|
_ = await init_db(PG_DSN, models, True)
|
|
93
92
|
bg = await models.Ex.get(name="Okx")
|
|
94
93
|
cl = ExClient(bg)
|
|
95
|
-
await cl.curs()
|
|
96
|
-
# await cl.coins()
|
|
97
|
-
|
|
94
|
+
# curs = await cl.curs()
|
|
95
|
+
# coins = await cl.coins()
|
|
96
|
+
await cl.pms()
|
|
97
|
+
await cl.cur_pms_map()
|
|
98
|
+
await cl.pairs()
|
|
99
|
+
await cl.set_coinexs()
|
|
100
|
+
await cl.set_pmcurexs()
|
|
101
|
+
await cl.ads("USDT", "THB", False)
|
|
98
102
|
await cl.close()
|
|
99
103
|
|
|
100
104
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/tests/_todo_refact/Binance/test_binance.py
RENAMED
|
File without changes
|
{xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/tests/_todo_refact/Bybit/test_bybit.py
RENAMED
|
File without changes
|
{xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/tests/_todo_refact/Bybit/test_bybit_p2p.py
RENAMED
|
File without changes
|
|
File without changes
|
{xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/tests/_todo_refact/Htx/test_htx_p2p.py
RENAMED
|
File without changes
|
{xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/tests/_todo_refact/Wallet/test_agent.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{xync_client-0.0.25.dev50 → xync_client-0.0.25.dev51}/xync_client.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|