Struct pallet_proxy::pallet::Pallet
source · pub struct Pallet<T>(PhantomData<T>);
Expand description
The Pallet
struct, the main type that implements traits and standalone
functions within the pallet.
Tuple Fields§
§0: PhantomData<T>
Implementations§
source§impl<T: Config> Pallet<T>
impl<T: Config> Pallet<T>
sourcepub fn proxy(
origin: OriginFor<T>,
real: <<T as Config>::Lookup as StaticLookup>::Source,
force_proxy_type: Option<T::ProxyType>,
call: Box<<T as Config>::RuntimeCall>
) -> DispatchResult
pub fn proxy( origin: OriginFor<T>, real: <<T as Config>::Lookup as StaticLookup>::Source, force_proxy_type: Option<T::ProxyType>, call: Box<<T as Config>::RuntimeCall> ) -> DispatchResult
Dispatch the given call
from an account that the sender is authorised for through
add_proxy
.
The dispatch origin for this call must be Signed.
Parameters:
real
: The account that the proxy will make a call on behalf of.force_proxy_type
: Specify the exact proxy type to be used and checked for this call.call
: The call to be made by thereal
account.
sourcepub fn add_proxy(
origin: OriginFor<T>,
delegate: <<T as Config>::Lookup as StaticLookup>::Source,
proxy_type: T::ProxyType,
delay: BlockNumberFor<T>
) -> DispatchResult
pub fn add_proxy( origin: OriginFor<T>, delegate: <<T as Config>::Lookup as StaticLookup>::Source, proxy_type: T::ProxyType, delay: BlockNumberFor<T> ) -> DispatchResult
Register a proxy account for the sender that is able to make calls on its behalf.
The dispatch origin for this call must be Signed.
Parameters:
proxy
: The account that thecaller
would like to make a proxy.proxy_type
: The permissions allowed for this proxy account.delay
: The announcement period required of the initial proxy. Will generally be zero.
sourcepub fn remove_proxy(
origin: OriginFor<T>,
delegate: <<T as Config>::Lookup as StaticLookup>::Source,
proxy_type: T::ProxyType,
delay: BlockNumberFor<T>
) -> DispatchResult
pub fn remove_proxy( origin: OriginFor<T>, delegate: <<T as Config>::Lookup as StaticLookup>::Source, proxy_type: T::ProxyType, delay: BlockNumberFor<T> ) -> DispatchResult
Unregister a proxy account for the sender.
The dispatch origin for this call must be Signed.
Parameters:
proxy
: The account that thecaller
would like to remove as a proxy.proxy_type
: The permissions currently enabled for the removed proxy account.
sourcepub fn remove_proxies(origin: OriginFor<T>) -> DispatchResult
pub fn remove_proxies(origin: OriginFor<T>) -> DispatchResult
Unregister all proxy accounts for the sender.
The dispatch origin for this call must be Signed.
WARNING: This may be called on accounts created by pure
, however if done, then
the unreserved fees will be inaccessible. All access to this account will be lost.
sourcepub fn create_pure(
origin: OriginFor<T>,
proxy_type: T::ProxyType,
delay: BlockNumberFor<T>,
index: u16
) -> DispatchResult
pub fn create_pure( origin: OriginFor<T>, proxy_type: T::ProxyType, delay: BlockNumberFor<T>, index: u16 ) -> DispatchResult
Spawn a fresh new account that is guaranteed to be otherwise inaccessible, and
initialize it with a proxy of proxy_type
for origin
sender.
Requires a Signed
origin.
proxy_type
: The type of the proxy that the sender will be registered as over the new account. This will almost always be the most permissiveProxyType
possible to allow for maximum flexibility.index
: A disambiguation index, in case this is called multiple times in the same transaction (e.g. withutility::batch
). Unless you’re usingbatch
you probably just want to use0
.delay
: The announcement period required of the initial proxy. Will generally be zero.
Fails with Duplicate
if this has already been called in this transaction, from the
same sender, with the same parameters.
Fails if there are insufficient funds to pay for deposit.
sourcepub fn kill_pure(
origin: OriginFor<T>,
spawner: <<T as Config>::Lookup as StaticLookup>::Source,
proxy_type: T::ProxyType,
index: u16,
height: BlockNumberFor<T>,
ext_index: u32
) -> DispatchResult
pub fn kill_pure( origin: OriginFor<T>, spawner: <<T as Config>::Lookup as StaticLookup>::Source, proxy_type: T::ProxyType, index: u16, height: BlockNumberFor<T>, ext_index: u32 ) -> DispatchResult
Removes a previously spawned pure proxy.
WARNING: All access to this account will be lost. Any funds held in it will be inaccessible.
Requires a Signed
origin, and the sender account must have been created by a call to
pure
with corresponding parameters.
spawner
: The account that originally calledpure
to create this account.index
: The disambiguation index originally passed topure
. Probably0
.proxy_type
: The proxy type originally passed topure
.height
: The height of the chain when the call topure
was processed.ext_index
: The extrinsic index in which the call topure
was processed.
Fails with NoPermission
in case the caller is not a previously created pure
account whose pure
call has corresponding parameters.
sourcepub fn announce(
origin: OriginFor<T>,
real: <<T as Config>::Lookup as StaticLookup>::Source,
call_hash: <<T as Config>::CallHasher as Hash>::Output
) -> DispatchResult
pub fn announce( origin: OriginFor<T>, real: <<T as Config>::Lookup as StaticLookup>::Source, call_hash: <<T as Config>::CallHasher as Hash>::Output ) -> DispatchResult
Publish the hash of a proxy-call that will be made in the future.
This must be called some number of blocks before the corresponding proxy
is attempted
if the delay associated with the proxy relationship is greater than zero.
No more than MaxPending
announcements may be made at any one time.
This will take a deposit of AnnouncementDepositFactor
as well as
AnnouncementDepositBase
if there are no other pending announcements.
The dispatch origin for this call must be Signed and a proxy of real
.
Parameters:
real
: The account that the proxy will make a call on behalf of.call_hash
: The hash of the call to be made by thereal
account.
sourcepub fn remove_announcement(
origin: OriginFor<T>,
real: <<T as Config>::Lookup as StaticLookup>::Source,
call_hash: <<T as Config>::CallHasher as Hash>::Output
) -> DispatchResult
pub fn remove_announcement( origin: OriginFor<T>, real: <<T as Config>::Lookup as StaticLookup>::Source, call_hash: <<T as Config>::CallHasher as Hash>::Output ) -> DispatchResult
Remove a given announcement.
May be called by a proxy account to remove a call they previously announced and return the deposit.
The dispatch origin for this call must be Signed.
Parameters:
real
: The account that the proxy will make a call on behalf of.call_hash
: The hash of the call to be made by thereal
account.
sourcepub fn reject_announcement(
origin: OriginFor<T>,
delegate: <<T as Config>::Lookup as StaticLookup>::Source,
call_hash: <<T as Config>::CallHasher as Hash>::Output
) -> DispatchResult
pub fn reject_announcement( origin: OriginFor<T>, delegate: <<T as Config>::Lookup as StaticLookup>::Source, call_hash: <<T as Config>::CallHasher as Hash>::Output ) -> DispatchResult
Remove the given announcement of a delegate.
May be called by a target (proxied) account to remove a call that one of their delegates
(delegate
) has announced they want to execute. The deposit is returned.
The dispatch origin for this call must be Signed.
Parameters:
delegate
: The account that previously announced the call.call_hash
: The hash of the call to be made.
sourcepub fn proxy_announced(
origin: OriginFor<T>,
delegate: <<T as Config>::Lookup as StaticLookup>::Source,
real: <<T as Config>::Lookup as StaticLookup>::Source,
force_proxy_type: Option<T::ProxyType>,
call: Box<<T as Config>::RuntimeCall>
) -> DispatchResult
pub fn proxy_announced( origin: OriginFor<T>, delegate: <<T as Config>::Lookup as StaticLookup>::Source, real: <<T as Config>::Lookup as StaticLookup>::Source, force_proxy_type: Option<T::ProxyType>, call: Box<<T as Config>::RuntimeCall> ) -> DispatchResult
Dispatch the given call
from an account that the sender is authorized for through
add_proxy
.
Removes any corresponding announcement(s).
The dispatch origin for this call must be Signed.
Parameters:
real
: The account that the proxy will make a call on behalf of.force_proxy_type
: Specify the exact proxy type to be used and checked for this call.call
: The call to be made by thereal
account.
source§impl<T: Config> Pallet<T>
impl<T: Config> Pallet<T>
sourcepub fn proxies<KArg>(
k: KArg
) -> (BoundedVec<ProxyDefinition<T::AccountId, T::ProxyType, BlockNumberFor<T>>, T::MaxProxies>, <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance)where
KArg: EncodeLike<T::AccountId>,
pub fn proxies<KArg>(
k: KArg
) -> (BoundedVec<ProxyDefinition<T::AccountId, T::ProxyType, BlockNumberFor<T>>, T::MaxProxies>, <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance)where
KArg: EncodeLike<T::AccountId>,
An auto-generated getter for Proxies
.
source§impl<T: Config> Pallet<T>
impl<T: Config> Pallet<T>
sourcepub fn announcements<KArg>(
k: KArg
) -> (BoundedVec<Announcement<T::AccountId, <<T as Config>::CallHasher as Hash>::Output, BlockNumberFor<T>>, T::MaxPending>, <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance)where
KArg: EncodeLike<T::AccountId>,
pub fn announcements<KArg>(
k: KArg
) -> (BoundedVec<Announcement<T::AccountId, <<T as Config>::CallHasher as Hash>::Output, BlockNumberFor<T>>, T::MaxPending>, <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance)where
KArg: EncodeLike<T::AccountId>,
An auto-generated getter for Announcements
.
source§impl<T: Config> Pallet<T>
impl<T: Config> Pallet<T>
sourcepub fn pure_account(
who: &T::AccountId,
proxy_type: &T::ProxyType,
index: u16,
maybe_when: Option<(BlockNumberFor<T>, u32)>
) -> T::AccountId
pub fn pure_account( who: &T::AccountId, proxy_type: &T::ProxyType, index: u16, maybe_when: Option<(BlockNumberFor<T>, u32)> ) -> T::AccountId
Calculate the address of an pure account.
who
: The spawner account.proxy_type
: The type of the proxy that the sender will be registered as over the new account. This will almost always be the most permissiveProxyType
possible to allow for maximum flexibility.index
: A disambiguation index, in case this is called multiple times in the same transaction (e.g. withutility::batch
). Unless you’re usingbatch
you probably just want to use0
.maybe_when
: The block height and extrinsic index of when the pure account was created. None to use current block height and extrinsic index.
sourcepub fn add_proxy_delegate(
delegator: &T::AccountId,
delegatee: T::AccountId,
proxy_type: T::ProxyType,
delay: BlockNumberFor<T>
) -> DispatchResult
pub fn add_proxy_delegate( delegator: &T::AccountId, delegatee: T::AccountId, proxy_type: T::ProxyType, delay: BlockNumberFor<T> ) -> DispatchResult
Register a proxy account for the delegator that is able to make calls on its behalf.
Parameters:
delegator
: The delegator account.delegatee
: The account that thedelegator
would like to make a proxy.proxy_type
: The permissions allowed for this proxy account.delay
: The announcement period required of the initial proxy. Will generally be zero.
sourcepub fn remove_proxy_delegate(
delegator: &T::AccountId,
delegatee: T::AccountId,
proxy_type: T::ProxyType,
delay: BlockNumberFor<T>
) -> DispatchResult
pub fn remove_proxy_delegate( delegator: &T::AccountId, delegatee: T::AccountId, proxy_type: T::ProxyType, delay: BlockNumberFor<T> ) -> DispatchResult
Unregister a proxy account for the delegator.
Parameters:
delegator
: The delegator account.delegatee
: The account that thedelegator
would like to make a proxy.proxy_type
: The permissions allowed for this proxy account.delay
: The announcement period required of the initial proxy. Will generally be zero.
pub fn deposit( num_proxies: u32 ) -> <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance
pub(crate) fn rejig_deposit( who: &T::AccountId, old_deposit: <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance, base: <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance, factor: <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance, len: usize ) -> Result<Option<<<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance>, DispatchError>
pub(crate) fn edit_announcements<F: FnMut(&Announcement<T::AccountId, <<T as Config>::CallHasher as Hash>::Output, BlockNumberFor<T>>) -> bool>( delegate: &T::AccountId, f: F ) -> DispatchResult
pub fn find_proxy( real: &T::AccountId, delegate: &T::AccountId, force_proxy_type: Option<T::ProxyType> ) -> Result<ProxyDefinition<T::AccountId, T::ProxyType, BlockNumberFor<T>>, DispatchError>
pub(crate) fn do_proxy( def: ProxyDefinition<T::AccountId, T::ProxyType, BlockNumberFor<T>>, real: T::AccountId, call: <T as Config>::RuntimeCall )
sourcepub fn remove_all_proxy_delegates(delegator: &T::AccountId)
pub fn remove_all_proxy_delegates(delegator: &T::AccountId)
Removes all proxy delegates for a given delegator.
Parameters:
delegator
: The delegator account.
Trait Implementations§
source§impl<T: Config> BeforeAllRuntimeMigrations for Pallet<T>
impl<T: Config> BeforeAllRuntimeMigrations for Pallet<T>
source§fn before_all_runtime_migrations() -> Weight
fn before_all_runtime_migrations() -> Weight
source§impl<T> Benchmarking for Pallet<T>where
T: Config + Config,
impl<T> Benchmarking for Pallet<T>where
T: Config + Config,
source§impl<T: Config> GetStorageVersion for Pallet<T>
impl<T: Config> GetStorageVersion for Pallet<T>
§type InCodeStorageVersion = NoStorageVersionSet
type InCodeStorageVersion = NoStorageVersionSet
source§fn in_code_storage_version() -> Self::InCodeStorageVersion
fn in_code_storage_version() -> Self::InCodeStorageVersion
storage_version
attribute, or
[NoStorageVersionSet
] if the attribute is missing.source§fn on_chain_storage_version() -> StorageVersion
fn on_chain_storage_version() -> StorageVersion
§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: 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>
§fn on_initialize(_n: BlockNumber) -> Weight
fn on_initialize(_n: BlockNumber) -> Weight
§fn on_finalize(_n: BlockNumber)
fn on_finalize(_n: BlockNumber)
§fn on_idle(_n: BlockNumber, _remaining_weight: Weight) -> Weight
fn on_idle(_n: BlockNumber, _remaining_weight: Weight) -> Weight
Hooks::on_finalize
]). Read more§fn on_poll(_n: BlockNumber, _weight: &mut WeightMeter)
fn on_poll(_n: BlockNumber, _weight: &mut WeightMeter)
§fn on_runtime_upgrade() -> Weight
fn on_runtime_upgrade() -> Weight
Executive
pallet. Read more§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
§fn integrity_test()
fn integrity_test()
source§impl<T: Config> IntegrityTest for Pallet<T>
impl<T: Config> IntegrityTest for Pallet<T>
source§fn integrity_test()
fn integrity_test()
Hooks::integrity_test
].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§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> OnPoll<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>
impl<T: Config> OnPoll<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>
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
Hooks::on_runtime_upgrade
].source§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> PartialEq for Pallet<T>
impl<T> PartialEq for Pallet<T>
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> Freeze for Pallet<T>
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> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> CheckedConversion for T
impl<T> CheckedConversion for T
§fn checked_from<T>(t: T) -> Option<Self>where
Self: TryFrom<T>,
fn checked_from<T>(t: T) -> Option<Self>where
Self: TryFrom<T>,
§fn checked_into<T>(self) -> Option<T>where
Self: TryInto<T>,
fn checked_into<T>(self) -> Option<T>where
Self: TryInto<T>,
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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 Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more§impl<T> IsType<T> for T
impl<T> IsType<T> for T
§impl<T, Outer> IsWrappedBy<Outer> for T
impl<T, Outer> IsWrappedBy<Outer> for T
§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> SaturatedConversion for T
impl<T> SaturatedConversion for T
§fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
§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.§impl<T, U> TryIntoKey<U> for Twhere
U: TryFromKey<T>,
impl<T, U> TryIntoKey<U> for Twhere
U: TryFromKey<T>,
type Error = <U as TryFromKey<T>>::Error
fn try_into_key(self) -> Result<U, <U as TryFromKey<T>>::Error>
§impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
§fn unchecked_into(self) -> T
fn unchecked_into(self) -> T
unchecked_from
.§impl<T, S> UniqueSaturatedInto<T> for S
impl<T, S> UniqueSaturatedInto<T> for S
§fn unique_saturated_into(self) -> T
fn unique_saturated_into(self) -> T
T
.