Statemine Release Prep (#460)

* set default para id to 1000

* add genesis value generation script

* add statemine chain spec and genesis values

* add westmint chain spec and genesis values

* rename chain specs to _genesis to indicate that they are not usable for syncing the chain

* adjust chain names to reduce confusion

* add westmint chain spec

* set chain id to shell

* comment out statemine chain spec

* fix build

Co-authored-by: joepetrowski <joe@parity.io>
This commit is contained in:
Alexander Popiak
2021-06-02 16:27:46 +02:00
committed by GitHub
parent b1e5e7dbd1
commit 5950432048
11 changed files with 668 additions and 5 deletions
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+19 -5
View File
@@ -36,6 +36,9 @@ use sp_core::hexdisplay::HexDisplay;
use sp_runtime::traits::Block as BlockT;
use std::{io::Write, net::SocketAddr};
// default to the Statemint/Statemine/Westmint id
const DEFAULT_PARA_ID: u32 = 1000;
trait IdentifyChain {
fn is_shell(&self) -> bool;
fn is_statemint(&self) -> bool;
@@ -93,10 +96,21 @@ fn load_spec(
"statemint-local" => Box::new(chain_spec::statemint_local_config(para_id)),
"statemine-dev" => Box::new(chain_spec::statemine_development_config(para_id)),
"statemine-local" => Box::new(chain_spec::statemine_local_config(para_id)),
"statemine" => Box::new(chain_spec::statemine_config(para_id)),
// the chain spec as used for generating the upgrade genesis values
"statemine-genesis" => Box::new(chain_spec::statemine_config(para_id)),
// the shell-based chain spec as used for syncing
// TODO: enable once the chain spec is ready and available
// "statemine" => Box::new(chain_spec::ChainSpec::from_json_bytes(
// &include_bytes!("../res/statemine.json")[..],
// )?),
"westmint-dev" => Box::new(chain_spec::westmint_development_config(para_id)),
"westmint-local" => Box::new(chain_spec::westmint_local_config(para_id)),
"westmint" => Box::new(chain_spec::westmint_config(para_id)),
// the chain spec as used for generating the upgrade genesis values
"westmint-genesis" => Box::new(chain_spec::westmint_config(para_id)),
// the shell-based chain spec as used for syncing
"westmint" => Box::new(chain_spec::ChainSpec::from_json_bytes(
&include_bytes!("../res/westmint.json")[..],
)?),
"" => Box::new(chain_spec::get_chain_spec(para_id)),
path => {
let chain_spec = chain_spec::ChainSpec::from_json_file(path.into())?;
@@ -147,7 +161,7 @@ impl SubstrateCli for Cli {
}
fn load_spec(&self, id: &str) -> std::result::Result<Box<dyn sc_service::ChainSpec>, String> {
load_spec(id, self.run.parachain_id.unwrap_or(100).into())
load_spec(id, self.run.parachain_id.unwrap_or(DEFAULT_PARA_ID).into())
}
fn native_runtime_version(chain_spec: &Box<dyn ChainSpec>) -> &'static RuntimeVersion {
@@ -331,7 +345,7 @@ pub fn run() -> Result<()> {
let block: crate::service::Block = generate_genesis_block(&load_spec(
&params.chain.clone().unwrap_or_default(),
params.parachain_id.unwrap_or(100).into(),
params.parachain_id.unwrap_or(DEFAULT_PARA_ID).into(),
)?)?;
let raw_header = block.header().encode();
let output_buf = if params.raw {
@@ -401,7 +415,7 @@ pub fn run() -> Result<()> {
.chain(cli.relaychain_args.iter()),
);
let id = ParaId::from(cli.run.parachain_id.or(para_id).unwrap_or(100));
let id = ParaId::from(cli.run.parachain_id.or(para_id).unwrap_or(DEFAULT_PARA_ID));
let parachain_account =
AccountIdConversion::<polkadot_primitives::v0::AccountId>::into_account(&id);