Registrar v1 follow-ups (#1786)

* parachains: use the root origin for mock

* registrar: notify the router module about the cleanup

* add missing call to schedule_para_cleanup
This commit is contained in:
Sergei Shulepov
2020-10-06 13:07:52 +02:00
committed by GitHub
parent a4662104db
commit 96f6b5ae2d
4 changed files with 9 additions and 7 deletions
@@ -33,6 +33,7 @@ use runtime_parachains::{
self, self,
ParaGenesisArgs, ParaGenesisArgs,
}, },
router,
ensure_parachain, ensure_parachain,
Origin, Origin,
}; };
@@ -40,7 +41,7 @@ use runtime_parachains::{
type BalanceOf<T> = type BalanceOf<T> =
<<T as Trait>::Currency as Currency<<T as frame_system::Trait>::AccountId>>::Balance; <<T as Trait>::Currency as Currency<<T as frame_system::Trait>::AccountId>>::Balance;
pub trait Trait: paras::Trait { pub trait Trait: paras::Trait + router::Trait {
/// The aggregated origin type must support the `parachains` origin. We require that we can /// The aggregated origin type must support the `parachains` origin. We require that we can
/// infallibly convert between this origin and the system origin, but in reality, they're the /// infallibly convert between this origin and the system origin, but in reality, they're the
/// same type, we just can't express that to the Rust type system without writing a `where` /// same type, we just can't express that to the Rust type system without writing a `where`
@@ -150,6 +151,7 @@ decl_module! {
let _ = <T as Trait>::Currency::unreserve(&debtor, T::ParathreadDeposit::get()); let _ = <T as Trait>::Currency::unreserve(&debtor, T::ParathreadDeposit::get());
<paras::Module<T>>::schedule_para_cleanup(id); <paras::Module<T>>::schedule_para_cleanup(id);
<router::Module::<T>>::schedule_para_cleanup(id);
Ok(()) Ok(())
} }
@@ -241,6 +243,7 @@ impl<T: Trait> Module<T> {
ensure!(is_parachain, Error::<T>::InvalidChainId); ensure!(is_parachain, Error::<T>::InvalidChainId);
<paras::Module<T>>::schedule_para_cleanup(id); <paras::Module<T>>::schedule_para_cleanup(id);
<router::Module::<T>>::schedule_para_cleanup(id);
Ok(()) Ok(())
} }
@@ -269,7 +272,7 @@ mod tests {
impl_outer_origin! { impl_outer_origin! {
pub enum Origin for Test { pub enum Origin for Test {
paras, runtime_parachains,
} }
} }
+2 -2
View File
@@ -30,7 +30,7 @@ use frame_support::{
weights::Weight, traits::Randomness as RandomnessT, weights::Weight, traits::Randomness as RandomnessT,
}; };
use crate::inclusion; use crate::inclusion;
use crate::paras; use crate as parachains;
/// A test runtime struct. /// A test runtime struct.
#[derive(Clone, Eq, PartialEq)] #[derive(Clone, Eq, PartialEq)]
@@ -38,7 +38,7 @@ pub struct Test;
impl_outer_origin! { impl_outer_origin! {
pub enum Origin for Test { pub enum Origin for Test {
paras parachains
} }
} }
+1 -2
View File
@@ -22,8 +22,7 @@ use primitives::v1::Id as ParaId;
use codec::{Decode, Encode}; use codec::{Decode, Encode};
/// Origin for the parachains. /// Origin for the parachains.
#[derive(PartialEq, Eq, Clone, Encode, Decode)] #[derive(PartialEq, Eq, Clone, Encode, Decode, sp_core::RuntimeDebug)]
#[cfg_attr(feature = "std", derive(Debug))]
pub enum Origin { pub enum Origin {
/// It comes from a parachain. /// It comes from a parachain.
Parachain(ParaId), Parachain(ParaId),
+1 -1
View File
@@ -43,7 +43,7 @@ use sp_core::RuntimeDebug;
#[cfg(feature = "std")] #[cfg(feature = "std")]
use serde::{Serialize, Deserialize}; use serde::{Serialize, Deserialize};
pub use crate::Origin; use crate::Origin;
pub trait Trait: frame_system::Trait + configuration::Trait { pub trait Trait: frame_system::Trait + configuration::Trait {
/// The outer origin type. /// The outer origin type.