xync-client 0.0.57.dev21__tar.gz → 0.0.57.dev23__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.57.dev21/xync_client.egg-info → xync_client-0.0.57.dev23}/PKG-INFO +1 -1
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/Abc/Ex.py +4 -4
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/Bybit/agent.py +35 -45
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23/xync_client.egg-info}/PKG-INFO +1 -1
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/.env.sample +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/.gitignore +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/.pre-commit-config.yaml +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/README.md +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/makefile +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/pyproject.toml +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/setup.cfg +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/tests/TestAgent.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/tests/TestAsset.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/tests/TestEx.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/tests/TestOrder.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/tests/_todo_refact/Binance/test_binance.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/tests/_todo_refact/Bybit/test_bybit.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/tests/_todo_refact/Bybit/test_bybit_p2p.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/tests/_todo_refact/Gate/test_gate.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/tests/_todo_refact/Htx/test_htx_p2p.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/tests/_todo_refact/Wallet/test_agent.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/tests/_todo_refact/Wallet/test_ex.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/tests/_todo_refact/__init__.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/tests/_todo_refact/_test_ex.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/Abc/Agent.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/Abc/Asset.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/Abc/Auth.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/Abc/BaseTest.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/Abc/InAgent.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/Abc/Order.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/Abc/xtype.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/Binance/__init__.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/Binance/binance_async.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/Binance/earn_api.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/Binance/etype/ad.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/Binance/etype/pm.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/Binance/ex.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/Binance/exceptions.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/Binance/sapi.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/Binance/web_c2c.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/BingX/__init__.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/BingX/agent.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/BingX/base.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/BingX/etype/ad.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/BingX/etype/pm.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/BingX/ex.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/BingX/req.mjs +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/BingX/sign.js +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/BitGet/__init__.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/BitGet/agent.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/BitGet/etype/ad.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/BitGet/ex.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/BitPapa/ex.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/Bybit/InAgent.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/Bybit/etype/ad.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/Bybit/etype/cred.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/Bybit/etype/order.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/Bybit/ex.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/Bybit/order.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/Bybit/web_earn.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/Bybit/web_p2p.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/Bybit/ws.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/Gate/etype/ad.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/Gate/ex.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/Gate/premarket.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/Gmail/__init__.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/Htx/agent.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/Htx/earn.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/Htx/etype/__init__.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/Htx/etype/ad.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/Htx/etype/cred.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/Htx/etype/pm.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/Htx/etype/test.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/Htx/ex.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/KuCoin/etype/ad.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/KuCoin/etype/pm.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/KuCoin/ex.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/KuCoin/web.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/Mexc/etype/ad.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/Mexc/etype/pm.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/Mexc/ex.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/Okx/etype/ad.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/Okx/etype/pm.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/Okx/ex.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/Pms/.gitignore +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/Pms/Alfa/__init__.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/Pms/Alfa/state.json +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/Pms/Ozon/__init__.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/Pms/Sber/__init__.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/Pms/Tinkoff/__init__.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/Pms/Tinkoff/state.json +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/Pms/Volet/__init__.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/Pms/Volet/_todo_req/req.mjs +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/Pms/Volet/_todo_req/req.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/Pms/Volet/api.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/Pms/Volet/pl.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/TgWallet/agent.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/TgWallet/asset.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/TgWallet/auth.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/TgWallet/ex.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/TgWallet/inAgent.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/TgWallet/order.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/TgWallet/pyd.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/TgWallet/pyro.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/TgWallet/web.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/__init__.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/loader.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/pm_unifier.py +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client.egg-info/SOURCES.txt +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client.egg-info/dependency_links.txt +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client.egg-info/requires.txt +0 -0
- {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client.egg-info/top_level.txt +0 -0
|
@@ -261,13 +261,13 @@ class BaseExClient(HttpClient):
|
|
|
261
261
|
}
|
|
262
262
|
prs: tuple[dict, dict] = await self.pairs()
|
|
263
263
|
for is_sell in (0, 1):
|
|
264
|
-
|
|
264
|
+
pss: list[models.PairSide] = []
|
|
265
265
|
for cur, coinz in prs[is_sell].items():
|
|
266
266
|
for coin in coinz:
|
|
267
267
|
pair, _ = await models.Pair.get_or_create(coin=coins[coin], cur=curs[cur])
|
|
268
|
-
pairex, _ = await models.PairEx.get_or_create(pair=pair, ex=self.ex)
|
|
269
|
-
|
|
270
|
-
await models.
|
|
268
|
+
# pairex, _ = await models.PairEx.get_or_create(pair=pair, ex=self.ex) # todo: разные ли комишки на покупку и продажу?
|
|
269
|
+
pss += [models.PairSide(is_sell=is_sell, pair=pair)]
|
|
270
|
+
await models.PairSide.bulk_create(pss, ignore_conflicts=True)
|
|
271
271
|
|
|
272
272
|
# Сохранение чужого объявления (с Pm-ами) в бд
|
|
273
273
|
async def ad_pydin2db(self, ad_pydin: BaseAdIn) -> models.Ad:
|
|
@@ -19,7 +19,7 @@ from x_model import init_db
|
|
|
19
19
|
from xync_schema import models
|
|
20
20
|
from xync_schema.enums import OrderStatus
|
|
21
21
|
|
|
22
|
-
from xync_schema.models import Actor, Cond,
|
|
22
|
+
from xync_schema.models import Actor, Cond, CondSim, Pmcur, PairSide
|
|
23
23
|
|
|
24
24
|
from xync_client.Abc.Agent import BaseAgentClient
|
|
25
25
|
from xync_client.Abc.xtype import BaseOrderReq, FlatDict
|
|
@@ -395,8 +395,8 @@ class AgentClient(BaseAgentClient): # Bybit client
|
|
|
395
395
|
size=30,
|
|
396
396
|
# status=status, # 50 - завершено
|
|
397
397
|
# tokenId=token_id,
|
|
398
|
-
beginTime=begin_time,
|
|
399
|
-
endTime=end_time,
|
|
398
|
+
# beginTime=begin_time,
|
|
399
|
+
# endTime=end_time,
|
|
400
400
|
# side=side, # 1 - продажа, 0 - покупка
|
|
401
401
|
)
|
|
402
402
|
except FailedRequestError as e:
|
|
@@ -444,13 +444,15 @@ class AgentClient(BaseAgentClient): # Bybit client
|
|
|
444
444
|
)
|
|
445
445
|
):
|
|
446
446
|
extr = ", ".join(
|
|
447
|
-
|
|
447
|
+
x
|
|
448
|
+
for xtr in [
|
|
448
449
|
ecredex.bankName,
|
|
449
450
|
ecredex.branchName,
|
|
450
451
|
ecredex.qrcode,
|
|
451
452
|
ecredex.payMessage,
|
|
452
453
|
ecredex.paymentExt1,
|
|
453
454
|
]
|
|
455
|
+
if (x := xtr.strip())
|
|
454
456
|
)
|
|
455
457
|
crd = await models.Cred.create(
|
|
456
458
|
detail=ecredex.accountNo,
|
|
@@ -476,9 +478,9 @@ class AgentClient(BaseAgentClient): # Bybit client
|
|
|
476
478
|
"appealed_at": o.status == 30 and int(order.updateDate[:-3]) or None,
|
|
477
479
|
"cred_id": ecredex.paymentType and credex.cred_id or None,
|
|
478
480
|
"taker": taker,
|
|
481
|
+
"ad": ad_db,
|
|
479
482
|
},
|
|
480
483
|
exid=o.id,
|
|
481
|
-
ad=ad_db,
|
|
482
484
|
)
|
|
483
485
|
dmsgs = self.api.get_chat_messages(orderId=oid, size=200)["result"]["result"][::-1]
|
|
484
486
|
msgs = [Message.model_validate(m) for m in dmsgs if m["msgType"] in (1, 2, 7, 8)]
|
|
@@ -653,11 +655,10 @@ class AgentClient(BaseAgentClient): # Bybit client
|
|
|
653
655
|
asset = await models.Asset.get(addr__actor=self.actor, addr__coin_id=coinex.coin_id)
|
|
654
656
|
volume = min(volume, asset.free - (asset.freeze or 0) - (asset.lock or 0))
|
|
655
657
|
volume = str(round(volume, coinex.coin.scale))
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
sell=taker_side,
|
|
658
|
+
ps = await PairSide.get(
|
|
659
|
+
is_sell=taker_side,
|
|
660
|
+
pair__coin_id=coinex.coin_id,
|
|
661
|
+
pair__cur_id=curex.cur_id,
|
|
661
662
|
)
|
|
662
663
|
while self.actor.person.user.status > 0: # todo: depends on rest asset/fiat
|
|
663
664
|
ads: list[Ad] = await self.ads(coinex, curex, taker_side, pms and list(creds.keys()))
|
|
@@ -673,7 +674,7 @@ class AgentClient(BaseAgentClient): # Bybit client
|
|
|
673
674
|
if int(ad.userId) == self.actor.exid:
|
|
674
675
|
logging.info(f"My ad {'-' if taker_side else '+'}{coinex.exid}/{curex.exid} on place#{i}")
|
|
675
676
|
continue
|
|
676
|
-
ad_db, isnew = await self.cond_upsert(ad,
|
|
677
|
+
ad_db, isnew = await self.cond_upsert(ad, ps=ps)
|
|
677
678
|
if isnew:
|
|
678
679
|
s = f"{'-' if taker_side else '+'}{ad.price}[{ad.minAmount}-{ad.maxAmount}]{coinex.exid}/{curex.exid}"
|
|
679
680
|
print(s, end=" | ", flush=True)
|
|
@@ -696,20 +697,16 @@ class AgentClient(BaseAgentClient): # Bybit client
|
|
|
696
697
|
await sleep(6)
|
|
697
698
|
|
|
698
699
|
async def cond_upsert(
|
|
699
|
-
self, ad: Ad, rname: str = None,
|
|
700
|
+
self, ad: Ad, rname: str = None, ps: PairSide = None, force: bool = False
|
|
700
701
|
) -> tuple[models.Ad, bool]:
|
|
701
702
|
sim, cid = None, None
|
|
703
|
+
ad_db = await models.Ad.get_or_none(exid=ad.id, ex=self.ex_client.ex).prefetch_related("cond")
|
|
702
704
|
# если точно такое условие уже есть в бд, ниче делать не надо
|
|
703
705
|
if not (cleaned := clean(ad.remark)) or (cid := {oc[0]: ci for ci, oc in self.all_conds.items()}.get(cleaned)):
|
|
704
|
-
|
|
705
|
-
return (
|
|
706
|
-
await models.Ad.get_or_none(exid=ad.id).prefetch_related("maker__person")
|
|
707
|
-
or await self.ad_create(ad, cid, rname, dr),
|
|
708
|
-
False,
|
|
709
|
-
)
|
|
710
|
-
return None, False
|
|
706
|
+
return (ad_db or force and await self.ad_create(ad, cid, rname, ps)), False
|
|
711
707
|
# если эта объява уже есть в бд
|
|
712
|
-
if ad_db
|
|
708
|
+
if ad_db:
|
|
709
|
+
await ad_db.fetch_related("cond__ads", "maker")
|
|
713
710
|
# у измененного условия этой объявы есть другие объявы?
|
|
714
711
|
if rest_ads := set(ad_db.cond.ads) - {ad_db}:
|
|
715
712
|
# другие объявы этого условия принадлежат другим юзерам
|
|
@@ -770,7 +767,7 @@ class AgentClient(BaseAgentClient): # Bybit client
|
|
|
770
767
|
return actor.person
|
|
771
768
|
return await models.Person.create(name=name)
|
|
772
769
|
|
|
773
|
-
async def ad_create(self, ad: Ad, cid: int, rname: str = None,
|
|
770
|
+
async def ad_create(self, ad: Ad, cid: int, rname: str = None, ps: PairSide = None) -> models.Ad:
|
|
774
771
|
act_df = {}
|
|
775
772
|
if int(ad.userId) != self.actor.exid:
|
|
776
773
|
act_df |= {"name": ad.nickName}
|
|
@@ -784,16 +781,16 @@ class AgentClient(BaseAgentClient): # Bybit client
|
|
|
784
781
|
max_fiat=ad.maxAmount,
|
|
785
782
|
cond_id=cid,
|
|
786
783
|
exid=int(ad.id),
|
|
787
|
-
|
|
788
|
-
or await
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
pairex__pair__cur__ticker=ad.currencyId,
|
|
784
|
+
pair_side=ps
|
|
785
|
+
or await PairSide.get(
|
|
786
|
+
is_sell=ad.side,
|
|
787
|
+
pair__coin__ticker=ad.tokenId,
|
|
788
|
+
pair__cur__ticker=ad.currencyId,
|
|
793
789
|
),
|
|
790
|
+
ex=self.ex_client.ex,
|
|
794
791
|
maker=actor,
|
|
795
792
|
)
|
|
796
|
-
await ad_db.
|
|
793
|
+
await ad_db.pms.add(*(await models.Pm.filter(pmexs__ex=self.ex_client.ex, pmexs__exid__in=ad.payments)))
|
|
797
794
|
return ad_db
|
|
798
795
|
|
|
799
796
|
async def sim_new(self, new_cid: int, sim: int, old_cid: int):
|
|
@@ -816,15 +813,9 @@ class AgentClient(BaseAgentClient): # Bybit client
|
|
|
816
813
|
self.cond_sims = {cs.cond_id: (cs.cond_rel_id, cs.similarity) for cs in await CondSim.all()}
|
|
817
814
|
for c, (o, s) in self.cond_sims.items():
|
|
818
815
|
self.sim_conds[o].add(c)
|
|
819
|
-
dr = await Direction.get(
|
|
820
|
-
sell=1,
|
|
821
|
-
pairex__ex=self.ex_client.ex,
|
|
822
|
-
pairex__pair__coin__ticker="USDT",
|
|
823
|
-
pairex__pair__cur__ticker="RUB",
|
|
824
|
-
)
|
|
825
816
|
for ad_db in await models.Ad.filter(direction__pairex__ex=self.ex_client.ex).prefetch_related("cond", "maker"):
|
|
826
817
|
ad = Ad(id=str(ad_db.exid), userId=str(ad_db.maker.exid), remark=ad_db.cond.raw_txt)
|
|
827
|
-
await self.cond_upsert(ad,
|
|
818
|
+
await self.cond_upsert(ad, force=True)
|
|
828
819
|
|
|
829
820
|
async def get_credexs_by_norms(self, norms: list[str], cur_id: int) -> dict[models.Pmex, models.CredEx] | None:
|
|
830
821
|
try:
|
|
@@ -909,27 +900,23 @@ async def main():
|
|
|
909
900
|
eth = await models.Coinex.get(coin__ticker="ETH", ex=cl.actor.ex).prefetch_related("coin")
|
|
910
901
|
usdc = await models.Coinex.get(coin__ticker="USDC", ex=cl.actor.ex).prefetch_related("coin")
|
|
911
902
|
rub = await models.Curex.get(cur__ticker="RUB", ex=cl.actor.ex).prefetch_related("cur")
|
|
912
|
-
# await models.Direction.get(
|
|
913
|
-
# pairex__ex=cl.actor.ex, pairex__pair__coin__ticker="USDT", pairex__pair__cur__ticker="RUB", sell=True
|
|
914
|
-
# )
|
|
915
903
|
cl.all_conds = {
|
|
916
904
|
c.id: (c.raw_txt, {str(a.maker.exid) for a in c.ads})
|
|
917
905
|
for c in await Cond.all().prefetch_related("ads__maker")
|
|
918
906
|
}
|
|
919
|
-
# await cl.set_creds()
|
|
920
907
|
# await cl.actual_cond()
|
|
921
908
|
await gather(
|
|
922
|
-
cl.
|
|
923
|
-
cl.battle(usdt, rub,
|
|
909
|
+
cl.get_api_orders(20), # 10, 1738357200000, 1742504399999
|
|
910
|
+
cl.battle(usdt, rub, False, ["volet"], 79.8), # гонка в стакане покупки - мы продаем
|
|
911
|
+
cl.battle(usdt, rub, True, ["volet"], 79.8), # гонка в стакане продажи - мы покупаем
|
|
924
912
|
cl.battle(eth, rub, False, ["volet"], 206_000),
|
|
925
913
|
cl.battle(eth, rub, True, ["volet"], 200_000),
|
|
926
914
|
cl.battle(btc, rub, False, ["volet"], 8_500_000),
|
|
927
915
|
cl.battle(btc, rub, True, ["volet"], 8_400_000),
|
|
928
916
|
cl.battle(usdc, rub, False, ["volet"], 80.5),
|
|
929
917
|
cl.battle(usdc, rub, True, ["volet"], 79),
|
|
930
|
-
cl.take(usdt, rub, False, ceil=80
|
|
931
|
-
cl.take(usdt, rub, True, ceil=80
|
|
932
|
-
# cl.get_api_orders(), # 10, 1738357200000, 1742504399999
|
|
918
|
+
cl.take(usdt, rub, False, ceil=80, volume=360),
|
|
919
|
+
cl.take(usdt, rub, True, ceil=80, volume=360),
|
|
933
920
|
)
|
|
934
921
|
|
|
935
922
|
bor = BaseOrderReq(
|
|
@@ -948,4 +935,7 @@ async def main():
|
|
|
948
935
|
|
|
949
936
|
|
|
950
937
|
if __name__ == "__main__":
|
|
951
|
-
|
|
938
|
+
try:
|
|
939
|
+
run(main())
|
|
940
|
+
except KeyboardInterrupt:
|
|
941
|
+
logging.info("Shutting down")
|
|
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.57.dev21 → xync_client-0.0.57.dev23}/tests/_todo_refact/Binance/test_binance.py
RENAMED
|
File without changes
|
{xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/tests/_todo_refact/Bybit/test_bybit.py
RENAMED
|
File without changes
|
{xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/tests/_todo_refact/Bybit/test_bybit_p2p.py
RENAMED
|
File without changes
|
|
File without changes
|
{xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/tests/_todo_refact/Htx/test_htx_p2p.py
RENAMED
|
File without changes
|
{xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/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
|
|
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.57.dev21 → xync_client-0.0.57.dev23}/xync_client/Pms/Volet/_todo_req/req.mjs
RENAMED
|
File without changes
|
{xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client/Pms/Volet/_todo_req/req.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
|
{xync_client-0.0.57.dev21 → xync_client-0.0.57.dev23}/xync_client.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|