package testnet import ( "context" "gitlab.dms3.io/p2p/go-p2p-core/peer" tnet "gitlab.dms3.io/p2p/go-p2p-testing/net" mockpeernet "gitlab.dms3.io/p2p/go-p2p/p2p/net/mock" gsnet "gitlab.dms3.io/dms3/go-graphsync/network" ) type peernet struct { mockpeernet.Mocknet } // StreamNet is a testnet that uses p2p's MockNet func StreamNet(ctx context.Context, net mockpeernet.Mocknet) Network { return &peernet{net} } func (pn *peernet) Adapter(p tnet.Identity) gsnet.GraphSyncNetwork { client, err := pn.Mocknet.AddPeer(p.PrivateKey(), p.Address()) if err != nil { panic(err.Error()) } err = pn.Mocknet.LinkAll() if err != nil { panic(err.Error()) } return gsnet.NewFromP2pHost(client) } func (pn *peernet) HasPeer(p peer.ID) bool { for _, member := range pn.Mocknet.Peers() { if p == member { return true } } return false } var _ Network = (*peernet)(nil)