Skip to content

Commit 6c5b175

Browse files
committed
freeze function
1 parent 110e940 commit 6c5b175

File tree

1 file changed

+27
-4
lines changed
  • polkadot/runtime/parachains/src/paras

1 file changed

+27
-4
lines changed

polkadot/runtime/parachains/src/paras/mod.rs

+27-4
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,8 @@ use crate::scheduler::common::Assignment;
134134
use serde::{Deserialize, Serialize};
135135

136136
pub use crate::Origin as ParachainOrigin;
137+
use crate::{scheduler, inclusion, dmp};
138+
137139

138140
#[cfg(feature = "runtime-benchmarks")]
139141
pub mod benchmarking;
@@ -611,6 +613,20 @@ impl WeightInfo for TestWeightInfo {
611613
}
612614
}
613615

616+
pub trait FreezeParaStoragesAccess {
617+
type Scheduler: scheduler::Config;
618+
type Inclusion: inclusion::Config;
619+
type Dmp: dmp::Config;
620+
}
621+
622+
pub type SchedulerAccess<T> =
623+
<<T as Config>::FreezeParaStoragesAccess as FreezeParaStoragesAccess>::Scheduler;
624+
pub type InclusionAccess<T> =
625+
<<T as Config>::FreezeParaStoragesAccess as FreezeParaStoragesAccess>::Inclusion;
626+
pub type DmpAccess<T> =
627+
<<T as Config>::FreezeParaStoragesAccess as FreezeParaStoragesAccess>::Dmp;
628+
629+
614630
#[frame_support::pallet]
615631
pub mod pallet {
616632
use super::*;
@@ -655,6 +671,9 @@ pub mod pallet {
655671
///
656672
/// TODO: Remove once coretime is the standard across all chains.
657673
type AssignCoretime: AssignCoretime;
674+
675+
/// Helper trait to access Freeze Parachain related storage
676+
type FreezeParaStoragesAccess: FreezeParaStoragesAccess;
658677
}
659678

660679
#[pallet::event]
@@ -1174,18 +1193,22 @@ pub mod pallet {
11741193
pub fn freeze_parachain(origin: OriginFor<T>, para_id: ParaId) -> DispatchResult {
11751194
ensure_root(origin)?;
11761195
// clean any ongoing activies on the parablock
1177-
crate::scheduler::ClaimQueue::<T>::mutate(|cq|{
1196+
scheduler::ClaimQueue::<SchedulerAccess<T>>::mutate(|cq|{
11781197
for assignments in cq.values_mut() {
1179-
assignments.retain(|&assignment| {
1198+
assignments.retain(|assignment| {
11801199
let assigned_para_id = match assignment {
11811200
Assignment::Bulk(id) => id,
11821201
Assignment::Pool { para_id, ..} => para_id
11831202
};
1184-
para_id != assigned_para_id
1203+
para_id != *assigned_para_id
11851204
})
11861205
}
11871206
});
1188-
// TODO
1207+
1208+
inclusion::PendingAvailability::<InclusionAccess<T>>::remove(para_id);
1209+
dmp::DownwardMessageQueues::<DmpAccess<T>>::remove(para_id);
1210+
dmp::DownwardMessageQueueHeads::<DmpAccess<T>>::remove(para_id);
1211+
11891212
FrozenParas::<T>::mutate(|paras|{
11901213
paras.push(para_id)
11911214
});

0 commit comments

Comments
 (0)