partner_chains_demo_node/
template_chain_spec.rs

1use crate::chain_spec::*;
2use partner_chains_demo_runtime::{
3	AuraConfig, BalancesConfig, GovernedMapConfig, GrandpaConfig, NativeTokenManagementConfig,
4	RuntimeGenesisConfig, SessionCommitteeManagementConfig, SessionConfig, SidechainConfig,
5	SudoConfig, SystemConfig, TestHelperPalletConfig,
6};
7use sc_service::ChainType;
8
9/// Produces template chain spec for Partner Chains.
10/// This code should be run by `partner-chains-node wizards chain-spec`, to produce JSON chain spec file.
11/// `initial_validators` fields should be updated by the `partner-chains-node wizards chain-spec`.
12/// Add and modify other fields of `ChainSpec` accordingly to the needs of your chain.
13pub fn chain_spec() -> Result<ChainSpec, envy::Error> {
14	let runtime_genesis_config = RuntimeGenesisConfig {
15		system: SystemConfig { ..Default::default() },
16		balances: BalancesConfig {
17			// Update if any endowed accounts are required.
18			balances: vec![],
19			dev_accounts: None,
20		},
21		aura: AuraConfig { authorities: vec![] },
22		grandpa: GrandpaConfig { authorities: vec![], ..Default::default() },
23		sudo: SudoConfig {
24			// No sudo account by default, please update with your preferences.
25			key: None,
26		},
27		transaction_payment: Default::default(),
28		session: SessionConfig {
29			// Initial validators are meant to be updated in the chain spec file, so it is empty here.
30			initial_validators: vec![],
31		},
32		sidechain: SidechainConfig {
33			genesis_utxo: sp_sidechain::read_genesis_utxo_from_env_with_defaults()?,
34			..Default::default()
35		},
36		pallet_session: Default::default(),
37		session_committee_management: SessionCommitteeManagementConfig {
38			// Same as SessionConfig
39			initial_authorities: vec![],
40			main_chain_scripts: sp_session_validator_management::MainChainScripts::read_from_env()?,
41		},
42		native_token_management: NativeTokenManagementConfig {
43			main_chain_scripts: Some(sp_native_token_management::MainChainScripts::read_from_env()?),
44			..Default::default()
45		},
46		governed_map: GovernedMapConfig {
47			main_chain_scripts: Some(Default::default()),
48			..Default::default()
49		},
50		test_helper_pallet: TestHelperPalletConfig {
51			participation_data_release_period: 30,
52			..Default::default()
53		},
54	};
55	let genesis_json = serde_json::to_value(runtime_genesis_config)
56		.expect("Genesis config must be serialized correctly");
57	Ok(ChainSpec::builder(runtime_wasm(), None)
58		.with_name("Partner Chains Template")
59		.with_id("partner_chains_template")
60		.with_chain_type(ChainType::Live)
61		.with_genesis_config(genesis_json)
62		.build())
63}