mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-04-30 14:17:56 +00:00
GenesisBuild<T,I> deprecated. BuildGenesisConfig added. (#14306)
* frame::support: GenesisConfig types for Runtime enabled * frame::support: macro generating GenesisBuild::build for RuntimeGenesisConfig * frame: ambiguity BuildStorage vs GenesisBuild fixed * fix * RuntimeGenesisBuild added * Revert "frame: ambiguity BuildStorage vs GenesisBuild fixed" This reverts commit 950f3d019d0e21c55a739c44cc19cdabd3ff0293. * Revert "fix" This reverts commit a2f76dd24e9a16cf9230d45825ed28787211118b. * Revert "RuntimeGenesisBuild added" This reverts commit 3c131b618138ced29c01ab8d15d8c6410c9e128b. * Revert "Revert "frame: ambiguity BuildStorage vs GenesisBuild fixed"" This reverts commit 2b1ecd467231eddec69f8d328039ba48a380da3d. * Revert "Revert "fix"" This reverts commit fd7fa629adf579d83e30e6ae9fd162637fc45e30. * Code review suggestions * frame: BuildGenesisConfig added, BuildGenesis deprecated * frame: some pallets updated with BuildGenesisConfig * constuct_runtime: support for BuildGenesisConfig * frame::support: genesis_build macro supports BuildGenesisConfig * frame: BuildGenesisConfig added, BuildGenesis deprecated * Cargo.lock update * test-runtime: fixes * Revert "fix" This reverts commit a2f76dd24e9a16cf9230d45825ed28787211118b. * Revert "frame: ambiguity BuildStorage vs GenesisBuild fixed" This reverts commit 950f3d019d0e21c55a739c44cc19cdabd3ff0293. * self review * doc fixed * ui tests fixed * fmt * tests fixed * genesis_build macrto fixed for non-generic GenesisConfig * BuildGenesisConfig constraints added * warning fixed * some duplication removed * fmt * fix * doc tests fix * doc fix * cleanup: remove BuildModuleGenesisStorage * self review comments * fix * Update frame/treasury/src/tests.rs Co-authored-by: Sebastian Kunert <skunert49@gmail.com> * Update frame/support/src/traits/hooks.rs Co-authored-by: Sebastian Kunert <skunert49@gmail.com> * doc fix: GenesisBuild exposed * ".git/.scripts/commands/fmt/fmt.sh" * frame: more serde(skip) + cleanup * Update frame/support/src/traits/hooks.rs Co-authored-by: Davide Galassi <davxy@datawok.net> * frame: phantom fields moved to the end of structs * chain-spec: Default::default cleanup * test-runtime: phantom at the end * merge master fixes * fix * fix * fix * fix * fix (facepalm) * Update frame/support/procedural/src/pallet/expand/genesis_build.rs Co-authored-by: Bastian Köcher <git@kchr.de> * fmt * fix * fix --------- Co-authored-by: parity-processbot <> Co-authored-by: Sebastian Kunert <skunert49@gmail.com> Co-authored-by: Davide Galassi <davxy@datawok.net> Co-authored-by: Bastian Köcher <git@kchr.de>
This commit is contained in:
committed by
GitHub
parent
49150ee583
commit
87d41d0a89
@@ -925,19 +925,25 @@ pub mod tests {
|
||||
>;
|
||||
|
||||
#[pallet::genesis_config]
|
||||
pub struct GenesisConfig {
|
||||
pub struct GenesisConfig<T: Config> {
|
||||
pub data: Vec<(u32, u64)>,
|
||||
pub test_config: Vec<(u32, u32, u64)>,
|
||||
#[serde(skip)]
|
||||
pub _config: sp_std::marker::PhantomData<T>,
|
||||
}
|
||||
|
||||
impl Default for GenesisConfig {
|
||||
impl<T: Config> Default for GenesisConfig<T> {
|
||||
fn default() -> Self {
|
||||
Self { data: vec![(15u32, 42u64)], test_config: vec![(15u32, 16u32, 42u64)] }
|
||||
Self {
|
||||
_config: Default::default(),
|
||||
data: vec![(15u32, 42u64)],
|
||||
test_config: vec![(15u32, 16u32, 42u64)],
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[pallet::genesis_build]
|
||||
impl<T: Config> GenesisBuild<T> for GenesisConfig {
|
||||
impl<T: Config> BuildGenesisConfig for GenesisConfig<T> {
|
||||
fn build(&self) {
|
||||
for (k, v) in &self.data {
|
||||
<Data<T>>::insert(k, v);
|
||||
@@ -1556,7 +1562,7 @@ pub mod pallet_prelude {
|
||||
},
|
||||
},
|
||||
traits::{
|
||||
ConstU32, EnsureOrigin, GenesisBuild, Get, GetDefault, GetStorageVersion, Hooks,
|
||||
BuildGenesisConfig, ConstU32, EnsureOrigin, Get, GetDefault, GetStorageVersion, Hooks,
|
||||
IsType, PalletInfoAccess, StorageInfoTrait, StorageVersion, TypedGet,
|
||||
},
|
||||
Blake2_128, Blake2_128Concat, Blake2_256, CloneNoBound, DebugNoBound, EqNoBound, Identity,
|
||||
@@ -2231,7 +2237,7 @@ pub mod pallet_prelude {
|
||||
/// for the pallet.
|
||||
///
|
||||
/// Item is defined as either an enum or a struct. It needs to be public and implement the
|
||||
/// trait [`GenesisBuild`](`traits::GenesisBuild`) with
|
||||
/// trait [`BuildGenesisConfig`](`traits::BuildGenesisConfig`) with
|
||||
/// [`#[pallet::genesis_build]`](#genesis-build-palletgenesis_build-optional). The type
|
||||
/// generics are constrained to be either none, or `T` or `T: Config`.
|
||||
///
|
||||
@@ -2513,14 +2519,15 @@ pub mod pallet_prelude {
|
||||
/// //
|
||||
/// // Type must implement the `Default` trait.
|
||||
/// #[pallet::genesis_config]
|
||||
/// #[derive(Default)]
|
||||
/// pub struct GenesisConfig {
|
||||
/// #[derive(frame_support::DefaultNoBound)]
|
||||
/// pub struct GenesisConfig<T: Config> {
|
||||
/// _config: sp_std::marker::PhantomData<T>,
|
||||
/// _myfield: u32,
|
||||
/// }
|
||||
///
|
||||
/// // Declare genesis builder. (This is need only if GenesisConfig is declared)
|
||||
/// #[pallet::genesis_build]
|
||||
/// impl<T: Config> GenesisBuild<T> for GenesisConfig {
|
||||
/// impl<T: Config> BuildGenesisConfig for GenesisConfig<T> {
|
||||
/// fn build(&self) {}
|
||||
/// }
|
||||
///
|
||||
@@ -2650,13 +2657,14 @@ pub mod pallet_prelude {
|
||||
/// StorageMap<Hasher = Blake2_128Concat, Key = u32, Value = u32>;
|
||||
///
|
||||
/// #[pallet::genesis_config]
|
||||
/// #[derive(Default)]
|
||||
/// pub struct GenesisConfig {
|
||||
/// #[derive(frame_support::DefaultNoBound)]
|
||||
/// pub struct GenesisConfig<T: Config<I>, I: 'static = ()> {
|
||||
/// _config: sp_std::marker::PhantomData<(T,I)>,
|
||||
/// _myfield: u32,
|
||||
/// }
|
||||
///
|
||||
/// #[pallet::genesis_build]
|
||||
/// impl<T: Config<I>, I: 'static> GenesisBuild<T, I> for GenesisConfig {
|
||||
/// impl<T: Config<I>, I: 'static> BuildGenesisConfig for GenesisConfig<T, I> {
|
||||
/// fn build(&self) {}
|
||||
/// }
|
||||
///
|
||||
|
||||
@@ -80,8 +80,10 @@ pub use metadata::{
|
||||
};
|
||||
|
||||
mod hooks;
|
||||
#[allow(deprecated)]
|
||||
pub use hooks::GenesisBuild;
|
||||
pub use hooks::{
|
||||
GenesisBuild, Hooks, IntegrityTest, OnFinalize, OnGenesis, OnIdle, OnInitialize,
|
||||
BuildGenesisConfig, Hooks, IntegrityTest, OnFinalize, OnGenesis, OnIdle, OnInitialize,
|
||||
OnRuntimeUpgrade, OnTimestampSet,
|
||||
};
|
||||
|
||||
|
||||
@@ -359,8 +359,19 @@ pub trait Hooks<BlockNumber> {
|
||||
fn integrity_test() {}
|
||||
}
|
||||
|
||||
/// A trait to define the build function of a genesis config for both runtime and pallets.
|
||||
///
|
||||
/// Replaces deprecated [`GenesisBuild<T,I>`].
|
||||
pub trait BuildGenesisConfig: Default + sp_runtime::traits::MaybeSerializeDeserialize {
|
||||
/// The build function puts initial `GenesisConfig` keys/values pairs into the storage.
|
||||
fn build(&self);
|
||||
}
|
||||
|
||||
/// A trait to define the build function of a genesis config, T and I are placeholder for pallet
|
||||
/// trait and pallet instance.
|
||||
#[deprecated(
|
||||
note = "GenesisBuild is planned to be removed in December 2023. Use BuildGenesisConfig instead of it."
|
||||
)]
|
||||
pub trait GenesisBuild<T, I = ()>: Default + sp_runtime::traits::MaybeSerializeDeserialize {
|
||||
/// The build function is called within an externalities allowing storage APIs.
|
||||
/// Thus one can write to storage using regular pallet storages.
|
||||
|
||||
Reference in New Issue
Block a user