From e8f111c8590c9d224f9056fd8e855dccb45e5323 Mon Sep 17 00:00:00 2001 From: evgeny-stakewise <123374581+evgeny-stakewise@users.noreply.github.com> Date: Tue, 5 Mar 2024 13:45:28 +0300 Subject: [PATCH] Fix tx confirm (#300) --- src/exits/execution.py | 5 ++++- src/harvest/execution.py | 6 +++++- src/validators/execution.py | 11 +++++++++-- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/exits/execution.py b/src/exits/execution.py index 7c8b1c59..208117fc 100644 --- a/src/exits/execution.py +++ b/src/exits/execution.py @@ -36,7 +36,10 @@ async def submit_exit_signatures( return None logger.info('Waiting for transaction %s confirmation', Web3.to_hex(tx)) - await execution_client.eth.wait_for_transaction_receipt( + tx_receipt = await execution_client.eth.wait_for_transaction_receipt( tx, timeout=settings.execution_transaction_timeout ) + if not tx_receipt['status']: + logger.error('UpdateExitSignatures transaction failed') + return None return Web3.to_hex(tx) diff --git a/src/harvest/execution.py b/src/harvest/execution.py index 4f1e33e2..55688e4b 100644 --- a/src/harvest/execution.py +++ b/src/harvest/execution.py @@ -35,7 +35,11 @@ async def submit_harvest_transaction(harvest_params: HarvestParams) -> HexStr | tx_hash = Web3.to_hex(tx) logger.info('Waiting for transaction %s confirmation', tx_hash) - await execution_client.eth.wait_for_transaction_receipt( + tx_receipt = await execution_client.eth.wait_for_transaction_receipt( tx, timeout=settings.execution_transaction_timeout ) + if not tx_receipt['status']: + logger.error('Harvest transaction failed') + return None + return tx_hash diff --git a/src/validators/execution.py b/src/validators/execution.py index 7359595b..aeb9db6f 100644 --- a/src/validators/execution.py +++ b/src/validators/execution.py @@ -267,9 +267,13 @@ async def register_single_validator( tx_hash = Web3.to_hex(tx) logger.info('Waiting for transaction %s confirmation', tx_hash) - await execution_client.eth.wait_for_transaction_receipt( + tx_receipt = await execution_client.eth.wait_for_transaction_receipt( tx, timeout=settings.execution_transaction_timeout ) + if not tx_receipt['status']: + logger.error('Registration transaction failed') + return None + return tx_hash @@ -319,7 +323,10 @@ async def register_multiple_validator( tx_hash = Web3.to_hex(tx) logger.info('Waiting for transaction %s confirmation', tx_hash) - await execution_client.eth.wait_for_transaction_receipt( + tx_receipt = await execution_client.eth.wait_for_transaction_receipt( tx, timeout=settings.execution_transaction_timeout ) + if not tx_receipt['status']: + logger.error('Registration transaction failed') + return None return tx_hash