Skip to content

Commit 72874f1

Browse files
carlosalagithub-actions[bot]bkchr
authored
fix: ensure metadata v15 is generated by frame-metadata (#10592)
This is a companion PR to paritytech/frame-metadata#110. This PR ensures that `CheckMetadataHash` generated with both v15 and v16 are the same. cc @bkchr --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Bastian Köcher <[email protected]>
1 parent eba7dba commit 72874f1

File tree

4 files changed

+34
-27
lines changed

4 files changed

+34
-27
lines changed

Cargo.lock

Lines changed: 14 additions & 14 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -829,7 +829,7 @@ frame-benchmarking-pallet-pov = { default-features = false, path = "substrate/fr
829829
frame-election-provider-solution-type = { path = "substrate/frame/election-provider-support/solution-type", default-features = false }
830830
frame-election-provider-support = { path = "substrate/frame/election-provider-support", default-features = false }
831831
frame-executive = { path = "substrate/frame/executive", default-features = false }
832-
frame-metadata = { version = "23.0.0", default-features = false }
832+
frame-metadata = { version = "23.0.1", default-features = false }
833833
frame-metadata-hash-extension = { path = "substrate/frame/metadata-hash-extension", default-features = false }
834834
frame-storage-access-test-runtime = { path = "substrate/utils/frame/storage-access-test-runtime", default-features = false }
835835
frame-support = { path = "substrate/frame/support", default-features = false }

prdoc/pr_10592.prdoc

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
title: 'fix: ensure metadata v15 is generated by frame-metadata'
2+
doc:
3+
- audience: Runtime Dev
4+
description: |-
5+
This is a companion PR to https://github.com/paritytech/frame-metadata/pull/110.
6+
This PR ensures that `CheckMetadataHash` generated with both v15 and v16 are the same.
7+
8+
cc @bkchr
9+
crates:
10+
- name: sp-metadata-ir
11+
bump: patch

substrate/primitives/metadata-ir/src/v15.rs

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -27,21 +27,17 @@ use frame_metadata::v15::{
2727
RuntimeApiMethodMetadata, RuntimeApiMethodParamMetadata, RuntimeMetadataV15,
2828
SignedExtensionMetadata,
2929
};
30-
use scale_info::{IntoPortable, Registry};
3130

3231
impl From<MetadataIR> for RuntimeMetadataV15 {
3332
fn from(ir: MetadataIR) -> Self {
34-
let mut registry = Registry::new();
35-
let pallets =
36-
registry.map_into_portable(ir.pallets.into_iter().map(Into::<PalletMetadata>::into));
37-
let extrinsic = Into::<ExtrinsicMetadata>::into(ir.extrinsic).into_portable(&mut registry);
38-
let ty = registry.register_type(&ir.ty);
39-
let apis =
40-
registry.map_into_portable(ir.apis.into_iter().map(Into::<RuntimeApiMetadata>::into));
41-
let outer_enums = Into::<OuterEnums>::into(ir.outer_enums).into_portable(&mut registry);
42-
let custom = CustomMetadata { map: Default::default() };
43-
44-
Self { types: registry.into(), pallets, extrinsic, ty, apis, outer_enums, custom }
33+
RuntimeMetadataV15::new(
34+
ir.pallets.into_iter().map(Into::into).collect(),
35+
ir.extrinsic.into(),
36+
ir.ty,
37+
ir.apis.into_iter().map(Into::into).collect(),
38+
ir.outer_enums.into(),
39+
CustomMetadata { map: Default::default() },
40+
)
4541
}
4642
}
4743

0 commit comments

Comments
 (0)