use crate::DhtClient;
use anyhow;
use libp2p::{
multiaddr::{Multiaddr, Protocol},
PeerId,
};
use tokio::time;
pub async fn wait_for_peers<T: DhtClient>(
client: &T,
requested_peers: usize,
) -> anyhow::Result<()> {
loop {
let peers = client.peers().await?;
if peers.len() >= requested_peers {
return Ok(());
}
time::sleep(time::Duration::from_secs(1)).await;
}
}
pub(crate) fn make_p2p_address(mut addr: Multiaddr, peer_id: PeerId) -> Multiaddr {
addr.push(Protocol::P2p(peer_id.into()));
addr
}