From 95082699a68f9d8e7ebcbcdf98cacb9b64247085 Mon Sep 17 00:00:00 2001 From: Eval EXEC Date: Thu, 23 Jan 2025 00:17:48 +0800 Subject: [PATCH] `NetRpcImpl::get_peers` return `Remoteaddress.addresses` dedup Signed-off-by: Eval EXEC --- rpc/src/module/net.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/rpc/src/module/net.rs b/rpc/src/module/net.rs index 855cefae7a..cbc2f5ad7f 100644 --- a/rpc/src/module/net.rs +++ b/rpc/src/module/net.rs @@ -11,6 +11,7 @@ use ckb_systemtime::unix_time_as_millis; use ckb_types::prelude::{Pack, Unpack}; use jsonrpc_core::Result; use jsonrpc_utils::rpc; +use std::collections::HashSet; use std::sync::Arc; const MAX_ADDRS: usize = 50; @@ -586,8 +587,9 @@ impl NetRpc for NetRpcImpl { .connected_peers() .iter() .map(|(peer_index, peer)| { - let mut addresses = vec![&peer.connected_addr]; - addresses.extend(peer.listened_addrs.iter()); + let addresses: HashSet<_> = std::iter::once(peer.connected_addr.clone()) + .chain(peer.listened_addrs.iter().cloned()) + .collect(); let node_addresses = addresses .iter()