mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-04-26 20:27:58 +00:00
Stabilize V15 Metadata (#14481)
* Update frame-metadata to latest branch Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Stabilize V15 Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Update frame-metadata Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Use frame-metadata from crates.io Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Adjust testing Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * test: Adjust frame-support metadata docs Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Update primitives/metadata-ir/src/lib.rs Co-authored-by: James Wilson <james@jsdw.me> --------- Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> Co-authored-by: James Wilson <james@jsdw.me> Co-authored-by: parity-processbot <>
This commit is contained in:
@@ -631,7 +631,7 @@ fn call_subtype_conversion() {
|
||||
|
||||
#[test]
|
||||
fn test_metadata() {
|
||||
use frame_support::metadata::*;
|
||||
use frame_support::metadata::{v14::*, *};
|
||||
use scale_info::meta_type;
|
||||
|
||||
let pallets = vec![
|
||||
|
||||
@@ -47,7 +47,7 @@ parameter_types! {
|
||||
}
|
||||
|
||||
/// Latest stable metadata version used for testing.
|
||||
const LATEST_METADATA_VERSION: u32 = 14;
|
||||
const LATEST_METADATA_VERSION: u32 = 15;
|
||||
|
||||
pub struct SomeType1;
|
||||
impl From<SomeType1> for u64 {
|
||||
@@ -1300,7 +1300,8 @@ fn migrate_from_pallet_version_to_storage_version() {
|
||||
|
||||
#[test]
|
||||
fn metadata() {
|
||||
use frame_support::metadata::*;
|
||||
use codec::Decode;
|
||||
use frame_support::metadata::{v15::*, *};
|
||||
|
||||
fn maybe_docs(doc: Vec<&'static str>) -> Vec<&'static str> {
|
||||
if cfg!(feature = "no-metadata-docs") {
|
||||
@@ -1310,6 +1311,9 @@ fn metadata() {
|
||||
}
|
||||
}
|
||||
|
||||
let readme = "Support code for the runtime.\n\nLicense: Apache-2.0";
|
||||
let expected_pallet_doc = vec![" Pallet documentation", readme, readme];
|
||||
|
||||
let pallets = vec![
|
||||
PalletMetadata {
|
||||
index: 1,
|
||||
@@ -1570,6 +1574,7 @@ fn metadata() {
|
||||
},
|
||||
],
|
||||
error: Some(PalletErrorMetadata { ty: meta_type::<pallet::Error<Runtime>>() }),
|
||||
docs: expected_pallet_doc,
|
||||
},
|
||||
PalletMetadata {
|
||||
index: 2,
|
||||
@@ -1608,6 +1613,7 @@ fn metadata() {
|
||||
event: Some(PalletEventMetadata { ty: meta_type::<pallet2::Event>() }),
|
||||
constants: vec![],
|
||||
error: None,
|
||||
docs: vec![],
|
||||
},
|
||||
#[cfg(feature = "frame-feature-testing")]
|
||||
PalletMetadata {
|
||||
@@ -1618,6 +1624,7 @@ fn metadata() {
|
||||
event: None,
|
||||
constants: vec![],
|
||||
error: None,
|
||||
docs: vec![" Test that the supertrait check works when we pass some parameter to the `frame_system::Config`."],
|
||||
},
|
||||
#[cfg(feature = "frame-feature-testing-2")]
|
||||
PalletMetadata {
|
||||
@@ -1628,6 +1635,7 @@ fn metadata() {
|
||||
event: None,
|
||||
constants: vec![],
|
||||
error: None,
|
||||
docs: vec![" Test that the supertrait check works when we pass some parameter to the `frame_system::Config`."],
|
||||
},
|
||||
];
|
||||
|
||||
@@ -1642,24 +1650,48 @@ fn metadata() {
|
||||
}
|
||||
|
||||
let extrinsic = ExtrinsicMetadata {
|
||||
ty: meta_type::<UncheckedExtrinsic>(),
|
||||
version: 4,
|
||||
signed_extensions: vec![SignedExtensionMetadata {
|
||||
identifier: "UnitSignedExtension",
|
||||
ty: meta_type::<()>(),
|
||||
additional_signed: meta_type::<()>(),
|
||||
}],
|
||||
address_ty: meta_type::<<<UncheckedExtrinsic as ExtrinsicT>::SignaturePayload as SignaturePayloadT>::SignatureAddress>(),
|
||||
call_ty: meta_type::<<UncheckedExtrinsic as ExtrinsicT>::Call>(),
|
||||
signature_ty: meta_type::<
|
||||
<<UncheckedExtrinsic as ExtrinsicT>::SignaturePayload as SignaturePayloadT>::Signature
|
||||
>(),
|
||||
extra_ty: meta_type::<<<UncheckedExtrinsic as ExtrinsicT>::SignaturePayload as SignaturePayloadT>::SignatureExtra>(),
|
||||
};
|
||||
|
||||
let expected_metadata: RuntimeMetadataPrefixed =
|
||||
RuntimeMetadataLastVersion::new(pallets, extrinsic, meta_type::<Runtime>()).into();
|
||||
let outer_enums = OuterEnums {
|
||||
call_enum_ty: meta_type::<RuntimeCall>(),
|
||||
event_enum_ty: meta_type::<RuntimeEvent>(),
|
||||
error_enum_ty: meta_type::<RuntimeError>(),
|
||||
};
|
||||
|
||||
let expected_metadata: RuntimeMetadataPrefixed = RuntimeMetadataLastVersion::new(
|
||||
pallets,
|
||||
extrinsic,
|
||||
meta_type::<Runtime>(),
|
||||
vec![],
|
||||
outer_enums,
|
||||
CustomMetadata { map: Default::default() },
|
||||
)
|
||||
.into();
|
||||
let expected_metadata = match expected_metadata.1 {
|
||||
RuntimeMetadata::V14(metadata) => metadata,
|
||||
RuntimeMetadata::V15(metadata) => metadata,
|
||||
_ => panic!("metadata has been bumped, test needs to be updated"),
|
||||
};
|
||||
|
||||
let actual_metadata = match Runtime::metadata().1 {
|
||||
RuntimeMetadata::V14(metadata) => metadata,
|
||||
let bytes = &Runtime::metadata_at_version(LATEST_METADATA_VERSION)
|
||||
.expect("Metadata must be present; qed");
|
||||
|
||||
let actual_metadata: RuntimeMetadataPrefixed =
|
||||
Decode::decode(&mut &bytes[..]).expect("Metadata encoded properly; qed");
|
||||
|
||||
let actual_metadata = match actual_metadata.1 {
|
||||
RuntimeMetadata::V15(metadata) => metadata,
|
||||
_ => panic!("metadata has been bumped, test needs to be updated"),
|
||||
};
|
||||
|
||||
@@ -1671,8 +1703,9 @@ fn metadata_at_version() {
|
||||
use frame_support::metadata::*;
|
||||
use sp_core::Decode;
|
||||
|
||||
// Metadata always returns the V14.3
|
||||
let metadata = Runtime::metadata();
|
||||
let at_metadata = match Runtime::metadata_at_version(LATEST_METADATA_VERSION) {
|
||||
let at_metadata = match Runtime::metadata_at_version(14) {
|
||||
Some(opaque) => {
|
||||
let bytes = &*opaque;
|
||||
let metadata: RuntimeMetadataPrefixed = Decode::decode(&mut &bytes[..]).unwrap();
|
||||
@@ -1686,7 +1719,7 @@ fn metadata_at_version() {
|
||||
|
||||
#[test]
|
||||
fn metadata_versions() {
|
||||
assert_eq!(vec![LATEST_METADATA_VERSION, u32::MAX], Runtime::metadata_versions());
|
||||
assert_eq!(vec![14, LATEST_METADATA_VERSION], Runtime::metadata_versions());
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
||||
@@ -723,7 +723,7 @@ fn pallet_on_genesis() {
|
||||
|
||||
#[test]
|
||||
fn metadata() {
|
||||
use frame_support::metadata::*;
|
||||
use frame_support::metadata::{v14::*, *};
|
||||
|
||||
let system_pallet_metadata = PalletMetadata {
|
||||
index: 0,
|
||||
|
||||
Reference in New Issue
Block a user