fix for when runtime API field name is _ (#1191)

* fix for when runtime API field name is _

* add a test

* formatting

---------

Co-authored-by: Tadeo hepperle <tadeo@do-mix.de>
This commit is contained in:
James Wilson
2023-10-05 15:16:15 +02:00
committed by GitHub
parent e91d0c7b37
commit 919b866c0f
5 changed files with 62 additions and 9 deletions
+29
View File
@@ -0,0 +1,29 @@
// Copyright 2019-2023 Parity Technologies (UK) Ltd.
// This file is dual-licensed as Apache-2.0 or GPL-3.0.
// see LICENSE for license details.
use frame_metadata::{
v15::{RuntimeApiMetadata, RuntimeApiMethodMetadata, RuntimeApiMethodParamMetadata},
RuntimeMetadataPrefixed,
};
use crate::utils::generate_metadata_from_runtime_apis;
/// Generate metadata which contains a `Map` storage entry with no hashers/values.
/// This is a bit of an odd case, but it was raised in https://github.com/paritytech/subxt/issues/552,
/// and this test will fail before the fix and should pass once the fix is applied.
pub fn metadata_runtime_api_underscore_method_name() -> RuntimeMetadataPrefixed {
generate_metadata_from_runtime_apis(vec![RuntimeApiMetadata {
name: "MyApi".to_owned(),
docs: vec![],
methods: vec![RuntimeApiMethodMetadata {
name: "my_method".to_owned(),
inputs: vec![RuntimeApiMethodParamMetadata {
name: "_".to_owned(), // The important bit we're testing.
ty: 0.into(), // we don't care what type this is.
}],
output: 0.into(), // we don't care what type this is.
docs: vec![],
}],
}])
}