pub struct Pallet<T>(/* private fields */);
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 grant_emission_permission(
origin: OriginFor<T>,
grantee: T::AccountId,
allocation: EmissionAllocation<T>,
targets: BoundedBTreeMap<T::AccountId, u16, T::MaxTargetsPerPermission>,
distribution: DistributionControl<T>,
duration: PermissionDuration<T>,
revocation: RevocationTerms<T>,
enforcement: EnforcementAuthority<T>,
) -> DispatchResult
pub fn grant_emission_permission( origin: OriginFor<T>, grantee: T::AccountId, allocation: EmissionAllocation<T>, targets: BoundedBTreeMap<T::AccountId, u16, T::MaxTargetsPerPermission>, distribution: DistributionControl<T>, duration: PermissionDuration<T>, revocation: RevocationTerms<T>, enforcement: EnforcementAuthority<T>, ) -> DispatchResult
Grant a permission for emission delegation
Sourcepub fn revoke_permission(
origin: OriginFor<T>,
permission_id: PermissionId,
) -> DispatchResult
pub fn revoke_permission( origin: OriginFor<T>, permission_id: PermissionId, ) -> DispatchResult
Revoke a permission. The caller must met revocation constraints or be a root key.
Sourcepub fn execute_permission(
origin: OriginFor<T>,
permission_id: PermissionId,
) -> DispatchResult
pub fn execute_permission( origin: OriginFor<T>, permission_id: PermissionId, ) -> DispatchResult
Execute a manual distribution based on permission
Sourcepub fn toggle_permission_accumulation(
origin: OriginFor<T>,
permission_id: PermissionId,
accumulating: bool,
) -> DispatchResult
pub fn toggle_permission_accumulation( origin: OriginFor<T>, permission_id: PermissionId, accumulating: bool, ) -> DispatchResult
Toggle a permission’s accumulation state (enabled/disabled) The caller must be authorized as a controller or be the root key
Sourcepub fn enforcement_execute_permission(
origin: OriginFor<T>,
permission_id: PermissionId,
) -> DispatchResult
pub fn enforcement_execute_permission( origin: OriginFor<T>, permission_id: PermissionId, ) -> DispatchResult
Execute a permission through enforcement authority The caller must be authorized as a controller or be the root key
Set enforcement authority for a permission Only the grantor or root can set enforcement authority
Sourcepub fn grant_curator_permission(
origin: OriginFor<T>,
grantee: T::AccountId,
flags: u32,
cooldown: Option<BlockNumberFor<T>>,
duration: PermissionDuration<T>,
revocation: RevocationTerms<T>,
) -> DispatchResult
pub fn grant_curator_permission( origin: OriginFor<T>, grantee: T::AccountId, flags: u32, cooldown: Option<BlockNumberFor<T>>, duration: PermissionDuration<T>, revocation: RevocationTerms<T>, ) -> DispatchResult
Grant a permission for curator delegation
Sourcepub fn grant_namespace_permission(
origin: OriginFor<T>,
grantee: T::AccountId,
paths: BoundedBTreeSet<NamespacePathInner, T::MaxNamespacesPerPermission>,
duration: PermissionDuration<T>,
revocation: RevocationTerms<T>,
) -> DispatchResult
pub fn grant_namespace_permission( origin: OriginFor<T>, grantee: T::AccountId, paths: BoundedBTreeSet<NamespacePathInner, T::MaxNamespacesPerPermission>, duration: PermissionDuration<T>, revocation: RevocationTerms<T>, ) -> DispatchResult
Grant a permission over namespaces
Sourcepub fn update_emission_permission(
origin: OriginFor<T>,
permission_id: PermissionId,
new_targets: BoundedBTreeMap<T::AccountId, u16, T::MaxTargetsPerPermission>,
new_streams: Option<BoundedBTreeMap<StreamId, Percent, T::MaxStreamsPerPermission>>,
new_distribution_control: Option<DistributionControl<T>>,
) -> DispatchResult
pub fn update_emission_permission( origin: OriginFor<T>, permission_id: PermissionId, new_targets: BoundedBTreeMap<T::AccountId, u16, T::MaxTargetsPerPermission>, new_streams: Option<BoundedBTreeMap<StreamId, Percent, T::MaxStreamsPerPermission>>, new_distribution_control: Option<DistributionControl<T>>, ) -> DispatchResult
Allows Grantor/Grantee to edit stream emission permission
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: Config> GetStorageVersion for Pallet<T>
impl<T: Config> GetStorageVersion for Pallet<T>
Source§type InCodeStorageVersion = StorageVersion
type InCodeStorageVersion = StorageVersion
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>
Source§fn on_finalize(current_block: BlockNumberFor<T>)
fn on_finalize(current_block: BlockNumberFor<T>)
§fn on_initialize(_n: BlockNumber) -> Weight
fn on_initialize(_n: BlockNumber) -> Weight
§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: Config> Permission0Api<<T as Config>::RuntimeOrigin> for Pallet<T>
Implementation of the Permission0Api trait to be used externally
impl<T: Config> Permission0Api<<T as Config>::RuntimeOrigin> for Pallet<T>
Implementation of the Permission0Api trait to be used externally
Source§fn permission_exists(id: &PermissionId) -> bool
fn permission_exists(id: &PermissionId) -> bool
Source§fn revoke_permission(
who: OriginFor<T>,
permission_id: &PermissionId,
) -> DispatchResult
fn revoke_permission( who: OriginFor<T>, permission_id: &PermissionId, ) -> DispatchResult
Source§fn execute_permission(
who: OriginFor<T>,
permission_id: &PermissionId,
) -> DispatchResult
fn execute_permission( who: OriginFor<T>, permission_id: &PermissionId, ) -> DispatchResult
Source§impl<T: Config> Permission0CuratorApi<<T as Config>::AccountId, <T as Config>::RuntimeOrigin, <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>
impl<T: Config> Permission0CuratorApi<<T as Config>::AccountId, <T as Config>::RuntimeOrigin, <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>
Source§fn grant_curator_permission(
grantor: OriginFor<T>,
grantee: T::AccountId,
flags: ApiCuratorPermissions,
cooldown: Option<BlockNumberFor<T>>,
duration: ApiPermissionDuration<BlockNumberFor<T>>,
revocation: ApiRevocationTerms<T::AccountId, BlockNumberFor<T>>,
) -> Result<PermissionId, DispatchError>
fn grant_curator_permission( grantor: OriginFor<T>, grantee: T::AccountId, flags: ApiCuratorPermissions, cooldown: Option<BlockNumberFor<T>>, duration: ApiPermissionDuration<BlockNumberFor<T>>, revocation: ApiRevocationTerms<T::AccountId, BlockNumberFor<T>>, ) -> Result<PermissionId, DispatchError>
Source§fn ensure_curator_permission(
grantee: OriginFor<T>,
flags: ApiCuratorPermissions,
) -> Result<T::AccountId, DispatchError>
fn ensure_curator_permission( grantee: OriginFor<T>, flags: ApiCuratorPermissions, ) -> Result<T::AccountId, DispatchError>
Source§fn get_curator_permission(grantee: &T::AccountId) -> Option<PermissionId>
fn get_curator_permission(grantee: &T::AccountId) -> Option<PermissionId>
grantee
].Source§impl<T: Config> Permission0EmissionApi<<T as Config>::AccountId, <T as Config>::RuntimeOrigin, <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number, <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance, <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::NegativeImbalance> for Pallet<T>
impl<T: Config> Permission0EmissionApi<<T as Config>::AccountId, <T as Config>::RuntimeOrigin, <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number, <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance, <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::NegativeImbalance> for Pallet<T>
Source§fn grant_emission_permission(
grantor: T::AccountId,
grantee: T::AccountId,
allocation: ApiEmissionAllocation<BalanceOf<T>>,
targets: Vec<(T::AccountId, u16)>,
distribution: ApiDistributionControl<BalanceOf<T>, BlockNumberFor<T>>,
duration: ApiPermissionDuration<BlockNumberFor<T>>,
revocation: ApiRevocationTerms<T::AccountId, BlockNumberFor<T>>,
enforcement: ApiEnforcementAuthority<T::AccountId>,
) -> Result<PermissionId, DispatchError>
fn grant_emission_permission( grantor: T::AccountId, grantee: T::AccountId, allocation: ApiEmissionAllocation<BalanceOf<T>>, targets: Vec<(T::AccountId, u16)>, distribution: ApiDistributionControl<BalanceOf<T>, BlockNumberFor<T>>, duration: ApiPermissionDuration<BlockNumberFor<T>>, revocation: ApiRevocationTerms<T::AccountId, BlockNumberFor<T>>, enforcement: ApiEnforcementAuthority<T::AccountId>, ) -> Result<PermissionId, DispatchError>
Source§fn accumulate_emissions(
agent: &T::AccountId,
stream: &StreamId,
amount: &mut NegativeImbalanceOf<T>,
)
fn accumulate_emissions( agent: &T::AccountId, stream: &StreamId, amount: &mut NegativeImbalanceOf<T>, )
Source§fn process_auto_distributions(current_block: BlockNumberFor<T>)
fn process_auto_distributions(current_block: BlockNumberFor<T>)
Source§fn get_accumulated_amount(
permission_id: &PermissionId,
stream: &StreamId,
) -> BalanceOf<T>
fn get_accumulated_amount( permission_id: &PermissionId, stream: &StreamId, ) -> BalanceOf<T>
Source§impl<T: Config> Permission0NamespacesApi<<T as Config>::AccountId, NamespacePath> for Pallet<T>
impl<T: Config> Permission0NamespacesApi<<T as Config>::AccountId, NamespacePath> for Pallet<T>
Source§fn is_delegating_namespace(grantor: &T::AccountId, path: &NamespacePath) -> bool
fn is_delegating_namespace(grantor: &T::AccountId, path: &NamespacePath) -> bool
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§
§impl<T> AnySync for T
impl<T> AnySync for T
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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<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<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
key
and return true
if they are equal.§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> 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> 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
.