Skip to content

Commit 7b63461

Browse files
committed
v0.19.0 - revm 0.19.0
1 parent e86f6c2 commit 7b63461

23 files changed

+96
-72
lines changed

Diff for: Cargo.toml

+5-7
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "trevm"
3-
version = "0.18.0"
3+
version = "0.19.0"
44
rust-version = "1.83.0"
55
edition = "2021"
66
authors = ["init4"]
@@ -28,21 +28,19 @@ redundant-clone = "warn"
2828

2929
[dependencies]
3030
alloy-rlp = { version = "0.3.10", default-features = false, features = ["std"]}
31-
32-
alloy-primitives = { version = "0.8.11", default-features = false, features = ["std"]}
3331
alloy-sol-types = { version = "0.8.11", default-features = false, features = ["std"]}
3432

35-
alloy = { version = "=0.7.3", default-features = false, features = ["consensus", "rpc-types-mev", "eips", "k256", "std"] }
33+
alloy = { version = "=0.9.2", default-features = false, features = ["consensus", "rpc-types-mev", "eips", "k256", "std"] }
3634

37-
revm = { version = "18.0.0", default-features = false, features = ["std"] }
35+
revm = { version = "19.2.0", default-features = false, features = ["std"] }
3836

39-
zenith-types = { version = "0.13" }
37+
zenith-types = { version = "0.14" }
4038

4139
dashmap = { version = "6.1.0", optional = true }
4240

4341
[dev-dependencies]
4442
alloy-rlp = { version = "0.3", default-features = false }
45-
revm = { version = "18.0.0", features = [
43+
revm = { version = "19.0.0", features = [
4644
"test-utils",
4745
"serde-json",
4846
"std",

Diff for: src/db/cache_state.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
//! The majority of this code has been reproduced from revm.
22
3-
use alloy_primitives::{Address, B256};
3+
use alloy::primitives::{Address, B256};
44
use dashmap::DashMap;
55
use revm::{
66
db::states::{plain_account::PlainStorage, CacheAccount},

Diff for: src/db/sync_state.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use crate::db::ConcurrentCacheState;
2-
use alloy_primitives::{Address, B256, U256};
2+
use alloy::primitives::{Address, B256, U256};
33
use dashmap::mapref::one::RefMut;
44
use revm::{
55
db::{

Diff for: src/driver/alloy.rs

+20-18
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
11
use crate::{
2+
system::{MAX_BLOB_GAS_PER_BLOCK_CANCUN, MAX_BLOB_GAS_PER_BLOCK_PRAGUE},
23
trevm_bail, trevm_ensure, unwrap_or_trevm_err, Block, BundleDriver, DriveBundleResult,
34
};
45
use alloy::{
56
consensus::{Transaction, TxEip4844Variant, TxEnvelope},
67
eips::{eip2718::Decodable2718, BlockNumberOrTag},
8+
primitives::{bytes::Buf, keccak256, Address, Bytes, TxKind, U256},
79
rpc::types::mev::{
810
EthBundleHash, EthCallBundle, EthCallBundleResponse, EthCallBundleTransactionResult,
911
EthSendBundle,
1012
},
1113
};
12-
use alloy_primitives::{bytes::Buf, keccak256, Address, Bytes, TxKind, U256};
13-
use revm::primitives::{EVMError, ExecutionResult, MAX_BLOB_GAS_PER_BLOCK};
14+
use revm::primitives::{EVMError, ExecutionResult, SpecId};
1415

1516
/// Possible errors that can occur while driving a bundle.
1617
pub enum BundleError<Db: revm::Database> {
@@ -29,7 +30,7 @@ pub enum BundleError<Db: revm::Database> {
2930
/// An error occurred while decoding a transaction contained in the bundle.
3031
TransactionDecodingError(alloy::eips::eip2718::Eip2718Error),
3132
/// An error occurred while recovering the sender of a transaction.
32-
TransactionSenderRecoveryError(alloy_primitives::SignatureError),
33+
TransactionSenderRecoveryError(alloy::primitives::SignatureError),
3334
/// An error occurred while running the EVM.
3435
EVMError {
3536
/// The error that occurred while running the EVM.
@@ -63,8 +64,8 @@ impl<Db: revm::Database> From<alloy::eips::eip2718::Eip2718Error> for BundleErro
6364
}
6465
}
6566

66-
impl<Db: revm::Database> From<alloy_primitives::SignatureError> for BundleError<Db> {
67-
fn from(err: alloy_primitives::SignatureError) -> Self {
67+
impl<Db: revm::Database> From<alloy::primitives::SignatureError> for BundleError<Db> {
68+
fn from(err: alloy::primitives::SignatureError) -> Self {
6869
Self::TransactionSenderRecoveryError(err)
6970
}
7071
}
@@ -148,17 +149,7 @@ impl<B, R> BundleProcessor<B, R> {
148149
.map(|tx| TxEnvelope::decode_2718(&mut tx.chunk()))
149150
.collect::<Result<Vec<_>, _>>()?;
150151

151-
if txs
152-
.iter()
153-
.filter_map(|tx| tx.as_eip4844())
154-
.map(|tx| tx.tx().tx().blob_gas())
155-
.sum::<u64>()
156-
> MAX_BLOB_GAS_PER_BLOCK
157-
{
158-
Err(BundleError::Eip4844BlobGasExceeded)
159-
} else {
160-
Ok(txs)
161-
}
152+
Ok(txs)
162153
}
163154

164155
/// Take the response from the bundle driver. This consumes the driver.
@@ -588,12 +579,17 @@ impl<Ext> BundleDriver<Ext> for EthCallBundle {
588579
);
589580

590581
// Check that the bundle does not exceed the maximum gas limit for blob transactions
582+
let mbg = match trevm.spec_id() {
583+
SpecId::CANCUN => MAX_BLOB_GAS_PER_BLOCK_CANCUN,
584+
SpecId::PRAGUE => MAX_BLOB_GAS_PER_BLOCK_PRAGUE,
585+
_ => 0,
586+
};
591587
trevm_ensure!(
592588
txs.iter()
593589
.filter_map(|tx| tx.as_eip4844())
594590
.map(|tx| tx.tx().tx().blob_gas())
595591
.sum::<u64>()
596-
<= MAX_BLOB_GAS_PER_BLOCK,
592+
<= mbg,
597593
trevm,
598594
BundleError::Eip4844BlobGasExceeded
599595
);
@@ -679,12 +675,18 @@ impl<Ext> BundleDriver<Ext> for EthSendBundle {
679675
);
680676

681677
// Check that the bundle does not exceed the maximum gas limit for blob transactions
678+
679+
let mbg = match trevm.spec_id() {
680+
SpecId::CANCUN => MAX_BLOB_GAS_PER_BLOCK_CANCUN,
681+
SpecId::PRAGUE => MAX_BLOB_GAS_PER_BLOCK_PRAGUE,
682+
_ => 0,
683+
};
682684
trevm_ensure!(
683685
txs.iter()
684686
.filter_map(|tx| tx.as_eip4844())
685687
.map(|tx| tx.tx().tx().blob_gas())
686688
.sum::<u64>()
687-
<= MAX_BLOB_GAS_PER_BLOCK,
689+
<= mbg,
688690
trevm,
689691
BundleError::Eip4844BlobGasExceeded
690692
);

Diff for: src/evm.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use crate::{
44
EvmNeedsCfg, EvmNeedsTx, EvmReady, EvmTransacted, HasBlock, HasCfg, HasTx, NeedsCfg, NeedsTx,
55
TransactedState, Tx,
66
};
7-
use alloy_primitives::{Address, Bytes, U256};
7+
use alloy::primitives::{Address, Bytes, U256};
88
use core::convert::Infallible;
99
use revm::{
1010
db::{states::bundle_state::BundleRetention, BundleState, State},

Diff for: src/ext.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use alloy_primitives::{Address, B256, U256};
1+
use alloy::primitives::{Address, B256, U256};
22
use revm::{
33
primitives::{Account, AccountInfo, Bytecode, EvmState, EvmStorageSlot, HashMap},
44
Database, DatabaseCommit,

Diff for: src/fill/alloy.rs

+9-7
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
use alloy::consensus::Signed;
2-
use alloy_primitives::U256;
1+
use alloy::{consensus::Signed, primitives::U256};
32
use revm::primitives::{BlobExcessGasAndPrice, BlockEnv, TxEnv};
43

54
use crate::{Block, Tx};
@@ -240,7 +239,8 @@ impl Block for alloy::consensus::Header {
240239
*prevrandao = if self.difficulty.is_zero() { Some(self.mix_hash) } else { None };
241240

242241
if let Some(excess_blob_gas) = self.excess_blob_gas {
243-
block_env.set_blob_excess_gas_and_price(excess_blob_gas);
242+
block_env
243+
.set_blob_excess_gas_and_price(excess_blob_gas, self.withdrawals_root.is_some());
244244
}
245245
}
246246

@@ -268,7 +268,9 @@ impl Block for alloy::rpc::types::eth::Header {
268268
*basefee = U256::from(self.base_fee_per_gas.unwrap_or_default());
269269
*difficulty = U256::from(self.difficulty);
270270
*prevrandao = Some(self.mix_hash);
271-
*blob_excess_gas_and_price = self.blob_gas_used.map(BlobExcessGasAndPrice::new);
271+
*blob_excess_gas_and_price = self
272+
.blob_gas_used
273+
.map(|bgu| BlobExcessGasAndPrice::new(bgu, self.withdrawals_root.is_some()));
272274
}
273275
}
274276

@@ -294,7 +296,7 @@ mod tests {
294296
#[test]
295297
// Test vector from https://etherscan.io/tx/0xce4dc6d7a7549a98ee3b071b67e970879ff51b5b95d1c340bacd80fa1e1aab31
296298
fn test_live_tx_1559_fill() {
297-
let raw_tx = alloy_primitives::hex::decode("02f86f0102843b9aca0085029e7822d68298f094d9e1459a7a482635700cbc20bbaf52d495ab9c9680841b55ba3ac080a0c199674fcb29f353693dd779c017823b954b3c69dffa3cd6b2a6ff7888798039a028ca912de909e7e6cdef9cdcaf24c54dd8c1032946dfa1d85c206b32a9064fe8").unwrap();
299+
let raw_tx = alloy::primitives::hex::decode("02f86f0102843b9aca0085029e7822d68298f094d9e1459a7a482635700cbc20bbaf52d495ab9c9680841b55ba3ac080a0c199674fcb29f353693dd779c017823b954b3c69dffa3cd6b2a6ff7888798039a028ca912de909e7e6cdef9cdcaf24c54dd8c1032946dfa1d85c206b32a9064fe8").unwrap();
298300
let tx = TxEnvelope::decode(&mut raw_tx.as_slice()).unwrap();
299301

300302
let _ = Evm::builder()
@@ -308,7 +310,7 @@ mod tests {
308310
#[test]
309311
// Test vector from https://etherscan.io/tx/0x280cde7cdefe4b188750e76c888f13bd05ce9a4d7767730feefe8a0e50ca6fc4
310312
fn test_live_tx_legacy_fill() {
311-
let raw_tx = alloy_primitives::hex::decode("f9015482078b8505d21dba0083022ef1947a250d5630b4cf539739df2c5dacb4c659f2488d880c46549a521b13d8b8e47ff36ab50000000000000000000000000000000000000000000066ab5a608bd00a23f2fe000000000000000000000000000000000000000000000000000000000000008000000000000000000000000048c04ed5691981c42154c6167398f95e8f38a7ff00000000000000000000000000000000000000000000000000000000632ceac70000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000006c6ee5e31d828de241282b9606c8e98ea48526e225a0c9077369501641a92ef7399ff81c21639ed4fd8fc69cb793cfa1dbfab342e10aa0615facb2f1bcf3274a354cfe384a38d0cc008a11c2dd23a69111bc6930ba27a8").unwrap();
313+
let raw_tx = alloy::primitives::hex::decode("f9015482078b8505d21dba0083022ef1947a250d5630b4cf539739df2c5dacb4c659f2488d880c46549a521b13d8b8e47ff36ab50000000000000000000000000000000000000000000066ab5a608bd00a23f2fe000000000000000000000000000000000000000000000000000000000000008000000000000000000000000048c04ed5691981c42154c6167398f95e8f38a7ff00000000000000000000000000000000000000000000000000000000632ceac70000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000006c6ee5e31d828de241282b9606c8e98ea48526e225a0c9077369501641a92ef7399ff81c21639ed4fd8fc69cb793cfa1dbfab342e10aa0615facb2f1bcf3274a354cfe384a38d0cc008a11c2dd23a69111bc6930ba27a8").unwrap();
312314
let tx = TxEnvelope::decode(&mut raw_tx.as_slice()).unwrap();
313315

314316
let _ = Evm::builder()
@@ -323,7 +325,7 @@ mod tests {
323325
// Test vector from https://sepolia.etherscan.io/tx/0x9a22ccb0029bc8b0ddd073be1a1d923b7ae2b2ea52100bae0db4424f9107e9c0
324326
// Blobscan: https://sepolia.blobscan.com/tx/0x9a22ccb0029bc8b0ddd073be1a1d923b7ae2b2ea52100bae0db4424f9107e9c0
325327
fn test_live_tx_4844_fill() {
326-
let raw_tx = alloy_primitives::hex::decode("0x03f9011d83aa36a7820fa28477359400852e90edd0008252089411e9ca82a3a762b4b5bd264d4173a242e7a770648080c08504a817c800f8a5a0012ec3d6f66766bedb002a190126b3549fce0047de0d4c25cffce0dc1c57921aa00152d8e24762ff22b1cfd9f8c0683786a7ca63ba49973818b3d1e9512cd2cec4a0013b98c6c83e066d5b14af2b85199e3d4fc7d1e778dd53130d180f5077e2d1c7a001148b495d6e859114e670ca54fb6e2657f0cbae5b08063605093a4b3dc9f8f1a0011ac212f13c5dff2b2c6b600a79635103d6f580a4221079951181b25c7e654901a0c8de4cced43169f9aa3d36506363b2d2c44f6c49fc1fd91ea114c86f3757077ea01e11fdd0d1934eda0492606ee0bb80a7bf8f35cc5f86ec60fe5031ba48bfd544").unwrap();
328+
let raw_tx = alloy::primitives::hex::decode("0x03f9011d83aa36a7820fa28477359400852e90edd0008252089411e9ca82a3a762b4b5bd264d4173a242e7a770648080c08504a817c800f8a5a0012ec3d6f66766bedb002a190126b3549fce0047de0d4c25cffce0dc1c57921aa00152d8e24762ff22b1cfd9f8c0683786a7ca63ba49973818b3d1e9512cd2cec4a0013b98c6c83e066d5b14af2b85199e3d4fc7d1e778dd53130d180f5077e2d1c7a001148b495d6e859114e670ca54fb6e2657f0cbae5b08063605093a4b3dc9f8f1a0011ac212f13c5dff2b2c6b600a79635103d6f580a4221079951181b25c7e654901a0c8de4cced43169f9aa3d36506363b2d2c44f6c49fc1fd91ea114c86f3757077ea01e11fdd0d1934eda0492606ee0bb80a7bf8f35cc5f86ec60fe5031ba48bfd544").unwrap();
327329
let tx = TxEnvelope::decode(&mut raw_tx.as_slice()).unwrap();
328330

329331
let _ = Evm::builder()

Diff for: src/fill/traits.rs

+5-3
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,10 @@ pub trait Cfg: Send + Sync {
7777

7878
#[cfg(test)]
7979
mod test {
80-
use alloy::consensus::constants::GWEI_TO_WEI;
81-
use alloy_primitives::{B256, U256};
80+
use alloy::{
81+
consensus::constants::GWEI_TO_WEI,
82+
primitives::{B256, U256},
83+
};
8284
use revm::primitives::{BlobExcessGasAndPrice, BlockEnv, CfgEnv};
8385

8486
use super::*;
@@ -104,7 +106,7 @@ mod test {
104106
let diff = B256::repeat_byte(0xab);
105107
*prevrandao = Some(diff);
106108
*difficulty = U256::from_be_bytes(diff.into());
107-
*blob_excess_gas_and_price = Some(BlobExcessGasAndPrice::new(1_000_000));
109+
*blob_excess_gas_and_price = Some(BlobExcessGasAndPrice::new(1_000_000, false));
108110
}
109111

110112
fn tx_count_hint(&self) -> Option<usize> {

Diff for: src/fill/zenith.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use crate::{Block, Tx};
2-
use alloy_primitives::{Address, U256};
2+
use alloy::primitives::{Address, U256};
33
use alloy_sol_types::SolCall;
44
use revm::primitives::{TransactTo, TxEnv};
55
use zenith_types::{Passage::EnterToken, Transactor, ZenithCallBundle};

Diff for: src/journal/coder.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use crate::journal::{AcctDiff, BundleStateIndex, InfoOutcome};
2-
use alloy_primitives::{Address, Bytes, B256, U256};
2+
use alloy::primitives::{Address, Bytes, B256, U256};
33
use alloy_rlp::{Buf, BufMut};
44
use revm::{
55
db::{states::StorageSlot, BundleState},

Diff for: src/journal/index.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use alloy_primitives::{Address, Sign, B256, I256, U256};
1+
use alloy::primitives::{Address, Sign, B256, I256, U256};
22
use revm::{
33
db::{states::StorageSlot, AccountStatus, BundleAccount, BundleState},
44
primitives::{AccountInfo, Bytecode, HashMap},

Diff for: src/lib.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@
114114
//! ```
115115
//! # use revm::{EvmBuilder, db::InMemoryDB};
116116
//! # use trevm::{TrevmBuilder, EvmErrored, Cfg, BlockDriver};
117-
//! # use alloy_primitives::B256;
117+
//! # use alloy::primitives::B256;
118118
//! # fn t<C: Cfg, D: BlockDriver<()>>(cfg: &C, mut driver: D)
119119
//! # -> Result<(), Box<dyn std::error::Error>> {
120120
//! let trevm = EvmBuilder::default()
@@ -144,7 +144,7 @@
144144
//! ```
145145
//! # use revm::{EvmBuilder, db::InMemoryDB};
146146
//! # use trevm::{TrevmBuilder, EvmErrored, Cfg, Block, Tx};
147-
//! # use alloy_primitives::B256;
147+
//! # use alloy::primitives::B256;
148148
//! # fn t<C: Cfg, B: Block, T: Tx>(cfg: &C, block: &B, tx: &T)
149149
//! # -> Result<(), Box<dyn std::error::Error>> {
150150
//! let trevm = match EvmBuilder::default()
@@ -174,7 +174,7 @@
174174
//!
175175
//! ```
176176
//! # use trevm::Tx;
177-
//! # use alloy_primitives::Address;
177+
//! # use alloy::primitives::Address;
178178
//! // You can implement your own Tx to fill the EVM environment with your own
179179
//! // data.
180180
//! pub struct MyTx;

Diff for: src/lifecycle/output.rs

+6-4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1-
use alloy::consensus::{ReceiptEnvelope, TxReceipt};
2-
use alloy_primitives::{Address, Bloom, Bytes, Log};
1+
use alloy::{
2+
consensus::{ReceiptEnvelope, TxReceipt},
3+
primitives::{Address, Bloom, Bytes, Log},
4+
};
35
use std::sync::OnceLock;
46

57
/// Information externalized during block execution.
@@ -24,7 +26,7 @@ impl Default for BlockOutput {
2426
}
2527
}
2628

27-
impl<T: TxReceipt<Log = alloy_primitives::Log>> BlockOutput<T> {
29+
impl<T: TxReceipt<Log = alloy::primitives::Log>> BlockOutput<T> {
2830
/// Create a new block output with memory allocated to hold `capacity`
2931
/// transaction outcomes.
3032
pub fn with_capacity(capacity: usize) -> Self {
@@ -77,7 +79,7 @@ impl<T: TxReceipt<Log = alloy_primitives::Log>> BlockOutput<T> {
7779
}
7880

7981
/// Get the cumulative gas used in the block.
80-
pub fn cumulative_gas_used(&self) -> u128 {
82+
pub fn cumulative_gas_used(&self) -> u64 {
8183
self.receipts().last().map(TxReceipt::cumulative_gas_used).unwrap_or_default()
8284
}
8385

Diff for: src/lifecycle/receipt.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ use revm::primitives::ExecutionResult;
44
/// Create an Ethereum [`ReceiptEnvelope`] from an execution result.
55
///
66
/// [`ReceiptEnvelope`]: alloy::consensus::ReceiptEnvelope
7-
pub fn ethereum_receipt(result: ExecutionResult, prior_gas_used: u128) -> ReceiptWithBloom {
8-
let cumulative_gas_used = prior_gas_used.saturating_add(result.gas_used() as u128);
7+
pub fn ethereum_receipt(result: ExecutionResult, prior_gas_used: u64) -> ReceiptWithBloom {
8+
let cumulative_gas_used = prior_gas_used.saturating_add(result.gas_used());
99

1010
Receipt { status: result.is_success().into(), cumulative_gas_used, logs: result.into_logs() }
1111
.into()

Diff for: src/system/eip2935.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use crate::EvmNeedsTx;
2-
use alloy_primitives::U256;
2+
use alloy::primitives::U256;
33
use revm::{
44
primitives::{EVMError, SpecId, BLOCKHASH_SERVE_WINDOW},
55
Database, DatabaseCommit,
@@ -57,7 +57,7 @@ impl<Ext, Db: Database + DatabaseCommit> EvmNeedsTx<'_, Ext, Db> {
5757
mod test {
5858
use super::*;
5959
use crate::{NoopBlock, NoopCfg};
60-
use alloy_primitives::B256;
60+
use alloy::primitives::B256;
6161
use revm::primitives::Bytecode;
6262

6363
#[test]

Diff for: src/system/eip4788.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use super::{checked_insert_code, execute_system_tx};
22
use crate::{system::SystemTx, EvmNeedsTx};
3-
use alloy_primitives::{Address, Bytes, B256, U256};
3+
use alloy::primitives::{Address, Bytes, B256, U256};
44
use revm::{
55
primitives::{EVMError, SpecId},
66
Database, DatabaseCommit,
@@ -76,7 +76,7 @@ impl<Ext, Db: Database + DatabaseCommit> EvmNeedsTx<'_, Ext, Db> {
7676
mod test {
7777
use super::*;
7878
use crate::{NoopBlock, NoopCfg};
79-
use alloy_primitives::U256;
79+
use alloy::primitives::U256;
8080
use revm::primitives::Bytecode;
8181

8282
#[test]

Diff for: src/system/eip4895.rs

+8-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
use crate::{EvmExtUnchecked, EvmNeedsTx};
2-
use alloy::eips::eip4895::Withdrawal;
3-
use alloy_primitives::{map::HashMap, U256};
2+
use alloy::{
3+
eips::eip4895::Withdrawal,
4+
primitives::{map::HashMap, U256},
5+
};
46
use revm::{primitives::EVMError, Database, DatabaseCommit};
57

68
impl<Ext, Db: Database + DatabaseCommit> EvmNeedsTx<'_, Ext, Db> {
@@ -36,8 +38,10 @@ impl<Ext, Db: Database + DatabaseCommit> EvmNeedsTx<'_, Ext, Db> {
3638

3739
#[cfg(test)]
3840
mod test {
39-
use alloy::eips::eip4895::{Withdrawal, GWEI_TO_WEI};
40-
use alloy_primitives::{Address, U256};
41+
use alloy::{
42+
eips::eip4895::{Withdrawal, GWEI_TO_WEI},
43+
primitives::{Address, U256},
44+
};
4145

4246
use crate::{NoopBlock, NoopCfg};
4347

0 commit comments

Comments
 (0)