1234567891011121314151617use sp_runtime::{BuildStorage, Storage};18use sp_core::{Public, Pair};19use sp_std::vec;20use up_common::types::AuraId;21use crate::{Runtime, GenesisConfig, ParachainInfoConfig, RuntimeEvent, System};2223pub use sp_runtime::AccountId32 as AccountId;24pub type Balance = u128;2526pub mod xcm;2728#[cfg(any(feature = "opal-runtime", feature = "quartz-runtime"))]2930const PARA_ID: u32 = 2095;3132#[cfg(feature = "unique-runtime")]3334const PARA_ID: u32 = 2037;3536fn get_from_seed<TPublic: Public>(seed: &str) -> <TPublic::Pair as Pair>::Public {37 TPublic::Pair::from_string(&format!("//{}", seed), None)38 .expect("static values are valid; qed")39 .public()40}4142fn last_events(n: usize) -> Vec<RuntimeEvent> {43 System::events()44 .into_iter()45 .map(|e| e.event)46 .rev()47 .take(n)48 .rev()49 .collect()50}5152fn new_test_ext(balances: Vec<(AccountId, Balance)>) -> sp_io::TestExternalities {53 let mut storage = make_basic_storage();5455 pallet_balances::GenesisConfig::<Runtime> { balances }56 .assimilate_storage(&mut storage)57 .unwrap();5859 let mut ext = sp_io::TestExternalities::new(storage);60 ext.execute_with(|| System::set_block_number(1));61 ext62}6364#[cfg(feature = "collator-selection")]65fn make_basic_storage() -> Storage {66 use sp_core::{sr25519};67 use sp_runtime::traits::{IdentifyAccount, Verify};68 use crate::{AccountId, Signature, SessionKeys, CollatorSelectionConfig, SessionConfig};6970 type AccountPublic = <Signature as Verify>::Signer;7172 fn get_account_id_from_seed<TPublic: Public>(seed: &str) -> AccountId73 where74 AccountPublic: From<<TPublic::Pair as Pair>::Public>,75 {76 AccountPublic::from(get_from_seed::<TPublic>(seed)).into_account()77 }7879 let accounts = vec!["Alice", "Bob"];80 let keys = accounts81 .iter()82 .map(|&acc| {83 let account_id = get_account_id_from_seed::<sr25519::Public>(acc);84 (85 account_id.clone(),86 account_id,87 SessionKeys {88 aura: get_from_seed::<AuraId>(acc),89 },90 )91 })92 .collect::<Vec<_>>();93 let invulnerables = accounts94 .iter()95 .map(|acc| get_account_id_from_seed::<sr25519::Public>(acc))96 .collect::<Vec<_>>();9798 let cfg = GenesisConfig {99 collator_selection: CollatorSelectionConfig { invulnerables },100 session: SessionConfig { keys },101 parachain_info: ParachainInfoConfig {102 parachain_id: PARA_ID.into(),103 },104 ..GenesisConfig::default()105 };106107 cfg.build_storage().unwrap().into()108}109110#[cfg(not(feature = "collator-selection"))]111fn make_basic_storage() -> Storage {112 use crate::AuraConfig;113114 let cfg = GenesisConfig {115 aura: AuraConfig {116 authorities: vec![117 get_from_seed::<AuraId>("Alice"),118 get_from_seed::<AuraId>("Bob"),119 ],120 },121 parachain_info: ParachainInfoConfig {122 parachain_id: PARA_ID.into(),123 },124 ..GenesisConfig::default()125 };126127 cfg.build_storage().unwrap().into()128}