diff --git a/make_post_sell/lib/crypto_watcher/__init__.py b/make_post_sell/lib/crypto_watcher/__init__.py index fe6bd32..434e3be 100644 --- a/make_post_sell/lib/crypto_watcher/__init__.py +++ b/make_post_sell/lib/crypto_watcher/__init__.py @@ -3357,19 +3357,25 @@ def process_sweep_confirmations(request, settings): db = request.dbsession # Query payments that need sweep confirmation monitoring - sweep_queue = ( - db.query(CryptoPayment) - .options( - sa.orm.joinedload(CryptoPayment.user), - sa.orm.joinedload(CryptoPayment.shop), + sweep_queue = [] + + # Query each coin type with its specific threshold + for coin_type, required_confirmations in OUTBOUND_CONFIRMATIONS_REQUIRED.items(): + coin_sweeps = ( + db.query(CryptoPayment) + .options( + sa.orm.joinedload(CryptoPayment.user), + sa.orm.joinedload(CryptoPayment.shop), + ) + .filter( + CryptoPayment.status == CryptoPayment.STATUS_CONFIRMED, + CryptoPayment.coin_type == coin_type, + CryptoPayment.swept_tx_hash != None, + CryptoPayment.swept_confirmations < required_confirmations, + ) + .all() ) - .filter( - CryptoPayment.status == CryptoPayment.STATUS_CONFIRMED, - CryptoPayment.swept_tx_hash != None, - CryptoPayment.swept_confirmations < 10, # Max threshold - ) - .all() - ) + sweep_queue.extend(coin_sweeps) if not sweep_queue: log.processing_cycle("No sweep transactions need confirmation monitoring") diff --git a/make_post_sell/scripts/alembic/versions/0915b3ff883d_add_swept_confirmations_to_track_sweep_.py b/make_post_sell/scripts/alembic/versions/0915b3ff883d_add_swept_confirmations_to_track_sweep_.py index 02c075f..45a1ce7 100644 --- a/make_post_sell/scripts/alembic/versions/0915b3ff883d_add_swept_confirmations_to_track_sweep_.py +++ b/make_post_sell/scripts/alembic/versions/0915b3ff883d_add_swept_confirmations_to_track_sweep_.py @@ -21,7 +21,7 @@ from make_post_sell.models.meta import UUIDType def upgrade(): # Add swept_confirmations column to mps_crypto_payment table op.add_column('mps_crypto_payment', - sa.Column('swept_confirmations', sa.Integer(), nullable=False, server_default='0') + sa.Column('swept_confirmations', sa.Integer(), nullable=False, server_default='10') )