* Remove unused event_metadata variable * Eliminate mod_name and use pallet names to name enum variants * Rename field name `pallet` to `path` * Use only the pallet name to generate variant names * Use new naming scheme for Event enum in sudo pallet tests * Use new naming scheme for Event enum in offences pallet tests * Use new naming scheme for Event enum in contracts pallet tests * Use new naming scheme for Event enum in collective pallet tests * Use new naming scheme for Event enum in bounties pallet tests * Use new naming scheme for Event enum in balances pallet tests * Use new naming scheme for Event enum in assets pallet tests * Use new naming scheme for Event enum in frame support tests * Use new naming scheme for Event enum in tips pallet tests * Use new naming scheme for Event enum in transaction payment pallet tests * Use new naming scheme for GenesisConfig fields in example pallet tests * Use new naming scheme for GenesisConfig fields in elections pallet tests * Use new naming scheme for Event enum in election provider multi-phase pallet tests * Use new naming scheme for Event enum in elections phragmen pallet tests * Use new naming scheme for GenesisConfig fields in chain spec * Use new naming scheme for Event enum in staking pallet mock * Use new naming scheme for GenesisConfig fields in node-template chain spec * Use new naming scheme for GenesisConfig fields in node-testing chain spec * Use new naming scheme for Event enum in node executor tests * Use new naming scheme for GenesisConfig fields in transaction storage pallet mock * Refactor match conditions
Sudo Module
Overview
The Sudo module allows for a single account (called the "sudo key")
to execute dispatchable functions that require a Root call
or designate a new account to replace them as the sudo key.
Only one account can be the sudo key at a time.
Interface
Dispatchable Functions
Only the sudo key can call the dispatchable functions from the Sudo module.
sudo- Make aRootcall to a dispatchable function.set_key- Assign a new account to be the sudo key.
Usage
Executing Privileged Functions
The Sudo module itself is not intended to be used within other modules.
Instead, you can build "privileged functions" (i.e. functions that require Root origin) in other modules.
You can execute these privileged functions by calling sudo with the sudo key account.
Privileged functions cannot be directly executed via an extrinsic.
Learn more about privileged functions and Root origin in the Origin type documentation.
Simple Code Snippet
This is an example of a module that exposes a privileged function:
use frame_support::{decl_module, dispatch};
use frame_system::ensure_root;
pub trait Config: frame_system::Config {}
decl_module! {
pub struct Module<T: Config> for enum Call where origin: T::Origin {
#[weight = 0]
pub fn privileged_function(origin) -> dispatch::DispatchResult {
ensure_root(origin)?;
// do something...
Ok(())
}
}
}
Genesis Config
The Sudo module depends on the GenesisConfig.
You need to set an initial superuser account as the sudo key.
Related Modules
License: Apache-2.0