pub async fn new_async(
        rt_handle: Handle,
        mut connection: Connection<'a, Core>,
        block_number: L2BlockNumber,
        consider_new_l1_batch: bool,
    ) -> anyhow::Result<Self> {
        let resolved = connection
            .storage_web3_dal()
            .resolve_l1_batch_number_of_l2_block(block_number)
            .await
            .with_context(|| {
                format!("failed resolving L1 batch number for L2 block #{block_number}")
            })?;
        Ok(Self {
            rt_handle,
            connection,
            l2_block_number: block_number,
            l1_batch_number_for_l2_block: resolved.expected_l1_batch(),
            pending_l1_batch_number: resolved.pending_l1_batch,
            consider_new_l1_batch,
            caches: None,
        })
    }
Asynchronous version of [`Self::new()`] that also propagates errors instead of panicking.

# Errors

Propagates Postgres errors.
core/lib/state/src/postgres/mod.rs