Skip to content
This repository has been archived by the owner on Nov 15, 2023. It is now read-only.

Replace parachain/parathread boolean by enum #6198

Merged
merged 17 commits into from
Nov 1, 2022
7 changes: 4 additions & 3 deletions runtime/common/src/paras_registrar.rs
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ use sp_std::{prelude::*, result};
use crate::traits::{OnSwap, Registrar};
pub use pallet::*;
use parity_scale_codec::{Decode, Encode};
use runtime_parachains::paras::ParaType;
use scale_info::TypeInfo;
use sp_runtime::{
traits::{CheckedSub, Saturating},
Expand Down Expand Up @@ -570,7 +571,7 @@ impl<T: Config> Pallet<T> {
};
ensure!(paras::Pallet::<T>::lifecycle(id).is_none(), Error::<T>::AlreadyRegistered);
let (genesis, deposit) =
Self::validate_onboarding_data(genesis_head, validation_code, false)?;
Self::validate_onboarding_data(genesis_head, validation_code, ParaType::ParaThread)?;
let deposit = deposit_override.unwrap_or(deposit);

if let Some(additional) = deposit.checked_sub(&deposited) {
Expand Down Expand Up @@ -613,7 +614,7 @@ impl<T: Config> Pallet<T> {
fn validate_onboarding_data(
genesis_head: HeadData,
validation_code: ValidationCode,
parachain: bool,
paratype: ParaType,
) -> Result<(ParaGenesisArgs, BalanceOf<T>), sp_runtime::DispatchError> {
let config = configuration::Pallet::<T>::config();
ensure!(validation_code.0.len() > 0, Error::<T>::EmptyCode);
Expand All @@ -628,7 +629,7 @@ impl<T: Config> Pallet<T> {
.saturating_add(per_byte_fee.saturating_mul((genesis_head.0.len() as u32).into()))
.saturating_add(per_byte_fee.saturating_mul((validation_code.0.len() as u32).into()));

Ok((ParaGenesisArgs { genesis_head, validation_code, parachain }, deposit))
Ok((ParaGenesisArgs { genesis_head, validation_code, paratype }, deposit))
}

/// Swap a parachain and parathread, which involves scheduling an appropriate lifecycle update.
Expand Down
22 changes: 15 additions & 7 deletions runtime/parachains/src/paras/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -291,8 +291,15 @@ pub struct ParaGenesisArgs {
pub genesis_head: HeadData,
/// The initial validation code to use.
pub validation_code: ValidationCode,
/// True if parachain, false if parathread.
pub parachain: bool,
/// Parachain or Parathread.
pub paratype: ParaType,
}

#[derive(PartialEq, Eq, Clone, Encode, Decode, RuntimeDebug, TypeInfo)]
#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]
pub enum ParaType {
This conversation was marked as resolved.
Show resolved Hide resolved
ParaChain,
This conversation was marked as resolved.
Show resolved Hide resolved
ParaThread,
This conversation was marked as resolved.
Show resolved Hide resolved
}

/// This enum describes a reason why a particular PVF pre-checking vote was initiated. When the
Expand Down Expand Up @@ -2021,11 +2028,12 @@ impl<T: Config> Pallet<T> {
id: ParaId,
genesis_data: &ParaGenesisArgs,
) {
if genesis_data.parachain {
parachains.add(id);
ParaLifecycles::<T>::insert(&id, ParaLifecycle::Parachain);
} else {
ParaLifecycles::<T>::insert(&id, ParaLifecycle::Parathread);
match genesis_data.paratype {
ParaType::ParaChain => {
parachains.add(id);
ParaLifecycles::<T>::insert(&id, ParaLifecycle::Parachain);
},
ParaType::ParaThread => ParaLifecycles::<T>::insert(&id, ParaLifecycle::Parathread),
}

// HACK: see the notice in `schedule_para_initialize`.
Expand Down