diff --git a/chain/src/repository/pos.rs b/chain/src/repository/pos.rs index d4900601..b331b9a6 100644 --- a/chain/src/repository/pos.rs +++ b/chain/src/repository/pos.rs @@ -96,7 +96,7 @@ pub fn insert_unbonds( pub fn remove_withdraws( transaction_conn: &mut PgConnection, current_epoch: Epoch, - unbond_addresses: Vec, + unbond_addresses: HashSet, ) -> anyhow::Result<()> { let sources = unbond_addresses .iter() diff --git a/chain/src/services/namada.rs b/chain/src/services/namada.rs index 8b630e24..f53e76bd 100644 --- a/chain/src/services/namada.rs +++ b/chain/src/services/namada.rs @@ -328,7 +328,7 @@ pub async fn query_next_governance_id( pub async fn query_bonds( client: &HttpClient, - addresses: Vec, + addresses: HashSet, ) -> anyhow::Result { let nested_bonds = futures::stream::iter(addresses) .filter_map(|BondAddresses { source, target }| async move { @@ -353,7 +353,7 @@ pub async fn query_bonds( pub async fn query_unbonds( client: &HttpClient, - addresses: Vec, + addresses: HashSet, ) -> anyhow::Result { let nested_unbonds = futures::stream::iter(addresses) .filter_map(|UnbondAddresses { source, validator }| { diff --git a/shared/src/block.rs b/shared/src/block.rs index ca14da65..3da3ed4e 100644 --- a/shared/src/block.rs +++ b/shared/src/block.rs @@ -386,7 +386,7 @@ impl Block { .collect() } - pub fn bond_addresses(&self) -> Vec { + pub fn bond_addresses(&self) -> HashSet { self.transactions .iter() .flat_map(|(_, txs)| txs) @@ -439,7 +439,7 @@ impl Block { .collect() } - pub fn unbond_addresses(&self) -> Vec { + pub fn unbond_addresses(&self) -> HashSet { self.transactions .iter() .flat_map(|(_, txs)| txs) @@ -463,7 +463,7 @@ impl Block { .collect() } - pub fn withdraw_addresses(&self) -> Vec { + pub fn withdraw_addresses(&self) -> HashSet { self.transactions .iter() .flat_map(|(_, txs)| txs) diff --git a/shared/src/bond.rs b/shared/src/bond.rs index e7572b70..ec3f2fd4 100644 --- a/shared/src/bond.rs +++ b/shared/src/bond.rs @@ -4,7 +4,7 @@ use crate::balance::Amount; use crate::block::Epoch; use crate::id::Id; -#[derive(Debug, Clone)] +#[derive(Hash, Debug, Clone, PartialEq, Eq)] pub struct BondAddresses { pub source: Id, pub target: Id, diff --git a/shared/src/unbond.rs b/shared/src/unbond.rs index 130f9e00..677035c2 100644 --- a/shared/src/unbond.rs +++ b/shared/src/unbond.rs @@ -4,7 +4,7 @@ use crate::balance::Amount; use crate::block::Epoch; use crate::id::Id; -#[derive(Debug, Clone)] +#[derive(Hash, Debug, Clone, PartialEq, Eq)] pub struct UnbondAddresses { pub source: Id, pub validator: Id,