Skip to content

Commit 46638aa

Browse files
committed
feat: add test l1 reorg
1 parent 4df57f1 commit 46638aa

File tree

5 files changed

+49
-28
lines changed

5 files changed

+49
-28
lines changed

crates/node/src/args.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -341,7 +341,7 @@ impl ScrollRollupNodeConfig {
341341
let consensus = self.consensus_args.consensus(authorized_signer)?;
342342

343343
let (l1_notification_tx, l1_notification_rx): (Option<Sender<Arc<L1Notification>>>, _) =
344-
if let Some(provider) = l1_provider.filter(|_| !self.test) {
344+
if let Some(provider) = l1_provider.filter(|_| !self.test||self.blob_provider_args.anvil_url.is_some()) {
345345
tracing::info!(target: "scroll::node::args", ?l1_block_startup_info, "Starting L1 watcher");
346346
(
347347
None,

crates/node/src/test_utils/fixture.rs

Lines changed: 22 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -520,20 +520,26 @@ impl TestFixtureBuilder {
520520

521521
// Start Anvil if requested
522522
let anvil = if self.enable_anvil {
523-
let anvil = Some(
524-
Self::spawn_anvil(
525-
self.anvil_state_path.as_deref(),
526-
self.anvil_chain_id,
527-
self.anvil_block_time,
528-
)
529-
.await?,
530-
);
531-
if let Some(ref handle) = anvil {
532-
let endpoint = handle.http_endpoint();
533-
config.l1_provider_args.url = endpoint.parse::<reqwest::Url>().ok();
534-
config.blob_provider_args.anvil_url = endpoint.parse::<reqwest::Url>().ok();
535-
}
536-
anvil
523+
let handle = Self::spawn_anvil(
524+
self.anvil_state_path.as_deref(),
525+
self.anvil_chain_id,
526+
self.anvil_block_time,
527+
)
528+
.await?;
529+
530+
// Parse endpoint URL once and reuse
531+
let endpoint_url = handle
532+
.http_endpoint()
533+
.parse::<reqwest::Url>()
534+
.map_err(|e| eyre::eyre!("Failed to parse Anvil endpoint URL: {}", e))?;
535+
536+
// Configure L1 provider and blob provider to use Anvil
537+
config.l1_provider_args.url = Some(endpoint_url.clone());
538+
config.l1_provider_args.logs_query_block_range = 500;
539+
config.blob_provider_args.anvil_url = Some(endpoint_url);
540+
config.blob_provider_args.mock = false;
541+
542+
Some(handle)
537543
} else {
538544
None
539545
};
@@ -603,6 +609,8 @@ impl TestFixtureBuilder {
603609
if let Some(id) = chain_id {
604610
config.chain_id = Some(id);
605611
}
612+
613+
config.port = 8544;
606614

607615
// Configure block time
608616
if let Some(time) = block_time {

crates/node/tests/l1_multi_mode.rs

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -101,10 +101,6 @@ async fn test_batch_commit_while_synced() -> eyre::Result<()> {
101101
.build()
102102
.await?;
103103

104-
// First, send L1Synced notification
105-
fixture.l1().sync().await?;
106-
fixture.expect_event().l1_synced().await?;
107-
108104
// Get initial status
109105
let initial_status = fixture.get_sequencer_status().await?;
110106
let initial_safe = initial_status.l2.fcs.safe_block_info().number;
@@ -116,8 +112,19 @@ async fn test_batch_commit_while_synced() -> eyre::Result<()> {
116112
let commit_batch_1_tx = read_test_transaction("commitBatch", "1")?;
117113
fixture.anvil_send_raw_transaction(commit_batch_1_tx).await?;
118114

115+
let commit_batch_1_tx = read_test_transaction("commitBatch", "2")?;
116+
fixture.anvil_send_raw_transaction(commit_batch_1_tx).await?;
117+
118+
// Give it some time to process
119+
tokio::time::sleep(tokio::time::Duration::from_millis(10000)).await;
120+
121+
// First, send L1Synced notification
122+
// fixture.l1().sync().await?;
123+
// fixture.expect_event().l1_synced().await?;
124+
// fixture.expect_event().batch_consolidated().await?;
125+
119126
// Give it some time to process
120-
tokio::time::sleep(tokio::time::Duration::from_millis(1000)).await;
127+
// tokio::time::sleep(tokio::time::Duration::from_millis(10000)).await;
121128

122129
// Check that safe head was updated
123130
let new_status = fixture.get_sequencer_status().await?;

crates/node/tests/testdata/anvil_state.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

crates/node/tests/testdata/test_transactions.json

Lines changed: 13 additions & 7 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)