xync-client 0.0.218.dev8__tar.gz → 0.0.218.dev10__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 (134) hide show
  1. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/PKG-INFO +1 -1
  2. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/tests/TestOrder.py +2 -2
  3. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Abc/Agent.py +4 -1
  4. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Abc/Ex.py +3 -2
  5. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Abc/Order.py +11 -1
  6. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Bybit/agent.py +1 -3
  7. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Bybit/order.py +21 -9
  8. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client.egg-info/PKG-INFO +1 -1
  9. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/.env.sample +0 -0
  10. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/.gitignore +0 -0
  11. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/.pre-commit-config.yaml +0 -0
  12. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/CLAUDE.md +0 -0
  13. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/README.md +0 -0
  14. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/__init__.py +0 -0
  15. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/makefile +0 -0
  16. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/pyproject.toml +0 -0
  17. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/setup.cfg +0 -0
  18. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/tests/TestAgent.py +0 -0
  19. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/tests/TestAsset.py +0 -0
  20. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/tests/TestEx.py +0 -0
  21. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/tests/_todo_refact/Binance/test_binance.py +0 -0
  22. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/tests/_todo_refact/Bybit/test_bybit.py +0 -0
  23. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/tests/_todo_refact/Bybit/test_bybit_p2p.py +0 -0
  24. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/tests/_todo_refact/Gate/test_gate.py +0 -0
  25. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/tests/_todo_refact/Wallet/test_agent.py +0 -0
  26. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/tests/_todo_refact/Wallet/test_ex.py +0 -0
  27. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/tests/_todo_refact/__init__.py +0 -0
  28. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/tests/_todo_refact/_test_ex.py +0 -0
  29. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Abc/AdLoader.py +0 -0
  30. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Abc/Asset.py +0 -0
  31. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Abc/Auth.py +0 -0
  32. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Abc/BaseTest.py +0 -0
  33. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Abc/Exception.py +0 -0
  34. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Abc/HasAbotUid.py +0 -0
  35. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Abc/InAgent.py +0 -0
  36. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Abc/PmAgent.py +0 -0
  37. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Abc/xtype.py +0 -0
  38. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Binance/__init__.py +0 -0
  39. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Binance/binance_async.py +0 -0
  40. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Binance/earn_api.py +0 -0
  41. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Binance/etype/ad.py +0 -0
  42. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Binance/etype/pm.py +0 -0
  43. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Binance/ex.py +0 -0
  44. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Binance/exceptions.py +0 -0
  45. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Binance/sapi.py +0 -0
  46. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Binance/web_c2c.py +0 -0
  47. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/BingX/__init__.py +0 -0
  48. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/BingX/agent.py +0 -0
  49. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/BingX/base.py +0 -0
  50. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/BingX/etype/ad.py +0 -0
  51. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/BingX/etype/pm.py +0 -0
  52. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/BingX/ex.py +0 -0
  53. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/BingX/req.mjs +0 -0
  54. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/BingX/sign.js +0 -0
  55. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/BitGet/__init__.py +0 -0
  56. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/BitGet/agent.py +0 -0
  57. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/BitGet/etype/ad.py +0 -0
  58. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/BitGet/ex.py +0 -0
  59. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/BitPapa/ex.py +0 -0
  60. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Bybit/etype/__init__.py +0 -0
  61. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Bybit/etype/ad.py +0 -0
  62. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Bybit/etype/cred.py +0 -0
  63. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Bybit/etype/order.py +0 -0
  64. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Bybit/ex.py +0 -0
  65. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Bybit/inAgent.py +0 -0
  66. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Bybit/web_earn.py +0 -0
  67. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Bybit/web_p2p.py +0 -0
  68. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Bybit/ws.py +0 -0
  69. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Gate/etype/ad.py +0 -0
  70. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Gate/ex.py +0 -0
  71. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Gate/premarket.py +0 -0
  72. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Gmail/__init__.py +0 -0
  73. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Htx/agent.py +0 -0
  74. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Htx/earn.py +0 -0
  75. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Htx/etype/__init__.py +0 -0
  76. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Htx/etype/ad.py +0 -0
  77. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Htx/etype/cred.py +0 -0
  78. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Htx/etype/order.py +0 -0
  79. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Htx/etype/pm.py +0 -0
  80. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Htx/etype/test.py +0 -0
  81. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Htx/ex.py +0 -0
  82. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/KuCoin/etype/ad.py +0 -0
  83. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/KuCoin/etype/pm.py +0 -0
  84. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/KuCoin/ex.py +0 -0
  85. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/KuCoin/web.py +0 -0
  86. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Mexc/agent.py +0 -0
  87. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Mexc/api.py +0 -0
  88. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Mexc/etype/ad.py +0 -0
  89. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Mexc/etype/order.py +0 -0
  90. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Mexc/etype/pm.py +0 -0
  91. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Mexc/ex.py +0 -0
  92. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Okx/1.py +0 -0
  93. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Okx/agent.py +0 -0
  94. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Okx/etype/ad.py +0 -0
  95. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Okx/etype/pm.py +0 -0
  96. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Okx/ex.py +0 -0
  97. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Pms/.gitignore +0 -0
  98. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Pms/Alfa/__init__.py +0 -0
  99. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Pms/Alfa/state.json +0 -0
  100. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Pms/MTS/__init__.py +0 -0
  101. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Pms/Ozon/__init__.py +0 -0
  102. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Pms/Payeer/.gitignore +0 -0
  103. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Pms/Payeer/agent.py +0 -0
  104. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Pms/Payeer/login.py +0 -0
  105. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Pms/Payeer/trade.py +0 -0
  106. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Pms/Sber/__init__.py +0 -0
  107. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Pms/Sber/utils.py +0 -0
  108. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Pms/Tinkoff/__init__.py +0 -0
  109. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Pms/Volet/_todo_req/req.mjs +0 -0
  110. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Pms/Volet/_todo_req/req.py +0 -0
  111. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Pms/Volet/agent.py +0 -0
  112. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Pms/Volet/api.py +0 -0
  113. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Pms/Volet/pl.py +0 -0
  114. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Pms/Xync/__main__.py +0 -0
  115. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Pms/Xync/ed.py +0 -0
  116. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Pms/Yandex/__init__.py +0 -0
  117. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/Pms/airtm/__init__.py +0 -0
  118. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/TgWallet/agent.py +0 -0
  119. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/TgWallet/asset.py +0 -0
  120. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/TgWallet/auth.py +0 -0
  121. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/TgWallet/ex.py +0 -0
  122. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/TgWallet/inAgent.py +0 -0
  123. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/TgWallet/order.py +0 -0
  124. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/TgWallet/pyd.py +0 -0
  125. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/TgWallet/pyro.py +0 -0
  126. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/TgWallet/web.py +0 -0
  127. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/__init__.py +0 -0
  128. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/details.py +0 -0
  129. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/loader.py +0 -0
  130. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client/pm_unifier.py +0 -0
  131. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client.egg-info/SOURCES.txt +0 -0
  132. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client.egg-info/dependency_links.txt +0 -0
  133. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/xync_client.egg-info/requires.txt +0 -0
  134. {xync_client-0.0.218.dev8 → xync_client-0.0.218.dev10}/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.218.dev8
3
+ Version: 0.0.218.dev10
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
@@ -14,7 +14,7 @@ class TestOrder(BaseTest):
14
14
 
15
15
  @pytest.fixture(scope="class", autouse=True)
16
16
  async def clients(self) -> BaseOrderClient:
17
- order = await Order.get(exid=self.exid).prefetch_related("ad__pair_side")
17
+ order = await Order.get(exid=self.exid).prefetch_related("ad__pair_side", "cred")
18
18
  if not (agent := await Agent.get_or_none(actor_id=order.ad.maker_id)):
19
19
  agent = await Agent.get(actor_id=order.taker_id)
20
20
  await agent.fetch_related("actor__ex", "actor__person__user__gmail")
@@ -31,7 +31,7 @@ class TestOrder(BaseTest):
31
31
 
32
32
  # async def test_cancel_accept(self, clients: BaseOrderClient):
33
33
  # res = await clients.cancel_accept()
34
- # assert res, f"cancel_accept failed: {res}"
34
+ # assert not res[0], f"cancel_accept failed: {res}"
35
35
  #
36
36
  # async def test_appeal_accept(self, clients: BaseOrderClient):
37
37
  # res = await clients.appeal_accept()
@@ -209,7 +209,10 @@ class BaseAgentClient(HttpClient, BaseInAgentClient): # , metaclass=ABCMeta
209
209
  order_db = await self.order_save(order)
210
210
  elif order_db.status in {OrderStatus.created, OrderStatus.paid}:
211
211
  if order_db.hot_id:
212
- await order_db.hot_process() # todo: без увед в тг
212
+ await order_db.hot_process()
213
+ elif order_db.status in {OrderStatus.canceled}:
214
+ ocl = order_db.client(self)
215
+ await ocl.cancel_request()
213
216
  self.orders[order_exid] = order_db, order
214
217
  return self.orders[order_exid]
215
218
 
@@ -463,6 +463,7 @@ class BaseExClient(HttpClient, AdLoader):
463
463
  _, cur_scale, _cur_min = await self.x2e_cur(await self.e2x_cur(base_ad.curex_exid))
464
464
  _, coin_scale = await self.x2e_coin(await self.e2x_coin(base_ad.coinex_exid))
465
465
  badd = base_ad.model_dump()
466
+ pms = await models.Pm.filter(pmexs__ex=self.ex, pmexs__exid__in=base_ad.pmex_exids)
466
467
  badd.update(
467
468
  amount=int((base_ad.amount or base_ad.quantity * base_ad.price) * 10**cur_scale),
468
469
  max_fiat=int(base_ad.max_fiat * 10**cur_scale),
@@ -473,7 +474,7 @@ class BaseExClient(HttpClient, AdLoader):
473
474
  maker_id=(await self.e2x_actor(base_ad.maker)).id,
474
475
  cond_id=cond and cond.id,
475
476
  pair_side_id=await self.e2x_pair(base_ad.coinex_exid, base_ad.curex_exid, bool(base_ad.side.value)),
476
- pms=await models.Pm.filter(pmexs__ex=self.ex, pmexs__exid__in=base_ad.pmex_exids),
477
+ pm_ids=[pm.id for pm in pms],
477
478
  )
478
479
  ad = xtype.BaseAd.model_validate(badd)
479
480
  ad_upd = models.Ad.validate(ad.model_dump(), with_pk=False)
@@ -482,7 +483,7 @@ class BaseExClient(HttpClient, AdLoader):
482
483
  except OperationalError as e:
483
484
  raise e
484
485
  await ad_db.pms.clear()
485
- await ad_db.pms.add(*ad.pms)
486
+ await ad_db.pms.add(*pms)
486
487
  return ad_db
487
488
 
488
489
  async def load_cond(self, txt: str, maker_exid: int) -> models.Cond | None:
@@ -1,5 +1,7 @@
1
+ import logging
1
2
  from abc import abstractmethod
2
3
 
4
+
3
5
  from xync_client.Abc.Agent import BaseAgentClient
4
6
  from xync_schema.models import Order, PmEx, CredEx, PairSide, Cred
5
7
 
@@ -35,7 +37,15 @@ class BaseOrderClient:
35
37
  async def cancel_request(self) -> bool: ...
36
38
 
37
39
  # 6: Одобрение запроса на отмену (оплаченная мной покупка)
38
- async def cancel_accept(self): ...
40
+ async def cancel_accept(self):
41
+ try:
42
+ return await self._cancel_accept()
43
+ except Exception as e:
44
+ o = await self.agent_client.get_order_full(self.order.exid)
45
+ logging.error(f"ORDER STATUS NOW: {o.status}")
46
+ raise e
47
+ txt = "Buyer canceled your sell" if self.im_seller else "You accepted canceling of buy"
48
+ logging.info(txt)
39
49
 
40
50
  # 7: [S] Подтвердить получение оплаты
41
51
  @abstractmethod
@@ -908,9 +908,7 @@ class AgentClient(BaseAgentClient): # Bybit client
908
908
  # msg_read()
909
909
  upd = Read.model_validate(data["data"])
910
910
 
911
- elif (
912
- topic == TopicWs.SELLER_CANCEL_CHANGE.name
913
- ): # я покупатель, уже проставил оплату, продавец запросил отмену
911
+ elif topic == TopicWs.SELLER_CANCEL_CHANGE.name: # me buyer mark paid already, seller asks to cancel
914
912
  upd = SellerCancelChange.model_validate(data["data"])
915
913
  order_db, order = await self.load_order(upd.id)
916
914
  await order_db.cancel_request()
@@ -3,6 +3,8 @@ from asyncio import sleep
3
3
  from uuid import uuid4
4
4
 
5
5
  from bybit_p2p._exceptions import FailedRequestError
6
+ from xync_schema.models import Order
7
+
6
8
  from xync_client.Bybit.agent import AgentClient
7
9
 
8
10
  from xync_client.Abc.Order import BaseOrderClient
@@ -10,6 +12,14 @@ from xync_client.Abc.Order import BaseOrderClient
10
12
 
11
13
  class OrderClient(BaseOrderClient):
12
14
  agent_client: AgentClient
15
+ hdrs = {
16
+ "accept-language": "en",
17
+ "sec-fetch-site": "same-origin",
18
+ }
19
+
20
+ def __init__(self, order: Order, agent_client: AgentClient):
21
+ super().__init__(order, agent_client)
22
+ self.hdrs["referer"] = f"https://www.bybit.com/p2p/orderList/{order.exid}"
13
23
 
14
24
  # 5: Перевод сделки в состояние "оплачено", c отправкой чека
15
25
  async def _mark_payed(self, credex_exid: int = None, pmex_exid: int | str = None, receipt: bytes = None):
@@ -42,21 +52,23 @@ class OrderClient(BaseOrderClient):
42
52
  "cancelRemark": "",
43
53
  "voucherPictures": "",
44
54
  }
45
- res = await self.agent_client._post("/x-api/fiat/otc/order/cancel", data)
55
+ res = await self.agent_client._post("/x-api/fiat/otc/order/cancel", data, hdrs=self.hdrs)
46
56
  if res["ret_code"]:
47
57
  logging.error(res, self.order.exid)
48
- return res["ret_code"] == 0
58
+ return res["ret_code"]
49
59
 
50
60
  # 6: Запрос отмены (оплаченная контрагентом продажа)
51
61
  async def cancel_request(self) -> bool: ...
52
62
 
53
63
  # 6: Одобрение запроса на отмену (оплаченная мной покупка)
54
- async def cancel_accept(self) -> bool:
64
+ async def _cancel_accept(self) -> bool:
55
65
  data = {"orderId": str(self.order.exid), "examineResult": "PASS"}
56
- res = await self.agent_client._post("/x-api/fiat/otc/order/buyer/examine/sellerCancelOrderApply", data)
66
+ res = await self.agent_client._post(
67
+ "/x-api/fiat/otc/order/buyer/examine/sellerCancelOrderApply", data, hdrs=self.hdrs
68
+ )
57
69
  if res["ret_code"]:
58
70
  logging.error(res, self.order.exid)
59
- return res["ret_code"] == 0
71
+ return res["ret_code"]
60
72
 
61
73
  # 9, 10: Подать аппеляцию cо скриншотом/видео/файлом
62
74
  async def start_appeal(self, file: bytes = None) -> bool:
@@ -73,7 +85,7 @@ class OrderClient(BaseOrderClient):
73
85
  res = await self.agent_client._post("/x-api/fiat/otc/order/appealwithconsult", data)
74
86
  if res["ret_code"]:
75
87
  logging.error(res, self.order.exid)
76
- return res["ret_code"] == 0
88
+ return res["ret_code"]
77
89
 
78
90
  # 9, 10: Подать аппеляцию cо скриншотом/видео/файлом
79
91
  async def start_completed_order_appeal(self, file: bytes = None) -> bool:
@@ -87,7 +99,7 @@ class OrderClient(BaseOrderClient):
87
99
  res = await self.agent_client._post("/x-api/fiat/otc/completeOrder/appeal", data)
88
100
  if res["ret_code"]:
89
101
  logging.error(res, self.order.exid)
90
- return res["ret_code"] == 0
102
+ return res["ret_code"]
91
103
 
92
104
  # 11, 12: Встречное оспаривание полученной аппеляции cо скриншотом/видео/файлом
93
105
  async def dispute_appeal(self, file) -> bool: ...
@@ -102,7 +114,7 @@ class OrderClient(BaseOrderClient):
102
114
  res = await self.agent_client._post("/x-api/fiat/otc/completeOrder/cancel_appeal", data)
103
115
  if res["ret_code"]:
104
116
  logging.error(res, self.order.exid)
105
- return res["ret_code"] == 0
117
+ return res["ret_code"]
106
118
 
107
119
  async def appeal_accept(self) -> bool:
108
120
  data = {"orderId": str(self.order.exid)}
@@ -110,7 +122,7 @@ class OrderClient(BaseOrderClient):
110
122
  res = await self.agent_client._post("/x-api/fiat/otc/order/cancelAfterCustomerNegotiation", data)
111
123
  if res["ret_code"]:
112
124
  logging.error(res, self.order.exid)
113
- return res["ret_code"] == 0
125
+ return res["ret_code"]
114
126
 
115
127
  # 16: Отправка сообщения юзеру в чат по ордеру с приложенным файлом
116
128
  async def send_order_msg(self, msg: str, file=None):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: xync-client
3
- Version: 0.0.218.dev8
3
+ Version: 0.0.218.dev10
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