diff --git a/substrate/node/runtime/src/lib.rs b/substrate/node/runtime/src/lib.rs index ce1aaa6b73..2d6a8eb2ca 100644 --- a/substrate/node/runtime/src/lib.rs +++ b/substrate/node/runtime/src/lib.rs @@ -81,7 +81,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { // implementation changes and behavior does not, then leave spec_version as // is and increment impl_version. spec_version: 131, - impl_version: 132, + impl_version: 133, apis: RUNTIME_API_VERSIONS, }; diff --git a/substrate/srml/metadata/src/lib.rs b/substrate/srml/metadata/src/lib.rs index 329b543d1a..bf7c379000 100644 --- a/substrate/srml/metadata/src/lib.rs +++ b/substrate/srml/metadata/src/lib.rs @@ -210,7 +210,7 @@ pub struct ModuleConstantMetadata { } /// A technical trait to store lazy initiated vec value as static dyn pointer. -pub trait DefaultByte { +pub trait DefaultByte: Send + Sync { fn default_byte(&self) -> Vec; } diff --git a/substrate/srml/support/procedural/src/storage/transformation.rs b/substrate/srml/support/procedural/src/storage/transformation.rs index 2e33493964..2c96e5a23b 100644 --- a/substrate/srml/support/procedural/src/storage/transformation.rs +++ b/substrate/srml/support/procedural/src/storage/transformation.rs @@ -1069,6 +1069,12 @@ fn store_functions_to_metadata ( } } + unsafe impl<#traitinstance: #traittype, #instance #bound_instantiable> Send + for #struct_name<#traitinstance, #instance> #where_clause {} + + unsafe impl<#traitinstance: #traittype, #instance #bound_instantiable> Sync + for #struct_name<#traitinstance, #instance> #where_clause {} + #[cfg(not(feature = "std"))] impl<#traitinstance: #traittype, #instance #bound_instantiable> #scrate::metadata::DefaultByte for #struct_name<#traitinstance, #instance> #where_clause diff --git a/substrate/srml/support/src/dispatch.rs b/substrate/srml/support/src/dispatch.rs index 0391d2995f..294fe3795e 100644 --- a/substrate/srml/support/src/dispatch.rs +++ b/substrate/srml/support/src/dispatch.rs @@ -1431,6 +1431,14 @@ macro_rules! __impl_module_constants_metadata { $crate::dispatch::Encode::encode(&value) } } + + unsafe impl<$const_trait_instance: 'static + $const_trait_name $( + , $const_instance: $const_instantiable)? + > Send for $default_byte_name <$const_trait_instance $(, $const_instance)?> {} + + unsafe impl<$const_trait_instance: 'static + $const_trait_name $( + , $const_instance: $const_instantiable)? + > Sync for $default_byte_name <$const_trait_instance $(, $const_instance)?> {} )* &[ $(