referrerpolicy=no-referrer-when-downgrade

Trait Config

Source
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§

Source

type RuntimeEvent: From<Event<Self>> + IsType<<Self as Config>::RuntimeEvent>

Source

type UnsignedPriority: Get<TransactionPriority>

Source

type NextSessionRotation: EstimateNextSessionRotation<BlockNumberFor<Self>>

Source

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.

Source

type OnNewHead: OnNewHead

Runtime hook for when a parachain head is updated.

Source

type WeightInfo: WeightInfo

Weight information for extrinsics in this pallet.

Source

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.

Source

type Fungible: Mutate<Self::AccountId, Balance: From<BlockNumberFor<Self>>>

The fungible instance used by the runtime.

Source

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.

Source

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.

Implementors§