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().into_iter().map(|e| e.event).rev().take(n).rev().collect()44}4546fn new_test_ext(balances: Vec<(AccountId, Balance)>) -> sp_io::TestExternalities {47 let mut storage = make_basic_storage();4849 pallet_balances::GenesisConfig::<Runtime> { balances }50 .assimilate_storage(&mut storage)51 .unwrap();5253 let mut ext = sp_io::TestExternalities::new(storage);54 ext.execute_with(|| System::set_block_number(1));55 ext56}5758#[cfg(feature = "collator-selection")]59fn make_basic_storage() -> Storage {60 use sp_core::{sr25519};61 use sp_runtime::traits::{IdentifyAccount, Verify};62 use crate::{AccountId, Signature, SessionKeys, CollatorSelectionConfig, SessionConfig};6364 type AccountPublic = <Signature as Verify>::Signer;6566 fn get_account_id_from_seed<TPublic: Public>(seed: &str) -> AccountId67 where68 AccountPublic: From<<TPublic::Pair as Pair>::Public>,69 {70 AccountPublic::from(get_from_seed::<TPublic>(seed)).into_account()71 }7273 let accounts = vec!["Alice", "Bob"];74 let keys = accounts75 .iter()76 .map(|&acc| {77 let account_id = get_account_id_from_seed::<sr25519::Public>(acc);78 (79 account_id.clone(),80 account_id,81 SessionKeys {82 aura: get_from_seed::<AuraId>(acc),83 },84 )85 })86 .collect::<Vec<_>>();87 let invulnerables = accounts88 .iter()89 .map(|acc| get_account_id_from_seed::<sr25519::Public>(acc))90 .collect::<Vec<_>>();9192 let cfg = GenesisConfig {93 collator_selection: CollatorSelectionConfig { invulnerables },94 session: SessionConfig { keys },95 parachain_info: ParachainInfoConfig {96 parachain_id: PARA_ID.into(),97 },98 ..GenesisConfig::default()99 };100101 cfg.build_storage().unwrap().into()102}103104#[cfg(not(feature = "collator-selection"))]105fn make_basic_storage() -> Storage {106 use crate::AuraConfig;107108 let cfg = GenesisConfig {109 aura: AuraConfig {110 authorities: vec![111 get_from_seed::<AuraId>("Alice"),112 get_from_seed::<AuraId>("Bob"),113 ],114 },115 parachain_info: ParachainInfoConfig {116 parachain_id: PARA_ID.into(),117 },118 ..GenesisConfig::default()119 };120121 cfg.build_storage().unwrap().into()122}