Add methods for getting peers capabilities

This commit is contained in:
chimp1984 2020-10-07 11:49:47 -05:00
parent 6f7dfcf4ef
commit 40f9cfb7c5
No known key found for this signature in database
GPG key ID: 9801B4EC591F90E3

View file

@ -32,6 +32,7 @@ import bisq.common.ClockWatcher;
import bisq.common.Timer;
import bisq.common.UserThread;
import bisq.common.app.Capabilities;
import bisq.common.app.Capability;
import bisq.common.config.Config;
import bisq.common.persistence.PersistenceManager;
import bisq.common.proto.persistable.PersistedDataHost;
@ -206,6 +207,21 @@ public class PeerManager implements ConnectionListener, PersistedDataHost {
}
public boolean peerHasCapability(NodeAddress peersNodeAddress, Capability capability) {
return findPeersCapabilities(peersNodeAddress)
.map(capabilities -> capabilities.contains(capability))
.orElse(false);
}
// TODO persist Capabilities
public Optional<Capabilities> findPeersCapabilities(NodeAddress peersNodeAddress) {
return networkNode.getConfirmedConnections().stream()
.filter(c -> c.getPeersNodeAddressProperty().get() != null)
.filter(c -> c.getPeersNodeAddressProperty().get().equals(peersNodeAddress))
.map(Connection::getCapabilities)
.findAny();
}
///////////////////////////////////////////////////////////////////////////////////////////
// ConnectionListener implementation
///////////////////////////////////////////////////////////////////////////////////////////