class PingPacketData implements PacketData {

  public static PingPacketData readFrom(final RLPInput in) {
    in.enterList();
    // The first element signifies the "version", but this value is ignored as of EIP-8
    in.readBigIntegerScalar();
    final Optional<Endpoint> from = Endpoint.maybeDecodeStandalone(in);
    final Endpoint to = Endpoint.decodeStandalone(in);
    final long expiration = in.readLongScalar();
    in.leaveListLenient();
    return new PingPacketData(from, to, expiration);
  }

  private  PingPacketData(
      final Optional<Endpoint> maybeFrom, final Endpoint to, final long expiration);

}