From 72ab361d67b2cddf767956f9a9d93805c3c3fb64 Mon Sep 17 00:00:00 2001 From: Matthias Seitz Date: Thu, 27 Jul 2023 08:44:05 +0200 Subject: [PATCH] feat: add eip4844 tx type id (#3928) --- crates/primitives/src/transaction/mod.rs | 13 +++++++------ crates/primitives/src/transaction/tx_type.rs | 4 ++++ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/crates/primitives/src/transaction/mod.rs b/crates/primitives/src/transaction/mod.rs index 5a22b60f9bca..92df183f2ba8 100644 --- a/crates/primitives/src/transaction/mod.rs +++ b/crates/primitives/src/transaction/mod.rs @@ -1,5 +1,3 @@ -use std::mem; - use crate::{ compression::{TRANSACTION_COMPRESSOR, TRANSACTION_DECOMPRESSOR}, keccak256, Address, Bytes, ChainId, TxHash, H256, @@ -15,6 +13,7 @@ use reth_rlp::{ }; use serde::{Deserialize, Serialize}; pub use signature::Signature; +use std::mem; pub use tx_type::{TxType, EIP1559_TX_TYPE_ID, EIP2930_TX_TYPE_ID, LEGACY_TX_TYPE_ID}; mod access_list; @@ -265,10 +264,12 @@ pub struct TxEip4844 { pub access_list: AccessList, /// It contains a vector of fixed size hash(32 bytes) - pub blob_hashes: Vec, + pub blob_versioned_hashes: Vec, /// Max fee per data gas - pub max_fee_per_blob: u128, + /// + /// aka BlobFeeCap + pub max_fee_per_blob_gas: u128, /// Input has two uses depending if transaction is Create or Call (if `to` field is None or /// Some). pub init: An unlimited size byte array specifying the @@ -291,8 +292,8 @@ impl TxEip4844 { mem::size_of::() + // value self.access_list.size() + // access_list self.input.len() + // input - self.blob_hashes.capacity() * mem::size_of::() + // blob hashes size - mem::size_of::() // blob fee cap + self.blob_versioned_hashes.capacity() * mem::size_of::() + // blob hashes size + mem::size_of::() // max_fee_per_data_gas } } diff --git a/crates/primitives/src/transaction/tx_type.rs b/crates/primitives/src/transaction/tx_type.rs index 428e06f45347..c0a6b71a0e80 100644 --- a/crates/primitives/src/transaction/tx_type.rs +++ b/crates/primitives/src/transaction/tx_type.rs @@ -12,6 +12,10 @@ pub const EIP2930_TX_TYPE_ID: u8 = 1; /// Identifier for [TxEip1559](crate::TxEip1559) transaction. pub const EIP1559_TX_TYPE_ID: u8 = 2; +/// Identifier for [TxEip4844](crate::TxEip4844) transaction. +#[allow(unused)] +pub(crate) const EIP4844_TX_TYPE_ID: u8 = 3; + /// Transaction Type #[derive_arbitrary(compact)] #[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Default, Serialize, Deserialize)]