1234567891011121314151617use sp_runtime::BuildStorage;18use sp_core::{Public, Pair};19use sp_std::vec;20use up_common::types::AuraId;21use crate::{GenesisConfig, ParachainInfoConfig};2223pub mod xcm;2425fn get_from_seed<TPublic: Public>(seed: &str) -> <TPublic::Pair as Pair>::Public {26 TPublic::Pair::from_string(&format!("//{}", seed), None)27 .expect("static values are valid; qed")28 .public()29}3031#[cfg(feature = "collator-selection")]32fn new_test_ext(para_id: u32) -> sp_io::TestExternalities {33 use sp_core::{sr25519};34 use sp_runtime::traits::{IdentifyAccount, Verify};35 use crate::{AccountId, Signature, SessionKeys, CollatorSelectionConfig, SessionConfig};3637 type AccountPublic = <Signature as Verify>::Signer;3839 fn get_account_id_from_seed<TPublic: Public>(seed: &str) -> AccountId40 where41 AccountPublic: From<<TPublic::Pair as Pair>::Public>,42 {43 AccountPublic::from(get_from_seed::<TPublic>(seed)).into_account()44 }4546 let accounts = vec!["Alice", "Bob"];47 let keys = accounts48 .iter()49 .map(|&acc| {50 let account_id = get_account_id_from_seed::<sr25519::Public>(acc);51 (52 account_id.clone(),53 account_id,54 SessionKeys {55 aura: get_from_seed::<AuraId>(acc),56 },57 )58 })59 .collect::<Vec<_>>();60 let invulnerables = accounts61 .iter()62 .map(|acc| get_account_id_from_seed::<sr25519::Public>(acc))63 .collect::<Vec<_>>();6465 let cfg = GenesisConfig {66 collator_selection: CollatorSelectionConfig {67 desired_collators: 2,68 license_bond: 10,69 kick_threshold: 10,70 invulnerables,71 },72 session: SessionConfig { keys },73 parachain_info: ParachainInfoConfig {74 parachain_id: para_id.into(),75 },76 ..GenesisConfig::default()77 };7879 cfg.build_storage().unwrap().into()80}8182#[cfg(not(feature = "collator-selection"))]83fn new_test_ext(para_id: u32) -> sp_io::TestExternalities {84 use crate::AuraConfig;8586 let cfg = GenesisConfig {87 aura: AuraConfig {88 authorities: vec![89 get_from_seed::<AuraId>("Alice"),90 get_from_seed::<AuraId>("Bob"),91 ],92 },93 parachain_info: ParachainInfoConfig {94 parachain_id: para_id.into(),95 },96 ..GenesisConfig::default()97 };9899 cfg.build_storage().unwrap().into()100}