diff --git a/Cargo.lock b/Cargo.lock index 57412b10410cd..f3758dc9f41cb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6842,7 +6842,7 @@ version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e56c0e51972d7b26ff76966c4d0f2307030df9daa5ce0885149ece1ab7ca5ad" dependencies = [ - "frame-metadata 23.0.0", + "frame-metadata 23.0.1", "parity-scale-codec", "scale-decode", "scale-info", @@ -6934,9 +6934,9 @@ dependencies = [ [[package]] name = "frame-metadata" -version = "23.0.0" +version = "23.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8c26fcb0454397c522c05fdad5380c4e622f8a875638af33bff5a320d1fc965" +checksum = "9ba5be0edbdb824843a0f9c6f0906ecfc66c5316218d74457003218b24909ed0" dependencies = [ "cfg-if", "parity-scale-codec", @@ -6951,7 +6951,7 @@ dependencies = [ "array-bytes 6.2.2", "const-hex", "docify", - "frame-metadata 23.0.0", + "frame-metadata 23.0.1", "frame-support", "frame-system", "log", @@ -7030,7 +7030,7 @@ dependencies = [ "bitflags 1.3.2", "docify", "environmental", - "frame-metadata 23.0.0", + "frame-metadata 23.0.1", "frame-support-procedural", "frame-system", "impl-trait-for-tuples", @@ -7119,7 +7119,7 @@ version = "3.0.0" dependencies = [ "frame-benchmarking", "frame-executive", - "frame-metadata 23.0.0", + "frame-metadata 23.0.1", "frame-support", "frame-support-test-pallet", "frame-system", @@ -10335,7 +10335,7 @@ checksum = "b3e3e3f549d27d2dc054372f320ddf68045a833fab490563ff70d4cf1b9d91ea" dependencies = [ "array-bytes 9.1.2", "blake3", - "frame-metadata 23.0.0", + "frame-metadata 23.0.1", "parity-scale-codec", "scale-decode", "scale-info", @@ -12563,7 +12563,7 @@ dependencies = [ name = "pallet-example-view-functions" version = "1.0.0" dependencies = [ - "frame-metadata 23.0.0", + "frame-metadata 23.0.1", "frame-support", "frame-system", "log", @@ -23533,7 +23533,7 @@ dependencies = [ name = "sp-metadata-ir" version = "0.6.0" dependencies = [ - "frame-metadata 23.0.0", + "frame-metadata 23.0.1", "parity-scale-codec", "scale-info", ] @@ -24927,7 +24927,7 @@ dependencies = [ "cargo_metadata", "console", "filetime", - "frame-metadata 23.0.0", + "frame-metadata 23.0.1", "jobserver", "merkleized-metadata", "parity-scale-codec", @@ -25011,7 +25011,7 @@ dependencies = [ "async-trait", "derive-where", "either", - "frame-metadata 23.0.0", + "frame-metadata 23.0.1", "futures", "hex", "jsonrpsee", @@ -25113,7 +25113,7 @@ dependencies = [ "blake2 0.10.6", "derive-where", "frame-decode 0.8.3", - "frame-metadata 23.0.0", + "frame-metadata 23.0.1", "hashbrown 0.14.5", "hex", "impl-serde", @@ -25222,7 +25222,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c134068711c0c46906abc0e6e4911204420331530738e18ca903a5469364d9f" dependencies = [ "frame-decode 0.8.3", - "frame-metadata 23.0.0", + "frame-metadata 23.0.1", "hashbrown 0.14.5", "parity-scale-codec", "scale-info", @@ -25262,7 +25262,7 @@ checksum = "25de7727144780d780a6a7d78bbfd28414b8adbab68b05e87329c367d7705be4" dependencies = [ "derive-where", "finito", - "frame-metadata 23.0.0", + "frame-metadata 23.0.1", "futures", "hex", "impl-serde", diff --git a/Cargo.toml b/Cargo.toml index 2672bce99a26d..f473850c0d6aa 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -829,7 +829,7 @@ frame-benchmarking-pallet-pov = { default-features = false, path = "substrate/fr frame-election-provider-solution-type = { path = "substrate/frame/election-provider-support/solution-type", default-features = false } frame-election-provider-support = { path = "substrate/frame/election-provider-support", default-features = false } frame-executive = { path = "substrate/frame/executive", default-features = false } -frame-metadata = { version = "23.0.0", default-features = false } +frame-metadata = { version = "23.0.1", default-features = false } frame-metadata-hash-extension = { path = "substrate/frame/metadata-hash-extension", default-features = false } frame-storage-access-test-runtime = { path = "substrate/utils/frame/storage-access-test-runtime", default-features = false } frame-support = { path = "substrate/frame/support", default-features = false } diff --git a/prdoc/pr_10592.prdoc b/prdoc/pr_10592.prdoc new file mode 100644 index 0000000000000..56f708198a30b --- /dev/null +++ b/prdoc/pr_10592.prdoc @@ -0,0 +1,21 @@ +title: 'fix: ensure metadata v15 is generated by frame-metadata' +doc: +- audience: Runtime Dev + description: |- + This is a companion PR to https://github.com/paritytech/frame-metadata/pull/110. + This PR ensures that `CheckMetadataHash` generated with both v15 and v16 are the same. + + cc @bkchr +crates: +- name: sp-metadata-ir + bump: patch + validate: false +- name: frame-support + bump: patch + validate: false +- name: substrate-wasm-builder + bump: patch + validate: false +- name: pallet-example-view-functions + bump: patch + validate: false diff --git a/substrate/primitives/metadata-ir/src/v15.rs b/substrate/primitives/metadata-ir/src/v15.rs index 64bc3e843ab58..1bfad0bd355f1 100644 --- a/substrate/primitives/metadata-ir/src/v15.rs +++ b/substrate/primitives/metadata-ir/src/v15.rs @@ -27,21 +27,17 @@ use frame_metadata::v15::{ RuntimeApiMethodMetadata, RuntimeApiMethodParamMetadata, RuntimeMetadataV15, SignedExtensionMetadata, }; -use scale_info::{IntoPortable, Registry}; impl From for RuntimeMetadataV15 { fn from(ir: MetadataIR) -> Self { - let mut registry = Registry::new(); - let pallets = - registry.map_into_portable(ir.pallets.into_iter().map(Into::::into)); - let extrinsic = Into::::into(ir.extrinsic).into_portable(&mut registry); - let ty = registry.register_type(&ir.ty); - let apis = - registry.map_into_portable(ir.apis.into_iter().map(Into::::into)); - let outer_enums = Into::::into(ir.outer_enums).into_portable(&mut registry); - let custom = CustomMetadata { map: Default::default() }; - - Self { types: registry.into(), pallets, extrinsic, ty, apis, outer_enums, custom } + RuntimeMetadataV15::new( + ir.pallets.into_iter().map(Into::into).collect(), + ir.extrinsic.into(), + ir.ty, + ir.apis.into_iter().map(Into::into).collect(), + ir.outer_enums.into(), + CustomMetadata { map: Default::default() }, + ) } }