diff --git a/zcash_client_backend/CHANGELOG.md b/zcash_client_backend/CHANGELOG.md index f3968e1d9..dd9676ab6 100644 --- a/zcash_client_backend/CHANGELOG.md +++ b/zcash_client_backend/CHANGELOG.md @@ -6,6 +6,10 @@ and this library adheres to Rust's notion of [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] +### Added +- `impl Eq for zcash_client_backend::address::RecipientAddress` +- `impl Eq for zcash_client_backend::zip321::{Payment, TransactionRequest}` + ### Changed - MSRV is now 1.65.0. - Bumped dependencies to `hdwallet 0.4`. diff --git a/zcash_client_backend/src/address.rs b/zcash_client_backend/src/address.rs index a5f4a36d6..87e1ac0fe 100644 --- a/zcash_client_backend/src/address.rs +++ b/zcash_client_backend/src/address.rs @@ -174,7 +174,7 @@ impl UnifiedAddress { /// An address that funds can be sent to. // TODO: rename to ParsedAddress -#[derive(Debug, PartialEq, Clone)] +#[derive(Debug, PartialEq, Eq, Clone)] pub enum RecipientAddress { Shielded(PaymentAddress), Transparent(TransparentAddress), diff --git a/zcash_client_backend/src/data_api/wallet/input_selection.rs b/zcash_client_backend/src/data_api/wallet/input_selection.rs index f5d4528ae..f9ea49c68 100644 --- a/zcash_client_backend/src/data_api/wallet/input_selection.rs +++ b/zcash_client_backend/src/data_api/wallet/input_selection.rs @@ -434,10 +434,7 @@ where Ok(balance) => balance, Err(ChangeError::DustInputs { transparent, .. }) => { let exclusions: BTreeSet = transparent.into_iter().collect(); - transparent_inputs = transparent_inputs - .into_iter() - .filter(|i| !exclusions.contains(i.outpoint())) - .collect(); + transparent_inputs.retain(|i| !exclusions.contains(i.outpoint())); self.change_strategy.compute_balance( params, diff --git a/zcash_client_backend/src/zip321.rs b/zcash_client_backend/src/zip321.rs index 46f979d80..271632846 100644 --- a/zcash_client_backend/src/zip321.rs +++ b/zcash_client_backend/src/zip321.rs @@ -53,7 +53,7 @@ pub fn memo_from_base64(s: &str) -> Result { } /// A single payment being requested. -#[derive(Debug, PartialEq)] +#[derive(Debug, PartialEq, Eq)] pub struct Payment { /// The payment address to which the payment should be sent. pub recipient_address: RecipientAddress, @@ -111,7 +111,7 @@ impl Payment { /// When constructing a transaction in response to such a request, /// a separate output should be added to the transaction for each /// payment value in the request. -#[derive(Debug, PartialEq)] +#[derive(Debug, PartialEq, Eq)] pub struct TransactionRequest { payments: Vec, } @@ -402,7 +402,7 @@ mod parse { /// A data type that defines the possible parameter types which may occur within a /// ZIP 321 URI. - #[derive(Debug, PartialEq)] + #[derive(Debug, PartialEq, Eq)] pub enum Param { Addr(Box), Amount(Amount), diff --git a/zcash_primitives/src/block.rs b/zcash_primitives/src/block.rs index 31c12234e..6271e0535 100644 --- a/zcash_primitives/src/block.rs +++ b/zcash_primitives/src/block.rs @@ -88,7 +88,7 @@ impl BlockHeader { header .hash .0 - .copy_from_slice(&Sha256::digest(&Sha256::digest(&raw))); + .copy_from_slice(&Sha256::digest(Sha256::digest(&raw))); Ok(header) } diff --git a/zcash_primitives/src/legacy/keys.rs b/zcash_primitives/src/legacy/keys.rs index 6423b1fda..fead35a81 100644 --- a/zcash_primitives/src/legacy/keys.rs +++ b/zcash_primitives/src/legacy/keys.rs @@ -152,7 +152,7 @@ impl AccountPubKey { #[deprecated(note = "This function will be removed from the public API in an upcoming refactor.")] pub fn pubkey_to_address(pubkey: &secp256k1::PublicKey) -> TransparentAddress { TransparentAddress::PublicKey( - *ripemd::Ripemd160::digest(Sha256::digest(&pubkey.serialize())).as_ref(), + *ripemd::Ripemd160::digest(Sha256::digest(pubkey.serialize())).as_ref(), ) } diff --git a/zcash_primitives/src/transaction/components/transparent/builder.rs b/zcash_primitives/src/transaction/components/transparent/builder.rs index 3a2e20b6a..a65645fc9 100644 --- a/zcash_primitives/src/transaction/components/transparent/builder.rs +++ b/zcash_primitives/src/transaction/components/transparent/builder.rs @@ -146,7 +146,7 @@ impl TransparentBuilder { use ripemd::Ripemd160; use sha2::Sha256; - if hash[..] != Ripemd160::digest(Sha256::digest(&pubkey))[..] { + if hash[..] != Ripemd160::digest(Sha256::digest(pubkey))[..] { return Err(Error::InvalidAddress); } } diff --git a/zcash_primitives/src/transaction/util/sha256d.rs b/zcash_primitives/src/transaction/util/sha256d.rs index 889b2ba73..439bab9fd 100644 --- a/zcash_primitives/src/transaction/util/sha256d.rs +++ b/zcash_primitives/src/transaction/util/sha256d.rs @@ -22,7 +22,7 @@ impl HashReader { /// Destroy this reader and return the hash of what was read. pub fn into_hash(self) -> Output { - Sha256::digest(&self.hasher.finalize()) + Sha256::digest(self.hasher.finalize()) } } @@ -54,7 +54,7 @@ impl Default for HashWriter { impl HashWriter { /// Destroy this writer and return the hash of what was written. pub fn into_hash(self) -> Output { - Sha256::digest(&self.hasher.finalize()) + Sha256::digest(self.hasher.finalize()) } }