From d6104078203dad288817a55d8c9ac4c3fd6349eb Mon Sep 17 00:00:00 2001 From: Eitan Seri-Levi Date: Sun, 21 Jun 2026 18:05:29 +0300 Subject: [PATCH] builder payments w/ slashed validators fix --- consensus/state_processing/src/per_block_processing.rs | 1 + .../src/per_block_processing/process_operations.rs | 7 ++++++- consensus/types/src/builder/builder_pending_payment.rs | 2 ++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/consensus/state_processing/src/per_block_processing.rs b/consensus/state_processing/src/per_block_processing.rs index 61748cdc02..7a40ff28af 100644 --- a/consensus/state_processing/src/per_block_processing.rs +++ b/consensus/state_processing/src/per_block_processing.rs @@ -799,6 +799,7 @@ pub fn process_execution_payload_bid amount, builder_index, }, + proposer_index: block.proposer_index(), }; let payment_index = E::SlotsPerEpoch::to_usize() diff --git a/consensus/state_processing/src/per_block_processing/process_operations.rs b/consensus/state_processing/src/per_block_processing/process_operations.rs index 86ad13079c..d081a27df3 100644 --- a/consensus/state_processing/src/per_block_processing/process_operations.rs +++ b/consensus/state_processing/src/per_block_processing/process_operations.rs @@ -418,7 +418,12 @@ pub fn process_proposer_slashings( .builder_pending_payments_mut()? .get_mut(index) .ok_or(BlockProcessingError::BuilderPaymentIndexOutOfBounds(index))?; - *payment = BuilderPendingPayment::default(); + + if payment.proposer_index + == proposer_slashing.signed_header_1.message.proposer_index + { + *payment = BuilderPendingPayment::default(); + } } } diff --git a/consensus/types/src/builder/builder_pending_payment.rs b/consensus/types/src/builder/builder_pending_payment.rs index 61c76dfc15..bc2cabc6bc 100644 --- a/consensus/types/src/builder/builder_pending_payment.rs +++ b/consensus/types/src/builder/builder_pending_payment.rs @@ -13,6 +13,8 @@ pub struct BuilderPendingPayment { #[serde(with = "serde_utils::quoted_u64")] pub weight: u64, pub withdrawal: BuilderPendingWithdrawal, + #[serde(with = "serde_utils::quoted_u64")] + pub proposer_index: u64, } #[cfg(test)]