From af0603b98d4142d2301b13815b506973fb88db5b Mon Sep 17 00:00:00 2001 From: Ash Kunda <18058966+akundaz@users.noreply.github.com> Date: Wed, 3 Dec 2025 14:20:57 -0500 Subject: [PATCH] chore: add jovian fields to flashblocks --- src/primitives.rs | 7 +++++++ src/publish.rs | 4 +++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/primitives.rs b/src/primitives.rs index 78ad141..306820c 100644 --- a/src/primitives.rs +++ b/src/primitives.rs @@ -62,6 +62,13 @@ pub struct ExecutionPayloadFlashblockDeltaV1 { pub withdrawals: Vec, /// The withdrawals root of the block. pub withdrawals_root: B256, + /// The blob gas used + #[serde( + default, + skip_serializing_if = "Option::is_none", + with = "rblib::alloy::serde::quantity::opt" + )] + pub blob_gas_used: Option, } #[derive(Clone, Debug, PartialEq, Default, Deserialize, Serialize)] diff --git a/src/publish.rs b/src/publish.rs index 0c6e5a0..00b7f64 100644 --- a/src/publish.rs +++ b/src/publish.rs @@ -17,7 +17,7 @@ use { parking_lot::RwLock, rblib::{ alloy::{consensus::BlockHeader, eips::Encodable2718, primitives::U256}, - prelude::*, + prelude::{ext::CheckpointOpExt, *}, reth::node::builder::PayloadBuilderAttributes, }, std::{io, net::TcpListener, sync::Arc, time::Instant}, @@ -101,6 +101,7 @@ impl Step for PublishFlashblock { // the block_base. // TODO: Consider moving this into its own step let base = self.block_base.write().take(); + let (_excess_blob_gas, blob_gas_used) = payload.blob_fields(); let diff = ExecutionPayloadFlashblockDeltaV1 { state_root: sealed_block.block().state_root, receipts_root: sealed_block.block().receipts_root, @@ -113,6 +114,7 @@ impl Step for PublishFlashblock { .block() .withdrawals_root() .expect("withdrawals_root is present"), + blob_gas_used, }; let flashblock_number = payload.context();