peerToPeerInfoV2 function

PeerInfo peerToPeerInfoV2(
  1. Peer p
)

Converts a protocol buffer Peer message to a PeerInfo.

Implementation

PeerInfo peerToPeerInfoV2(Peer p) {
  if (p.id.isEmpty) {
    throw Exception('nil peer');
  }

  final id = PeerId.fromBytes(Uint8List.fromList(p.id));
  final addrs = <MultiAddr>[];

  for (final addrBytes in p.addrs) {
    try {
      final addr = MultiAddr.fromBytes(Uint8List.fromList(addrBytes));
      addrs.add(addr);
    } catch (e) {
      // Ignore invalid addresses
    }
  }

  return PeerInfo(peerId: id, addrs: addrs.toSet());
}