diff --git a/crates/storage/provider/src/bundle_state/bundle_state_with_receipts.rs b/crates/storage/provider/src/bundle_state/bundle_state_with_receipts.rs index a285814297..2a65909fdb 100644 --- a/crates/storage/provider/src/bundle_state/bundle_state_with_receipts.rs +++ b/crates/storage/provider/src/bundle_state/bundle_state_with_receipts.rs @@ -381,7 +381,7 @@ impl BundleStateWithReceipts { #[cfg(test)] mod tests { use super::*; - use crate::{AccountReader, BundleStateWithReceipts, ProviderFactory}; + use crate::{test_utils::create_test_provider_factory, AccountReader, BundleStateWithReceipts}; use reth_db::{ cursor::{DbCursorRO, DbDupCursorRO}, database::Database, @@ -391,7 +391,7 @@ mod tests { transaction::DbTx, }; use reth_primitives::{ - revm::compat::into_reth_acc, Address, Receipt, Receipts, StorageEntry, B256, MAINNET, U256, + revm::compat::into_reth_acc, Address, Receipt, Receipts, StorageEntry, B256, U256, }; use reth_trie::test_utils::state_root; use revm::{ @@ -413,8 +413,7 @@ mod tests { #[test] fn write_to_db_account_info() { - let db = create_test_rw_db(); - let factory = ProviderFactory::new(db, MAINNET.clone()); + let factory = create_test_provider_factory(); let provider = factory.provider_rw().unwrap(); let address_a = Address::ZERO; @@ -552,8 +551,7 @@ mod tests { #[test] fn write_to_db_storage() { - let db = create_test_rw_db(); - let factory = ProviderFactory::new(db, MAINNET.clone()); + let factory = create_test_provider_factory(); let provider = factory.provider_rw().unwrap(); let address_a = Address::ZERO; @@ -741,8 +739,7 @@ mod tests { #[test] fn write_to_db_multiple_selfdestructs() { - let db = create_test_rw_db(); - let factory = ProviderFactory::new(db, MAINNET.clone()); + let factory = create_test_provider_factory(); let provider = factory.provider_rw().unwrap(); let address1 = Address::random(); @@ -1050,8 +1047,7 @@ mod tests { #[test] fn storage_change_after_selfdestruct_within_block() { - let db = create_test_rw_db(); - let factory = ProviderFactory::new(db, MAINNET.clone()); + let factory = create_test_provider_factory(); let provider = factory.provider_rw().unwrap(); let address1 = Address::random(); diff --git a/crates/storage/provider/src/providers/database/mod.rs b/crates/storage/provider/src/providers/database/mod.rs index 6b6c0842d0..0d1ca70ab4 100644 --- a/crates/storage/provider/src/providers/database/mod.rs +++ b/crates/storage/provider/src/providers/database/mod.rs @@ -490,18 +490,13 @@ impl PruneCheckpointReader for ProviderFactory { mod tests { use super::ProviderFactory; use crate::{ - BlockHashReader, BlockNumReader, BlockWriter, HeaderSyncGapProvider, HeaderSyncMode, - TransactionsProvider, + test_utils::create_test_provider_factory, BlockHashReader, BlockNumReader, BlockWriter, + HeaderSyncGapProvider, HeaderSyncMode, TransactionsProvider, }; use alloy_rlp::Decodable; use assert_matches::assert_matches; use rand::Rng; - use reth_db::{ - tables, - test_utils::{create_test_rw_db, ERROR_TEMPDIR}, - transaction::DbTxMut, - DatabaseEnv, - }; + use reth_db::{tables, test_utils::ERROR_TEMPDIR, transaction::DbTxMut, DatabaseEnv}; use reth_interfaces::{ provider::ProviderError, test_utils::{ @@ -518,17 +513,13 @@ mod tests { #[test] fn common_history_provider() { - let chain_spec = ChainSpecBuilder::mainnet().build(); - let db = create_test_rw_db(); - let provider = ProviderFactory::new(db, Arc::new(chain_spec)); - let _ = provider.latest(); + let factory = create_test_provider_factory(); + let _ = factory.latest(); } #[test] fn default_chain_info() { - let chain_spec = ChainSpecBuilder::mainnet().build(); - let db = create_test_rw_db(); - let factory = ProviderFactory::new(db, Arc::new(chain_spec)); + let factory = create_test_provider_factory(); let provider = factory.provider().unwrap(); let chain_info = provider.chain_info().expect("should be ok"); @@ -538,9 +529,7 @@ mod tests { #[test] fn provider_flow() { - let chain_spec = ChainSpecBuilder::mainnet().build(); - let db = create_test_rw_db(); - let factory = ProviderFactory::new(db, Arc::new(chain_spec)); + let factory = create_test_provider_factory(); let provider = factory.provider().unwrap(); provider.block_hash(0).unwrap(); let provider_rw = factory.provider_rw().unwrap(); @@ -567,9 +556,7 @@ mod tests { #[test] fn insert_block_with_prune_modes() { - let chain_spec = ChainSpecBuilder::mainnet().build(); - let db = create_test_rw_db(); - let factory = ProviderFactory::new(db, Arc::new(chain_spec)); + let factory = create_test_provider_factory(); let mut block_rlp = hex!("f9025ff901f7a0c86e8cc0310ae7c531c758678ddbfd16fc51c8cef8cec650b032de9869e8b94fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa050554882fbbda2c2fd93fdc466db9946ea262a67f7a76cc169e714f105ab583da00967f09ef1dfed20c0eacfaa94d5cd4002eda3242ac47eae68972d07b106d192a0e3c8b47fbfc94667ef4cceb17e5cc21e3b1eebd442cebb27f07562b33836290db90100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008302000001830f42408238108203e800a00000000000000000000000000000000000000000000000000000000000000000880000000000000000f862f860800a83061a8094095e7baea6a6c7c4c2dfeb977efac326af552d8780801ba072ed817487b84ba367d15d2f039b5fc5f087d0a8882fbdf73e8cb49357e1ce30a0403d800545b8fc544f92ce8124e2255f8c3c6af93f28243a120585d4c4c6a2a3c0").as_slice(); let block = SealedBlock::decode(&mut block_rlp).unwrap(); @@ -605,9 +592,7 @@ mod tests { #[test] fn get_take_block_transaction_range_recover_senders() { - let chain_spec = ChainSpecBuilder::mainnet().build(); - let db = create_test_rw_db(); - let factory = ProviderFactory::new(db, Arc::new(chain_spec)); + let factory = create_test_provider_factory(); let mut rng = generators::rng(); let block = random_block(&mut rng, 0, None, Some(3), None); @@ -646,12 +631,10 @@ mod tests { #[test] fn header_sync_gap_lookup() { - let mut rng = generators::rng(); - let chain_spec = ChainSpecBuilder::mainnet().build(); - let db = create_test_rw_db(); - let factory = ProviderFactory::new(db, Arc::new(chain_spec)); + let factory = create_test_provider_factory(); let provider = factory.provider_rw().unwrap(); + let mut rng = generators::rng(); let consensus_tip = rng.gen(); let (_tip_tx, tip_rx) = watch::channel(consensus_tip); let mode = HeaderSyncMode::Tip(tip_rx); diff --git a/crates/storage/provider/src/providers/snapshot/mod.rs b/crates/storage/provider/src/providers/snapshot/mod.rs index a5244c78e8..26f180e853 100644 --- a/crates/storage/provider/src/providers/snapshot/mod.rs +++ b/crates/storage/provider/src/providers/snapshot/mod.rs @@ -41,19 +41,17 @@ impl Deref for LoadedJar { #[cfg(test)] mod test { use super::*; - use crate::{HeaderProvider, ProviderFactory}; + use crate::{test_utils::create_test_provider_factory, HeaderProvider}; use rand::{self, seq::SliceRandom}; use reth_db::{ cursor::DbCursorRO, - database::Database, snapshot::create_snapshot_T1_T2_T3, - test_utils::create_test_rw_db, transaction::{DbTx, DbTxMut}, - CanonicalHeaders, DatabaseError, HeaderNumbers, HeaderTD, Headers, RawTable, + CanonicalHeaders, HeaderNumbers, HeaderTD, Headers, RawTable, }; use reth_interfaces::test_utils::generators::{self, random_header_range}; use reth_nippy_jar::NippyJar; - use reth_primitives::{BlockNumber, B256, MAINNET, U256}; + use reth_primitives::{BlockNumber, B256, U256}; #[test] fn test_snap() { @@ -64,8 +62,7 @@ mod test { SegmentHeader::new(range.clone(), range.clone(), SnapshotSegment::Headers); // Data sources - let db = create_test_rw_db(); - let factory = ProviderFactory::new(&db, MAINNET.clone()); + let factory = create_test_provider_factory(); let snap_path = tempfile::tempdir().unwrap(); let snap_file = snap_path.path().join(SnapshotSegment::Headers.filename(&range, &range)); @@ -76,21 +73,19 @@ mod test { B256::random(), ); - db.update(|tx| -> Result<(), DatabaseError> { - let mut td = U256::ZERO; - for header in headers.clone() { - td += header.header.difficulty; - let hash = header.hash(); + let mut provider_rw = factory.provider_rw().unwrap(); + let tx = provider_rw.tx_mut(); + let mut td = U256::ZERO; + for header in headers.clone() { + td += header.header.difficulty; + let hash = header.hash(); - tx.put::(header.number, hash)?; - tx.put::(header.number, header.clone().unseal())?; - tx.put::(header.number, td.into())?; - tx.put::(hash, header.number)?; - } - Ok(()) - }) - .unwrap() - .unwrap(); + tx.put::(header.number, hash).unwrap(); + tx.put::(header.number, header.clone().unseal()).unwrap(); + tx.put::(header.number, td.into()).unwrap(); + tx.put::(hash, header.number).unwrap(); + } + provider_rw.commit().unwrap(); // Create Snapshot { @@ -107,7 +102,8 @@ mod test { nippy_jar = nippy_jar.with_cuckoo_filter(row_count as usize + 10).with_fmph(); } - let tx = db.tx().unwrap(); + let provider = factory.provider().unwrap(); + let tx = provider.tx_ref(); // Hacky type inference. TODO fix let mut none_vec = Some(vec![vec![vec![0u8]].into_iter()]); @@ -127,7 +123,7 @@ mod test { BlockNumber, SegmentHeader, >( - &tx, range, None, none_vec, Some(hashes), row_count as usize, &mut nippy_jar + tx, range, None, none_vec, Some(hashes), row_count as usize, &mut nippy_jar ) .unwrap(); }