All Downloads are FREE. Search and download functionalities are using the official Maven repository.

quivr.models.Proof.scala Maven / Gradle / Ivy

The newest version!
// Generated by the Scala Plugin for the Protocol Buffer Compiler.
// Do not edit!
//
// Protofile syntax: PROTO3

package quivr.models

/** Proofs that are used to satisfy propositions
  */
@SerialVersionUID(0L)
final case class Proof(
    value: quivr.models.Proof.Value = quivr.models.Proof.Value.Empty,
    unknownFields: _root_.scalapb.UnknownFieldSet = _root_.scalapb.UnknownFieldSet.empty
    ) extends scalapb.GeneratedMessage with scalapb.lenses.Updatable[Proof] {
    @transient
    private[this] var __serializedSizeMemoized: _root_.scala.Int = 0
    private[this] def __computeSerializedSize(): _root_.scala.Int = {
      var __size = 0
      if (value.locked.isDefined) {
        val __value = value.locked.get
        __size += 1 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
      };
      if (value.digest.isDefined) {
        val __value = value.digest.get
        __size += 1 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
      };
      if (value.digitalSignature.isDefined) {
        val __value = value.digitalSignature.get
        __size += 1 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
      };
      if (value.heightRange.isDefined) {
        val __value = value.heightRange.get
        __size += 1 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
      };
      if (value.tickRange.isDefined) {
        val __value = value.tickRange.get
        __size += 1 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
      };
      if (value.exactMatch.isDefined) {
        val __value = value.exactMatch.get
        __size += 1 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
      };
      if (value.lessThan.isDefined) {
        val __value = value.lessThan.get
        __size += 1 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
      };
      if (value.greaterThan.isDefined) {
        val __value = value.greaterThan.get
        __size += 1 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
      };
      if (value.equalTo.isDefined) {
        val __value = value.equalTo.get
        __size += 1 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
      };
      if (value.threshold.isDefined) {
        val __value = value.threshold.get
        __size += 1 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
      };
      if (value.not.isDefined) {
        val __value = value.not.get
        __size += 1 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
      };
      if (value.and.isDefined) {
        val __value = value.and.get
        __size += 1 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
      };
      if (value.or.isDefined) {
        val __value = value.or.get
        __size += 1 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
      };
      __size += unknownFields.serializedSize
      __size
    }
    override def serializedSize: _root_.scala.Int = {
      var __size = __serializedSizeMemoized
      if (__size == 0) {
        __size = __computeSerializedSize() + 1
        __serializedSizeMemoized = __size
      }
      __size - 1
      
    }
    def writeTo(`_output__`: _root_.com.google.protobuf.CodedOutputStream): _root_.scala.Unit = {
      value.locked.foreach { __v =>
        val __m = __v
        _output__.writeTag(1, 2)
        _output__.writeUInt32NoTag(__m.serializedSize)
        __m.writeTo(_output__)
      };
      value.digest.foreach { __v =>
        val __m = __v
        _output__.writeTag(2, 2)
        _output__.writeUInt32NoTag(__m.serializedSize)
        __m.writeTo(_output__)
      };
      value.digitalSignature.foreach { __v =>
        val __m = __v
        _output__.writeTag(3, 2)
        _output__.writeUInt32NoTag(__m.serializedSize)
        __m.writeTo(_output__)
      };
      value.heightRange.foreach { __v =>
        val __m = __v
        _output__.writeTag(4, 2)
        _output__.writeUInt32NoTag(__m.serializedSize)
        __m.writeTo(_output__)
      };
      value.tickRange.foreach { __v =>
        val __m = __v
        _output__.writeTag(5, 2)
        _output__.writeUInt32NoTag(__m.serializedSize)
        __m.writeTo(_output__)
      };
      value.exactMatch.foreach { __v =>
        val __m = __v
        _output__.writeTag(6, 2)
        _output__.writeUInt32NoTag(__m.serializedSize)
        __m.writeTo(_output__)
      };
      value.lessThan.foreach { __v =>
        val __m = __v
        _output__.writeTag(7, 2)
        _output__.writeUInt32NoTag(__m.serializedSize)
        __m.writeTo(_output__)
      };
      value.greaterThan.foreach { __v =>
        val __m = __v
        _output__.writeTag(8, 2)
        _output__.writeUInt32NoTag(__m.serializedSize)
        __m.writeTo(_output__)
      };
      value.equalTo.foreach { __v =>
        val __m = __v
        _output__.writeTag(9, 2)
        _output__.writeUInt32NoTag(__m.serializedSize)
        __m.writeTo(_output__)
      };
      value.threshold.foreach { __v =>
        val __m = __v
        _output__.writeTag(10, 2)
        _output__.writeUInt32NoTag(__m.serializedSize)
        __m.writeTo(_output__)
      };
      value.not.foreach { __v =>
        val __m = __v
        _output__.writeTag(11, 2)
        _output__.writeUInt32NoTag(__m.serializedSize)
        __m.writeTo(_output__)
      };
      value.and.foreach { __v =>
        val __m = __v
        _output__.writeTag(12, 2)
        _output__.writeUInt32NoTag(__m.serializedSize)
        __m.writeTo(_output__)
      };
      value.or.foreach { __v =>
        val __m = __v
        _output__.writeTag(13, 2)
        _output__.writeUInt32NoTag(__m.serializedSize)
        __m.writeTo(_output__)
      };
      unknownFields.writeTo(_output__)
    }
    def getLocked: quivr.models.Proof.Locked = value.locked.getOrElse(quivr.models.Proof.Locked.defaultInstance)
    def withLocked(__v: quivr.models.Proof.Locked): Proof = copy(value = quivr.models.Proof.Value.Locked(__v))
    def getDigest: quivr.models.Proof.Digest = value.digest.getOrElse(quivr.models.Proof.Digest.defaultInstance)
    def withDigest(__v: quivr.models.Proof.Digest): Proof = copy(value = quivr.models.Proof.Value.Digest(__v))
    def getDigitalSignature: quivr.models.Proof.DigitalSignature = value.digitalSignature.getOrElse(quivr.models.Proof.DigitalSignature.defaultInstance)
    def withDigitalSignature(__v: quivr.models.Proof.DigitalSignature): Proof = copy(value = quivr.models.Proof.Value.DigitalSignature(__v))
    def getHeightRange: quivr.models.Proof.HeightRange = value.heightRange.getOrElse(quivr.models.Proof.HeightRange.defaultInstance)
    def withHeightRange(__v: quivr.models.Proof.HeightRange): Proof = copy(value = quivr.models.Proof.Value.HeightRange(__v))
    def getTickRange: quivr.models.Proof.TickRange = value.tickRange.getOrElse(quivr.models.Proof.TickRange.defaultInstance)
    def withTickRange(__v: quivr.models.Proof.TickRange): Proof = copy(value = quivr.models.Proof.Value.TickRange(__v))
    def getExactMatch: quivr.models.Proof.ExactMatch = value.exactMatch.getOrElse(quivr.models.Proof.ExactMatch.defaultInstance)
    def withExactMatch(__v: quivr.models.Proof.ExactMatch): Proof = copy(value = quivr.models.Proof.Value.ExactMatch(__v))
    def getLessThan: quivr.models.Proof.LessThan = value.lessThan.getOrElse(quivr.models.Proof.LessThan.defaultInstance)
    def withLessThan(__v: quivr.models.Proof.LessThan): Proof = copy(value = quivr.models.Proof.Value.LessThan(__v))
    def getGreaterThan: quivr.models.Proof.GreaterThan = value.greaterThan.getOrElse(quivr.models.Proof.GreaterThan.defaultInstance)
    def withGreaterThan(__v: quivr.models.Proof.GreaterThan): Proof = copy(value = quivr.models.Proof.Value.GreaterThan(__v))
    def getEqualTo: quivr.models.Proof.EqualTo = value.equalTo.getOrElse(quivr.models.Proof.EqualTo.defaultInstance)
    def withEqualTo(__v: quivr.models.Proof.EqualTo): Proof = copy(value = quivr.models.Proof.Value.EqualTo(__v))
    def getThreshold: quivr.models.Proof.Threshold = value.threshold.getOrElse(quivr.models.Proof.Threshold.defaultInstance)
    def withThreshold(__v: quivr.models.Proof.Threshold): Proof = copy(value = quivr.models.Proof.Value.Threshold(__v))
    def getNot: quivr.models.Proof.Not = value.not.getOrElse(quivr.models.Proof.Not.defaultInstance)
    def withNot(__v: quivr.models.Proof.Not): Proof = copy(value = quivr.models.Proof.Value.Not(__v))
    def getAnd: quivr.models.Proof.And = value.and.getOrElse(quivr.models.Proof.And.defaultInstance)
    def withAnd(__v: quivr.models.Proof.And): Proof = copy(value = quivr.models.Proof.Value.And(__v))
    def getOr: quivr.models.Proof.Or = value.or.getOrElse(quivr.models.Proof.Or.defaultInstance)
    def withOr(__v: quivr.models.Proof.Or): Proof = copy(value = quivr.models.Proof.Value.Or(__v))
    def clearValue: Proof = copy(value = quivr.models.Proof.Value.Empty)
    def withValue(__v: quivr.models.Proof.Value): Proof = copy(value = __v)
    def withUnknownFields(__v: _root_.scalapb.UnknownFieldSet) = copy(unknownFields = __v)
    def discardUnknownFields = copy(unknownFields = _root_.scalapb.UnknownFieldSet.empty)
    def getFieldByNumber(__fieldNumber: _root_.scala.Int): _root_.scala.Any = {
      (__fieldNumber: @_root_.scala.unchecked) match {
        case 1 => value.locked.orNull
        case 2 => value.digest.orNull
        case 3 => value.digitalSignature.orNull
        case 4 => value.heightRange.orNull
        case 5 => value.tickRange.orNull
        case 6 => value.exactMatch.orNull
        case 7 => value.lessThan.orNull
        case 8 => value.greaterThan.orNull
        case 9 => value.equalTo.orNull
        case 10 => value.threshold.orNull
        case 11 => value.not.orNull
        case 12 => value.and.orNull
        case 13 => value.or.orNull
      }
    }
    def getField(__field: _root_.scalapb.descriptors.FieldDescriptor): _root_.scalapb.descriptors.PValue = {
      _root_.scala.Predef.require(__field.containingMessage eq companion.scalaDescriptor)
      (__field.number: @_root_.scala.unchecked) match {
        case 1 => value.locked.map(_.toPMessage).getOrElse(_root_.scalapb.descriptors.PEmpty)
        case 2 => value.digest.map(_.toPMessage).getOrElse(_root_.scalapb.descriptors.PEmpty)
        case 3 => value.digitalSignature.map(_.toPMessage).getOrElse(_root_.scalapb.descriptors.PEmpty)
        case 4 => value.heightRange.map(_.toPMessage).getOrElse(_root_.scalapb.descriptors.PEmpty)
        case 5 => value.tickRange.map(_.toPMessage).getOrElse(_root_.scalapb.descriptors.PEmpty)
        case 6 => value.exactMatch.map(_.toPMessage).getOrElse(_root_.scalapb.descriptors.PEmpty)
        case 7 => value.lessThan.map(_.toPMessage).getOrElse(_root_.scalapb.descriptors.PEmpty)
        case 8 => value.greaterThan.map(_.toPMessage).getOrElse(_root_.scalapb.descriptors.PEmpty)
        case 9 => value.equalTo.map(_.toPMessage).getOrElse(_root_.scalapb.descriptors.PEmpty)
        case 10 => value.threshold.map(_.toPMessage).getOrElse(_root_.scalapb.descriptors.PEmpty)
        case 11 => value.not.map(_.toPMessage).getOrElse(_root_.scalapb.descriptors.PEmpty)
        case 12 => value.and.map(_.toPMessage).getOrElse(_root_.scalapb.descriptors.PEmpty)
        case 13 => value.or.map(_.toPMessage).getOrElse(_root_.scalapb.descriptors.PEmpty)
      }
    }
    def toProtoString: _root_.scala.Predef.String = _root_.scalapb.TextFormat.printToUnicodeString(this)
    def companion: quivr.models.Proof.type = quivr.models.Proof
    _root_.scalapb.validate.Validator.assertValid(this)(quivr.models.ProofValidator)
    // @@protoc_insertion_point(GeneratedMessage[quivr.models.Proof])
}

object Proof extends scalapb.GeneratedMessageCompanion[quivr.models.Proof] {
  implicit def messageCompanion: scalapb.GeneratedMessageCompanion[quivr.models.Proof] = this
  def parseFrom(`_input__`: _root_.com.google.protobuf.CodedInputStream): quivr.models.Proof = {
    var __value: quivr.models.Proof.Value = quivr.models.Proof.Value.Empty
    var `_unknownFields__`: _root_.scalapb.UnknownFieldSet.Builder = null
    var _done__ = false
    while (!_done__) {
      val _tag__ = _input__.readTag()
      _tag__ match {
        case 0 => _done__ = true
        case 10 =>
          __value = quivr.models.Proof.Value.Locked(__value.locked.fold(_root_.scalapb.LiteParser.readMessage[quivr.models.Proof.Locked](_input__))(_root_.scalapb.LiteParser.readMessage(_input__, _)))
        case 18 =>
          __value = quivr.models.Proof.Value.Digest(__value.digest.fold(_root_.scalapb.LiteParser.readMessage[quivr.models.Proof.Digest](_input__))(_root_.scalapb.LiteParser.readMessage(_input__, _)))
        case 26 =>
          __value = quivr.models.Proof.Value.DigitalSignature(__value.digitalSignature.fold(_root_.scalapb.LiteParser.readMessage[quivr.models.Proof.DigitalSignature](_input__))(_root_.scalapb.LiteParser.readMessage(_input__, _)))
        case 34 =>
          __value = quivr.models.Proof.Value.HeightRange(__value.heightRange.fold(_root_.scalapb.LiteParser.readMessage[quivr.models.Proof.HeightRange](_input__))(_root_.scalapb.LiteParser.readMessage(_input__, _)))
        case 42 =>
          __value = quivr.models.Proof.Value.TickRange(__value.tickRange.fold(_root_.scalapb.LiteParser.readMessage[quivr.models.Proof.TickRange](_input__))(_root_.scalapb.LiteParser.readMessage(_input__, _)))
        case 50 =>
          __value = quivr.models.Proof.Value.ExactMatch(__value.exactMatch.fold(_root_.scalapb.LiteParser.readMessage[quivr.models.Proof.ExactMatch](_input__))(_root_.scalapb.LiteParser.readMessage(_input__, _)))
        case 58 =>
          __value = quivr.models.Proof.Value.LessThan(__value.lessThan.fold(_root_.scalapb.LiteParser.readMessage[quivr.models.Proof.LessThan](_input__))(_root_.scalapb.LiteParser.readMessage(_input__, _)))
        case 66 =>
          __value = quivr.models.Proof.Value.GreaterThan(__value.greaterThan.fold(_root_.scalapb.LiteParser.readMessage[quivr.models.Proof.GreaterThan](_input__))(_root_.scalapb.LiteParser.readMessage(_input__, _)))
        case 74 =>
          __value = quivr.models.Proof.Value.EqualTo(__value.equalTo.fold(_root_.scalapb.LiteParser.readMessage[quivr.models.Proof.EqualTo](_input__))(_root_.scalapb.LiteParser.readMessage(_input__, _)))
        case 82 =>
          __value = quivr.models.Proof.Value.Threshold(__value.threshold.fold(_root_.scalapb.LiteParser.readMessage[quivr.models.Proof.Threshold](_input__))(_root_.scalapb.LiteParser.readMessage(_input__, _)))
        case 90 =>
          __value = quivr.models.Proof.Value.Not(__value.not.fold(_root_.scalapb.LiteParser.readMessage[quivr.models.Proof.Not](_input__))(_root_.scalapb.LiteParser.readMessage(_input__, _)))
        case 98 =>
          __value = quivr.models.Proof.Value.And(__value.and.fold(_root_.scalapb.LiteParser.readMessage[quivr.models.Proof.And](_input__))(_root_.scalapb.LiteParser.readMessage(_input__, _)))
        case 106 =>
          __value = quivr.models.Proof.Value.Or(__value.or.fold(_root_.scalapb.LiteParser.readMessage[quivr.models.Proof.Or](_input__))(_root_.scalapb.LiteParser.readMessage(_input__, _)))
        case tag =>
          if (_unknownFields__ == null) {
            _unknownFields__ = new _root_.scalapb.UnknownFieldSet.Builder()
          }
          _unknownFields__.parseField(tag, _input__)
      }
    }
    quivr.models.Proof(
        value = __value,
        unknownFields = if (_unknownFields__ == null) _root_.scalapb.UnknownFieldSet.empty else _unknownFields__.result()
    )
  }
  implicit def messageReads: _root_.scalapb.descriptors.Reads[quivr.models.Proof] = _root_.scalapb.descriptors.Reads{
    case _root_.scalapb.descriptors.PMessage(__fieldsMap) =>
      _root_.scala.Predef.require(__fieldsMap.keys.forall(_.containingMessage eq scalaDescriptor), "FieldDescriptor does not match message type.")
      quivr.models.Proof(
        value = __fieldsMap.get(scalaDescriptor.findFieldByNumber(1).get).flatMap(_.as[_root_.scala.Option[quivr.models.Proof.Locked]]).map(quivr.models.Proof.Value.Locked(_))
            .orElse[quivr.models.Proof.Value](__fieldsMap.get(scalaDescriptor.findFieldByNumber(2).get).flatMap(_.as[_root_.scala.Option[quivr.models.Proof.Digest]]).map(quivr.models.Proof.Value.Digest(_)))
            .orElse[quivr.models.Proof.Value](__fieldsMap.get(scalaDescriptor.findFieldByNumber(3).get).flatMap(_.as[_root_.scala.Option[quivr.models.Proof.DigitalSignature]]).map(quivr.models.Proof.Value.DigitalSignature(_)))
            .orElse[quivr.models.Proof.Value](__fieldsMap.get(scalaDescriptor.findFieldByNumber(4).get).flatMap(_.as[_root_.scala.Option[quivr.models.Proof.HeightRange]]).map(quivr.models.Proof.Value.HeightRange(_)))
            .orElse[quivr.models.Proof.Value](__fieldsMap.get(scalaDescriptor.findFieldByNumber(5).get).flatMap(_.as[_root_.scala.Option[quivr.models.Proof.TickRange]]).map(quivr.models.Proof.Value.TickRange(_)))
            .orElse[quivr.models.Proof.Value](__fieldsMap.get(scalaDescriptor.findFieldByNumber(6).get).flatMap(_.as[_root_.scala.Option[quivr.models.Proof.ExactMatch]]).map(quivr.models.Proof.Value.ExactMatch(_)))
            .orElse[quivr.models.Proof.Value](__fieldsMap.get(scalaDescriptor.findFieldByNumber(7).get).flatMap(_.as[_root_.scala.Option[quivr.models.Proof.LessThan]]).map(quivr.models.Proof.Value.LessThan(_)))
            .orElse[quivr.models.Proof.Value](__fieldsMap.get(scalaDescriptor.findFieldByNumber(8).get).flatMap(_.as[_root_.scala.Option[quivr.models.Proof.GreaterThan]]).map(quivr.models.Proof.Value.GreaterThan(_)))
            .orElse[quivr.models.Proof.Value](__fieldsMap.get(scalaDescriptor.findFieldByNumber(9).get).flatMap(_.as[_root_.scala.Option[quivr.models.Proof.EqualTo]]).map(quivr.models.Proof.Value.EqualTo(_)))
            .orElse[quivr.models.Proof.Value](__fieldsMap.get(scalaDescriptor.findFieldByNumber(10).get).flatMap(_.as[_root_.scala.Option[quivr.models.Proof.Threshold]]).map(quivr.models.Proof.Value.Threshold(_)))
            .orElse[quivr.models.Proof.Value](__fieldsMap.get(scalaDescriptor.findFieldByNumber(11).get).flatMap(_.as[_root_.scala.Option[quivr.models.Proof.Not]]).map(quivr.models.Proof.Value.Not(_)))
            .orElse[quivr.models.Proof.Value](__fieldsMap.get(scalaDescriptor.findFieldByNumber(12).get).flatMap(_.as[_root_.scala.Option[quivr.models.Proof.And]]).map(quivr.models.Proof.Value.And(_)))
            .orElse[quivr.models.Proof.Value](__fieldsMap.get(scalaDescriptor.findFieldByNumber(13).get).flatMap(_.as[_root_.scala.Option[quivr.models.Proof.Or]]).map(quivr.models.Proof.Value.Or(_)))
            .getOrElse(quivr.models.Proof.Value.Empty)
      )
    case _ => throw new RuntimeException("Expected PMessage")
  }
  def javaDescriptor: _root_.com.google.protobuf.Descriptors.Descriptor = ProofProto.javaDescriptor.getMessageTypes().get(0)
  def scalaDescriptor: _root_.scalapb.descriptors.Descriptor = ProofProto.scalaDescriptor.messages(0)
  def messageCompanionForFieldNumber(__number: _root_.scala.Int): _root_.scalapb.GeneratedMessageCompanion[_] = {
    var __out: _root_.scalapb.GeneratedMessageCompanion[_] = null
    (__number: @_root_.scala.unchecked) match {
      case 1 => __out = quivr.models.Proof.Locked
      case 2 => __out = quivr.models.Proof.Digest
      case 3 => __out = quivr.models.Proof.DigitalSignature
      case 4 => __out = quivr.models.Proof.HeightRange
      case 5 => __out = quivr.models.Proof.TickRange
      case 6 => __out = quivr.models.Proof.ExactMatch
      case 7 => __out = quivr.models.Proof.LessThan
      case 8 => __out = quivr.models.Proof.GreaterThan
      case 9 => __out = quivr.models.Proof.EqualTo
      case 10 => __out = quivr.models.Proof.Threshold
      case 11 => __out = quivr.models.Proof.Not
      case 12 => __out = quivr.models.Proof.And
      case 13 => __out = quivr.models.Proof.Or
    }
    __out
  }
  lazy val nestedMessagesCompanions: Seq[_root_.scalapb.GeneratedMessageCompanion[_ <: _root_.scalapb.GeneratedMessage]] =
    Seq[_root_.scalapb.GeneratedMessageCompanion[_ <: _root_.scalapb.GeneratedMessage]](
      _root_.quivr.models.Proof.Locked,
      _root_.quivr.models.Proof.Digest,
      _root_.quivr.models.Proof.DigitalSignature,
      _root_.quivr.models.Proof.HeightRange,
      _root_.quivr.models.Proof.TickRange,
      _root_.quivr.models.Proof.ExactMatch,
      _root_.quivr.models.Proof.LessThan,
      _root_.quivr.models.Proof.GreaterThan,
      _root_.quivr.models.Proof.EqualTo,
      _root_.quivr.models.Proof.Threshold,
      _root_.quivr.models.Proof.Not,
      _root_.quivr.models.Proof.And,
      _root_.quivr.models.Proof.Or
    )
  def enumCompanionForFieldNumber(__fieldNumber: _root_.scala.Int): _root_.scalapb.GeneratedEnumCompanion[_] = throw new MatchError(__fieldNumber)
  lazy val defaultInstance = quivr.models.Proof(
    value = quivr.models.Proof.Value.Empty
  )
  sealed trait Value extends _root_.scalapb.GeneratedOneof {
    def isEmpty: _root_.scala.Boolean = false
    def isDefined: _root_.scala.Boolean = true
    def isLocked: _root_.scala.Boolean = false
    def isDigest: _root_.scala.Boolean = false
    def isDigitalSignature: _root_.scala.Boolean = false
    def isHeightRange: _root_.scala.Boolean = false
    def isTickRange: _root_.scala.Boolean = false
    def isExactMatch: _root_.scala.Boolean = false
    def isLessThan: _root_.scala.Boolean = false
    def isGreaterThan: _root_.scala.Boolean = false
    def isEqualTo: _root_.scala.Boolean = false
    def isThreshold: _root_.scala.Boolean = false
    def isNot: _root_.scala.Boolean = false
    def isAnd: _root_.scala.Boolean = false
    def isOr: _root_.scala.Boolean = false
    def locked: _root_.scala.Option[quivr.models.Proof.Locked] = _root_.scala.None
    def digest: _root_.scala.Option[quivr.models.Proof.Digest] = _root_.scala.None
    def digitalSignature: _root_.scala.Option[quivr.models.Proof.DigitalSignature] = _root_.scala.None
    def heightRange: _root_.scala.Option[quivr.models.Proof.HeightRange] = _root_.scala.None
    def tickRange: _root_.scala.Option[quivr.models.Proof.TickRange] = _root_.scala.None
    def exactMatch: _root_.scala.Option[quivr.models.Proof.ExactMatch] = _root_.scala.None
    def lessThan: _root_.scala.Option[quivr.models.Proof.LessThan] = _root_.scala.None
    def greaterThan: _root_.scala.Option[quivr.models.Proof.GreaterThan] = _root_.scala.None
    def equalTo: _root_.scala.Option[quivr.models.Proof.EqualTo] = _root_.scala.None
    def threshold: _root_.scala.Option[quivr.models.Proof.Threshold] = _root_.scala.None
    def not: _root_.scala.Option[quivr.models.Proof.Not] = _root_.scala.None
    def and: _root_.scala.Option[quivr.models.Proof.And] = _root_.scala.None
    def or: _root_.scala.Option[quivr.models.Proof.Or] = _root_.scala.None
  }
  object Value {
    @SerialVersionUID(0L)
    case object Empty extends quivr.models.Proof.Value {
      type ValueType = _root_.scala.Nothing
      override def isEmpty: _root_.scala.Boolean = true
      override def isDefined: _root_.scala.Boolean = false
      override def number: _root_.scala.Int = 0
      override def value: _root_.scala.Nothing = throw new java.util.NoSuchElementException("Empty.value")
    }
  
    @SerialVersionUID(0L)
    final case class Locked(value: quivr.models.Proof.Locked) extends quivr.models.Proof.Value {
      type ValueType = quivr.models.Proof.Locked
      override def isLocked: _root_.scala.Boolean = true
      override def locked: _root_.scala.Option[quivr.models.Proof.Locked] = Some(value)
      override def number: _root_.scala.Int = 1
    }
    @SerialVersionUID(0L)
    final case class Digest(value: quivr.models.Proof.Digest) extends quivr.models.Proof.Value {
      type ValueType = quivr.models.Proof.Digest
      override def isDigest: _root_.scala.Boolean = true
      override def digest: _root_.scala.Option[quivr.models.Proof.Digest] = Some(value)
      override def number: _root_.scala.Int = 2
    }
    @SerialVersionUID(0L)
    final case class DigitalSignature(value: quivr.models.Proof.DigitalSignature) extends quivr.models.Proof.Value {
      type ValueType = quivr.models.Proof.DigitalSignature
      override def isDigitalSignature: _root_.scala.Boolean = true
      override def digitalSignature: _root_.scala.Option[quivr.models.Proof.DigitalSignature] = Some(value)
      override def number: _root_.scala.Int = 3
    }
    @SerialVersionUID(0L)
    final case class HeightRange(value: quivr.models.Proof.HeightRange) extends quivr.models.Proof.Value {
      type ValueType = quivr.models.Proof.HeightRange
      override def isHeightRange: _root_.scala.Boolean = true
      override def heightRange: _root_.scala.Option[quivr.models.Proof.HeightRange] = Some(value)
      override def number: _root_.scala.Int = 4
    }
    @SerialVersionUID(0L)
    final case class TickRange(value: quivr.models.Proof.TickRange) extends quivr.models.Proof.Value {
      type ValueType = quivr.models.Proof.TickRange
      override def isTickRange: _root_.scala.Boolean = true
      override def tickRange: _root_.scala.Option[quivr.models.Proof.TickRange] = Some(value)
      override def number: _root_.scala.Int = 5
    }
    @SerialVersionUID(0L)
    final case class ExactMatch(value: quivr.models.Proof.ExactMatch) extends quivr.models.Proof.Value {
      type ValueType = quivr.models.Proof.ExactMatch
      override def isExactMatch: _root_.scala.Boolean = true
      override def exactMatch: _root_.scala.Option[quivr.models.Proof.ExactMatch] = Some(value)
      override def number: _root_.scala.Int = 6
    }
    @SerialVersionUID(0L)
    final case class LessThan(value: quivr.models.Proof.LessThan) extends quivr.models.Proof.Value {
      type ValueType = quivr.models.Proof.LessThan
      override def isLessThan: _root_.scala.Boolean = true
      override def lessThan: _root_.scala.Option[quivr.models.Proof.LessThan] = Some(value)
      override def number: _root_.scala.Int = 7
    }
    @SerialVersionUID(0L)
    final case class GreaterThan(value: quivr.models.Proof.GreaterThan) extends quivr.models.Proof.Value {
      type ValueType = quivr.models.Proof.GreaterThan
      override def isGreaterThan: _root_.scala.Boolean = true
      override def greaterThan: _root_.scala.Option[quivr.models.Proof.GreaterThan] = Some(value)
      override def number: _root_.scala.Int = 8
    }
    @SerialVersionUID(0L)
    final case class EqualTo(value: quivr.models.Proof.EqualTo) extends quivr.models.Proof.Value {
      type ValueType = quivr.models.Proof.EqualTo
      override def isEqualTo: _root_.scala.Boolean = true
      override def equalTo: _root_.scala.Option[quivr.models.Proof.EqualTo] = Some(value)
      override def number: _root_.scala.Int = 9
    }
    @SerialVersionUID(0L)
    final case class Threshold(value: quivr.models.Proof.Threshold) extends quivr.models.Proof.Value {
      type ValueType = quivr.models.Proof.Threshold
      override def isThreshold: _root_.scala.Boolean = true
      override def threshold: _root_.scala.Option[quivr.models.Proof.Threshold] = Some(value)
      override def number: _root_.scala.Int = 10
    }
    @SerialVersionUID(0L)
    final case class Not(value: quivr.models.Proof.Not) extends quivr.models.Proof.Value {
      type ValueType = quivr.models.Proof.Not
      override def isNot: _root_.scala.Boolean = true
      override def not: _root_.scala.Option[quivr.models.Proof.Not] = Some(value)
      override def number: _root_.scala.Int = 11
    }
    @SerialVersionUID(0L)
    final case class And(value: quivr.models.Proof.And) extends quivr.models.Proof.Value {
      type ValueType = quivr.models.Proof.And
      override def isAnd: _root_.scala.Boolean = true
      override def and: _root_.scala.Option[quivr.models.Proof.And] = Some(value)
      override def number: _root_.scala.Int = 12
    }
    @SerialVersionUID(0L)
    final case class Or(value: quivr.models.Proof.Or) extends quivr.models.Proof.Value {
      type ValueType = quivr.models.Proof.Or
      override def isOr: _root_.scala.Boolean = true
      override def or: _root_.scala.Option[quivr.models.Proof.Or] = Some(value)
      override def number: _root_.scala.Int = 13
    }
  }
  /** token = "locked"
    * txBind = [0]
    */
  @SerialVersionUID(0L)
  final case class Locked(
      unknownFields: _root_.scalapb.UnknownFieldSet = _root_.scalapb.UnknownFieldSet.empty
      ) extends scalapb.GeneratedMessage with scalapb.lenses.Updatable[Locked] {
      @transient
      private[this] var __serializedSizeMemoized: _root_.scala.Int = 0
      private[this] def __computeSerializedSize(): _root_.scala.Int = {
        var __size = 0
        __size += unknownFields.serializedSize
        __size
      }
      override def serializedSize: _root_.scala.Int = {
        var __size = __serializedSizeMemoized
        if (__size == 0) {
          __size = __computeSerializedSize() + 1
          __serializedSizeMemoized = __size
        }
        __size - 1
        
      }
      def writeTo(`_output__`: _root_.com.google.protobuf.CodedOutputStream): _root_.scala.Unit = {
        unknownFields.writeTo(_output__)
      }
      def withUnknownFields(__v: _root_.scalapb.UnknownFieldSet) = copy(unknownFields = __v)
      def discardUnknownFields = copy(unknownFields = _root_.scalapb.UnknownFieldSet.empty)
      def getFieldByNumber(__fieldNumber: _root_.scala.Int): _root_.scala.Any = throw new MatchError(__fieldNumber)
      def getField(__field: _root_.scalapb.descriptors.FieldDescriptor): _root_.scalapb.descriptors.PValue = throw new MatchError(__field)
      def toProtoString: _root_.scala.Predef.String = _root_.scalapb.TextFormat.printToUnicodeString(this)
      def companion: quivr.models.Proof.Locked.type = quivr.models.Proof.Locked
      // @@protoc_insertion_point(GeneratedMessage[quivr.models.Proof.Locked])
  }
  
  object Locked extends scalapb.GeneratedMessageCompanion[quivr.models.Proof.Locked] {
    implicit def messageCompanion: scalapb.GeneratedMessageCompanion[quivr.models.Proof.Locked] = this
    def parseFrom(`_input__`: _root_.com.google.protobuf.CodedInputStream): quivr.models.Proof.Locked = {
      var `_unknownFields__`: _root_.scalapb.UnknownFieldSet.Builder = null
      var _done__ = false
      while (!_done__) {
        val _tag__ = _input__.readTag()
        _tag__ match {
          case 0 => _done__ = true
          case tag =>
            if (_unknownFields__ == null) {
              _unknownFields__ = new _root_.scalapb.UnknownFieldSet.Builder()
            }
            _unknownFields__.parseField(tag, _input__)
        }
      }
      quivr.models.Proof.Locked(
          unknownFields = if (_unknownFields__ == null) _root_.scalapb.UnknownFieldSet.empty else _unknownFields__.result()
      )
    }
    implicit def messageReads: _root_.scalapb.descriptors.Reads[quivr.models.Proof.Locked] = _root_.scalapb.descriptors.Reads{
      case _root_.scalapb.descriptors.PMessage(__fieldsMap) =>
        _root_.scala.Predef.require(__fieldsMap.keys.forall(_.containingMessage eq scalaDescriptor), "FieldDescriptor does not match message type.")
        quivr.models.Proof.Locked(
        )
      case _ => throw new RuntimeException("Expected PMessage")
    }
    def javaDescriptor: _root_.com.google.protobuf.Descriptors.Descriptor = quivr.models.Proof.javaDescriptor.getNestedTypes().get(0)
    def scalaDescriptor: _root_.scalapb.descriptors.Descriptor = quivr.models.Proof.scalaDescriptor.nestedMessages(0)
    def messageCompanionForFieldNumber(__number: _root_.scala.Int): _root_.scalapb.GeneratedMessageCompanion[_] = throw new MatchError(__number)
    lazy val nestedMessagesCompanions: Seq[_root_.scalapb.GeneratedMessageCompanion[_ <: _root_.scalapb.GeneratedMessage]] = Seq.empty
    def enumCompanionForFieldNumber(__fieldNumber: _root_.scala.Int): _root_.scalapb.GeneratedEnumCompanion[_] = throw new MatchError(__fieldNumber)
    lazy val defaultInstance = quivr.models.Proof.Locked(
    )
    implicit class LockedLens[UpperPB](_l: _root_.scalapb.lenses.Lens[UpperPB, quivr.models.Proof.Locked]) extends _root_.scalapb.lenses.ObjectLens[UpperPB, quivr.models.Proof.Locked](_l) {
    }
    def of(
    ): _root_.quivr.models.Proof.Locked = _root_.quivr.models.Proof.Locked(
    )
    // @@protoc_insertion_point(GeneratedMessageCompanion[quivr.models.Proof.Locked])
  }
  
  /** token = "digest"
    */
  @SerialVersionUID(0L)
  final case class Digest(
      transactionBind: quivr.models.TxBind,
      preimage: quivr.models.Preimage,
      unknownFields: _root_.scalapb.UnknownFieldSet = _root_.scalapb.UnknownFieldSet.empty
      ) extends scalapb.GeneratedMessage with scalapb.lenses.Updatable[Digest] {
      @transient
      private[this] var __serializedSizeMemoized: _root_.scala.Int = 0
      private[this] def __computeSerializedSize(): _root_.scala.Int = {
        var __size = 0
        
        {
          val __value = transactionBind
          __size += 1 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
        };
        
        {
          val __value = preimage
          __size += 1 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
        };
        __size += unknownFields.serializedSize
        __size
      }
      override def serializedSize: _root_.scala.Int = {
        var __size = __serializedSizeMemoized
        if (__size == 0) {
          __size = __computeSerializedSize() + 1
          __serializedSizeMemoized = __size
        }
        __size - 1
        
      }
      def writeTo(`_output__`: _root_.com.google.protobuf.CodedOutputStream): _root_.scala.Unit = {
        
        {
          val __v = transactionBind
          _output__.writeTag(1, 2)
          _output__.writeUInt32NoTag(__v.serializedSize)
          __v.writeTo(_output__)
        };
        
        {
          val __v = preimage
          _output__.writeTag(2, 2)
          _output__.writeUInt32NoTag(__v.serializedSize)
          __v.writeTo(_output__)
        };
        unknownFields.writeTo(_output__)
      }
      def withTransactionBind(__v: quivr.models.TxBind): Digest = copy(transactionBind = __v)
      def withPreimage(__v: quivr.models.Preimage): Digest = copy(preimage = __v)
      def withUnknownFields(__v: _root_.scalapb.UnknownFieldSet) = copy(unknownFields = __v)
      def discardUnknownFields = copy(unknownFields = _root_.scalapb.UnknownFieldSet.empty)
      def getFieldByNumber(__fieldNumber: _root_.scala.Int): _root_.scala.Any = {
        (__fieldNumber: @_root_.scala.unchecked) match {
          case 1 => transactionBind
          case 2 => preimage
        }
      }
      def getField(__field: _root_.scalapb.descriptors.FieldDescriptor): _root_.scalapb.descriptors.PValue = {
        _root_.scala.Predef.require(__field.containingMessage eq companion.scalaDescriptor)
        (__field.number: @_root_.scala.unchecked) match {
          case 1 => transactionBind.toPMessage
          case 2 => preimage.toPMessage
        }
      }
      def toProtoString: _root_.scala.Predef.String = _root_.scalapb.TextFormat.printToUnicodeString(this)
      def companion: quivr.models.Proof.Digest.type = quivr.models.Proof.Digest
      // @@protoc_insertion_point(GeneratedMessage[quivr.models.Proof.Digest])
  }
  
  object Digest extends scalapb.GeneratedMessageCompanion[quivr.models.Proof.Digest] {
    implicit def messageCompanion: scalapb.GeneratedMessageCompanion[quivr.models.Proof.Digest] = this
    def parseFrom(`_input__`: _root_.com.google.protobuf.CodedInputStream): quivr.models.Proof.Digest = {
      var __requiredFields0: _root_.scala.Long = 0x3L
      var __transactionBind: _root_.scala.Option[quivr.models.TxBind] = _root_.scala.None
      var __preimage: _root_.scala.Option[quivr.models.Preimage] = _root_.scala.None
      var `_unknownFields__`: _root_.scalapb.UnknownFieldSet.Builder = null
      var _done__ = false
      while (!_done__) {
        val _tag__ = _input__.readTag()
        _tag__ match {
          case 0 => _done__ = true
          case 10 =>
            __transactionBind = _root_.scala.Some(__transactionBind.fold(_root_.scalapb.LiteParser.readMessage[quivr.models.TxBind](_input__))(_root_.scalapb.LiteParser.readMessage(_input__, _)))
            __requiredFields0 &= 0xfffffffffffffffeL
          case 18 =>
            __preimage = _root_.scala.Some(__preimage.fold(_root_.scalapb.LiteParser.readMessage[quivr.models.Preimage](_input__))(_root_.scalapb.LiteParser.readMessage(_input__, _)))
            __requiredFields0 &= 0xfffffffffffffffdL
          case tag =>
            if (_unknownFields__ == null) {
              _unknownFields__ = new _root_.scalapb.UnknownFieldSet.Builder()
            }
            _unknownFields__.parseField(tag, _input__)
        }
      }
      if (__requiredFields0 != 0L) { throw new _root_.com.google.protobuf.InvalidProtocolBufferException("Message missing required fields.") } 
      quivr.models.Proof.Digest(
          transactionBind = __transactionBind.getOrElse(quivr.models.TxBind.defaultInstance),
          preimage = __preimage.getOrElse(quivr.models.Preimage.defaultInstance),
          unknownFields = if (_unknownFields__ == null) _root_.scalapb.UnknownFieldSet.empty else _unknownFields__.result()
      )
    }
    implicit def messageReads: _root_.scalapb.descriptors.Reads[quivr.models.Proof.Digest] = _root_.scalapb.descriptors.Reads{
      case _root_.scalapb.descriptors.PMessage(__fieldsMap) =>
        _root_.scala.Predef.require(__fieldsMap.keys.forall(_.containingMessage eq scalaDescriptor), "FieldDescriptor does not match message type.")
        quivr.models.Proof.Digest(
          transactionBind = __fieldsMap.get(scalaDescriptor.findFieldByNumber(1).get).get.as[quivr.models.TxBind],
          preimage = __fieldsMap.get(scalaDescriptor.findFieldByNumber(2).get).get.as[quivr.models.Preimage]
        )
      case _ => throw new RuntimeException("Expected PMessage")
    }
    def javaDescriptor: _root_.com.google.protobuf.Descriptors.Descriptor = quivr.models.Proof.javaDescriptor.getNestedTypes().get(1)
    def scalaDescriptor: _root_.scalapb.descriptors.Descriptor = quivr.models.Proof.scalaDescriptor.nestedMessages(1)
    def messageCompanionForFieldNumber(__number: _root_.scala.Int): _root_.scalapb.GeneratedMessageCompanion[_] = {
      var __out: _root_.scalapb.GeneratedMessageCompanion[_] = null
      (__number: @_root_.scala.unchecked) match {
        case 1 => __out = quivr.models.TxBind
        case 2 => __out = quivr.models.Preimage
      }
      __out
    }
    lazy val nestedMessagesCompanions: Seq[_root_.scalapb.GeneratedMessageCompanion[_ <: _root_.scalapb.GeneratedMessage]] = Seq.empty
    def enumCompanionForFieldNumber(__fieldNumber: _root_.scala.Int): _root_.scalapb.GeneratedEnumCompanion[_] = throw new MatchError(__fieldNumber)
    lazy val defaultInstance = quivr.models.Proof.Digest(
      transactionBind = quivr.models.TxBind.defaultInstance,
      preimage = quivr.models.Preimage.defaultInstance
    )
    implicit class DigestLens[UpperPB](_l: _root_.scalapb.lenses.Lens[UpperPB, quivr.models.Proof.Digest]) extends _root_.scalapb.lenses.ObjectLens[UpperPB, quivr.models.Proof.Digest](_l) {
      def transactionBind: _root_.scalapb.lenses.Lens[UpperPB, quivr.models.TxBind] = field(_.transactionBind)((c_, f_) => c_.copy(transactionBind = f_))
      def preimage: _root_.scalapb.lenses.Lens[UpperPB, quivr.models.Preimage] = field(_.preimage)((c_, f_) => c_.copy(preimage = f_))
    }
    final val TRANSACTIONBIND_FIELD_NUMBER = 1
    final val PREIMAGE_FIELD_NUMBER = 2
    def of(
      transactionBind: quivr.models.TxBind,
      preimage: quivr.models.Preimage
    ): _root_.quivr.models.Proof.Digest = _root_.quivr.models.Proof.Digest(
      transactionBind,
      preimage
    )
    // @@protoc_insertion_point(GeneratedMessageCompanion[quivr.models.Proof.Digest])
  }
  
  /** token = "digital_signature"
    */
  @SerialVersionUID(0L)
  final case class DigitalSignature(
      transactionBind: quivr.models.TxBind,
      witness: quivr.models.Witness,
      unknownFields: _root_.scalapb.UnknownFieldSet = _root_.scalapb.UnknownFieldSet.empty
      ) extends scalapb.GeneratedMessage with scalapb.lenses.Updatable[DigitalSignature] {
      @transient
      private[this] var __serializedSizeMemoized: _root_.scala.Int = 0
      private[this] def __computeSerializedSize(): _root_.scala.Int = {
        var __size = 0
        
        {
          val __value = transactionBind
          __size += 1 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
        };
        
        {
          val __value = witness
          __size += 1 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
        };
        __size += unknownFields.serializedSize
        __size
      }
      override def serializedSize: _root_.scala.Int = {
        var __size = __serializedSizeMemoized
        if (__size == 0) {
          __size = __computeSerializedSize() + 1
          __serializedSizeMemoized = __size
        }
        __size - 1
        
      }
      def writeTo(`_output__`: _root_.com.google.protobuf.CodedOutputStream): _root_.scala.Unit = {
        
        {
          val __v = transactionBind
          _output__.writeTag(1, 2)
          _output__.writeUInt32NoTag(__v.serializedSize)
          __v.writeTo(_output__)
        };
        
        {
          val __v = witness
          _output__.writeTag(2, 2)
          _output__.writeUInt32NoTag(__v.serializedSize)
          __v.writeTo(_output__)
        };
        unknownFields.writeTo(_output__)
      }
      def withTransactionBind(__v: quivr.models.TxBind): DigitalSignature = copy(transactionBind = __v)
      def withWitness(__v: quivr.models.Witness): DigitalSignature = copy(witness = __v)
      def withUnknownFields(__v: _root_.scalapb.UnknownFieldSet) = copy(unknownFields = __v)
      def discardUnknownFields = copy(unknownFields = _root_.scalapb.UnknownFieldSet.empty)
      def getFieldByNumber(__fieldNumber: _root_.scala.Int): _root_.scala.Any = {
        (__fieldNumber: @_root_.scala.unchecked) match {
          case 1 => transactionBind
          case 2 => witness
        }
      }
      def getField(__field: _root_.scalapb.descriptors.FieldDescriptor): _root_.scalapb.descriptors.PValue = {
        _root_.scala.Predef.require(__field.containingMessage eq companion.scalaDescriptor)
        (__field.number: @_root_.scala.unchecked) match {
          case 1 => transactionBind.toPMessage
          case 2 => witness.toPMessage
        }
      }
      def toProtoString: _root_.scala.Predef.String = _root_.scalapb.TextFormat.printToUnicodeString(this)
      def companion: quivr.models.Proof.DigitalSignature.type = quivr.models.Proof.DigitalSignature
      // @@protoc_insertion_point(GeneratedMessage[quivr.models.Proof.DigitalSignature])
  }
  
  object DigitalSignature extends scalapb.GeneratedMessageCompanion[quivr.models.Proof.DigitalSignature] {
    implicit def messageCompanion: scalapb.GeneratedMessageCompanion[quivr.models.Proof.DigitalSignature] = this
    def parseFrom(`_input__`: _root_.com.google.protobuf.CodedInputStream): quivr.models.Proof.DigitalSignature = {
      var __requiredFields0: _root_.scala.Long = 0x3L
      var __transactionBind: _root_.scala.Option[quivr.models.TxBind] = _root_.scala.None
      var __witness: _root_.scala.Option[quivr.models.Witness] = _root_.scala.None
      var `_unknownFields__`: _root_.scalapb.UnknownFieldSet.Builder = null
      var _done__ = false
      while (!_done__) {
        val _tag__ = _input__.readTag()
        _tag__ match {
          case 0 => _done__ = true
          case 10 =>
            __transactionBind = _root_.scala.Some(__transactionBind.fold(_root_.scalapb.LiteParser.readMessage[quivr.models.TxBind](_input__))(_root_.scalapb.LiteParser.readMessage(_input__, _)))
            __requiredFields0 &= 0xfffffffffffffffeL
          case 18 =>
            __witness = _root_.scala.Some(__witness.fold(_root_.scalapb.LiteParser.readMessage[quivr.models.Witness](_input__))(_root_.scalapb.LiteParser.readMessage(_input__, _)))
            __requiredFields0 &= 0xfffffffffffffffdL
          case tag =>
            if (_unknownFields__ == null) {
              _unknownFields__ = new _root_.scalapb.UnknownFieldSet.Builder()
            }
            _unknownFields__.parseField(tag, _input__)
        }
      }
      if (__requiredFields0 != 0L) { throw new _root_.com.google.protobuf.InvalidProtocolBufferException("Message missing required fields.") } 
      quivr.models.Proof.DigitalSignature(
          transactionBind = __transactionBind.getOrElse(quivr.models.TxBind.defaultInstance),
          witness = __witness.getOrElse(quivr.models.Witness.defaultInstance),
          unknownFields = if (_unknownFields__ == null) _root_.scalapb.UnknownFieldSet.empty else _unknownFields__.result()
      )
    }
    implicit def messageReads: _root_.scalapb.descriptors.Reads[quivr.models.Proof.DigitalSignature] = _root_.scalapb.descriptors.Reads{
      case _root_.scalapb.descriptors.PMessage(__fieldsMap) =>
        _root_.scala.Predef.require(__fieldsMap.keys.forall(_.containingMessage eq scalaDescriptor), "FieldDescriptor does not match message type.")
        quivr.models.Proof.DigitalSignature(
          transactionBind = __fieldsMap.get(scalaDescriptor.findFieldByNumber(1).get).get.as[quivr.models.TxBind],
          witness = __fieldsMap.get(scalaDescriptor.findFieldByNumber(2).get).get.as[quivr.models.Witness]
        )
      case _ => throw new RuntimeException("Expected PMessage")
    }
    def javaDescriptor: _root_.com.google.protobuf.Descriptors.Descriptor = quivr.models.Proof.javaDescriptor.getNestedTypes().get(2)
    def scalaDescriptor: _root_.scalapb.descriptors.Descriptor = quivr.models.Proof.scalaDescriptor.nestedMessages(2)
    def messageCompanionForFieldNumber(__number: _root_.scala.Int): _root_.scalapb.GeneratedMessageCompanion[_] = {
      var __out: _root_.scalapb.GeneratedMessageCompanion[_] = null
      (__number: @_root_.scala.unchecked) match {
        case 1 => __out = quivr.models.TxBind
        case 2 => __out = quivr.models.Witness
      }
      __out
    }
    lazy val nestedMessagesCompanions: Seq[_root_.scalapb.GeneratedMessageCompanion[_ <: _root_.scalapb.GeneratedMessage]] = Seq.empty
    def enumCompanionForFieldNumber(__fieldNumber: _root_.scala.Int): _root_.scalapb.GeneratedEnumCompanion[_] = throw new MatchError(__fieldNumber)
    lazy val defaultInstance = quivr.models.Proof.DigitalSignature(
      transactionBind = quivr.models.TxBind.defaultInstance,
      witness = quivr.models.Witness.defaultInstance
    )
    implicit class DigitalSignatureLens[UpperPB](_l: _root_.scalapb.lenses.Lens[UpperPB, quivr.models.Proof.DigitalSignature]) extends _root_.scalapb.lenses.ObjectLens[UpperPB, quivr.models.Proof.DigitalSignature](_l) {
      def transactionBind: _root_.scalapb.lenses.Lens[UpperPB, quivr.models.TxBind] = field(_.transactionBind)((c_, f_) => c_.copy(transactionBind = f_))
      def witness: _root_.scalapb.lenses.Lens[UpperPB, quivr.models.Witness] = field(_.witness)((c_, f_) => c_.copy(witness = f_))
    }
    final val TRANSACTIONBIND_FIELD_NUMBER = 1
    final val WITNESS_FIELD_NUMBER = 2
    def of(
      transactionBind: quivr.models.TxBind,
      witness: quivr.models.Witness
    ): _root_.quivr.models.Proof.DigitalSignature = _root_.quivr.models.Proof.DigitalSignature(
      transactionBind,
      witness
    )
    // @@protoc_insertion_point(GeneratedMessageCompanion[quivr.models.Proof.DigitalSignature])
  }
  
  /** token = "height_range"
    */
  @SerialVersionUID(0L)
  final case class HeightRange(
      transactionBind: quivr.models.TxBind,
      unknownFields: _root_.scalapb.UnknownFieldSet = _root_.scalapb.UnknownFieldSet.empty
      ) extends scalapb.GeneratedMessage with scalapb.lenses.Updatable[HeightRange] {
      @transient
      private[this] var __serializedSizeMemoized: _root_.scala.Int = 0
      private[this] def __computeSerializedSize(): _root_.scala.Int = {
        var __size = 0
        
        {
          val __value = transactionBind
          __size += 1 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
        };
        __size += unknownFields.serializedSize
        __size
      }
      override def serializedSize: _root_.scala.Int = {
        var __size = __serializedSizeMemoized
        if (__size == 0) {
          __size = __computeSerializedSize() + 1
          __serializedSizeMemoized = __size
        }
        __size - 1
        
      }
      def writeTo(`_output__`: _root_.com.google.protobuf.CodedOutputStream): _root_.scala.Unit = {
        
        {
          val __v = transactionBind
          _output__.writeTag(1, 2)
          _output__.writeUInt32NoTag(__v.serializedSize)
          __v.writeTo(_output__)
        };
        unknownFields.writeTo(_output__)
      }
      def withTransactionBind(__v: quivr.models.TxBind): HeightRange = copy(transactionBind = __v)
      def withUnknownFields(__v: _root_.scalapb.UnknownFieldSet) = copy(unknownFields = __v)
      def discardUnknownFields = copy(unknownFields = _root_.scalapb.UnknownFieldSet.empty)
      def getFieldByNumber(__fieldNumber: _root_.scala.Int): _root_.scala.Any = {
        (__fieldNumber: @_root_.scala.unchecked) match {
          case 1 => transactionBind
        }
      }
      def getField(__field: _root_.scalapb.descriptors.FieldDescriptor): _root_.scalapb.descriptors.PValue = {
        _root_.scala.Predef.require(__field.containingMessage eq companion.scalaDescriptor)
        (__field.number: @_root_.scala.unchecked) match {
          case 1 => transactionBind.toPMessage
        }
      }
      def toProtoString: _root_.scala.Predef.String = _root_.scalapb.TextFormat.printToUnicodeString(this)
      def companion: quivr.models.Proof.HeightRange.type = quivr.models.Proof.HeightRange
      // @@protoc_insertion_point(GeneratedMessage[quivr.models.Proof.HeightRange])
  }
  
  object HeightRange extends scalapb.GeneratedMessageCompanion[quivr.models.Proof.HeightRange] {
    implicit def messageCompanion: scalapb.GeneratedMessageCompanion[quivr.models.Proof.HeightRange] = this
    def parseFrom(`_input__`: _root_.com.google.protobuf.CodedInputStream): quivr.models.Proof.HeightRange = {
      var __requiredFields0: _root_.scala.Long = 0x1L
      var __transactionBind: _root_.scala.Option[quivr.models.TxBind] = _root_.scala.None
      var `_unknownFields__`: _root_.scalapb.UnknownFieldSet.Builder = null
      var _done__ = false
      while (!_done__) {
        val _tag__ = _input__.readTag()
        _tag__ match {
          case 0 => _done__ = true
          case 10 =>
            __transactionBind = _root_.scala.Some(__transactionBind.fold(_root_.scalapb.LiteParser.readMessage[quivr.models.TxBind](_input__))(_root_.scalapb.LiteParser.readMessage(_input__, _)))
            __requiredFields0 &= 0xfffffffffffffffeL
          case tag =>
            if (_unknownFields__ == null) {
              _unknownFields__ = new _root_.scalapb.UnknownFieldSet.Builder()
            }
            _unknownFields__.parseField(tag, _input__)
        }
      }
      if (__requiredFields0 != 0L) { throw new _root_.com.google.protobuf.InvalidProtocolBufferException("Message missing required fields.") } 
      quivr.models.Proof.HeightRange(
          transactionBind = __transactionBind.getOrElse(quivr.models.TxBind.defaultInstance),
          unknownFields = if (_unknownFields__ == null) _root_.scalapb.UnknownFieldSet.empty else _unknownFields__.result()
      )
    }
    implicit def messageReads: _root_.scalapb.descriptors.Reads[quivr.models.Proof.HeightRange] = _root_.scalapb.descriptors.Reads{
      case _root_.scalapb.descriptors.PMessage(__fieldsMap) =>
        _root_.scala.Predef.require(__fieldsMap.keys.forall(_.containingMessage eq scalaDescriptor), "FieldDescriptor does not match message type.")
        quivr.models.Proof.HeightRange(
          transactionBind = __fieldsMap.get(scalaDescriptor.findFieldByNumber(1).get).get.as[quivr.models.TxBind]
        )
      case _ => throw new RuntimeException("Expected PMessage")
    }
    def javaDescriptor: _root_.com.google.protobuf.Descriptors.Descriptor = quivr.models.Proof.javaDescriptor.getNestedTypes().get(3)
    def scalaDescriptor: _root_.scalapb.descriptors.Descriptor = quivr.models.Proof.scalaDescriptor.nestedMessages(3)
    def messageCompanionForFieldNumber(__number: _root_.scala.Int): _root_.scalapb.GeneratedMessageCompanion[_] = {
      var __out: _root_.scalapb.GeneratedMessageCompanion[_] = null
      (__number: @_root_.scala.unchecked) match {
        case 1 => __out = quivr.models.TxBind
      }
      __out
    }
    lazy val nestedMessagesCompanions: Seq[_root_.scalapb.GeneratedMessageCompanion[_ <: _root_.scalapb.GeneratedMessage]] = Seq.empty
    def enumCompanionForFieldNumber(__fieldNumber: _root_.scala.Int): _root_.scalapb.GeneratedEnumCompanion[_] = throw new MatchError(__fieldNumber)
    lazy val defaultInstance = quivr.models.Proof.HeightRange(
      transactionBind = quivr.models.TxBind.defaultInstance
    )
    implicit class HeightRangeLens[UpperPB](_l: _root_.scalapb.lenses.Lens[UpperPB, quivr.models.Proof.HeightRange]) extends _root_.scalapb.lenses.ObjectLens[UpperPB, quivr.models.Proof.HeightRange](_l) {
      def transactionBind: _root_.scalapb.lenses.Lens[UpperPB, quivr.models.TxBind] = field(_.transactionBind)((c_, f_) => c_.copy(transactionBind = f_))
    }
    final val TRANSACTIONBIND_FIELD_NUMBER = 1
    def of(
      transactionBind: quivr.models.TxBind
    ): _root_.quivr.models.Proof.HeightRange = _root_.quivr.models.Proof.HeightRange(
      transactionBind
    )
    // @@protoc_insertion_point(GeneratedMessageCompanion[quivr.models.Proof.HeightRange])
  }
  
  /** token = "tick_range"
    */
  @SerialVersionUID(0L)
  final case class TickRange(
      transactionBind: quivr.models.TxBind,
      unknownFields: _root_.scalapb.UnknownFieldSet = _root_.scalapb.UnknownFieldSet.empty
      ) extends scalapb.GeneratedMessage with scalapb.lenses.Updatable[TickRange] {
      @transient
      private[this] var __serializedSizeMemoized: _root_.scala.Int = 0
      private[this] def __computeSerializedSize(): _root_.scala.Int = {
        var __size = 0
        
        {
          val __value = transactionBind
          __size += 1 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
        };
        __size += unknownFields.serializedSize
        __size
      }
      override def serializedSize: _root_.scala.Int = {
        var __size = __serializedSizeMemoized
        if (__size == 0) {
          __size = __computeSerializedSize() + 1
          __serializedSizeMemoized = __size
        }
        __size - 1
        
      }
      def writeTo(`_output__`: _root_.com.google.protobuf.CodedOutputStream): _root_.scala.Unit = {
        
        {
          val __v = transactionBind
          _output__.writeTag(1, 2)
          _output__.writeUInt32NoTag(__v.serializedSize)
          __v.writeTo(_output__)
        };
        unknownFields.writeTo(_output__)
      }
      def withTransactionBind(__v: quivr.models.TxBind): TickRange = copy(transactionBind = __v)
      def withUnknownFields(__v: _root_.scalapb.UnknownFieldSet) = copy(unknownFields = __v)
      def discardUnknownFields = copy(unknownFields = _root_.scalapb.UnknownFieldSet.empty)
      def getFieldByNumber(__fieldNumber: _root_.scala.Int): _root_.scala.Any = {
        (__fieldNumber: @_root_.scala.unchecked) match {
          case 1 => transactionBind
        }
      }
      def getField(__field: _root_.scalapb.descriptors.FieldDescriptor): _root_.scalapb.descriptors.PValue = {
        _root_.scala.Predef.require(__field.containingMessage eq companion.scalaDescriptor)
        (__field.number: @_root_.scala.unchecked) match {
          case 1 => transactionBind.toPMessage
        }
      }
      def toProtoString: _root_.scala.Predef.String = _root_.scalapb.TextFormat.printToUnicodeString(this)
      def companion: quivr.models.Proof.TickRange.type = quivr.models.Proof.TickRange
      // @@protoc_insertion_point(GeneratedMessage[quivr.models.Proof.TickRange])
  }
  
  object TickRange extends scalapb.GeneratedMessageCompanion[quivr.models.Proof.TickRange] {
    implicit def messageCompanion: scalapb.GeneratedMessageCompanion[quivr.models.Proof.TickRange] = this
    def parseFrom(`_input__`: _root_.com.google.protobuf.CodedInputStream): quivr.models.Proof.TickRange = {
      var __requiredFields0: _root_.scala.Long = 0x1L
      var __transactionBind: _root_.scala.Option[quivr.models.TxBind] = _root_.scala.None
      var `_unknownFields__`: _root_.scalapb.UnknownFieldSet.Builder = null
      var _done__ = false
      while (!_done__) {
        val _tag__ = _input__.readTag()
        _tag__ match {
          case 0 => _done__ = true
          case 10 =>
            __transactionBind = _root_.scala.Some(__transactionBind.fold(_root_.scalapb.LiteParser.readMessage[quivr.models.TxBind](_input__))(_root_.scalapb.LiteParser.readMessage(_input__, _)))
            __requiredFields0 &= 0xfffffffffffffffeL
          case tag =>
            if (_unknownFields__ == null) {
              _unknownFields__ = new _root_.scalapb.UnknownFieldSet.Builder()
            }
            _unknownFields__.parseField(tag, _input__)
        }
      }
      if (__requiredFields0 != 0L) { throw new _root_.com.google.protobuf.InvalidProtocolBufferException("Message missing required fields.") } 
      quivr.models.Proof.TickRange(
          transactionBind = __transactionBind.getOrElse(quivr.models.TxBind.defaultInstance),
          unknownFields = if (_unknownFields__ == null) _root_.scalapb.UnknownFieldSet.empty else _unknownFields__.result()
      )
    }
    implicit def messageReads: _root_.scalapb.descriptors.Reads[quivr.models.Proof.TickRange] = _root_.scalapb.descriptors.Reads{
      case _root_.scalapb.descriptors.PMessage(__fieldsMap) =>
        _root_.scala.Predef.require(__fieldsMap.keys.forall(_.containingMessage eq scalaDescriptor), "FieldDescriptor does not match message type.")
        quivr.models.Proof.TickRange(
          transactionBind = __fieldsMap.get(scalaDescriptor.findFieldByNumber(1).get).get.as[quivr.models.TxBind]
        )
      case _ => throw new RuntimeException("Expected PMessage")
    }
    def javaDescriptor: _root_.com.google.protobuf.Descriptors.Descriptor = quivr.models.Proof.javaDescriptor.getNestedTypes().get(4)
    def scalaDescriptor: _root_.scalapb.descriptors.Descriptor = quivr.models.Proof.scalaDescriptor.nestedMessages(4)
    def messageCompanionForFieldNumber(__number: _root_.scala.Int): _root_.scalapb.GeneratedMessageCompanion[_] = {
      var __out: _root_.scalapb.GeneratedMessageCompanion[_] = null
      (__number: @_root_.scala.unchecked) match {
        case 1 => __out = quivr.models.TxBind
      }
      __out
    }
    lazy val nestedMessagesCompanions: Seq[_root_.scalapb.GeneratedMessageCompanion[_ <: _root_.scalapb.GeneratedMessage]] = Seq.empty
    def enumCompanionForFieldNumber(__fieldNumber: _root_.scala.Int): _root_.scalapb.GeneratedEnumCompanion[_] = throw new MatchError(__fieldNumber)
    lazy val defaultInstance = quivr.models.Proof.TickRange(
      transactionBind = quivr.models.TxBind.defaultInstance
    )
    implicit class TickRangeLens[UpperPB](_l: _root_.scalapb.lenses.Lens[UpperPB, quivr.models.Proof.TickRange]) extends _root_.scalapb.lenses.ObjectLens[UpperPB, quivr.models.Proof.TickRange](_l) {
      def transactionBind: _root_.scalapb.lenses.Lens[UpperPB, quivr.models.TxBind] = field(_.transactionBind)((c_, f_) => c_.copy(transactionBind = f_))
    }
    final val TRANSACTIONBIND_FIELD_NUMBER = 1
    def of(
      transactionBind: quivr.models.TxBind
    ): _root_.quivr.models.Proof.TickRange = _root_.quivr.models.Proof.TickRange(
      transactionBind
    )
    // @@protoc_insertion_point(GeneratedMessageCompanion[quivr.models.Proof.TickRange])
  }
  
  /** token = "exact_match"
    */
  @SerialVersionUID(0L)
  final case class ExactMatch(
      transactionBind: quivr.models.TxBind,
      unknownFields: _root_.scalapb.UnknownFieldSet = _root_.scalapb.UnknownFieldSet.empty
      ) extends scalapb.GeneratedMessage with scalapb.lenses.Updatable[ExactMatch] {
      @transient
      private[this] var __serializedSizeMemoized: _root_.scala.Int = 0
      private[this] def __computeSerializedSize(): _root_.scala.Int = {
        var __size = 0
        
        {
          val __value = transactionBind
          __size += 1 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
        };
        __size += unknownFields.serializedSize
        __size
      }
      override def serializedSize: _root_.scala.Int = {
        var __size = __serializedSizeMemoized
        if (__size == 0) {
          __size = __computeSerializedSize() + 1
          __serializedSizeMemoized = __size
        }
        __size - 1
        
      }
      def writeTo(`_output__`: _root_.com.google.protobuf.CodedOutputStream): _root_.scala.Unit = {
        
        {
          val __v = transactionBind
          _output__.writeTag(1, 2)
          _output__.writeUInt32NoTag(__v.serializedSize)
          __v.writeTo(_output__)
        };
        unknownFields.writeTo(_output__)
      }
      def withTransactionBind(__v: quivr.models.TxBind): ExactMatch = copy(transactionBind = __v)
      def withUnknownFields(__v: _root_.scalapb.UnknownFieldSet) = copy(unknownFields = __v)
      def discardUnknownFields = copy(unknownFields = _root_.scalapb.UnknownFieldSet.empty)
      def getFieldByNumber(__fieldNumber: _root_.scala.Int): _root_.scala.Any = {
        (__fieldNumber: @_root_.scala.unchecked) match {
          case 1 => transactionBind
        }
      }
      def getField(__field: _root_.scalapb.descriptors.FieldDescriptor): _root_.scalapb.descriptors.PValue = {
        _root_.scala.Predef.require(__field.containingMessage eq companion.scalaDescriptor)
        (__field.number: @_root_.scala.unchecked) match {
          case 1 => transactionBind.toPMessage
        }
      }
      def toProtoString: _root_.scala.Predef.String = _root_.scalapb.TextFormat.printToUnicodeString(this)
      def companion: quivr.models.Proof.ExactMatch.type = quivr.models.Proof.ExactMatch
      // @@protoc_insertion_point(GeneratedMessage[quivr.models.Proof.ExactMatch])
  }
  
  object ExactMatch extends scalapb.GeneratedMessageCompanion[quivr.models.Proof.ExactMatch] {
    implicit def messageCompanion: scalapb.GeneratedMessageCompanion[quivr.models.Proof.ExactMatch] = this
    def parseFrom(`_input__`: _root_.com.google.protobuf.CodedInputStream): quivr.models.Proof.ExactMatch = {
      var __requiredFields0: _root_.scala.Long = 0x1L
      var __transactionBind: _root_.scala.Option[quivr.models.TxBind] = _root_.scala.None
      var `_unknownFields__`: _root_.scalapb.UnknownFieldSet.Builder = null
      var _done__ = false
      while (!_done__) {
        val _tag__ = _input__.readTag()
        _tag__ match {
          case 0 => _done__ = true
          case 10 =>
            __transactionBind = _root_.scala.Some(__transactionBind.fold(_root_.scalapb.LiteParser.readMessage[quivr.models.TxBind](_input__))(_root_.scalapb.LiteParser.readMessage(_input__, _)))
            __requiredFields0 &= 0xfffffffffffffffeL
          case tag =>
            if (_unknownFields__ == null) {
              _unknownFields__ = new _root_.scalapb.UnknownFieldSet.Builder()
            }
            _unknownFields__.parseField(tag, _input__)
        }
      }
      if (__requiredFields0 != 0L) { throw new _root_.com.google.protobuf.InvalidProtocolBufferException("Message missing required fields.") } 
      quivr.models.Proof.ExactMatch(
          transactionBind = __transactionBind.getOrElse(quivr.models.TxBind.defaultInstance),
          unknownFields = if (_unknownFields__ == null) _root_.scalapb.UnknownFieldSet.empty else _unknownFields__.result()
      )
    }
    implicit def messageReads: _root_.scalapb.descriptors.Reads[quivr.models.Proof.ExactMatch] = _root_.scalapb.descriptors.Reads{
      case _root_.scalapb.descriptors.PMessage(__fieldsMap) =>
        _root_.scala.Predef.require(__fieldsMap.keys.forall(_.containingMessage eq scalaDescriptor), "FieldDescriptor does not match message type.")
        quivr.models.Proof.ExactMatch(
          transactionBind = __fieldsMap.get(scalaDescriptor.findFieldByNumber(1).get).get.as[quivr.models.TxBind]
        )
      case _ => throw new RuntimeException("Expected PMessage")
    }
    def javaDescriptor: _root_.com.google.protobuf.Descriptors.Descriptor = quivr.models.Proof.javaDescriptor.getNestedTypes().get(5)
    def scalaDescriptor: _root_.scalapb.descriptors.Descriptor = quivr.models.Proof.scalaDescriptor.nestedMessages(5)
    def messageCompanionForFieldNumber(__number: _root_.scala.Int): _root_.scalapb.GeneratedMessageCompanion[_] = {
      var __out: _root_.scalapb.GeneratedMessageCompanion[_] = null
      (__number: @_root_.scala.unchecked) match {
        case 1 => __out = quivr.models.TxBind
      }
      __out
    }
    lazy val nestedMessagesCompanions: Seq[_root_.scalapb.GeneratedMessageCompanion[_ <: _root_.scalapb.GeneratedMessage]] = Seq.empty
    def enumCompanionForFieldNumber(__fieldNumber: _root_.scala.Int): _root_.scalapb.GeneratedEnumCompanion[_] = throw new MatchError(__fieldNumber)
    lazy val defaultInstance = quivr.models.Proof.ExactMatch(
      transactionBind = quivr.models.TxBind.defaultInstance
    )
    implicit class ExactMatchLens[UpperPB](_l: _root_.scalapb.lenses.Lens[UpperPB, quivr.models.Proof.ExactMatch]) extends _root_.scalapb.lenses.ObjectLens[UpperPB, quivr.models.Proof.ExactMatch](_l) {
      def transactionBind: _root_.scalapb.lenses.Lens[UpperPB, quivr.models.TxBind] = field(_.transactionBind)((c_, f_) => c_.copy(transactionBind = f_))
    }
    final val TRANSACTIONBIND_FIELD_NUMBER = 1
    def of(
      transactionBind: quivr.models.TxBind
    ): _root_.quivr.models.Proof.ExactMatch = _root_.quivr.models.Proof.ExactMatch(
      transactionBind
    )
    // @@protoc_insertion_point(GeneratedMessageCompanion[quivr.models.Proof.ExactMatch])
  }
  
  /** token = "less_than"
    */
  @SerialVersionUID(0L)
  final case class LessThan(
      transactionBind: quivr.models.TxBind,
      unknownFields: _root_.scalapb.UnknownFieldSet = _root_.scalapb.UnknownFieldSet.empty
      ) extends scalapb.GeneratedMessage with scalapb.lenses.Updatable[LessThan] {
      @transient
      private[this] var __serializedSizeMemoized: _root_.scala.Int = 0
      private[this] def __computeSerializedSize(): _root_.scala.Int = {
        var __size = 0
        
        {
          val __value = transactionBind
          __size += 1 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
        };
        __size += unknownFields.serializedSize
        __size
      }
      override def serializedSize: _root_.scala.Int = {
        var __size = __serializedSizeMemoized
        if (__size == 0) {
          __size = __computeSerializedSize() + 1
          __serializedSizeMemoized = __size
        }
        __size - 1
        
      }
      def writeTo(`_output__`: _root_.com.google.protobuf.CodedOutputStream): _root_.scala.Unit = {
        
        {
          val __v = transactionBind
          _output__.writeTag(1, 2)
          _output__.writeUInt32NoTag(__v.serializedSize)
          __v.writeTo(_output__)
        };
        unknownFields.writeTo(_output__)
      }
      def withTransactionBind(__v: quivr.models.TxBind): LessThan = copy(transactionBind = __v)
      def withUnknownFields(__v: _root_.scalapb.UnknownFieldSet) = copy(unknownFields = __v)
      def discardUnknownFields = copy(unknownFields = _root_.scalapb.UnknownFieldSet.empty)
      def getFieldByNumber(__fieldNumber: _root_.scala.Int): _root_.scala.Any = {
        (__fieldNumber: @_root_.scala.unchecked) match {
          case 1 => transactionBind
        }
      }
      def getField(__field: _root_.scalapb.descriptors.FieldDescriptor): _root_.scalapb.descriptors.PValue = {
        _root_.scala.Predef.require(__field.containingMessage eq companion.scalaDescriptor)
        (__field.number: @_root_.scala.unchecked) match {
          case 1 => transactionBind.toPMessage
        }
      }
      def toProtoString: _root_.scala.Predef.String = _root_.scalapb.TextFormat.printToUnicodeString(this)
      def companion: quivr.models.Proof.LessThan.type = quivr.models.Proof.LessThan
      // @@protoc_insertion_point(GeneratedMessage[quivr.models.Proof.LessThan])
  }
  
  object LessThan extends scalapb.GeneratedMessageCompanion[quivr.models.Proof.LessThan] {
    implicit def messageCompanion: scalapb.GeneratedMessageCompanion[quivr.models.Proof.LessThan] = this
    def parseFrom(`_input__`: _root_.com.google.protobuf.CodedInputStream): quivr.models.Proof.LessThan = {
      var __requiredFields0: _root_.scala.Long = 0x1L
      var __transactionBind: _root_.scala.Option[quivr.models.TxBind] = _root_.scala.None
      var `_unknownFields__`: _root_.scalapb.UnknownFieldSet.Builder = null
      var _done__ = false
      while (!_done__) {
        val _tag__ = _input__.readTag()
        _tag__ match {
          case 0 => _done__ = true
          case 10 =>
            __transactionBind = _root_.scala.Some(__transactionBind.fold(_root_.scalapb.LiteParser.readMessage[quivr.models.TxBind](_input__))(_root_.scalapb.LiteParser.readMessage(_input__, _)))
            __requiredFields0 &= 0xfffffffffffffffeL
          case tag =>
            if (_unknownFields__ == null) {
              _unknownFields__ = new _root_.scalapb.UnknownFieldSet.Builder()
            }
            _unknownFields__.parseField(tag, _input__)
        }
      }
      if (__requiredFields0 != 0L) { throw new _root_.com.google.protobuf.InvalidProtocolBufferException("Message missing required fields.") } 
      quivr.models.Proof.LessThan(
          transactionBind = __transactionBind.getOrElse(quivr.models.TxBind.defaultInstance),
          unknownFields = if (_unknownFields__ == null) _root_.scalapb.UnknownFieldSet.empty else _unknownFields__.result()
      )
    }
    implicit def messageReads: _root_.scalapb.descriptors.Reads[quivr.models.Proof.LessThan] = _root_.scalapb.descriptors.Reads{
      case _root_.scalapb.descriptors.PMessage(__fieldsMap) =>
        _root_.scala.Predef.require(__fieldsMap.keys.forall(_.containingMessage eq scalaDescriptor), "FieldDescriptor does not match message type.")
        quivr.models.Proof.LessThan(
          transactionBind = __fieldsMap.get(scalaDescriptor.findFieldByNumber(1).get).get.as[quivr.models.TxBind]
        )
      case _ => throw new RuntimeException("Expected PMessage")
    }
    def javaDescriptor: _root_.com.google.protobuf.Descriptors.Descriptor = quivr.models.Proof.javaDescriptor.getNestedTypes().get(6)
    def scalaDescriptor: _root_.scalapb.descriptors.Descriptor = quivr.models.Proof.scalaDescriptor.nestedMessages(6)
    def messageCompanionForFieldNumber(__number: _root_.scala.Int): _root_.scalapb.GeneratedMessageCompanion[_] = {
      var __out: _root_.scalapb.GeneratedMessageCompanion[_] = null
      (__number: @_root_.scala.unchecked) match {
        case 1 => __out = quivr.models.TxBind
      }
      __out
    }
    lazy val nestedMessagesCompanions: Seq[_root_.scalapb.GeneratedMessageCompanion[_ <: _root_.scalapb.GeneratedMessage]] = Seq.empty
    def enumCompanionForFieldNumber(__fieldNumber: _root_.scala.Int): _root_.scalapb.GeneratedEnumCompanion[_] = throw new MatchError(__fieldNumber)
    lazy val defaultInstance = quivr.models.Proof.LessThan(
      transactionBind = quivr.models.TxBind.defaultInstance
    )
    implicit class LessThanLens[UpperPB](_l: _root_.scalapb.lenses.Lens[UpperPB, quivr.models.Proof.LessThan]) extends _root_.scalapb.lenses.ObjectLens[UpperPB, quivr.models.Proof.LessThan](_l) {
      def transactionBind: _root_.scalapb.lenses.Lens[UpperPB, quivr.models.TxBind] = field(_.transactionBind)((c_, f_) => c_.copy(transactionBind = f_))
    }
    final val TRANSACTIONBIND_FIELD_NUMBER = 1
    def of(
      transactionBind: quivr.models.TxBind
    ): _root_.quivr.models.Proof.LessThan = _root_.quivr.models.Proof.LessThan(
      transactionBind
    )
    // @@protoc_insertion_point(GeneratedMessageCompanion[quivr.models.Proof.LessThan])
  }
  
  /** token = "greater_than"
    */
  @SerialVersionUID(0L)
  final case class GreaterThan(
      transactionBind: quivr.models.TxBind,
      unknownFields: _root_.scalapb.UnknownFieldSet = _root_.scalapb.UnknownFieldSet.empty
      ) extends scalapb.GeneratedMessage with scalapb.lenses.Updatable[GreaterThan] {
      @transient
      private[this] var __serializedSizeMemoized: _root_.scala.Int = 0
      private[this] def __computeSerializedSize(): _root_.scala.Int = {
        var __size = 0
        
        {
          val __value = transactionBind
          __size += 1 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
        };
        __size += unknownFields.serializedSize
        __size
      }
      override def serializedSize: _root_.scala.Int = {
        var __size = __serializedSizeMemoized
        if (__size == 0) {
          __size = __computeSerializedSize() + 1
          __serializedSizeMemoized = __size
        }
        __size - 1
        
      }
      def writeTo(`_output__`: _root_.com.google.protobuf.CodedOutputStream): _root_.scala.Unit = {
        
        {
          val __v = transactionBind
          _output__.writeTag(1, 2)
          _output__.writeUInt32NoTag(__v.serializedSize)
          __v.writeTo(_output__)
        };
        unknownFields.writeTo(_output__)
      }
      def withTransactionBind(__v: quivr.models.TxBind): GreaterThan = copy(transactionBind = __v)
      def withUnknownFields(__v: _root_.scalapb.UnknownFieldSet) = copy(unknownFields = __v)
      def discardUnknownFields = copy(unknownFields = _root_.scalapb.UnknownFieldSet.empty)
      def getFieldByNumber(__fieldNumber: _root_.scala.Int): _root_.scala.Any = {
        (__fieldNumber: @_root_.scala.unchecked) match {
          case 1 => transactionBind
        }
      }
      def getField(__field: _root_.scalapb.descriptors.FieldDescriptor): _root_.scalapb.descriptors.PValue = {
        _root_.scala.Predef.require(__field.containingMessage eq companion.scalaDescriptor)
        (__field.number: @_root_.scala.unchecked) match {
          case 1 => transactionBind.toPMessage
        }
      }
      def toProtoString: _root_.scala.Predef.String = _root_.scalapb.TextFormat.printToUnicodeString(this)
      def companion: quivr.models.Proof.GreaterThan.type = quivr.models.Proof.GreaterThan
      // @@protoc_insertion_point(GeneratedMessage[quivr.models.Proof.GreaterThan])
  }
  
  object GreaterThan extends scalapb.GeneratedMessageCompanion[quivr.models.Proof.GreaterThan] {
    implicit def messageCompanion: scalapb.GeneratedMessageCompanion[quivr.models.Proof.GreaterThan] = this
    def parseFrom(`_input__`: _root_.com.google.protobuf.CodedInputStream): quivr.models.Proof.GreaterThan = {
      var __requiredFields0: _root_.scala.Long = 0x1L
      var __transactionBind: _root_.scala.Option[quivr.models.TxBind] = _root_.scala.None
      var `_unknownFields__`: _root_.scalapb.UnknownFieldSet.Builder = null
      var _done__ = false
      while (!_done__) {
        val _tag__ = _input__.readTag()
        _tag__ match {
          case 0 => _done__ = true
          case 10 =>
            __transactionBind = _root_.scala.Some(__transactionBind.fold(_root_.scalapb.LiteParser.readMessage[quivr.models.TxBind](_input__))(_root_.scalapb.LiteParser.readMessage(_input__, _)))
            __requiredFields0 &= 0xfffffffffffffffeL
          case tag =>
            if (_unknownFields__ == null) {
              _unknownFields__ = new _root_.scalapb.UnknownFieldSet.Builder()
            }
            _unknownFields__.parseField(tag, _input__)
        }
      }
      if (__requiredFields0 != 0L) { throw new _root_.com.google.protobuf.InvalidProtocolBufferException("Message missing required fields.") } 
      quivr.models.Proof.GreaterThan(
          transactionBind = __transactionBind.getOrElse(quivr.models.TxBind.defaultInstance),
          unknownFields = if (_unknownFields__ == null) _root_.scalapb.UnknownFieldSet.empty else _unknownFields__.result()
      )
    }
    implicit def messageReads: _root_.scalapb.descriptors.Reads[quivr.models.Proof.GreaterThan] = _root_.scalapb.descriptors.Reads{
      case _root_.scalapb.descriptors.PMessage(__fieldsMap) =>
        _root_.scala.Predef.require(__fieldsMap.keys.forall(_.containingMessage eq scalaDescriptor), "FieldDescriptor does not match message type.")
        quivr.models.Proof.GreaterThan(
          transactionBind = __fieldsMap.get(scalaDescriptor.findFieldByNumber(1).get).get.as[quivr.models.TxBind]
        )
      case _ => throw new RuntimeException("Expected PMessage")
    }
    def javaDescriptor: _root_.com.google.protobuf.Descriptors.Descriptor = quivr.models.Proof.javaDescriptor.getNestedTypes().get(7)
    def scalaDescriptor: _root_.scalapb.descriptors.Descriptor = quivr.models.Proof.scalaDescriptor.nestedMessages(7)
    def messageCompanionForFieldNumber(__number: _root_.scala.Int): _root_.scalapb.GeneratedMessageCompanion[_] = {
      var __out: _root_.scalapb.GeneratedMessageCompanion[_] = null
      (__number: @_root_.scala.unchecked) match {
        case 1 => __out = quivr.models.TxBind
      }
      __out
    }
    lazy val nestedMessagesCompanions: Seq[_root_.scalapb.GeneratedMessageCompanion[_ <: _root_.scalapb.GeneratedMessage]] = Seq.empty
    def enumCompanionForFieldNumber(__fieldNumber: _root_.scala.Int): _root_.scalapb.GeneratedEnumCompanion[_] = throw new MatchError(__fieldNumber)
    lazy val defaultInstance = quivr.models.Proof.GreaterThan(
      transactionBind = quivr.models.TxBind.defaultInstance
    )
    implicit class GreaterThanLens[UpperPB](_l: _root_.scalapb.lenses.Lens[UpperPB, quivr.models.Proof.GreaterThan]) extends _root_.scalapb.lenses.ObjectLens[UpperPB, quivr.models.Proof.GreaterThan](_l) {
      def transactionBind: _root_.scalapb.lenses.Lens[UpperPB, quivr.models.TxBind] = field(_.transactionBind)((c_, f_) => c_.copy(transactionBind = f_))
    }
    final val TRANSACTIONBIND_FIELD_NUMBER = 1
    def of(
      transactionBind: quivr.models.TxBind
    ): _root_.quivr.models.Proof.GreaterThan = _root_.quivr.models.Proof.GreaterThan(
      transactionBind
    )
    // @@protoc_insertion_point(GeneratedMessageCompanion[quivr.models.Proof.GreaterThan])
  }
  
  /** token = "equal_to"
    */
  @SerialVersionUID(0L)
  final case class EqualTo(
      transactionBind: quivr.models.TxBind,
      unknownFields: _root_.scalapb.UnknownFieldSet = _root_.scalapb.UnknownFieldSet.empty
      ) extends scalapb.GeneratedMessage with scalapb.lenses.Updatable[EqualTo] {
      @transient
      private[this] var __serializedSizeMemoized: _root_.scala.Int = 0
      private[this] def __computeSerializedSize(): _root_.scala.Int = {
        var __size = 0
        
        {
          val __value = transactionBind
          __size += 1 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
        };
        __size += unknownFields.serializedSize
        __size
      }
      override def serializedSize: _root_.scala.Int = {
        var __size = __serializedSizeMemoized
        if (__size == 0) {
          __size = __computeSerializedSize() + 1
          __serializedSizeMemoized = __size
        }
        __size - 1
        
      }
      def writeTo(`_output__`: _root_.com.google.protobuf.CodedOutputStream): _root_.scala.Unit = {
        
        {
          val __v = transactionBind
          _output__.writeTag(1, 2)
          _output__.writeUInt32NoTag(__v.serializedSize)
          __v.writeTo(_output__)
        };
        unknownFields.writeTo(_output__)
      }
      def withTransactionBind(__v: quivr.models.TxBind): EqualTo = copy(transactionBind = __v)
      def withUnknownFields(__v: _root_.scalapb.UnknownFieldSet) = copy(unknownFields = __v)
      def discardUnknownFields = copy(unknownFields = _root_.scalapb.UnknownFieldSet.empty)
      def getFieldByNumber(__fieldNumber: _root_.scala.Int): _root_.scala.Any = {
        (__fieldNumber: @_root_.scala.unchecked) match {
          case 1 => transactionBind
        }
      }
      def getField(__field: _root_.scalapb.descriptors.FieldDescriptor): _root_.scalapb.descriptors.PValue = {
        _root_.scala.Predef.require(__field.containingMessage eq companion.scalaDescriptor)
        (__field.number: @_root_.scala.unchecked) match {
          case 1 => transactionBind.toPMessage
        }
      }
      def toProtoString: _root_.scala.Predef.String = _root_.scalapb.TextFormat.printToUnicodeString(this)
      def companion: quivr.models.Proof.EqualTo.type = quivr.models.Proof.EqualTo
      // @@protoc_insertion_point(GeneratedMessage[quivr.models.Proof.EqualTo])
  }
  
  object EqualTo extends scalapb.GeneratedMessageCompanion[quivr.models.Proof.EqualTo] {
    implicit def messageCompanion: scalapb.GeneratedMessageCompanion[quivr.models.Proof.EqualTo] = this
    def parseFrom(`_input__`: _root_.com.google.protobuf.CodedInputStream): quivr.models.Proof.EqualTo = {
      var __requiredFields0: _root_.scala.Long = 0x1L
      var __transactionBind: _root_.scala.Option[quivr.models.TxBind] = _root_.scala.None
      var `_unknownFields__`: _root_.scalapb.UnknownFieldSet.Builder = null
      var _done__ = false
      while (!_done__) {
        val _tag__ = _input__.readTag()
        _tag__ match {
          case 0 => _done__ = true
          case 10 =>
            __transactionBind = _root_.scala.Some(__transactionBind.fold(_root_.scalapb.LiteParser.readMessage[quivr.models.TxBind](_input__))(_root_.scalapb.LiteParser.readMessage(_input__, _)))
            __requiredFields0 &= 0xfffffffffffffffeL
          case tag =>
            if (_unknownFields__ == null) {
              _unknownFields__ = new _root_.scalapb.UnknownFieldSet.Builder()
            }
            _unknownFields__.parseField(tag, _input__)
        }
      }
      if (__requiredFields0 != 0L) { throw new _root_.com.google.protobuf.InvalidProtocolBufferException("Message missing required fields.") } 
      quivr.models.Proof.EqualTo(
          transactionBind = __transactionBind.getOrElse(quivr.models.TxBind.defaultInstance),
          unknownFields = if (_unknownFields__ == null) _root_.scalapb.UnknownFieldSet.empty else _unknownFields__.result()
      )
    }
    implicit def messageReads: _root_.scalapb.descriptors.Reads[quivr.models.Proof.EqualTo] = _root_.scalapb.descriptors.Reads{
      case _root_.scalapb.descriptors.PMessage(__fieldsMap) =>
        _root_.scala.Predef.require(__fieldsMap.keys.forall(_.containingMessage eq scalaDescriptor), "FieldDescriptor does not match message type.")
        quivr.models.Proof.EqualTo(
          transactionBind = __fieldsMap.get(scalaDescriptor.findFieldByNumber(1).get).get.as[quivr.models.TxBind]
        )
      case _ => throw new RuntimeException("Expected PMessage")
    }
    def javaDescriptor: _root_.com.google.protobuf.Descriptors.Descriptor = quivr.models.Proof.javaDescriptor.getNestedTypes().get(8)
    def scalaDescriptor: _root_.scalapb.descriptors.Descriptor = quivr.models.Proof.scalaDescriptor.nestedMessages(8)
    def messageCompanionForFieldNumber(__number: _root_.scala.Int): _root_.scalapb.GeneratedMessageCompanion[_] = {
      var __out: _root_.scalapb.GeneratedMessageCompanion[_] = null
      (__number: @_root_.scala.unchecked) match {
        case 1 => __out = quivr.models.TxBind
      }
      __out
    }
    lazy val nestedMessagesCompanions: Seq[_root_.scalapb.GeneratedMessageCompanion[_ <: _root_.scalapb.GeneratedMessage]] = Seq.empty
    def enumCompanionForFieldNumber(__fieldNumber: _root_.scala.Int): _root_.scalapb.GeneratedEnumCompanion[_] = throw new MatchError(__fieldNumber)
    lazy val defaultInstance = quivr.models.Proof.EqualTo(
      transactionBind = quivr.models.TxBind.defaultInstance
    )
    implicit class EqualToLens[UpperPB](_l: _root_.scalapb.lenses.Lens[UpperPB, quivr.models.Proof.EqualTo]) extends _root_.scalapb.lenses.ObjectLens[UpperPB, quivr.models.Proof.EqualTo](_l) {
      def transactionBind: _root_.scalapb.lenses.Lens[UpperPB, quivr.models.TxBind] = field(_.transactionBind)((c_, f_) => c_.copy(transactionBind = f_))
    }
    final val TRANSACTIONBIND_FIELD_NUMBER = 1
    def of(
      transactionBind: quivr.models.TxBind
    ): _root_.quivr.models.Proof.EqualTo = _root_.quivr.models.Proof.EqualTo(
      transactionBind
    )
    // @@protoc_insertion_point(GeneratedMessageCompanion[quivr.models.Proof.EqualTo])
  }
  
  /** token = "threshold"
    *
    * @param responses
    *   set of optional values
    */
  @SerialVersionUID(0L)
  final case class Threshold(
      transactionBind: quivr.models.TxBind,
      responses: _root_.scala.Seq[quivr.models.Proof] = _root_.scala.Seq.empty,
      unknownFields: _root_.scalapb.UnknownFieldSet = _root_.scalapb.UnknownFieldSet.empty
      ) extends scalapb.GeneratedMessage with scalapb.lenses.Updatable[Threshold] {
      @transient
      private[this] var __serializedSizeMemoized: _root_.scala.Int = 0
      private[this] def __computeSerializedSize(): _root_.scala.Int = {
        var __size = 0
        
        {
          val __value = transactionBind
          __size += 1 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
        };
        responses.foreach { __item =>
          val __value = __item
          __size += 1 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
        }
        __size += unknownFields.serializedSize
        __size
      }
      override def serializedSize: _root_.scala.Int = {
        var __size = __serializedSizeMemoized
        if (__size == 0) {
          __size = __computeSerializedSize() + 1
          __serializedSizeMemoized = __size
        }
        __size - 1
        
      }
      def writeTo(`_output__`: _root_.com.google.protobuf.CodedOutputStream): _root_.scala.Unit = {
        
        {
          val __v = transactionBind
          _output__.writeTag(1, 2)
          _output__.writeUInt32NoTag(__v.serializedSize)
          __v.writeTo(_output__)
        };
        responses.foreach { __v =>
          val __m = __v
          _output__.writeTag(2, 2)
          _output__.writeUInt32NoTag(__m.serializedSize)
          __m.writeTo(_output__)
        };
        unknownFields.writeTo(_output__)
      }
      def withTransactionBind(__v: quivr.models.TxBind): Threshold = copy(transactionBind = __v)
      def clearResponses = copy(responses = _root_.scala.Seq.empty)
      def addResponses(__vs: quivr.models.Proof *): Threshold = addAllResponses(__vs)
      def addAllResponses(__vs: Iterable[quivr.models.Proof]): Threshold = copy(responses = responses ++ __vs)
      def withResponses(__v: _root_.scala.Seq[quivr.models.Proof]): Threshold = copy(responses = __v)
      def withUnknownFields(__v: _root_.scalapb.UnknownFieldSet) = copy(unknownFields = __v)
      def discardUnknownFields = copy(unknownFields = _root_.scalapb.UnknownFieldSet.empty)
      def getFieldByNumber(__fieldNumber: _root_.scala.Int): _root_.scala.Any = {
        (__fieldNumber: @_root_.scala.unchecked) match {
          case 1 => transactionBind
          case 2 => responses
        }
      }
      def getField(__field: _root_.scalapb.descriptors.FieldDescriptor): _root_.scalapb.descriptors.PValue = {
        _root_.scala.Predef.require(__field.containingMessage eq companion.scalaDescriptor)
        (__field.number: @_root_.scala.unchecked) match {
          case 1 => transactionBind.toPMessage
          case 2 => _root_.scalapb.descriptors.PRepeated(responses.iterator.map(_.toPMessage).toVector)
        }
      }
      def toProtoString: _root_.scala.Predef.String = _root_.scalapb.TextFormat.printToUnicodeString(this)
      def companion: quivr.models.Proof.Threshold.type = quivr.models.Proof.Threshold
      // @@protoc_insertion_point(GeneratedMessage[quivr.models.Proof.Threshold])
  }
  
  object Threshold extends scalapb.GeneratedMessageCompanion[quivr.models.Proof.Threshold] {
    implicit def messageCompanion: scalapb.GeneratedMessageCompanion[quivr.models.Proof.Threshold] = this
    def parseFrom(`_input__`: _root_.com.google.protobuf.CodedInputStream): quivr.models.Proof.Threshold = {
      var __requiredFields0: _root_.scala.Long = 0x1L
      var __transactionBind: _root_.scala.Option[quivr.models.TxBind] = _root_.scala.None
      val __responses: _root_.scala.collection.immutable.VectorBuilder[quivr.models.Proof] = new _root_.scala.collection.immutable.VectorBuilder[quivr.models.Proof]
      var `_unknownFields__`: _root_.scalapb.UnknownFieldSet.Builder = null
      var _done__ = false
      while (!_done__) {
        val _tag__ = _input__.readTag()
        _tag__ match {
          case 0 => _done__ = true
          case 10 =>
            __transactionBind = _root_.scala.Some(__transactionBind.fold(_root_.scalapb.LiteParser.readMessage[quivr.models.TxBind](_input__))(_root_.scalapb.LiteParser.readMessage(_input__, _)))
            __requiredFields0 &= 0xfffffffffffffffeL
          case 18 =>
            __responses += _root_.scalapb.LiteParser.readMessage[quivr.models.Proof](_input__)
          case tag =>
            if (_unknownFields__ == null) {
              _unknownFields__ = new _root_.scalapb.UnknownFieldSet.Builder()
            }
            _unknownFields__.parseField(tag, _input__)
        }
      }
      if (__requiredFields0 != 0L) { throw new _root_.com.google.protobuf.InvalidProtocolBufferException("Message missing required fields.") } 
      quivr.models.Proof.Threshold(
          transactionBind = __transactionBind.getOrElse(quivr.models.TxBind.defaultInstance),
          responses = __responses.result(),
          unknownFields = if (_unknownFields__ == null) _root_.scalapb.UnknownFieldSet.empty else _unknownFields__.result()
      )
    }
    implicit def messageReads: _root_.scalapb.descriptors.Reads[quivr.models.Proof.Threshold] = _root_.scalapb.descriptors.Reads{
      case _root_.scalapb.descriptors.PMessage(__fieldsMap) =>
        _root_.scala.Predef.require(__fieldsMap.keys.forall(_.containingMessage eq scalaDescriptor), "FieldDescriptor does not match message type.")
        quivr.models.Proof.Threshold(
          transactionBind = __fieldsMap.get(scalaDescriptor.findFieldByNumber(1).get).get.as[quivr.models.TxBind],
          responses = __fieldsMap.get(scalaDescriptor.findFieldByNumber(2).get).map(_.as[_root_.scala.Seq[quivr.models.Proof]]).getOrElse(_root_.scala.Seq.empty)
        )
      case _ => throw new RuntimeException("Expected PMessage")
    }
    def javaDescriptor: _root_.com.google.protobuf.Descriptors.Descriptor = quivr.models.Proof.javaDescriptor.getNestedTypes().get(9)
    def scalaDescriptor: _root_.scalapb.descriptors.Descriptor = quivr.models.Proof.scalaDescriptor.nestedMessages(9)
    def messageCompanionForFieldNumber(__number: _root_.scala.Int): _root_.scalapb.GeneratedMessageCompanion[_] = {
      var __out: _root_.scalapb.GeneratedMessageCompanion[_] = null
      (__number: @_root_.scala.unchecked) match {
        case 1 => __out = quivr.models.TxBind
        case 2 => __out = quivr.models.Proof
      }
      __out
    }
    lazy val nestedMessagesCompanions: Seq[_root_.scalapb.GeneratedMessageCompanion[_ <: _root_.scalapb.GeneratedMessage]] = Seq.empty
    def enumCompanionForFieldNumber(__fieldNumber: _root_.scala.Int): _root_.scalapb.GeneratedEnumCompanion[_] = throw new MatchError(__fieldNumber)
    lazy val defaultInstance = quivr.models.Proof.Threshold(
      transactionBind = quivr.models.TxBind.defaultInstance,
      responses = _root_.scala.Seq.empty
    )
    implicit class ThresholdLens[UpperPB](_l: _root_.scalapb.lenses.Lens[UpperPB, quivr.models.Proof.Threshold]) extends _root_.scalapb.lenses.ObjectLens[UpperPB, quivr.models.Proof.Threshold](_l) {
      def transactionBind: _root_.scalapb.lenses.Lens[UpperPB, quivr.models.TxBind] = field(_.transactionBind)((c_, f_) => c_.copy(transactionBind = f_))
      def responses: _root_.scalapb.lenses.Lens[UpperPB, _root_.scala.Seq[quivr.models.Proof]] = field(_.responses)((c_, f_) => c_.copy(responses = f_))
    }
    final val TRANSACTIONBIND_FIELD_NUMBER = 1
    final val RESPONSES_FIELD_NUMBER = 2
    def of(
      transactionBind: quivr.models.TxBind,
      responses: _root_.scala.Seq[quivr.models.Proof]
    ): _root_.quivr.models.Proof.Threshold = _root_.quivr.models.Proof.Threshold(
      transactionBind,
      responses
    )
    // @@protoc_insertion_point(GeneratedMessageCompanion[quivr.models.Proof.Threshold])
  }
  
  /** token = "not"
    */
  @SerialVersionUID(0L)
  final case class Not(
      transactionBind: quivr.models.TxBind,
      proof: quivr.models.Proof,
      unknownFields: _root_.scalapb.UnknownFieldSet = _root_.scalapb.UnknownFieldSet.empty
      ) extends scalapb.GeneratedMessage with scalapb.lenses.Updatable[Not] {
      @transient
      private[this] var __serializedSizeMemoized: _root_.scala.Int = 0
      private[this] def __computeSerializedSize(): _root_.scala.Int = {
        var __size = 0
        
        {
          val __value = transactionBind
          __size += 1 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
        };
        
        {
          val __value = proof
          __size += 1 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
        };
        __size += unknownFields.serializedSize
        __size
      }
      override def serializedSize: _root_.scala.Int = {
        var __size = __serializedSizeMemoized
        if (__size == 0) {
          __size = __computeSerializedSize() + 1
          __serializedSizeMemoized = __size
        }
        __size - 1
        
      }
      def writeTo(`_output__`: _root_.com.google.protobuf.CodedOutputStream): _root_.scala.Unit = {
        
        {
          val __v = transactionBind
          _output__.writeTag(1, 2)
          _output__.writeUInt32NoTag(__v.serializedSize)
          __v.writeTo(_output__)
        };
        
        {
          val __v = proof
          _output__.writeTag(2, 2)
          _output__.writeUInt32NoTag(__v.serializedSize)
          __v.writeTo(_output__)
        };
        unknownFields.writeTo(_output__)
      }
      def withTransactionBind(__v: quivr.models.TxBind): Not = copy(transactionBind = __v)
      def withProof(__v: quivr.models.Proof): Not = copy(proof = __v)
      def withUnknownFields(__v: _root_.scalapb.UnknownFieldSet) = copy(unknownFields = __v)
      def discardUnknownFields = copy(unknownFields = _root_.scalapb.UnknownFieldSet.empty)
      def getFieldByNumber(__fieldNumber: _root_.scala.Int): _root_.scala.Any = {
        (__fieldNumber: @_root_.scala.unchecked) match {
          case 1 => transactionBind
          case 2 => proof
        }
      }
      def getField(__field: _root_.scalapb.descriptors.FieldDescriptor): _root_.scalapb.descriptors.PValue = {
        _root_.scala.Predef.require(__field.containingMessage eq companion.scalaDescriptor)
        (__field.number: @_root_.scala.unchecked) match {
          case 1 => transactionBind.toPMessage
          case 2 => proof.toPMessage
        }
      }
      def toProtoString: _root_.scala.Predef.String = _root_.scalapb.TextFormat.printToUnicodeString(this)
      def companion: quivr.models.Proof.Not.type = quivr.models.Proof.Not
      // @@protoc_insertion_point(GeneratedMessage[quivr.models.Proof.Not])
  }
  
  object Not extends scalapb.GeneratedMessageCompanion[quivr.models.Proof.Not] {
    implicit def messageCompanion: scalapb.GeneratedMessageCompanion[quivr.models.Proof.Not] = this
    def parseFrom(`_input__`: _root_.com.google.protobuf.CodedInputStream): quivr.models.Proof.Not = {
      var __requiredFields0: _root_.scala.Long = 0x3L
      var __transactionBind: _root_.scala.Option[quivr.models.TxBind] = _root_.scala.None
      var __proof: _root_.scala.Option[quivr.models.Proof] = _root_.scala.None
      var `_unknownFields__`: _root_.scalapb.UnknownFieldSet.Builder = null
      var _done__ = false
      while (!_done__) {
        val _tag__ = _input__.readTag()
        _tag__ match {
          case 0 => _done__ = true
          case 10 =>
            __transactionBind = _root_.scala.Some(__transactionBind.fold(_root_.scalapb.LiteParser.readMessage[quivr.models.TxBind](_input__))(_root_.scalapb.LiteParser.readMessage(_input__, _)))
            __requiredFields0 &= 0xfffffffffffffffeL
          case 18 =>
            __proof = _root_.scala.Some(__proof.fold(_root_.scalapb.LiteParser.readMessage[quivr.models.Proof](_input__))(_root_.scalapb.LiteParser.readMessage(_input__, _)))
            __requiredFields0 &= 0xfffffffffffffffdL
          case tag =>
            if (_unknownFields__ == null) {
              _unknownFields__ = new _root_.scalapb.UnknownFieldSet.Builder()
            }
            _unknownFields__.parseField(tag, _input__)
        }
      }
      if (__requiredFields0 != 0L) { throw new _root_.com.google.protobuf.InvalidProtocolBufferException("Message missing required fields.") } 
      quivr.models.Proof.Not(
          transactionBind = __transactionBind.getOrElse(quivr.models.TxBind.defaultInstance),
          proof = __proof.getOrElse(quivr.models.Proof.defaultInstance),
          unknownFields = if (_unknownFields__ == null) _root_.scalapb.UnknownFieldSet.empty else _unknownFields__.result()
      )
    }
    implicit def messageReads: _root_.scalapb.descriptors.Reads[quivr.models.Proof.Not] = _root_.scalapb.descriptors.Reads{
      case _root_.scalapb.descriptors.PMessage(__fieldsMap) =>
        _root_.scala.Predef.require(__fieldsMap.keys.forall(_.containingMessage eq scalaDescriptor), "FieldDescriptor does not match message type.")
        quivr.models.Proof.Not(
          transactionBind = __fieldsMap.get(scalaDescriptor.findFieldByNumber(1).get).get.as[quivr.models.TxBind],
          proof = __fieldsMap.get(scalaDescriptor.findFieldByNumber(2).get).get.as[quivr.models.Proof]
        )
      case _ => throw new RuntimeException("Expected PMessage")
    }
    def javaDescriptor: _root_.com.google.protobuf.Descriptors.Descriptor = quivr.models.Proof.javaDescriptor.getNestedTypes().get(10)
    def scalaDescriptor: _root_.scalapb.descriptors.Descriptor = quivr.models.Proof.scalaDescriptor.nestedMessages(10)
    def messageCompanionForFieldNumber(__number: _root_.scala.Int): _root_.scalapb.GeneratedMessageCompanion[_] = {
      var __out: _root_.scalapb.GeneratedMessageCompanion[_] = null
      (__number: @_root_.scala.unchecked) match {
        case 1 => __out = quivr.models.TxBind
        case 2 => __out = quivr.models.Proof
      }
      __out
    }
    lazy val nestedMessagesCompanions: Seq[_root_.scalapb.GeneratedMessageCompanion[_ <: _root_.scalapb.GeneratedMessage]] = Seq.empty
    def enumCompanionForFieldNumber(__fieldNumber: _root_.scala.Int): _root_.scalapb.GeneratedEnumCompanion[_] = throw new MatchError(__fieldNumber)
    lazy val defaultInstance = quivr.models.Proof.Not(
      transactionBind = quivr.models.TxBind.defaultInstance,
      proof = quivr.models.Proof.defaultInstance
    )
    implicit class NotLens[UpperPB](_l: _root_.scalapb.lenses.Lens[UpperPB, quivr.models.Proof.Not]) extends _root_.scalapb.lenses.ObjectLens[UpperPB, quivr.models.Proof.Not](_l) {
      def transactionBind: _root_.scalapb.lenses.Lens[UpperPB, quivr.models.TxBind] = field(_.transactionBind)((c_, f_) => c_.copy(transactionBind = f_))
      def proof: _root_.scalapb.lenses.Lens[UpperPB, quivr.models.Proof] = field(_.proof)((c_, f_) => c_.copy(proof = f_))
    }
    final val TRANSACTIONBIND_FIELD_NUMBER = 1
    final val PROOF_FIELD_NUMBER = 2
    def of(
      transactionBind: quivr.models.TxBind,
      proof: quivr.models.Proof
    ): _root_.quivr.models.Proof.Not = _root_.quivr.models.Proof.Not(
      transactionBind,
      proof
    )
    // @@protoc_insertion_point(GeneratedMessageCompanion[quivr.models.Proof.Not])
  }
  
  /** token = "and"
    */
  @SerialVersionUID(0L)
  final case class And(
      transactionBind: quivr.models.TxBind,
      left: quivr.models.Proof,
      right: quivr.models.Proof,
      unknownFields: _root_.scalapb.UnknownFieldSet = _root_.scalapb.UnknownFieldSet.empty
      ) extends scalapb.GeneratedMessage with scalapb.lenses.Updatable[And] {
      @transient
      private[this] var __serializedSizeMemoized: _root_.scala.Int = 0
      private[this] def __computeSerializedSize(): _root_.scala.Int = {
        var __size = 0
        
        {
          val __value = transactionBind
          __size += 1 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
        };
        
        {
          val __value = left
          __size += 1 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
        };
        
        {
          val __value = right
          __size += 1 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
        };
        __size += unknownFields.serializedSize
        __size
      }
      override def serializedSize: _root_.scala.Int = {
        var __size = __serializedSizeMemoized
        if (__size == 0) {
          __size = __computeSerializedSize() + 1
          __serializedSizeMemoized = __size
        }
        __size - 1
        
      }
      def writeTo(`_output__`: _root_.com.google.protobuf.CodedOutputStream): _root_.scala.Unit = {
        
        {
          val __v = transactionBind
          _output__.writeTag(1, 2)
          _output__.writeUInt32NoTag(__v.serializedSize)
          __v.writeTo(_output__)
        };
        
        {
          val __v = left
          _output__.writeTag(2, 2)
          _output__.writeUInt32NoTag(__v.serializedSize)
          __v.writeTo(_output__)
        };
        
        {
          val __v = right
          _output__.writeTag(3, 2)
          _output__.writeUInt32NoTag(__v.serializedSize)
          __v.writeTo(_output__)
        };
        unknownFields.writeTo(_output__)
      }
      def withTransactionBind(__v: quivr.models.TxBind): And = copy(transactionBind = __v)
      def withLeft(__v: quivr.models.Proof): And = copy(left = __v)
      def withRight(__v: quivr.models.Proof): And = copy(right = __v)
      def withUnknownFields(__v: _root_.scalapb.UnknownFieldSet) = copy(unknownFields = __v)
      def discardUnknownFields = copy(unknownFields = _root_.scalapb.UnknownFieldSet.empty)
      def getFieldByNumber(__fieldNumber: _root_.scala.Int): _root_.scala.Any = {
        (__fieldNumber: @_root_.scala.unchecked) match {
          case 1 => transactionBind
          case 2 => left
          case 3 => right
        }
      }
      def getField(__field: _root_.scalapb.descriptors.FieldDescriptor): _root_.scalapb.descriptors.PValue = {
        _root_.scala.Predef.require(__field.containingMessage eq companion.scalaDescriptor)
        (__field.number: @_root_.scala.unchecked) match {
          case 1 => transactionBind.toPMessage
          case 2 => left.toPMessage
          case 3 => right.toPMessage
        }
      }
      def toProtoString: _root_.scala.Predef.String = _root_.scalapb.TextFormat.printToUnicodeString(this)
      def companion: quivr.models.Proof.And.type = quivr.models.Proof.And
      // @@protoc_insertion_point(GeneratedMessage[quivr.models.Proof.And])
  }
  
  object And extends scalapb.GeneratedMessageCompanion[quivr.models.Proof.And] {
    implicit def messageCompanion: scalapb.GeneratedMessageCompanion[quivr.models.Proof.And] = this
    def parseFrom(`_input__`: _root_.com.google.protobuf.CodedInputStream): quivr.models.Proof.And = {
      var __requiredFields0: _root_.scala.Long = 0x7L
      var __transactionBind: _root_.scala.Option[quivr.models.TxBind] = _root_.scala.None
      var __left: _root_.scala.Option[quivr.models.Proof] = _root_.scala.None
      var __right: _root_.scala.Option[quivr.models.Proof] = _root_.scala.None
      var `_unknownFields__`: _root_.scalapb.UnknownFieldSet.Builder = null
      var _done__ = false
      while (!_done__) {
        val _tag__ = _input__.readTag()
        _tag__ match {
          case 0 => _done__ = true
          case 10 =>
            __transactionBind = _root_.scala.Some(__transactionBind.fold(_root_.scalapb.LiteParser.readMessage[quivr.models.TxBind](_input__))(_root_.scalapb.LiteParser.readMessage(_input__, _)))
            __requiredFields0 &= 0xfffffffffffffffeL
          case 18 =>
            __left = _root_.scala.Some(__left.fold(_root_.scalapb.LiteParser.readMessage[quivr.models.Proof](_input__))(_root_.scalapb.LiteParser.readMessage(_input__, _)))
            __requiredFields0 &= 0xfffffffffffffffdL
          case 26 =>
            __right = _root_.scala.Some(__right.fold(_root_.scalapb.LiteParser.readMessage[quivr.models.Proof](_input__))(_root_.scalapb.LiteParser.readMessage(_input__, _)))
            __requiredFields0 &= 0xfffffffffffffffbL
          case tag =>
            if (_unknownFields__ == null) {
              _unknownFields__ = new _root_.scalapb.UnknownFieldSet.Builder()
            }
            _unknownFields__.parseField(tag, _input__)
        }
      }
      if (__requiredFields0 != 0L) { throw new _root_.com.google.protobuf.InvalidProtocolBufferException("Message missing required fields.") } 
      quivr.models.Proof.And(
          transactionBind = __transactionBind.getOrElse(quivr.models.TxBind.defaultInstance),
          left = __left.getOrElse(quivr.models.Proof.defaultInstance),
          right = __right.getOrElse(quivr.models.Proof.defaultInstance),
          unknownFields = if (_unknownFields__ == null) _root_.scalapb.UnknownFieldSet.empty else _unknownFields__.result()
      )
    }
    implicit def messageReads: _root_.scalapb.descriptors.Reads[quivr.models.Proof.And] = _root_.scalapb.descriptors.Reads{
      case _root_.scalapb.descriptors.PMessage(__fieldsMap) =>
        _root_.scala.Predef.require(__fieldsMap.keys.forall(_.containingMessage eq scalaDescriptor), "FieldDescriptor does not match message type.")
        quivr.models.Proof.And(
          transactionBind = __fieldsMap.get(scalaDescriptor.findFieldByNumber(1).get).get.as[quivr.models.TxBind],
          left = __fieldsMap.get(scalaDescriptor.findFieldByNumber(2).get).get.as[quivr.models.Proof],
          right = __fieldsMap.get(scalaDescriptor.findFieldByNumber(3).get).get.as[quivr.models.Proof]
        )
      case _ => throw new RuntimeException("Expected PMessage")
    }
    def javaDescriptor: _root_.com.google.protobuf.Descriptors.Descriptor = quivr.models.Proof.javaDescriptor.getNestedTypes().get(11)
    def scalaDescriptor: _root_.scalapb.descriptors.Descriptor = quivr.models.Proof.scalaDescriptor.nestedMessages(11)
    def messageCompanionForFieldNumber(__number: _root_.scala.Int): _root_.scalapb.GeneratedMessageCompanion[_] = {
      var __out: _root_.scalapb.GeneratedMessageCompanion[_] = null
      (__number: @_root_.scala.unchecked) match {
        case 1 => __out = quivr.models.TxBind
        case 2 => __out = quivr.models.Proof
        case 3 => __out = quivr.models.Proof
      }
      __out
    }
    lazy val nestedMessagesCompanions: Seq[_root_.scalapb.GeneratedMessageCompanion[_ <: _root_.scalapb.GeneratedMessage]] = Seq.empty
    def enumCompanionForFieldNumber(__fieldNumber: _root_.scala.Int): _root_.scalapb.GeneratedEnumCompanion[_] = throw new MatchError(__fieldNumber)
    lazy val defaultInstance = quivr.models.Proof.And(
      transactionBind = quivr.models.TxBind.defaultInstance,
      left = quivr.models.Proof.defaultInstance,
      right = quivr.models.Proof.defaultInstance
    )
    implicit class AndLens[UpperPB](_l: _root_.scalapb.lenses.Lens[UpperPB, quivr.models.Proof.And]) extends _root_.scalapb.lenses.ObjectLens[UpperPB, quivr.models.Proof.And](_l) {
      def transactionBind: _root_.scalapb.lenses.Lens[UpperPB, quivr.models.TxBind] = field(_.transactionBind)((c_, f_) => c_.copy(transactionBind = f_))
      def left: _root_.scalapb.lenses.Lens[UpperPB, quivr.models.Proof] = field(_.left)((c_, f_) => c_.copy(left = f_))
      def right: _root_.scalapb.lenses.Lens[UpperPB, quivr.models.Proof] = field(_.right)((c_, f_) => c_.copy(right = f_))
    }
    final val TRANSACTIONBIND_FIELD_NUMBER = 1
    final val LEFT_FIELD_NUMBER = 2
    final val RIGHT_FIELD_NUMBER = 3
    def of(
      transactionBind: quivr.models.TxBind,
      left: quivr.models.Proof,
      right: quivr.models.Proof
    ): _root_.quivr.models.Proof.And = _root_.quivr.models.Proof.And(
      transactionBind,
      left,
      right
    )
    // @@protoc_insertion_point(GeneratedMessageCompanion[quivr.models.Proof.And])
  }
  
  /** token = "or"
    */
  @SerialVersionUID(0L)
  final case class Or(
      transactionBind: quivr.models.TxBind,
      left: quivr.models.Proof,
      right: quivr.models.Proof,
      unknownFields: _root_.scalapb.UnknownFieldSet = _root_.scalapb.UnknownFieldSet.empty
      ) extends scalapb.GeneratedMessage with scalapb.lenses.Updatable[Or] {
      @transient
      private[this] var __serializedSizeMemoized: _root_.scala.Int = 0
      private[this] def __computeSerializedSize(): _root_.scala.Int = {
        var __size = 0
        
        {
          val __value = transactionBind
          __size += 1 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
        };
        
        {
          val __value = left
          __size += 1 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
        };
        
        {
          val __value = right
          __size += 1 + _root_.com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(__value.serializedSize) + __value.serializedSize
        };
        __size += unknownFields.serializedSize
        __size
      }
      override def serializedSize: _root_.scala.Int = {
        var __size = __serializedSizeMemoized
        if (__size == 0) {
          __size = __computeSerializedSize() + 1
          __serializedSizeMemoized = __size
        }
        __size - 1
        
      }
      def writeTo(`_output__`: _root_.com.google.protobuf.CodedOutputStream): _root_.scala.Unit = {
        
        {
          val __v = transactionBind
          _output__.writeTag(1, 2)
          _output__.writeUInt32NoTag(__v.serializedSize)
          __v.writeTo(_output__)
        };
        
        {
          val __v = left
          _output__.writeTag(2, 2)
          _output__.writeUInt32NoTag(__v.serializedSize)
          __v.writeTo(_output__)
        };
        
        {
          val __v = right
          _output__.writeTag(3, 2)
          _output__.writeUInt32NoTag(__v.serializedSize)
          __v.writeTo(_output__)
        };
        unknownFields.writeTo(_output__)
      }
      def withTransactionBind(__v: quivr.models.TxBind): Or = copy(transactionBind = __v)
      def withLeft(__v: quivr.models.Proof): Or = copy(left = __v)
      def withRight(__v: quivr.models.Proof): Or = copy(right = __v)
      def withUnknownFields(__v: _root_.scalapb.UnknownFieldSet) = copy(unknownFields = __v)
      def discardUnknownFields = copy(unknownFields = _root_.scalapb.UnknownFieldSet.empty)
      def getFieldByNumber(__fieldNumber: _root_.scala.Int): _root_.scala.Any = {
        (__fieldNumber: @_root_.scala.unchecked) match {
          case 1 => transactionBind
          case 2 => left
          case 3 => right
        }
      }
      def getField(__field: _root_.scalapb.descriptors.FieldDescriptor): _root_.scalapb.descriptors.PValue = {
        _root_.scala.Predef.require(__field.containingMessage eq companion.scalaDescriptor)
        (__field.number: @_root_.scala.unchecked) match {
          case 1 => transactionBind.toPMessage
          case 2 => left.toPMessage
          case 3 => right.toPMessage
        }
      }
      def toProtoString: _root_.scala.Predef.String = _root_.scalapb.TextFormat.printToUnicodeString(this)
      def companion: quivr.models.Proof.Or.type = quivr.models.Proof.Or
      // @@protoc_insertion_point(GeneratedMessage[quivr.models.Proof.Or])
  }
  
  object Or extends scalapb.GeneratedMessageCompanion[quivr.models.Proof.Or] {
    implicit def messageCompanion: scalapb.GeneratedMessageCompanion[quivr.models.Proof.Or] = this
    def parseFrom(`_input__`: _root_.com.google.protobuf.CodedInputStream): quivr.models.Proof.Or = {
      var __requiredFields0: _root_.scala.Long = 0x7L
      var __transactionBind: _root_.scala.Option[quivr.models.TxBind] = _root_.scala.None
      var __left: _root_.scala.Option[quivr.models.Proof] = _root_.scala.None
      var __right: _root_.scala.Option[quivr.models.Proof] = _root_.scala.None
      var `_unknownFields__`: _root_.scalapb.UnknownFieldSet.Builder = null
      var _done__ = false
      while (!_done__) {
        val _tag__ = _input__.readTag()
        _tag__ match {
          case 0 => _done__ = true
          case 10 =>
            __transactionBind = _root_.scala.Some(__transactionBind.fold(_root_.scalapb.LiteParser.readMessage[quivr.models.TxBind](_input__))(_root_.scalapb.LiteParser.readMessage(_input__, _)))
            __requiredFields0 &= 0xfffffffffffffffeL
          case 18 =>
            __left = _root_.scala.Some(__left.fold(_root_.scalapb.LiteParser.readMessage[quivr.models.Proof](_input__))(_root_.scalapb.LiteParser.readMessage(_input__, _)))
            __requiredFields0 &= 0xfffffffffffffffdL
          case 26 =>
            __right = _root_.scala.Some(__right.fold(_root_.scalapb.LiteParser.readMessage[quivr.models.Proof](_input__))(_root_.scalapb.LiteParser.readMessage(_input__, _)))
            __requiredFields0 &= 0xfffffffffffffffbL
          case tag =>
            if (_unknownFields__ == null) {
              _unknownFields__ = new _root_.scalapb.UnknownFieldSet.Builder()
            }
            _unknownFields__.parseField(tag, _input__)
        }
      }
      if (__requiredFields0 != 0L) { throw new _root_.com.google.protobuf.InvalidProtocolBufferException("Message missing required fields.") } 
      quivr.models.Proof.Or(
          transactionBind = __transactionBind.getOrElse(quivr.models.TxBind.defaultInstance),
          left = __left.getOrElse(quivr.models.Proof.defaultInstance),
          right = __right.getOrElse(quivr.models.Proof.defaultInstance),
          unknownFields = if (_unknownFields__ == null) _root_.scalapb.UnknownFieldSet.empty else _unknownFields__.result()
      )
    }
    implicit def messageReads: _root_.scalapb.descriptors.Reads[quivr.models.Proof.Or] = _root_.scalapb.descriptors.Reads{
      case _root_.scalapb.descriptors.PMessage(__fieldsMap) =>
        _root_.scala.Predef.require(__fieldsMap.keys.forall(_.containingMessage eq scalaDescriptor), "FieldDescriptor does not match message type.")
        quivr.models.Proof.Or(
          transactionBind = __fieldsMap.get(scalaDescriptor.findFieldByNumber(1).get).get.as[quivr.models.TxBind],
          left = __fieldsMap.get(scalaDescriptor.findFieldByNumber(2).get).get.as[quivr.models.Proof],
          right = __fieldsMap.get(scalaDescriptor.findFieldByNumber(3).get).get.as[quivr.models.Proof]
        )
      case _ => throw new RuntimeException("Expected PMessage")
    }
    def javaDescriptor: _root_.com.google.protobuf.Descriptors.Descriptor = quivr.models.Proof.javaDescriptor.getNestedTypes().get(12)
    def scalaDescriptor: _root_.scalapb.descriptors.Descriptor = quivr.models.Proof.scalaDescriptor.nestedMessages(12)
    def messageCompanionForFieldNumber(__number: _root_.scala.Int): _root_.scalapb.GeneratedMessageCompanion[_] = {
      var __out: _root_.scalapb.GeneratedMessageCompanion[_] = null
      (__number: @_root_.scala.unchecked) match {
        case 1 => __out = quivr.models.TxBind
        case 2 => __out = quivr.models.Proof
        case 3 => __out = quivr.models.Proof
      }
      __out
    }
    lazy val nestedMessagesCompanions: Seq[_root_.scalapb.GeneratedMessageCompanion[_ <: _root_.scalapb.GeneratedMessage]] = Seq.empty
    def enumCompanionForFieldNumber(__fieldNumber: _root_.scala.Int): _root_.scalapb.GeneratedEnumCompanion[_] = throw new MatchError(__fieldNumber)
    lazy val defaultInstance = quivr.models.Proof.Or(
      transactionBind = quivr.models.TxBind.defaultInstance,
      left = quivr.models.Proof.defaultInstance,
      right = quivr.models.Proof.defaultInstance
    )
    implicit class OrLens[UpperPB](_l: _root_.scalapb.lenses.Lens[UpperPB, quivr.models.Proof.Or]) extends _root_.scalapb.lenses.ObjectLens[UpperPB, quivr.models.Proof.Or](_l) {
      def transactionBind: _root_.scalapb.lenses.Lens[UpperPB, quivr.models.TxBind] = field(_.transactionBind)((c_, f_) => c_.copy(transactionBind = f_))
      def left: _root_.scalapb.lenses.Lens[UpperPB, quivr.models.Proof] = field(_.left)((c_, f_) => c_.copy(left = f_))
      def right: _root_.scalapb.lenses.Lens[UpperPB, quivr.models.Proof] = field(_.right)((c_, f_) => c_.copy(right = f_))
    }
    final val TRANSACTIONBIND_FIELD_NUMBER = 1
    final val LEFT_FIELD_NUMBER = 2
    final val RIGHT_FIELD_NUMBER = 3
    def of(
      transactionBind: quivr.models.TxBind,
      left: quivr.models.Proof,
      right: quivr.models.Proof
    ): _root_.quivr.models.Proof.Or = _root_.quivr.models.Proof.Or(
      transactionBind,
      left,
      right
    )
    // @@protoc_insertion_point(GeneratedMessageCompanion[quivr.models.Proof.Or])
  }
  
  implicit class ProofLens[UpperPB](_l: _root_.scalapb.lenses.Lens[UpperPB, quivr.models.Proof]) extends _root_.scalapb.lenses.ObjectLens[UpperPB, quivr.models.Proof](_l) {
    def locked: _root_.scalapb.lenses.Lens[UpperPB, quivr.models.Proof.Locked] = field(_.getLocked)((c_, f_) => c_.copy(value = quivr.models.Proof.Value.Locked(f_)))
    def digest: _root_.scalapb.lenses.Lens[UpperPB, quivr.models.Proof.Digest] = field(_.getDigest)((c_, f_) => c_.copy(value = quivr.models.Proof.Value.Digest(f_)))
    def digitalSignature: _root_.scalapb.lenses.Lens[UpperPB, quivr.models.Proof.DigitalSignature] = field(_.getDigitalSignature)((c_, f_) => c_.copy(value = quivr.models.Proof.Value.DigitalSignature(f_)))
    def heightRange: _root_.scalapb.lenses.Lens[UpperPB, quivr.models.Proof.HeightRange] = field(_.getHeightRange)((c_, f_) => c_.copy(value = quivr.models.Proof.Value.HeightRange(f_)))
    def tickRange: _root_.scalapb.lenses.Lens[UpperPB, quivr.models.Proof.TickRange] = field(_.getTickRange)((c_, f_) => c_.copy(value = quivr.models.Proof.Value.TickRange(f_)))
    def exactMatch: _root_.scalapb.lenses.Lens[UpperPB, quivr.models.Proof.ExactMatch] = field(_.getExactMatch)((c_, f_) => c_.copy(value = quivr.models.Proof.Value.ExactMatch(f_)))
    def lessThan: _root_.scalapb.lenses.Lens[UpperPB, quivr.models.Proof.LessThan] = field(_.getLessThan)((c_, f_) => c_.copy(value = quivr.models.Proof.Value.LessThan(f_)))
    def greaterThan: _root_.scalapb.lenses.Lens[UpperPB, quivr.models.Proof.GreaterThan] = field(_.getGreaterThan)((c_, f_) => c_.copy(value = quivr.models.Proof.Value.GreaterThan(f_)))
    def equalTo: _root_.scalapb.lenses.Lens[UpperPB, quivr.models.Proof.EqualTo] = field(_.getEqualTo)((c_, f_) => c_.copy(value = quivr.models.Proof.Value.EqualTo(f_)))
    def threshold: _root_.scalapb.lenses.Lens[UpperPB, quivr.models.Proof.Threshold] = field(_.getThreshold)((c_, f_) => c_.copy(value = quivr.models.Proof.Value.Threshold(f_)))
    def not: _root_.scalapb.lenses.Lens[UpperPB, quivr.models.Proof.Not] = field(_.getNot)((c_, f_) => c_.copy(value = quivr.models.Proof.Value.Not(f_)))
    def and: _root_.scalapb.lenses.Lens[UpperPB, quivr.models.Proof.And] = field(_.getAnd)((c_, f_) => c_.copy(value = quivr.models.Proof.Value.And(f_)))
    def or: _root_.scalapb.lenses.Lens[UpperPB, quivr.models.Proof.Or] = field(_.getOr)((c_, f_) => c_.copy(value = quivr.models.Proof.Value.Or(f_)))
    def value: _root_.scalapb.lenses.Lens[UpperPB, quivr.models.Proof.Value] = field(_.value)((c_, f_) => c_.copy(value = f_))
  }
  final val LOCKED_FIELD_NUMBER = 1
  final val DIGEST_FIELD_NUMBER = 2
  final val DIGITALSIGNATURE_FIELD_NUMBER = 3
  final val HEIGHTRANGE_FIELD_NUMBER = 4
  final val TICKRANGE_FIELD_NUMBER = 5
  final val EXACTMATCH_FIELD_NUMBER = 6
  final val LESSTHAN_FIELD_NUMBER = 7
  final val GREATERTHAN_FIELD_NUMBER = 8
  final val EQUALTO_FIELD_NUMBER = 9
  final val THRESHOLD_FIELD_NUMBER = 10
  final val NOT_FIELD_NUMBER = 11
  final val AND_FIELD_NUMBER = 12
  final val OR_FIELD_NUMBER = 13
  def of(
    value: quivr.models.Proof.Value
  ): _root_.quivr.models.Proof = _root_.quivr.models.Proof(
    value
  )
  implicit def validator: scalapb.validate.Validator[quivr.models.Proof] = quivr.models.ProofValidator
  // @@protoc_insertion_point(GeneratedMessageCompanion[quivr.models.Proof])
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy