diff --git a/substrate/keystore/src/lib.rs b/substrate/keystore/src/lib.rs index 97210b29ef015..9a58ded3404f5 100644 --- a/substrate/keystore/src/lib.rs +++ b/substrate/keystore/src/lib.rs @@ -156,8 +156,19 @@ impl Store { // TODO: Remove this pub fn generate_from_seed(&mut self, seed: &str) -> Result { let mut s: [u8; 32] = [' ' as u8; 32]; - let len = ::std::cmp::min(32, seed.len()); - &mut s[..len].copy_from_slice(&seed.as_bytes()[..len]); + + let was_hex = if seed.len() == 66 && &seed[0..2] == "0x" { + if let Ok(d) = hex::decode(&seed[2..]) { + s.copy_from_slice(&d); + true + } else { false } + } else { false }; + + if !was_hex { + let len = ::std::cmp::min(32, seed.len()); + &mut s[..len].copy_from_slice(&seed.as_bytes()[..len]); + } + let pair = Pair::from_seed(&s); self.additional.insert(pair.public(), s); Ok(pair) diff --git a/substrate/service/src/lib.rs b/substrate/service/src/lib.rs index fca2c4d05834e..c42026f0af253 100644 --- a/substrate/service/src/lib.rs +++ b/substrate/service/src/lib.rs @@ -208,7 +208,7 @@ impl Service chain, author, rpc_config.clone(), - ) + ) }; ( maybe_start_server(config.rpc_http, |address| rpc::start_http(address, handler()))?, @@ -227,12 +227,12 @@ impl Service url: url, on_connect: Box::new(move || { telemetry!("system.connected"; - "name" => name.clone(), - "implementation" => impl_name.clone(), - "version" => version.clone(), - "config" => "", - "chain" => chain_name.clone(), - ); + "name" => name.clone(), + "implementation" => impl_name.clone(), + "version" => version.clone(), + "config" => "", + "chain" => chain_name.clone(), + ); }), })) },