diff --git a/cli/src/utils.rs b/cli/src/utils.rs index b58b57b005..f1f788fb64 100644 --- a/cli/src/utils.rs +++ b/cli/src/utils.rs @@ -24,15 +24,11 @@ pub struct FileOrUrl { pub file: Option, /// Specify the metadata version. /// - /// - unstable: + /// - "latest": Use the latest stable version available. + /// - "unstable": Use the unstable metadata, if present. + /// - a number: Use a specific metadata version. /// - /// Use the latest unstable metadata of the node. - /// - /// - number - /// - /// Use this specific metadata version. - /// - /// Defaults to 14. + /// Defaults to asking for the latest stable metadata version. #[clap(long)] pub version: Option, } diff --git a/codegen/src/utils/fetch_metadata.rs b/codegen/src/utils/fetch_metadata.rs index 78308bc19d..66689b37c7 100644 --- a/codegen/src/utils/fetch_metadata.rs +++ b/codegen/src/utils/fetch_metadata.rs @@ -201,14 +201,18 @@ async fn fetch_metadata( client: &impl ClientT, version: MetadataVersion, ) -> Result, FetchMetadataError> { - if !matches!(version, MetadataVersion::Version(14)) { + // If the user specifically asks for anything other than version 14 or "latest", error. + if !matches!( + version, + MetadataVersion::Latest | MetadataVersion::Version(14) + ) { return Err(FetchMetadataError::Other( "The node can only return version 14 metadata using the legacy API but you've asked for something else" .to_string(), )); } - // Fetch the metadata at that version: + // Fetch the metadata. let metadata_string: String = client .request("state_call", rpc_params!["Metadata_metadata", "0x"]) .await?;