diff --git a/crates/papyrus_base_layer/src/base_layer_test.rs b/crates/papyrus_base_layer/src/base_layer_test.rs index 7e3fc7e30f6..85d91bd3bda 100644 --- a/crates/papyrus_base_layer/src/base_layer_test.rs +++ b/crates/papyrus_base_layer/src/base_layer_test.rs @@ -55,7 +55,7 @@ async fn get_proved_block_at_unknown_block_number() { return; } - let anvil = anvil(); + let anvil = anvil(None); let config = ethereum_base_layer_config(&anvil); let contract = ethereum_base_layer_contract(config.node_url, config.starknet_contract_address); diff --git a/crates/papyrus_base_layer/src/test_utils.rs b/crates/papyrus_base_layer/src/test_utils.rs index a1a49ab49e7..178ecd015b4 100644 --- a/crates/papyrus_base_layer/src/test_utils.rs +++ b/crates/papyrus_base_layer/src/test_utils.rs @@ -14,6 +14,7 @@ use crate::ethereum_base_layer_contract::EthereumBaseLayerConfig; type TestEthereumNodeHandle = (GanacheInstance, TempDir); const MINIMAL_GANACHE_VERSION: u8 = 7; + // Default funded account, there are more fixed funded accounts, // see https://github.com/foundry-rs/foundry/tree/master/crates/anvil. // This address is the sender address of messages sent to L2 by Anvil. @@ -74,9 +75,16 @@ pub fn get_test_ethereum_node() -> (TestEthereumNodeHandle, EthereumContractAddr ((ganache, ganache_db), SN_CONTRACT_ADDR.to_string().parse().unwrap()) } +// TODO(Arni): Make port non-optional. // Spin up Anvil instance, a local Ethereum node, dies when dropped. -pub fn anvil() -> AnvilInstance { - Anvil::new().try_spawn().unwrap_or_else(|error| match error { +pub fn anvil(port: Option) -> AnvilInstance { + let mut anvil = Anvil::new(); + // If the port is not set explicitly, a random value will be used. + if let Some(port) = port { + anvil = anvil.port(port); + } + + anvil.try_spawn().unwrap_or_else(|error| match error { AnvilError::SpawnError(e) if e.to_string().contains("No such file or directory") => { panic!( "\n{}\n{}\n", diff --git a/crates/starknet_l1_provider/src/l1_scraper_tests.rs b/crates/starknet_l1_provider/src/l1_scraper_tests.rs index 806cf6c2868..8cf5278c2a6 100644 --- a/crates/starknet_l1_provider/src/l1_scraper_tests.rs +++ b/crates/starknet_l1_provider/src/l1_scraper_tests.rs @@ -52,7 +52,7 @@ async fn txs_happy_flow() { return; } - let anvil = anvil(); + let anvil = anvil(None); // Setup. let (mut scraper, fake_client) = scraper(&anvil).await;