From 4013be10ed9edd0c62c96ad9014653158609c0e8 Mon Sep 17 00:00:00 2001 From: Vibhav Pant <vibhav@edjx.io> Date: Wed, 25 Mar 2020 17:34:36 +0530 Subject: [PATCH] peer: Add (*PeerRecord).ToProtoBuf to get protobuf equivalent struct --- peer/record.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/peer/record.go b/peer/record.go index c45efbe..f21b0da 100644 --- a/peer/record.go +++ b/peer/record.go @@ -187,6 +187,19 @@ func (r *PeerRecord) Equal(other *PeerRecord) bool { return true } +// ToProtobuf returns the equivalent Protocol Buffer struct object of a PeerRecord. +func (r *PeerRecord) ToProtobuf() (*pb.PeerRecord, error) { + idBytes, err := r.PeerID.MarshalBinary() + if err != nil { + return nil, err + } + return &pb.PeerRecord{ + PeerId: idBytes, + Addresses: addrsToProtobuf(r.Addrs), + Seq: r.Seq, + }, nil +} + func addrsFromProtobuf(addrs []*pb.PeerRecord_AddressInfo) []ma.Multiaddr { var out []ma.Multiaddr for _, addr := range addrs {