xync-client 0.0.43.dev15__tar.gz → 0.0.43.dev16__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 (104) hide show
  1. {xync_client-0.0.43.dev15/xync_client.egg-info → xync_client-0.0.43.dev16}/PKG-INFO +1 -1
  2. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Bybit/agent.py +34 -27
  3. xync_client-0.0.43.dev15/xync_client/Pms/Volet/volet.py → xync_client-0.0.43.dev16/xync_client/Pms/Volet/__init__.py +2 -2
  4. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16/xync_client.egg-info}/PKG-INFO +1 -1
  5. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client.egg-info/SOURCES.txt +1 -1
  6. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/.env.sample +0 -0
  7. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/.gitignore +0 -0
  8. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/.pre-commit-config.yaml +0 -0
  9. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/README.md +0 -0
  10. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/makefile +0 -0
  11. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/pyproject.toml +0 -0
  12. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/setup.cfg +0 -0
  13. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/tests/TestAgent.py +0 -0
  14. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/tests/TestAsset.py +0 -0
  15. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/tests/TestEx.py +0 -0
  16. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/tests/TestOrder.py +0 -0
  17. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/tests/_todo_refact/Binance/test_binance.py +0 -0
  18. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/tests/_todo_refact/Bybit/test_bybit.py +0 -0
  19. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/tests/_todo_refact/Bybit/test_bybit_p2p.py +0 -0
  20. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/tests/_todo_refact/Gate/test_gate.py +0 -0
  21. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/tests/_todo_refact/Htx/test_htx_p2p.py +0 -0
  22. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/tests/_todo_refact/Wallet/test_agent.py +0 -0
  23. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/tests/_todo_refact/Wallet/test_ex.py +0 -0
  24. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/tests/_todo_refact/__init__.py +0 -0
  25. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/tests/_todo_refact/_test_ex.py +0 -0
  26. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Abc/Agent.py +0 -0
  27. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Abc/Asset.py +0 -0
  28. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Abc/AuthTrait.py +0 -0
  29. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Abc/Base.py +0 -0
  30. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Abc/BaseTest.py +0 -0
  31. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Abc/Ex.py +0 -0
  32. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Abc/InAgent.py +0 -0
  33. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Abc/Order.py +0 -0
  34. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Abc/types.py +0 -0
  35. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Binance/__init__.py +0 -0
  36. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Binance/binance_async.py +0 -0
  37. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Binance/earn_api.py +0 -0
  38. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Binance/etype/ad.py +0 -0
  39. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Binance/etype/pm.py +0 -0
  40. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Binance/ex.py +0 -0
  41. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Binance/exceptions.py +0 -0
  42. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Binance/sapi.py +0 -0
  43. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Binance/web_c2c.py +0 -0
  44. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/BingX/__init__.py +0 -0
  45. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/BingX/agent.py +0 -0
  46. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/BingX/base.py +0 -0
  47. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/BingX/etype/ad.py +0 -0
  48. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/BingX/etype/pm.py +0 -0
  49. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/BingX/ex.py +0 -0
  50. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/BingX/req.mjs +0 -0
  51. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/BingX/sign.js +0 -0
  52. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/BitGet/__init__.py +0 -0
  53. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/BitGet/agent.py +0 -0
  54. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/BitGet/etype/ad.py +0 -0
  55. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/BitGet/ex.py +0 -0
  56. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/BitGet/req.mjs +0 -0
  57. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/BitPapa/ex.py +0 -0
  58. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Bybit/InAgent.py +0 -0
  59. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Bybit/etype/ad.py +0 -0
  60. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Bybit/etype/cred.py +0 -0
  61. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Bybit/etype/order.py +0 -0
  62. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Bybit/ex.py +0 -0
  63. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Bybit/web_earn.py +0 -0
  64. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Bybit/web_p2p.py +0 -0
  65. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Bybit/ws.py +0 -0
  66. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Gate/etype/ad.py +0 -0
  67. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Gate/ex.py +0 -0
  68. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Gate/premarket.py +0 -0
  69. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Htx/agent.py +0 -0
  70. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Htx/earn.py +0 -0
  71. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Htx/etype/__init__.py +0 -0
  72. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Htx/etype/ad.py +0 -0
  73. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Htx/etype/cred.py +0 -0
  74. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Htx/etype/pm.py +0 -0
  75. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Htx/etype/test.py +0 -0
  76. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Htx/ex.py +0 -0
  77. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/KuCoin/etype/ad.py +0 -0
  78. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/KuCoin/etype/pm.py +0 -0
  79. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/KuCoin/ex.py +0 -0
  80. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/KuCoin/web.py +0 -0
  81. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Mexc/etype/ad.py +0 -0
  82. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Mexc/etype/pm.py +0 -0
  83. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Mexc/ex.py +0 -0
  84. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Okx/etype/ad.py +0 -0
  85. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Okx/etype/pm.py +0 -0
  86. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Okx/ex.py +0 -0
  87. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Pms/Volet/_todo_req/req.mjs +0 -0
  88. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Pms/Volet/_todo_req/req.py +0 -0
  89. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Pms/Volet/api.py +0 -0
  90. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/TgWallet/agent.py +0 -0
  91. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/TgWallet/asset.py +0 -0
  92. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/TgWallet/auth.py +0 -0
  93. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/TgWallet/ex.py +0 -0
  94. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/TgWallet/inAgent.py +0 -0
  95. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/TgWallet/order.py +0 -0
  96. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/TgWallet/pyd.py +0 -0
  97. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/TgWallet/pyro.py +0 -0
  98. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/TgWallet/web.py +0 -0
  99. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/__init__.py +0 -0
  100. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/loader.py +0 -0
  101. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/pm_unifier.py +0 -0
  102. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client.egg-info/dependency_links.txt +0 -0
  103. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client.egg-info/requires.txt +0 -0
  104. {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/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.43.dev15
3
+ Version: 0.0.43.dev16
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
@@ -367,38 +367,42 @@ class AgentClient(BaseAgentClient): # Bybit client
367
367
  ceil: float,
368
368
  place: int = 1,
369
369
  ):
370
- k = (-1) ** int(is_sell)
370
+ k = (-1) ** int(is_sell) # on_buy=1, on_sell=-1
371
371
  pays: list[str] = []
372
372
  while self.actor.person.user.status > 0:
373
373
  ads: list[Ad] = await self.ads(coin, cur, is_sell, pms)
374
374
  idiot_maker_filter(ads, ceil, k)
375
375
  cur_plc = [i for i, ad in enumerate(ads) if int(ad.accountId) == self.actor.exid][0]
376
- if cur_plc > place:
377
- cad: Ad = ads[place]
378
- mad: Ad = ads.pop(cur_plc)
379
- if not pays: # cached
380
- pays += await models.CredEx.filter(
381
- cred__pmcur__pm__pmexs__exid__in=mad.payments, cred__pmcur__pm__pmexs__ex_id=self.ex.id
382
- ).values_list("exid", flat=True)
383
- cprice = float(cad.price)
384
- if (cprice - ceil) * k > 0:
385
- rprice = cprice
386
- else:
387
- rprice = float(ads[cur_plc].price)
388
- step = 0.01 if cad.recentExecuteRate > mad.recentExecuteRate else 0
389
- mew_price = str(round(rprice - k * step, cur.scale))
390
- if mad.price == mew_price:
391
- print(end="V" if is_sell else "A", flush=True)
392
- await sleep(2)
393
- continue
394
- mad.price = mew_price
395
- mad.quantity = str(floor(amount))
396
- req = AdUpdateRequest.model_validate({**mad.model_dump(), "paymentIds": [str(p) for p in pays]})
397
- _res = self.ad_upd(req)
398
- print("-" if is_sell else "+", end=req.price, flush=True)
399
- else:
376
+ mad: Ad = ads.pop(cur_plc)
377
+ mprice = float(mad.price)
378
+ if not pays: # cached
379
+ pays += await models.CredEx.filter(
380
+ cred__pmcur__pm__pmexs__exid__in=mad.payments, cred__pmcur__pm__pmexs__ex_id=self.ex.id
381
+ ).values_list("exid", flat=True)
382
+ cad: Ad = ads[place] if cur_plc > place else ads[cur_plc]
383
+ cprice = float(cad.price)
384
+ rprice = cprice if (cprice - ceil) * k > 0 else mprice
385
+ mew_price = str(round(rprice - k * step(mad, cad), cur.scale))
386
+ if mad.price == mew_price:
400
387
  print(end="v" if is_sell else "^", flush=True)
401
- await sleep(3)
388
+ await sleep(2)
389
+ continue
390
+ mad.price = mew_price
391
+ mad.quantity = str(floor(amount))
392
+ mad.maxAmount = str(3_500_000)
393
+ req = AdUpdateRequest.model_validate({**mad.model_dump(), "paymentIds": [str(p) for p in pays]})
394
+ _res = self.ad_upd(req)
395
+ print("-" if is_sell else "+", end=req.price, flush=True)
396
+ await sleep(36)
397
+
398
+
399
+ def step(mad, cad) -> float:
400
+ return (
401
+ 0.01
402
+ if cad.recentExecuteRate > mad.recentExecuteRate
403
+ or (cad.recentExecuteRate == mad.recentExecuteRate and cad.orderNum > mad.orderNum)
404
+ else 0
405
+ )
402
406
 
403
407
 
404
408
  def idiot_maker_filter(ads: list[Ad], ceil: float, k: Literal[-1, 1]):
@@ -421,12 +425,15 @@ async def main():
421
425
  # await cl.ex_client.set_pmcurexs(cookies=actor.agent.auth["cookies"]) # 607 -> 629
422
426
  coin = await models.Coin.get(ticker="USDT")
423
427
  cur = await models.Cur.get(ticker="RUB")
428
+ await models.Direction.get(
429
+ pairex__ex=cl.ex, pairex__pair__coin__ticker="USDT", pairex__pair__cur__ticker="RUB", sell=True
430
+ )
424
431
  volet = await models.Pm.get(norm="volet")
425
432
  asset = await models.Asset.filter(addr__actor=actor, addr__coin=coin).first()
426
433
  asset.free - (asset.freeze or 0) - (asset.lock or 0)
427
434
  # await cl.set_creds()
428
435
  await gather(
429
- cl.battle(coin, cur, False, [volet], 235, 86.9, 0),
436
+ cl.battle(coin, cur, False, [volet], 500, 86.9, 0),
430
437
  cl.battle(coin, cur, True, [volet], 65, 82.1, 0),
431
438
  )
432
439
 
@@ -55,7 +55,7 @@ async def report(uid: int, byts: bytes, msg: str, exc: bool = True):
55
55
  raise Exception(msg)
56
56
 
57
57
 
58
- class VoletAgent:
58
+ class Client:
59
59
  agent: PmAgent
60
60
  pbot: PyroClient
61
61
  page: Page
@@ -246,7 +246,7 @@ async def _test(uid: int, dest: str, amount):
246
246
  from xync_schema import models
247
247
 
248
248
  _ = await init_db(PG_DSN, models, True)
249
- va = VoletAgent(uid)
249
+ va = Client(uid)
250
250
  try:
251
251
  await va.start(True)
252
252
  await va.send(dest, amount)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: xync-client
3
- Version: 0.0.43.dev15
3
+ Version: 0.0.43.dev16
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
@@ -87,8 +87,8 @@ xync_client/Mexc/etype/pm.py
87
87
  xync_client/Okx/ex.py
88
88
  xync_client/Okx/etype/ad.py
89
89
  xync_client/Okx/etype/pm.py
90
+ xync_client/Pms/Volet/__init__.py
90
91
  xync_client/Pms/Volet/api.py
91
- xync_client/Pms/Volet/volet.py
92
92
  xync_client/Pms/Volet/_todo_req/req.mjs
93
93
  xync_client/Pms/Volet/_todo_req/req.py
94
94
  xync_client/TgWallet/agent.py