From 8b3683a1e478e57e93d7bce366d90fb2afee6ea2 Mon Sep 17 00:00:00 2001 From: notV4l Date: Thu, 20 Feb 2025 16:00:54 +0100 Subject: [PATCH] faster --- .../dojo/world/src/local/artifact_to_local.rs | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/crates/dojo/world/src/local/artifact_to_local.rs b/crates/dojo/world/src/local/artifact_to_local.rs index c11171865a..8b1547814b 100644 --- a/crates/dojo/world/src/local/artifact_to_local.rs +++ b/crates/dojo/world/src/local/artifact_to_local.rs @@ -46,8 +46,13 @@ impl WorldLocal { let entry = entry?; let path = entry.path(); if path.is_file() { + if path.to_string_lossy().ends_with(".sierra.json") { + trace!("Ignored .sierra.json: {}", path.to_string_lossy().to_string()); + continue; + } + if let Ok(sierra) = - serde_json::from_reader::<_, SierraClass>(std::fs::File::open(&path)?) + serde_json::from_slice::(std::fs::read(&path)?.as_slice()) { let casm_path = PathBuf::from( path.to_string_lossy() @@ -56,9 +61,9 @@ impl WorldLocal { ); let casm_class = if casm_path.exists() { - Some(serde_json::from_reader::<_, CompiledClass>(std::fs::File::open( - &casm_path, - )?)?) + Some(serde_json::from_slice::( + std::fs::read(&casm_path)?.as_slice(), + )?) } else { None }; @@ -161,6 +166,8 @@ impl WorldLocal { with the version.", name ); + } else { + dojo_resource_found = true; } break; @@ -361,7 +368,7 @@ build-external-contracts = ["dojo::world::world_contract::world"] fn casm_class_hash_from_sierra_file>(path: P) -> Result { let bytecode_max_size = usize::MAX; let sierra_class: ContractClass = - serde_json::from_reader::<_, ContractClass>(std::fs::File::open(path)?)?; + serde_json::from_slice::(std::fs::read(path)?.as_slice())?; let casm_class = CasmContractClass::from_contract_class(sierra_class, false, bytecode_max_size)?; Ok(casm_class.compiled_class_hash())