From e6b033aefda090468662dccf41cb15cceec8199e Mon Sep 17 00:00:00 2001 From: realbigsean Date: Thu, 20 Apr 2023 18:23:59 -0400 Subject: [PATCH] update blob transaction (#4218) * update blob transaction * update blob transaction * rename in JSON deserializing --- beacon_node/execution_layer/src/lib.rs | 18 +++++++++--------- .../src/per_block_processing/deneb/deneb.rs | 10 +++++----- consensus/types/src/transaction.rs | 6 +++--- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/beacon_node/execution_layer/src/lib.rs b/beacon_node/execution_layer/src/lib.rs index a500bf9ee..dc9522d88 100644 --- a/beacon_node/execution_layer/src/lib.rs +++ b/beacon_node/execution_layer/src/lib.rs @@ -2080,8 +2080,8 @@ pub enum BlobTxConversionError { AccessListMissing, /// Missing the `max_fee_per_data_gas` field. MaxFeePerDataGasMissing, - /// Missing the `blob_versioned_hashes` field. - BlobVersionedHashesMissing, + /// Missing the `versioned_hashes` field. + VersionedHashesMissing, /// `y_parity` field was greater than one. InvalidYParity, /// There was an error converting the transaction to SSZ. @@ -2207,18 +2207,18 @@ fn ethers_tx_to_bytes( ) .map_err(BlobTxConversionError::FromStrRadix)?; - // blobVersionedHashes - let blob_versioned_hashes = other - .get("blobVersionedHashes") - .ok_or(BlobTxConversionError::BlobVersionedHashesMissing)? + // versionedHashes + let versioned_hashes = other + .get("versionedHashes") + .ok_or(BlobTxConversionError::VersionedHashesMissing)? .as_array() - .ok_or(BlobTxConversionError::BlobVersionedHashesMissing)? + .ok_or(BlobTxConversionError::VersionedHashesMissing)? .iter() .map(|versioned_hash| { let hash_bytes = eth2_serde_utils::hex::decode( versioned_hash .as_str() - .ok_or(BlobTxConversionError::BlobVersionedHashesMissing)?, + .ok_or(BlobTxConversionError::VersionedHashesMissing)?, ) .map_err(BlobTxConversionError::FromHex)?; if hash_bytes.len() != Hash256::ssz_fixed_len() { @@ -2239,7 +2239,7 @@ fn ethers_tx_to_bytes( data, access_list, max_fee_per_data_gas, - blob_versioned_hashes: VariableList::new(blob_versioned_hashes)?, + versioned_hashes: VariableList::new(versioned_hashes)?, }; // ******************** EcdsaSignature fields ******************** diff --git a/consensus/state_processing/src/per_block_processing/deneb/deneb.rs b/consensus/state_processing/src/per_block_processing/deneb/deneb.rs index 5935d6f26..8ab213a4d 100644 --- a/consensus/state_processing/src/per_block_processing/deneb/deneb.rs +++ b/consensus/state_processing/src/per_block_processing/deneb/deneb.rs @@ -42,7 +42,7 @@ pub fn verify_kzg_commitments_against_transactions( .map(|tx_type| *tx_type == BLOB_TX_TYPE) .unwrap_or(false) }) - .map(|tx| tx_peek_blob_versioned_hashes::(tx)); + .map(|tx| tx_peek_versioned_hashes::(tx)); itertools::process_results(nested_iter, |iter| { let zipped_iter = iter @@ -76,7 +76,7 @@ pub fn verify_kzg_commitments_against_transactions( } /// Only transactions of type `BLOB_TX_TYPE` should be passed into this function. -fn tx_peek_blob_versioned_hashes( +fn tx_peek_versioned_hashes( opaque_tx: &Transaction, ) -> Result< impl IntoIterator> + '_, @@ -93,7 +93,7 @@ fn tx_peek_blob_versioned_hashes( let message_offset_usize = message_offset as usize; // field offset: 32 + 8 + 32 + 32 + 8 + 4 + 32 + 4 + 4 + 32 = 188 - let blob_versioned_hashes_offset = message_offset.safe_add(u32::from_ssz_bytes( + let versioned_hashes_offset = message_offset.safe_add(u32::from_ssz_bytes( opaque_tx .get(message_offset_usize.safe_add(188)?..message_offset_usize.safe_add(192)?) .ok_or(BlockProcessingError::BlobVersionHashIndexOutOfBounds { @@ -103,12 +103,12 @@ fn tx_peek_blob_versioned_hashes( )?)?; let num_hashes = tx_len - .safe_sub(blob_versioned_hashes_offset as usize)? + .safe_sub(versioned_hashes_offset as usize)? .safe_div(32)?; Ok((0..num_hashes).map(move |i| { let next_version_hash_index = - (blob_versioned_hashes_offset as usize).safe_add(i.safe_mul(32)?)?; + (versioned_hashes_offset as usize).safe_add(i.safe_mul(32)?)?; let bytes = opaque_tx .get(next_version_hash_index..next_version_hash_index.safe_add(32)?) .ok_or(BlockProcessingError::BlobVersionHashIndexOutOfBounds { diff --git a/consensus/types/src/transaction.rs b/consensus/types/src/transaction.rs index ee0af981b..5a1c12ef1 100644 --- a/consensus/types/src/transaction.rs +++ b/consensus/types/src/transaction.rs @@ -1,13 +1,13 @@ use crate::{Hash256, Uint256, VersionedHash}; use ethereum_types::Address; use ssz_derive::{Decode, Encode}; -use ssz_types::typenum::U16777216; +use ssz_types::typenum::{U16777216, U4096}; use ssz_types::VariableList; pub type MaxCalldataSize = U16777216; pub type MaxAccessListSize = U16777216; -pub type MaxVersionedHashesListSize = U16777216; pub type MaxAccessListStorageKeys = U16777216; +pub type MaxVersionedHashesListSize = U4096; #[derive(Debug, Clone, PartialEq, Encode, Decode)] pub struct SignedBlobTransaction { @@ -27,7 +27,7 @@ pub struct BlobTransaction { pub data: VariableList, pub access_list: VariableList, pub max_fee_per_data_gas: Uint256, - pub blob_versioned_hashes: VariableList, + pub versioned_hashes: VariableList, } #[derive(Debug, Clone, PartialEq, Encode, Decode)]