difftreelog
Fix code style
in: master
2 files changed
node/cli/src/chain_spec.rsdiffbeforeafterboth1// 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 cumulus_primitives_core::ParaId;18use sc_chain_spec::{ChainSpecExtension, ChainSpecGroup};19use sc_service::ChainType;20use sp_core::{sr25519, Pair, Public};21use sp_runtime::traits::{IdentifyAccount, Verify};22use std::collections::BTreeMap;2324use serde::{Deserialize, Serialize};25use serde_json::map::Map;2627use unique_runtime_common::types::*;2829/// The `ChainSpec` parameterized for the unique runtime.30#[cfg(feature = "unique-runtime")]31pub type UniqueChainSpec = sc_service::GenericChainSpec<unique_runtime::GenesisConfig, Extensions>;3233/// The `ChainSpec` parameterized for the quartz runtime.34#[cfg(feature = "quartz-runtime")]35pub type QuartzChainSpec = sc_service::GenericChainSpec<quartz_runtime::GenesisConfig, Extensions>;3637/// The `ChainSpec` parameterized for the opal runtime.38#[cfg(feature = "opal-runtime")]39pub type OpalChainSpec = sc_service::GenericChainSpec<opal_runtime::GenesisConfig, Extensions>;4041pub trait RuntimeIdentification {42 fn is_unique(&self) -> bool;4344 fn is_quartz(&self) -> bool;4546 fn is_opal(&self) -> bool;47}4849impl RuntimeIdentification for Box<dyn sc_service::ChainSpec> {50 fn is_unique(&self) -> bool {51 self.id().starts_with("unique")52 }5354 fn is_quartz(&self) -> bool {55 self.id().starts_with("quartz")56 }5758 fn is_opal(&self) -> bool {59 self.id().starts_with("opal")60 || self.id() == "dev"61 || self.id() == "local_testnet"62 }63}6465/// Helper function to generate a crypto pair from seed66pub fn get_from_seed<TPublic: Public>(seed: &str) -> <TPublic::Pair as Pair>::Public {67 TPublic::Pair::from_string(&format!("//{}", seed), None)68 .expect("static values are valid; qed")69 .public()70}7172/// The extensions for the [`ChainSpec`].73#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, ChainSpecGroup, ChainSpecExtension)]74#[serde(deny_unknown_fields)]75pub struct Extensions {76 /// The relay chain of the Parachain.77 pub relay_chain: String,78 /// The id of the Parachain.79 pub para_id: u32,80}8182impl Extensions {83 /// Try to get the extension from the given `ChainSpec`.84 pub fn try_get(chain_spec: &dyn sc_service::ChainSpec) -> Option<&Self> {85 sc_chain_spec::get_extension(chain_spec.extensions())86 }87}8889type AccountPublic = <Signature as Verify>::Signer;9091/// Helper function to generate an account ID from seed92pub fn get_account_id_from_seed<TPublic: Public>(seed: &str) -> AccountId93where94 AccountPublic: From<<TPublic::Pair as Pair>::Public>,95{96 AccountPublic::from(get_from_seed::<TPublic>(seed)).into_account()97}9899pub fn development_config() -> OpalChainSpec {100 let mut properties = Map::new();101 properties.insert("tokenSymbol".into(), "OPL".into());102 properties.insert("tokenDecimals".into(), 15.into());103 properties.insert("ss58Format".into(), 42.into());104105 OpalChainSpec::from_genesis(106 // Name107 "Development",108 // ID109 "dev",110 ChainType::Local,111 move || {112 testnet_genesis(113 // Sudo account114 get_account_id_from_seed::<sr25519::Public>("Alice"),115 vec![116 get_from_seed::<AuraId>("Alice"),117 get_from_seed::<AuraId>("Bob"),118 ],119 // Pre-funded accounts120 vec![121 get_account_id_from_seed::<sr25519::Public>("Alice"),122 get_account_id_from_seed::<sr25519::Public>("Bob"),123 ],124 1000.into(),125 )126 },127 // Bootnodes128 vec![],129 // Telemetry130 None,131 // Protocol ID132 None,133 None,134 // Properties135 Some(properties),136 // Extensions137 Extensions {138 relay_chain: "rococo-dev".into(),139 para_id: 1000,140 },141 )142}143144pub fn local_testnet_rococo_config() -> OpalChainSpec {145 OpalChainSpec::from_genesis(146 // Name147 "Local Testnet",148 // ID149 "local_testnet",150 ChainType::Local,151 move || {152 testnet_genesis(153 // Sudo account154 get_account_id_from_seed::<sr25519::Public>("Alice"),155 vec![156 get_from_seed::<AuraId>("Alice"),157 get_from_seed::<AuraId>("Bob"),158 ],159 // Pre-funded accounts160 vec![161 get_account_id_from_seed::<sr25519::Public>("Alice"),162 get_account_id_from_seed::<sr25519::Public>("Bob"),163 get_account_id_from_seed::<sr25519::Public>("Charlie"),164 get_account_id_from_seed::<sr25519::Public>("Dave"),165 get_account_id_from_seed::<sr25519::Public>("Eve"),166 get_account_id_from_seed::<sr25519::Public>("Ferdie"),167 get_account_id_from_seed::<sr25519::Public>("Alice//stash"),168 get_account_id_from_seed::<sr25519::Public>("Bob//stash"),169 get_account_id_from_seed::<sr25519::Public>("Charlie//stash"),170 get_account_id_from_seed::<sr25519::Public>("Dave//stash"),171 get_account_id_from_seed::<sr25519::Public>("Eve//stash"),172 get_account_id_from_seed::<sr25519::Public>("Ferdie//stash"),173 ],174 1000.into(),175 )176 },177 // Bootnodes178 vec![],179 // Telemetry180 None,181 // Protocol ID182 None,183 None,184 // Properties185 None,186 // Extensions187 Extensions {188 relay_chain: "rococo-local".into(),189 para_id: 1000,190 },191 )192}193194pub fn local_testnet_westend_config() -> OpalChainSpec {195 OpalChainSpec::from_genesis(196 // Name197 "Local Testnet",198 // ID199 "local_testnet",200 ChainType::Local,201 move || {202 testnet_genesis(203 // Sudo account204 get_account_id_from_seed::<sr25519::Public>("Alice"),205 vec![206 get_from_seed::<AuraId>("Alice"),207 get_from_seed::<AuraId>("Bob"),208 get_from_seed::<AuraId>("Charlie"),209 get_from_seed::<AuraId>("Dave"),210 get_from_seed::<AuraId>("Eve"),211 ],212 // Pre-funded accounts213 vec![214 get_account_id_from_seed::<sr25519::Public>("Alice"),215 get_account_id_from_seed::<sr25519::Public>("Bob"),216 get_account_id_from_seed::<sr25519::Public>("Charlie"),217 get_account_id_from_seed::<sr25519::Public>("Dave"),218 get_account_id_from_seed::<sr25519::Public>("Eve"),219 get_account_id_from_seed::<sr25519::Public>("Ferdie"),220 get_account_id_from_seed::<sr25519::Public>("Alice//stash"),221 get_account_id_from_seed::<sr25519::Public>("Bob//stash"),222 get_account_id_from_seed::<sr25519::Public>("Charlie//stash"),223 get_account_id_from_seed::<sr25519::Public>("Dave//stash"),224 get_account_id_from_seed::<sr25519::Public>("Eve//stash"),225 get_account_id_from_seed::<sr25519::Public>("Ferdie//stash"),226 ],227 1000.into(),228 )229 },230 // Bootnodes231 vec![],232 // Telemetry233 None,234 // Protocol ID235 None,236 None,237 // Properties238 None,239 // Extensions240 Extensions {241 relay_chain: "westend-local".into(),242 para_id: 1000,243 },244 )245}246247fn testnet_genesis(248 root_key: AccountId,249 initial_authorities: Vec<AuraId>,250 endowed_accounts: Vec<AccountId>,251 id: ParaId,252) -> opal_runtime::GenesisConfig {253 use opal_runtime::*;254255 GenesisConfig {256 system: SystemConfig {257 code: WASM_BINARY258 .expect("WASM binary was not build, please build it!")259 .to_vec(),260 },261 balances: BalancesConfig {262 balances: endowed_accounts263 .iter()264 .cloned()265 // 1e13 UNQ266 .map(|k| (k, 1 << 100))267 .collect(),268 },269 treasury: Default::default(),270 sudo: SudoConfig {271 key: Some(root_key),272 },273 vesting: VestingConfig { vesting: vec![] },274 parachain_info: ParachainInfoConfig { parachain_id: id },275 parachain_system: Default::default(),276 aura: AuraConfig {277 authorities: initial_authorities,278 },279 aura_ext: Default::default(),280 evm: EVMConfig {281 accounts: BTreeMap::new(),282 },283 ethereum: EthereumConfig {},284 }285}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 cumulus_primitives_core::ParaId;18use sc_chain_spec::{ChainSpecExtension, ChainSpecGroup};19use sc_service::ChainType;20use sp_core::{sr25519, Pair, Public};21use sp_runtime::traits::{IdentifyAccount, Verify};22use std::collections::BTreeMap;2324use serde::{Deserialize, Serialize};25use serde_json::map::Map;2627use unique_runtime_common::types::*;2829/// The `ChainSpec` parameterized for the unique runtime.30#[cfg(feature = "unique-runtime")]31pub type UniqueChainSpec = sc_service::GenericChainSpec<unique_runtime::GenesisConfig, Extensions>;3233/// The `ChainSpec` parameterized for the quartz runtime.34#[cfg(feature = "quartz-runtime")]35pub type QuartzChainSpec = sc_service::GenericChainSpec<quartz_runtime::GenesisConfig, Extensions>;3637/// The `ChainSpec` parameterized for the opal runtime.38#[cfg(feature = "opal-runtime")]39pub type OpalChainSpec = sc_service::GenericChainSpec<opal_runtime::GenesisConfig, Extensions>;4041pub trait RuntimeIdentification {42 fn is_unique(&self) -> bool;4344 fn is_quartz(&self) -> bool;4546 fn is_opal(&self) -> bool;47}4849impl RuntimeIdentification for Box<dyn sc_service::ChainSpec> {50 fn is_unique(&self) -> bool {51 self.id().starts_with("unique")52 }5354 fn is_quartz(&self) -> bool {55 self.id().starts_with("quartz")56 }5758 fn is_opal(&self) -> bool {59 self.id().starts_with("opal") || self.id() == "dev" || self.id() == "local_testnet"60 }61}6263/// Helper function to generate a crypto pair from seed64pub fn get_from_seed<TPublic: Public>(seed: &str) -> <TPublic::Pair as Pair>::Public {65 TPublic::Pair::from_string(&format!("//{}", seed), None)66 .expect("static values are valid; qed")67 .public()68}6970/// The extensions for the [`ChainSpec`].71#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, ChainSpecGroup, ChainSpecExtension)]72#[serde(deny_unknown_fields)]73pub struct Extensions {74 /// The relay chain of the Parachain.75 pub relay_chain: String,76 /// The id of the Parachain.77 pub para_id: u32,78}7980impl Extensions {81 /// Try to get the extension from the given `ChainSpec`.82 pub fn try_get(chain_spec: &dyn sc_service::ChainSpec) -> Option<&Self> {83 sc_chain_spec::get_extension(chain_spec.extensions())84 }85}8687type AccountPublic = <Signature as Verify>::Signer;8889/// Helper function to generate an account ID from seed90pub fn get_account_id_from_seed<TPublic: Public>(seed: &str) -> AccountId91where92 AccountPublic: From<<TPublic::Pair as Pair>::Public>,93{94 AccountPublic::from(get_from_seed::<TPublic>(seed)).into_account()95}9697pub fn development_config() -> OpalChainSpec {98 let mut properties = Map::new();99 properties.insert("tokenSymbol".into(), "OPL".into());100 properties.insert("tokenDecimals".into(), 15.into());101 properties.insert("ss58Format".into(), 42.into());102103 OpalChainSpec::from_genesis(104 // Name105 "Development",106 // ID107 "dev",108 ChainType::Local,109 move || {110 testnet_genesis(111 // Sudo account112 get_account_id_from_seed::<sr25519::Public>("Alice"),113 vec![114 get_from_seed::<AuraId>("Alice"),115 get_from_seed::<AuraId>("Bob"),116 ],117 // Pre-funded accounts118 vec![119 get_account_id_from_seed::<sr25519::Public>("Alice"),120 get_account_id_from_seed::<sr25519::Public>("Bob"),121 ],122 1000.into(),123 )124 },125 // Bootnodes126 vec![],127 // Telemetry128 None,129 // Protocol ID130 None,131 None,132 // Properties133 Some(properties),134 // Extensions135 Extensions {136 relay_chain: "rococo-dev".into(),137 para_id: 1000,138 },139 )140}141142pub fn local_testnet_rococo_config() -> OpalChainSpec {143 OpalChainSpec::from_genesis(144 // Name145 "Local Testnet",146 // ID147 "local_testnet",148 ChainType::Local,149 move || {150 testnet_genesis(151 // Sudo account152 get_account_id_from_seed::<sr25519::Public>("Alice"),153 vec![154 get_from_seed::<AuraId>("Alice"),155 get_from_seed::<AuraId>("Bob"),156 ],157 // Pre-funded accounts158 vec![159 get_account_id_from_seed::<sr25519::Public>("Alice"),160 get_account_id_from_seed::<sr25519::Public>("Bob"),161 get_account_id_from_seed::<sr25519::Public>("Charlie"),162 get_account_id_from_seed::<sr25519::Public>("Dave"),163 get_account_id_from_seed::<sr25519::Public>("Eve"),164 get_account_id_from_seed::<sr25519::Public>("Ferdie"),165 get_account_id_from_seed::<sr25519::Public>("Alice//stash"),166 get_account_id_from_seed::<sr25519::Public>("Bob//stash"),167 get_account_id_from_seed::<sr25519::Public>("Charlie//stash"),168 get_account_id_from_seed::<sr25519::Public>("Dave//stash"),169 get_account_id_from_seed::<sr25519::Public>("Eve//stash"),170 get_account_id_from_seed::<sr25519::Public>("Ferdie//stash"),171 ],172 1000.into(),173 )174 },175 // Bootnodes176 vec![],177 // Telemetry178 None,179 // Protocol ID180 None,181 None,182 // Properties183 None,184 // Extensions185 Extensions {186 relay_chain: "rococo-local".into(),187 para_id: 1000,188 },189 )190}191192pub fn local_testnet_westend_config() -> OpalChainSpec {193 OpalChainSpec::from_genesis(194 // Name195 "Local Testnet",196 // ID197 "local_testnet",198 ChainType::Local,199 move || {200 testnet_genesis(201 // Sudo account202 get_account_id_from_seed::<sr25519::Public>("Alice"),203 vec![204 get_from_seed::<AuraId>("Alice"),205 get_from_seed::<AuraId>("Bob"),206 get_from_seed::<AuraId>("Charlie"),207 get_from_seed::<AuraId>("Dave"),208 get_from_seed::<AuraId>("Eve"),209 ],210 // Pre-funded accounts211 vec![212 get_account_id_from_seed::<sr25519::Public>("Alice"),213 get_account_id_from_seed::<sr25519::Public>("Bob"),214 get_account_id_from_seed::<sr25519::Public>("Charlie"),215 get_account_id_from_seed::<sr25519::Public>("Dave"),216 get_account_id_from_seed::<sr25519::Public>("Eve"),217 get_account_id_from_seed::<sr25519::Public>("Ferdie"),218 get_account_id_from_seed::<sr25519::Public>("Alice//stash"),219 get_account_id_from_seed::<sr25519::Public>("Bob//stash"),220 get_account_id_from_seed::<sr25519::Public>("Charlie//stash"),221 get_account_id_from_seed::<sr25519::Public>("Dave//stash"),222 get_account_id_from_seed::<sr25519::Public>("Eve//stash"),223 get_account_id_from_seed::<sr25519::Public>("Ferdie//stash"),224 ],225 1000.into(),226 )227 },228 // Bootnodes229 vec![],230 // Telemetry231 None,232 // Protocol ID233 None,234 None,235 // Properties236 None,237 // Extensions238 Extensions {239 relay_chain: "westend-local".into(),240 para_id: 1000,241 },242 )243}244245fn testnet_genesis(246 root_key: AccountId,247 initial_authorities: Vec<AuraId>,248 endowed_accounts: Vec<AccountId>,249 id: ParaId,250) -> opal_runtime::GenesisConfig {251 use opal_runtime::*;252253 GenesisConfig {254 system: SystemConfig {255 code: WASM_BINARY256 .expect("WASM binary was not build, please build it!")257 .to_vec(),258 },259 balances: BalancesConfig {260 balances: endowed_accounts261 .iter()262 .cloned()263 // 1e13 UNQ264 .map(|k| (k, 1 << 100))265 .collect(),266 },267 treasury: Default::default(),268 sudo: SudoConfig {269 key: Some(root_key),270 },271 vesting: VestingConfig { vesting: vec![] },272 parachain_info: ParachainInfoConfig { parachain_id: id },273 parachain_system: Default::default(),274 aura: AuraConfig {275 authorities: initial_authorities,276 },277 aura_ext: Default::default(),278 evm: EVMConfig {279 accounts: BTreeMap::new(),280 },281 ethereum: EthereumConfig {},282 }283}node/cli/src/command.rsdiffbeforeafterboth--- a/node/cli/src/command.rs
+++ b/node/cli/src/command.rs
@@ -82,9 +82,8 @@
"" | "local" => Ok(Box::new(chain_spec::local_testnet_rococo_config())),
path => {
let path = std::path::PathBuf::from(path);
- let chain_spec = Box::new(
- chain_spec::UniqueChainSpec::from_json_file(path.clone())?
- ) as Box<dyn sc_service::ChainSpec>;
+ let chain_spec = Box::new(chain_spec::UniqueChainSpec::from_json_file(path.clone())?)
+ as Box<dyn sc_service::ChainSpec>;
#[cfg(feature = "unique-runtime")]
if chain_spec.is_unique() {
@@ -93,22 +92,18 @@
#[cfg(feature = "quartz-runtime")]
if chain_spec.is_quartz() {
- let chain_spec = chain_spec::QuartzChainSpec::from_json_file(
- path
- )?;
+ let chain_spec = chain_spec::QuartzChainSpec::from_json_file(path)?;
return Ok(Box::new(chain_spec));
}
#[cfg(feature = "opal-runtime")]
if chain_spec.is_opal() {
- let chain_spec = chain_spec::OpalChainSpec::from_json_file(
- path
- )?;
+ let chain_spec = chain_spec::OpalChainSpec::from_json_file(path)?;
return Ok(Box::new(chain_spec));
}
Err(no_runtime_err!(chain_spec))
- },
+ }
}
}