@@ -18,7 +18,10 @@ use twmq::{
1818
1919use crate :: eip7702_executor:: send:: Eip7702Sender ;
2020use crate :: {
21- metrics:: { record_transaction_queued_to_confirmed, current_timestamp_ms, calculate_duration_seconds_from_twmq} ,
21+ metrics:: {
22+ calculate_duration_seconds_from_twmq, current_timestamp_ms,
23+ record_transaction_queued_to_confirmed,
24+ } ,
2225 transaction_registry:: TransactionRegistry ,
2326 webhook:: {
2427 WebhookJobHandler ,
@@ -194,10 +197,18 @@ where
194197 . bundler_client ( )
195198 . tw_get_transaction_hash ( & job_data. bundler_transaction_id )
196199 . await
197- . map_err ( |e| Eip7702ConfirmationError :: TransactionHashError {
198- message : e. to_string ( ) ,
200+ . map_err ( |e| {
201+ tracing:: error!(
202+ transaction_id = job_data. bundler_transaction_id,
203+ sender_details = ?job_data. sender_details,
204+ error = ?e,
205+ "Failed to get transaction hash from bundler"
206+ ) ;
207+ Eip7702ConfirmationError :: TransactionHashError {
208+ message : e. to_string ( ) ,
209+ }
199210 } )
200- . map_err_fail ( ) ?;
211+ . map_err_nack ( Some ( Duration :: from_secs ( 10 ) ) , RequeuePosition :: Last ) ?;
201212
202213 let transaction_hash = match transaction_hash_res {
203214 TwGetTransactionHashResponse :: Success { transaction_hash } => {
@@ -266,12 +277,17 @@ where
266277 "Transaction confirmed successfully"
267278 ) ;
268279
269- // Record metrics if original timestamp is available
270- if let Some ( original_timestamp) = job_data. original_queued_timestamp {
271- let confirmed_timestamp = current_timestamp_ms ( ) ;
272- let queued_to_confirmed_duration = calculate_duration_seconds_from_twmq ( original_timestamp, confirmed_timestamp) ;
273- record_transaction_queued_to_confirmed ( "eip7702" , job_data. chain_id , queued_to_confirmed_duration) ;
274- }
280+ // Record metrics if original timestamp is available
281+ if let Some ( original_timestamp) = job_data. original_queued_timestamp {
282+ let confirmed_timestamp = current_timestamp_ms ( ) ;
283+ let queued_to_confirmed_duration =
284+ calculate_duration_seconds_from_twmq ( original_timestamp, confirmed_timestamp) ;
285+ record_transaction_queued_to_confirmed (
286+ "eip7702" ,
287+ job_data. chain_id ,
288+ queued_to_confirmed_duration,
289+ ) ;
290+ }
275291
276292 Ok ( Eip7702ConfirmationResult {
277293 transaction_id : job_data. transaction_id . clone ( ) ,
0 commit comments