go-waku/waku/v2/utils/peer.go

33 lines
641 B
Go
Raw Normal View History

2021-06-16 13:14:22 +03:00
package utils
import (
"errors"
2022-10-19 15:39:32 -04:00
"github.com/libp2p/go-libp2p/core/peer"
2023-03-13 20:37:28 -04:00
"github.com/multiformats/go-multiaddr"
2021-06-16 13:14:22 +03:00
)
type DialError struct {
Err error
PeerID peer.ID
}
// ErrNoPeersAvailable is emitted when no suitable peers are found for
// some protocol
var ErrNoPeersAvailable = errors.New("no suitable peers found")
// GetPeerID is used to extract the peerID from a multiaddress
2023-03-13 20:37:28 -04:00
func GetPeerID(m multiaddr.Multiaddr) (peer.ID, error) {
peerIDStr, err := m.ValueForProtocol(multiaddr.P_P2P)
if err != nil {
return "", err
}
peerID, err := peer.Decode(peerIDStr)
if err != nil {
return "", err
}
return peerID, nil
}