Skip to content

Commit b6f91f5

Browse files
committed
don't fail job on bundler request failure
1 parent 33a1cb4 commit b6f91f5

File tree

1 file changed

+26
-10
lines changed

1 file changed

+26
-10
lines changed

executors/src/eip7702_executor/confirm.rs

Lines changed: 26 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,10 @@ use twmq::{
1818

1919
use crate::eip7702_executor::send::Eip7702Sender;
2020
use 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

Comments
 (0)