use crate::Multiaddr;
use ant_protocol::CLOSE_GROUP_SIZE;
use libp2p::kad::Quorum;
use libp2p::multiaddr::Protocol;
pub(crate) fn multiaddr_is_global(multiaddr: &Multiaddr) -> bool {
!multiaddr.iter().any(|addr| match addr {
Protocol::Ip4(ip) => {
ip.is_unspecified()
| ip.is_private()
| ip.is_loopback()
| ip.is_link_local()
| ip.is_documentation()
| ip.is_broadcast()
}
_ => false,
})
}
pub const fn close_group_majority() -> usize {
CLOSE_GROUP_SIZE / 2 + 1
}
pub fn get_quorum_amount(quorum: &Quorum) -> usize {
match quorum {
Quorum::Majority => close_group_majority(),
Quorum::All => CLOSE_GROUP_SIZE,
Quorum::N(v) => v.get(),
Quorum::One => 1,
}
}