diff --git a/peerstore/peerstore.go b/peerstore/peerstore.go index 496d34a1c99a04738c8f958ab34a797d2ee63515..3c621b5c8b1a636871988be33682e6656375695b 100644 --- a/peerstore/peerstore.go +++ b/peerstore/peerstore.go @@ -233,5 +233,13 @@ type ProtoBook interface { AddProtocols(peer.ID, ...string) error SetProtocols(peer.ID, ...string) error RemoveProtocols(peer.ID, ...string) error + + // SupportsProtocols returns the set of protocols the peer supports from among the given protocols. + // If the returned error is not nil, the result is indeterminate. SupportsProtocols(peer.ID, ...string) ([]string, error) + + // FirstSupportedProtocol returns the first protocol that the peer supports among the given protocols. + // If the peer does not support any of the given protocols, this function will return an empty string and a nil error. + // If the returned error is not nil, the result is indeterminate. + FirstSupportedProtocol(peer.ID, ...string) (string, error) }