pub type SafeMode = Pallet<Runtime>;
Aliased Type§
struct SafeMode(/* private fields */);
Implementations
Source§impl<T> Pallet<T>where
T: Config,
impl<T> Pallet<T>where
T: Config,
Sourcepub fn enter(origin: <T as Config>::RuntimeOrigin) -> Result<(), DispatchError>
pub fn enter(origin: <T as Config>::RuntimeOrigin) -> Result<(), DispatchError>
Enter safe-mode permissionlessly for Config::EnterDuration
blocks.
Reserves Config::EnterDepositAmount
from the caller’s account.
Emits an Event::Entered
event on success.
Errors with Error::Entered
if the safe-mode is already entered.
Errors with Error::NotConfigured
if the deposit amount is None
.
Sourcepub fn force_enter(
origin: <T as Config>::RuntimeOrigin,
) -> Result<(), DispatchError>
pub fn force_enter( origin: <T as Config>::RuntimeOrigin, ) -> Result<(), DispatchError>
Enter safe-mode by force for a per-origin configured number of blocks.
Emits an Event::Entered
event on success.
Errors with Error::Entered
if the safe-mode is already entered.
Can only be called by the Config::ForceEnterOrigin
origin.
Sourcepub fn extend(origin: <T as Config>::RuntimeOrigin) -> Result<(), DispatchError>
pub fn extend(origin: <T as Config>::RuntimeOrigin) -> Result<(), DispatchError>
Extend the safe-mode permissionlessly for Config::ExtendDuration
blocks.
This accumulates on top of the current remaining duration.
Reserves Config::ExtendDepositAmount
from the caller’s account.
Emits an Event::Extended
event on success.
Errors with Error::Exited
if the safe-mode is entered.
Errors with Error::NotConfigured
if the deposit amount is None
.
This may be called by any signed origin with Config::ExtendDepositAmount
free
currency to reserve. This call can be disabled for all origins by configuring
Config::ExtendDepositAmount
to None
.
Sourcepub fn force_extend(
origin: <T as Config>::RuntimeOrigin,
) -> Result<(), DispatchError>
pub fn force_extend( origin: <T as Config>::RuntimeOrigin, ) -> Result<(), DispatchError>
Extend the safe-mode by force for a per-origin configured number of blocks.
Emits an Event::Extended
event on success.
Errors with Error::Exited
if the safe-mode is inactive.
Can only be called by the Config::ForceExtendOrigin
origin.
Sourcepub fn force_exit(
origin: <T as Config>::RuntimeOrigin,
) -> Result<(), DispatchError>
pub fn force_exit( origin: <T as Config>::RuntimeOrigin, ) -> Result<(), DispatchError>
Exit safe-mode by force.
Emits an Event::Exited
with ExitReason::Force
event on success.
Errors with Error::Exited
if the safe-mode is inactive.
Note: safe-mode
will be automatically deactivated by Pallet::on_initialize
hook
after the block height is greater than the EnteredUntil
storage item.
Emits an Event::Exited
with ExitReason::Timeout
event when deactivated in the
hook.
Sourcepub fn force_slash_deposit(
origin: <T as Config>::RuntimeOrigin,
account: <T as Config>::AccountId,
block: <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number,
) -> Result<(), DispatchError>
pub fn force_slash_deposit( origin: <T as Config>::RuntimeOrigin, account: <T as Config>::AccountId, block: <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number, ) -> Result<(), DispatchError>
Slash a deposit for an account that entered or extended safe-mode at a given historical block.
This can only be called while safe-mode is entered.
Emits a Event::DepositSlashed
event on success.
Errors with Error::Entered
if safe-mode is entered.
Can only be called by the Config::ForceDepositOrigin
origin.
Sourcepub fn release_deposit(
origin: <T as Config>::RuntimeOrigin,
account: <T as Config>::AccountId,
block: <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number,
) -> Result<(), DispatchError>
pub fn release_deposit( origin: <T as Config>::RuntimeOrigin, account: <T as Config>::AccountId, block: <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number, ) -> Result<(), DispatchError>
Permissionlessly release a deposit for an account that entered safe-mode at a given historical block.
The call can be completely disabled by setting Config::ReleaseDelay
to None
.
This cannot be called while safe-mode is entered and not until
Config::ReleaseDelay
blocks have passed since safe-mode was entered.
Emits a Event::DepositReleased
event on success.
Errors with Error::Entered
if the safe-mode is entered.
Errors with Error::CannotReleaseYet
if Config::ReleaseDelay
block have not
passed since safe-mode was entered. Errors with Error::NoDeposit
if the payee has no
reserved currency at the block specified.
Sourcepub fn force_release_deposit(
origin: <T as Config>::RuntimeOrigin,
account: <T as Config>::AccountId,
block: <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number,
) -> Result<(), DispatchError>
pub fn force_release_deposit( origin: <T as Config>::RuntimeOrigin, account: <T as Config>::AccountId, block: <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number, ) -> Result<(), DispatchError>
Force to release a deposit for an account that entered safe-mode at a given historical block.
This can be called while safe-mode is still entered.
Emits a Event::DepositReleased
event on success.
Errors with Error::Entered
if safe-mode is entered.
Errors with Error::NoDeposit
if the payee has no reserved currency at the
specified block.
Can only be called by the Config::ForceDepositOrigin
origin.
Source§impl<T> Pallet<T>where
T: Config,
impl<T> Pallet<T>where
T: Config,
Sourcepub fn is_entered() -> bool
pub fn is_entered() -> bool
Return whether safe-mode
is entered.
Sourcepub fn is_allowed(call: &<T as Config>::RuntimeCall) -> bool
pub fn is_allowed(call: &<T as Config>::RuntimeCall) -> bool
Return whether the given call is allowed to be dispatched.
Trait Implementations
Source§impl<T> BeforeAllRuntimeMigrations for Pallet<T>where
T: Config,
impl<T> BeforeAllRuntimeMigrations for Pallet<T>where
T: Config,
Source§fn before_all_runtime_migrations() -> Weight
fn before_all_runtime_migrations() -> Weight
Source§impl<T> Benchmarking for Pallet<T>
impl<T> Benchmarking for Pallet<T>
Source§fn benchmarks(extra: bool) -> Vec<BenchmarkMetadata>
fn benchmarks(extra: bool) -> Vec<BenchmarkMetadata>
Source§fn run_benchmark(
extrinsic: &[u8],
c: &[(BenchmarkParameter, u32)],
whitelist: &[TrackedStorageKey],
verify: bool,
internal_repeats: u32,
) -> Result<Vec<BenchmarkResult>, BenchmarkError>
fn run_benchmark( extrinsic: &[u8], c: &[(BenchmarkParameter, u32)], whitelist: &[TrackedStorageKey], verify: bool, internal_repeats: u32, ) -> Result<Vec<BenchmarkResult>, BenchmarkError>
Source§impl<T> DispatchViewFunction for Pallet<T>where
T: Config,
impl<T> DispatchViewFunction for Pallet<T>where
T: Config,
fn dispatch_view_function<O>(
id: &ViewFunctionId,
input: &mut &[u8],
output: &mut O,
) -> Result<(), ViewFunctionDispatchError>where
O: Output,
Source§impl<T> GetStorageVersion for Pallet<T>where
T: Config,
impl<T> GetStorageVersion for Pallet<T>where
T: Config,
Source§fn in_code_storage_version() -> <Pallet<T> as GetStorageVersion>::InCodeStorageVersion
fn in_code_storage_version() -> <Pallet<T> as GetStorageVersion>::InCodeStorageVersion
storage_version
attribute, or
NoStorageVersionSet
if the attribute is missing.Source§fn on_chain_storage_version() -> StorageVersion
fn on_chain_storage_version() -> StorageVersion
Source§fn current_storage_version() -> Self::InCodeStorageVersion
fn current_storage_version() -> Self::InCodeStorageVersion
in_code_storage_version
and will be removed after March 2024.Self::current_storage_version
instead. Read moreSource§impl<T> Hooks<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
impl<T> Hooks<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
Source§fn on_initialize(
current: <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number,
) -> Weight
fn on_initialize( current: <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number, ) -> Weight
Automatically exits safe-mode when the current block number is greater than
EnteredUntil
.
Source§fn on_finalize(_n: BlockNumber)
fn on_finalize(_n: BlockNumber)
Source§fn on_idle(_n: BlockNumber, _remaining_weight: Weight) -> Weight
fn on_idle(_n: BlockNumber, _remaining_weight: Weight) -> Weight
Hooks::on_finalize
). Read moreSource§fn on_poll(_n: BlockNumber, _weight: &mut WeightMeter)
fn on_poll(_n: BlockNumber, _weight: &mut WeightMeter)
Source§fn on_runtime_upgrade() -> Weight
fn on_runtime_upgrade() -> Weight
Executive
pallet. Read moreSource§fn try_state(_n: BlockNumber) -> Result<(), DispatchError>
fn try_state(_n: BlockNumber) -> Result<(), DispatchError>
Source§fn pre_upgrade() -> Result<Vec<u8>, DispatchError>
fn pre_upgrade() -> Result<Vec<u8>, DispatchError>
Source§fn post_upgrade(_state: Vec<u8>) -> Result<(), DispatchError>
fn post_upgrade(_state: Vec<u8>) -> Result<(), DispatchError>
Source§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
Source§fn integrity_test()
fn integrity_test()
Source§impl<T> IntegrityTest for Pallet<T>where
T: Config,
impl<T> IntegrityTest for Pallet<T>where
T: Config,
Source§impl<T> OffchainWorker<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
impl<T> OffchainWorker<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
Source§impl<T> OnFinalize<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
impl<T> OnFinalize<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
Source§fn on_finalize(
n: <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number,
)
fn on_finalize( n: <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number, )
Hooks::on_finalize
.Source§impl<T> OnGenesis for Pallet<T>where
T: Config,
impl<T> OnGenesis for Pallet<T>where
T: Config,
Source§fn on_genesis()
fn on_genesis()
Source§impl<T> OnIdle<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
impl<T> OnIdle<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
Source§impl<T> OnInitialize<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
impl<T> OnInitialize<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
Source§fn on_initialize(
n: <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number,
) -> Weight
fn on_initialize( n: <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number, ) -> Weight
Hooks::on_initialize
.Source§impl<T> OnPoll<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
impl<T> OnPoll<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
Source§impl<T> OnRuntimeUpgrade for Pallet<T>where
T: Config,
impl<T> OnRuntimeUpgrade for Pallet<T>where
T: Config,
Source§fn on_runtime_upgrade() -> Weight
fn on_runtime_upgrade() -> Weight
Source§fn pre_upgrade() -> Result<Vec<u8>, DispatchError>
fn pre_upgrade() -> Result<Vec<u8>, DispatchError>
Hooks::pre_upgrade
.Source§fn post_upgrade(state: Vec<u8>) -> Result<(), DispatchError>
fn post_upgrade(state: Vec<u8>) -> Result<(), DispatchError>
Hooks::post_upgrade
.Source§fn try_on_runtime_upgrade(checks: bool) -> Result<Weight, DispatchError>
fn try_on_runtime_upgrade(checks: bool) -> Result<Weight, DispatchError>
pre_upgrade
->
on_runtime_upgrade
-> post_upgrade
hooks for a migration. Read moreSource§impl<T> PalletInfoAccess for Pallet<T>where
T: Config,
impl<T> PalletInfoAccess for Pallet<T>where
T: Config,
Source§fn module_name() -> &'static str
fn module_name() -> &'static str
Source§fn crate_version() -> CrateVersion
fn crate_version() -> CrateVersion
Source§impl<T> PalletsInfoAccess for Pallet<T>where
T: Config,
impl<T> PalletsInfoAccess for Pallet<T>where
T: Config,
Source§impl<T> SafeMode for Pallet<T>where
T: Config,
impl<T> SafeMode for Pallet<T>where
T: Config,
Source§type BlockNumber = <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number
type BlockNumber = <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number
Source§fn is_entered() -> bool
fn is_entered() -> bool
Source§fn remaining() -> Option<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number>
fn remaining() -> Option<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number>
Source§fn enter(
duration: <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number,
) -> Result<(), SafeModeError>
fn enter( duration: <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number, ) -> Result<(), SafeModeError>
duration
blocks. Read moreSource§impl<T> StorageInfoTrait for Pallet<T>where
T: Config,
impl<T> StorageInfoTrait for Pallet<T>where
T: Config,
fn storage_info() -> Vec<StorageInfo>
Source§impl<T> TryDecodeEntireStorage for Pallet<T>where
T: Config,
impl<T> TryDecodeEntireStorage for Pallet<T>where
T: Config,
Source§fn try_decode_entire_state() -> Result<usize, Vec<TryDecodeEntireStorageError>>
fn try_decode_entire_state() -> Result<usize, Vec<TryDecodeEntireStorageError>>
Ok(bytes_decoded)
if success.Source§impl<T> TryState<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
impl<T> TryState<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
Source§impl<T> WhitelistedStorageKeys for Pallet<T>where
T: Config,
impl<T> WhitelistedStorageKeys for Pallet<T>where
T: Config,
Source§fn whitelisted_storage_keys() -> Vec<TrackedStorageKey>
fn whitelisted_storage_keys() -> Vec<TrackedStorageKey>
Vec<TrackedStorageKey>
indicating the storage keys that
should be whitelisted during benchmarking. This means that those keys
will be excluded from the benchmarking performance calculation.