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.
- {xync_client-0.0.43.dev15/xync_client.egg-info → xync_client-0.0.43.dev16}/PKG-INFO +1 -1
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Bybit/agent.py +34 -27
- 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
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16/xync_client.egg-info}/PKG-INFO +1 -1
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client.egg-info/SOURCES.txt +1 -1
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/.env.sample +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/.gitignore +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/.pre-commit-config.yaml +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/README.md +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/makefile +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/pyproject.toml +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/setup.cfg +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/tests/TestAgent.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/tests/TestAsset.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/tests/TestEx.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/tests/TestOrder.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/tests/_todo_refact/Binance/test_binance.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/tests/_todo_refact/Bybit/test_bybit.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/tests/_todo_refact/Bybit/test_bybit_p2p.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/tests/_todo_refact/Gate/test_gate.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/tests/_todo_refact/Htx/test_htx_p2p.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/tests/_todo_refact/Wallet/test_agent.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/tests/_todo_refact/Wallet/test_ex.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/tests/_todo_refact/__init__.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/tests/_todo_refact/_test_ex.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Abc/Agent.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Abc/Asset.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Abc/AuthTrait.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Abc/Base.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Abc/BaseTest.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Abc/Ex.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Abc/InAgent.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Abc/Order.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Abc/types.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Binance/__init__.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Binance/binance_async.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Binance/earn_api.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Binance/etype/ad.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Binance/etype/pm.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Binance/ex.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Binance/exceptions.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Binance/sapi.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Binance/web_c2c.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/BingX/__init__.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/BingX/agent.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/BingX/base.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/BingX/etype/ad.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/BingX/etype/pm.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/BingX/ex.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/BingX/req.mjs +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/BingX/sign.js +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/BitGet/__init__.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/BitGet/agent.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/BitGet/etype/ad.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/BitGet/ex.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/BitGet/req.mjs +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/BitPapa/ex.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Bybit/InAgent.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Bybit/etype/ad.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Bybit/etype/cred.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Bybit/etype/order.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Bybit/ex.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Bybit/web_earn.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Bybit/web_p2p.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Bybit/ws.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Gate/etype/ad.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Gate/ex.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Gate/premarket.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Htx/agent.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Htx/earn.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Htx/etype/__init__.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Htx/etype/ad.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Htx/etype/cred.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Htx/etype/pm.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Htx/etype/test.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Htx/ex.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/KuCoin/etype/ad.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/KuCoin/etype/pm.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/KuCoin/ex.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/KuCoin/web.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Mexc/etype/ad.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Mexc/etype/pm.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Mexc/ex.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Okx/etype/ad.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Okx/etype/pm.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Okx/ex.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Pms/Volet/_todo_req/req.mjs +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Pms/Volet/_todo_req/req.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Pms/Volet/api.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/TgWallet/agent.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/TgWallet/asset.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/TgWallet/auth.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/TgWallet/ex.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/TgWallet/inAgent.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/TgWallet/order.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/TgWallet/pyd.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/TgWallet/pyro.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/TgWallet/web.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/__init__.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/loader.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/pm_unifier.py +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client.egg-info/dependency_links.txt +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client.egg-info/requires.txt +0 -0
- {xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client.egg-info/top_level.txt +0 -0
|
@@ -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
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
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
|
-
|
|
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],
|
|
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
|
|
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 =
|
|
249
|
+
va = Client(uid)
|
|
250
250
|
try:
|
|
251
251
|
await va.start(True)
|
|
252
252
|
await va.send(dest, amount)
|
|
@@ -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
|
|
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.43.dev15 → xync_client-0.0.43.dev16}/tests/_todo_refact/Binance/test_binance.py
RENAMED
|
File without changes
|
{xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/tests/_todo_refact/Bybit/test_bybit.py
RENAMED
|
File without changes
|
{xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/tests/_todo_refact/Bybit/test_bybit_p2p.py
RENAMED
|
File without changes
|
|
File without changes
|
{xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/tests/_todo_refact/Htx/test_htx_p2p.py
RENAMED
|
File without changes
|
{xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/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
|
{xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client/Pms/Volet/_todo_req/req.mjs
RENAMED
|
File without changes
|
{xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/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
|
{xync_client-0.0.43.dev15 → xync_client-0.0.43.dev16}/xync_client.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|