diff --git a/bin/sozo/src/utils.rs b/bin/sozo/src/utils.rs index 6daede5306..afba56f406 100644 --- a/bin/sozo/src/utils.rs +++ b/bin/sozo/src/utils.rs @@ -120,13 +120,25 @@ pub async fn get_world_diff_and_provider( let provider = Arc::try_unwrap(provider).map_err(|_| anyhow!("Failed to unwrap Arc"))?; trace!(?provider, "Provider initialized."); - let spec_version = provider.spec_version().await?; - trace!(spec_version); - - if !is_compatible_version(&spec_version, RPC_SPEC_VERSION)? { - return Err(anyhow!( - "Unsupported Starknet RPC version: {spec_version}, expected {RPC_SPEC_VERSION}.", - )); + match provider.spec_version().await { + Ok(spec_version) => { + trace!(spec_version); + match is_compatible_version(&spec_version, RPC_SPEC_VERSION) { + Ok(true) => {} + Ok(false) => ui.warn(format!( + "Starknet RPC version mismatch: node reports {spec_version}, sozo was built \ + against {RPC_SPEC_VERSION}. Continuing anyway; operations may fail if RPC \ + methods differ." + )), + Err(e) => ui.warn(format!( + "Could not parse Starknet RPC version '{spec_version}': {e}. Continuing." + )), + } + } + Err(e) => ui.warn(format!( + "Could not query Starknet RPC version: {e}. Continuing; operations may fail if RPC \ + methods differ." + )), } let chain_id = provider.chain_id().await?;