diff --git a/cometbft/src/account.rs b/cometbft/src/account.rs index 1fa35b0a..fdc8d1ae 100644 --- a/cometbft/src/account.rs +++ b/cometbft/src/account.rs @@ -219,33 +219,6 @@ cometbft_old_pb_modules! { } } -pub mod v1 { - use super::{Id, LENGTH}; - #[cfg(feature = "secp256k1")] - use crate::public_key::PUB_KEY_TYPE_SECP256K1; - use crate::{prelude::*, public_key::PUB_KEY_TYPE_ED25519, Error}; - use digest::Digest; - use sha2::Sha256; - - pub fn try_from_type_and_bytes(pub_key_type: &str, pub_key_bytes: &[u8]) -> Result { - if pub_key_type == PUB_KEY_TYPE_ED25519 { - let digest = Sha256::digest(pub_key_bytes); - return Ok(Id(digest[..LENGTH].try_into().unwrap())); - } - #[cfg(feature = "secp256k1")] - if pub_key_type == PUB_KEY_TYPE_SECP256K1 { - use ripemd::Ripemd160; - - let sha_digest = Sha256::digest(pub_key_bytes); - let ripemd_digest = Ripemd160::digest(&sha_digest[..]); - let mut bytes = [0u8; LENGTH]; - bytes.copy_from_slice(&ripemd_digest[..LENGTH]); - return Ok(Id(bytes)); - } - Err(Error::invalid_key("unknown key".to_string())) - } -} - #[cfg(all(test, feature = "rust-crypto"))] mod tests { use super::*; diff --git a/cometbft/src/validator.rs b/cometbft/src/validator.rs index 975d40f8..bf18d8c3 100644 --- a/cometbft/src/validator.rs +++ b/cometbft/src/validator.rs @@ -401,7 +401,7 @@ cometbft_old_pb_modules! { mod v1 { use super::{Info, Set, SimpleValidator, Update}; - use crate::{account, prelude::*, Error, PublicKey}; + use crate::{account::Id, prelude::*, Error, PublicKey}; use cometbft_proto::abci::v1::ValidatorUpdate as RawValidatorUpdate; use cometbft_proto::types::v1::{ SimpleValidator as RawSimpleValidator, Validator as RawValidator, @@ -442,15 +442,11 @@ mod v1 { fn try_from(value: RawValidator) -> Result { let address = value.address.try_into()?; - if account::v1::try_from_type_and_bytes(&value.pub_key_type, &value.pub_key_bytes)? - != address - { - return Err(Error::invalid_validator_address()); - } - let pub_key = PublicKey::try_from_type_and_bytes(&value.pub_key_type, &value.pub_key_bytes)?; - + if Id::from(pub_key) != address { + return Err(Error::invalid_validator_address()); + } Ok(Info { address, pub_key,