pub async fn get_block_hashes_since(
        &mut self,
        from_block: L2BlockNumber,
        limit: usize,
    ) -> DalResult<(Vec<H256>, Option<L2BlockNumber>)> {
        let rows = sqlx::query!(
            r#"
            SELECT
                number,
                hash
            FROM
                miniblocks
            WHERE
                number >= $1
            ORDER BY
                number ASC
            LIMIT
                $2
            "#,
            i64::from(from_block.0),
            limit as i32
        )
        .instrument("get_block_hashes_since")
        .with_arg("from_block", &from_block)
        .with_arg("limit", &limit)
        .fetch_all(self.storage)
        .await?;

        let last_block_number = rows.last().map(|row| L2BlockNumber(row.number as u32));
        let hashes = rows.iter().map(|row| H256::from_slice(&row.hash)).collect();
        Ok((hashes, last_block_number))
    }
Returns hashes of blocks with numbers starting from `from_block` and the number of the last block.
core/lib/dal/src/blocks_web3_dal.rs