From 924f8b80ae27bf2ffaf81ddf9a30804a766ed899 Mon Sep 17 00:00:00 2001 From: yanganto Date: Sat, 11 Jan 2020 18:02:50 +0800 Subject: [PATCH] Preset the keys of Alice & Bob --- node/cli/src/chain_spec.rs | 46 +++++++++++++++++++++++++++++--------- 1 file changed, 35 insertions(+), 11 deletions(-) diff --git a/node/cli/src/chain_spec.rs b/node/cli/src/chain_spec.rs index 511ca659e..8cadacfed 100644 --- a/node/cli/src/chain_spec.rs +++ b/node/cli/src/chain_spec.rs @@ -33,6 +33,7 @@ use sr_primitives::{ traits::{IdentifyAccount, Verify}, Perbill, }; +use std::env; use substrate_service::Properties; use substrate_telemetry::TelemetryEndpoints; @@ -152,9 +153,12 @@ pub fn staging_testnet_config() -> ChainSpec { } /// Helper function to generate a crypto pair from seed pub fn get_from_seed(seed: &str) -> ::Public { - TPublic::Pair::from_string(&format!("//{}", seed), None) - .expect("static values are valid; qed") - .public() + let pair = if seed.starts_with("0x") { + TPublic::Pair::from_string(seed, None) + } else { + TPublic::Pair::from_string(&format!("//{}", seed), None) + }; + pair.expect("static values are valid; qed").public() } /// Helper function to generate an account ID from seed @@ -162,18 +166,38 @@ pub fn get_account_id_from_seed(seed: &str) -> AccountId where AccountPublic: From<::Public>, { - AccountPublic::from(get_from_seed::(seed)).into_account() + match seed { + "Alice" => hex!["70bf51d123581d6e51af70b342cac75ae0a0fc71d1a8d388719139af9c042b18"].into(), + "Bob" => hex!["94c51178449c09eec77918ea951fa3244f7b841eea1dd1489d2b5f2a53f8840f"].into(), + _ => AccountPublic::from(get_from_seed::(seed)).into_account(), + } } /// Helper function to generate stash, controller and session key from seed pub fn get_authority_keys_from_seed(seed: &str) -> (AccountId, AccountId, GrandpaId, BabeId, ImOnlineId) { - ( - get_account_id_from_seed::(&format!("{}//stash", seed)), - get_account_id_from_seed::(seed), - get_from_seed::(seed), - get_from_seed::(seed), - get_from_seed::(seed), - ) + match seed { + "Alice" => ( + get_account_id_from_seed::("Alice//stash"), + hex!["70bf51d123581d6e51af70b342cac75ae0a0fc71d1a8d388719139af9c042b18"].into(), + get_from_seed::(&env::var("ALICE_SECRET").expect("Alice secret key missing")), + get_from_seed::("Alice"), + get_from_seed::("Alice"), + ), + "Bob" => ( + get_account_id_from_seed::("Bob//stash"), + hex!["94c51178449c09eec77918ea951fa3244f7b841eea1dd1489d2b5f2a53f8840f"].into(), + get_from_seed::(&env::var("BOB_SECRET").expect("Bob secret key missing")), + get_from_seed::("Bob"), + get_from_seed::("Bob"), + ), + _ => ( + get_account_id_from_seed::(&format!("{}//stash", seed)), + get_account_id_from_seed::(seed), + get_from_seed::(seed), + get_from_seed::(seed), + get_from_seed::(seed), + ), + } } /// Helper function to create GenesisConfig for darwinia