diff --git a/crates/freeze/src/datasets/blocks.rs b/crates/freeze/src/datasets/blocks.rs index 5b12e58b..9ff43824 100644 --- a/crates/freeze/src/datasets/blocks.rs +++ b/crates/freeze/src/datasets/blocks.rs @@ -28,6 +28,8 @@ pub struct Blocks { base_fee_per_gas: Vec>, withdrawals_root: Vec>>, chain_id: Vec, + blob_gas_used: Vec>, + excess_blob_gas: Vec>, } #[async_trait::async_trait] @@ -110,5 +112,31 @@ pub(crate) fn process_block(block: Block, columns: &mut Blocks, schema: store!(schema, columns, mix_hash, block.mix_hash.map(|x| x.0.to_vec())); store!(schema, columns, nonce, block.nonce.map(|x| x.0.to_vec())); store!(schema, columns, withdrawals_root, block.withdrawals_root.map(|x| x.0.to_vec())); + store!( + schema, + columns, + blob_gas_used, + block + .other + .get_with("blobGasUsed", |x| u64::from_str_radix( + x.as_str().unwrap_or("0x").trim_start_matches("0x"), + 16 + ) + .ok()) + .unwrap_or(None) + ); + store!( + schema, + columns, + excess_blob_gas, + block + .other + .get_with("excessBlobGas", |x| u64::from_str_radix( + x.as_str().unwrap_or("0x").trim_start_matches("0x"), + 16 + ) + .ok()) + .unwrap_or(None) + ); Ok(()) } diff --git a/crates/freeze/src/types/schemas.rs b/crates/freeze/src/types/schemas.rs index 52be892a..08fec16e 100644 --- a/crates/freeze/src/types/schemas.rs +++ b/crates/freeze/src/types/schemas.rs @@ -257,7 +257,7 @@ mod tests { let table = Datatype::Blocks .table_schema(&get_u256_types(), &ColumnEncoding::Hex, &None, &None, &cols, None, None) .unwrap(); - assert_eq!(21, table.columns().len()); + assert_eq!(23, table.columns().len()); assert!(table.columns().contains(&"block_hash")); assert!(table.columns().contains(&"transactions_root")); } @@ -308,7 +308,7 @@ mod tests { None, ) .unwrap(); - assert_eq!(21, table.columns().len()); + assert_eq!(23, table.columns().len()); assert!(table.columns().contains(&"block_hash")); assert!(table.columns().contains(&"transactions_root")); }