fix(cache): use index N-1 when reading the inclusion list and correct serialization

This commit is contained in:
pellekrab
2025-09-24 15:14:21 -06:00
parent c2570b5ae2
commit 2b4b372727
2 changed files with 13 additions and 10 deletions

View File

@@ -106,15 +106,17 @@ impl<T: BeaconChainTypes> PayloadNotifier<T> {
.spec .spec
.is_focil_enabled_for_epoch(block.slot().epoch(T::EthSpec::slots_per_epoch())) .is_focil_enabled_for_epoch(block.slot().epoch(T::EthSpec::slots_per_epoch()))
{ {
// Inclusion lists are those submitted for the prior slot.
let il_slot = block.slot().saturating_sub(1_u64);
let inclusion_list_transactions = chain let inclusion_list_transactions = chain
.inclusion_list_cache .inclusion_list_cache
.read() .read()
.get_inclusion_list_transactions(block.slot()) .get_inclusion_list_transactions(il_slot)
.unwrap_or(vec![].into()); .unwrap_or(vec![].into());
info!( info!(
tx_count = inclusion_list_transactions.len(), tx_count = inclusion_list_transactions.len(),
slot = ?block.slot(), slot = ?il_slot,
"Adding inclusion list transactions in the Payload Notifier" "Adding inclusion list transactions in the Payload Notifier"
); );
inclusion_list_transactions inclusion_list_transactions

View File

@@ -869,13 +869,14 @@ impl HttpJsonRpc {
&self, &self,
new_payload_request_eip7805: NewPayloadRequestEip7805<'_, E>, new_payload_request_eip7805: NewPayloadRequestEip7805<'_, E>,
) -> Result<PayloadStatusV1, Error> { ) -> Result<PayloadStatusV1, Error> {
// TODO(focil) clean this up? let il_transactions: Vec<String> = new_payload_request_eip7805
let mut il_transactions = vec![]; .il_transactions
for transaction in new_payload_request_eip7805.il_transactions { .into_iter()
if let Ok(hex_tx) = String::from_utf8(transaction.into()).map(|v| format!("0x{}", v)) { .map(|tx| {
il_transactions.push(hex_tx); let bytes: Vec<u8> = tx.into();
} format!("0x{}", hex::encode(bytes))
} })
.collect();
let params = json!([ let params = json!([
JsonExecutionPayload::V5(new_payload_request_eip7805.execution_payload.clone().into()), JsonExecutionPayload::V5(new_payload_request_eip7805.execution_payload.clone().into()),