diff --git a/.github/workflows/runtimes-matrix.json b/.github/workflows/runtimes-matrix.json index fbee38f71504edb64dab5aec0410cfcde7a1d978..37bd266abe6da8fef3007dc1c089d352f6f7bb1e 100644 --- a/.github/workflows/runtimes-matrix.json +++ b/.github/workflows/runtimes-matrix.json @@ -138,7 +138,7 @@ "header": "cumulus/file_header.txt", "template": "cumulus/templates/xcm-bench-template.hbs", "bench_features": "runtime-benchmarks", - "bench_flags": "--genesis-builder-policy=none --exclude-pallets=pallet_xcm,pallet_xcm_benchmarks::fungible,pallet_xcm_benchmarks::generic", + "bench_flags": "", "uri": "wss://rococo-people-rpc.polkadot.io:443", "is_relay": false }, @@ -149,7 +149,7 @@ "header": "cumulus/file_header.txt", "template": "cumulus/templates/xcm-bench-template.hbs", "bench_features": "runtime-benchmarks", - "bench_flags": "--genesis-builder-policy=none --exclude-pallets=pallet_xcm,pallet_xcm_benchmarks::fungible,pallet_xcm_benchmarks::generic", + "bench_flags": "", "uri": "wss://westend-people-rpc.polkadot.io:443", "is_relay": false } diff --git a/Cargo.lock b/Cargo.lock index bf41839ea646ae1cc6372fb958f53d90e9d5fe5a..cf75334f495b08f4ed385ef7c59f7828040cceb1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -17104,12 +17104,14 @@ dependencies = [ "rococo-runtime-constants 7.0.0", "scale-info", "serde", + "serde_json", "sp-api 26.0.0", "sp-block-builder 26.0.0", "sp-consensus-aura 0.32.0", "sp-core 28.0.0", "sp-genesis-builder 0.8.0", "sp-inherents 26.0.0", + "sp-keyring 31.0.0", "sp-offchain 26.0.0", "sp-runtime 31.0.1", "sp-session 27.0.0", @@ -17206,12 +17208,14 @@ dependencies = [ "polkadot-runtime-common 7.0.0", "scale-info", "serde", + "serde_json", "sp-api 26.0.0", "sp-block-builder 26.0.0", "sp-consensus-aura 0.32.0", "sp-core 28.0.0", "sp-genesis-builder 0.8.0", "sp-inherents 26.0.0", + "sp-keyring 31.0.0", "sp-offchain 26.0.0", "sp-runtime 31.0.1", "sp-session 27.0.0", diff --git a/cumulus/parachains/runtimes/people/people-rococo/Cargo.toml b/cumulus/parachains/runtimes/people/people-rococo/Cargo.toml index 6391f8c3eeb904586c9a0bc8449eb546218846da..20ad7cd7ca3f7ce52043a7a33e8ee38a0b536f3a 100644 --- a/cumulus/parachains/runtimes/people/people-rococo/Cargo.toml +++ b/cumulus/parachains/runtimes/people/people-rococo/Cargo.toml @@ -18,6 +18,7 @@ hex-literal = { workspace = true, default-features = true } log = { workspace = true } scale-info = { features = ["derive"], workspace = true } serde = { optional = true, features = ["derive"], workspace = true, default-features = true } +serde_json = { features = ["alloc"], workspace = true } # Substrate frame-benchmarking = { optional = true, workspace = true } @@ -46,6 +47,7 @@ sp-consensus-aura = { workspace = true } sp-core = { workspace = true } sp-genesis-builder = { workspace = true } sp-inherents = { workspace = true } +sp-keyring = { workspace = true } sp-offchain = { workspace = true } sp-runtime = { workspace = true } sp-session = { workspace = true } @@ -127,12 +129,14 @@ std = [ "rococo-runtime-constants/std", "scale-info/std", "serde", + "serde_json/std", "sp-api/std", "sp-block-builder/std", "sp-consensus-aura/std", "sp-core/std", "sp-genesis-builder/std", "sp-inherents/std", + "sp-keyring/std", "sp-offchain/std", "sp-runtime/std", "sp-session/std", diff --git a/cumulus/parachains/runtimes/people/people-rococo/src/genesis_config_presets.rs b/cumulus/parachains/runtimes/people/people-rococo/src/genesis_config_presets.rs new file mode 100644 index 0000000000000000000000000000000000000000..312262d41a9f78d3b28a0b9f7e031b5931c3f3b5 --- /dev/null +++ b/cumulus/parachains/runtimes/people/people-rococo/src/genesis_config_presets.rs @@ -0,0 +1,102 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// SPDX-License-Identifier: Apache-2.0 + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//! # People Rococo Runtime genesis config presets + +use crate::*; +use alloc::{vec, vec::Vec}; +use cumulus_primitives_core::ParaId; +use frame_support::build_struct_json_patch; +use parachains_common::{AccountId, AuraId}; +use sp_genesis_builder::PresetId; +use sp_keyring::Sr25519Keyring; +use testnet_parachains_constants::rococo::{currency::UNITS as ROC, xcm_version::SAFE_XCM_VERSION}; + +const PEOPLE_ROCOCO_ED: Balance = ExistentialDeposit::get(); +const PEOPLE_PARA_ID: ParaId = ParaId::new(1004); + +fn people_rococo_genesis( + invulnerables: Vec<(AccountId, AuraId)>, + endowed_accounts: Vec<AccountId>, + endowment: Balance, + id: ParaId, +) -> serde_json::Value { + build_struct_json_patch!(RuntimeGenesisConfig { + balances: BalancesConfig { + balances: endowed_accounts.iter().cloned().map(|k| (k, endowment)).collect(), + }, + parachain_info: ParachainInfoConfig { parachain_id: id }, + collator_selection: CollatorSelectionConfig { + invulnerables: invulnerables.iter().cloned().map(|(acc, _)| acc).collect(), + candidacy_bond: PEOPLE_ROCOCO_ED * 16, + }, + session: SessionConfig { + keys: invulnerables + .into_iter() + .map(|(acc, aura)| { + ( + acc.clone(), // account id + acc, // validator id + SessionKeys { aura }, // session keys + ) + }) + .collect(), + }, + polkadot_xcm: PolkadotXcmConfig { safe_xcm_version: Some(SAFE_XCM_VERSION) }, + }) +} + +/// Provides the JSON representation of predefined genesis config for given `id`. +pub fn get_preset(id: &PresetId) -> Option<Vec<u8>> { + let patch = match id.as_ref() { + sp_genesis_builder::LOCAL_TESTNET_RUNTIME_PRESET => people_rococo_genesis( + // initial collators. + vec![ + (Sr25519Keyring::Alice.to_account_id(), Sr25519Keyring::Alice.public().into()), + (Sr25519Keyring::Bob.to_account_id(), Sr25519Keyring::Bob.public().into()), + ], + Sr25519Keyring::well_known().map(|x| x.to_account_id()).collect(), + ROC * 1_000_000, + PEOPLE_PARA_ID, + ), + sp_genesis_builder::DEV_RUNTIME_PRESET => people_rococo_genesis( + // initial collators. + vec![(Sr25519Keyring::Alice.to_account_id(), Sr25519Keyring::Alice.public().into())], + vec![ + Sr25519Keyring::Alice.to_account_id(), + Sr25519Keyring::Bob.to_account_id(), + Sr25519Keyring::AliceStash.to_account_id(), + Sr25519Keyring::BobStash.to_account_id(), + ], + ROC * 1_000_000, + PEOPLE_PARA_ID, + ), + _ => return None, + }; + + Some( + serde_json::to_string(&patch) + .expect("serialization to json is expected to work. qed.") + .into_bytes(), + ) +} + +/// List of supported presets. +pub fn preset_names() -> Vec<PresetId> { + vec![ + PresetId::from(sp_genesis_builder::DEV_RUNTIME_PRESET), + PresetId::from(sp_genesis_builder::LOCAL_TESTNET_RUNTIME_PRESET), + ] +} diff --git a/cumulus/parachains/runtimes/people/people-rococo/src/lib.rs b/cumulus/parachains/runtimes/people/people-rococo/src/lib.rs index 4a71735853a86dad1f63376d25f314efbd53a0cd..40a59c5740847dafc353c772c2499f407cdb0a54 100644 --- a/cumulus/parachains/runtimes/people/people-rococo/src/lib.rs +++ b/cumulus/parachains/runtimes/people/people-rococo/src/lib.rs @@ -18,6 +18,7 @@ #[cfg(feature = "std")] include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); +mod genesis_config_presets; pub mod people; mod weights; pub mod xcm_config; @@ -1088,11 +1089,11 @@ impl_runtime_apis! { } fn get_preset(id: &Option<sp_genesis_builder::PresetId>) -> Option<Vec<u8>> { - get_preset::<RuntimeGenesisConfig>(id, |_| None) + get_preset::<RuntimeGenesisConfig>(id, &genesis_config_presets::get_preset) } fn preset_names() -> Vec<sp_genesis_builder::PresetId> { - vec![] + genesis_config_presets::preset_names() } } diff --git a/cumulus/parachains/runtimes/people/people-westend/Cargo.toml b/cumulus/parachains/runtimes/people/people-westend/Cargo.toml index fae0fd2e33324e500d75983ce09db276450fa79c..f9fa7d7838612b26725e6cf3027aaa59546ff1f0 100644 --- a/cumulus/parachains/runtimes/people/people-westend/Cargo.toml +++ b/cumulus/parachains/runtimes/people/people-westend/Cargo.toml @@ -18,6 +18,7 @@ hex-literal = { workspace = true, default-features = true } log = { workspace = true } scale-info = { features = ["derive"], workspace = true } serde = { optional = true, features = ["derive"], workspace = true, default-features = true } +serde_json = { features = ["alloc"], workspace = true } # Substrate frame-benchmarking = { optional = true, workspace = true } @@ -46,6 +47,7 @@ sp-consensus-aura = { workspace = true } sp-core = { workspace = true } sp-genesis-builder = { workspace = true } sp-inherents = { workspace = true } +sp-keyring = { workspace = true } sp-offchain = { workspace = true } sp-runtime = { workspace = true } sp-session = { workspace = true } @@ -126,12 +128,14 @@ std = [ "polkadot-runtime-common/std", "scale-info/std", "serde", + "serde_json/std", "sp-api/std", "sp-block-builder/std", "sp-consensus-aura/std", "sp-core/std", "sp-genesis-builder/std", "sp-inherents/std", + "sp-keyring/std", "sp-offchain/std", "sp-runtime/std", "sp-session/std", diff --git a/cumulus/parachains/runtimes/people/people-westend/src/genesis_config_presets.rs b/cumulus/parachains/runtimes/people/people-westend/src/genesis_config_presets.rs new file mode 100644 index 0000000000000000000000000000000000000000..ca9217f2d88c9260aa3db62b0df55f409e748ff7 --- /dev/null +++ b/cumulus/parachains/runtimes/people/people-westend/src/genesis_config_presets.rs @@ -0,0 +1,104 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// SPDX-License-Identifier: Apache-2.0 + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//! # People Westend Runtime genesis config presets + +use crate::*; +use alloc::{vec, vec::Vec}; +use cumulus_primitives_core::ParaId; +use frame_support::build_struct_json_patch; +use parachains_common::{AccountId, AuraId}; +use sp_genesis_builder::PresetId; +use sp_keyring::Sr25519Keyring; +use testnet_parachains_constants::westend::{ + currency::UNITS as WND, xcm_version::SAFE_XCM_VERSION, +}; + +const PEOPLE_WESTEND_ED: Balance = ExistentialDeposit::get(); +const PEOPLE_PARA_ID: ParaId = ParaId::new(1004); + +fn people_westend_genesis( + invulnerables: Vec<(AccountId, AuraId)>, + endowed_accounts: Vec<AccountId>, + endowment: Balance, + id: ParaId, +) -> serde_json::Value { + build_struct_json_patch!(RuntimeGenesisConfig { + balances: BalancesConfig { + balances: endowed_accounts.iter().cloned().map(|k| (k, endowment)).collect(), + }, + parachain_info: ParachainInfoConfig { parachain_id: id }, + collator_selection: CollatorSelectionConfig { + invulnerables: invulnerables.iter().cloned().map(|(acc, _)| acc).collect(), + candidacy_bond: PEOPLE_WESTEND_ED * 16, + }, + session: SessionConfig { + keys: invulnerables + .into_iter() + .map(|(acc, aura)| { + ( + acc.clone(), // account id + acc, // validator id + SessionKeys { aura }, // session keys + ) + }) + .collect(), + }, + polkadot_xcm: PolkadotXcmConfig { safe_xcm_version: Some(SAFE_XCM_VERSION) }, + }) +} + +/// Provides the JSON representation of predefined genesis config for given `id`. +pub fn get_preset(id: &PresetId) -> Option<Vec<u8>> { + let patch = match id.as_ref() { + sp_genesis_builder::LOCAL_TESTNET_RUNTIME_PRESET => people_westend_genesis( + // initial collators. + vec![ + (Sr25519Keyring::Alice.to_account_id(), Sr25519Keyring::Alice.public().into()), + (Sr25519Keyring::Bob.to_account_id(), Sr25519Keyring::Bob.public().into()), + ], + Sr25519Keyring::well_known().map(|x| x.to_account_id()).collect(), + WND * 1_000_000, + PEOPLE_PARA_ID, + ), + sp_genesis_builder::DEV_RUNTIME_PRESET => people_westend_genesis( + // initial collators. + vec![(Sr25519Keyring::Alice.to_account_id(), Sr25519Keyring::Alice.public().into())], + vec![ + Sr25519Keyring::Alice.to_account_id(), + Sr25519Keyring::Bob.to_account_id(), + Sr25519Keyring::AliceStash.to_account_id(), + Sr25519Keyring::BobStash.to_account_id(), + ], + WND * 1_000_000, + PEOPLE_PARA_ID, + ), + _ => return None, + }; + + Some( + serde_json::to_string(&patch) + .expect("serialization to json is expected to work. qed.") + .into_bytes(), + ) +} + +/// List of supported presets. +pub fn preset_names() -> Vec<PresetId> { + vec![ + PresetId::from(sp_genesis_builder::DEV_RUNTIME_PRESET), + PresetId::from(sp_genesis_builder::LOCAL_TESTNET_RUNTIME_PRESET), + ] +} diff --git a/cumulus/parachains/runtimes/people/people-westend/src/lib.rs b/cumulus/parachains/runtimes/people/people-westend/src/lib.rs index 7107aba0a576fd8589972061ba54bcc7467c071b..32088276722bb4f7e2caa632df60362d42270d29 100644 --- a/cumulus/parachains/runtimes/people/people-westend/src/lib.rs +++ b/cumulus/parachains/runtimes/people/people-westend/src/lib.rs @@ -18,6 +18,7 @@ #[cfg(feature = "std")] include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); +mod genesis_config_presets; pub mod people; mod weights; pub mod xcm_config; @@ -1088,11 +1089,11 @@ impl_runtime_apis! { } fn get_preset(id: &Option<sp_genesis_builder::PresetId>) -> Option<Vec<u8>> { - get_preset::<RuntimeGenesisConfig>(id, |_| None) + get_preset::<RuntimeGenesisConfig>(id, &genesis_config_presets::get_preset) } fn preset_names() -> Vec<sp_genesis_builder::PresetId> { - vec![] + genesis_config_presets::preset_names() } } diff --git a/cumulus/polkadot-parachain/src/chain_spec/people.rs b/cumulus/polkadot-parachain/src/chain_spec/people.rs index 4a1fae516dc944186f9fbb806759831360e27c38..6d91e0d2b8c599d8e3ebbfe79255d01e95673dea 100644 --- a/cumulus/polkadot-parachain/src/chain_spec/people.rs +++ b/cumulus/polkadot-parachain/src/chain_spec/people.rs @@ -15,9 +15,8 @@ // limitations under the License. use cumulus_primitives_core::ParaId; -use parachains_common::Balance as PeopleBalance; use polkadot_omni_node_lib::chain_spec::GenericChainSpec; -use sc_chain_spec::ChainSpec; +use sc_chain_spec::{ChainSpec, ChainType}; use std::str::FromStr; /// Collects all supported People configurations. @@ -74,12 +73,14 @@ impl PeopleRuntimeType { "Rococo People Local", "rococo-local", ParaId::new(1004), + ChainType::Local, ))), PeopleRuntimeType::RococoDevelopment => Ok(Box::new(rococo::local_config( rococo::PEOPLE_ROCOCO_DEVELOPMENT, "Rococo People Development", "rococo-development", ParaId::new(1004), + ChainType::Development, ))), PeopleRuntimeType::Westend => Ok(Box::new(GenericChainSpec::from_json_bytes( &include_bytes!("../../chain-specs/people-westend.json")[..], @@ -89,12 +90,14 @@ impl PeopleRuntimeType { "Westend People Local", "westend-local", ParaId::new(1004), + ChainType::Local, ))), PeopleRuntimeType::WestendDevelopment => Ok(Box::new(westend::local_config( westend::PEOPLE_WESTEND_DEVELOPMENT, "Westend People Development", "westend-development", ParaId::new(1004), + ChainType::Development, ))), other => Err(std::format!( "No default config present for {:?}, you should provide a chain-spec as json file!", @@ -119,23 +122,20 @@ fn ensure_id(id: &str) -> Result<&str, String> { /// Sub-module for Rococo setup. pub mod rococo { - use super::{ParaId, PeopleBalance}; - use crate::chain_spec::SAFE_XCM_VERSION; - use parachains_common::{AccountId, AuraId}; + use super::ParaId; use polkadot_omni_node_lib::chain_spec::{Extensions, GenericChainSpec}; use sc_chain_spec::ChainType; - use sp_keyring::Sr25519Keyring; pub(crate) const PEOPLE_ROCOCO: &str = "people-rococo"; pub(crate) const PEOPLE_ROCOCO_LOCAL: &str = "people-rococo-local"; pub(crate) const PEOPLE_ROCOCO_DEVELOPMENT: &str = "people-rococo-dev"; - const PEOPLE_ROCOCO_ED: PeopleBalance = people_rococo_runtime::ExistentialDeposit::get(); pub fn local_config( id: &str, chain_name: &str, relay_chain: &str, para_id: ParaId, + chain_type: ChainType, ) -> GenericChainSpec { let mut properties = sc_chain_spec::Properties::new(); properties.insert("ss58Format".into(), 42.into()); @@ -149,82 +149,33 @@ pub mod rococo { ) .with_name(chain_name) .with_id(super::ensure_id(id).expect("invalid id")) - .with_chain_type(ChainType::Local) - .with_genesis_config_patch(genesis( - // initial collators. - vec![ - (Sr25519Keyring::Alice.to_account_id(), Sr25519Keyring::Alice.public().into()), - (Sr25519Keyring::Bob.to_account_id(), Sr25519Keyring::Bob.public().into()), - ], - Sr25519Keyring::well_known().map(|k| k.to_account_id()).collect(), - para_id, - )) + .with_chain_type(chain_type.clone()) + .with_genesis_config_preset_name(match chain_type { + ChainType::Development => sp_genesis_builder::DEV_RUNTIME_PRESET, + ChainType::Local => sp_genesis_builder::LOCAL_TESTNET_RUNTIME_PRESET, + _ => panic!("chain_type: {chain_type:?} not supported here!"), + }) .with_properties(properties) .build() } - - fn genesis( - invulnerables: Vec<(AccountId, AuraId)>, - endowed_accounts: Vec<AccountId>, - id: ParaId, - ) -> serde_json::Value { - serde_json::json!({ - "balances": { - "balances": endowed_accounts - .iter() - .cloned() - .map(|k| (k, PEOPLE_ROCOCO_ED * 524_288)) - .collect::<Vec<_>>(), - }, - "parachainInfo": { - "parachainId": id, - }, - "collatorSelection": { - "invulnerables": invulnerables - .iter() - .cloned() - .map(|(acc, _)| acc) - .collect::<Vec<_>>(), - "candidacyBond": PEOPLE_ROCOCO_ED * 16, - }, - "session": { - "keys": invulnerables - .into_iter() - .map(|(acc, aura)| { - ( - acc.clone(), // account id - acc, // validator id - people_rococo_runtime::SessionKeys { aura }, // session keys - ) - }) - .collect::<Vec<_>>(), - }, - "polkadotXcm": { - "safeXcmVersion": Some(SAFE_XCM_VERSION), - } - }) - } } /// Sub-module for Westend setup. pub mod westend { - use super::{ParaId, PeopleBalance}; - use crate::chain_spec::SAFE_XCM_VERSION; - use parachains_common::{AccountId, AuraId}; + use super::ParaId; use polkadot_omni_node_lib::chain_spec::{Extensions, GenericChainSpec}; use sc_chain_spec::ChainType; - use sp_keyring::Sr25519Keyring; pub(crate) const PEOPLE_WESTEND: &str = "people-westend"; pub(crate) const PEOPLE_WESTEND_LOCAL: &str = "people-westend-local"; pub(crate) const PEOPLE_WESTEND_DEVELOPMENT: &str = "people-westend-dev"; - const PEOPLE_WESTEND_ED: PeopleBalance = people_westend_runtime::ExistentialDeposit::get(); pub fn local_config( id: &str, chain_name: &str, relay_chain: &str, para_id: ParaId, + chain_type: ChainType, ) -> GenericChainSpec { let mut properties = sc_chain_spec::Properties::new(); properties.insert("ss58Format".into(), 42.into()); @@ -238,61 +189,15 @@ pub mod westend { ) .with_name(chain_name) .with_id(super::ensure_id(id).expect("invalid id")) - .with_chain_type(ChainType::Local) - .with_genesis_config_patch(genesis( - // initial collators. - vec![ - (Sr25519Keyring::Alice.to_account_id(), Sr25519Keyring::Alice.public().into()), - (Sr25519Keyring::Bob.to_account_id(), Sr25519Keyring::Bob.public().into()), - ], - Sr25519Keyring::well_known().map(|k| k.to_account_id()).collect(), - para_id, - )) + .with_chain_type(chain_type.clone()) + .with_genesis_config_preset_name(match chain_type { + ChainType::Development => sp_genesis_builder::DEV_RUNTIME_PRESET, + ChainType::Local => sp_genesis_builder::LOCAL_TESTNET_RUNTIME_PRESET, + _ => panic!("chain_type: {chain_type:?} not supported here!"), + }) .with_properties(properties) .build() } - - fn genesis( - invulnerables: Vec<(AccountId, AuraId)>, - endowed_accounts: Vec<AccountId>, - id: ParaId, - ) -> serde_json::Value { - serde_json::json!({ - "balances": { - "balances": endowed_accounts - .iter() - .cloned() - .map(|k| (k, PEOPLE_WESTEND_ED * 524_288)) - .collect::<Vec<_>>(), - }, - "parachainInfo": { - "parachainId": id, - }, - "collatorSelection": { - "invulnerables": invulnerables - .iter() - .cloned() - .map(|(acc, _)| acc) - .collect::<Vec<_>>(), - "candidacyBond": PEOPLE_WESTEND_ED * 16, - }, - "session": { - "keys": invulnerables - .into_iter() - .map(|(acc, aura)| { - ( - acc.clone(), // account id - acc, // validator id - people_westend_runtime::SessionKeys { aura }, // session keys - ) - }) - .collect::<Vec<_>>(), - }, - "polkadotXcm": { - "safeXcmVersion": Some(SAFE_XCM_VERSION), - } - }) - } } pub mod kusama { diff --git a/prdoc/pr_7477.prdoc b/prdoc/pr_7477.prdoc new file mode 100644 index 0000000000000000000000000000000000000000..6219722a73a891b5fb82ce84d3c7ee5c6204e045 --- /dev/null +++ b/prdoc/pr_7477.prdoc @@ -0,0 +1,14 @@ +title: add genesis presets for the people chains +doc: +- audience: Runtime Dev + description: |- + Extracted from #7473. + + Part of: https://github.com/paritytech/polkadot-sdk/issues/5704. +crates: +- name: people-rococo-runtime + bump: minor +- name: people-westend-runtime + bump: minor +- name: polkadot-parachain-bin + bump: minor