diff --git a/metadata/src/from_into/v15.rs b/metadata/src/from_into/v15.rs index 37e4336543..e1e4a15159 100644 --- a/metadata/src/from_into/v15.rs +++ b/metadata/src/from_into/v15.rs @@ -284,9 +284,7 @@ mod into_v15 { event_enum_ty: m.outer_enums.event_enum_ty.into(), error_enum_ty: m.outer_enums.error_enum_ty.into(), }, - custom: v15::CustomMetadata { - map: Default::default(), - }, + custom: m.custom, } } } diff --git a/testing/integration-tests/src/full_client/metadata/validation.rs b/testing/integration-tests/src/full_client/metadata/validation.rs index 6fbda7bbe8..8fd3da8b28 100644 --- a/testing/integration-tests/src/full_client/metadata/validation.rs +++ b/testing/integration-tests/src/full_client/metadata/validation.rs @@ -97,6 +97,25 @@ fn pallets_to_metadata(pallets: Vec) -> Metadata { )) } +#[subxt_test] +async fn metadata_converting_works_ok() { + let ctx = test_context().await; + let api = ctx.client(); + + assert!( + node_runtime::is_codegen_valid_for(&api.metadata()), + "Should be valid initially" + ); + + let metadata = RuntimeMetadataV15::from((*api.metadata()).clone()); + let metadata = v15_to_metadata(metadata); + + assert!( + node_runtime::is_codegen_valid_for(&metadata), + "Should still be valid after conversion back and forth" + ); +} + #[subxt_test] async fn full_metadata_check() { let ctx = test_context().await;