feat(withdraw): add user withdrawal flow using CryptoPay

This commit is contained in:
2026-07-20 20:29:36 +05:00
parent 8d4d75f7fd
commit 8ae14f415f
11 changed files with 269 additions and 137 deletions
+9 -8
View File
@@ -4,22 +4,23 @@ from datetime import datetime
from aiosend import CryptoPay, TESTNET, MAINNET
from aiogram import Bot, Dispatcher
from aiogram.enums import ParseMode
from aiogram.fsm.storage.memory import MemoryStorage
from aiogram.client.default import DefaultBotProperties
from config import (
ADMIN_ID,
BOT_TOKEN,
CRYPTO_PAY_NETWORK,
CRYPTO_PAY_TOKEN,
LOG_BOT_TOKEN,
ADMIN_ID,
SHOP_NAME,
CRYPTO_PAY_TOKEN,
CRYPTO_PAY_NETWORK,
)
from db.storage import load_config, load_stats
from handlers import admin, start, upload, user
from runtime import set_bots
from runtime import set_bots, set_cp
from utils.logging import log_admin
@@ -28,11 +29,13 @@ async def main() -> None:
bot = Bot(token=BOT_TOKEN, default=defaults)
log_bot = Bot(token=LOG_BOT_TOKEN, default=defaults) if LOG_BOT_TOKEN else None
set_bots(bot, log_bot)
cp_net = TESTNET if CRYPTO_PAY_NETWORK.lower() == "testnet" else MAINNET
cp = CryptoPay(token=CRYPTO_PAY_TOKEN, network=cp_net)
set_cp(cp)
set_bots(bot, log_bot)
dp = Dispatcher(storage=MemoryStorage())
dp.include_router(start.router)
@@ -52,13 +55,11 @@ async def main() -> None:
try:
await dp.start_polling(bot)
await cp.start_polling(bot)
finally:
if log_bot:
await log_bot.session.close()
await cp.session.close()
await bot.session.close()