mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-04-26 07:37:57 +00:00
frame: GenesisBuild::build allowed in no_std (#14107)
* frame: GenesisBuild::build allowed in no_std i`GenesisBuild::build` function will be required for no_std in no native runtime world. `GenesisBuild::build` macro generated function allows to build the runtime GenesisConfig assembled from all pallets' GenesisConfigs. * fixes * GenesisBuild::build avaiable in no-std - #[cfg(feature = "std")] is not longer added to GenesisBuild implementation. * system: hash69 available for no-std * elections-phragmen: panic message fixed for no_std * frame::suport: doc updated * test-runtime: default for GenesisConfig * frame::test-pallet: serde/std added to std feature deps * Cargo.toml: deps sorted * Cargo.lock update cargo update -p frame-support-test-pallet -p frame-support-test * frame ui tests: cleanup --------- Co-authored-by: parity-processbot <>
This commit is contained in:
committed by
GitHub
parent
2aa863f667
commit
e31a214a85
@@ -1522,8 +1522,6 @@ pub mod tests {
|
||||
|
||||
/// Prelude to be used alongside pallet macro, for ease of use.
|
||||
pub mod pallet_prelude {
|
||||
#[cfg(feature = "std")]
|
||||
pub use crate::traits::GenesisBuild;
|
||||
pub use crate::{
|
||||
dispatch::{
|
||||
DispatchClass, DispatchError, DispatchResult, DispatchResultWithPostInfo, Parameter,
|
||||
@@ -1540,8 +1538,8 @@ pub mod pallet_prelude {
|
||||
},
|
||||
},
|
||||
traits::{
|
||||
ConstU32, EnsureOrigin, Get, GetDefault, GetStorageVersion, Hooks, IsType,
|
||||
PalletInfoAccess, StorageInfoTrait, StorageVersion, TypedGet,
|
||||
ConstU32, EnsureOrigin, GenesisBuild, Get, GetDefault, GetStorageVersion, Hooks,
|
||||
IsType, PalletInfoAccess, StorageInfoTrait, StorageVersion, TypedGet,
|
||||
},
|
||||
Blake2_128, Blake2_128Concat, Blake2_256, CloneNoBound, DebugNoBound, EqNoBound, Identity,
|
||||
PartialEqNoBound, RuntimeDebug, RuntimeDebugNoBound, Twox128, Twox256, Twox64Concat,
|
||||
|
||||
@@ -80,11 +80,9 @@ pub use metadata::{
|
||||
};
|
||||
|
||||
mod hooks;
|
||||
#[cfg(feature = "std")]
|
||||
pub use hooks::GenesisBuild;
|
||||
pub use hooks::{
|
||||
Hooks, IntegrityTest, OnFinalize, OnGenesis, OnIdle, OnInitialize, OnRuntimeUpgrade,
|
||||
OnTimestampSet,
|
||||
GenesisBuild, Hooks, IntegrityTest, OnFinalize, OnGenesis, OnIdle, OnInitialize,
|
||||
OnRuntimeUpgrade, OnTimestampSet,
|
||||
};
|
||||
|
||||
pub mod schedule;
|
||||
|
||||
@@ -361,13 +361,13 @@ pub trait Hooks<BlockNumber> {
|
||||
|
||||
/// A trait to define the build function of a genesis config, T and I are placeholder for pallet
|
||||
/// trait and pallet instance.
|
||||
#[cfg(feature = "std")]
|
||||
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.
|
||||
fn build(&self);
|
||||
|
||||
/// Build the storage using `build` inside default storage.
|
||||
#[cfg(feature = "std")]
|
||||
fn build_storage(&self) -> Result<sp_runtime::Storage, String> {
|
||||
let mut storage = Default::default();
|
||||
self.assimilate_storage(&mut storage)?;
|
||||
@@ -375,6 +375,7 @@ pub trait GenesisBuild<T, I = ()>: Default + sp_runtime::traits::MaybeSerializeD
|
||||
}
|
||||
|
||||
/// Assimilate the storage for this module into pre-existing overlays.
|
||||
#[cfg(feature = "std")]
|
||||
fn assimilate_storage(&self, storage: &mut sp_runtime::Storage) -> Result<(), String> {
|
||||
sp_state_machine::BasicExternalities::execute_with_storage(storage, || {
|
||||
self.build();
|
||||
|
||||
Reference in New Issue
Block a user