diff --git a/substrate/core/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm b/substrate/core/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm index 84893ab509..3eae0c992e 100644 Binary files a/substrate/core/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm and b/substrate/core/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm differ diff --git a/substrate/node/runtime/src/lib.rs b/substrate/node/runtime/src/lib.rs index ad2f2696ca..dc1683c38e 100644 --- a/substrate/node/runtime/src/lib.rs +++ b/substrate/node/runtime/src/lib.rs @@ -59,7 +59,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { impl_name: create_runtime_str!("substrate-node"), authoring_version: 10, spec_version: 48, - impl_version: 48, + impl_version: 49, apis: RUNTIME_API_VERSIONS, }; diff --git a/substrate/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm b/substrate/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm index 53ad4d8a90..cbe64d7467 100644 Binary files a/substrate/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm and b/substrate/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm differ diff --git a/substrate/srml/support/src/event.rs b/substrate/srml/support/src/event.rs index f83e551183..9ca2bcf532 100644 --- a/substrate/srml/support/src/event.rs +++ b/substrate/srml/support/src/event.rs @@ -183,6 +183,38 @@ macro_rules! __decl_generic_event { {}; ); }; + // Finish formatting on an unnamed one + (@format_generic + $(#[$attr:meta])*; + $event_generic_param:ident; + $($instance:ident $( = $event_default_instance:path)? )?; + { <$generic:ident as $trait:path>::$trait_type:ident $(,)? { $( $events:tt )* } }; + {$( $parsed:tt)*}; + ) => { + $crate::__decl_generic_event!(@generate + $( #[ $attr ] )*; + $event_generic_param; + $($instance $( = $event_default_instance)? )?; + { $($events)* }; + { $($parsed)*, $trait_type = <$generic as $trait>::$trait_type }; + ); + }; + // Finish formatting on a named one + (@format_generic + $(#[$attr:meta])*; + $event_generic_param:ident; + $($instance:ident $( = $event_default_instance:path)? )?; + { $generic_rename:ident = $generic_type:ty $(,)? { $( $events:tt )* } }; + { $($parsed:tt)* }; + ) => { + $crate::__decl_generic_event!(@generate + $(#[$attr])*; + $event_generic_param; + $($instance $( = $event_default_instance)? )?; + { $($events)* }; + { $($parsed)*, $generic_rename = $generic_type }; + ); + }; // Parse named (@format_generic $(#[$attr:meta])*; @@ -194,7 +226,7 @@ macro_rules! __decl_generic_event { $crate::__decl_generic_event!(@format_generic $( #[ $attr ] )*; $event_generic_param; - $($instance $( = $event_default_instance)? )?; + $( $instance $( = $event_default_instance)? )?; { $($rest)* }; { $($parsed)*, $generic_rename = $generic_type }; ); @@ -221,42 +253,10 @@ macro_rules! __decl_generic_event { $event_generic_param:ident; $($instance:ident $( = $event_default_instance:path)? )?; { $generic_type:ty, $($rest:tt)* }; - {$($parsed:tt)*}; + { $($parsed:tt)* }; ) => { $crate::__decl_generic_event!(@cannot_parse $generic_type); }; - // Finish formatting on an unnamed one - (@format_generic - $(#[$attr:meta])*; - $event_generic_param:ident; - $($instance:ident $( = $event_default_instance:path)? )?; - { <$generic:ident as $trait:path>::$trait_type:ident { $( $events:tt )* } }; - {$( $parsed:tt)*}; - ) => { - $crate::__decl_generic_event!(@generate - $( #[ $attr ] )*; - $event_generic_param; - $($instance $( = $event_default_instance)? )?; - { $($events)* }; - { $($parsed)*, $trait_type = <$generic as $trait>::$trait_type}; - ); - }; - // Finish formatting on a named one - (@format_generic - $(#[$attr:meta])*; - $event_generic_param:ident; - $($instance:ident $( = $event_default_instance:path)? )?; - { $generic_rename:ident = $generic_type:ty { $( $events:tt )* } }; - {$( $parsed:tt)*}; - ) => { - $crate::__decl_generic_event!(@generate - $(#[$attr])*; - $event_generic_param; - $($instance $( = $event_default_instance)? )?; - { $($events)* }; - { $($parsed)*, $generic_rename = $generic_type}; - ); - }; // Final unnamed type can't be parsed (@format_generic $(#[$attr:meta])*; @@ -599,6 +599,50 @@ mod tests { ); } + mod event_module4 { + pub trait Trait { + type Origin; + type Balance; + type BlockNumber; + } + + decl_module! { + pub struct Module for enum Call where origin: T::Origin {} + } + + decl_event!( + /// Event finish formatting on an unnamed one with trailling comma + pub enum Event where + ::Balance, + ::Origin, + { + TestEvent(Balance, Origin), + } + ); + } + + mod event_module5 { + pub trait Trait { + type Origin; + type Balance; + type BlockNumber; + } + + decl_module! { + pub struct Module for enum Call where origin: T::Origin {} + } + + decl_event!( + /// Event finish formatting on an named one with trailling comma + pub enum Event where + BalanceRenamed = ::Balance, + OriginRenamed = ::Origin, + { + TestEvent(BalanceRenamed, OriginRenamed), + } + ); + } + #[derive(Debug, Clone, PartialEq, Eq, Encode, Decode, Serialize)] pub struct TestRuntime;