serialize method

Uint8List serialize()

Serialize to bytes: uint8 type + uint16 addr_length + addr_bytes.

Implementation

Uint8List serialize() {
  final addrBytes = Uint8List.fromList(observedAddr);
  final length = addrBytes.length;
  if (length > 0xFFFF) {
    throw ArgumentError('observedAddr length exceeds uint16 max');
  }
  final result = Uint8List(1 + 2 + length);
  final view = ByteData.view(result.buffer);
  view.setUint8(0, type);
  view.setUint16(1, length, Endian.big);
  result.setAll(3, addrBytes);
  return result;
}