Macro frame_support::decl_module
source ยท macro_rules! decl_module { ( $(#[$attr:meta])* pub struct $mod_type:ident< $trait_instance:ident: $trait_name:ident $( <I>, I: $instantiable:path $( = $module_default_instance:path )? )? > for enum $call_type:ident where origin: $origin_type:ty $(, $where_ty:ty: $where_bound:path )* $(,)? { $( $t:tt )* } ) => { ... }; ( $(#[$attr:meta])* pub struct $mod_type:ident< $trait_instance:ident: $trait_name:ident $( <I>, I: $instantiable:path $( = $module_default_instance:path )? )? > for enum $call_type:ident where origin: $origin_type:ty, system = $system:ident $(, $where_ty:ty: $where_bound:path )* $(,)? { $($t:tt)* } ) => { ... }; (@normalize $(#[$attr:meta])* pub struct $mod_type:ident<$trait_instance:ident: $trait_name:ident$(<I>, I: $instantiable:path $(= $module_default_instance:path)?)?> for enum $call_type:ident where origin: $origin_type:ty, system = $system:ident { $( $other_where_bounds:tt )* } {} { $( $on_initialize:tt )* } { $( $on_runtime_upgrade:tt )* } { $( $on_idle:tt )* } { $( $on_finalize:tt )* } { $( $offchain:tt )* } { $( $constants:tt )* } { $( $error_type:tt )* } { $( $integrity_test:tt )* } { $( $storage_version:tt )* } [ $( $dispatchables:tt )* ] $(#[doc = $doc_attr:tt])* $vis:vis fn deposit_event() = default; $($rest:tt)* ) => { ... }; (@normalize $(#[$attr:meta])* pub struct $mod_type:ident<$trait_instance:ident: $trait_name:ident$(<I>, I: $instantiable:path $(= $module_default_instance:path)?)?> for enum $call_type:ident where origin: $origin_type:ty, system = $system:ident { $( $other_where_bounds:tt )* } {} { $( $on_initialize:tt )* } { $( $on_runtime_upgrade:tt )* } { $( $on_idle:tt )* } { $( $on_finalize:tt )* } { $( $offchain:tt )* } { $( $constants:tt )* } { $( $error_type:tt )* } { $( $integrity_test:tt )* } { $( $storage_version:tt )* } [ $( $dispatchables:tt )* ] $(#[doc = $doc_attr:tt])* $vis:vis fn deposit_event $($rest:tt)* ) => { ... }; (@normalize $(#[$attr:meta])* pub struct $mod_type:ident< $trait_instance:ident: $trait_name:ident$(<I>, I: $instantiable:path $(= $module_default_instance:path)?)? > for enum $call_type:ident where origin: $origin_type:ty, system = $system:ident { $( $other_where_bounds:tt )* } { $( $deposit_event:tt )+ } { $( $on_initialize:tt )* } { $( $on_runtime_upgrade:tt )* } { $( $on_idle:tt )* } { $( $on_finalize:tt )* } { $( $offchain:tt )* } { $( $constants:tt )* } { $( $error_type:tt )* } { $( $integrity_test:tt )* } { $( $storage_version:tt )* } [ $( $dispatchables:tt )* ] $(#[doc = $doc_attr:tt])* $vis:vis fn deposit_event() = default; $($rest:tt)* ) => { ... }; (@normalize $(#[$attr:meta])* pub struct $mod_type:ident<$trait_instance:ident: $trait_name:ident$(<I>, I: $instantiable:path $(= $module_default_instance:path)?)?> for enum $call_type:ident where origin: $origin_type:ty, system = $system:ident { $( $other_where_bounds:tt )* } { $( $deposit_event:tt )* } { $( $on_initialize:tt )* } { $( $on_runtime_upgrade:tt )* } { $( $on_idle:tt )* } {} { $( $offchain:tt )* } { $( $constants:tt )* } { $( $error_type:tt )* } { $( $integrity_test:tt )* } { $( $storage_version:tt )* } [ $( $dispatchables:tt )* ] $(#[doc = $doc_attr:tt])* fn on_finalize( $( $param_name:ident : $param:ty ),* $(,)? ) { $( $impl:tt )* } $($rest:tt)* ) => { ... }; (@normalize $(#[$attr:meta])* pub struct $mod_type:ident<$trait_instance:ident: $trait_name:ident$(<I>, I: $instantiable:path $(= $module_default_instance:path)?)?> for enum $call_type:ident where origin: $origin_type:ty, system = $system:ident { $( $other_where_bounds:tt )* } { $( $deposit_event:tt )* } { $( $on_initialize:tt )* } { $( $on_runtime_upgrade:tt )* } { $( $on_idle:tt )* } {} { $( $offchain:tt )* } { $( $constants:tt )* } { $( $error_type:tt )* } { $( $integrity_test:tt )* } { $( $storage_version:tt )* } [ $( $dispatchables:tt )* ] $(#[doc = $doc_attr:tt])* #[weight = $weight:expr] fn on_finalize( $( $param_name:ident : $param:ty ),* $(,)? ) { $( $impl:tt )* } $($rest:tt)* ) => { ... }; (@normalize $(#[$attr:meta])* pub struct $mod_type:ident< $trait_instance:ident: $trait_name:ident$(<I>, I: $instantiable:path $(= $module_default_instance:path)?)? > for enum $call_type:ident where origin: $origin_type:ty, system = $system:ident { $( $other_where_bounds:tt )* } { $( $deposit_event:tt )* } { $( $on_initialize:tt )* } { $( $on_runtime_upgrade:tt )* } { $( $on_idle:tt )* } { $( $on_finalize:tt )+ } { $( $offchain:tt )* } { $( $constants:tt )* } { $( $error_type:tt )* } { $( $integrity_test:tt )* } { $( $storage_version:tt )* } [ $( $dispatchables:tt )* ] $(#[doc = $doc_attr:tt])* #[weight = $weight:expr] fn on_finalize( $( $param_name:ident : $param:ty ),* $(,)? ) { $( $impl:tt )* } $($rest:tt)* ) => { ... }; (@normalize $(#[$attr:meta])* pub struct $mod_type:ident<$trait_instance:ident: $trait_name:ident$(<I>, I: $instantiable:path $(= $module_default_instance:path)?)?> for enum $call_type:ident where origin: $origin_type:ty, system = $system:ident { $( $other_where_bounds:tt )* } { $( $deposit_event:tt )* } { $( $on_initialize:tt )* } { $( $on_runtime_upgrade:tt )* } {} { $( $on_finalize:tt )* } { $( $offchain:tt )* } { $( $constants:tt )* } { $( $error_type:tt )* } { $( $integrity_test:tt )* } { $( $storage_version:tt )* } [ $( $dispatchables:tt )* ] $(#[doc = $doc_attr:tt])* fn on_idle($param_name1:ident : $param1:ty, $param_name2:ident: $param2:ty $(,)? ) -> $return:ty { $( $impl:tt )* } $($rest:tt)* ) => { ... }; (@normalize $(#[$attr:meta])* pub struct $mod_type:ident< $trait_instance:ident: $trait_name:ident$(<I>, I: $instantiable:path $(= $module_default_instance:path)?)? > for enum $call_type:ident where origin: $origin_type:ty, system = $system:ident { $( $other_where_bounds:tt )* } { $( $deposit_event:tt )* } { $( $on_initialize:tt )* } { $( $on_runtime_upgrade:tt )* } { $( $on_finalize:tt )* } { $( $offchain:tt )* } { $( $constants:tt )* } { $( $error_type:tt )* } { $( $integrity_test:tt )* } { $( $storage_version:tt )* } [ $( $dispatchables:tt )* ] $(#[doc = $doc_attr:tt])* $(#[weight = $weight:expr])? fn on_idle $($rest:tt)* ) => { ... }; (@normalize $(#[$attr:meta])* pub struct $mod_type:ident< $trait_instance:ident: $trait_name:ident$(<I>, I: $instantiable:path $(= $module_default_instance:path)?)? > for enum $call_type:ident where origin: $origin_type:ty, system = $system:ident { $( $other_where_bounds:tt )* } { $( $deposit_event:tt )* } { $( $on_initialize:tt )* } {} { $( $on_idle:tt )* } { $( $on_finalize:tt )* } { $( $offchain:tt )* } { $( $constants:tt )* } { $( $error_type:tt )* } { $( $integrity_test:tt )* } { $( $storage_version:tt )* } [ $( $dispatchables:tt )* ] $(#[doc = $doc_attr:tt])* fn on_runtime_upgrade( $( $param_name:ident : $param:ty ),* $(,)? ) { $( $impl:tt )* } $($rest:tt)* ) => { ... }; (@normalize $(#[$attr:meta])* pub struct $mod_type:ident< $trait_instance:ident: $trait_name:ident$(<I>, I: $instantiable:path $(= $module_default_instance:path)?)? > for enum $call_type:ident where origin: $origin_type:ty, system = $system:ident { $( $other_where_bounds:tt )* } { $( $deposit_event:tt )* } { $( $on_initialize:tt )* } {} { $( $on_idle:tt )* } { $( $on_finalize:tt )* } { $( $offchain:tt )* } { $( $constants:tt )* } { $( $error_type:tt )* } { $( $integrity_test:tt )* } { $( $storage_version:tt )* } [ $( $dispatchables:tt )* ] $(#[doc = $doc_attr:tt])* #[weight = $weight:expr] fn on_runtime_upgrade( $( $param_name:ident : $param:ty ),* $(,)? ) { $( $impl:tt )* } $($rest:tt)* ) => { ... }; (@normalize $(#[$attr:meta])* pub struct $mod_type:ident< $trait_instance:ident: $trait_name:ident$(<I>, I: $instantiable:path $(= $module_default_instance:path)?)? > for enum $call_type:ident where origin: $origin_type:ty, system = $system:ident { $( $other_where_bounds:tt )* } { $( $deposit_event:tt )* } { $( $on_initialize:tt )* } {} { $( $on_idle:tt )* } { $( $on_finalize:tt )* } { $( $offchain:tt )* } { $( $constants:tt )* } { $( $error_type:tt )* } { $( $integrity_test:tt )* } { $( $storage_version:tt )* } [ $( $dispatchables:tt )* ] $(#[doc = $doc_attr:tt])* fn on_runtime_upgrade( $( $param_name:ident : $param:ty ),* $(,)? ) -> $return:ty { $( $impl:tt )* } $($rest:tt)* ) => { ... }; (@normalize $(#[$attr:meta])* pub struct $mod_type:ident< $trait_instance:ident: $trait_name:ident$(<I>, I: $instantiable:path $(= $module_default_instance:path)?)? > for enum $call_type:ident where origin: $origin_type:ty, system = $system:ident { $( $other_where_bounds:tt )* } { $( $deposit_event:tt )* } { $( $on_initialize:tt )* } { $( $on_runtime_upgrade:tt )+ } { $( $on_idle:tt )* } { $( $on_finalize:tt )* } { $( $offchain:tt )* } { $( $constants:tt )* } { $( $error_type:tt )* } { $( $integrity_test:tt )* } { $( $storage_version:tt )* } [ $( $dispatchables:tt )* ] $(#[doc = $doc_attr:tt])* fn on_runtime_upgrade( $( $param_name:ident : $param:ty ),* $(,)? ) -> $return:ty { $( $impl:tt )* } $($rest:tt)* ) => { ... }; (@normalize $(#[$attr:meta])* pub struct $mod_type:ident< $trait_instance:ident: $trait_name:ident$(<I>, I: $instantiable:path $(= $module_default_instance:path)?)? > for enum $call_type:ident where origin: $origin_type:ty, system = $system:ident { $( $other_where_bounds:tt )* } { $( $deposit_event:tt )* } { $( $on_initialize:tt )* } { $( $on_runtime_upgrade:tt )* } { $( $on_idle:tt )* } { $( $on_finalize:tt )* } { $( $offchain:tt )* } { $( $constants:tt )* } { $( $error_type:tt )* } {} { $( $storage_version:tt )* } [ $( $dispatchables:tt )* ] $(#[doc = $doc_attr:tt])* fn integrity_test() { $( $impl:tt )* } $($rest:tt)* ) => { ... }; (@normalize $(#[$attr:meta])* pub struct $mod_type:ident< $trait_instance:ident: $trait_name:ident$(<I>, I: $instantiable:path $(= $module_default_instance:path)?)? > for enum $call_type:ident where origin: $origin_type:ty, system = $system:ident { $( $other_where_bounds:tt )* } { $( $deposit_event:tt )* } { $( $on_initialize:tt )* } { $( $on_runtime_upgrade:tt )* } { $( $on_idle:tt )* } { $( $on_finalize:tt )* } { $( $offchain:tt )* } { $( $constants:tt )* } { $( $error_type:tt )* } { $( $integrity_test:tt )+ } { $( $storage_version:tt )* } [ $( $dispatchables:tt )* ] $(#[doc = $doc_attr:tt])* fn integrity_test() { $( $impl:tt )* } $($rest:tt)* ) => { ... }; (@normalize $(#[$attr:meta])* pub struct $mod_type:ident< $trait_instance:ident: $trait_name:ident$(<I>, I: $instantiable:path $(= $module_default_instance:path)?)? > for enum $call_type:ident where origin: $origin_type:ty, system = $system:ident { $( $other_where_bounds:tt )* } { $( $deposit_event:tt )* } {} { $( $on_runtime_upgrade:tt )* } { $( $on_idle:tt )* } { $( $on_finalize:tt )* } { $( $offchain:tt )* } { $( $constants:tt )* } { $( $error_type:tt )* } { $( $integrity_test:tt )* } { $( $storage_version:tt )* } [ $( $dispatchables:tt )* ] $(#[doc = $doc_attr:tt])* fn on_initialize( $( $param_name:ident : $param:ty ),* $(,)? ) { $( $impl:tt )* } $($rest:tt)* ) => { ... }; (@normalize $(#[$attr:meta])* pub struct $mod_type:ident< $trait_instance:ident: $trait_name:ident$(<I>, I: $instantiable:path $(= $module_default_instance:path)?)? > for enum $call_type:ident where origin: $origin_type:ty, system = $system:ident { $( $other_where_bounds:tt )* } { $( $deposit_event:tt )* } {} { $( $on_runtime_upgrade:tt )* } { $( $on_idle:tt )* } { $( $on_finalize:tt )* } { $( $offchain:tt )* } { $( $constants:tt )* } { $( $error_type:tt )* } { $( $integrity_test:tt )* } { $( $storage_version:tt )* } [ $( $dispatchables:tt )* ] $(#[doc = $doc_attr:tt])* #[weight = $weight:expr] fn on_initialize( $( $param_name:ident : $param:ty ),* $(,)? ) { $( $impl:tt )* } $($rest:tt)* ) => { ... }; (@normalize $(#[$attr:meta])* pub struct $mod_type:ident< $trait_instance:ident: $trait_name:ident$(<I>, I: $instantiable:path $(= $module_default_instance:path)?)? > for enum $call_type:ident where origin: $origin_type:ty, system = $system:ident { $( $other_where_bounds:tt )* } { $( $deposit_event:tt )* } {} { $( $on_runtime_upgrade:tt )* } { $( $on_idle:tt )* } { $( $on_finalize:tt )* } { $( $offchain:tt )* } { $( $constants:tt )* } { $( $error_type:tt )* } { $( $integrity_test:tt )* } { $( $storage_version:tt )* } [ $( $dispatchables:tt )* ] $(#[doc = $doc_attr:tt])* fn on_initialize( $( $param_name:ident : $param:ty ),* $(,)? ) -> $return:ty { $( $impl:tt )* } $($rest:tt)* ) => { ... }; (@normalize $(#[$attr:meta])* pub struct $mod_type:ident< $trait_instance:ident: $trait_name:ident$(<I>, I: $instantiable:path $(= $module_default_instance:path)?)? > for enum $call_type:ident where origin: $origin_type:ty, system = $system:ident { $( $other_where_bounds:tt )* } { $( $deposit_event:tt )* } { $( $on_initialize:tt )+ } { $( $on_runtime_upgrade:tt )* } { $( $on_idle:tt )* } { $( $on_finalize:tt )* } { $( $offchain:tt )* } { $( $constants:tt )* } { $( $error_type:tt )* } { $( $integrity_test:tt )* } { $( $storage_version:tt )* } [ $( $dispatchables:tt )* ] $(#[doc = $doc_attr:tt])* fn on_initialize( $( $param_name:ident : $param:ty ),* $(,)? ) -> $return:ty { $( $impl:tt )* } $($rest:tt)* ) => { ... }; (@normalize $(#[$attr:meta])* pub struct $mod_type:ident< $trait_instance:ident: $trait_name:ident $(<I>, I: $instantiable:path $(= $module_default_instance:path)?)? > for enum $call_type:ident where origin: $origin_type:ty, system = $system:ident { $( $other_where_bounds:tt )* } { $( $deposit_event:tt )* } { $( $on_initialize:tt )* } { $( $on_runtime_upgrade:tt )* } { $( $on_idle:tt )* } { $( $on_finalize:tt )* } { } { $( $constants:tt )* } { $( $error_type:tt )* } { $( $integrity_test:tt )* } { $( $storage_version:tt )* } [ $( $dispatchables:tt )* ] $(#[doc = $doc_attr:tt])* fn offchain_worker( $( $param_name:ident : $param:ty ),* $(,)? ) { $( $impl:tt )* } $($rest:tt)* ) => { ... }; (@normalize $(#[$attr:meta])* pub struct $mod_type:ident< $trait_instance:ident: $trait_name:ident$(<I>, I: $instantiable:path $(= $module_default_instance:path)?)? > for enum $call_type:ident where origin: $origin_type:ty, system = $system:ident { $( $other_where_bounds:tt )* } { $( $deposit_event:tt )* } { $( $on_initialize:tt )* } { $( $on_runtime_upgrade:tt )* } { $( $on_idle:tt )* } { $( $on_finalize:tt )* } { $( $offchain:tt )+ } { $( $constants:tt )* } { $( $error_type:tt )* } { $( $integrity_test:tt )* } { $( $storage_version:tt )* } [ $( $dispatchables:tt )* ] $(#[doc = $doc_attr:tt])* fn offchain_worker( $( $param_name:ident : $param:ty ),* $(,)? ) -> $return:ty { $( $impl:tt )* } $($rest:tt)* ) => { ... }; (@normalize $(#[$attr:meta])* pub struct $mod_type:ident< $trait_instance:ident: $trait_name:ident $(<I>, $instance:ident: $instantiable:path $(= $module_default_instance:path)?)? > for enum $call_type:ident where origin: $origin_type:ty, system = $system:ident { $( $other_where_bounds:tt )* } { $( $deposit_event:tt )* } { $( $on_initialize:tt )* } { $( $on_runtime_upgrade:tt )* } { $( $on_idle:tt )* } { $( $on_finalize:tt )* } { $( $offchain:tt )* } { $( $constants:tt )* } { $( $error_type:tt )* } { $( $integrity_test:tt )* } { $( $storage_version:tt )* } [ $( $dispatchables:tt )* ] $( #[doc = $doc_attr:tt] )* const $name:ident: $ty:ty = $value:expr; $( $rest:tt )* ) => { ... }; (@normalize $(#[$attr:meta])* pub struct $mod_type:ident< $trait_instance:ident: $trait_name:ident$(<I>, $instance:ident: $instantiable:path $(= $module_default_instance:path)?)? > for enum $call_type:ident where origin: $origin_type:ty, system = $system:ident { $( $other_where_bounds:tt )* } { $( $deposit_event:tt )* } { $( $on_initialize:tt )* } { $( $on_runtime_upgrade:tt )* } { $( $on_idle:tt )* } { $( $on_finalize:tt )* } { $( $offchain:tt )* } { $( $constants:tt )* } { } { $( $integrity_test:tt )* } { $( $storage_version:tt )* } [ $( $dispatchables:tt )* ] $(#[doc = $doc_attr:tt])* type Error = $error_type:ty; $($rest:tt)* ) => { ... }; (@normalize $(#[$attr:meta])* pub struct $mod_type:ident< $trait_instance:ident: $trait_name:ident$(<I>, $instance:ident: $instantiable:path $(= $module_default_instance:path)?)? > for enum $call_type:ident where origin: $origin_type:ty, system = $system:ident { $( $other_where_bounds:tt )* } { $( $deposit_event:tt )* } { $( $on_initialize:tt )* } { $( $on_runtime_upgrade:tt )* } { $( $on_idle:tt )* } { $( $on_finalize:tt )* } { $( $offchain:tt )* } { $( $constants:tt )* } { } { $( $integrity_test:tt )* } { $( $storage_version:tt )* } [ $($t:tt)* ] $($rest:tt)* ) => { ... }; (@normalize $(#[$attr:meta])* pub struct $mod_type:ident< $trait_instance:ident: $trait_name:ident$(<I>, $instance:ident: $instantiable:path $(= $module_default_instance:path)?)? > for enum $call_type:ident where origin: $origin_type:ty, system = $system:ident { $( $other_where_bounds:tt )* } { $( $deposit_event:tt )* } { $( $on_initialize:tt )* } { $( $on_runtime_upgrade:tt )* } { $( $on_idle:tt )* } { $( $on_finalize:tt )* } { $( $offchain:tt )* } { $( $constants:tt )* } { $( $error_type:tt )* } { $( $integrity_test:tt )* } { } [ $( $dispatchables:tt )* ] $(#[doc = $doc_attr:tt])* type StorageVersion = $storage_version:path; $($rest:tt)* ) => { ... }; (@normalize $(#[$attr:meta])* pub struct $mod_type:ident< $trait_instance:ident: $trait_name:ident $(<I>, $instance:ident: $instantiable:path $(= $module_default_instance:path)?)? > for enum $call_type:ident where origin: $origin_type:ty, system = $system:ident { $( $other_where_bounds:tt )* } { $( $deposit_event:tt )* } { $( $on_initialize:tt )* } { $( $on_runtime_upgrade:tt )* } { $( $on_idle:tt )* } { $( $on_finalize:tt )* } { $( $offchain:tt )* } { $( $constants:tt )* } { $( $error_type:tt )* } { $( $integrity_test:tt )* } { $( $storage_version:tt )* } [ $( $dispatchables:tt )* ] $(#[doc = $doc_attr:tt])* #[weight = $weight:expr] $(#[$fn_attr:meta])* $fn_vis:vis fn $fn_name:ident( $origin:ident $( , $(#[$codec_attr:ident])* $param_name:ident : $param:ty )* $(,)? ) $( -> $result:ty )* { $( $impl:tt )* } $($rest:tt)* ) => { ... }; (@normalize $(#[$attr:meta])* pub struct $mod_type:ident< $trait_instance:ident: $trait_name:ident$(<I>, $instance:ident: $instantiable:path $(= $module_default_instance:path)?)? > for enum $call_type:ident where origin: $origin_type:ty, system = $system:ident { $( $other_where_bounds:tt )* } { $( $deposit_event:tt )* } { $( $on_initialize:tt )* } { $( $on_runtime_upgrade:tt )* } { $( $on_idle:tt )* } { $( $on_finalize:tt )* } { $( $offchain:tt )* } { $( $constants:tt )* } { $( $error_type:tt )* } { $( $integrity_test:tt )* } { $( $storage_version:tt )* } [ $( $dispatchables:tt )* ] $(#[doc = $doc_attr:tt])* $(#[$fn_attr:meta])* $fn_vis:vis fn $fn_name:ident( $from:ident $( , $( #[$codec_attr:ident] )* $param_name:ident : $param:ty )* $(,)? ) $( -> $result:ty )* { $( $impl:tt )* } $($rest:tt)* ) => { ... }; (@normalize $(#[$attr:meta])* pub struct $mod_type:ident<$trait_instance:ident: $trait_name:ident$(<I>, I: $instantiable:path $(= $module_default_instance:path)?)?> for enum $call_type:ident where origin: $origin_type:ty, system = $system:ident { $( $other_where_bounds:tt )* } { $( $deposit_event:tt )* } { $( $on_initialize:tt )* } { $( $on_runtime_upgrade:tt )* } { $( $on_idle:tt )* } { $( $on_finalize:tt )* } { $( $offchain:tt )* } { $( $constants:tt )* } { $( $error_type:tt )* } { $( $integrity_test:tt )* } { $( $storage_version:tt )* } [ $( $dispatchables:tt )* ] $(#[doc = $doc_attr:tt])* $(#[weight = $weight:expr])? $(#[$fn_attr:meta])* $fn_vis:vis fn $fn_name:ident( $origin:ident : T::RuntimeOrigin $( , $( #[$codec_attr:ident] )* $param_name:ident : $param:ty )* $(,)? ) $( -> $result:ty )* { $( $impl:tt )* } $($rest:tt)* ) => { ... }; (@normalize $(#[$attr:meta])* pub struct $mod_type:ident<$trait_instance:ident: $trait_name:ident$(<I>, I: $instantiable:path $(= $module_default_instance:path)?)?> for enum $call_type:ident where origin: $origin_type:ty, system = $system:ident { $( $other_where_bounds:tt )* } { $( $deposit_event:tt )* } { $( $on_initialize:tt )* } { $( $on_runtime_upgrade:tt )* } { $( $on_idle:tt )* } { $( $on_finalize:tt )* } { $( $offchain:tt )* } { $( $constants:tt )* } { $( $error_type:tt )* } { $( $integrity_test:tt )* } { $( $storage_version:tt )* } [ $( $dispatchables:tt )* ] $(#[doc = $doc_attr:tt])* $(#[weight = $weight:expr])? $(#[$fn_attr:meta])* $fn_vis:vis fn $fn_name:ident( origin : $origin:ty $( , $( #[$codec_attr:ident] )* $param_name:ident : $param:ty )* $(,)? ) $( -> $result:ty )* { $( $impl:tt )* } $($rest:tt)* ) => { ... }; (@normalize $(#[$attr:meta])* pub struct $mod_type:ident<$trait_instance:ident: $trait_name:ident$(<I>, $instance:ident: $instantiable:path $(= $module_default_instance:path)?)?> for enum $call_type:ident where origin: $origin_type:ty, system = $system:ident { $( $other_where_bounds:tt )* } { $( $deposit_event:tt )* } { $( $on_initialize:tt )* } { $( $on_runtime_upgrade:tt )* } { $( $on_idle:tt )* } { $( $on_finalize:tt )* } { $( $offchain:tt )* } { $( $constants:tt )* } { $( $error_type:tt )* } { $( $integrity_test:tt )* } { $( $storage_version:tt )* } [ $( $dispatchables:tt )* ] $(#[doc = $doc_attr:tt])* $(#[weight = $weight:expr])? $(#[$fn_attr:meta])* $fn_vis:vis fn $fn_name:ident( $( $(#[$codec_attr:ident])* $param_name:ident : $param:ty ),* $(,)? ) $( -> $result:ty )* { $( $impl:tt )* } $($rest:tt)* ) => { ... }; (@normalize $(#[$attr:meta])* pub struct $mod_type:ident<$trait_instance:ident: $trait_name:ident$(<I>, I: $instantiable:path $(= $module_default_instance:path)?)?> for enum $call_type:ident where origin: $origin_type:ty, system = $system:ident { $( $other_where_bounds:tt )* } { $( $deposit_event:tt )* } { $( $on_initialize:tt )* } { $( $on_runtime_upgrade:tt )* } { $( $on_idle:tt )* } { $( $on_finalize:tt )* } { $( $offchain:tt )* } { $( $constants:tt )* } { $( $error_type:tt )* } { $( $integrity_test:tt )* } { $( $storage_version:tt )* } [ $( $dispatchables:tt )* ] ) => { ... }; (@call $ignore:ident $mod_type:ident<$trait_instance:ident $(, $instance:ident)?> $fn_name:ident $origin:ident $system:ident [ $( $param_name:ident),* ] ) => { ... }; (@impl_deposit_event $module:ident<$trait_instance:ident: $trait_name:ident$(<I>, I: $instantiable:path)?>; $system:ident; { $( $other_where_bounds:tt )* } ) => { ... }; (@impl_deposit_event $module:ident<$trait_instance:ident: $trait_name:ident$(<I>, $instance:ident: $instantiable:path)?>; $system:ident; { $( $other_where_bounds:tt )* } $vis:vis fn deposit_event$(<$event_trait_instance:ident $(, $event_instance:ident)?>)?() = default; ) => { ... }; (@impl_on_initialize { $system:ident } $module:ident<$trait_instance:ident: $trait_name:ident$(<I>, $instance:ident: $instantiable:path)?>; { $( $other_where_bounds:tt )* } fn on_initialize() -> $return:ty { $( $impl:tt )* } ) => { ... }; (@impl_on_initialize { $system:ident } $module:ident<$trait_instance:ident: $trait_name:ident$(<I>, $instance:ident: $instantiable:path)?>; { $( $other_where_bounds:tt )* } fn on_initialize($param:ident : $param_ty:ty) -> $return:ty { $( $impl:tt )* } ) => { ... }; (@impl_on_initialize { $system:ident } $module:ident<$trait_instance:ident: $trait_name:ident$(<I>, $instance:ident: $instantiable:path)?>; { $( $other_where_bounds:tt )* } ) => { ... }; (@impl_try_state_default { $system:ident } $module:ident<$trait_instance:ident: $trait_name:ident$(<I>, $instance:ident: $instantiable:path)?>; { $( $other_where_bounds:tt )* } ) => { ... }; (@impl_on_runtime_upgrade { $system:ident } $module:ident<$trait_instance:ident: $trait_name:ident$(<I>, $instance:ident: $instantiable:path)?>; { $( $other_where_bounds:tt )* } fn on_runtime_upgrade() -> $return:ty { $( $impl:tt )* } ) => { ... }; (@impl_on_runtime_upgrade { $system:ident } $module:ident<$trait_instance:ident: $trait_name:ident$(<I>, $instance:ident: $instantiable:path)?>; { $( $other_where_bounds:tt )* } ) => { ... }; (@impl_integrity_test $module:ident<$trait_instance:ident: $trait_name:ident$(<I>, $instance:ident: $instantiable:path)?>; { $( $other_where_bounds:tt )* } $(#[doc = $doc_attr:tt])* fn integrity_test() { $( $impl:tt )* } ) => { ... }; (@impl_integrity_test $module:ident<$trait_instance:ident: $trait_name:ident$(<I>, $instance:ident: $instantiable:path)?>; { $( $other_where_bounds:tt )* } ) => { ... }; (@impl_on_finalize { $system:ident } $module:ident<$trait_instance:ident: $trait_name:ident$(<I>, $instance:ident: $instantiable:path)?>; { $( $other_where_bounds:tt )* } fn on_finalize() { $( $impl:tt )* } ) => { ... }; (@impl_on_finalize { $system:ident } $module:ident<$trait_instance:ident: $trait_name:ident$(<I>, $instance:ident: $instantiable:path)?>; { $( $other_where_bounds:tt )* } fn on_finalize($param:ident : $param_ty:ty) { $( $impl:tt )* } ) => { ... }; (@impl_on_finalize { $system:ident } $module:ident<$trait_instance:ident: $trait_name:ident$(<I>, $instance:ident: $instantiable:path)?>; { $( $other_where_bounds:tt )* } ) => { ... }; (@impl_on_idle { $system:ident } $module:ident<$trait_instance:ident: $trait_name:ident$(<I>, $instance:ident: $instantiable:path)?>; { $( $other_where_bounds:tt )* } fn on_idle($param1:ident : $param1_ty:ty, $param2:ident: $param2_ty:ty) -> $return:ty { $( $impl:tt )* } ) => { ... }; (@impl_on_idle { $system:ident } $module:ident<$trait_instance:ident: $trait_name:ident$(<I>, $instance:ident: $instantiable:path)?>; { $( $other_where_bounds:tt )* } ) => { ... }; (@impl_offchain { $system:ident } $module:ident<$trait_instance:ident: $trait_name:ident$(<I>, $instance:ident: $instantiable:path)?>; { $( $other_where_bounds:tt )* } fn offchain_worker() { $( $impl:tt )* } ) => { ... }; (@impl_offchain { $system:ident } $module:ident<$trait_instance:ident: $trait_name:ident$(<I>, $instance:ident: $instantiable:path)?>; { $( $other_where_bounds:tt )* } fn offchain_worker($param:ident : $param_ty:ty) { $( $impl:tt )* } ) => { ... }; (@impl_offchain { $system:ident } $module:ident<$trait_instance:ident: $trait_name:ident$(<I>, $instance:ident: $instantiable:path)?>; { $( $other_where_bounds:tt )* } ) => { ... }; (@impl_function $module:ident<$trait_instance:ident: $trait_name:ident$(<I>, $instance:ident: $instantiable:path)?>; $origin_ty:ty; $ignore:ident; $(#[$fn_attr:meta])* $vis:vis fn $name:ident ( $origin:ident $(, $param:ident : $param_ty:ty )* ) { $( $impl:tt )* } ) => { ... }; (@impl_function $module:ident<$trait_instance:ident: $trait_name:ident$(<I>, $instance:ident: $instantiable:path)?>; $origin_ty:ty; $ignore:ident; $(#[$fn_attr:meta])* $vis:vis fn $name:ident ( $origin:ident $(, $param:ident : $param_ty:ty )* ) -> $result:ty { $( $impl:tt )* } ) => { ... }; (@create_call_enum $call_type:ident; <$trait_instance:ident: $trait_name:ident$(<I>, $instance:ident: $instantiable:path $(= $module_default_instance:path)?)?> { $( $other_where_bounds:tt )* } { $( $generated_variants:tt )* } { $( $current_params:tt )* } variant $fn_name:ident; $( #[doc = $doc_attr:tt] )* #[compact] $name:ident : $type:ty; $( $rest:tt )* ) => { ... }; (@create_call_enum $call_type:ident; <$trait_instance:ident: $trait_name:ident$(<I>, $instance:ident: $instantiable:path $(= $module_default_instance:path)?)?> { $( $other_where_bounds:tt )* } { $( $generated_variants:tt )* } { $( $current_params:tt )* } variant $fn_name:ident; $(#[doc = $doc_attr:tt])* $name:ident : $type:ty; $( $rest:tt )* ) => { ... }; (@create_call_enum $call_type:ident; <$trait_instance:ident: $trait_name:ident$(<I>, $instance:ident: $instantiable:path $(= $module_default_instance:path)?)?> { $( $other_where_bounds:tt )* } { $( $generated_variants:tt )* } { $( $current_params:tt )* } variant $fn_name:ident; $(#[doc = $doc_attr:tt])* $( variant $next_fn_name:ident; $( $rest:tt )* )? ) => { ... }; (@create_call_enum $call_type:ident; <$trait_instance:ident: $trait_name:ident$(<I>, $instance:ident: $instantiable:path $(= $module_default_instance:path)?)?> { $( $other_where_bounds:tt )* } { $( $generated_variants:tt )* } {} ) => { ... }; (@impl_get_storage_version $module:ident<$trait_instance:ident: $trait_name:ident$(<I>, $instance:ident: $instantiable:path)?>; { $( $other_where_bounds:tt )* } $( $storage_version:tt )+ ) => { ... }; (@impl_get_storage_version $module:ident<$trait_instance:ident: $trait_name:ident$(<I>, $instance:ident: $instantiable:path)?>; { $( $other_where_bounds:tt )* } ) => { ... }; (@imp $(#[$attr:meta])* pub struct $mod_type:ident< $trait_instance:ident: $trait_name:ident $(<I>, $instance:ident: $instantiable:path $(= $module_default_instance:path)?)? > for enum $call_type:ident where origin: $origin_type:ty, system = $system:ident { $( $(#[doc = $doc_attr:tt])* #[weight = $weight:expr] $(#[$fn_attr:meta])* $fn_vis:vis fn $fn_name:ident( $from:ident $( , $(#[$codec_attr:ident])* $param_name:ident : $param:ty)* ) $( -> $result:ty )* { $( $impl:tt )* } { $($fn_instance:ident: $fn_instantiable:path)? } )* } { $( $other_where_bounds:tt )* } { $( $deposit_event:tt )* } { $( $on_initialize:tt )* } { $( $on_runtime_upgrade:tt )* } { $( $on_idle:tt )* } { $( $on_finalize:tt )* } { $( $offchain:tt )* } { $( $constants:tt )* } { $( $error_type:tt )* } { $( $integrity_test:tt )* } { $( $storage_version:tt )* } ) => { ... }; }
๐Deprecated: Will be removed after July 2023; use the attribute
#[pallet]
macro instead.
For more info, see: https://github.com/paritytech/substrate/pull/13705Expand description
Declares a Module
struct and a Call
enum, which implements the dispatch logic.