difftreelog
fix wasm runtime version section
in: master
9 files changed
node/cli/Cargo.tomldiffbeforeafterboth--- a/node/cli/Cargo.toml
+++ b/node/cli/Cargo.toml
@@ -108,4 +108,3 @@
runtime-benchmarks = ['opal-runtime/runtime-benchmarks', 'polkadot-cli/runtime-benchmarks', 'polkadot-service/runtime-benchmarks', 'quartz-runtime?/runtime-benchmarks', 'sc-service/runtime-benchmarks', 'unique-runtime?/runtime-benchmarks']
sapphire-runtime = ['quartz-runtime', 'quartz-runtime/become-sapphire']
try-runtime = ['opal-runtime?/try-runtime', 'quartz-runtime?/try-runtime', 'try-runtime-cli/try-runtime', 'unique-runtime?/try-runtime']
-state-version-0 = ['opal-runtime?/state-version-0', 'quartz-runtime?/state-version-0', 'unique-runtime?/state-version-0']
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 sc_chain_spec::{ChainSpecExtension, ChainSpecGroup};18use sc_service::ChainType;19use sp_core::{sr25519, Pair, Public};20use sp_runtime::traits::{IdentifyAccount, Verify};21use std::collections::BTreeMap;2223use serde::{Deserialize, Serialize};24use serde_json::map::Map;2526use up_common::types::opaque::*;2728#[cfg(feature = "unique-runtime")]29pub use unique_runtime as default_runtime;3031#[cfg(all(not(feature = "unique-runtime"), feature = "quartz-runtime"))]32pub use quartz_runtime as default_runtime;3334#[cfg(all(not(feature = "unique-runtime"), not(feature = "quartz-runtime")))]35pub use opal_runtime as default_runtime;3637/// The `ChainSpec` parameterized for the unique runtime.38#[cfg(feature = "unique-runtime")]39pub type UniqueChainSpec = sc_service::GenericChainSpec<unique_runtime::GenesisConfig, Extensions>;4041/// The `ChainSpec` parameterized for the quartz runtime.42#[cfg(feature = "quartz-runtime")]43pub type QuartzChainSpec = sc_service::GenericChainSpec<quartz_runtime::GenesisConfig, Extensions>;4445/// The `ChainSpec` parameterized for the opal runtime.46pub type OpalChainSpec = sc_service::GenericChainSpec<opal_runtime::GenesisConfig, Extensions>;4748#[cfg(feature = "unique-runtime")]49pub type DefaultChainSpec = UniqueChainSpec;5051#[cfg(all(not(feature = "unique-runtime"), feature = "quartz-runtime"))]52pub type DefaultChainSpec = QuartzChainSpec;5354#[cfg(all(not(feature = "unique-runtime"), not(feature = "quartz-runtime")))]55pub type DefaultChainSpec = OpalChainSpec;5657#[cfg(not(feature = "unique-runtime"))]58/// PARA_ID for Opal/Sapphire/Quartz59const PARA_ID: u32 = 2095;6061#[cfg(feature = "unique-runtime")]62/// PARA_ID for Unique63const PARA_ID: u32 = 2037;6465pub trait RuntimeIdentification {66 fn runtime_id(&self) -> RuntimeId;67}6869impl RuntimeIdentification for Box<dyn sc_service::ChainSpec> {70 fn runtime_id(&self) -> RuntimeId {71 #[cfg(feature = "unique-runtime")]72 if self.id().starts_with("unique") || self.id().starts_with("unq") {73 return RuntimeId::Unique;74 }7576 #[cfg(feature = "quartz-runtime")]77 if self.id().starts_with("quartz")78 || self.id().starts_with("qtz")79 || self.id().starts_with("sapphire")80 {81 return RuntimeId::Quartz;82 }8384 if self.id().starts_with("opal") || self.id() == "dev" || self.id() == "local_testnet" {85 return RuntimeId::Opal;86 }8788 RuntimeId::Unknown(self.id().into())89 }90}9192pub enum ServiceId {93 Prod,94 Dev,95}9697pub trait ServiceIdentification {98 fn service_id(&self) -> ServiceId;99}100101impl ServiceIdentification for Box<dyn sc_service::ChainSpec> {102 fn service_id(&self) -> ServiceId {103 if self.id().ends_with("dev") {104 ServiceId::Dev105 } else {106 ServiceId::Prod107 }108 }109}110111/// Helper function to generate a crypto pair from seed112pub fn get_from_seed<TPublic: Public>(seed: &str) -> <TPublic::Pair as Pair>::Public {113 TPublic::Pair::from_string(&format!("//{seed}"), None)114 .expect("static values are valid; qed")115 .public()116}117118/// The extensions for the [`DefaultChainSpec`].119#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, ChainSpecGroup, ChainSpecExtension)]120#[serde(deny_unknown_fields)]121pub struct Extensions {122 /// The relay chain of the Parachain.123 pub relay_chain: String,124 /// The id of the Parachain.125 pub para_id: u32,126}127128impl Extensions {129 /// Try to get the extension from the given `ChainSpec`.130 pub fn try_get(chain_spec: &dyn sc_service::ChainSpec) -> Option<&Self> {131 sc_chain_spec::get_extension(chain_spec.extensions())132 }133}134135type AccountPublic = <Signature as Verify>::Signer;136137/// Helper function to generate an account ID from seed138pub fn get_account_id_from_seed<TPublic: Public>(seed: &str) -> AccountId139where140 AccountPublic: From<<TPublic::Pair as Pair>::Public>,141{142 AccountPublic::from(get_from_seed::<TPublic>(seed)).into_account()143}144145#[cfg(not(feature = "unique-runtime"))]146macro_rules! testnet_genesis {147 (148 $runtime:path,149 $root_key:expr,150 $initial_invulnerables:expr,151 $endowed_accounts:expr,152 $id:expr153 ) => {{154 use $runtime::*;155156 GenesisConfig {157 system: SystemConfig {158 code: WASM_BINARY159 .expect("WASM binary was not build, please build it!")160 .to_vec(),161 },162 balances: BalancesConfig {163 balances: $endowed_accounts164 .iter()165 .cloned()166 // 1e13 UNQ167 .map(|k| (k, 1 << 100))168 .collect(),169 },170 common: Default::default(),171 configuration: Default::default(),172 nonfungible: Default::default(),173 treasury: Default::default(),174 tokens: TokensConfig { balances: vec![] },175 sudo: SudoConfig {176 key: Some($root_key),177 },178179 vesting: VestingConfig { vesting: vec![] },180 parachain_info: ParachainInfoConfig {181 parachain_id: $id.into(),182 },183 parachain_system: Default::default(),184 collator_selection: CollatorSelectionConfig {185 invulnerables: $initial_invulnerables186 .iter()187 .cloned()188 .map(|(acc, _)| acc)189 .collect(),190 },191 session: SessionConfig {192 keys: $initial_invulnerables193 .into_iter()194 .map(|(acc, aura)| {195 (196 acc.clone(), // account id197 acc, // validator id198 SessionKeys { aura }, // session keys199 )200 })201 .collect(),202 },203 aura: Default::default(),204 aura_ext: Default::default(),205 evm: EVMConfig {206 accounts: BTreeMap::new(),207 },208 ethereum: EthereumConfig {},209 polkadot_xcm: Default::default(),210 transaction_payment: Default::default(),211 ..Default::default()212 }213 }};214}215216#[cfg(feature = "unique-runtime")]217macro_rules! testnet_genesis {218 (219 $runtime:path,220 $root_key:expr,221 $initial_invulnerables:expr,222 $endowed_accounts:expr,223 $id:expr224 ) => {{225 use $runtime::*;226227 GenesisConfig {228 system: SystemConfig {229 code: WASM_BINARY230 .expect("WASM binary was not build, please build it!")231 .to_vec(),232 },233 common: Default::default(),234 configuration: Default::default(),235 nonfungible: Default::default(),236 balances: BalancesConfig {237 balances: $endowed_accounts238 .iter()239 .cloned()240 // 1e13 UNQ241 .map(|k| (k, 1 << 100))242 .collect(),243 },244 treasury: Default::default(),245 tokens: TokensConfig { balances: vec![] },246 sudo: SudoConfig {247 key: Some($root_key),248 },249 vesting: VestingConfig { vesting: vec![] },250 parachain_info: ParachainInfoConfig {251 parachain_id: $id.into(),252 },253 parachain_system: Default::default(),254 aura: AuraConfig {255 authorities: $initial_invulnerables256 .into_iter()257 .map(|(_, aura)| aura)258 .collect(),259 },260 aura_ext: Default::default(),261 evm: EVMConfig {262 accounts: BTreeMap::new(),263 },264 ethereum: EthereumConfig {},265 polkadot_xcm: Default::default(),266 transaction_payment: Default::default(),267 }268 }};269}270271pub fn development_config() -> DefaultChainSpec {272 let mut properties = Map::new();273 properties.insert("tokenSymbol".into(), default_runtime::TOKEN_SYMBOL.into());274 properties.insert("tokenDecimals".into(), default_runtime::DECIMALS.into());275 properties.insert(276 "ss58Format".into(),277 default_runtime::SS58Prefix::get().into(),278 );279280 DefaultChainSpec::from_genesis(281 // Name282 format!(283 "{}{}",284 default_runtime::RUNTIME_NAME.to_uppercase(),285 if cfg!(feature = "unique-runtime") {286 ""287 } else {288 " by UNIQUE"289 }290 )291 .as_str(),292 // ID293 format!("{}_dev", default_runtime::RUNTIME_NAME).as_str(),294 ChainType::Local,295 move || {296 testnet_genesis!(297 default_runtime,298 // Sudo account299 get_account_id_from_seed::<sr25519::Public>("Alice"),300 [301 (302 get_account_id_from_seed::<sr25519::Public>("Alice"),303 get_from_seed::<AuraId>("Alice"),304 ),305 (306 get_account_id_from_seed::<sr25519::Public>("Bob"),307 get_from_seed::<AuraId>("Bob"),308 ),309 ],310 // Pre-funded accounts311 vec![312 get_account_id_from_seed::<sr25519::Public>("Alice"),313 get_account_id_from_seed::<sr25519::Public>("Bob"),314 get_account_id_from_seed::<sr25519::Public>("Charlie"),315 get_account_id_from_seed::<sr25519::Public>("Dave"),316 get_account_id_from_seed::<sr25519::Public>("Eve"),317 get_account_id_from_seed::<sr25519::Public>("Ferdie"),318 get_account_id_from_seed::<sr25519::Public>("Alice//stash"),319 get_account_id_from_seed::<sr25519::Public>("Bob//stash"),320 get_account_id_from_seed::<sr25519::Public>("Charlie//stash"),321 get_account_id_from_seed::<sr25519::Public>("Dave//stash"),322 get_account_id_from_seed::<sr25519::Public>("Eve//stash"),323 get_account_id_from_seed::<sr25519::Public>("Ferdie//stash"),324 ],325 PARA_ID326 )327 },328 // Bootnodes329 vec![],330 // Telemetry331 None,332 // Protocol ID333 None,334 None,335 // Properties336 Some(properties),337 // Extensions338 Extensions {339 relay_chain: "rococo-dev".into(),340 para_id: PARA_ID,341 },342 )343}344345pub fn local_testnet_config() -> DefaultChainSpec {346 let mut properties = Map::new();347 properties.insert("tokenSymbol".into(), default_runtime::TOKEN_SYMBOL.into());348 properties.insert("tokenDecimals".into(), default_runtime::DECIMALS.into());349 properties.insert(350 "ss58Format".into(),351 default_runtime::SS58Prefix::get().into(),352 );353354 DefaultChainSpec::from_genesis(355 // Name356 format!(357 "{}{}",358 default_runtime::RUNTIME_NAME.to_uppercase(),359 if cfg!(feature = "unique-runtime") {360 ""361 } else {362 " by UNIQUE"363 }364 )365 .as_str(),366 // ID367 format!("{}_local", default_runtime::RUNTIME_NAME).as_str(),368 ChainType::Local,369 move || {370 testnet_genesis!(371 default_runtime,372 // Sudo account373 get_account_id_from_seed::<sr25519::Public>("Alice"),374 [375 (376 get_account_id_from_seed::<sr25519::Public>("Alice"),377 get_from_seed::<AuraId>("Alice"),378 ),379 (380 get_account_id_from_seed::<sr25519::Public>("Bob"),381 get_from_seed::<AuraId>("Bob"),382 ),383 ],384 // Pre-funded accounts385 vec![386 get_account_id_from_seed::<sr25519::Public>("Alice"),387 get_account_id_from_seed::<sr25519::Public>("Bob"),388 get_account_id_from_seed::<sr25519::Public>("Charlie"),389 get_account_id_from_seed::<sr25519::Public>("Dave"),390 get_account_id_from_seed::<sr25519::Public>("Eve"),391 get_account_id_from_seed::<sr25519::Public>("Ferdie"),392 get_account_id_from_seed::<sr25519::Public>("Alice//stash"),393 get_account_id_from_seed::<sr25519::Public>("Bob//stash"),394 get_account_id_from_seed::<sr25519::Public>("Charlie//stash"),395 get_account_id_from_seed::<sr25519::Public>("Dave//stash"),396 get_account_id_from_seed::<sr25519::Public>("Eve//stash"),397 get_account_id_from_seed::<sr25519::Public>("Ferdie//stash"),398 ],399 PARA_ID400 )401 },402 // Bootnodes403 vec![],404 // Telemetry405 None,406 // Protocol ID407 None,408 None,409 // Properties410 Some(properties),411 // Extensions412 Extensions {413 relay_chain: "westend-local".into(),414 para_id: PARA_ID,415 },416 )417}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 sc_chain_spec::{ChainSpecExtension, ChainSpecGroup};18use sc_service::ChainType;19use sp_core::{sr25519, Pair, Public};20use sp_runtime::traits::{IdentifyAccount, Verify};21use std::collections::BTreeMap;2223use serde::{Deserialize, Serialize};24use serde_json::map::Map;2526use up_common::types::opaque::*;2728#[cfg(feature = "unique-runtime")]29pub use unique_runtime as default_runtime;3031#[cfg(all(not(feature = "unique-runtime"), feature = "quartz-runtime"))]32pub use quartz_runtime as default_runtime;3334#[cfg(all(not(feature = "unique-runtime"), not(feature = "quartz-runtime")))]35pub use opal_runtime as default_runtime;3637/// The `ChainSpec` parameterized for the unique runtime.38#[cfg(feature = "unique-runtime")]39pub type UniqueChainSpec = sc_service::GenericChainSpec<unique_runtime::GenesisConfig, Extensions>;4041/// The `ChainSpec` parameterized for the quartz runtime.42#[cfg(feature = "quartz-runtime")]43pub type QuartzChainSpec = sc_service::GenericChainSpec<quartz_runtime::GenesisConfig, Extensions>;4445/// The `ChainSpec` parameterized for the opal runtime.46pub type OpalChainSpec = sc_service::GenericChainSpec<opal_runtime::GenesisConfig, Extensions>;4748#[cfg(feature = "unique-runtime")]49pub type DefaultChainSpec = UniqueChainSpec;5051#[cfg(all(not(feature = "unique-runtime"), feature = "quartz-runtime"))]52pub type DefaultChainSpec = QuartzChainSpec;5354#[cfg(all(not(feature = "unique-runtime"), not(feature = "quartz-runtime")))]55pub type DefaultChainSpec = OpalChainSpec;5657#[cfg(not(feature = "unique-runtime"))]58/// PARA_ID for Opal/Sapphire/Quartz59const PARA_ID: u32 = 2095;6061#[cfg(feature = "unique-runtime")]62/// PARA_ID for Unique63const PARA_ID: u32 = 2037;6465pub trait RuntimeIdentification {66 fn runtime_id(&self) -> RuntimeId;67}6869impl RuntimeIdentification for Box<dyn sc_service::ChainSpec> {70 fn runtime_id(&self) -> RuntimeId {71 #[cfg(feature = "unique-runtime")]72 if self.id().starts_with("unique") || self.id().starts_with("unq") {73 return RuntimeId::Unique;74 }7576 #[cfg(feature = "quartz-runtime")]77 if self.id().starts_with("quartz")78 || self.id().starts_with("qtz")79 || self.id().starts_with("sapphire")80 {81 return RuntimeId::Quartz;82 }8384 if self.id().starts_with("opal") || self.id() == "dev" || self.id() == "local_testnet" {85 return RuntimeId::Opal;86 }8788 RuntimeId::Unknown(self.id().into())89 }90}9192pub enum ServiceId {93 Prod,94 Dev,95}9697pub trait ServiceIdentification {98 fn service_id(&self) -> ServiceId;99}100101impl ServiceIdentification for Box<dyn sc_service::ChainSpec> {102 fn service_id(&self) -> ServiceId {103 if self.id().ends_with("dev") {104 ServiceId::Dev105 } else {106 ServiceId::Prod107 }108 }109}110111/// Helper function to generate a crypto pair from seed112pub fn get_from_seed<TPublic: Public>(seed: &str) -> <TPublic::Pair as Pair>::Public {113 TPublic::Pair::from_string(&format!("//{seed}"), None)114 .expect("static values are valid; qed")115 .public()116}117118/// The extensions for the [`DefaultChainSpec`].119#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, ChainSpecGroup, ChainSpecExtension)]120#[serde(deny_unknown_fields)]121pub struct Extensions {122 /// The relay chain of the Parachain.123 pub relay_chain: String,124 /// The id of the Parachain.125 pub para_id: u32,126}127128impl Extensions {129 /// Try to get the extension from the given `ChainSpec`.130 pub fn try_get(chain_spec: &dyn sc_service::ChainSpec) -> Option<&Self> {131 sc_chain_spec::get_extension(chain_spec.extensions())132 }133}134135type AccountPublic = <Signature as Verify>::Signer;136137/// Helper function to generate an account ID from seed138pub fn get_account_id_from_seed<TPublic: Public>(seed: &str) -> AccountId139where140 AccountPublic: From<<TPublic::Pair as Pair>::Public>,141{142 AccountPublic::from(get_from_seed::<TPublic>(seed)).into_account()143}144145#[cfg(not(feature = "unique-runtime"))]146macro_rules! testnet_genesis {147 (148 $runtime:path,149 $root_key:expr,150 $initial_invulnerables:expr,151 $endowed_accounts:expr,152 $id:expr153 ) => {{154 use $runtime::*;155156 GenesisConfig {157 system: SystemConfig {158 code: WASM_BINARY159 .expect("WASM binary was not build, please build it!")160 .to_vec(),161 },162 balances: BalancesConfig {163 balances: $endowed_accounts164 .iter()165 .cloned()166 // 1e13 UNQ167 .map(|k| (k, 1 << 100))168 .collect(),169 },170 common: Default::default(),171 configuration: Default::default(),172 nonfungible: Default::default(),173 treasury: Default::default(),174 tokens: TokensConfig { balances: vec![] },175 sudo: SudoConfig {176 key: Some($root_key),177 },178179 vesting: VestingConfig { vesting: vec![] },180 parachain_info: ParachainInfoConfig {181 parachain_id: $id.into(),182 },183 parachain_system: Default::default(),184 collator_selection: CollatorSelectionConfig {185 invulnerables: $initial_invulnerables186 .iter()187 .cloned()188 .map(|(acc, _)| acc)189 .collect(),190 },191 session: SessionConfig {192 keys: $initial_invulnerables193 .into_iter()194 .map(|(acc, aura)| {195 (196 acc.clone(), // account id197 acc, // validator id198 SessionKeys { aura }, // session keys199 )200 })201 .collect(),202 },203 aura: Default::default(),204 aura_ext: Default::default(),205 evm: EVMConfig {206 accounts: BTreeMap::new(),207 },208 ethereum: EthereumConfig {},209 polkadot_xcm: Default::default(),210 transaction_payment: Default::default(),211 ..Default::default()212 }213 }};214}215216#[cfg(feature = "unique-runtime")]217macro_rules! testnet_genesis {218 (219 $runtime:path,220 $root_key:expr,221 $initial_invulnerables:expr,222 $endowed_accounts:expr,223 $id:expr224 ) => {{225 use $runtime::*;226227 GenesisConfig {228 system: SystemConfig {229 code: WASM_BINARY230 .expect("WASM binary was not build, please build it!")231 .to_vec(),232 },233 common: Default::default(),234 configuration: Default::default(),235 nonfungible: Default::default(),236 balances: BalancesConfig {237 balances: $endowed_accounts238 .iter()239 .cloned()240 // 1e13 UNQ241 .map(|k| (k, 1 << 100))242 .collect(),243 },244 treasury: Default::default(),245 tokens: TokensConfig { balances: vec![] },246 sudo: SudoConfig {247 key: Some($root_key),248 },249 vesting: VestingConfig { vesting: vec![] },250 parachain_info: ParachainInfoConfig {251 parachain_id: $id.into(),252 },253 parachain_system: Default::default(),254 aura: AuraConfig {255 authorities: $initial_invulnerables256 .into_iter()257 .map(|(_, aura)| aura)258 .collect(),259 },260 aura_ext: Default::default(),261 evm: EVMConfig {262 accounts: BTreeMap::new(),263 },264 ethereum: EthereumConfig {},265 polkadot_xcm: Default::default(),266 transaction_payment: Default::default(),267 }268 }};269}270271pub fn development_config() -> DefaultChainSpec {272 let mut properties = Map::new();273 properties.insert("tokenSymbol".into(), default_runtime::TOKEN_SYMBOL.into());274 properties.insert("tokenDecimals".into(), default_runtime::DECIMALS.into());275 properties.insert(276 "ss58Format".into(),277 default_runtime::SS58Prefix::get().into(),278 );279280 DefaultChainSpec::from_genesis(281 // Name282 format!(283 "{}{}",284 default_runtime::VERSION.spec_name.to_uppercase(),285 if cfg!(feature = "unique-runtime") {286 ""287 } else {288 " by UNIQUE"289 }290 )291 .as_str(),292 // ID293 format!("{}_dev", default_runtime::VERSION.spec_name).as_str(),294 ChainType::Local,295 move || {296 testnet_genesis!(297 default_runtime,298 // Sudo account299 get_account_id_from_seed::<sr25519::Public>("Alice"),300 [301 (302 get_account_id_from_seed::<sr25519::Public>("Alice"),303 get_from_seed::<AuraId>("Alice"),304 ),305 (306 get_account_id_from_seed::<sr25519::Public>("Bob"),307 get_from_seed::<AuraId>("Bob"),308 ),309 ],310 // Pre-funded accounts311 vec![312 get_account_id_from_seed::<sr25519::Public>("Alice"),313 get_account_id_from_seed::<sr25519::Public>("Bob"),314 get_account_id_from_seed::<sr25519::Public>("Charlie"),315 get_account_id_from_seed::<sr25519::Public>("Dave"),316 get_account_id_from_seed::<sr25519::Public>("Eve"),317 get_account_id_from_seed::<sr25519::Public>("Ferdie"),318 get_account_id_from_seed::<sr25519::Public>("Alice//stash"),319 get_account_id_from_seed::<sr25519::Public>("Bob//stash"),320 get_account_id_from_seed::<sr25519::Public>("Charlie//stash"),321 get_account_id_from_seed::<sr25519::Public>("Dave//stash"),322 get_account_id_from_seed::<sr25519::Public>("Eve//stash"),323 get_account_id_from_seed::<sr25519::Public>("Ferdie//stash"),324 ],325 PARA_ID326 )327 },328 // Bootnodes329 vec![],330 // Telemetry331 None,332 // Protocol ID333 None,334 None,335 // Properties336 Some(properties),337 // Extensions338 Extensions {339 relay_chain: "rococo-dev".into(),340 para_id: PARA_ID,341 },342 )343}344345pub fn local_testnet_config() -> DefaultChainSpec {346 let mut properties = Map::new();347 properties.insert("tokenSymbol".into(), default_runtime::TOKEN_SYMBOL.into());348 properties.insert("tokenDecimals".into(), default_runtime::DECIMALS.into());349 properties.insert(350 "ss58Format".into(),351 default_runtime::SS58Prefix::get().into(),352 );353354 DefaultChainSpec::from_genesis(355 // Name356 format!(357 "{}{}",358 default_runtime::VERSION.impl_name.to_uppercase(),359 if cfg!(feature = "unique-runtime") {360 ""361 } else {362 " by UNIQUE"363 }364 )365 .as_str(),366 // ID367 format!("{}_local", default_runtime::VERSION.spec_name).as_str(),368 ChainType::Local,369 move || {370 testnet_genesis!(371 default_runtime,372 // Sudo account373 get_account_id_from_seed::<sr25519::Public>("Alice"),374 [375 (376 get_account_id_from_seed::<sr25519::Public>("Alice"),377 get_from_seed::<AuraId>("Alice"),378 ),379 (380 get_account_id_from_seed::<sr25519::Public>("Bob"),381 get_from_seed::<AuraId>("Bob"),382 ),383 ],384 // Pre-funded accounts385 vec![386 get_account_id_from_seed::<sr25519::Public>("Alice"),387 get_account_id_from_seed::<sr25519::Public>("Bob"),388 get_account_id_from_seed::<sr25519::Public>("Charlie"),389 get_account_id_from_seed::<sr25519::Public>("Dave"),390 get_account_id_from_seed::<sr25519::Public>("Eve"),391 get_account_id_from_seed::<sr25519::Public>("Ferdie"),392 get_account_id_from_seed::<sr25519::Public>("Alice//stash"),393 get_account_id_from_seed::<sr25519::Public>("Bob//stash"),394 get_account_id_from_seed::<sr25519::Public>("Charlie//stash"),395 get_account_id_from_seed::<sr25519::Public>("Dave//stash"),396 get_account_id_from_seed::<sr25519::Public>("Eve//stash"),397 get_account_id_from_seed::<sr25519::Public>("Ferdie//stash"),398 ],399 PARA_ID400 )401 },402 // Bootnodes403 vec![],404 // Telemetry405 None,406 // Protocol ID407 None,408 None,409 // Properties410 Some(properties),411 // Extensions412 Extensions {413 relay_chain: "westend-local".into(),414 para_id: PARA_ID,415 },416 )417}runtime/common/config/pallets/mod.rsdiffbeforeafterboth--- a/runtime/common/config/pallets/mod.rs
+++ b/runtime/common/config/pallets/mod.rs
@@ -24,7 +24,7 @@
weights::CommonWeights,
RelayChainBlockNumberProvider,
},
- Runtime, RuntimeEvent, RuntimeCall, RUNTIME_NAME, TOKEN_SYMBOL, DECIMALS, Balances,
+ Runtime, RuntimeEvent, RuntimeCall, VERSION, TOKEN_SYMBOL, DECIMALS, Balances,
};
use frame_support::traits::{ConstU32, ConstU64, Currency};
use up_common::{
@@ -90,7 +90,7 @@
parameter_types! {
pub const Decimals: u8 = DECIMALS;
- pub Name: String = RUNTIME_NAME.to_string();
+ pub Name: String = String::from_utf8_lossy(VERSION.impl_name.as_ref()).to_string();
pub Symbol: String = TOKEN_SYMBOL.to_string();
}
impl pallet_balances_adapter::Config for Runtime {
runtime/opal/Cargo.tomldiffbeforeafterboth--- a/runtime/opal/Cargo.toml
+++ b/runtime/opal/Cargo.toml
@@ -64,7 +64,6 @@
'sp-runtime/runtime-benchmarks',
'xcm-builder/runtime-benchmarks',
]
-state-version-0 = []
std = [
'codec/std',
'cumulus-pallet-aura-ext/std',
runtime/opal/src/lib.rsdiffbeforeafterboth--- a/runtime/opal/src/lib.rs
+++ b/runtime/opal/src/lib.rs
@@ -43,22 +43,19 @@
pub use runtime_common::*;
-pub const RUNTIME_NAME: &str = "opal";
pub const TOKEN_SYMBOL: &str = "OPL";
pub const DECIMALS: u8 = 18;
/// This runtime version.
+#[sp_version::runtime_version]
pub const VERSION: RuntimeVersion = RuntimeVersion {
- spec_name: create_runtime_str!(RUNTIME_NAME),
- impl_name: create_runtime_str!(RUNTIME_NAME),
+ spec_name: create_runtime_str!("opal"),
+ impl_name: create_runtime_str!("opal"),
authoring_version: 1,
spec_version: 943060,
impl_version: 0,
apis: RUNTIME_API_VERSIONS,
transaction_version: 3,
- #[cfg(feature = "state-version-0")]
- state_version: 0,
- #[cfg(not(feature = "state-version-0"))]
state_version: 1,
};
runtime/quartz/Cargo.tomldiffbeforeafterboth--- a/runtime/quartz/Cargo.toml
+++ b/runtime/quartz/Cargo.toml
@@ -60,7 +60,6 @@
'sp-runtime/runtime-benchmarks',
'xcm-builder/runtime-benchmarks',
]
-state-version-0 = []
std = [
'codec/std',
'cumulus-pallet-aura-ext/std',
runtime/quartz/src/lib.rsdiffbeforeafterboth--- a/runtime/quartz/src/lib.rs
+++ b/runtime/quartz/src/lib.rs
@@ -43,25 +43,34 @@
pub use runtime_common::*;
-#[cfg(feature = "become-sapphire")]
-pub const RUNTIME_NAME: &str = "sapphire";
-#[cfg(not(feature = "become-sapphire"))]
-pub const RUNTIME_NAME: &str = "quartz";
pub const TOKEN_SYMBOL: &str = "QTZ";
pub const DECIMALS: u8 = 18;
/// This runtime version.
+#[cfg(not(feature = "become-sapphire"))]
+#[sp_version::runtime_version]
pub const VERSION: RuntimeVersion = RuntimeVersion {
- spec_name: create_runtime_str!(RUNTIME_NAME),
- impl_name: create_runtime_str!(RUNTIME_NAME),
+ spec_name: create_runtime_str!("quartz"),
+ impl_name: create_runtime_str!("quartz"),
+
+ authoring_version: 1,
+ spec_version: 943060,
+ impl_version: 0,
+ apis: RUNTIME_API_VERSIONS,
+ transaction_version: 3,
+ state_version: 1,
+};
+#[cfg(feature = "become-sapphire")]
+#[sp_version::runtime_version]
+pub const VERSION: RuntimeVersion = RuntimeVersion {
+ spec_name: create_runtime_str!("sapphire"),
+ impl_name: create_runtime_str!("sapphire"),
+
authoring_version: 1,
spec_version: 943060,
impl_version: 0,
apis: RUNTIME_API_VERSIONS,
transaction_version: 3,
- #[cfg(feature = "state-version-0")]
- state_version: 0,
- #[cfg(not(feature = "state-version-0"))]
state_version: 1,
};
runtime/unique/Cargo.tomldiffbeforeafterboth--- a/runtime/unique/Cargo.toml
+++ b/runtime/unique/Cargo.toml
@@ -58,7 +58,6 @@
'up-data-structs/runtime-benchmarks',
'xcm-builder/runtime-benchmarks',
]
-state-version-0 = []
std = [
'codec/std',
'cumulus-pallet-aura-ext/std',
runtime/unique/src/lib.rsdiffbeforeafterboth--- a/runtime/unique/src/lib.rs
+++ b/runtime/unique/src/lib.rs
@@ -43,22 +43,19 @@
pub use runtime_common::*;
-pub const RUNTIME_NAME: &str = "unique";
pub const TOKEN_SYMBOL: &str = "UNQ";
pub const DECIMALS: u8 = 18;
/// This runtime version.
+#[sp_version::runtime_version]
pub const VERSION: RuntimeVersion = RuntimeVersion {
- spec_name: create_runtime_str!(RUNTIME_NAME),
- impl_name: create_runtime_str!(RUNTIME_NAME),
+ spec_name: create_runtime_str!("unique"),
+ impl_name: create_runtime_str!("unique"),
authoring_version: 1,
spec_version: 943060,
impl_version: 0,
apis: RUNTIME_API_VERSIONS,
transaction_version: 3,
- #[cfg(feature = "state-version-0")]
- state_version: 0,
- #[cfg(not(feature = "state-version-0"))]
state_version: 1,
};