pub trait Config:
Config
+ Config
+ Config
+ CreateBare<Call<Self>>
+ Config<RuntimeEvent: From<Event<Self>>> {
type RuntimeEvent: From<Event<Self>> + IsType<<Self as Config>::RuntimeEvent>;
type UnsignedPriority: Get<TransactionPriority>;
type NextSessionRotation: EstimateNextSessionRotation<BlockNumberFor<Self>>;
type QueueFootprinter: QueueFootprinter<Origin = UmpQueueId>;
type OnNewHead: OnNewHead;
type WeightInfo: WeightInfo;
type AssignCoretime: AssignCoretime;
type Fungible: Mutate<Self::AccountId, Balance: From<BlockNumberFor<Self>>>;
type CooldownRemovalMultiplier: Get<<<Self as Config>::Fungible as Inspect<AccountIdFor<Self>>>::Balance>;
type AuthorizeCurrentCodeOrigin: EnsureOriginWithArg<Self::RuntimeOrigin, ParaId>;
}
Expand description
Configuration trait of this pallet.
The main purpose of this trait is to act as an interface between this pallet and the runtime in which it is embedded in. A type, function, or constant in this trait is essentially left to be configured by the runtime that includes this pallet.
Consequently, a runtime that wants to include this pallet must implement this trait.
Required Associated Types§
type RuntimeEvent: From<Event<Self>> + IsType<<Self as Config>::RuntimeEvent>
type UnsignedPriority: Get<TransactionPriority>
type NextSessionRotation: EstimateNextSessionRotation<BlockNumberFor<Self>>
Sourcetype QueueFootprinter: QueueFootprinter<Origin = UmpQueueId>
type QueueFootprinter: QueueFootprinter<Origin = UmpQueueId>
Retrieve how many UMP messages are enqueued for this para-chain.
This is used to judge whether or not a para-chain can offboard. Per default this should
be set to the ParaInclusion
pallet.
Sourcetype WeightInfo: WeightInfo
type WeightInfo: WeightInfo
Weight information for extrinsics in this pallet.
Sourcetype AssignCoretime: AssignCoretime
type AssignCoretime: AssignCoretime
Runtime hook for assigning coretime for a given parachain.
This is only used at genesis or by root.
TODO: Remove once coretime is the standard across all chains.
Sourcetype Fungible: Mutate<Self::AccountId, Balance: From<BlockNumberFor<Self>>>
type Fungible: Mutate<Self::AccountId, Balance: From<BlockNumberFor<Self>>>
The fungible instance used by the runtime.
Sourcetype CooldownRemovalMultiplier: Get<<<Self as Config>::Fungible as Inspect<AccountIdFor<Self>>>::Balance>
type CooldownRemovalMultiplier: Get<<<Self as Config>::Fungible as Inspect<AccountIdFor<Self>>>::Balance>
Multiplier to determine the cost of removing upgrade cooldown.
After a parachain upgrades their runtime, an upgrade cooldown is applied
(configuration::HostConfiguration::validation_upgrade_cooldown
). This cooldown
exists to prevent spamming the relay chain with runtime upgrades. But as life is going
on, mistakes can happen and a consequent may be required. The cooldown period can be
removed by using Pallet::remove_upgrade_cooldown
. This dispatchable will use this
multiplier to determine the cost for removing the upgrade cooldown. Time left for the
cooldown multiplied with this multiplier determines the cost.
Sourcetype AuthorizeCurrentCodeOrigin: EnsureOriginWithArg<Self::RuntimeOrigin, ParaId>
type AuthorizeCurrentCodeOrigin: EnsureOriginWithArg<Self::RuntimeOrigin, ParaId>
The origin that can authorize Pallet::authorize_force_set_current_code_hash
.
In the end this allows Pallet::apply_authorized_force_set_current_code
to force set
the current code without paying any fee. So, the origin should be chosen with care.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.