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
.