pub type Paras = Pallet<Runtime>;
Aliased Type§
struct Paras(/* private fields */);
Implementations
Source§impl<T> Pallet<T>where
T: Config,
impl<T> Pallet<T>where
T: Config,
Sourcepub fn sorted_para_heads() -> Vec<(u32, Vec<u8>)>
pub fn sorted_para_heads() -> Vec<(u32, Vec<u8>)>
Get a list of the first MAX_PARA_HEADS
para heads sorted by para_id.
This method is likely to be removed in the future.
Sourcepub fn can_schedule_para_initialize(id: &Id) -> bool
pub fn can_schedule_para_initialize(id: &Id) -> bool
Verify that schedule_para_initialize
can be called successfully.
Returns false if para is already registered in the system.
Sourcepub fn lifecycle(id: Id) -> Option<ParaLifecycle>
pub fn lifecycle(id: Id) -> Option<ParaLifecycle>
Returns the current lifecycle state of the para.
Sourcepub fn is_valid_para(id: Id) -> bool
pub fn is_valid_para(id: Id) -> bool
Returns whether the given ID refers to a valid para.
Paras that are onboarding or offboarding are not included.
Sourcepub fn is_offboarding(id: Id) -> bool
pub fn is_offboarding(id: Id) -> bool
Returns whether the given ID refers to a para that is offboarding.
An invalid or non-offboarding para ID will return false
.
Sourcepub fn is_parachain(id: Id) -> bool
pub fn is_parachain(id: Id) -> bool
Whether a para ID corresponds to any live lease holding parachain.
Includes lease holding parachains which will downgrade to a on-demand parachains in the future.
Sourcepub fn is_parathread(id: Id) -> bool
pub fn is_parathread(id: Id) -> bool
Whether a para ID corresponds to any live parathread (on-demand parachain).
Includes on-demand parachains which will upgrade to lease holding parachains in the future.
Sourcepub fn test_on_new_session()
pub fn test_on_new_session()
Test function for triggering a new session in this pallet.
pub fn heads_insert(para_id: &Id, head_data: HeadData)
Source§impl<T> Pallet<T>where
T: Config,
impl<T> Pallet<T>where
T: Config,
Sourcepub fn force_set_current_code(
origin: <T as Config>::RuntimeOrigin,
para: Id,
new_code: ValidationCode,
) -> Result<(), DispatchError>
pub fn force_set_current_code( origin: <T as Config>::RuntimeOrigin, para: Id, new_code: ValidationCode, ) -> Result<(), DispatchError>
Set the storage for the parachain validation code immediately.
Sourcepub fn force_set_current_head(
origin: <T as Config>::RuntimeOrigin,
para: Id,
new_head: HeadData,
) -> Result<(), DispatchError>
pub fn force_set_current_head( origin: <T as Config>::RuntimeOrigin, para: Id, new_head: HeadData, ) -> Result<(), DispatchError>
Set the storage for the current parachain head data immediately.
Sourcepub fn force_schedule_code_upgrade(
origin: <T as Config>::RuntimeOrigin,
para: Id,
new_code: ValidationCode,
relay_parent_number: <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number,
) -> Result<(), DispatchError>
pub fn force_schedule_code_upgrade( origin: <T as Config>::RuntimeOrigin, para: Id, new_code: ValidationCode, relay_parent_number: <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number, ) -> Result<(), DispatchError>
Schedule an upgrade as if it was scheduled in the given relay parent block.
Sourcepub fn force_note_new_head(
origin: <T as Config>::RuntimeOrigin,
para: Id,
new_head: HeadData,
) -> Result<(), DispatchError>
pub fn force_note_new_head( origin: <T as Config>::RuntimeOrigin, para: Id, new_head: HeadData, ) -> Result<(), DispatchError>
Note a new block head for para within the context of the current block.
Sourcepub fn force_queue_action(
origin: <T as Config>::RuntimeOrigin,
para: Id,
) -> Result<(), DispatchError>
pub fn force_queue_action( origin: <T as Config>::RuntimeOrigin, para: Id, ) -> Result<(), DispatchError>
Put a parachain directly into the next session’s action queue. We can’t queue it any sooner than this without going into the initializer…
Sourcepub fn add_trusted_validation_code(
origin: <T as Config>::RuntimeOrigin,
validation_code: ValidationCode,
) -> Result<(), DispatchError>
pub fn add_trusted_validation_code( origin: <T as Config>::RuntimeOrigin, validation_code: ValidationCode, ) -> Result<(), DispatchError>
Adds the validation code to the storage.
The code will not be added if it is already present. Additionally, if PVF pre-checking is running for that code, it will be instantly accepted.
Otherwise, the code will be added into the storage. Note that the code will be added
into storage with reference count 0. This is to account the fact that there are no users
for this code yet. The caller will have to make sure that this code eventually gets
used by some parachain or removed from the storage to avoid storage leaks. For the
latter prefer to use the poke_unused_validation_code
dispatchable to raw storage
manipulation.
This function is mainly meant to be used for upgrading parachains that do not follow the go-ahead signal while the PVF pre-checking feature is enabled.
Sourcepub fn poke_unused_validation_code(
origin: <T as Config>::RuntimeOrigin,
validation_code_hash: ValidationCodeHash,
) -> Result<(), DispatchError>
pub fn poke_unused_validation_code( origin: <T as Config>::RuntimeOrigin, validation_code_hash: ValidationCodeHash, ) -> Result<(), DispatchError>
Remove the validation code from the storage iff the reference count is 0.
This is better than removing the storage directly, because it will not remove the code that was suddenly got used by some parachain while this dispatchable was pending dispatching.
Sourcepub fn include_pvf_check_statement(
origin: <T as Config>::RuntimeOrigin,
stmt: PvfCheckStatement,
signature: Signature,
) -> Result<PostDispatchInfo, DispatchErrorWithPostInfo<PostDispatchInfo>>
pub fn include_pvf_check_statement( origin: <T as Config>::RuntimeOrigin, stmt: PvfCheckStatement, signature: Signature, ) -> Result<PostDispatchInfo, DispatchErrorWithPostInfo<PostDispatchInfo>>
Includes a statement for a PVF pre-checking vote. Potentially, finalizes the vote and enacts the results if that was the last vote before achieving the supermajority.
Sourcepub fn force_set_most_recent_context(
origin: <T as Config>::RuntimeOrigin,
para: Id,
context: <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number,
) -> Result<(), DispatchError>
pub fn force_set_most_recent_context( origin: <T as Config>::RuntimeOrigin, para: Id, context: <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number, ) -> Result<(), DispatchError>
Set the storage for the current parachain head data immediately.
Trait Implementations
Source§impl<T> BeforeAllRuntimeMigrations for Pallet<T>where
T: Config,
impl<T> BeforeAllRuntimeMigrations for Pallet<T>where
T: Config,
Source§fn before_all_runtime_migrations() -> Weight
fn before_all_runtime_migrations() -> Weight
Source§impl<T> Benchmarking for Pallet<T>
impl<T> Benchmarking for Pallet<T>
Source§fn benchmarks(extra: bool) -> Vec<BenchmarkMetadata>
fn benchmarks(extra: bool) -> Vec<BenchmarkMetadata>
Source§fn run_benchmark(
extrinsic: &[u8],
c: &[(BenchmarkParameter, u32)],
whitelist: &[TrackedStorageKey],
verify: bool,
internal_repeats: u32,
) -> Result<Vec<BenchmarkResult>, BenchmarkError>
fn run_benchmark( extrinsic: &[u8], c: &[(BenchmarkParameter, u32)], whitelist: &[TrackedStorageKey], verify: bool, internal_repeats: u32, ) -> Result<Vec<BenchmarkResult>, BenchmarkError>
Source§impl<T> DispatchViewFunction for Pallet<T>where
T: Config,
impl<T> DispatchViewFunction for Pallet<T>where
T: Config,
fn dispatch_view_function<O>(
id: &ViewFunctionId,
input: &mut &[u8],
output: &mut O,
) -> Result<(), ViewFunctionDispatchError>where
O: Output,
Source§impl<T> GetStorageVersion for Pallet<T>where
T: Config,
impl<T> GetStorageVersion for Pallet<T>where
T: Config,
Source§fn in_code_storage_version() -> <Pallet<T> as GetStorageVersion>::InCodeStorageVersion
fn in_code_storage_version() -> <Pallet<T> as GetStorageVersion>::InCodeStorageVersion
storage_version
attribute, or
NoStorageVersionSet
if the attribute is missing.Source§fn on_chain_storage_version() -> StorageVersion
fn on_chain_storage_version() -> StorageVersion
Source§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> Hooks<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
impl<T> Hooks<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
Source§fn on_initialize(_n: BlockNumber) -> Weight
fn on_initialize(_n: BlockNumber) -> Weight
Source§fn on_finalize(_n: BlockNumber)
fn on_finalize(_n: BlockNumber)
Source§fn on_idle(_n: BlockNumber, _remaining_weight: Weight) -> Weight
fn on_idle(_n: BlockNumber, _remaining_weight: Weight) -> Weight
Hooks::on_finalize
). Read moreSource§fn on_poll(_n: BlockNumber, _weight: &mut WeightMeter)
fn on_poll(_n: BlockNumber, _weight: &mut WeightMeter)
Source§fn on_runtime_upgrade() -> Weight
fn on_runtime_upgrade() -> Weight
Executive
pallet. Read moreSource§fn try_state(_n: BlockNumber) -> Result<(), DispatchError>
fn try_state(_n: BlockNumber) -> Result<(), DispatchError>
Source§fn pre_upgrade() -> Result<Vec<u8>, DispatchError>
fn pre_upgrade() -> Result<Vec<u8>, DispatchError>
Source§fn post_upgrade(_state: Vec<u8>) -> Result<(), DispatchError>
fn post_upgrade(_state: Vec<u8>) -> Result<(), DispatchError>
Source§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
Source§fn integrity_test()
fn integrity_test()
Source§impl<T> IntegrityTest for Pallet<T>where
T: Config,
impl<T> IntegrityTest for Pallet<T>where
T: Config,
Source§impl<T> OffchainWorker<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
impl<T> OffchainWorker<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
Source§impl<T> OnFinalize<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
impl<T> OnFinalize<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
Source§fn on_finalize(
n: <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number,
)
fn on_finalize( n: <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number, )
Hooks::on_finalize
.Source§impl<T> OnGenesis for Pallet<T>where
T: Config,
impl<T> OnGenesis for Pallet<T>where
T: Config,
Source§fn on_genesis()
fn on_genesis()
Source§impl<T> OnIdle<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
impl<T> OnIdle<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
Source§impl<T> OnInitialize<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
impl<T> OnInitialize<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
Source§fn on_initialize(
n: <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number,
) -> Weight
fn on_initialize( n: <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number, ) -> Weight
Hooks::on_initialize
.Source§impl<T> OnPoll<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
impl<T> OnPoll<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
Source§impl<T> OnRuntimeUpgrade for Pallet<T>where
T: Config,
impl<T> OnRuntimeUpgrade for Pallet<T>where
T: Config,
Source§fn on_runtime_upgrade() -> Weight
fn on_runtime_upgrade() -> Weight
Source§fn pre_upgrade() -> Result<Vec<u8>, DispatchError>
fn pre_upgrade() -> Result<Vec<u8>, DispatchError>
Hooks::pre_upgrade
.Source§fn post_upgrade(state: Vec<u8>) -> Result<(), DispatchError>
fn post_upgrade(state: Vec<u8>) -> Result<(), DispatchError>
Hooks::post_upgrade
.Source§fn try_on_runtime_upgrade(checks: bool) -> Result<Weight, DispatchError>
fn try_on_runtime_upgrade(checks: bool) -> Result<Weight, DispatchError>
pre_upgrade
->
on_runtime_upgrade
-> post_upgrade
hooks for a migration. Read moreSource§impl<T> PalletInfoAccess for Pallet<T>where
T: Config,
impl<T> PalletInfoAccess for Pallet<T>where
T: Config,
Source§fn module_name() -> &'static str
fn module_name() -> &'static str
Source§fn crate_version() -> CrateVersion
fn crate_version() -> CrateVersion
Source§impl<T> PalletsInfoAccess for Pallet<T>where
T: Config,
impl<T> PalletsInfoAccess for Pallet<T>where
T: Config,
Source§impl<T> StorageInfoTrait for Pallet<T>where
T: Config,
impl<T> StorageInfoTrait for Pallet<T>where
T: Config,
fn storage_info() -> Vec<StorageInfo>
Source§impl<T> TryDecodeEntireStorage for Pallet<T>where
T: Config,
impl<T> TryDecodeEntireStorage for Pallet<T>where
T: Config,
Source§fn try_decode_entire_state() -> Result<usize, Vec<TryDecodeEntireStorageError>>
fn try_decode_entire_state() -> Result<usize, Vec<TryDecodeEntireStorageError>>
Ok(bytes_decoded)
if success.Source§impl<T> TryState<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
impl<T> TryState<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>where
T: Config,
Source§impl<T> ValidateUnsigned for Pallet<T>where
T: Config,
impl<T> ValidateUnsigned for Pallet<T>where
T: Config,
Source§fn validate_unsigned(
_source: TransactionSource,
call: &<Pallet<T> as ValidateUnsigned>::Call,
) -> Result<ValidTransaction, TransactionValidityError>
fn validate_unsigned( _source: TransactionSource, call: &<Pallet<T> as ValidateUnsigned>::Call, ) -> Result<ValidTransaction, TransactionValidityError>
Source§fn pre_dispatch(
_call: &<Pallet<T> as ValidateUnsigned>::Call,
) -> Result<(), TransactionValidityError>
fn pre_dispatch( _call: &<Pallet<T> as ValidateUnsigned>::Call, ) -> Result<(), TransactionValidityError>
Source§impl<T> WhitelistedStorageKeys for Pallet<T>where
T: Config,
impl<T> WhitelistedStorageKeys for Pallet<T>where
T: Config,
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.