Implement withdrawal logic
This commit is contained in:
parent
a84fff2492
commit
c72d23675b
|
@ -2,6 +2,7 @@ import asyncio
|
|||
|
||||
from apscheduler.schedulers.asyncio import AsyncIOScheduler
|
||||
from django.core.management.base import BaseCommand
|
||||
from pyotp import TOTP
|
||||
|
||||
from core.clients.aggregators.nordigen import NordigenClient
|
||||
from core.clients.platforms.agora import AgoraClient
|
||||
|
@ -62,6 +63,43 @@ async def withdrawal_job(group=None):
|
|||
title="Your withdrawal is ready!",
|
||||
)
|
||||
|
||||
if not checks["total_profit_in_xmr"] >= 0:
|
||||
return
|
||||
|
||||
total_withdrawal = sum(collapsed.values())
|
||||
if checks["total_xmr_agora"] < total_withdrawal:
|
||||
await sendmsg(
|
||||
group.user,
|
||||
(
|
||||
f"Attempting to withdraw {total_withdrawal}, but you only have"
|
||||
f" {checks['total_xmr_agora']} in your Agora wallet."
|
||||
),
|
||||
title="Withdrawal failed",
|
||||
)
|
||||
continue
|
||||
if group.platforms.count() != 1:
|
||||
raise Exception("You can only have one platform per group")
|
||||
|
||||
platform = group.platforms.first()
|
||||
# run = await AgoraClient(platform)
|
||||
otp_code = TOTP(platform.otp_token).now()
|
||||
|
||||
for wallet, amount in collapsed.items():
|
||||
print("ITER SEND", wallet, amount)
|
||||
cast = {
|
||||
"address": wallet.address,
|
||||
"amount": amount,
|
||||
"password": platform.password,
|
||||
"otp": otp_code,
|
||||
}
|
||||
|
||||
print("CAST ADDRESS", cast["address"])
|
||||
print("CAST AMOUNT", cast["amount"])
|
||||
print("CAST OTP TRUNCATED BY 2", cast["otp"][-2])
|
||||
|
||||
# sent = await run.call("wallet_send_xmr", **cast)
|
||||
# print("SENT", sent)
|
||||
|
||||
|
||||
async def aggregator_job():
|
||||
aggregators = Aggregator.objects.filter(enabled=True)
|
||||
|
|
Loading…
Reference in New Issue