use alloy::providers::ProviderBuilder;
use alloy_flashblocks::FlashblocksProviderExt;
use eyre::Result;
use futures_util::StreamExt;
const RPC_URL: &str = "https://mainnet-preconf.base.org";
#[tokio::main]
async fn main() -> Result<()> {
let provider = ProviderBuilder::new().connect_http(RPC_URL.parse()?);
println!("Streaming flashblock updates (120ms polling)...\n");
let mut stream = provider.watch_flashblocks().into_stream();
while let Some(block) = stream.next().await {
println!(
"Block {} | {} | {} txs | {} gas",
block.header.number,
&format!("{:?}", block.header.hash),
block.transactions.len(),
block.header.gas_used
);
}
Ok(())
}