Add PeerManagerApi (#5164)

This commit is contained in:
Chris Stewart 2023-07-25 14:34:32 -05:00 committed by GitHub
parent 2d57ff6a3e
commit ef2c96cc99
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 20 additions and 2 deletions

View file

@ -0,0 +1,17 @@
package org.bitcoins.core.api.node
import scala.concurrent.Future
trait PeerManagerApi {
def disconnectPeer(peer: Peer): Future[Unit]
def connectPeer(peer: Peer): Future[Unit]
def isConnected(peer: Peer): Future[Boolean]
def isDisconnected(peer: Peer): Future[Boolean]
def isInitialized(peer: Peer): Future[Boolean]
}

View file

@ -27,7 +27,7 @@ import org.bitcoins.core.api.chain.db.{
CompactFilterDb,
CompactFilterHeaderDb
}
import org.bitcoins.core.api.node.{NodeType, Peer}
import org.bitcoins.core.api.node.{NodeType, Peer, PeerManagerApi}
import org.bitcoins.core.p2p._
import org.bitcoins.core.protocol.transaction.Transaction
import org.bitcoins.core.util.{NetworkUtil, StartStopAsync}
@ -57,6 +57,7 @@ case class PeerManager(
nodeAppConfig: NodeAppConfig,
chainAppConfig: ChainAppConfig)
extends StartStopAsync[PeerManager]
with PeerManagerApi
with PeerMessageSenderApi
with SourceQueue[NodeStreamMessage]
with P2PLogger {
@ -82,7 +83,7 @@ case class PeerManager(
def connectedPeerCount: Int = _peerDataMap.size
private def connectPeer(peer: Peer): Future[Unit] = {
override def connectPeer(peer: Peer): Future[Unit] = {
finderOpt match {
case Some(finder) =>
require(finder.hasPeer(peer), s"Unknown $peer marked as usable")