From 550af457a57dd4ad6ac1b64f68716ef640585cd6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Walter?= Date: Wed, 9 Oct 2024 14:58:33 +0200 Subject: [PATCH] Update Kakarot to v0.9.2 (#1439) * Update kakarot to v0.9.2 * skip unvalid classes --------- Co-authored-by: GitHub Actions Co-authored-by: Gregory Edison --- lib/kakarot | 2 +- src/test_utils/katana/genesis.rs | 18 +++++++++++++----- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/lib/kakarot b/lib/kakarot index 2473e6bfe..c00280f69 160000 --- a/lib/kakarot +++ b/lib/kakarot @@ -1 +1 @@ -Subproject commit 2473e6bfeffebfb822f06cadc0e4daf276db2fc6 +Subproject commit c00280f69f916a1a51147d4e130ea3b7a3f6d5fc diff --git a/src/test_utils/katana/genesis.rs b/src/test_utils/katana/genesis.rs index eeb9f6c26..bad374b29 100644 --- a/src/test_utils/katana/genesis.rs +++ b/src/test_utils/katana/genesis.rs @@ -150,13 +150,21 @@ impl KatanaGenesisBuilder { let entries = WalkDir::new(path).into_iter().filter(|e| e.is_ok() && e.as_ref().unwrap().file_type().is_file()); let classes = entries .par_bridge() - .map(|entry| { + .filter_map(|entry| { let path = entry.unwrap().path().to_path_buf(); let artifact = fs::read_to_string(&path).expect("Failed to read artifact"); let artifact = serde_json::from_str(&artifact).expect("Failed to parse artifact"); - let class_hash = - compute_class_hash(&artifact).inspect_err(|e| eprint!("Failed to compute class hash: {e:?}")).ok(); - (path, GenesisClassJson { class: PathOrFullArtifact::Artifact(artifact), class_hash, name: None }) + let class_hash = compute_class_hash(&artifact) + .inspect_err(|e| eprintln!("Failed to compute class hash: {e:?} for {path:?}")) + .ok()?; + Some(( + path, + GenesisClassJson { + class: PathOrFullArtifact::Artifact(artifact), + class_hash: Some(class_hash), + name: None, + }, + )) }) .collect::>(); @@ -363,7 +371,7 @@ fn compute_class_hash(class: &Value) -> Result { if let Ok(sierra) = serde_json::from_value::(class.clone()) { Ok(sierra.class_hash()?) } else { - let casm: LegacyContractClass = serde_json::from_value(class.clone()).expect("Failed to parse class code v0"); + let casm: LegacyContractClass = serde_json::from_value(class.clone())?; Ok(casm.class_hash()?) } }