package common import ( "context" metrics "github.com/libp2p/go-libp2p-core/metrics" "github.com/libp2p/go-libp2p-core/network" "github.com/libp2p/go-libp2p-core/peer" protocol "github.com/libp2p/go-libp2p-core/protocol" "github.com/filecoin-project/lotus/api" apitypes "github.com/filecoin-project/lotus/api/types" ) type NetAPI interface { NetConnectedness(ctx context.Context, pid peer.ID) (network.Connectedness, error) NetPubsubScores(context.Context) ([]api.PubsubScore, error) NetPeers(context.Context) ([]peer.AddrInfo, error) NetPeerInfo(_ context.Context, p peer.ID) (*api.ExtendedPeerInfo, error) NetConnect(ctx context.Context, p peer.AddrInfo) error NetAddrsListen(context.Context) (peer.AddrInfo, error) NetDisconnect(ctx context.Context, p peer.ID) error NetFindPeer(ctx context.Context, p peer.ID) (peer.AddrInfo, error) NetAutoNatStatus(ctx context.Context) (i api.NatInfo, err error) NetAgentVersion(ctx context.Context, p peer.ID) (string, error) NetBandwidthStats(ctx context.Context) (metrics.Stats, error) NetBandwidthStatsByPeer(ctx context.Context) (map[string]metrics.Stats, error) NetBandwidthStatsByProtocol(ctx context.Context) (map[protocol.ID]metrics.Stats, error) Discover(ctx context.Context) (apitypes.OpenRPCDocument, error) ID(context.Context) (peer.ID, error) NetBlockAdd(ctx context.Context, acl api.NetBlockList) error NetBlockRemove(ctx context.Context, acl api.NetBlockList) error NetBlockList(ctx context.Context) (api.NetBlockList, error) }