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( ...@@ -362,14 +362,14 @@ pub async fn fetch_or_get_keypair(
) -> Result<KeyPair, GcliError> { ) -> Result<KeyPair, GcliError> {
if let Some(address) = address { if let Some(address) = address {
// if address corresponds to predefined, (for example saved to config) // if address corresponds to predefined, (for example saved to config)
// keypair is already known (useful for dev mode) // keypair is already known (useful for dev mode) - also overrides crypto_scheme if found
if let Some(d) = catch_known(&address.to_string()) { if let Some((deriv, crypto_scheme)) = catch_known(&address.to_string()) {
match crypto_scheme { return match crypto_scheme {
Some(CryptoScheme::Ed25519) => { CryptoScheme::Ed25519 => {
return pair_from_ed25519_str(&predefined_suri(d)).map(|v| v.into()) pair_from_ed25519_str(&predefined_suri(deriv)).map(|v| v.into())
}
_ => return Ok(pair_from_predefined(d).unwrap().into()), // Default to Sr25519 for backward compatibility
} }
CryptoScheme::Sr25519 => pair_from_predefined(deriv).map(|v| v.into()),
};
}; };
// look for corresponding KeyPair in keystore // look for corresponding KeyPair in keystore
...@@ -383,13 +383,27 @@ pub async fn fetch_or_get_keypair( ...@@ -383,13 +383,27 @@ pub async fn fetch_or_get_keypair(
} }
// catch known addresses // catch known addresses
fn catch_known(address: &str) -> Option<&str> { fn catch_known(address: &str) -> Option<(&str, CryptoScheme)> {
match address { match address {
"5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY" => Some("Alice"), "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY" => {
"5FHneW46xGXgs5mUiveU4sbTyGBzmstUspZC92UhjJM694ty" => Some("Bob"), Some(("Alice", CryptoScheme::Sr25519))
"5FLSigC9HGRKVhB9FiEo4Y3koPsNmBmLJbpXg2mp1hXcS59Y" => Some("Charlie"), }
"5DAAnrj7VHTznn2AWBemMuyBwZWs6FNFjdyVXUeYum3PTXFy" => Some("Dave"), "5FHneW46xGXgs5mUiveU4sbTyGBzmstUspZC92UhjJM694ty" => Some(("Bob", CryptoScheme::Sr25519)),
"5HGjWAeFDfFCWPsjFQdVV2Msvz2XtMktvgocEZcCj68kUMaw" => Some("Eve"), "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, _ => None,
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment