feat: add helper functions for working with addr infos (#202)

Specifically, move them _here_ from the peerstore. That way
packages (like the DHT) that currently directly rely on the peerstore,
can just use go-libp2p-core.

Moved from f7f22569f7/peerstore.go (L79-L93)

With some small modifications.
This commit is contained in:
Steven Allen 2021-07-21 13:09:49 -07:00 committed by GitHub
parent def12fc22a
commit 79536ece55
2 changed files with 23 additions and 0 deletions

View File

@ -106,3 +106,12 @@ func (pi *AddrInfo) Loggable() map[string]interface{} {
"addrs": pi.Addrs,
}
}
// AddrInfosToIDs extracts the peer IDs from the passed AddrInfos and returns them in-order.
func AddrInfosToIDs(pis []AddrInfo) []ID {
ps := make([]ID, len(pis))
for i, pi := range pis {
ps[i] = pi.ID
}
return ps
}

14
core/peerstore/helpers.go Normal file
View File

@ -0,0 +1,14 @@
package peerstore
import (
"github.com/libp2p/go-libp2p-core/peer"
)
// AddrInfos returns an AddrInfo for each specified peer ID, in-order.
func AddrInfos(ps Peerstore, peers []peer.ID) []peer.AddrInfo {
pi := make([]peer.AddrInfo, len(peers))
for i, p := range peers {
pi[i] = ps.PeerInfo(p)
}
return pi
}