git.delta.rocks / unique-network / refs/commits / 63434ce9ace8

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()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}