From 745dc102393e7889c4a4aaae77d50c5e55190d57 Mon Sep 17 00:00:00 2001 From: Prithvish Baidya Date: Thu, 17 Jul 2025 08:58:41 +0530 Subject: [PATCH 1/2] Add address field to EoaExecutorEvent and related structures - Introduced an `address` field in `EoaExecutorEvent` to capture the user's request address. - Updated the `EoaSendAttemptSuccessData` structure to include the address. - Modified event creation in various store implementations to populate the new address field from user requests. - Enhanced webhook event handling to include address information for better tracking and reporting of transaction outcomes. --- executors/src/eoa/events.rs | 17 ++++++++++++++--- executors/src/eoa/store/atomic.rs | 1 + executors/src/eoa/store/borrowed.rs | 3 +++ executors/src/eoa/store/submitted.rs | 2 ++ executors/src/eoa/worker/confirm.rs | 9 +++++---- 5 files changed, 25 insertions(+), 7 deletions(-) diff --git a/executors/src/eoa/events.rs b/executors/src/eoa/events.rs index e11b683..9c29e87 100644 --- a/executors/src/eoa/events.rs +++ b/executors/src/eoa/events.rs @@ -1,5 +1,6 @@ use std::fmt::Display; +use alloy::primitives::Address; use serde::{Deserialize, Serialize}; use twmq::job::RequeuePosition; @@ -16,6 +17,7 @@ use crate::{ pub struct EoaExecutorEvent { pub transaction_id: String, + pub address: Address, } #[derive(Serialize, Deserialize, Debug, Clone, thiserror::Error)] @@ -34,6 +36,13 @@ pub struct EoaSendAttemptNackData { pub error: EoaExecutorWorkerError, } +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct EoaSendAttemptSuccessData { + #[serde(flatten)] + pub submitted_transaction: SubmittedTransactionDehydrated, + pub address: Address, +} + #[derive(Debug, Clone, Serialize, Deserialize)] pub struct EoaExecutorConfirmedTransaction { pub receipt: alloy::rpc::types::TransactionReceipt, @@ -60,15 +69,17 @@ impl EoaExecutorEvent { pub fn send_attempt_success_envelope( &self, submitted_transaction: SubmittedTransactionDehydrated, - ) -> BareWebhookNotificationEnvelope> - { + ) -> BareWebhookNotificationEnvelope> { BareWebhookNotificationEnvelope { transaction_id: self.transaction_id.clone(), executor_name: EXECUTOR_NAME.to_string(), stage_name: EoaExecutorStage::Send.to_string(), event_type: StageEvent::Success, payload: SerializableSuccessData { - result: submitted_transaction.clone(), + result: EoaSendAttemptSuccessData { + submitted_transaction: submitted_transaction.clone(), + address: self.address, + }, }, } } diff --git a/executors/src/eoa/store/atomic.rs b/executors/src/eoa/store/atomic.rs index 50a74fc..9794e4a 100644 --- a/executors/src/eoa/store/atomic.rs +++ b/executors/src/eoa/store/atomic.rs @@ -535,6 +535,7 @@ impl AtomicEoaExecutorStore { let event = EoaExecutorEvent { transaction_id: pending_transaction.transaction_id.clone(), + address: pending_transaction.user_request.from, }; let fail_envelope = event.transaction_failed_envelope(error.clone(), 1); diff --git a/executors/src/eoa/store/borrowed.rs b/executors/src/eoa/store/borrowed.rs index 825db20..7408ec7 100644 --- a/executors/src/eoa/store/borrowed.rs +++ b/executors/src/eoa/store/borrowed.rs @@ -139,6 +139,7 @@ impl SafeRedisTransaction for ProcessBorrowedTransactions<'_> { // Queue webhook event using user_request from SubmissionResult let event = EoaExecutorEvent { + address: result.transaction.user_request.from, transaction_id: transaction_id.to_string(), }; @@ -177,6 +178,7 @@ impl SafeRedisTransaction for ProcessBorrowedTransactions<'_> { // Queue webhook event using user_request from SubmissionResult let event = EoaExecutorEvent { transaction_id: transaction_id.to_string(), + address: result.transaction.user_request.from, }; let envelope = event.send_attempt_nack_envelope(nonce, err.clone(), 1); @@ -208,6 +210,7 @@ impl SafeRedisTransaction for ProcessBorrowedTransactions<'_> { // Queue webhook event using user_request from SubmissionResult let event = EoaExecutorEvent { transaction_id: transaction_id.to_string(), + address: result.transaction.user_request.from, }; let envelope = event.transaction_failed_envelope(err.clone(), 1); if !result.transaction.user_request.webhook_options.is_empty() { diff --git a/executors/src/eoa/store/submitted.rs b/executors/src/eoa/store/submitted.rs index f76df09..3f3229e 100644 --- a/executors/src/eoa/store/submitted.rs +++ b/executors/src/eoa/store/submitted.rs @@ -278,6 +278,7 @@ impl SafeRedisTransaction for CleanSubmittedTransactions<'_> { if !tx.user_request.webhook_options.is_empty() { let event = EoaExecutorEvent { transaction_id: tx.transaction_id.clone(), + address: tx.user_request.from, }; let success_envelope = @@ -309,6 +310,7 @@ impl SafeRedisTransaction for CleanSubmittedTransactions<'_> { if !tx.user_request.webhook_options.is_empty() { let event = EoaExecutorEvent { transaction_id: tx.transaction_id.clone(), + address: tx.user_request.from, }; let success_envelope = diff --git a/executors/src/eoa/worker/confirm.rs b/executors/src/eoa/worker/confirm.rs index 2017589..fbb9412 100644 --- a/executors/src/eoa/worker/confirm.rs +++ b/executors/src/eoa/worker/confirm.rs @@ -70,6 +70,7 @@ impl EoaExecutorWorker { time_since_movement = time_since_movement, stall_timeout = NONCE_STALL_TIMEOUT, current_chain_nonce = current_chain_transaction_count, + cached_transaction_count = cached_transaction_count, "Nonce has been stalled, attempting gas bump" ); @@ -85,13 +86,13 @@ impl EoaExecutorWorker { } } - tracing::debug!("No nonce progress, skipping confirm flow"); - return Ok(CleanupReport::default()); + tracing::debug!("No nonce progress, still going ahead with confirm flow"); + // return Ok(CleanupReport::default()); } tracing::info!( current_chain_nonce = current_chain_transaction_count, - cached_nonce = cached_transaction_count, + cached_transaction_count = cached_transaction_count, "Processing confirmations" ); @@ -140,7 +141,7 @@ impl EoaExecutorWorker { ConfirmedTransaction { transaction_hash: tx.transaction_hash, transaction_id: tx.transaction_id, - receipt: tx.receipt.into(), + receipt: tx.receipt, receipt_serialized: receipt_data, } }) From 575650396e81509b47b2b9fba96cdff6f5a68b52 Mon Sep 17 00:00:00 2001 From: Prithvish Baidya Date: Thu, 17 Jul 2025 09:06:53 +0530 Subject: [PATCH 2/2] name --- executors/src/eoa/events.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/executors/src/eoa/events.rs b/executors/src/eoa/events.rs index 9c29e87..4eb9005 100644 --- a/executors/src/eoa/events.rs +++ b/executors/src/eoa/events.rs @@ -40,7 +40,7 @@ pub struct EoaSendAttemptNackData { pub struct EoaSendAttemptSuccessData { #[serde(flatten)] pub submitted_transaction: SubmittedTransactionDehydrated, - pub address: Address, + pub eoa_address: Address, } #[derive(Debug, Clone, Serialize, Deserialize)] @@ -78,7 +78,7 @@ impl EoaExecutorEvent { payload: SerializableSuccessData { result: EoaSendAttemptSuccessData { submitted_transaction: submitted_transaction.clone(), - address: self.address, + eoa_address: self.address, }, }, }