syntax = "proto3";

message Addresses {
  // Address represents a single multiaddr.
  message Address {
    bytes multiaddr = 1;

    // Flag to indicate if the address comes from a certified source.
    optional bool isCertified = 2;
  }

  // CertifiedRecord contains a serialized signed PeerRecord used to
  // populate the signedAddrs list.
  message CertifiedRecord {
    // The Seq counter from the signed PeerRecord envelope
    uint64 seq = 1;

    // The serialized bytes of the SignedEnvelope containing the PeerRecord.
    bytes raw = 2;
  }

  // The known multiaddrs.
  repeated Address addrs = 1;

  // The most recently received signed PeerRecord.
  CertifiedRecord certified_record = 2;
}