git.delta.rocks / unique-network / refs/commits / 1c142c5374ba

difftreelog

revert chain_spec.rs

Igor Kozyrev2021-09-20parent: #ce8799a.patch.diff
in: master

1 file changed

modifiednode/cli/src/chain_spec.rsdiffbeforeafterboth
before · node/cli/src/chain_spec.rs
1//2// This file is subject to the terms and conditions defined in3// file 'LICENSE', which is part of this source code package.4//56use cumulus_primitives_core::ParaId;7use nft_runtime::*;8use nft_data_structs::*;9use sc_chain_spec::{ChainSpecExtension, ChainSpecGroup};10use sc_service::ChainType;11use sp_core::{sr25519, Pair, Public};12use sp_runtime::traits::{IdentifyAccount, Verify};13use std::collections::BTreeMap;1415use serde::{Deserialize, Serialize};16use serde_json::map::Map;1718/// Specialized `ChainSpec`. This is a specialization of the general Substrate ChainSpec type.19pub type ChainSpec = sc_service::GenericChainSpec<nft_runtime::GenesisConfig, Extensions>;2021/// Helper function to generate a crypto pair from seed22pub fn get_from_seed<TPublic: Public>(seed: &str) -> <TPublic::Pair as Pair>::Public {23	TPublic::Pair::from_string(&format!("//{}", seed), None)24		.expect("static values are valid; qed")25		.public()26}2728/// The extensions for the [`ChainSpec`].29#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, ChainSpecGroup, ChainSpecExtension)]30#[serde(deny_unknown_fields)]31pub struct Extensions {32	/// The relay chain of the Parachain.33	pub relay_chain: String,34	/// The id of the Parachain.35	pub para_id: u32,36}3738impl Extensions {39	/// Try to get the extension from the given `ChainSpec`.40	pub fn try_get(chain_spec: &dyn sc_service::ChainSpec) -> Option<&Self> {41		sc_chain_spec::get_extension(chain_spec.extensions())42	}43}4445type AccountPublic = <Signature as Verify>::Signer;4647/// Helper function to generate an account ID from seed48pub fn get_account_id_from_seed<TPublic: Public>(seed: &str) -> AccountId49where50	AccountPublic: From<<TPublic::Pair as Pair>::Public>,51{52	AccountPublic::from(get_from_seed::<TPublic>(seed)).into_account()53}5455pub fn development_config(id: ParaId) -> ChainSpec {56	let mut properties = Map::new();57	properties.insert("tokenSymbol".into(), "testUNQ".into());58	properties.insert("tokenDecimals".into(), 15.into());59	properties.insert("ss58Format".into(), 42.into()); // Generic Substrate wildcard (SS58 checksum preimage)6061	ChainSpec::from_genesis(62		// Name63		"Development",64		// ID65		"dev",66		ChainType::Local,67		move || {68			testnet_genesis(69				// Sudo account70				get_account_id_from_seed::<sr25519::Public>("Alice"),71				vec![72					get_from_seed::<AuraId>("Alice"),73					get_from_seed::<AuraId>("Bob"),74				],75				// Pre-funded accounts76				vec![77					get_account_id_from_seed::<sr25519::Public>("Alice"),78					get_account_id_from_seed::<sr25519::Public>("Bob"),79				],80				id,81			)82		},83		// Bootnodes84		vec![],85		// Telemetry86		None,87		// Protocol ID88		None,89		// Properties90		Some(properties),91		// Extensions92		Extensions {93			relay_chain: "rococo-dev".into(),94			para_id: id.into(),95		},96	)97}9899pub fn rococo_local_testnet_config(id: ParaId) -> ChainSpec {100	ChainSpec::from_genesis(101		// Name102		"Unique Testnet @ Rococo Local",103		// ID104		"unique_testnet_rococo",105		ChainType::Local,106		move || {107			testnet_genesis(108				// Sudo account109				get_account_id_from_seed::<sr25519::Public>("Alice"),110				vec![111					get_from_seed::<AuraId>("Alice"),112					get_from_seed::<AuraId>("Bob"),113				],114				// Pre-funded accounts115				vec![116					get_account_id_from_seed::<sr25519::Public>("Alice"),117					get_account_id_from_seed::<sr25519::Public>("Bob"),118					get_account_id_from_seed::<sr25519::Public>("Charlie"),119					get_account_id_from_seed::<sr25519::Public>("Dave"),120					get_account_id_from_seed::<sr25519::Public>("Eve"),121					get_account_id_from_seed::<sr25519::Public>("Ferdie"),122					get_account_id_from_seed::<sr25519::Public>("Alice//stash"),123					get_account_id_from_seed::<sr25519::Public>("Bob//stash"),124					get_account_id_from_seed::<sr25519::Public>("Charlie//stash"),125					get_account_id_from_seed::<sr25519::Public>("Dave//stash"),126					get_account_id_from_seed::<sr25519::Public>("Eve//stash"),127					get_account_id_from_seed::<sr25519::Public>("Ferdie//stash"),128				],129				id,130			)131		},132		// Bootnodes133		vec![],134		// Telemetry135		None,136		// Protocol ID137		None,138		// Properties139		None,140		// Extensions141		Extensions {142			relay_chain: "rococo-local".into(),143			para_id: id.into(),144		},145	)146}147148pub fn westend_local_testnet_config(id: ParaId) -> ChainSpec {149	let mut properties = Map::new();150	properties.insert("tokenSymbol".into(), "OPLW".into());151	properties.insert("tokenDecimals".into(), 15.into());152	properties.insert("ss58Format".into(), 42.into()); // Generic Substrate wildcard (SS58 checksum preimage)153	154	ChainSpec::from_genesis(155		// Name156		"Unique Testnet @ Westend Local",157		// ID158		"unique_testnet_westend",159		ChainType::Local,160		move || {161			testnet_genesis(162				// Sudo account163				get_account_id_from_seed::<sr25519::Public>("Alice"),164				vec![165					get_from_seed::<AuraId>("Alice"),166					get_from_seed::<AuraId>("Bob"),167					get_from_seed::<AuraId>("Charlie"),168					get_from_seed::<AuraId>("Dave"),169					get_from_seed::<AuraId>("Eve"),170				],171				// Pre-funded accounts172				vec![173					get_account_id_from_seed::<sr25519::Public>("Alice"),174					get_account_id_from_seed::<sr25519::Public>("Bob"),175					get_account_id_from_seed::<sr25519::Public>("Charlie"),176					get_account_id_from_seed::<sr25519::Public>("Dave"),177					get_account_id_from_seed::<sr25519::Public>("Eve"),178					get_account_id_from_seed::<sr25519::Public>("Ferdie"),179					get_account_id_from_seed::<sr25519::Public>("Alice//stash"),180					get_account_id_from_seed::<sr25519::Public>("Bob//stash"),181					get_account_id_from_seed::<sr25519::Public>("Charlie//stash"),182					get_account_id_from_seed::<sr25519::Public>("Dave//stash"),183					get_account_id_from_seed::<sr25519::Public>("Eve//stash"),184					get_account_id_from_seed::<sr25519::Public>("Ferdie//stash"),185				],186				id,187			)188		},189		// Bootnodes190		vec![],191		// Telemetry192		None,193		// Protocol ID194		None,195		// Properties196		Some(properties),197		// Extensions198		Extensions {199			relay_chain: "westend-local".into(),200			para_id: id.into(),201		},202	)203}204205fn testnet_genesis(206	root_key: AccountId,207	initial_authorities: Vec<AuraId>,208	endowed_accounts: Vec<AccountId>,209	id: ParaId,210) -> GenesisConfig {211	let vested_accounts = vec![get_account_id_from_seed::<sr25519::Public>("Bob")];212213	GenesisConfig {214		system: nft_runtime::SystemConfig {215			code: nft_runtime::WASM_BINARY216				.expect("WASM binary was not build, please build it!")217				.to_vec(),218			changes_trie_config: Default::default(),219		},220		balances: BalancesConfig {221			balances: endowed_accounts222				.iter()223				.cloned()224				.map(|k| (k, 1 << 70))225				.collect(),226		},227		treasury: Default::default(),228		sudo: SudoConfig { key: root_key },229		vesting: VestingConfig {230			vesting: vested_accounts231				.iter()232				.cloned()233				.map(|k| (k, 1000, 100, 1 << 98))234				.collect(),235		},236		nft: NftConfig {237			collection_id: vec![(238				1,239				Collection {240					owner: get_account_id_from_seed::<sr25519::Public>("Alice"),241					mode: CollectionMode::NFT,242					access: AccessMode::Normal,243					decimal_points: 0,244					name: vec![],245					description: vec![],246					token_prefix: vec![],247					mint_mode: false,248					offchain_schema: vec![],249					schema_version: SchemaVersion::default(),250					sponsorship: SponsorshipState::Confirmed(get_account_id_from_seed::<251						sr25519::Public,252					>("Alice")),253					const_on_chain_schema: vec![],254					variable_on_chain_schema: vec![],255					limits: CollectionLimits::default(),256					meta_update_permission: MetaUpdatePermission::ItemOwner,257					transfers_enabled: true,258				},259			)],260			nft_item_id: vec![],261			fungible_item_id: vec![],262			refungible_item_id: vec![],263		},264		parachain_info: nft_runtime::ParachainInfoConfig { parachain_id: id },265		aura: nft_runtime::AuraConfig {266			authorities: initial_authorities,267		},268		aura_ext: Default::default(),269		evm: EVMConfig {270			accounts: BTreeMap::new(),271		},272		ethereum: EthereumConfig {},273	}274}