From d3678e08b29fe0055dc2ab1de3984de8fc6f9ae9 Mon Sep 17 00:00:00 2001 From: Thomas Locher Date: Thu, 21 Sep 2023 10:16:55 +0200 Subject: [PATCH] Clean up the hashing code in bitcoin_wallet.rs. --- .../src/basic_bitcoin/src/bitcoin_wallet.rs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/rust/basic_bitcoin/src/basic_bitcoin/src/bitcoin_wallet.rs b/rust/basic_bitcoin/src/basic_bitcoin/src/bitcoin_wallet.rs index 6859a33e0..978eedaef 100644 --- a/rust/basic_bitcoin/src/basic_bitcoin/src/bitcoin_wallet.rs +++ b/rust/basic_bitcoin/src/basic_bitcoin/src/bitcoin_wallet.rs @@ -276,13 +276,16 @@ fn sha256(data: &[u8]) -> Vec { hasher.update(data); hasher.finalize().to_vec() } +fn ripemd160(data: &[u8]) -> Vec { + let mut hasher = ripemd::Ripemd160::new(); + hasher.update(data); + hasher.finalize().to_vec() +} // Converts a public key to a P2PKH address. fn public_key_to_p2pkh_address(network: BitcoinNetwork, public_key: &[u8]) -> String { - // sha256 + ripmd160 - let mut hasher = ripemd::Ripemd160::new(); - hasher.update(sha256(public_key)); - let result = hasher.finalize(); + // SHA-256 & RIPEMD-160 + let result = ripemd160(&sha256(public_key)); let prefix = match network { BitcoinNetwork::Testnet | BitcoinNetwork::Regtest => 0x6f,