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>

source

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 the real account.
source

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 the caller 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.
source

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 the caller would like to remove as a proxy.
  • proxy_type: The permissions currently enabled for the removed proxy account.
source

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.

source

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 permissive ProxyType possible to allow for maximum flexibility.
  • index: A disambiguation index, in case this is called multiple times in the same transaction (e.g. with utility::batch). Unless you’re using batch you probably just want to use 0.
  • 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.

source

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 called pure to create this account.
  • index: The disambiguation index originally passed to pure. Probably 0.
  • proxy_type: The proxy type originally passed to pure.
  • height: The height of the chain when the call to pure was processed.
  • ext_index: The extrinsic index in which the call to pure was processed.

Fails with NoPermission in case the caller is not a previously created pure account whose pure call has corresponding parameters.

source

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 the real account.
source

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 the real account.
source

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.
source

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 the real account.
source§

impl<T: Config> Pallet<T>

source

pub(crate) fn deposit_event(event: Event<T>)

source§

impl<T: Config> Pallet<T>

source

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>

source

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>

source

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 permissive ProxyType possible to allow for maximum flexibility.
  • index: A disambiguation index, in case this is called multiple times in the same transaction (e.g. with utility::batch). Unless you’re using batch you probably just want to use 0.
  • maybe_when: The block height and extrinsic index of when the pure account was created. None to use current block height and extrinsic index.
source

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 the delegator 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.
source

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 the delegator 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.
source

pub fn deposit( num_proxies: u32 ) -> <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance

source

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>

source

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

source

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>

source

pub(crate) fn do_proxy( def: ProxyDefinition<T::AccountId, T::ProxyType, BlockNumberFor<T>>, real: T::AccountId, call: <T as Config>::RuntimeCall )

source

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>

source§

fn before_all_runtime_migrations() -> Weight

Something that should happen before runtime migrations are executed.
source§

impl<T> Benchmarking for Pallet<T>
where T: Config + Config,

source§

fn benchmarks(extra: bool) -> Vec<BenchmarkMetadata>

Get the benchmarks available for this pallet. Generally there is one benchmark per extrinsic, so these are sometimes just called “extrinsics”. Read more
source§

fn run_benchmark( extrinsic: &[u8], c: &[(BenchmarkParameter, u32)], whitelist: &[TrackedStorageKey], verify: bool, internal_repeats: u32 ) -> Result<Vec<BenchmarkResult>, BenchmarkError>

Run the benchmarks for this pallet.
source§

impl<T: Config> Callable<T> for Pallet<T>

source§

impl<T> Clone for Pallet<T>

source§

fn clone(&self) -> Self

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<T> Debug for Pallet<T>

source§

fn fmt(&self, fmt: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<T: Config> GetStorageVersion for Pallet<T>

§

type InCodeStorageVersion = NoStorageVersionSet

This type is generated by the pallet macro. Read more
source§

fn in_code_storage_version() -> Self::InCodeStorageVersion

Returns the in-code storage version as specified in the storage_version attribute, or [NoStorageVersionSet] if the attribute is missing.
source§

fn on_chain_storage_version() -> StorageVersion

Returns the storage version of the pallet as last set in the actual on-chain storage.
§

fn current_storage_version() -> Self::InCodeStorageVersion

👎Deprecated: This method has been renamed to in_code_storage_version and will be removed after March 2024.
DEPRECATED: Use [Self::current_storage_version] instead. Read more
source§

impl<T: Config> Hooks<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>

§

fn on_initialize(_n: BlockNumber) -> Weight

Block initialization hook. This is called at the very beginning of block execution. Read more
§

fn on_finalize(_n: BlockNumber)

Block finalization hook. This is called at the very end of block execution. Read more
§

fn on_idle(_n: BlockNumber, _remaining_weight: Weight) -> Weight

Hook to consume a block’s idle time. This will run when the block is being finalized (before [Hooks::on_finalize]). Read more
§

fn on_poll(_n: BlockNumber, _weight: &mut WeightMeter)

A hook to run logic after inherent application. Read more
§

fn on_runtime_upgrade() -> Weight

Hook executed when a code change (aka. a “runtime upgrade”) is detected by the FRAME Executive pallet. Read more
§

fn offchain_worker(_n: BlockNumber)

Implementing this function on a pallet allows you to perform long-running tasks that are dispatched as separate threads, and entirely independent of the main blockchain execution. Read more
§

fn integrity_test()

Check the integrity of this pallet’s configuration. Read more
source§

impl<T: Config> IntegrityTest for Pallet<T>

source§

fn integrity_test()

See [Hooks::integrity_test].
source§

impl<T: Config> OffchainWorker<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>

source§

fn offchain_worker(n: BlockNumberFor<T>)

This function is being called after every block import (when fully synced). Read more
source§

impl<T: Config> OnFinalize<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>

source§

fn on_finalize(n: BlockNumberFor<T>)

See [Hooks::on_finalize].
source§

impl<T: Config> OnGenesis for Pallet<T>

source§

fn on_genesis()

Something that should happen at genesis.
source§

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

See [Hooks::on_idle].
source§

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

See [Hooks::on_initialize].
source§

impl<T: Config> OnPoll<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>

source§

fn on_poll(n: BlockNumberFor<T>, weight: &mut WeightMeter)

Code to execute every now and then at the beginning of the block after inherent application. Read more
source§

impl<T: Config> OnRuntimeUpgrade for Pallet<T>

source§

fn on_runtime_upgrade() -> Weight

See [Hooks::on_runtime_upgrade].
source§

impl<T: Config> PalletInfoAccess for Pallet<T>

source§

fn index() -> usize

Index of the pallet as configured in the runtime.
source§

fn name() -> &'static str

Name of the pallet as configured in the runtime.
source§

fn name_hash() -> [u8; 16]

Two128 hash of name.
source§

fn module_name() -> &'static str

Name of the Rust module containing the pallet.
source§

fn crate_version() -> CrateVersion

Version of the crate containing the pallet.
source§

impl<T: Config> PalletsInfoAccess for Pallet<T>

source§

fn count() -> usize

The number of pallets’ information that this type represents. Read more
source§

fn infos() -> Vec<PalletInfoData>

All of the pallets’ information that this type represents.
source§

impl<T> PartialEq for Pallet<T>

source§

fn eq(&self, other: &Self) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<T: Config> StorageInfoTrait for Pallet<T>

source§

fn storage_info() -> Vec<StorageInfo>

source§

impl<T: Config> WhitelistedStorageKeys for Pallet<T>

source§

fn whitelisted_storage_keys() -> Vec<TrackedStorageKey>

Returns a 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.
source§

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> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CheckedConversion for T

§

fn checked_from<T>(t: T) -> Option<Self>
where Self: TryFrom<T>,

Convert from a value of T into an equivalent instance of Option<Self>. Read more
§

fn checked_into<T>(self) -> Option<T>
where Self: TryInto<T>,

Consume self to return Some equivalent value of Option<T>. Read more
source§

impl<T> DynClone for T
where T: Clone,

source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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, U> IntoKey<U> for T
where U: FromKey<T>,

§

fn into_key(self) -> U

§

impl<T> IsType<T> for T

§

fn from_ref(t: &T) -> &T

Cast reference.
§

fn into_ref(&self) -> &T

Cast reference.
§

fn from_mut(t: &mut T) -> &mut T

Cast mutable reference.
§

fn into_mut(&mut self) -> &mut T

Cast mutable reference.
§

impl<T, Outer> IsWrappedBy<Outer> for T
where Outer: AsRef<T> + AsMut<T> + From<T>, T: From<Outer>,

§

fn from_ref(outer: &Outer) -> &T

Get a reference to the inner from the outer.

§

fn from_mut(outer: &mut Outer) -> &mut T

Get a mutable reference to the inner from the outer.

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
§

impl<T> SaturatedConversion for T

§

fn saturated_from<T>(t: T) -> Self
where Self: UniqueSaturatedFrom<T>,

Convert from a value of T into an equivalent instance of Self. Read more
§

fn saturated_into<T>(self) -> T
where Self: UniqueSaturatedInto<T>,

Consume self to return an equivalent value of T. Read more
§

impl<SS, SP> SupersetOf<SS> for SP
where SS: SubsetOf<SP>,

§

fn to_subset(&self) -> Option<SS>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
§

fn is_in_subset(&self) -> bool

Checks if self is actually part of its subset T (and can be converted to it).
§

fn to_subset_unchecked(&self) -> SS

Use with care! Same as self.to_subset but without any property checks. Always succeeds.
§

fn from_subset(element: &SS) -> SP

The inclusion map: converts self to the equivalent element of its superset.
source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T, U> TryIntoKey<U> for T
where 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 S
where T: UncheckedFrom<S>,

§

fn unchecked_into(self) -> T

The counterpart to unchecked_from.
§

impl<T, S> UniqueSaturatedInto<T> for S
where T: Bounded, S: TryInto<T>,

§

fn unique_saturated_into(self) -> T

Consume self to return an equivalent value of T.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> JsonSchemaMaybe for T

§

impl<T> MaybeDebug for T
where T: Debug,

§

impl<T> MaybeRefUnwindSafe for T
where T: RefUnwindSafe,

§

impl<T> Member for T
where T: Send + Sync + Debug + Eq + PartialEq + Clone + 'static,

source§

impl<T> Scalar for T
where T: 'static + Clone + PartialEq + Debug,