xync-client 0.0.57.dev21__tar.gz → 0.0.57.dev22__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.
Files changed (112) hide show
  1. {xync_client-0.0.57.dev21/xync_client.egg-info → xync_client-0.0.57.dev22}/PKG-INFO +1 -1
  2. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/Abc/Ex.py +4 -4
  3. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/Bybit/agent.py +24 -39
  4. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22/xync_client.egg-info}/PKG-INFO +1 -1
  5. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/.env.sample +0 -0
  6. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/.gitignore +0 -0
  7. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/.pre-commit-config.yaml +0 -0
  8. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/README.md +0 -0
  9. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/makefile +0 -0
  10. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/pyproject.toml +0 -0
  11. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/setup.cfg +0 -0
  12. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/tests/TestAgent.py +0 -0
  13. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/tests/TestAsset.py +0 -0
  14. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/tests/TestEx.py +0 -0
  15. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/tests/TestOrder.py +0 -0
  16. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/tests/_todo_refact/Binance/test_binance.py +0 -0
  17. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/tests/_todo_refact/Bybit/test_bybit.py +0 -0
  18. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/tests/_todo_refact/Bybit/test_bybit_p2p.py +0 -0
  19. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/tests/_todo_refact/Gate/test_gate.py +0 -0
  20. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/tests/_todo_refact/Htx/test_htx_p2p.py +0 -0
  21. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/tests/_todo_refact/Wallet/test_agent.py +0 -0
  22. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/tests/_todo_refact/Wallet/test_ex.py +0 -0
  23. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/tests/_todo_refact/__init__.py +0 -0
  24. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/tests/_todo_refact/_test_ex.py +0 -0
  25. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/Abc/Agent.py +0 -0
  26. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/Abc/Asset.py +0 -0
  27. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/Abc/Auth.py +0 -0
  28. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/Abc/BaseTest.py +0 -0
  29. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/Abc/InAgent.py +0 -0
  30. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/Abc/Order.py +0 -0
  31. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/Abc/xtype.py +0 -0
  32. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/Binance/__init__.py +0 -0
  33. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/Binance/binance_async.py +0 -0
  34. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/Binance/earn_api.py +0 -0
  35. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/Binance/etype/ad.py +0 -0
  36. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/Binance/etype/pm.py +0 -0
  37. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/Binance/ex.py +0 -0
  38. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/Binance/exceptions.py +0 -0
  39. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/Binance/sapi.py +0 -0
  40. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/Binance/web_c2c.py +0 -0
  41. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/BingX/__init__.py +0 -0
  42. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/BingX/agent.py +0 -0
  43. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/BingX/base.py +0 -0
  44. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/BingX/etype/ad.py +0 -0
  45. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/BingX/etype/pm.py +0 -0
  46. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/BingX/ex.py +0 -0
  47. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/BingX/req.mjs +0 -0
  48. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/BingX/sign.js +0 -0
  49. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/BitGet/__init__.py +0 -0
  50. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/BitGet/agent.py +0 -0
  51. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/BitGet/etype/ad.py +0 -0
  52. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/BitGet/ex.py +0 -0
  53. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/BitPapa/ex.py +0 -0
  54. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/Bybit/InAgent.py +0 -0
  55. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/Bybit/etype/ad.py +0 -0
  56. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/Bybit/etype/cred.py +0 -0
  57. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/Bybit/etype/order.py +0 -0
  58. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/Bybit/ex.py +0 -0
  59. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/Bybit/order.py +0 -0
  60. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/Bybit/web_earn.py +0 -0
  61. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/Bybit/web_p2p.py +0 -0
  62. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/Bybit/ws.py +0 -0
  63. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/Gate/etype/ad.py +0 -0
  64. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/Gate/ex.py +0 -0
  65. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/Gate/premarket.py +0 -0
  66. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/Gmail/__init__.py +0 -0
  67. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/Htx/agent.py +0 -0
  68. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/Htx/earn.py +0 -0
  69. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/Htx/etype/__init__.py +0 -0
  70. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/Htx/etype/ad.py +0 -0
  71. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/Htx/etype/cred.py +0 -0
  72. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/Htx/etype/pm.py +0 -0
  73. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/Htx/etype/test.py +0 -0
  74. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/Htx/ex.py +0 -0
  75. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/KuCoin/etype/ad.py +0 -0
  76. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/KuCoin/etype/pm.py +0 -0
  77. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/KuCoin/ex.py +0 -0
  78. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/KuCoin/web.py +0 -0
  79. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/Mexc/etype/ad.py +0 -0
  80. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/Mexc/etype/pm.py +0 -0
  81. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/Mexc/ex.py +0 -0
  82. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/Okx/etype/ad.py +0 -0
  83. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/Okx/etype/pm.py +0 -0
  84. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/Okx/ex.py +0 -0
  85. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/Pms/.gitignore +0 -0
  86. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/Pms/Alfa/__init__.py +0 -0
  87. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/Pms/Alfa/state.json +0 -0
  88. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/Pms/Ozon/__init__.py +0 -0
  89. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/Pms/Sber/__init__.py +0 -0
  90. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/Pms/Tinkoff/__init__.py +0 -0
  91. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/Pms/Tinkoff/state.json +0 -0
  92. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/Pms/Volet/__init__.py +0 -0
  93. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/Pms/Volet/_todo_req/req.mjs +0 -0
  94. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/Pms/Volet/_todo_req/req.py +0 -0
  95. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/Pms/Volet/api.py +0 -0
  96. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/Pms/Volet/pl.py +0 -0
  97. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/TgWallet/agent.py +0 -0
  98. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/TgWallet/asset.py +0 -0
  99. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/TgWallet/auth.py +0 -0
  100. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/TgWallet/ex.py +0 -0
  101. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/TgWallet/inAgent.py +0 -0
  102. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/TgWallet/order.py +0 -0
  103. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/TgWallet/pyd.py +0 -0
  104. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/TgWallet/pyro.py +0 -0
  105. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/TgWallet/web.py +0 -0
  106. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/__init__.py +0 -0
  107. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/loader.py +0 -0
  108. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client/pm_unifier.py +0 -0
  109. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client.egg-info/SOURCES.txt +0 -0
  110. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client.egg-info/dependency_links.txt +0 -0
  111. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client.egg-info/requires.txt +0 -0
  112. {xync_client-0.0.57.dev21 → xync_client-0.0.57.dev22}/xync_client.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: xync-client
3
- Version: 0.0.57.dev21
3
+ Version: 0.0.57.dev22
4
4
  Author-email: Mike Artemiev <mixartemev@gmail.com>
5
5
  Project-URL: Homepage, https://gitlab.com/XyncNet/client
6
6
  Project-URL: Repository, https://gitlab.com/XyncNet/client
@@ -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
- dirs: list[models.Direction] = []
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
- dirs += [models.Direction(sell=is_sell, pairex=pairex)]
270
- await models.Direction.bulk_create(dirs, ignore_conflicts=True)
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, Direction, CondSim, Pmcur
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
@@ -653,11 +653,10 @@ class AgentClient(BaseAgentClient): # Bybit client
653
653
  asset = await models.Asset.get(addr__actor=self.actor, addr__coin_id=coinex.coin_id)
654
654
  volume = min(volume, asset.free - (asset.freeze or 0) - (asset.lock or 0))
655
655
  volume = str(round(volume, coinex.coin.scale))
656
- dr = await Direction.get(
657
- pairex__ex=self.ex_client.ex,
658
- pairex__pair__coin_id=coinex.coin_id,
659
- pairex__pair__cur_id=curex.cur_id,
660
- sell=taker_side,
656
+ ps = await PairSide.get(
657
+ is_sell=taker_side,
658
+ pair__coin_id=coinex.coin_id,
659
+ pair__cur_id=curex.cur_id,
661
660
  )
662
661
  while self.actor.person.user.status > 0: # todo: depends on rest asset/fiat
663
662
  ads: list[Ad] = await self.ads(coinex, curex, taker_side, pms and list(creds.keys()))
@@ -673,7 +672,7 @@ class AgentClient(BaseAgentClient): # Bybit client
673
672
  if int(ad.userId) == self.actor.exid:
674
673
  logging.info(f"My ad {'-' if taker_side else '+'}{coinex.exid}/{curex.exid} on place#{i}")
675
674
  continue
676
- ad_db, isnew = await self.cond_upsert(ad, dr=dr)
675
+ ad_db, isnew = await self.cond_upsert(ad, ps=ps)
677
676
  if isnew:
678
677
  s = f"{'-' if taker_side else '+'}{ad.price}[{ad.minAmount}-{ad.maxAmount}]{coinex.exid}/{curex.exid}"
679
678
  print(s, end=" | ", flush=True)
@@ -696,20 +695,16 @@ class AgentClient(BaseAgentClient): # Bybit client
696
695
  await sleep(6)
697
696
 
698
697
  async def cond_upsert(
699
- self, ad: Ad, rname: str = None, dr: Direction = None, force: bool = False
698
+ self, ad: Ad, rname: str = None, ps: PairSide = None, force: bool = False
700
699
  ) -> tuple[models.Ad, bool]:
701
700
  sim, cid = None, None
701
+ ad_db = await models.Ad.get_or_none(exid=ad.id, ex=self.ex_client.ex).prefetch_related("cond")
702
702
  # если точно такое условие уже есть в бд, ниче делать не надо
703
703
  if not (cleaned := clean(ad.remark)) or (cid := {oc[0]: ci for ci, oc in self.all_conds.items()}.get(cleaned)):
704
- if force:
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
704
+ return (ad_db or force and await self.ad_create(ad, cid, rname, ps)), False
711
705
  # если эта объява уже есть в бд
712
- if ad_db := await models.Ad.get_or_none(exid=ad.id).prefetch_related("cond__ads__maker", "maker__person"):
706
+ if ad_db:
707
+ await ad_db.fetch_related("cond__ads", "maker")
713
708
  # у измененного условия этой объявы есть другие объявы?
714
709
  if rest_ads := set(ad_db.cond.ads) - {ad_db}:
715
710
  # другие объявы этого условия принадлежат другим юзерам
@@ -770,7 +765,7 @@ class AgentClient(BaseAgentClient): # Bybit client
770
765
  return actor.person
771
766
  return await models.Person.create(name=name)
772
767
 
773
- async def ad_create(self, ad: Ad, cid: int, rname: str = None, dr: Direction = None) -> models.Ad:
768
+ async def ad_create(self, ad: Ad, cid: int, rname: str = None, ps: PairSide = None) -> models.Ad:
774
769
  act_df = {}
775
770
  if int(ad.userId) != self.actor.exid:
776
771
  act_df |= {"name": ad.nickName}
@@ -784,16 +779,16 @@ class AgentClient(BaseAgentClient): # Bybit client
784
779
  max_fiat=ad.maxAmount,
785
780
  cond_id=cid,
786
781
  exid=int(ad.id),
787
- direction=dr
788
- or await Direction.get(
789
- sell=ad.side,
790
- pairex__ex=self.ex_client.ex,
791
- pairex__pair__coin__ticker=ad.tokenId,
792
- pairex__pair__cur__ticker=ad.currencyId,
782
+ pair_side=ps
783
+ or await PairSide.get(
784
+ is_sell=ad.side,
785
+ pair__coin__ticker=ad.tokenId,
786
+ pair__cur__ticker=ad.currencyId,
793
787
  ),
788
+ ex=self.ex_client.ex,
794
789
  maker=actor,
795
790
  )
796
- await ad_db.fetch_related("cond", "maker__person")
791
+ await ad_db.pms.add(*(await models.Pm.filter(pmexs__ex=self.ex_client.ex, pmexs__exid__in=ad.payments)))
797
792
  return ad_db
798
793
 
799
794
  async def sim_new(self, new_cid: int, sim: int, old_cid: int):
@@ -816,15 +811,9 @@ class AgentClient(BaseAgentClient): # Bybit client
816
811
  self.cond_sims = {cs.cond_id: (cs.cond_rel_id, cs.similarity) for cs in await CondSim.all()}
817
812
  for c, (o, s) in self.cond_sims.items():
818
813
  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
814
  for ad_db in await models.Ad.filter(direction__pairex__ex=self.ex_client.ex).prefetch_related("cond", "maker"):
826
815
  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, dr=dr, cid=ad_db.cond_id)
816
+ await self.cond_upsert(ad, force=True)
828
817
 
829
818
  async def get_credexs_by_norms(self, norms: list[str], cur_id: int) -> dict[models.Pmex, models.CredEx] | None:
830
819
  try:
@@ -909,26 +898,22 @@ async def main():
909
898
  eth = await models.Coinex.get(coin__ticker="ETH", ex=cl.actor.ex).prefetch_related("coin")
910
899
  usdc = await models.Coinex.get(coin__ticker="USDC", ex=cl.actor.ex).prefetch_related("coin")
911
900
  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
901
  cl.all_conds = {
916
902
  c.id: (c.raw_txt, {str(a.maker.exid) for a in c.ads})
917
903
  for c in await Cond.all().prefetch_related("ads__maker")
918
904
  }
919
- # await cl.set_creds()
920
905
  # await cl.actual_cond()
921
906
  await gather(
922
- cl.battle(usdt, rub, False, ["volet"], 79.97), # гонка в стакане покупки - мы продаем
923
- cl.battle(usdt, rub, True, ["volet"], 79.9), # гонка в стакане продажи - мы покупаем
907
+ cl.battle(usdt, rub, False, ["volet"], 79.8), # гонка в стакане покупки - мы продаем
908
+ cl.battle(usdt, rub, True, ["volet"], 79.8), # гонка в стакане продажи - мы покупаем
924
909
  cl.battle(eth, rub, False, ["volet"], 206_000),
925
910
  cl.battle(eth, rub, True, ["volet"], 200_000),
926
911
  cl.battle(btc, rub, False, ["volet"], 8_500_000),
927
912
  cl.battle(btc, rub, True, ["volet"], 8_400_000),
928
913
  cl.battle(usdc, rub, False, ["volet"], 80.5),
929
914
  cl.battle(usdc, rub, True, ["volet"], 79),
930
- cl.take(usdt, rub, False, ceil=80.5, volume=360),
931
- cl.take(usdt, rub, True, ceil=80.5, volume=360),
915
+ cl.take(usdt, rub, False, ceil=80, volume=360),
916
+ cl.take(usdt, rub, True, ceil=80, volume=360),
932
917
  # cl.get_api_orders(), # 10, 1738357200000, 1742504399999
933
918
  )
934
919
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: xync-client
3
- Version: 0.0.57.dev21
3
+ Version: 0.0.57.dev22
4
4
  Author-email: Mike Artemiev <mixartemev@gmail.com>
5
5
  Project-URL: Homepage, https://gitlab.com/XyncNet/client
6
6
  Project-URL: Repository, https://gitlab.com/XyncNet/client