pub fn parse_system_logs_for_blob_hashes_pre_gateway(
    protocol_version: &ProtocolVersionId,
    system_logs: &[SystemL2ToL1Log],
) -> Vec<H256> {
    assert!(
        protocol_version.is_pre_gateway(),
        "Cannot parse blob linear hashes from system logs for post gateway"
    );

    let num_required_blobs = num_blobs_required(protocol_version) as u32;
    let num_created_blobs = num_blobs_created(protocol_version) as u32;

    if num_created_blobs == 0 {
        return vec![H256::zero(); num_required_blobs as usize];
    }

    let mut blob_hashes = system_logs
        .iter()
        .filter(|log| {
            log.0.sender == PUBDATA_CHUNK_PUBLISHER_ADDRESS
                && log.0.key >= H256::from_low_u64_be(BLOB1_LINEAR_HASH_KEY_PRE_GATEWAY as u64)
                && log.0.key
                    < H256::from_low_u64_be(
                        (BLOB1_LINEAR_HASH_KEY_PRE_GATEWAY + num_created_blobs) as u64,
                    )
        })
        .map(|log| (log.0.key, log.0.value))
        .collect::<Vec<(H256, H256)>>();

    blob_hashes.sort_unstable_by_key(|(k, _)| *k);
    let mut blob_hashes = blob_hashes.iter().map(|(_, v)| *v).collect::<Vec<H256>>();
    blob_hashes.resize(num_required_blobs as usize, H256::zero());
    blob_hashes
}
Returns the blob hashes parsed out from the system logs
core/lib/types/src/l2_to_l1_log.rs