Struct pallet_safe_mode::pallet::Pallet  
source · pub struct Pallet<T>(_);Expand description
The Pallet struct, the main type that implements traits and standalone
functions within the pallet.
Implementations§
source§impl<T: Config> Pallet<T>
 
impl<T: Config> Pallet<T>
sourcepub fn enter(origin: OriginFor<T>) -> DispatchResult
 
pub fn enter(origin: OriginFor<T>) -> DispatchResult
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: OriginFor<T>) -> DispatchResult
 
pub fn force_enter(origin: OriginFor<T>) -> DispatchResult
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: OriginFor<T>) -> DispatchResult
 
pub fn extend(origin: OriginFor<T>) -> DispatchResult
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: OriginFor<T>) -> DispatchResult
 
pub fn force_extend(origin: OriginFor<T>) -> DispatchResult
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: OriginFor<T>) -> DispatchResult
 
pub fn force_exit(origin: OriginFor<T>) -> DispatchResult
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: OriginFor<T>,
    account: T::AccountId,
    block: BlockNumberFor<T>
) -> DispatchResult
 
pub fn force_slash_deposit( origin: OriginFor<T>, account: T::AccountId, block: BlockNumberFor<T> ) -> DispatchResult
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: OriginFor<T>,
    account: T::AccountId,
    block: BlockNumberFor<T>
) -> DispatchResult
 
pub fn release_deposit( origin: OriginFor<T>, account: T::AccountId, block: BlockNumberFor<T> ) -> DispatchResult
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: OriginFor<T>,
    account: T::AccountId,
    block: BlockNumberFor<T>
) -> DispatchResult
 
pub fn force_release_deposit( origin: OriginFor<T>, account: T::AccountId, block: BlockNumberFor<T> ) -> DispatchResult
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: Config> Pallet<T>
 
impl<T: Config> Pallet<T>
sourcepub fn is_entered() -> bool
 
pub fn is_entered() -> bool
Return whether safe-mode is entered.
sourcepub fn is_allowed(call: &T::RuntimeCall) -> boolwhere
    T::RuntimeCall: GetCallMetadata,
 
pub fn is_allowed(call: &T::RuntimeCall) -> boolwhere T::RuntimeCall: GetCallMetadata,
Return whether the given call is allowed to be dispatched.
Trait Implementations§
source§impl<T> Benchmarking for Pallet<T>where
    T: Config + Config,
    T::Currency: FunMutate<T::AccountId>,
 
impl<T> Benchmarking for Pallet<T>where T: Config + Config, T::Currency: FunMutate<T::AccountId>,
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: Config> Contains<<T as Config>::RuntimeCall> for Pallet<T>where
    T::RuntimeCall: GetCallMetadata,
 
impl<T: Config> Contains<<T as Config>::RuntimeCall> for Pallet<T>where T::RuntimeCall: GetCallMetadata,
source§fn contains(call: &T::RuntimeCall) -> bool
 
fn contains(call: &T::RuntimeCall) -> bool
Return whether the given call is allowed to be dispatched.
source§impl<T: Config> GetStorageVersion for Pallet<T>
 
impl<T: Config> GetStorageVersion for Pallet<T>
source§fn current_storage_version() -> Self::CurrentStorageVersion
 
fn current_storage_version() -> Self::CurrentStorageVersion
source§fn on_chain_storage_version() -> StorageVersion
 
fn on_chain_storage_version() -> StorageVersion
source§impl<T: Config> Hooks<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>
 
impl<T: Config> Hooks<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>
source§fn on_initialize(current: BlockNumberFor<T>) -> Weight
 
fn on_initialize(current: BlockNumberFor<T>) -> 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_runtime_upgrade() -> Weight
 
fn on_runtime_upgrade() -> Weight
source§fn try_state(_n: BlockNumber) -> Result<(), DispatchError>
 
fn try_state(_n: BlockNumber) -> Result<(), DispatchError>
source§fn pre_upgrade() -> Result<Vec<u8, Global>, DispatchError>
 
fn pre_upgrade() -> Result<Vec<u8, Global>, DispatchError>
source§fn post_upgrade(_state: Vec<u8, Global>) -> Result<(), DispatchError>
 
fn post_upgrade(_state: Vec<u8, Global>) -> Result<(), DispatchError>
source§fn offchain_worker(_n: BlockNumber)
 
fn offchain_worker(_n: BlockNumber)
source§fn integrity_test()
 
fn integrity_test()
source§impl<T: Config> IntegrityTest for Pallet<T>
 
impl<T: Config> IntegrityTest for Pallet<T>
source§impl<T: Config> OffchainWorker<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>
 
impl<T: Config> OffchainWorker<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>
source§fn offchain_worker(n: BlockNumberFor<T>)
 
fn offchain_worker(n: BlockNumberFor<T>)
source§impl<T: Config> OnFinalize<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>
 
impl<T: Config> OnFinalize<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>
source§fn on_finalize(n: BlockNumberFor<T>)
 
fn on_finalize(n: BlockNumberFor<T>)
Hooks::on_finalize.source§impl<T: Config> OnGenesis for Pallet<T>
 
impl<T: Config> OnGenesis for Pallet<T>
source§fn on_genesis()
 
fn on_genesis()
source§impl<T: Config> OnIdle<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>
 
impl<T: Config> OnIdle<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>
source§fn on_idle(n: BlockNumberFor<T>, remaining_weight: Weight) -> Weight
 
fn on_idle(n: BlockNumberFor<T>, remaining_weight: Weight) -> Weight
Hooks::on_idle.source§impl<T: Config> OnInitialize<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>
 
impl<T: Config> OnInitialize<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>
source§fn on_initialize(n: BlockNumberFor<T>) -> Weight
 
fn on_initialize(n: BlockNumberFor<T>) -> Weight
Hooks::on_initialize.source§impl<T: Config> OnRuntimeUpgrade for Pallet<T>
 
impl<T: Config> OnRuntimeUpgrade for Pallet<T>
source§fn on_runtime_upgrade() -> Weight
 
fn on_runtime_upgrade() -> Weight
source§fn pre_upgrade() -> Result<Vec<u8>, TryRuntimeError>
 
fn pre_upgrade() -> Result<Vec<u8>, TryRuntimeError>
Hooks::pre_upgrade.source§fn post_upgrade(state: Vec<u8>) -> Result<(), TryRuntimeError>
 
fn post_upgrade(state: Vec<u8>) -> Result<(), TryRuntimeError>
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: Config> PalletInfoAccess for Pallet<T>
 
impl<T: Config> PalletInfoAccess for Pallet<T>
source§fn module_name() -> &'static str
 
fn module_name() -> &'static str
source§fn crate_version() -> CrateVersion
 
fn crate_version() -> CrateVersion
source§impl<T: Config> PalletsInfoAccess for Pallet<T>
 
impl<T: Config> PalletsInfoAccess for Pallet<T>
source§impl<T> PartialEq<Pallet<T>> for Pallet<T>
 
impl<T> PartialEq<Pallet<T>> for Pallet<T>
source§impl<T: Config> SafeMode for Pallet<T>
 
impl<T: Config> SafeMode for Pallet<T>
§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<BlockNumberFor<T>>
 
fn remaining() -> Option<BlockNumberFor<T>>
source§fn enter(duration: BlockNumberFor<T>) -> Result<(), SafeModeError>
 
fn enter(duration: BlockNumberFor<T>) -> Result<(), SafeModeError>
duration blocks. Read moresource§fn extend(duration: BlockNumberFor<T>) -> Result<(), SafeModeError>
 
fn extend(duration: BlockNumberFor<T>) -> Result<(), SafeModeError>
duration blocks. Read moresource§impl<T: Config> StorageInfoTrait for Pallet<T>
 
impl<T: Config> StorageInfoTrait for Pallet<T>
fn storage_info() -> Vec<StorageInfo>
source§impl<T: Config> TryState<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>
 
impl<T: Config> TryState<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>
source§fn try_state(
    n: BlockNumberFor<T>,
    _s: TryStateSelect
) -> Result<(), TryRuntimeError>
 
fn try_state( n: BlockNumberFor<T>, _s: TryStateSelect ) -> Result<(), TryRuntimeError>
source§impl<T: Config> WhitelistedStorageKeys for Pallet<T>
 
impl<T: Config> WhitelistedStorageKeys for Pallet<T>
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.impl<T> Eq for Pallet<T>
Auto Trait Implementations§
impl<T> RefUnwindSafe for Pallet<T>where T: RefUnwindSafe,
impl<T> Send for Pallet<T>where T: Send,
impl<T> Sync for Pallet<T>where T: Sync,
impl<T> Unpin for Pallet<T>where T: Unpin,
impl<T> UnwindSafe for Pallet<T>where T: UnwindSafe,
Blanket Implementations§
source§impl<T> CheckedConversion for T
 
impl<T> CheckedConversion for T
source§impl<Q, K> Equivalent<K> for Qwhere
    Q: Eq + ?Sized,
    K: Borrow<Q> + ?Sized,
 
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
source§fn equivalent(&self, key: &K) -> bool
 
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Qwhere
    Q: Eq + ?Sized,
    K: Borrow<Q> + ?Sized,
 
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
§fn equivalent(&self, key: &K) -> bool
 
fn equivalent(&self, key: &K) -> bool
source§impl<T> Instrument for T
 
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
 
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
 
fn in_current_span(self) -> Instrumented<Self>
source§impl<T, Outer> IsWrappedBy<Outer> for Twhere
    Outer: AsRef<T> + AsMut<T> + From<T>,
    T: From<Outer>,
 
impl<T, Outer> IsWrappedBy<Outer> for Twhere Outer: AsRef<T> + AsMut<T> + From<T>, T: From<Outer>,
§impl<T> Pointable for T
 
impl<T> Pointable for T
source§impl<T> SaturatedConversion for T
 
impl<T> SaturatedConversion for T
source§fn saturated_from<T>(t: T) -> Selfwhere
    Self: UniqueSaturatedFrom<T>,
 
fn saturated_from<T>(t: T) -> Selfwhere Self: UniqueSaturatedFrom<T>,
source§fn saturated_into<T>(self) -> Twhere
    Self: UniqueSaturatedInto<T>,
 
fn saturated_into<T>(self) -> Twhere Self: UniqueSaturatedInto<T>,
T. Read more§impl<SS, SP> SupersetOf<SS> for SPwhere
    SS: SubsetOf<SP>,
 
impl<SS, SP> SupersetOf<SS> for SPwhere SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
 
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
 
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).§fn to_subset_unchecked(&self) -> SS
 
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
 
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.source§impl<S, T> UncheckedInto<T> for Swhere
    T: UncheckedFrom<S>,
 
impl<S, T> UncheckedInto<T> for Swhere T: UncheckedFrom<S>,
source§fn unchecked_into(self) -> T
 
fn unchecked_into(self) -> T
unchecked_from.source§impl<T, S> UniqueSaturatedInto<T> for Swhere
    T: Bounded,
    S: TryInto<T>,
 
impl<T, S> UniqueSaturatedInto<T> for Swhere T: Bounded, S: TryInto<T>,
source§fn unique_saturated_into(self) -> T
 
fn unique_saturated_into(self) -> T
T.