from datetime import datetime, timezone from sqlalchemy import select from sqlalchemy.ext.asyncio import AsyncSession from app.db.models import PendingTransaction, RoundParticipant from app.tx.confirmation import register_handler async def _on_bet_confirmed(session: AsyncSession, pending: PendingTransaction) -> None: participant = await session.scalar( select(RoundParticipant).where(RoundParticipant.bet_txid == pending.current_txid) ) if participant is not None and participant.status == "broadcast": participant.status = "confirmed" participant.confirmed_at = datetime.now(timezone.utc) register_handler("bet", _on_bet_confirmed)