Skip to content

Commit

Permalink
Preset the keys of Alice & Bob
Browse files Browse the repository at this point in the history
  • Loading branch information
yanganto committed Jan 13, 2020
1 parent f800f67 commit 924f8b8
Showing 1 changed file with 35 additions and 11 deletions.
46 changes: 35 additions & 11 deletions node/cli/src/chain_spec.rs
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ use sr_primitives::{
traits::{IdentifyAccount, Verify},
Perbill,
};
use std::env;
use substrate_service::Properties;
use substrate_telemetry::TelemetryEndpoints;

Expand Down Expand Up @@ -152,28 +153,51 @@ pub fn staging_testnet_config() -> ChainSpec {
}
/// Helper function to generate a crypto pair from seed
pub fn get_from_seed<TPublic: Public>(seed: &str) -> <TPublic::Pair as Pair>::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
pub fn get_account_id_from_seed<TPublic: Public>(seed: &str) -> AccountId
where
AccountPublic: From<<TPublic::Pair as Pair>::Public>,
{
AccountPublic::from(get_from_seed::<TPublic>(seed)).into_account()
match seed {
"Alice" => hex!["70bf51d123581d6e51af70b342cac75ae0a0fc71d1a8d388719139af9c042b18"].into(),
"Bob" => hex!["94c51178449c09eec77918ea951fa3244f7b841eea1dd1489d2b5f2a53f8840f"].into(),
_ => AccountPublic::from(get_from_seed::<TPublic>(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::<sr25519::Public>(&format!("{}//stash", seed)),
get_account_id_from_seed::<sr25519::Public>(seed),
get_from_seed::<GrandpaId>(seed),
get_from_seed::<BabeId>(seed),
get_from_seed::<ImOnlineId>(seed),
)
match seed {
"Alice" => (
get_account_id_from_seed::<sr25519::Public>("Alice//stash"),
hex!["70bf51d123581d6e51af70b342cac75ae0a0fc71d1a8d388719139af9c042b18"].into(),
get_from_seed::<GrandpaId>(&env::var("ALICE_SECRET").expect("Alice secret key missing")),
get_from_seed::<BabeId>("Alice"),
get_from_seed::<ImOnlineId>("Alice"),
),
"Bob" => (
get_account_id_from_seed::<sr25519::Public>("Bob//stash"),
hex!["94c51178449c09eec77918ea951fa3244f7b841eea1dd1489d2b5f2a53f8840f"].into(),
get_from_seed::<GrandpaId>(&env::var("BOB_SECRET").expect("Bob secret key missing")),
get_from_seed::<BabeId>("Bob"),
get_from_seed::<ImOnlineId>("Bob"),
),
_ => (
get_account_id_from_seed::<sr25519::Public>(&format!("{}//stash", seed)),
get_account_id_from_seed::<sr25519::Public>(seed),
get_from_seed::<GrandpaId>(seed),
get_from_seed::<BabeId>(seed),
get_from_seed::<ImOnlineId>(seed),
),
}
}

/// Helper function to create GenesisConfig for darwinia
Expand Down

0 comments on commit 924f8b8

Please sign in to comment.