From eafacc9b2fc584f863b07c5b9fa8d197b4f6def6 Mon Sep 17 00:00:00 2001 From: Artem Badrtdinov Date: Fri, 8 Dec 2023 15:51:01 +0500 Subject: [PATCH] fix private key from str --- src/error.rs | 2 ++ src/model/account/private_key.rs | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/error.rs b/src/error.rs index d8ac455..2fa5201 100644 --- a/src/error.rs +++ b/src/error.rs @@ -43,6 +43,8 @@ pub enum Error { HexError(#[from] FromHexError), #[error("unsupported operation: {0}")] UnsupportedOperation(String), + #[error("failed to convert vector to array")] + PrivateKeyConversionError, #[error("alias must be {min_length:?} to {max_length:?} length of {alphabet:?} and may have a prefix \"{max_length:?}{chain_id:?}:\"")] InvalidAliasName { min_length: u8, diff --git a/src/model/account/private_key.rs b/src/model/account/private_key.rs index 97746bc..33fca18 100644 --- a/src/model/account/private_key.rs +++ b/src/model/account/private_key.rs @@ -17,7 +17,10 @@ impl std::str::FromStr for PrivateKey { fn from_str(base58string: &str) -> Result { let bytes = Base58::decode(base58string)?; - let bytes_array: [u8; 32] = bytes.try_into()?; + let bytes_array: [u8; 32] = match bytes.try_into() { + Ok(v) => v, + Err(_) => return Err(Error::PrivateKeyConversionError), + }; PrivateKey::from_bytes(bytes_array) } }