metadata: Use v15 internally (#912)

* Update frame-metadata to v15.1.0

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* Enable V15 unstable metadata in frame-metadata

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* metadata: Move validation hashing to dedicated file

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* Use sp-metadata-ir from substrate to work with metadata

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* Revert using sp-metadata-ir in favor of conversion to v15

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* metadata: Convert v14 to v15

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* metadata: Use v15 for validation

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* codegen: Use v15 for codegen

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* metadata/bench: Use v15

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* Adjust to v15 metadata

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* Adjust testing

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* Improve documentation

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* force CI

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* metadata: Address feedback

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* metadata: Use HASH_LEN

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* metadta: Remove `LatestRuntimeMetadata` type alias

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* metadata: Remove `metadata_to_latest` to avoid pancis

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

---------

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
This commit is contained in:
Alexandru Vasile
2023-04-20 17:59:28 +03:00
committed by GitHub
parent 2f1b67b384
commit 59d195d4ad
30 changed files with 1087 additions and 920 deletions
+9 -4
View File
@@ -7,8 +7,11 @@ mod metadata_test_runner;
mod pallet_metadata_test_runner;
use frame_metadata::{
v14::RuntimeMetadataV14, ExtrinsicMetadata, PalletMetadata, PalletStorageMetadata,
RuntimeMetadataPrefixed, StorageEntryMetadata,
v15::{
ExtrinsicMetadata, PalletMetadata, PalletStorageMetadata, RuntimeMetadataV15,
StorageEntryMetadata,
},
RuntimeMetadataPrefixed,
};
use scale_info::{meta_type, IntoPortable, TypeInfo};
@@ -28,7 +31,7 @@ pub fn generate_metadata_from_pallets_custom_dispatch_error<DispatchError: TypeI
signed_extensions: vec![],
};
// Construct metadata manually from our types (See `RuntimeMetadataV14::new()`).
// Construct metadata manually from our types (See `RuntimeMetadataV15::new()`).
// Add any extra types we need to the registry.
let mut registry = scale_info::Registry::new();
let pallets = registry.map_into_portable(pallets);
@@ -48,11 +51,12 @@ pub fn generate_metadata_from_pallets_custom_dispatch_error<DispatchError: TypeI
// Metadata needs to contain this DispatchError, since codegen looks for it.
registry.register_type(&meta_type::<DispatchError>());
let metadata = RuntimeMetadataV14 {
let metadata = RuntimeMetadataV15 {
types: registry.into(),
pallets,
extrinsic,
ty,
apis: vec![],
};
RuntimeMetadataPrefixed::from(metadata)
@@ -86,6 +90,7 @@ pub fn generate_metadata_from_storage_entries(
calls: None,
event: None,
error: None,
docs: vec![],
};
generate_metadata_from_pallets(vec![pallet])