Skip to content
Snippets Groups Projects
Commit 8bf81cbc authored by Nicolas80's avatar Nicolas80
Browse files

* Adapted catch_known of predefined derivations to properly handle both...

* Adapted catch_known of predefined derivations to properly handle both sr25519 and ed25519 versions of those keys.
parent da7c790d
No related branches found
No related tags found
1 merge request!44feat: Can choose between ed25519 ans sr25519
Pipeline #40182 passed
......@@ -362,14 +362,14 @@ pub async fn fetch_or_get_keypair(
) -> Result<KeyPair, GcliError> {
if let Some(address) = address {
// if address corresponds to predefined, (for example saved to config)
// keypair is already known (useful for dev mode)
if let Some(d) = catch_known(&address.to_string()) {
match crypto_scheme {
Some(CryptoScheme::Ed25519) => {
return pair_from_ed25519_str(&predefined_suri(d)).map(|v| v.into())
}
_ => return Ok(pair_from_predefined(d).unwrap().into()), // Default to Sr25519 for backward compatibility
// keypair is already known (useful for dev mode) - also overrides crypto_scheme if found
if let Some((deriv, crypto_scheme)) = catch_known(&address.to_string()) {
return match crypto_scheme {
CryptoScheme::Ed25519 => {
pair_from_ed25519_str(&predefined_suri(deriv)).map(|v| v.into())
}
CryptoScheme::Sr25519 => pair_from_predefined(deriv).map(|v| v.into()),
};
};
// look for corresponding KeyPair in keystore
......@@ -383,13 +383,27 @@ pub async fn fetch_or_get_keypair(
}
// catch known addresses
fn catch_known(address: &str) -> Option<&str> {
fn catch_known(address: &str) -> Option<(&str, CryptoScheme)> {
match address {
"5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY" => Some("Alice"),
"5FHneW46xGXgs5mUiveU4sbTyGBzmstUspZC92UhjJM694ty" => Some("Bob"),
"5FLSigC9HGRKVhB9FiEo4Y3koPsNmBmLJbpXg2mp1hXcS59Y" => Some("Charlie"),
"5DAAnrj7VHTznn2AWBemMuyBwZWs6FNFjdyVXUeYum3PTXFy" => Some("Dave"),
"5HGjWAeFDfFCWPsjFQdVV2Msvz2XtMktvgocEZcCj68kUMaw" => Some("Eve"),
"5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY" => {
Some(("Alice", CryptoScheme::Sr25519))
}
"5FHneW46xGXgs5mUiveU4sbTyGBzmstUspZC92UhjJM694ty" => Some(("Bob", CryptoScheme::Sr25519)),
"5FLSigC9HGRKVhB9FiEo4Y3koPsNmBmLJbpXg2mp1hXcS59Y" => {
Some(("Charlie", CryptoScheme::Sr25519))
}
"5DAAnrj7VHTznn2AWBemMuyBwZWs6FNFjdyVXUeYum3PTXFy" => Some(("Dave", CryptoScheme::Sr25519)),
"5HGjWAeFDfFCWPsjFQdVV2Msvz2XtMktvgocEZcCj68kUMaw" => Some(("Eve", CryptoScheme::Sr25519)),
"5FA9nQDVg267DEd8m1ZypXLBnvN7SFxYwV7ndqSYGiN9TTpu" => {
Some(("Alice", CryptoScheme::Ed25519))
}
"5GoNkf6WdbxCFnPdAnYYQyCjAKPJgLNxXwPjwTh6DGg6gN3E" => Some(("Bob", CryptoScheme::Ed25519)),
"5DbKjhNLpqX3zqZdNBc9BGb4fHU1cRBaDhJUskrvkwfraDi6" => {
Some(("Charlie", CryptoScheme::Ed25519))
}
"5ECTwv6cZ5nJQPk6tWfaTrEk8YH2L7X1VT4EL5Tx2ikfFwb7" => Some(("Dave", CryptoScheme::Ed25519)),
"5Ck2miBfCe1JQ4cY3NDsXyBaD6EcsgiVmEFTWwqNSs25XDEq" => Some(("Eve", CryptoScheme::Ed25519)),
_ => None,
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment