@@ -47,7 +47,7 @@ parameter_types! {
4747}
4848
4949/// Latest stable metadata version used for testing.
50- const LATEST_METADATA_VERSION : u32 = 14 ;
50+ const LATEST_METADATA_VERSION : u32 = 15 ;
5151
5252pub struct SomeType1 ;
5353impl From < SomeType1 > for u64 {
@@ -1300,7 +1300,8 @@ fn migrate_from_pallet_version_to_storage_version() {
13001300
13011301#[ test]
13021302fn metadata ( ) {
1303- use frame_support:: metadata:: * ;
1303+ use codec:: Decode ;
1304+ use frame_support:: metadata:: { v15:: * , * } ;
13041305
13051306 fn maybe_docs ( doc : Vec < & ' static str > ) -> Vec < & ' static str > {
13061307 if cfg ! ( feature = "no-metadata-docs" ) {
@@ -1310,6 +1311,9 @@ fn metadata() {
13101311 }
13111312 }
13121313
1314+ let readme = "Support code for the runtime.\n \n License: Apache-2.0" ;
1315+ let expected_pallet_doc = vec ! [ " Pallet documentation" , readme, readme] ;
1316+
13131317 let pallets = vec ! [
13141318 PalletMetadata {
13151319 index: 1 ,
@@ -1570,6 +1574,7 @@ fn metadata() {
15701574 } ,
15711575 ] ,
15721576 error: Some ( PalletErrorMetadata { ty: meta_type:: <pallet:: Error <Runtime >>( ) } ) ,
1577+ docs: expected_pallet_doc,
15731578 } ,
15741579 PalletMetadata {
15751580 index: 2 ,
@@ -1608,6 +1613,7 @@ fn metadata() {
16081613 event: Some ( PalletEventMetadata { ty: meta_type:: <pallet2:: Event >( ) } ) ,
16091614 constants: vec![ ] ,
16101615 error: None ,
1616+ docs: vec![ ] ,
16111617 } ,
16121618 #[ cfg( feature = "frame-feature-testing" ) ]
16131619 PalletMetadata {
@@ -1618,6 +1624,7 @@ fn metadata() {
16181624 event: None ,
16191625 constants: vec![ ] ,
16201626 error: None ,
1627+ docs: vec![ " Test that the supertrait check works when we pass some parameter to the `frame_system::Config`." ] ,
16211628 } ,
16221629 #[ cfg( feature = "frame-feature-testing-2" ) ]
16231630 PalletMetadata {
@@ -1628,6 +1635,7 @@ fn metadata() {
16281635 event: None ,
16291636 constants: vec![ ] ,
16301637 error: None ,
1638+ docs: vec![ " Test that the supertrait check works when we pass some parameter to the `frame_system::Config`." ] ,
16311639 } ,
16321640 ] ;
16331641
@@ -1642,24 +1650,48 @@ fn metadata() {
16421650 }
16431651
16441652 let extrinsic = ExtrinsicMetadata {
1645- ty : meta_type :: < UncheckedExtrinsic > ( ) ,
16461653 version : 4 ,
16471654 signed_extensions : vec ! [ SignedExtensionMetadata {
16481655 identifier: "UnitSignedExtension" ,
16491656 ty: meta_type:: <( ) >( ) ,
16501657 additional_signed: meta_type:: <( ) >( ) ,
16511658 } ] ,
1659+ address_ty : meta_type :: < <<UncheckedExtrinsic as ExtrinsicT >:: SignaturePayload as SignaturePayloadT >:: SignatureAddress > ( ) ,
1660+ call_ty : meta_type :: < <UncheckedExtrinsic as ExtrinsicT >:: Call > ( ) ,
1661+ signature_ty : meta_type :: <
1662+ <<UncheckedExtrinsic as ExtrinsicT >:: SignaturePayload as SignaturePayloadT >:: Signature
1663+ > ( ) ,
1664+ extra_ty : meta_type :: < <<UncheckedExtrinsic as ExtrinsicT >:: SignaturePayload as SignaturePayloadT >:: SignatureExtra > ( ) ,
16521665 } ;
16531666
1654- let expected_metadata: RuntimeMetadataPrefixed =
1655- RuntimeMetadataLastVersion :: new ( pallets, extrinsic, meta_type :: < Runtime > ( ) ) . into ( ) ;
1667+ let outer_enums = OuterEnums {
1668+ call_enum_ty : meta_type :: < RuntimeCall > ( ) ,
1669+ event_enum_ty : meta_type :: < RuntimeEvent > ( ) ,
1670+ error_enum_ty : meta_type :: < RuntimeError > ( ) ,
1671+ } ;
1672+
1673+ let expected_metadata: RuntimeMetadataPrefixed = RuntimeMetadataLastVersion :: new (
1674+ pallets,
1675+ extrinsic,
1676+ meta_type :: < Runtime > ( ) ,
1677+ vec ! [ ] ,
1678+ outer_enums,
1679+ CustomMetadata { map : Default :: default ( ) } ,
1680+ )
1681+ . into ( ) ;
16561682 let expected_metadata = match expected_metadata. 1 {
1657- RuntimeMetadata :: V14 ( metadata) => metadata,
1683+ RuntimeMetadata :: V15 ( metadata) => metadata,
16581684 _ => panic ! ( "metadata has been bumped, test needs to be updated" ) ,
16591685 } ;
16601686
1661- let actual_metadata = match Runtime :: metadata ( ) . 1 {
1662- RuntimeMetadata :: V14 ( metadata) => metadata,
1687+ let bytes = & Runtime :: metadata_at_version ( LATEST_METADATA_VERSION )
1688+ . expect ( "Metadata must be present; qed" ) ;
1689+
1690+ let actual_metadata: RuntimeMetadataPrefixed =
1691+ Decode :: decode ( & mut & bytes[ ..] ) . expect ( "Metadata encoded properly; qed" ) ;
1692+
1693+ let actual_metadata = match actual_metadata. 1 {
1694+ RuntimeMetadata :: V15 ( metadata) => metadata,
16631695 _ => panic ! ( "metadata has been bumped, test needs to be updated" ) ,
16641696 } ;
16651697
@@ -1671,8 +1703,9 @@ fn metadata_at_version() {
16711703 use frame_support:: metadata:: * ;
16721704 use sp_core:: Decode ;
16731705
1706+ // Metadata always returns the V14.3
16741707 let metadata = Runtime :: metadata ( ) ;
1675- let at_metadata = match Runtime :: metadata_at_version ( LATEST_METADATA_VERSION ) {
1708+ let at_metadata = match Runtime :: metadata_at_version ( 14 ) {
16761709 Some ( opaque) => {
16771710 let bytes = & * opaque;
16781711 let metadata: RuntimeMetadataPrefixed = Decode :: decode ( & mut & bytes[ ..] ) . unwrap ( ) ;
@@ -1686,7 +1719,7 @@ fn metadata_at_version() {
16861719
16871720#[ test]
16881721fn metadata_versions ( ) {
1689- assert_eq ! ( vec![ LATEST_METADATA_VERSION , u32 :: MAX ] , Runtime :: metadata_versions( ) ) ;
1722+ assert_eq ! ( vec![ 14 , LATEST_METADATA_VERSION ] , Runtime :: metadata_versions( ) ) ;
16901723}
16911724
16921725#[ test]
0 commit comments