git.delta.rocks / unique-network / refs/commits / 4e84fdd5539f

difftreelog

source

runtime/common/tests/mod.rs3.5 KiBsourcehistory
1// Copyright 2019-2022 Unique Network (Gibraltar) Ltd.2// This file is part of Unique Network.34// Unique Network is free software: you can redistribute it and/or modify5// it under the terms of the GNU General Public License as published by6// the Free Software Foundation, either version 3 of the License, or7// (at your option) any later version.89// Unique Network is distributed in the hope that it will be useful,10// but WITHOUT ANY WARRANTY; without even the implied warranty of11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the12// GNU General Public License for more details.1314// You should have received a copy of the GNU General Public License15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.1617use 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"))]29/// PARA_ID for Opal/Sapphire/Quartz30const PARA_ID: u32 = 2095;3132#[cfg(feature = "unique-runtime")]33/// PARA_ID for Unique34const 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}