sc-keystore: Improve weird error message (#10584)

The keystore would print "Invalid password" when a key was stored using an incorrect public key.
This pr improves the error message to communicate better to the user on what is wrong.
This commit is contained in:
Bastian Köcher
2022-01-05 13:09:01 +01:00
committed by GitHub
parent e444877d4b
commit 48444ffdc0
2 changed files with 7 additions and 4 deletions
+6 -3
View File
@@ -35,8 +35,11 @@ pub enum Error {
/// JSON error.
Json(serde_json::Error),
/// Invalid password.
#[display(fmt = "Invalid password")]
InvalidPassword,
#[display(
fmt = "Requested public key and public key of the loaded private key do not match. \n
This means either that the keystore password is incorrect or that the private key was stored under a wrong public key."
)]
PublicKeyMismatch,
/// Invalid BIP39 phrase
#[display(fmt = "Invalid recovery phrase (BIP39) data")]
InvalidPhrase,
@@ -58,7 +61,7 @@ impl From<Error> for TraitError {
fn from(error: Error) -> Self {
match error {
Error::KeyNotSupported(id) => TraitError::KeyNotSupported(id),
Error::InvalidSeed | Error::InvalidPhrase | Error::InvalidPassword =>
Error::InvalidSeed | Error::InvalidPhrase | Error::PublicKeyMismatch =>
TraitError::ValidationError(error.to_string()),
Error::Unavailable => TraitError::Unavailable,
Error::Io(e) => TraitError::Other(e.to_string()),
+1 -1
View File
@@ -503,7 +503,7 @@ impl KeystoreInner {
if &pair.public() == public {
Ok(Some(pair))
} else {
Err(Error::InvalidPassword)
Err(Error::PublicKeyMismatch)
}
}