git.delta.rocks / unique-network / refs/commits / 89d693c101e5

difftreelog

source

node/src/chain_spec.rs4.0 KiBsourcehistory
1use sp_core::{Pair, Public, sr25519};2use nft_runtime::{3	AccountId, AuraConfig, BalancesConfig, GenesisConfig, GrandpaConfig,4	SudoConfig, SystemConfig, WASM_BINARY, Signature5};6use sp_consensus_aura::sr25519::AuthorityId as AuraId;7use sp_finality_grandpa::AuthorityId as GrandpaId;8use sp_runtime::traits::{Verify, IdentifyAccount};9use sc_service::ChainType;1011use nft_runtime::{ContractsConfig, ContractsSchedule};1213// Note this is the URL for the telemetry server14//const STAGING_TELEMETRY_URL: &str = "wss://telemetry.polkadot.io/submit/";1516/// Specialized `ChainSpec`. This is a specialization of the general Substrate ChainSpec type.17pub type ChainSpec = sc_service::GenericChainSpec<GenesisConfig>;1819/// Helper function to generate a crypto pair from seed20pub fn get_from_seed<TPublic: Public>(seed: &str) -> <TPublic::Pair as Pair>::Public {21	TPublic::Pair::from_string(&format!("//{}", seed), None)22		.expect("static values are valid; qed")23		.public()24}2526type AccountPublic = <Signature as Verify>::Signer;2728/// Helper function to generate an account ID from seed29pub fn get_account_id_from_seed<TPublic: Public>(seed: &str) -> AccountId where30	AccountPublic: From<<TPublic::Pair as Pair>::Public>31{32	AccountPublic::from(get_from_seed::<TPublic>(seed)).into_account()33}3435/// Helper function to generate an authority key for Aura36pub fn authority_keys_from_seed(s: &str) -> (AuraId, GrandpaId) {37	(38		get_from_seed::<AuraId>(s),39		get_from_seed::<GrandpaId>(s),40	)41}4243pub fn development_config() -> ChainSpec {44	ChainSpec::from_genesis(45		"Development",46		"dev",47		ChainType::Development,48		|| testnet_genesis(49			vec![50				authority_keys_from_seed("Alice"),51			],52			get_account_id_from_seed::<sr25519::Public>("Alice"),53			vec![54				get_account_id_from_seed::<sr25519::Public>("Alice"),55				get_account_id_from_seed::<sr25519::Public>("Bob"),56				get_account_id_from_seed::<sr25519::Public>("Alice//stash"),57				get_account_id_from_seed::<sr25519::Public>("Bob//stash"),58			],59			true,60		),61		vec![],62		None,63		None,64		None,65		None,66	)67}6869pub fn local_testnet_config() -> ChainSpec {70	ChainSpec::from_genesis(71		"Local Testnet",72		"local_testnet",73		ChainType::Local,74		|| testnet_genesis(75			vec![76				authority_keys_from_seed("Alice"),77				authority_keys_from_seed("Bob"),78			],79			get_account_id_from_seed::<sr25519::Public>("Alice"),80			vec![81				get_account_id_from_seed::<sr25519::Public>("Alice"),82				get_account_id_from_seed::<sr25519::Public>("Bob"),83				get_account_id_from_seed::<sr25519::Public>("Charlie"),84				get_account_id_from_seed::<sr25519::Public>("Dave"),85				get_account_id_from_seed::<sr25519::Public>("Eve"),86				get_account_id_from_seed::<sr25519::Public>("Ferdie"),87				get_account_id_from_seed::<sr25519::Public>("Alice//stash"),88				get_account_id_from_seed::<sr25519::Public>("Bob//stash"),89				get_account_id_from_seed::<sr25519::Public>("Charlie//stash"),90				get_account_id_from_seed::<sr25519::Public>("Dave//stash"),91				get_account_id_from_seed::<sr25519::Public>("Eve//stash"),92				get_account_id_from_seed::<sr25519::Public>("Ferdie//stash"),93			],94			true,95		),96		vec![],97		None,98		None,99		None,100		None,101	)102}103104fn testnet_genesis(initial_authorities: Vec<(AuraId, GrandpaId)>,105	root_key: AccountId,106	endowed_accounts: Vec<AccountId>,107	_enable_println: bool) -> GenesisConfig {108	GenesisConfig {109		system: Some(SystemConfig {110			code: WASM_BINARY.to_vec(),111			changes_trie_config: Default::default(),112		}),113		balances: Some(BalancesConfig {114			balances: endowed_accounts.iter().cloned().map(|k|(k, 1 << 60)).collect(),115		}),116		contracts: Some(ContractsConfig {117            current_schedule: ContractsSchedule {118              //      enable_println,119                    ..Default::default()120            },121        }),122		aura: Some(AuraConfig {123			authorities: initial_authorities.iter().map(|x| (x.0.clone())).collect(),124		}),125		grandpa: Some(GrandpaConfig {126			authorities: initial_authorities.iter().map(|x| (x.1.clone(), 1)).collect(),127		}),128		sudo: Some(SudoConfig {129			key: root_key,130		}),131	}132}