diff --git a/crates/e2e-test-utils/src/payload.rs b/crates/e2e-test-utils/src/payload.rs index 4e185ce969..89867e66a3 100644 --- a/crates/e2e-test-utils/src/payload.rs +++ b/crates/e2e-test-utils/src/payload.rs @@ -54,12 +54,20 @@ impl PayloadTestContext { Ok(()) } - /// Wait until the best built payload is ready + /// Wait until the best built payload is ready. + /// + /// Panics if the payload builder does not produce a non-empty payload within 30 seconds. pub async fn wait_for_built_payload(&self, payload_id: PayloadId) { + let start = std::time::Instant::now(); loop { let payload = self.payload_builder.best_payload(payload_id).await.transpose().ok().flatten(); if payload.is_none_or(|p| p.block().body().transactions().is_empty()) { + assert!( + start.elapsed() < std::time::Duration::from_secs(30), + "timed out waiting for a non-empty payload for {payload_id} — \ + check that the chain spec supports all generated tx types" + ); tokio::time::sleep(std::time::Duration::from_millis(20)).await; continue } diff --git a/crates/ethereum/node/tests/e2e/eth.rs b/crates/ethereum/node/tests/e2e/eth.rs index 183643b7d7..1be9b1e593 100644 --- a/crates/ethereum/node/tests/e2e/eth.rs +++ b/crates/ethereum/node/tests/e2e/eth.rs @@ -282,6 +282,7 @@ async fn test_sparse_trie_reuse_across_blocks() -> eyre::Result<()> { .chain(MAINNET.chain) .genesis(serde_json::from_str(include_str!("../assets/genesis.json")).unwrap()) .cancun_activated() + .prague_activated() .build(), ), false,