mirror of
https://github.com/paradigmxyz/reth.git
synced 2026-01-29 09:08:05 -05:00
test(provider): instantiate provider with util function (#5534)
This commit is contained in:
@@ -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();
|
||||
|
||||
@@ -490,18 +490,13 @@ impl<DB: Database> PruneCheckpointReader for ProviderFactory<DB> {
|
||||
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);
|
||||
|
||||
@@ -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::<CanonicalHeaders>(header.number, hash)?;
|
||||
tx.put::<Headers>(header.number, header.clone().unseal())?;
|
||||
tx.put::<HeaderTD>(header.number, td.into())?;
|
||||
tx.put::<HeaderNumbers>(hash, header.number)?;
|
||||
}
|
||||
Ok(())
|
||||
})
|
||||
.unwrap()
|
||||
.unwrap();
|
||||
tx.put::<CanonicalHeaders>(header.number, hash).unwrap();
|
||||
tx.put::<Headers>(header.number, header.clone().unseal()).unwrap();
|
||||
tx.put::<HeaderTD>(header.number, td.into()).unwrap();
|
||||
tx.put::<HeaderNumbers>(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();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user