Skip to content
Snippets Groups Projects
Verified Commit b597ccc4 authored by Michal Kucharczyk's avatar Michal Kucharczyk
Browse files

doc fixed

parent 249b8136
Branches
No related merge requests found
......@@ -43,8 +43,10 @@ pub fn build_state<GC: BuildGenesisConfig>(json: sp_std::vec::Vec<u8>) -> BuildR
Ok(())
}
/// Returns a JSON blob representation of the builtin `GenesisConfig` identified by `id`.
/// For more info refer to [`sp_genesis_builder::GenesisBuilder::get_preset`].
/// Get the default `GenesisConfig` as a JSON blob if `id` is None.
///
/// No named presets are supported. For more info refer to
/// [`sp_genesis_builder::GenesisBuilder::get_preset`].
pub fn get_preset<GC>(id: Option<sp_std::vec::Vec<u8>>) -> Option<sp_std::vec::Vec<u8>>
where
GC: BuildGenesisConfig + Default,
......
......@@ -19,59 +19,68 @@
//! Substrate genesis config builder
//!
//! The runtime may provide a number of partial `GenesisConfig` configurations in form of patches
//! which shall be applied on top of the default GenesisConfig. This presets are sometimes refered
//! to as patches. This allows the runtime to provide a number of predefined configuration (e.g. for
//! different testnets) without leaking the runtime types outside the runtime.
//! The runtime may provide a number of partial `RuntimeGenesisConfig` configurations in form of
//! patches which shall be applied on top of the default `RuntimeGenesisConfig`. Thus presets are
//! sometimes refered to as patches. This allows the runtime to provide a number of predefined
//! configuration (e.g. for different testnets) without leaking the runtime types outside the
//! runtime.
//!
//! This Runtime API allows to construct `GenesisConfig`, in particular:
//! - serialize the runtime default `GenesisConfig` struct into json format,
//! - put the GenesisConfig struct into the storage. Internally this operation calls
//! `GenesisBuild::build` function for all runtime pallets, which is typically provided by
//! pallet's author.
//! - deserialize the `GenesisConfig` from given json blob and put `GenesisConfig` into the state
//! storage. Allows to build customized configuration.
//! - provide a named, built-in, predefined preset of `GenesisConfig`,
//! - provide the list of preset names,
//! This Runtime API allows to interact with `RuntimeGenesisConfig`, in particular:
//! - provide the list of available preset names,
//! - provide a number of named, built-in, presets of `RuntimeGenesisConfig`,
//! - serialize the default `RuntimeGenesisConfig` struct into json format,
//! - deserialize the `RuntimeGenesisConfig` from given json blob and put the resulting
//! `RuntimeGenesisConfig` into the state storage creating the initial runtime's state. Allows to
//! build customized genesis. This operation internally calls `GenesisBuild::build` function for
//! all runtime pallets.
//!
//! Providing externalities with empty storage and putting `GenesisConfig` into storage allows to
//! catch and build the raw storage of `GenesisConfig` which is the foundation for genesis block.
//! Providing externalities with empty storage and putting `RuntimeGenesisConfig` into storage
//! allows to catch and build the raw storage of `RuntimeGenesisConfig` which is the foundation for
//! genesis block.
/// The result type alias, used in build methods. `Err` contains formatted error message.
pub type Result = core::result::Result<(), sp_runtime::RuntimeString>;
sp_api::decl_runtime_apis! {
/// API to interact with GenesisConfig for the runtime
/// API to interact with RuntimeGenesisConfig for the runtime
#[api_version(2)]
pub trait GenesisBuilder {
/// Creates the default `GenesisConfig` and returns it as a JSON blob.
/// Creates the default `RuntimeGenesisConfig` and returns it as a JSON blob.
///
/// This function instantiates the default `GenesisConfig` struct for the runtime and serializes it into a JSON
/// blob. It returns a `Vec<u8>` containing the JSON representation of the default `GenesisConfig`.
/// This function instantiates the default `RuntimeGenesisConfig` struct for the runtime and
/// serializes it into a JSON blob. It returns a `Vec<u8>` containing the JSON
/// representation of the default `RuntimeGenesisConfig`.
fn create_default_config() -> sp_std::vec::Vec<u8>;
/// Build `GenesisConfig` from a JSON blob not using any defaults and store it in the storage.
/// Build `RuntimeGenesisConfig` from a JSON blob not using any defaults and store it in the
/// storage.
///
/// This function deserializes the full `GenesisConfig` from the given JSON blob and puts it into the storage.
/// If the provided JSON blob is incorrect or incomplete or the deserialization fails, an error is returned.
/// It is recommended to log any errors encountered during the process.
/// This function deserializes the full `RuntimeGenesisConfig` from the given JSON blob and
/// puts it into the storage. If the provided JSON blob is incorrect or incomplete or the
/// deserialization fails, an error is returned.
///
/// Please note that provided json blob must contain all `GenesisConfig` fields, no defaults will be used.
/// Please note that provided json blob must contain all `RuntimeGenesisConfig` fields, no
/// defaults will be used.
#[renamed("build_config", 2)]
fn build_state(json: sp_std::vec::Vec<u8>) -> Result;
/// Returns a JSON blob representation of the builtin `GenesisConfig` identified by `id`.
/// Returns a JSON blob representation of the built-in `RuntimeGenesisConfig` identified by
/// `id`.
///
/// If `id` is `None` the function instantiates the default `GenesisConfig` struct for the runtime and serializes it into a JSON
/// blob. It returns a `Vec<u8>` containing the JSON representation of the default `GenesisConfig`.
/// Otherwise returns a JSON representation of the built-in, named, pre-configured `GenesisConfig` value.
/// If `id` is `None` the function returns JSON blob representation of the default
/// `RuntimeGenesisConfig` struct of the runtime. Implementation must provide default
/// `RuntimeGenesisConfig`.
///
/// Otherwise function returns a JSON representation of the built-in, named
/// `RuntimeGenesisConfig` preset identified by `id`, or `None` if such preset does not
/// exists. Returned `Vec<u8>` contains bytes of JSON blob.
#[api_version(2)]
fn get_preset(id: Option<sp_std::vec::Vec<u8>>) -> Option<sp_std::vec::Vec<u8>>;
fn get_preset(id: Option<sp_runtime::RuntimeString>) -> Option<sp_std::vec::Vec<u8>>;
/// Returns a list of available builtin `GenesisConfig` presets.
/// Returns a list of names for available builtin `RuntimeGenesisConfig` presets.
///
/// The presets from the list can be queried with [`GenesisBuilder::get_preset`] method. If no named presets are
/// provided by the runtime the list is empty.
/// The presets from the list can be queried with [`GenesisBuilder::get_preset`] method. If
/// no named presets are provided by the runtime the list is empty.
#[api_version(2)]
fn preset_names() -> sp_std::vec::Vec<sp_runtime::RuntimeString>;
}
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment