mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-07-09 09:27:24 +00:00
Parachain Onboarding Extras (#2713)
* clear_lease * schedule upgrade and downgrade * fix compile * comments
This commit is contained in:
@@ -25,7 +25,9 @@ use frame_support::{
|
||||
};
|
||||
use frame_system::ensure_root;
|
||||
use runtime_parachains::{
|
||||
configuration, dmp, ump, hrmp, paras::{self, ParaGenesisArgs},
|
||||
configuration, dmp, ump, hrmp,
|
||||
ParaLifecycle,
|
||||
paras::{self, ParaGenesisArgs},
|
||||
};
|
||||
use primitives::v1::Id as ParaId;
|
||||
use parity_scale_codec::Encode;
|
||||
@@ -49,6 +51,14 @@ decl_error! {
|
||||
DefinitelyNotWasm,
|
||||
/// Could not schedule para cleanup.
|
||||
CouldntCleanup,
|
||||
/// Not a parathread.
|
||||
NotParathread,
|
||||
/// Not a parachain.
|
||||
NotParachain,
|
||||
/// Cannot upgrade parathread.
|
||||
CannotUpgrade,
|
||||
/// Cannot downgrade parachain.
|
||||
CannotDowngrade,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -78,6 +88,26 @@ decl_module! {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
/// Upgrade a parathread to a parachain
|
||||
#[weight = (1_000, DispatchClass::Operational)]
|
||||
pub fn sudo_schedule_parathread_upgrade(origin, id: ParaId) -> DispatchResult {
|
||||
ensure_root(origin)?;
|
||||
// Para backend should think this is a parathread...
|
||||
ensure!(paras::Module::<T>::lifecycle(id) == Some(ParaLifecycle::Parathread), Error::<T>::NotParathread);
|
||||
runtime_parachains::schedule_parathread_upgrade::<T>(id).map_err(|_| Error::<T>::CannotUpgrade)?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
/// Downgrade a parachain to a parathread
|
||||
#[weight = (1_000, DispatchClass::Operational)]
|
||||
pub fn sudo_schedule_parachain_downgrade(origin, id: ParaId) -> DispatchResult {
|
||||
ensure_root(origin)?;
|
||||
// Para backend should think this is a parachain...
|
||||
ensure!(paras::Module::<T>::lifecycle(id) == Some(ParaLifecycle::Parachain), Error::<T>::NotParachain);
|
||||
runtime_parachains::schedule_parachain_downgrade::<T>(id).map_err(|_| Error::<T>::CannotDowngrade)?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
/// Send a downward XCM to the given para.
|
||||
///
|
||||
/// The given parachain should exist and the payload should not exceed the preconfigured size
|
||||
|
||||
Reference in New Issue
Block a user