// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: chronik.proto

package chronik;

public final class Chronik {
  private Chronik() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }
  /**
   * Protobuf enum {@code chronik.SlpTokenType}
   */
  public enum SlpTokenType
      implements com.google.protobuf.Internal.EnumLite {
    /**
     * <code>FUNGIBLE = 0;</code>
     */
    FUNGIBLE(0),
    /**
     * <code>NFT1_GROUP = 1;</code>
     */
    NFT1_GROUP(1),
    /**
     * <code>NFT1_CHILD = 2;</code>
     */
    NFT1_CHILD(2),
    /**
     * <code>UNKNOWN_TOKEN_TYPE = 3;</code>
     */
    UNKNOWN_TOKEN_TYPE(3),
    UNRECOGNIZED(-1),
    ;

    /**
     * <code>FUNGIBLE = 0;</code>
     */
    public static final int FUNGIBLE_VALUE = 0;
    /**
     * <code>NFT1_GROUP = 1;</code>
     */
    public static final int NFT1_GROUP_VALUE = 1;
    /**
     * <code>NFT1_CHILD = 2;</code>
     */
    public static final int NFT1_CHILD_VALUE = 2;
    /**
     * <code>UNKNOWN_TOKEN_TYPE = 3;</code>
     */
    public static final int UNKNOWN_TOKEN_TYPE_VALUE = 3;


    @java.lang.Override
    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The number of the enum to look for.
     * @return The enum associated with the given number.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static SlpTokenType valueOf(int value) {
      return forNumber(value);
    }

    public static SlpTokenType forNumber(int value) {
      switch (value) {
        case 0: return FUNGIBLE;
        case 1: return NFT1_GROUP;
        case 2: return NFT1_CHILD;
        case 3: return UNKNOWN_TOKEN_TYPE;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<SlpTokenType>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        SlpTokenType> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<SlpTokenType>() {
            @java.lang.Override
            public SlpTokenType findValueByNumber(int number) {
              return SlpTokenType.forNumber(number);
            }
          };

    public static com.google.protobuf.Internal.EnumVerifier 
        internalGetVerifier() {
      return SlpTokenTypeVerifier.INSTANCE;
    }

    private static final class SlpTokenTypeVerifier implements 
         com.google.protobuf.Internal.EnumVerifier { 
            static final com.google.protobuf.Internal.EnumVerifier           INSTANCE = new SlpTokenTypeVerifier();
            @java.lang.Override
            public boolean isInRange(int number) {
              return SlpTokenType.forNumber(number) != null;
            }
          };

    private final int value;

    private SlpTokenType(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:chronik.SlpTokenType)
  }

  /**
   * Protobuf enum {@code chronik.SlpTxType}
   */
  public enum SlpTxType
      implements com.google.protobuf.Internal.EnumLite {
    /**
     * <code>GENESIS = 0;</code>
     */
    GENESIS(0),
    /**
     * <code>SEND = 1;</code>
     */
    SEND(1),
    /**
     * <code>MINT = 2;</code>
     */
    MINT(2),
    /**
     * <code>BURN = 4;</code>
     */
    BURN(4),
    /**
     * <code>UNKNOWN_TX_TYPE = 3;</code>
     */
    UNKNOWN_TX_TYPE(3),
    UNRECOGNIZED(-1),
    ;

    /**
     * <code>GENESIS = 0;</code>
     */
    public static final int GENESIS_VALUE = 0;
    /**
     * <code>SEND = 1;</code>
     */
    public static final int SEND_VALUE = 1;
    /**
     * <code>MINT = 2;</code>
     */
    public static final int MINT_VALUE = 2;
    /**
     * <code>BURN = 4;</code>
     */
    public static final int BURN_VALUE = 4;
    /**
     * <code>UNKNOWN_TX_TYPE = 3;</code>
     */
    public static final int UNKNOWN_TX_TYPE_VALUE = 3;


    @java.lang.Override
    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The number of the enum to look for.
     * @return The enum associated with the given number.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static SlpTxType valueOf(int value) {
      return forNumber(value);
    }

    public static SlpTxType forNumber(int value) {
      switch (value) {
        case 0: return GENESIS;
        case 1: return SEND;
        case 2: return MINT;
        case 4: return BURN;
        case 3: return UNKNOWN_TX_TYPE;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<SlpTxType>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        SlpTxType> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<SlpTxType>() {
            @java.lang.Override
            public SlpTxType findValueByNumber(int number) {
              return SlpTxType.forNumber(number);
            }
          };

    public static com.google.protobuf.Internal.EnumVerifier 
        internalGetVerifier() {
      return SlpTxTypeVerifier.INSTANCE;
    }

    private static final class SlpTxTypeVerifier implements 
         com.google.protobuf.Internal.EnumVerifier { 
            static final com.google.protobuf.Internal.EnumVerifier           INSTANCE = new SlpTxTypeVerifier();
            @java.lang.Override
            public boolean isInRange(int number) {
              return SlpTxType.forNumber(number) != null;
            }
          };

    private final int value;

    private SlpTxType(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:chronik.SlpTxType)
  }

  /**
   * Protobuf enum {@code chronik.Network}
   */
  public enum Network
      implements com.google.protobuf.Internal.EnumLite {
    /**
     * <code>BCH = 0;</code>
     */
    BCH(0),
    /**
     * <code>XEC = 1;</code>
     */
    XEC(1),
    /**
     * <code>XPI = 2;</code>
     */
    XPI(2),
    /**
     * <code>XRG = 3;</code>
     */
    XRG(3),
    UNRECOGNIZED(-1),
    ;

    /**
     * <code>BCH = 0;</code>
     */
    public static final int BCH_VALUE = 0;
    /**
     * <code>XEC = 1;</code>
     */
    public static final int XEC_VALUE = 1;
    /**
     * <code>XPI = 2;</code>
     */
    public static final int XPI_VALUE = 2;
    /**
     * <code>XRG = 3;</code>
     */
    public static final int XRG_VALUE = 3;


    @java.lang.Override
    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The number of the enum to look for.
     * @return The enum associated with the given number.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static Network valueOf(int value) {
      return forNumber(value);
    }

    public static Network forNumber(int value) {
      switch (value) {
        case 0: return BCH;
        case 1: return XEC;
        case 2: return XPI;
        case 3: return XRG;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<Network>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        Network> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<Network>() {
            @java.lang.Override
            public Network findValueByNumber(int number) {
              return Network.forNumber(number);
            }
          };

    public static com.google.protobuf.Internal.EnumVerifier 
        internalGetVerifier() {
      return NetworkVerifier.INSTANCE;
    }

    private static final class NetworkVerifier implements 
         com.google.protobuf.Internal.EnumVerifier { 
            static final com.google.protobuf.Internal.EnumVerifier           INSTANCE = new NetworkVerifier();
            @java.lang.Override
            public boolean isInRange(int number) {
              return Network.forNumber(number) != null;
            }
          };

    private final int value;

    private Network(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:chronik.Network)
  }

  /**
   * Protobuf enum {@code chronik.UtxoStateVariant}
   */
  public enum UtxoStateVariant
      implements com.google.protobuf.Internal.EnumLite {
    /**
     * <code>UNSPENT = 0;</code>
     */
    UNSPENT(0),
    /**
     * <code>SPENT = 1;</code>
     */
    SPENT(1),
    /**
     * <code>NO_SUCH_TX = 2;</code>
     */
    NO_SUCH_TX(2),
    /**
     * <code>NO_SUCH_OUTPUT = 3;</code>
     */
    NO_SUCH_OUTPUT(3),
    UNRECOGNIZED(-1),
    ;

    /**
     * <code>UNSPENT = 0;</code>
     */
    public static final int UNSPENT_VALUE = 0;
    /**
     * <code>SPENT = 1;</code>
     */
    public static final int SPENT_VALUE = 1;
    /**
     * <code>NO_SUCH_TX = 2;</code>
     */
    public static final int NO_SUCH_TX_VALUE = 2;
    /**
     * <code>NO_SUCH_OUTPUT = 3;</code>
     */
    public static final int NO_SUCH_OUTPUT_VALUE = 3;


    @java.lang.Override
    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The number of the enum to look for.
     * @return The enum associated with the given number.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static UtxoStateVariant valueOf(int value) {
      return forNumber(value);
    }

    public static UtxoStateVariant forNumber(int value) {
      switch (value) {
        case 0: return UNSPENT;
        case 1: return SPENT;
        case 2: return NO_SUCH_TX;
        case 3: return NO_SUCH_OUTPUT;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<UtxoStateVariant>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        UtxoStateVariant> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<UtxoStateVariant>() {
            @java.lang.Override
            public UtxoStateVariant findValueByNumber(int number) {
              return UtxoStateVariant.forNumber(number);
            }
          };

    public static com.google.protobuf.Internal.EnumVerifier 
        internalGetVerifier() {
      return UtxoStateVariantVerifier.INSTANCE;
    }

    private static final class UtxoStateVariantVerifier implements 
         com.google.protobuf.Internal.EnumVerifier { 
            static final com.google.protobuf.Internal.EnumVerifier           INSTANCE = new UtxoStateVariantVerifier();
            @java.lang.Override
            public boolean isInRange(int number) {
              return UtxoStateVariant.forNumber(number) != null;
            }
          };

    private final int value;

    private UtxoStateVariant(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:chronik.UtxoStateVariant)
  }

  public interface ValidateUtxoRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:chronik.ValidateUtxoRequest)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>repeated .chronik.OutPoint outpoints = 1;</code>
     */
    java.util.List<chronik.Chronik.OutPoint> 
        getOutpointsList();
    /**
     * <code>repeated .chronik.OutPoint outpoints = 1;</code>
     */
    chronik.Chronik.OutPoint getOutpoints(int index);
    /**
     * <code>repeated .chronik.OutPoint outpoints = 1;</code>
     */
    int getOutpointsCount();
  }
  /**
   * Protobuf type {@code chronik.ValidateUtxoRequest}
   */
  public  static final class ValidateUtxoRequest extends
      com.google.protobuf.GeneratedMessageLite<
          ValidateUtxoRequest, ValidateUtxoRequest.Builder> implements
      // @@protoc_insertion_point(message_implements:chronik.ValidateUtxoRequest)
      ValidateUtxoRequestOrBuilder {
    private ValidateUtxoRequest() {
      outpoints_ = emptyProtobufList();
    }
    public static final int OUTPOINTS_FIELD_NUMBER = 1;
    private com.google.protobuf.Internal.ProtobufList<chronik.Chronik.OutPoint> outpoints_;
    /**
     * <code>repeated .chronik.OutPoint outpoints = 1;</code>
     */
    @java.lang.Override
    public java.util.List<chronik.Chronik.OutPoint> getOutpointsList() {
      return outpoints_;
    }
    /**
     * <code>repeated .chronik.OutPoint outpoints = 1;</code>
     */
    public java.util.List<? extends chronik.Chronik.OutPointOrBuilder> 
        getOutpointsOrBuilderList() {
      return outpoints_;
    }
    /**
     * <code>repeated .chronik.OutPoint outpoints = 1;</code>
     */
    @java.lang.Override
    public int getOutpointsCount() {
      return outpoints_.size();
    }
    /**
     * <code>repeated .chronik.OutPoint outpoints = 1;</code>
     */
    @java.lang.Override
    public chronik.Chronik.OutPoint getOutpoints(int index) {
      return outpoints_.get(index);
    }
    /**
     * <code>repeated .chronik.OutPoint outpoints = 1;</code>
     */
    public chronik.Chronik.OutPointOrBuilder getOutpointsOrBuilder(
        int index) {
      return outpoints_.get(index);
    }
    private void ensureOutpointsIsMutable() {
      com.google.protobuf.Internal.ProtobufList<chronik.Chronik.OutPoint> tmp = outpoints_;
      if (!tmp.isModifiable()) {
        outpoints_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }

    /**
     * <code>repeated .chronik.OutPoint outpoints = 1;</code>
     */
    private void setOutpoints(
        int index, chronik.Chronik.OutPoint value) {
      value.getClass();
  ensureOutpointsIsMutable();
      outpoints_.set(index, value);
    }
    /**
     * <code>repeated .chronik.OutPoint outpoints = 1;</code>
     */
    private void addOutpoints(chronik.Chronik.OutPoint value) {
      value.getClass();
  ensureOutpointsIsMutable();
      outpoints_.add(value);
    }
    /**
     * <code>repeated .chronik.OutPoint outpoints = 1;</code>
     */
    private void addOutpoints(
        int index, chronik.Chronik.OutPoint value) {
      value.getClass();
  ensureOutpointsIsMutable();
      outpoints_.add(index, value);
    }
    /**
     * <code>repeated .chronik.OutPoint outpoints = 1;</code>
     */
    private void addAllOutpoints(
        java.lang.Iterable<? extends chronik.Chronik.OutPoint> values) {
      ensureOutpointsIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, outpoints_);
    }
    /**
     * <code>repeated .chronik.OutPoint outpoints = 1;</code>
     */
    private void clearOutpoints() {
      outpoints_ = emptyProtobufList();
    }
    /**
     * <code>repeated .chronik.OutPoint outpoints = 1;</code>
     */
    private void removeOutpoints(int index) {
      ensureOutpointsIsMutable();
      outpoints_.remove(index);
    }

    public static chronik.Chronik.ValidateUtxoRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.ValidateUtxoRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.ValidateUtxoRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.ValidateUtxoRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.ValidateUtxoRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.ValidateUtxoRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.ValidateUtxoRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.ValidateUtxoRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.ValidateUtxoRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.ValidateUtxoRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.ValidateUtxoRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.ValidateUtxoRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(chronik.Chronik.ValidateUtxoRequest prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code chronik.ValidateUtxoRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          chronik.Chronik.ValidateUtxoRequest, Builder> implements
        // @@protoc_insertion_point(builder_implements:chronik.ValidateUtxoRequest)
        chronik.Chronik.ValidateUtxoRequestOrBuilder {
      // Construct using chronik.Chronik.ValidateUtxoRequest.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>repeated .chronik.OutPoint outpoints = 1;</code>
       */
      @java.lang.Override
      public java.util.List<chronik.Chronik.OutPoint> getOutpointsList() {
        return java.util.Collections.unmodifiableList(
            instance.getOutpointsList());
      }
      /**
       * <code>repeated .chronik.OutPoint outpoints = 1;</code>
       */
      @java.lang.Override
      public int getOutpointsCount() {
        return instance.getOutpointsCount();
      }/**
       * <code>repeated .chronik.OutPoint outpoints = 1;</code>
       */
      @java.lang.Override
      public chronik.Chronik.OutPoint getOutpoints(int index) {
        return instance.getOutpoints(index);
      }
      /**
       * <code>repeated .chronik.OutPoint outpoints = 1;</code>
       */
      public Builder setOutpoints(
          int index, chronik.Chronik.OutPoint value) {
        copyOnWrite();
        instance.setOutpoints(index, value);
        return this;
      }
      /**
       * <code>repeated .chronik.OutPoint outpoints = 1;</code>
       */
      public Builder setOutpoints(
          int index, chronik.Chronik.OutPoint.Builder builderForValue) {
        copyOnWrite();
        instance.setOutpoints(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .chronik.OutPoint outpoints = 1;</code>
       */
      public Builder addOutpoints(chronik.Chronik.OutPoint value) {
        copyOnWrite();
        instance.addOutpoints(value);
        return this;
      }
      /**
       * <code>repeated .chronik.OutPoint outpoints = 1;</code>
       */
      public Builder addOutpoints(
          int index, chronik.Chronik.OutPoint value) {
        copyOnWrite();
        instance.addOutpoints(index, value);
        return this;
      }
      /**
       * <code>repeated .chronik.OutPoint outpoints = 1;</code>
       */
      public Builder addOutpoints(
          chronik.Chronik.OutPoint.Builder builderForValue) {
        copyOnWrite();
        instance.addOutpoints(builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .chronik.OutPoint outpoints = 1;</code>
       */
      public Builder addOutpoints(
          int index, chronik.Chronik.OutPoint.Builder builderForValue) {
        copyOnWrite();
        instance.addOutpoints(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .chronik.OutPoint outpoints = 1;</code>
       */
      public Builder addAllOutpoints(
          java.lang.Iterable<? extends chronik.Chronik.OutPoint> values) {
        copyOnWrite();
        instance.addAllOutpoints(values);
        return this;
      }
      /**
       * <code>repeated .chronik.OutPoint outpoints = 1;</code>
       */
      public Builder clearOutpoints() {
        copyOnWrite();
        instance.clearOutpoints();
        return this;
      }
      /**
       * <code>repeated .chronik.OutPoint outpoints = 1;</code>
       */
      public Builder removeOutpoints(int index) {
        copyOnWrite();
        instance.removeOutpoints(index);
        return this;
      }

      // @@protoc_insertion_point(builder_scope:chronik.ValidateUtxoRequest)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new chronik.Chronik.ValidateUtxoRequest();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "outpoints_",
              chronik.Chronik.OutPoint.class,
            };
            java.lang.String info =
                "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0001\u0000\u0001\u001b";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<chronik.Chronik.ValidateUtxoRequest> parser = PARSER;
          if (parser == null) {
            synchronized (chronik.Chronik.ValidateUtxoRequest.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<chronik.Chronik.ValidateUtxoRequest>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:chronik.ValidateUtxoRequest)
    private static final chronik.Chronik.ValidateUtxoRequest DEFAULT_INSTANCE;
    static {
      ValidateUtxoRequest defaultInstance = new ValidateUtxoRequest();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        ValidateUtxoRequest.class, defaultInstance);
    }

    public static chronik.Chronik.ValidateUtxoRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<ValidateUtxoRequest> PARSER;

    public static com.google.protobuf.Parser<ValidateUtxoRequest> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface ValidateUtxoResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:chronik.ValidateUtxoResponse)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>repeated .chronik.UtxoState utxo_states = 1;</code>
     */
    java.util.List<chronik.Chronik.UtxoState> 
        getUtxoStatesList();
    /**
     * <code>repeated .chronik.UtxoState utxo_states = 1;</code>
     */
    chronik.Chronik.UtxoState getUtxoStates(int index);
    /**
     * <code>repeated .chronik.UtxoState utxo_states = 1;</code>
     */
    int getUtxoStatesCount();
  }
  /**
   * Protobuf type {@code chronik.ValidateUtxoResponse}
   */
  public  static final class ValidateUtxoResponse extends
      com.google.protobuf.GeneratedMessageLite<
          ValidateUtxoResponse, ValidateUtxoResponse.Builder> implements
      // @@protoc_insertion_point(message_implements:chronik.ValidateUtxoResponse)
      ValidateUtxoResponseOrBuilder {
    private ValidateUtxoResponse() {
      utxoStates_ = emptyProtobufList();
    }
    public static final int UTXO_STATES_FIELD_NUMBER = 1;
    private com.google.protobuf.Internal.ProtobufList<chronik.Chronik.UtxoState> utxoStates_;
    /**
     * <code>repeated .chronik.UtxoState utxo_states = 1;</code>
     */
    @java.lang.Override
    public java.util.List<chronik.Chronik.UtxoState> getUtxoStatesList() {
      return utxoStates_;
    }
    /**
     * <code>repeated .chronik.UtxoState utxo_states = 1;</code>
     */
    public java.util.List<? extends chronik.Chronik.UtxoStateOrBuilder> 
        getUtxoStatesOrBuilderList() {
      return utxoStates_;
    }
    /**
     * <code>repeated .chronik.UtxoState utxo_states = 1;</code>
     */
    @java.lang.Override
    public int getUtxoStatesCount() {
      return utxoStates_.size();
    }
    /**
     * <code>repeated .chronik.UtxoState utxo_states = 1;</code>
     */
    @java.lang.Override
    public chronik.Chronik.UtxoState getUtxoStates(int index) {
      return utxoStates_.get(index);
    }
    /**
     * <code>repeated .chronik.UtxoState utxo_states = 1;</code>
     */
    public chronik.Chronik.UtxoStateOrBuilder getUtxoStatesOrBuilder(
        int index) {
      return utxoStates_.get(index);
    }
    private void ensureUtxoStatesIsMutable() {
      com.google.protobuf.Internal.ProtobufList<chronik.Chronik.UtxoState> tmp = utxoStates_;
      if (!tmp.isModifiable()) {
        utxoStates_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }

    /**
     * <code>repeated .chronik.UtxoState utxo_states = 1;</code>
     */
    private void setUtxoStates(
        int index, chronik.Chronik.UtxoState value) {
      value.getClass();
  ensureUtxoStatesIsMutable();
      utxoStates_.set(index, value);
    }
    /**
     * <code>repeated .chronik.UtxoState utxo_states = 1;</code>
     */
    private void addUtxoStates(chronik.Chronik.UtxoState value) {
      value.getClass();
  ensureUtxoStatesIsMutable();
      utxoStates_.add(value);
    }
    /**
     * <code>repeated .chronik.UtxoState utxo_states = 1;</code>
     */
    private void addUtxoStates(
        int index, chronik.Chronik.UtxoState value) {
      value.getClass();
  ensureUtxoStatesIsMutable();
      utxoStates_.add(index, value);
    }
    /**
     * <code>repeated .chronik.UtxoState utxo_states = 1;</code>
     */
    private void addAllUtxoStates(
        java.lang.Iterable<? extends chronik.Chronik.UtxoState> values) {
      ensureUtxoStatesIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, utxoStates_);
    }
    /**
     * <code>repeated .chronik.UtxoState utxo_states = 1;</code>
     */
    private void clearUtxoStates() {
      utxoStates_ = emptyProtobufList();
    }
    /**
     * <code>repeated .chronik.UtxoState utxo_states = 1;</code>
     */
    private void removeUtxoStates(int index) {
      ensureUtxoStatesIsMutable();
      utxoStates_.remove(index);
    }

    public static chronik.Chronik.ValidateUtxoResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.ValidateUtxoResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.ValidateUtxoResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.ValidateUtxoResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.ValidateUtxoResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.ValidateUtxoResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.ValidateUtxoResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.ValidateUtxoResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.ValidateUtxoResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.ValidateUtxoResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.ValidateUtxoResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.ValidateUtxoResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(chronik.Chronik.ValidateUtxoResponse prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code chronik.ValidateUtxoResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          chronik.Chronik.ValidateUtxoResponse, Builder> implements
        // @@protoc_insertion_point(builder_implements:chronik.ValidateUtxoResponse)
        chronik.Chronik.ValidateUtxoResponseOrBuilder {
      // Construct using chronik.Chronik.ValidateUtxoResponse.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>repeated .chronik.UtxoState utxo_states = 1;</code>
       */
      @java.lang.Override
      public java.util.List<chronik.Chronik.UtxoState> getUtxoStatesList() {
        return java.util.Collections.unmodifiableList(
            instance.getUtxoStatesList());
      }
      /**
       * <code>repeated .chronik.UtxoState utxo_states = 1;</code>
       */
      @java.lang.Override
      public int getUtxoStatesCount() {
        return instance.getUtxoStatesCount();
      }/**
       * <code>repeated .chronik.UtxoState utxo_states = 1;</code>
       */
      @java.lang.Override
      public chronik.Chronik.UtxoState getUtxoStates(int index) {
        return instance.getUtxoStates(index);
      }
      /**
       * <code>repeated .chronik.UtxoState utxo_states = 1;</code>
       */
      public Builder setUtxoStates(
          int index, chronik.Chronik.UtxoState value) {
        copyOnWrite();
        instance.setUtxoStates(index, value);
        return this;
      }
      /**
       * <code>repeated .chronik.UtxoState utxo_states = 1;</code>
       */
      public Builder setUtxoStates(
          int index, chronik.Chronik.UtxoState.Builder builderForValue) {
        copyOnWrite();
        instance.setUtxoStates(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .chronik.UtxoState utxo_states = 1;</code>
       */
      public Builder addUtxoStates(chronik.Chronik.UtxoState value) {
        copyOnWrite();
        instance.addUtxoStates(value);
        return this;
      }
      /**
       * <code>repeated .chronik.UtxoState utxo_states = 1;</code>
       */
      public Builder addUtxoStates(
          int index, chronik.Chronik.UtxoState value) {
        copyOnWrite();
        instance.addUtxoStates(index, value);
        return this;
      }
      /**
       * <code>repeated .chronik.UtxoState utxo_states = 1;</code>
       */
      public Builder addUtxoStates(
          chronik.Chronik.UtxoState.Builder builderForValue) {
        copyOnWrite();
        instance.addUtxoStates(builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .chronik.UtxoState utxo_states = 1;</code>
       */
      public Builder addUtxoStates(
          int index, chronik.Chronik.UtxoState.Builder builderForValue) {
        copyOnWrite();
        instance.addUtxoStates(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .chronik.UtxoState utxo_states = 1;</code>
       */
      public Builder addAllUtxoStates(
          java.lang.Iterable<? extends chronik.Chronik.UtxoState> values) {
        copyOnWrite();
        instance.addAllUtxoStates(values);
        return this;
      }
      /**
       * <code>repeated .chronik.UtxoState utxo_states = 1;</code>
       */
      public Builder clearUtxoStates() {
        copyOnWrite();
        instance.clearUtxoStates();
        return this;
      }
      /**
       * <code>repeated .chronik.UtxoState utxo_states = 1;</code>
       */
      public Builder removeUtxoStates(int index) {
        copyOnWrite();
        instance.removeUtxoStates(index);
        return this;
      }

      // @@protoc_insertion_point(builder_scope:chronik.ValidateUtxoResponse)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new chronik.Chronik.ValidateUtxoResponse();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "utxoStates_",
              chronik.Chronik.UtxoState.class,
            };
            java.lang.String info =
                "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0001\u0000\u0001\u001b";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<chronik.Chronik.ValidateUtxoResponse> parser = PARSER;
          if (parser == null) {
            synchronized (chronik.Chronik.ValidateUtxoResponse.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<chronik.Chronik.ValidateUtxoResponse>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:chronik.ValidateUtxoResponse)
    private static final chronik.Chronik.ValidateUtxoResponse DEFAULT_INSTANCE;
    static {
      ValidateUtxoResponse defaultInstance = new ValidateUtxoResponse();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        ValidateUtxoResponse.class, defaultInstance);
    }

    public static chronik.Chronik.ValidateUtxoResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<ValidateUtxoResponse> PARSER;

    public static com.google.protobuf.Parser<ValidateUtxoResponse> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface BroadcastTxRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:chronik.BroadcastTxRequest)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>bytes raw_tx = 1;</code>
     * @return The rawTx.
     */
    com.google.protobuf.ByteString getRawTx();

    /**
     * <code>bool skip_slp_check = 2;</code>
     * @return The skipSlpCheck.
     */
    boolean getSkipSlpCheck();
  }
  /**
   * Protobuf type {@code chronik.BroadcastTxRequest}
   */
  public  static final class BroadcastTxRequest extends
      com.google.protobuf.GeneratedMessageLite<
          BroadcastTxRequest, BroadcastTxRequest.Builder> implements
      // @@protoc_insertion_point(message_implements:chronik.BroadcastTxRequest)
      BroadcastTxRequestOrBuilder {
    private BroadcastTxRequest() {
      rawTx_ = com.google.protobuf.ByteString.EMPTY;
    }
    public static final int RAW_TX_FIELD_NUMBER = 1;
    private com.google.protobuf.ByteString rawTx_;
    /**
     * <code>bytes raw_tx = 1;</code>
     * @return The rawTx.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getRawTx() {
      return rawTx_;
    }
    /**
     * <code>bytes raw_tx = 1;</code>
     * @param value The rawTx to set.
     */
    private void setRawTx(com.google.protobuf.ByteString value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      rawTx_ = value;
    }
    /**
     * <code>bytes raw_tx = 1;</code>
     */
    private void clearRawTx() {

      rawTx_ = getDefaultInstance().getRawTx();
    }

    public static final int SKIP_SLP_CHECK_FIELD_NUMBER = 2;
    private boolean skipSlpCheck_;
    /**
     * <code>bool skip_slp_check = 2;</code>
     * @return The skipSlpCheck.
     */
    @java.lang.Override
    public boolean getSkipSlpCheck() {
      return skipSlpCheck_;
    }
    /**
     * <code>bool skip_slp_check = 2;</code>
     * @param value The skipSlpCheck to set.
     */
    private void setSkipSlpCheck(boolean value) {
      
      skipSlpCheck_ = value;
    }
    /**
     * <code>bool skip_slp_check = 2;</code>
     */
    private void clearSkipSlpCheck() {

      skipSlpCheck_ = false;
    }

    public static chronik.Chronik.BroadcastTxRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.BroadcastTxRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.BroadcastTxRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.BroadcastTxRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.BroadcastTxRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.BroadcastTxRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.BroadcastTxRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.BroadcastTxRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.BroadcastTxRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.BroadcastTxRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.BroadcastTxRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.BroadcastTxRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(chronik.Chronik.BroadcastTxRequest prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code chronik.BroadcastTxRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          chronik.Chronik.BroadcastTxRequest, Builder> implements
        // @@protoc_insertion_point(builder_implements:chronik.BroadcastTxRequest)
        chronik.Chronik.BroadcastTxRequestOrBuilder {
      // Construct using chronik.Chronik.BroadcastTxRequest.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>bytes raw_tx = 1;</code>
       * @return The rawTx.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getRawTx() {
        return instance.getRawTx();
      }
      /**
       * <code>bytes raw_tx = 1;</code>
       * @param value The rawTx to set.
       * @return This builder for chaining.
       */
      public Builder setRawTx(com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setRawTx(value);
        return this;
      }
      /**
       * <code>bytes raw_tx = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearRawTx() {
        copyOnWrite();
        instance.clearRawTx();
        return this;
      }

      /**
       * <code>bool skip_slp_check = 2;</code>
       * @return The skipSlpCheck.
       */
      @java.lang.Override
      public boolean getSkipSlpCheck() {
        return instance.getSkipSlpCheck();
      }
      /**
       * <code>bool skip_slp_check = 2;</code>
       * @param value The skipSlpCheck to set.
       * @return This builder for chaining.
       */
      public Builder setSkipSlpCheck(boolean value) {
        copyOnWrite();
        instance.setSkipSlpCheck(value);
        return this;
      }
      /**
       * <code>bool skip_slp_check = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearSkipSlpCheck() {
        copyOnWrite();
        instance.clearSkipSlpCheck();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:chronik.BroadcastTxRequest)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new chronik.Chronik.BroadcastTxRequest();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "rawTx_",
              "skipSlpCheck_",
            };
            java.lang.String info =
                "\u0000\u0002\u0000\u0000\u0001\u0002\u0002\u0000\u0000\u0000\u0001\n\u0002\u0007" +
                "";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<chronik.Chronik.BroadcastTxRequest> parser = PARSER;
          if (parser == null) {
            synchronized (chronik.Chronik.BroadcastTxRequest.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<chronik.Chronik.BroadcastTxRequest>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:chronik.BroadcastTxRequest)
    private static final chronik.Chronik.BroadcastTxRequest DEFAULT_INSTANCE;
    static {
      BroadcastTxRequest defaultInstance = new BroadcastTxRequest();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        BroadcastTxRequest.class, defaultInstance);
    }

    public static chronik.Chronik.BroadcastTxRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<BroadcastTxRequest> PARSER;

    public static com.google.protobuf.Parser<BroadcastTxRequest> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface BroadcastTxResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:chronik.BroadcastTxResponse)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>bytes txid = 1;</code>
     * @return The txid.
     */
    com.google.protobuf.ByteString getTxid();
  }
  /**
   * Protobuf type {@code chronik.BroadcastTxResponse}
   */
  public  static final class BroadcastTxResponse extends
      com.google.protobuf.GeneratedMessageLite<
          BroadcastTxResponse, BroadcastTxResponse.Builder> implements
      // @@protoc_insertion_point(message_implements:chronik.BroadcastTxResponse)
      BroadcastTxResponseOrBuilder {
    private BroadcastTxResponse() {
      txid_ = com.google.protobuf.ByteString.EMPTY;
    }
    public static final int TXID_FIELD_NUMBER = 1;
    private com.google.protobuf.ByteString txid_;
    /**
     * <code>bytes txid = 1;</code>
     * @return The txid.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getTxid() {
      return txid_;
    }
    /**
     * <code>bytes txid = 1;</code>
     * @param value The txid to set.
     */
    private void setTxid(com.google.protobuf.ByteString value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      txid_ = value;
    }
    /**
     * <code>bytes txid = 1;</code>
     */
    private void clearTxid() {

      txid_ = getDefaultInstance().getTxid();
    }

    public static chronik.Chronik.BroadcastTxResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.BroadcastTxResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.BroadcastTxResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.BroadcastTxResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.BroadcastTxResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.BroadcastTxResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.BroadcastTxResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.BroadcastTxResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.BroadcastTxResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.BroadcastTxResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.BroadcastTxResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.BroadcastTxResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(chronik.Chronik.BroadcastTxResponse prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code chronik.BroadcastTxResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          chronik.Chronik.BroadcastTxResponse, Builder> implements
        // @@protoc_insertion_point(builder_implements:chronik.BroadcastTxResponse)
        chronik.Chronik.BroadcastTxResponseOrBuilder {
      // Construct using chronik.Chronik.BroadcastTxResponse.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>bytes txid = 1;</code>
       * @return The txid.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getTxid() {
        return instance.getTxid();
      }
      /**
       * <code>bytes txid = 1;</code>
       * @param value The txid to set.
       * @return This builder for chaining.
       */
      public Builder setTxid(com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setTxid(value);
        return this;
      }
      /**
       * <code>bytes txid = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearTxid() {
        copyOnWrite();
        instance.clearTxid();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:chronik.BroadcastTxResponse)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new chronik.Chronik.BroadcastTxResponse();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "txid_",
            };
            java.lang.String info =
                "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0001\n";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<chronik.Chronik.BroadcastTxResponse> parser = PARSER;
          if (parser == null) {
            synchronized (chronik.Chronik.BroadcastTxResponse.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<chronik.Chronik.BroadcastTxResponse>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:chronik.BroadcastTxResponse)
    private static final chronik.Chronik.BroadcastTxResponse DEFAULT_INSTANCE;
    static {
      BroadcastTxResponse defaultInstance = new BroadcastTxResponse();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        BroadcastTxResponse.class, defaultInstance);
    }

    public static chronik.Chronik.BroadcastTxResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<BroadcastTxResponse> PARSER;

    public static com.google.protobuf.Parser<BroadcastTxResponse> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface BroadcastTxsRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:chronik.BroadcastTxsRequest)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>repeated bytes raw_txs = 1;</code>
     * @return A list containing the rawTxs.
     */
    java.util.List<com.google.protobuf.ByteString> getRawTxsList();
    /**
     * <code>repeated bytes raw_txs = 1;</code>
     * @return The count of rawTxs.
     */
    int getRawTxsCount();
    /**
     * <code>repeated bytes raw_txs = 1;</code>
     * @param index The index of the element to return.
     * @return The rawTxs at the given index.
     */
    com.google.protobuf.ByteString getRawTxs(int index);

    /**
     * <code>bool skip_slp_check = 2;</code>
     * @return The skipSlpCheck.
     */
    boolean getSkipSlpCheck();
  }
  /**
   * Protobuf type {@code chronik.BroadcastTxsRequest}
   */
  public  static final class BroadcastTxsRequest extends
      com.google.protobuf.GeneratedMessageLite<
          BroadcastTxsRequest, BroadcastTxsRequest.Builder> implements
      // @@protoc_insertion_point(message_implements:chronik.BroadcastTxsRequest)
      BroadcastTxsRequestOrBuilder {
    private BroadcastTxsRequest() {
      rawTxs_ = emptyProtobufList();
    }
    public static final int RAW_TXS_FIELD_NUMBER = 1;
    private com.google.protobuf.Internal.ProtobufList<com.google.protobuf.ByteString> rawTxs_;
    /**
     * <code>repeated bytes raw_txs = 1;</code>
     * @return A list containing the rawTxs.
     */
    @java.lang.Override
    public java.util.List<com.google.protobuf.ByteString>
        getRawTxsList() {
      return rawTxs_;
    }
    /**
     * <code>repeated bytes raw_txs = 1;</code>
     * @return The count of rawTxs.
     */
    @java.lang.Override
    public int getRawTxsCount() {
      return rawTxs_.size();
    }
    /**
     * <code>repeated bytes raw_txs = 1;</code>
     * @param index The index of the element to return.
     * @return The rawTxs at the given index.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getRawTxs(int index) {
      return rawTxs_.get(index);
    }
    private void ensureRawTxsIsMutable() {
      com.google.protobuf.Internal.ProtobufList<com.google.protobuf.ByteString> tmp = rawTxs_;
      if (!tmp.isModifiable()) {
        rawTxs_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }
    /**
     * <code>repeated bytes raw_txs = 1;</code>
     * @param index The index to set the value at.
     * @param value The rawTxs to set.
     */
    private void setRawTxs(
        int index, com.google.protobuf.ByteString value) {
      java.lang.Class<?> valueClass = value.getClass();
  ensureRawTxsIsMutable();
      rawTxs_.set(index, value);
    }
    /**
     * <code>repeated bytes raw_txs = 1;</code>
     * @param value The rawTxs to add.
     */
    private void addRawTxs(com.google.protobuf.ByteString value) {
      java.lang.Class<?> valueClass = value.getClass();
  ensureRawTxsIsMutable();
      rawTxs_.add(value);
    }
    /**
     * <code>repeated bytes raw_txs = 1;</code>
     * @param values The rawTxs to add.
     */
    private void addAllRawTxs(
        java.lang.Iterable<? extends com.google.protobuf.ByteString> values) {
      ensureRawTxsIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, rawTxs_);
    }
    /**
     * <code>repeated bytes raw_txs = 1;</code>
     */
    private void clearRawTxs() {
      rawTxs_ = emptyProtobufList();
    }

    public static final int SKIP_SLP_CHECK_FIELD_NUMBER = 2;
    private boolean skipSlpCheck_;
    /**
     * <code>bool skip_slp_check = 2;</code>
     * @return The skipSlpCheck.
     */
    @java.lang.Override
    public boolean getSkipSlpCheck() {
      return skipSlpCheck_;
    }
    /**
     * <code>bool skip_slp_check = 2;</code>
     * @param value The skipSlpCheck to set.
     */
    private void setSkipSlpCheck(boolean value) {
      
      skipSlpCheck_ = value;
    }
    /**
     * <code>bool skip_slp_check = 2;</code>
     */
    private void clearSkipSlpCheck() {

      skipSlpCheck_ = false;
    }

    public static chronik.Chronik.BroadcastTxsRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.BroadcastTxsRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.BroadcastTxsRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.BroadcastTxsRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.BroadcastTxsRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.BroadcastTxsRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.BroadcastTxsRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.BroadcastTxsRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.BroadcastTxsRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.BroadcastTxsRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.BroadcastTxsRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.BroadcastTxsRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(chronik.Chronik.BroadcastTxsRequest prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code chronik.BroadcastTxsRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          chronik.Chronik.BroadcastTxsRequest, Builder> implements
        // @@protoc_insertion_point(builder_implements:chronik.BroadcastTxsRequest)
        chronik.Chronik.BroadcastTxsRequestOrBuilder {
      // Construct using chronik.Chronik.BroadcastTxsRequest.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>repeated bytes raw_txs = 1;</code>
       * @return A list containing the rawTxs.
       */
      @java.lang.Override
      public java.util.List<com.google.protobuf.ByteString>
          getRawTxsList() {
        return java.util.Collections.unmodifiableList(
            instance.getRawTxsList());
      }
      /**
       * <code>repeated bytes raw_txs = 1;</code>
       * @return The count of rawTxs.
       */
      @java.lang.Override
      public int getRawTxsCount() {
        return instance.getRawTxsCount();
      }
      /**
       * <code>repeated bytes raw_txs = 1;</code>
       * @param index The index of the element to return.
       * @return The rawTxs at the given index.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getRawTxs(int index) {
        return instance.getRawTxs(index);
      }
      /**
       * <code>repeated bytes raw_txs = 1;</code>
       * @param value The rawTxs to set.
       * @return This builder for chaining.
       */
      public Builder setRawTxs(
          int index, com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setRawTxs(index, value);
        return this;
      }
      /**
       * <code>repeated bytes raw_txs = 1;</code>
       * @param value The rawTxs to add.
       * @return This builder for chaining.
       */
      public Builder addRawTxs(com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.addRawTxs(value);
        return this;
      }
      /**
       * <code>repeated bytes raw_txs = 1;</code>
       * @param values The rawTxs to add.
       * @return This builder for chaining.
       */
      public Builder addAllRawTxs(
          java.lang.Iterable<? extends com.google.protobuf.ByteString> values) {
        copyOnWrite();
        instance.addAllRawTxs(values);
        return this;
      }
      /**
       * <code>repeated bytes raw_txs = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearRawTxs() {
        copyOnWrite();
        instance.clearRawTxs();
        return this;
      }

      /**
       * <code>bool skip_slp_check = 2;</code>
       * @return The skipSlpCheck.
       */
      @java.lang.Override
      public boolean getSkipSlpCheck() {
        return instance.getSkipSlpCheck();
      }
      /**
       * <code>bool skip_slp_check = 2;</code>
       * @param value The skipSlpCheck to set.
       * @return This builder for chaining.
       */
      public Builder setSkipSlpCheck(boolean value) {
        copyOnWrite();
        instance.setSkipSlpCheck(value);
        return this;
      }
      /**
       * <code>bool skip_slp_check = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearSkipSlpCheck() {
        copyOnWrite();
        instance.clearSkipSlpCheck();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:chronik.BroadcastTxsRequest)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new chronik.Chronik.BroadcastTxsRequest();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "rawTxs_",
              "skipSlpCheck_",
            };
            java.lang.String info =
                "\u0000\u0002\u0000\u0000\u0001\u0002\u0002\u0000\u0001\u0000\u0001\u001c\u0002\u0007" +
                "";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<chronik.Chronik.BroadcastTxsRequest> parser = PARSER;
          if (parser == null) {
            synchronized (chronik.Chronik.BroadcastTxsRequest.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<chronik.Chronik.BroadcastTxsRequest>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:chronik.BroadcastTxsRequest)
    private static final chronik.Chronik.BroadcastTxsRequest DEFAULT_INSTANCE;
    static {
      BroadcastTxsRequest defaultInstance = new BroadcastTxsRequest();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        BroadcastTxsRequest.class, defaultInstance);
    }

    public static chronik.Chronik.BroadcastTxsRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<BroadcastTxsRequest> PARSER;

    public static com.google.protobuf.Parser<BroadcastTxsRequest> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface BroadcastTxsResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:chronik.BroadcastTxsResponse)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>repeated bytes txids = 1;</code>
     * @return A list containing the txids.
     */
    java.util.List<com.google.protobuf.ByteString> getTxidsList();
    /**
     * <code>repeated bytes txids = 1;</code>
     * @return The count of txids.
     */
    int getTxidsCount();
    /**
     * <code>repeated bytes txids = 1;</code>
     * @param index The index of the element to return.
     * @return The txids at the given index.
     */
    com.google.protobuf.ByteString getTxids(int index);
  }
  /**
   * Protobuf type {@code chronik.BroadcastTxsResponse}
   */
  public  static final class BroadcastTxsResponse extends
      com.google.protobuf.GeneratedMessageLite<
          BroadcastTxsResponse, BroadcastTxsResponse.Builder> implements
      // @@protoc_insertion_point(message_implements:chronik.BroadcastTxsResponse)
      BroadcastTxsResponseOrBuilder {
    private BroadcastTxsResponse() {
      txids_ = emptyProtobufList();
    }
    public static final int TXIDS_FIELD_NUMBER = 1;
    private com.google.protobuf.Internal.ProtobufList<com.google.protobuf.ByteString> txids_;
    /**
     * <code>repeated bytes txids = 1;</code>
     * @return A list containing the txids.
     */
    @java.lang.Override
    public java.util.List<com.google.protobuf.ByteString>
        getTxidsList() {
      return txids_;
    }
    /**
     * <code>repeated bytes txids = 1;</code>
     * @return The count of txids.
     */
    @java.lang.Override
    public int getTxidsCount() {
      return txids_.size();
    }
    /**
     * <code>repeated bytes txids = 1;</code>
     * @param index The index of the element to return.
     * @return The txids at the given index.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getTxids(int index) {
      return txids_.get(index);
    }
    private void ensureTxidsIsMutable() {
      com.google.protobuf.Internal.ProtobufList<com.google.protobuf.ByteString> tmp = txids_;
      if (!tmp.isModifiable()) {
        txids_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }
    /**
     * <code>repeated bytes txids = 1;</code>
     * @param index The index to set the value at.
     * @param value The txids to set.
     */
    private void setTxids(
        int index, com.google.protobuf.ByteString value) {
      java.lang.Class<?> valueClass = value.getClass();
  ensureTxidsIsMutable();
      txids_.set(index, value);
    }
    /**
     * <code>repeated bytes txids = 1;</code>
     * @param value The txids to add.
     */
    private void addTxids(com.google.protobuf.ByteString value) {
      java.lang.Class<?> valueClass = value.getClass();
  ensureTxidsIsMutable();
      txids_.add(value);
    }
    /**
     * <code>repeated bytes txids = 1;</code>
     * @param values The txids to add.
     */
    private void addAllTxids(
        java.lang.Iterable<? extends com.google.protobuf.ByteString> values) {
      ensureTxidsIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, txids_);
    }
    /**
     * <code>repeated bytes txids = 1;</code>
     */
    private void clearTxids() {
      txids_ = emptyProtobufList();
    }

    public static chronik.Chronik.BroadcastTxsResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.BroadcastTxsResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.BroadcastTxsResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.BroadcastTxsResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.BroadcastTxsResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.BroadcastTxsResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.BroadcastTxsResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.BroadcastTxsResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.BroadcastTxsResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.BroadcastTxsResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.BroadcastTxsResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.BroadcastTxsResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(chronik.Chronik.BroadcastTxsResponse prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code chronik.BroadcastTxsResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          chronik.Chronik.BroadcastTxsResponse, Builder> implements
        // @@protoc_insertion_point(builder_implements:chronik.BroadcastTxsResponse)
        chronik.Chronik.BroadcastTxsResponseOrBuilder {
      // Construct using chronik.Chronik.BroadcastTxsResponse.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>repeated bytes txids = 1;</code>
       * @return A list containing the txids.
       */
      @java.lang.Override
      public java.util.List<com.google.protobuf.ByteString>
          getTxidsList() {
        return java.util.Collections.unmodifiableList(
            instance.getTxidsList());
      }
      /**
       * <code>repeated bytes txids = 1;</code>
       * @return The count of txids.
       */
      @java.lang.Override
      public int getTxidsCount() {
        return instance.getTxidsCount();
      }
      /**
       * <code>repeated bytes txids = 1;</code>
       * @param index The index of the element to return.
       * @return The txids at the given index.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getTxids(int index) {
        return instance.getTxids(index);
      }
      /**
       * <code>repeated bytes txids = 1;</code>
       * @param value The txids to set.
       * @return This builder for chaining.
       */
      public Builder setTxids(
          int index, com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setTxids(index, value);
        return this;
      }
      /**
       * <code>repeated bytes txids = 1;</code>
       * @param value The txids to add.
       * @return This builder for chaining.
       */
      public Builder addTxids(com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.addTxids(value);
        return this;
      }
      /**
       * <code>repeated bytes txids = 1;</code>
       * @param values The txids to add.
       * @return This builder for chaining.
       */
      public Builder addAllTxids(
          java.lang.Iterable<? extends com.google.protobuf.ByteString> values) {
        copyOnWrite();
        instance.addAllTxids(values);
        return this;
      }
      /**
       * <code>repeated bytes txids = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearTxids() {
        copyOnWrite();
        instance.clearTxids();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:chronik.BroadcastTxsResponse)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new chronik.Chronik.BroadcastTxsResponse();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "txids_",
            };
            java.lang.String info =
                "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0001\u0000\u0001\u001c";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<chronik.Chronik.BroadcastTxsResponse> parser = PARSER;
          if (parser == null) {
            synchronized (chronik.Chronik.BroadcastTxsResponse.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<chronik.Chronik.BroadcastTxsResponse>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:chronik.BroadcastTxsResponse)
    private static final chronik.Chronik.BroadcastTxsResponse DEFAULT_INSTANCE;
    static {
      BroadcastTxsResponse defaultInstance = new BroadcastTxsResponse();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        BroadcastTxsResponse.class, defaultInstance);
    }

    public static chronik.Chronik.BroadcastTxsResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<BroadcastTxsResponse> PARSER;

    public static com.google.protobuf.Parser<BroadcastTxsResponse> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface BlockchainInfoOrBuilder extends
      // @@protoc_insertion_point(interface_extends:chronik.BlockchainInfo)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>bytes tip_hash = 1;</code>
     * @return The tipHash.
     */
    com.google.protobuf.ByteString getTipHash();

    /**
     * <code>int32 tip_height = 2;</code>
     * @return The tipHeight.
     */
    int getTipHeight();
  }
  /**
   * Protobuf type {@code chronik.BlockchainInfo}
   */
  public  static final class BlockchainInfo extends
      com.google.protobuf.GeneratedMessageLite<
          BlockchainInfo, BlockchainInfo.Builder> implements
      // @@protoc_insertion_point(message_implements:chronik.BlockchainInfo)
      BlockchainInfoOrBuilder {
    private BlockchainInfo() {
      tipHash_ = com.google.protobuf.ByteString.EMPTY;
    }
    public static final int TIP_HASH_FIELD_NUMBER = 1;
    private com.google.protobuf.ByteString tipHash_;
    /**
     * <code>bytes tip_hash = 1;</code>
     * @return The tipHash.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getTipHash() {
      return tipHash_;
    }
    /**
     * <code>bytes tip_hash = 1;</code>
     * @param value The tipHash to set.
     */
    private void setTipHash(com.google.protobuf.ByteString value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      tipHash_ = value;
    }
    /**
     * <code>bytes tip_hash = 1;</code>
     */
    private void clearTipHash() {

      tipHash_ = getDefaultInstance().getTipHash();
    }

    public static final int TIP_HEIGHT_FIELD_NUMBER = 2;
    private int tipHeight_;
    /**
     * <code>int32 tip_height = 2;</code>
     * @return The tipHeight.
     */
    @java.lang.Override
    public int getTipHeight() {
      return tipHeight_;
    }
    /**
     * <code>int32 tip_height = 2;</code>
     * @param value The tipHeight to set.
     */
    private void setTipHeight(int value) {
      
      tipHeight_ = value;
    }
    /**
     * <code>int32 tip_height = 2;</code>
     */
    private void clearTipHeight() {

      tipHeight_ = 0;
    }

    public static chronik.Chronik.BlockchainInfo parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.BlockchainInfo parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.BlockchainInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.BlockchainInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.BlockchainInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.BlockchainInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.BlockchainInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.BlockchainInfo parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.BlockchainInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.BlockchainInfo parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.BlockchainInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.BlockchainInfo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(chronik.Chronik.BlockchainInfo prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code chronik.BlockchainInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          chronik.Chronik.BlockchainInfo, Builder> implements
        // @@protoc_insertion_point(builder_implements:chronik.BlockchainInfo)
        chronik.Chronik.BlockchainInfoOrBuilder {
      // Construct using chronik.Chronik.BlockchainInfo.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>bytes tip_hash = 1;</code>
       * @return The tipHash.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getTipHash() {
        return instance.getTipHash();
      }
      /**
       * <code>bytes tip_hash = 1;</code>
       * @param value The tipHash to set.
       * @return This builder for chaining.
       */
      public Builder setTipHash(com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setTipHash(value);
        return this;
      }
      /**
       * <code>bytes tip_hash = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearTipHash() {
        copyOnWrite();
        instance.clearTipHash();
        return this;
      }

      /**
       * <code>int32 tip_height = 2;</code>
       * @return The tipHeight.
       */
      @java.lang.Override
      public int getTipHeight() {
        return instance.getTipHeight();
      }
      /**
       * <code>int32 tip_height = 2;</code>
       * @param value The tipHeight to set.
       * @return This builder for chaining.
       */
      public Builder setTipHeight(int value) {
        copyOnWrite();
        instance.setTipHeight(value);
        return this;
      }
      /**
       * <code>int32 tip_height = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearTipHeight() {
        copyOnWrite();
        instance.clearTipHeight();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:chronik.BlockchainInfo)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new chronik.Chronik.BlockchainInfo();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "tipHash_",
              "tipHeight_",
            };
            java.lang.String info =
                "\u0000\u0002\u0000\u0000\u0001\u0002\u0002\u0000\u0000\u0000\u0001\n\u0002\u0004" +
                "";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<chronik.Chronik.BlockchainInfo> parser = PARSER;
          if (parser == null) {
            synchronized (chronik.Chronik.BlockchainInfo.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<chronik.Chronik.BlockchainInfo>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:chronik.BlockchainInfo)
    private static final chronik.Chronik.BlockchainInfo DEFAULT_INSTANCE;
    static {
      BlockchainInfo defaultInstance = new BlockchainInfo();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        BlockchainInfo.class, defaultInstance);
    }

    public static chronik.Chronik.BlockchainInfo getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<BlockchainInfo> PARSER;

    public static com.google.protobuf.Parser<BlockchainInfo> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface TxOrBuilder extends
      // @@protoc_insertion_point(interface_extends:chronik.Tx)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>bytes txid = 1;</code>
     * @return The txid.
     */
    com.google.protobuf.ByteString getTxid();

    /**
     * <code>int32 version = 2;</code>
     * @return The version.
     */
    int getVersion();

    /**
     * <code>repeated .chronik.TxInput inputs = 3;</code>
     */
    java.util.List<chronik.Chronik.TxInput> 
        getInputsList();
    /**
     * <code>repeated .chronik.TxInput inputs = 3;</code>
     */
    chronik.Chronik.TxInput getInputs(int index);
    /**
     * <code>repeated .chronik.TxInput inputs = 3;</code>
     */
    int getInputsCount();

    /**
     * <code>repeated .chronik.TxOutput outputs = 4;</code>
     */
    java.util.List<chronik.Chronik.TxOutput> 
        getOutputsList();
    /**
     * <code>repeated .chronik.TxOutput outputs = 4;</code>
     */
    chronik.Chronik.TxOutput getOutputs(int index);
    /**
     * <code>repeated .chronik.TxOutput outputs = 4;</code>
     */
    int getOutputsCount();

    /**
     * <code>uint32 lock_time = 5;</code>
     * @return The lockTime.
     */
    int getLockTime();

    /**
     * <code>.chronik.SlpTxData slp_tx_data = 6;</code>
     * @return Whether the slpTxData field is set.
     */
    boolean hasSlpTxData();
    /**
     * <code>.chronik.SlpTxData slp_tx_data = 6;</code>
     * @return The slpTxData.
     */
    chronik.Chronik.SlpTxData getSlpTxData();

    /**
     * <code>string slp_error_msg = 7;</code>
     * @return The slpErrorMsg.
     */
    java.lang.String getSlpErrorMsg();
    /**
     * <code>string slp_error_msg = 7;</code>
     * @return The bytes for slpErrorMsg.
     */
    com.google.protobuf.ByteString
        getSlpErrorMsgBytes();

    /**
     * <code>.chronik.BlockMetadata block = 8;</code>
     * @return Whether the block field is set.
     */
    boolean hasBlock();
    /**
     * <code>.chronik.BlockMetadata block = 8;</code>
     * @return The block.
     */
    chronik.Chronik.BlockMetadata getBlock();

    /**
     * <code>int64 time_first_seen = 9;</code>
     * @return The timeFirstSeen.
     */
    long getTimeFirstSeen();

    /**
     * <code>uint32 size = 11;</code>
     * @return The size.
     */
    int getSize();

    /**
     * <code>bool is_coinbase = 12;</code>
     * @return The isCoinbase.
     */
    boolean getIsCoinbase();

    /**
     * <code>.chronik.Network network = 10;</code>
     * @return The enum numeric value on the wire for network.
     */
    int getNetworkValue();
    /**
     * <code>.chronik.Network network = 10;</code>
     * @return The network.
     */
    chronik.Chronik.Network getNetwork();
  }
  /**
   * Protobuf type {@code chronik.Tx}
   */
  public  static final class Tx extends
      com.google.protobuf.GeneratedMessageLite<
          Tx, Tx.Builder> implements
      // @@protoc_insertion_point(message_implements:chronik.Tx)
      TxOrBuilder {
    private Tx() {
      txid_ = com.google.protobuf.ByteString.EMPTY;
      inputs_ = emptyProtobufList();
      outputs_ = emptyProtobufList();
      slpErrorMsg_ = "";
    }
    public static final int TXID_FIELD_NUMBER = 1;
    private com.google.protobuf.ByteString txid_;
    /**
     * <code>bytes txid = 1;</code>
     * @return The txid.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getTxid() {
      return txid_;
    }
    /**
     * <code>bytes txid = 1;</code>
     * @param value The txid to set.
     */
    private void setTxid(com.google.protobuf.ByteString value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      txid_ = value;
    }
    /**
     * <code>bytes txid = 1;</code>
     */
    private void clearTxid() {

      txid_ = getDefaultInstance().getTxid();
    }

    public static final int VERSION_FIELD_NUMBER = 2;
    private int version_;
    /**
     * <code>int32 version = 2;</code>
     * @return The version.
     */
    @java.lang.Override
    public int getVersion() {
      return version_;
    }
    /**
     * <code>int32 version = 2;</code>
     * @param value The version to set.
     */
    private void setVersion(int value) {
      
      version_ = value;
    }
    /**
     * <code>int32 version = 2;</code>
     */
    private void clearVersion() {

      version_ = 0;
    }

    public static final int INPUTS_FIELD_NUMBER = 3;
    private com.google.protobuf.Internal.ProtobufList<chronik.Chronik.TxInput> inputs_;
    /**
     * <code>repeated .chronik.TxInput inputs = 3;</code>
     */
    @java.lang.Override
    public java.util.List<chronik.Chronik.TxInput> getInputsList() {
      return inputs_;
    }
    /**
     * <code>repeated .chronik.TxInput inputs = 3;</code>
     */
    public java.util.List<? extends chronik.Chronik.TxInputOrBuilder> 
        getInputsOrBuilderList() {
      return inputs_;
    }
    /**
     * <code>repeated .chronik.TxInput inputs = 3;</code>
     */
    @java.lang.Override
    public int getInputsCount() {
      return inputs_.size();
    }
    /**
     * <code>repeated .chronik.TxInput inputs = 3;</code>
     */
    @java.lang.Override
    public chronik.Chronik.TxInput getInputs(int index) {
      return inputs_.get(index);
    }
    /**
     * <code>repeated .chronik.TxInput inputs = 3;</code>
     */
    public chronik.Chronik.TxInputOrBuilder getInputsOrBuilder(
        int index) {
      return inputs_.get(index);
    }
    private void ensureInputsIsMutable() {
      com.google.protobuf.Internal.ProtobufList<chronik.Chronik.TxInput> tmp = inputs_;
      if (!tmp.isModifiable()) {
        inputs_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }

    /**
     * <code>repeated .chronik.TxInput inputs = 3;</code>
     */
    private void setInputs(
        int index, chronik.Chronik.TxInput value) {
      value.getClass();
  ensureInputsIsMutable();
      inputs_.set(index, value);
    }
    /**
     * <code>repeated .chronik.TxInput inputs = 3;</code>
     */
    private void addInputs(chronik.Chronik.TxInput value) {
      value.getClass();
  ensureInputsIsMutable();
      inputs_.add(value);
    }
    /**
     * <code>repeated .chronik.TxInput inputs = 3;</code>
     */
    private void addInputs(
        int index, chronik.Chronik.TxInput value) {
      value.getClass();
  ensureInputsIsMutable();
      inputs_.add(index, value);
    }
    /**
     * <code>repeated .chronik.TxInput inputs = 3;</code>
     */
    private void addAllInputs(
        java.lang.Iterable<? extends chronik.Chronik.TxInput> values) {
      ensureInputsIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, inputs_);
    }
    /**
     * <code>repeated .chronik.TxInput inputs = 3;</code>
     */
    private void clearInputs() {
      inputs_ = emptyProtobufList();
    }
    /**
     * <code>repeated .chronik.TxInput inputs = 3;</code>
     */
    private void removeInputs(int index) {
      ensureInputsIsMutable();
      inputs_.remove(index);
    }

    public static final int OUTPUTS_FIELD_NUMBER = 4;
    private com.google.protobuf.Internal.ProtobufList<chronik.Chronik.TxOutput> outputs_;
    /**
     * <code>repeated .chronik.TxOutput outputs = 4;</code>
     */
    @java.lang.Override
    public java.util.List<chronik.Chronik.TxOutput> getOutputsList() {
      return outputs_;
    }
    /**
     * <code>repeated .chronik.TxOutput outputs = 4;</code>
     */
    public java.util.List<? extends chronik.Chronik.TxOutputOrBuilder> 
        getOutputsOrBuilderList() {
      return outputs_;
    }
    /**
     * <code>repeated .chronik.TxOutput outputs = 4;</code>
     */
    @java.lang.Override
    public int getOutputsCount() {
      return outputs_.size();
    }
    /**
     * <code>repeated .chronik.TxOutput outputs = 4;</code>
     */
    @java.lang.Override
    public chronik.Chronik.TxOutput getOutputs(int index) {
      return outputs_.get(index);
    }
    /**
     * <code>repeated .chronik.TxOutput outputs = 4;</code>
     */
    public chronik.Chronik.TxOutputOrBuilder getOutputsOrBuilder(
        int index) {
      return outputs_.get(index);
    }
    private void ensureOutputsIsMutable() {
      com.google.protobuf.Internal.ProtobufList<chronik.Chronik.TxOutput> tmp = outputs_;
      if (!tmp.isModifiable()) {
        outputs_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }

    /**
     * <code>repeated .chronik.TxOutput outputs = 4;</code>
     */
    private void setOutputs(
        int index, chronik.Chronik.TxOutput value) {
      value.getClass();
  ensureOutputsIsMutable();
      outputs_.set(index, value);
    }
    /**
     * <code>repeated .chronik.TxOutput outputs = 4;</code>
     */
    private void addOutputs(chronik.Chronik.TxOutput value) {
      value.getClass();
  ensureOutputsIsMutable();
      outputs_.add(value);
    }
    /**
     * <code>repeated .chronik.TxOutput outputs = 4;</code>
     */
    private void addOutputs(
        int index, chronik.Chronik.TxOutput value) {
      value.getClass();
  ensureOutputsIsMutable();
      outputs_.add(index, value);
    }
    /**
     * <code>repeated .chronik.TxOutput outputs = 4;</code>
     */
    private void addAllOutputs(
        java.lang.Iterable<? extends chronik.Chronik.TxOutput> values) {
      ensureOutputsIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, outputs_);
    }
    /**
     * <code>repeated .chronik.TxOutput outputs = 4;</code>
     */
    private void clearOutputs() {
      outputs_ = emptyProtobufList();
    }
    /**
     * <code>repeated .chronik.TxOutput outputs = 4;</code>
     */
    private void removeOutputs(int index) {
      ensureOutputsIsMutable();
      outputs_.remove(index);
    }

    public static final int LOCK_TIME_FIELD_NUMBER = 5;
    private int lockTime_;
    /**
     * <code>uint32 lock_time = 5;</code>
     * @return The lockTime.
     */
    @java.lang.Override
    public int getLockTime() {
      return lockTime_;
    }
    /**
     * <code>uint32 lock_time = 5;</code>
     * @param value The lockTime to set.
     */
    private void setLockTime(int value) {
      
      lockTime_ = value;
    }
    /**
     * <code>uint32 lock_time = 5;</code>
     */
    private void clearLockTime() {

      lockTime_ = 0;
    }

    public static final int SLP_TX_DATA_FIELD_NUMBER = 6;
    private chronik.Chronik.SlpTxData slpTxData_;
    /**
     * <code>.chronik.SlpTxData slp_tx_data = 6;</code>
     */
    @java.lang.Override
    public boolean hasSlpTxData() {
      return slpTxData_ != null;
    }
    /**
     * <code>.chronik.SlpTxData slp_tx_data = 6;</code>
     */
    @java.lang.Override
    public chronik.Chronik.SlpTxData getSlpTxData() {
      return slpTxData_ == null ? chronik.Chronik.SlpTxData.getDefaultInstance() : slpTxData_;
    }
    /**
     * <code>.chronik.SlpTxData slp_tx_data = 6;</code>
     */
    private void setSlpTxData(chronik.Chronik.SlpTxData value) {
      value.getClass();
  slpTxData_ = value;

      }
    /**
     * <code>.chronik.SlpTxData slp_tx_data = 6;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeSlpTxData(chronik.Chronik.SlpTxData value) {
      value.getClass();
  if (slpTxData_ != null &&
          slpTxData_ != chronik.Chronik.SlpTxData.getDefaultInstance()) {
        slpTxData_ =
          chronik.Chronik.SlpTxData.newBuilder(slpTxData_).mergeFrom(value).buildPartial();
      } else {
        slpTxData_ = value;
      }

    }
    /**
     * <code>.chronik.SlpTxData slp_tx_data = 6;</code>
     */
    private void clearSlpTxData() {  slpTxData_ = null;

    }

    public static final int SLP_ERROR_MSG_FIELD_NUMBER = 7;
    private java.lang.String slpErrorMsg_;
    /**
     * <code>string slp_error_msg = 7;</code>
     * @return The slpErrorMsg.
     */
    @java.lang.Override
    public java.lang.String getSlpErrorMsg() {
      return slpErrorMsg_;
    }
    /**
     * <code>string slp_error_msg = 7;</code>
     * @return The bytes for slpErrorMsg.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getSlpErrorMsgBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(slpErrorMsg_);
    }
    /**
     * <code>string slp_error_msg = 7;</code>
     * @param value The slpErrorMsg to set.
     */
    private void setSlpErrorMsg(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      slpErrorMsg_ = value;
    }
    /**
     * <code>string slp_error_msg = 7;</code>
     */
    private void clearSlpErrorMsg() {

      slpErrorMsg_ = getDefaultInstance().getSlpErrorMsg();
    }
    /**
     * <code>string slp_error_msg = 7;</code>
     * @param value The bytes for slpErrorMsg to set.
     */
    private void setSlpErrorMsgBytes(
        com.google.protobuf.ByteString value) {
      checkByteStringIsUtf8(value);
      slpErrorMsg_ = value.toStringUtf8();

    }

    public static final int BLOCK_FIELD_NUMBER = 8;
    private chronik.Chronik.BlockMetadata block_;
    /**
     * <code>.chronik.BlockMetadata block = 8;</code>
     */
    @java.lang.Override
    public boolean hasBlock() {
      return block_ != null;
    }
    /**
     * <code>.chronik.BlockMetadata block = 8;</code>
     */
    @java.lang.Override
    public chronik.Chronik.BlockMetadata getBlock() {
      return block_ == null ? chronik.Chronik.BlockMetadata.getDefaultInstance() : block_;
    }
    /**
     * <code>.chronik.BlockMetadata block = 8;</code>
     */
    private void setBlock(chronik.Chronik.BlockMetadata value) {
      value.getClass();
  block_ = value;

      }
    /**
     * <code>.chronik.BlockMetadata block = 8;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeBlock(chronik.Chronik.BlockMetadata value) {
      value.getClass();
  if (block_ != null &&
          block_ != chronik.Chronik.BlockMetadata.getDefaultInstance()) {
        block_ =
          chronik.Chronik.BlockMetadata.newBuilder(block_).mergeFrom(value).buildPartial();
      } else {
        block_ = value;
      }

    }
    /**
     * <code>.chronik.BlockMetadata block = 8;</code>
     */
    private void clearBlock() {  block_ = null;

    }

    public static final int TIME_FIRST_SEEN_FIELD_NUMBER = 9;
    private long timeFirstSeen_;
    /**
     * <code>int64 time_first_seen = 9;</code>
     * @return The timeFirstSeen.
     */
    @java.lang.Override
    public long getTimeFirstSeen() {
      return timeFirstSeen_;
    }
    /**
     * <code>int64 time_first_seen = 9;</code>
     * @param value The timeFirstSeen to set.
     */
    private void setTimeFirstSeen(long value) {
      
      timeFirstSeen_ = value;
    }
    /**
     * <code>int64 time_first_seen = 9;</code>
     */
    private void clearTimeFirstSeen() {

      timeFirstSeen_ = 0L;
    }

    public static final int SIZE_FIELD_NUMBER = 11;
    private int size_;
    /**
     * <code>uint32 size = 11;</code>
     * @return The size.
     */
    @java.lang.Override
    public int getSize() {
      return size_;
    }
    /**
     * <code>uint32 size = 11;</code>
     * @param value The size to set.
     */
    private void setSize(int value) {
      
      size_ = value;
    }
    /**
     * <code>uint32 size = 11;</code>
     */
    private void clearSize() {

      size_ = 0;
    }

    public static final int IS_COINBASE_FIELD_NUMBER = 12;
    private boolean isCoinbase_;
    /**
     * <code>bool is_coinbase = 12;</code>
     * @return The isCoinbase.
     */
    @java.lang.Override
    public boolean getIsCoinbase() {
      return isCoinbase_;
    }
    /**
     * <code>bool is_coinbase = 12;</code>
     * @param value The isCoinbase to set.
     */
    private void setIsCoinbase(boolean value) {
      
      isCoinbase_ = value;
    }
    /**
     * <code>bool is_coinbase = 12;</code>
     */
    private void clearIsCoinbase() {

      isCoinbase_ = false;
    }

    public static final int NETWORK_FIELD_NUMBER = 10;
    private int network_;
    /**
     * <code>.chronik.Network network = 10;</code>
     * @return The enum numeric value on the wire for network.
     */
    @java.lang.Override
    public int getNetworkValue() {
      return network_;
    }
    /**
     * <code>.chronik.Network network = 10;</code>
     * @return The network.
     */
    @java.lang.Override
    public chronik.Chronik.Network getNetwork() {
      chronik.Chronik.Network result = chronik.Chronik.Network.forNumber(network_);
      return result == null ? chronik.Chronik.Network.UNRECOGNIZED : result;
    }
    /**
     * <code>.chronik.Network network = 10;</code>
     * @param value The enum numeric value on the wire for network to set.
     */
    private void setNetworkValue(int value) {
        network_ = value;
    }
    /**
     * <code>.chronik.Network network = 10;</code>
     * @param value The network to set.
     */
    private void setNetwork(chronik.Chronik.Network value) {
      network_ = value.getNumber();

    }
    /**
     * <code>.chronik.Network network = 10;</code>
     */
    private void clearNetwork() {

      network_ = 0;
    }

    public static chronik.Chronik.Tx parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.Tx parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.Tx parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.Tx parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.Tx parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.Tx parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.Tx parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.Tx parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.Tx parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.Tx parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.Tx parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.Tx parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(chronik.Chronik.Tx prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code chronik.Tx}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          chronik.Chronik.Tx, Builder> implements
        // @@protoc_insertion_point(builder_implements:chronik.Tx)
        chronik.Chronik.TxOrBuilder {
      // Construct using chronik.Chronik.Tx.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>bytes txid = 1;</code>
       * @return The txid.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getTxid() {
        return instance.getTxid();
      }
      /**
       * <code>bytes txid = 1;</code>
       * @param value The txid to set.
       * @return This builder for chaining.
       */
      public Builder setTxid(com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setTxid(value);
        return this;
      }
      /**
       * <code>bytes txid = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearTxid() {
        copyOnWrite();
        instance.clearTxid();
        return this;
      }

      /**
       * <code>int32 version = 2;</code>
       * @return The version.
       */
      @java.lang.Override
      public int getVersion() {
        return instance.getVersion();
      }
      /**
       * <code>int32 version = 2;</code>
       * @param value The version to set.
       * @return This builder for chaining.
       */
      public Builder setVersion(int value) {
        copyOnWrite();
        instance.setVersion(value);
        return this;
      }
      /**
       * <code>int32 version = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearVersion() {
        copyOnWrite();
        instance.clearVersion();
        return this;
      }

      /**
       * <code>repeated .chronik.TxInput inputs = 3;</code>
       */
      @java.lang.Override
      public java.util.List<chronik.Chronik.TxInput> getInputsList() {
        return java.util.Collections.unmodifiableList(
            instance.getInputsList());
      }
      /**
       * <code>repeated .chronik.TxInput inputs = 3;</code>
       */
      @java.lang.Override
      public int getInputsCount() {
        return instance.getInputsCount();
      }/**
       * <code>repeated .chronik.TxInput inputs = 3;</code>
       */
      @java.lang.Override
      public chronik.Chronik.TxInput getInputs(int index) {
        return instance.getInputs(index);
      }
      /**
       * <code>repeated .chronik.TxInput inputs = 3;</code>
       */
      public Builder setInputs(
          int index, chronik.Chronik.TxInput value) {
        copyOnWrite();
        instance.setInputs(index, value);
        return this;
      }
      /**
       * <code>repeated .chronik.TxInput inputs = 3;</code>
       */
      public Builder setInputs(
          int index, chronik.Chronik.TxInput.Builder builderForValue) {
        copyOnWrite();
        instance.setInputs(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .chronik.TxInput inputs = 3;</code>
       */
      public Builder addInputs(chronik.Chronik.TxInput value) {
        copyOnWrite();
        instance.addInputs(value);
        return this;
      }
      /**
       * <code>repeated .chronik.TxInput inputs = 3;</code>
       */
      public Builder addInputs(
          int index, chronik.Chronik.TxInput value) {
        copyOnWrite();
        instance.addInputs(index, value);
        return this;
      }
      /**
       * <code>repeated .chronik.TxInput inputs = 3;</code>
       */
      public Builder addInputs(
          chronik.Chronik.TxInput.Builder builderForValue) {
        copyOnWrite();
        instance.addInputs(builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .chronik.TxInput inputs = 3;</code>
       */
      public Builder addInputs(
          int index, chronik.Chronik.TxInput.Builder builderForValue) {
        copyOnWrite();
        instance.addInputs(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .chronik.TxInput inputs = 3;</code>
       */
      public Builder addAllInputs(
          java.lang.Iterable<? extends chronik.Chronik.TxInput> values) {
        copyOnWrite();
        instance.addAllInputs(values);
        return this;
      }
      /**
       * <code>repeated .chronik.TxInput inputs = 3;</code>
       */
      public Builder clearInputs() {
        copyOnWrite();
        instance.clearInputs();
        return this;
      }
      /**
       * <code>repeated .chronik.TxInput inputs = 3;</code>
       */
      public Builder removeInputs(int index) {
        copyOnWrite();
        instance.removeInputs(index);
        return this;
      }

      /**
       * <code>repeated .chronik.TxOutput outputs = 4;</code>
       */
      @java.lang.Override
      public java.util.List<chronik.Chronik.TxOutput> getOutputsList() {
        return java.util.Collections.unmodifiableList(
            instance.getOutputsList());
      }
      /**
       * <code>repeated .chronik.TxOutput outputs = 4;</code>
       */
      @java.lang.Override
      public int getOutputsCount() {
        return instance.getOutputsCount();
      }/**
       * <code>repeated .chronik.TxOutput outputs = 4;</code>
       */
      @java.lang.Override
      public chronik.Chronik.TxOutput getOutputs(int index) {
        return instance.getOutputs(index);
      }
      /**
       * <code>repeated .chronik.TxOutput outputs = 4;</code>
       */
      public Builder setOutputs(
          int index, chronik.Chronik.TxOutput value) {
        copyOnWrite();
        instance.setOutputs(index, value);
        return this;
      }
      /**
       * <code>repeated .chronik.TxOutput outputs = 4;</code>
       */
      public Builder setOutputs(
          int index, chronik.Chronik.TxOutput.Builder builderForValue) {
        copyOnWrite();
        instance.setOutputs(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .chronik.TxOutput outputs = 4;</code>
       */
      public Builder addOutputs(chronik.Chronik.TxOutput value) {
        copyOnWrite();
        instance.addOutputs(value);
        return this;
      }
      /**
       * <code>repeated .chronik.TxOutput outputs = 4;</code>
       */
      public Builder addOutputs(
          int index, chronik.Chronik.TxOutput value) {
        copyOnWrite();
        instance.addOutputs(index, value);
        return this;
      }
      /**
       * <code>repeated .chronik.TxOutput outputs = 4;</code>
       */
      public Builder addOutputs(
          chronik.Chronik.TxOutput.Builder builderForValue) {
        copyOnWrite();
        instance.addOutputs(builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .chronik.TxOutput outputs = 4;</code>
       */
      public Builder addOutputs(
          int index, chronik.Chronik.TxOutput.Builder builderForValue) {
        copyOnWrite();
        instance.addOutputs(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .chronik.TxOutput outputs = 4;</code>
       */
      public Builder addAllOutputs(
          java.lang.Iterable<? extends chronik.Chronik.TxOutput> values) {
        copyOnWrite();
        instance.addAllOutputs(values);
        return this;
      }
      /**
       * <code>repeated .chronik.TxOutput outputs = 4;</code>
       */
      public Builder clearOutputs() {
        copyOnWrite();
        instance.clearOutputs();
        return this;
      }
      /**
       * <code>repeated .chronik.TxOutput outputs = 4;</code>
       */
      public Builder removeOutputs(int index) {
        copyOnWrite();
        instance.removeOutputs(index);
        return this;
      }

      /**
       * <code>uint32 lock_time = 5;</code>
       * @return The lockTime.
       */
      @java.lang.Override
      public int getLockTime() {
        return instance.getLockTime();
      }
      /**
       * <code>uint32 lock_time = 5;</code>
       * @param value The lockTime to set.
       * @return This builder for chaining.
       */
      public Builder setLockTime(int value) {
        copyOnWrite();
        instance.setLockTime(value);
        return this;
      }
      /**
       * <code>uint32 lock_time = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearLockTime() {
        copyOnWrite();
        instance.clearLockTime();
        return this;
      }

      /**
       * <code>.chronik.SlpTxData slp_tx_data = 6;</code>
       */
      @java.lang.Override
      public boolean hasSlpTxData() {
        return instance.hasSlpTxData();
      }
      /**
       * <code>.chronik.SlpTxData slp_tx_data = 6;</code>
       */
      @java.lang.Override
      public chronik.Chronik.SlpTxData getSlpTxData() {
        return instance.getSlpTxData();
      }
      /**
       * <code>.chronik.SlpTxData slp_tx_data = 6;</code>
       */
      public Builder setSlpTxData(chronik.Chronik.SlpTxData value) {
        copyOnWrite();
        instance.setSlpTxData(value);
        return this;
        }
      /**
       * <code>.chronik.SlpTxData slp_tx_data = 6;</code>
       */
      public Builder setSlpTxData(
          chronik.Chronik.SlpTxData.Builder builderForValue) {
        copyOnWrite();
        instance.setSlpTxData(builderForValue.build());
        return this;
      }
      /**
       * <code>.chronik.SlpTxData slp_tx_data = 6;</code>
       */
      public Builder mergeSlpTxData(chronik.Chronik.SlpTxData value) {
        copyOnWrite();
        instance.mergeSlpTxData(value);
        return this;
      }
      /**
       * <code>.chronik.SlpTxData slp_tx_data = 6;</code>
       */
      public Builder clearSlpTxData() {  copyOnWrite();
        instance.clearSlpTxData();
        return this;
      }

      /**
       * <code>string slp_error_msg = 7;</code>
       * @return The slpErrorMsg.
       */
      @java.lang.Override
      public java.lang.String getSlpErrorMsg() {
        return instance.getSlpErrorMsg();
      }
      /**
       * <code>string slp_error_msg = 7;</code>
       * @return The bytes for slpErrorMsg.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getSlpErrorMsgBytes() {
        return instance.getSlpErrorMsgBytes();
      }
      /**
       * <code>string slp_error_msg = 7;</code>
       * @param value The slpErrorMsg to set.
       * @return This builder for chaining.
       */
      public Builder setSlpErrorMsg(
          java.lang.String value) {
        copyOnWrite();
        instance.setSlpErrorMsg(value);
        return this;
      }
      /**
       * <code>string slp_error_msg = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearSlpErrorMsg() {
        copyOnWrite();
        instance.clearSlpErrorMsg();
        return this;
      }
      /**
       * <code>string slp_error_msg = 7;</code>
       * @param value The bytes for slpErrorMsg to set.
       * @return This builder for chaining.
       */
      public Builder setSlpErrorMsgBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setSlpErrorMsgBytes(value);
        return this;
      }

      /**
       * <code>.chronik.BlockMetadata block = 8;</code>
       */
      @java.lang.Override
      public boolean hasBlock() {
        return instance.hasBlock();
      }
      /**
       * <code>.chronik.BlockMetadata block = 8;</code>
       */
      @java.lang.Override
      public chronik.Chronik.BlockMetadata getBlock() {
        return instance.getBlock();
      }
      /**
       * <code>.chronik.BlockMetadata block = 8;</code>
       */
      public Builder setBlock(chronik.Chronik.BlockMetadata value) {
        copyOnWrite();
        instance.setBlock(value);
        return this;
        }
      /**
       * <code>.chronik.BlockMetadata block = 8;</code>
       */
      public Builder setBlock(
          chronik.Chronik.BlockMetadata.Builder builderForValue) {
        copyOnWrite();
        instance.setBlock(builderForValue.build());
        return this;
      }
      /**
       * <code>.chronik.BlockMetadata block = 8;</code>
       */
      public Builder mergeBlock(chronik.Chronik.BlockMetadata value) {
        copyOnWrite();
        instance.mergeBlock(value);
        return this;
      }
      /**
       * <code>.chronik.BlockMetadata block = 8;</code>
       */
      public Builder clearBlock() {  copyOnWrite();
        instance.clearBlock();
        return this;
      }

      /**
       * <code>int64 time_first_seen = 9;</code>
       * @return The timeFirstSeen.
       */
      @java.lang.Override
      public long getTimeFirstSeen() {
        return instance.getTimeFirstSeen();
      }
      /**
       * <code>int64 time_first_seen = 9;</code>
       * @param value The timeFirstSeen to set.
       * @return This builder for chaining.
       */
      public Builder setTimeFirstSeen(long value) {
        copyOnWrite();
        instance.setTimeFirstSeen(value);
        return this;
      }
      /**
       * <code>int64 time_first_seen = 9;</code>
       * @return This builder for chaining.
       */
      public Builder clearTimeFirstSeen() {
        copyOnWrite();
        instance.clearTimeFirstSeen();
        return this;
      }

      /**
       * <code>uint32 size = 11;</code>
       * @return The size.
       */
      @java.lang.Override
      public int getSize() {
        return instance.getSize();
      }
      /**
       * <code>uint32 size = 11;</code>
       * @param value The size to set.
       * @return This builder for chaining.
       */
      public Builder setSize(int value) {
        copyOnWrite();
        instance.setSize(value);
        return this;
      }
      /**
       * <code>uint32 size = 11;</code>
       * @return This builder for chaining.
       */
      public Builder clearSize() {
        copyOnWrite();
        instance.clearSize();
        return this;
      }

      /**
       * <code>bool is_coinbase = 12;</code>
       * @return The isCoinbase.
       */
      @java.lang.Override
      public boolean getIsCoinbase() {
        return instance.getIsCoinbase();
      }
      /**
       * <code>bool is_coinbase = 12;</code>
       * @param value The isCoinbase to set.
       * @return This builder for chaining.
       */
      public Builder setIsCoinbase(boolean value) {
        copyOnWrite();
        instance.setIsCoinbase(value);
        return this;
      }
      /**
       * <code>bool is_coinbase = 12;</code>
       * @return This builder for chaining.
       */
      public Builder clearIsCoinbase() {
        copyOnWrite();
        instance.clearIsCoinbase();
        return this;
      }

      /**
       * <code>.chronik.Network network = 10;</code>
       * @return The enum numeric value on the wire for network.
       */
      @java.lang.Override
      public int getNetworkValue() {
        return instance.getNetworkValue();
      }
      /**
       * <code>.chronik.Network network = 10;</code>
       * @param value The network to set.
       * @return This builder for chaining.
       */
      public Builder setNetworkValue(int value) {
        copyOnWrite();
        instance.setNetworkValue(value);
        return this;
      }
      /**
       * <code>.chronik.Network network = 10;</code>
       * @return The network.
       */
      @java.lang.Override
      public chronik.Chronik.Network getNetwork() {
        return instance.getNetwork();
      }
      /**
       * <code>.chronik.Network network = 10;</code>
       * @param value The enum numeric value on the wire for network to set.
       * @return This builder for chaining.
       */
      public Builder setNetwork(chronik.Chronik.Network value) {
        copyOnWrite();
        instance.setNetwork(value);
        return this;
      }
      /**
       * <code>.chronik.Network network = 10;</code>
       * @return This builder for chaining.
       */
      public Builder clearNetwork() {
        copyOnWrite();
        instance.clearNetwork();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:chronik.Tx)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new chronik.Chronik.Tx();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "txid_",
              "version_",
              "inputs_",
              chronik.Chronik.TxInput.class,
              "outputs_",
              chronik.Chronik.TxOutput.class,
              "lockTime_",
              "slpTxData_",
              "slpErrorMsg_",
              "block_",
              "timeFirstSeen_",
              "network_",
              "size_",
              "isCoinbase_",
            };
            java.lang.String info =
                "\u0000\f\u0000\u0000\u0001\f\f\u0000\u0002\u0000\u0001\n\u0002\u0004\u0003\u001b" +
                "\u0004\u001b\u0005\u000b\u0006\t\u0007\u0208\b\t\t\u0002\n\f\u000b\u000b\f\u0007" +
                "";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<chronik.Chronik.Tx> parser = PARSER;
          if (parser == null) {
            synchronized (chronik.Chronik.Tx.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<chronik.Chronik.Tx>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:chronik.Tx)
    private static final chronik.Chronik.Tx DEFAULT_INSTANCE;
    static {
      Tx defaultInstance = new Tx();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        Tx.class, defaultInstance);
    }

    public static chronik.Chronik.Tx getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<Tx> PARSER;

    public static com.google.protobuf.Parser<Tx> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface UtxoOrBuilder extends
      // @@protoc_insertion_point(interface_extends:chronik.Utxo)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>.chronik.OutPoint outpoint = 1;</code>
     * @return Whether the outpoint field is set.
     */
    boolean hasOutpoint();
    /**
     * <code>.chronik.OutPoint outpoint = 1;</code>
     * @return The outpoint.
     */
    chronik.Chronik.OutPoint getOutpoint();

    /**
     * <code>int32 block_height = 2;</code>
     * @return The blockHeight.
     */
    int getBlockHeight();

    /**
     * <code>bool is_coinbase = 3;</code>
     * @return The isCoinbase.
     */
    boolean getIsCoinbase();

    /**
     * <code>int64 value = 5;</code>
     * @return The value.
     */
    long getValue();

    /**
     * <code>.chronik.SlpMeta slp_meta = 6;</code>
     * @return Whether the slpMeta field is set.
     */
    boolean hasSlpMeta();
    /**
     * <code>.chronik.SlpMeta slp_meta = 6;</code>
     * @return The slpMeta.
     */
    chronik.Chronik.SlpMeta getSlpMeta();

    /**
     * <code>.chronik.SlpToken slp_token = 7;</code>
     * @return Whether the slpToken field is set.
     */
    boolean hasSlpToken();
    /**
     * <code>.chronik.SlpToken slp_token = 7;</code>
     * @return The slpToken.
     */
    chronik.Chronik.SlpToken getSlpToken();

    /**
     * <code>.chronik.Network network = 9;</code>
     * @return The enum numeric value on the wire for network.
     */
    int getNetworkValue();
    /**
     * <code>.chronik.Network network = 9;</code>
     * @return The network.
     */
    chronik.Chronik.Network getNetwork();
  }
  /**
   * Protobuf type {@code chronik.Utxo}
   */
  public  static final class Utxo extends
      com.google.protobuf.GeneratedMessageLite<
          Utxo, Utxo.Builder> implements
      // @@protoc_insertion_point(message_implements:chronik.Utxo)
      UtxoOrBuilder {
    private Utxo() {
    }
    public static final int OUTPOINT_FIELD_NUMBER = 1;
    private chronik.Chronik.OutPoint outpoint_;
    /**
     * <code>.chronik.OutPoint outpoint = 1;</code>
     */
    @java.lang.Override
    public boolean hasOutpoint() {
      return outpoint_ != null;
    }
    /**
     * <code>.chronik.OutPoint outpoint = 1;</code>
     */
    @java.lang.Override
    public chronik.Chronik.OutPoint getOutpoint() {
      return outpoint_ == null ? chronik.Chronik.OutPoint.getDefaultInstance() : outpoint_;
    }
    /**
     * <code>.chronik.OutPoint outpoint = 1;</code>
     */
    private void setOutpoint(chronik.Chronik.OutPoint value) {
      value.getClass();
  outpoint_ = value;

      }
    /**
     * <code>.chronik.OutPoint outpoint = 1;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeOutpoint(chronik.Chronik.OutPoint value) {
      value.getClass();
  if (outpoint_ != null &&
          outpoint_ != chronik.Chronik.OutPoint.getDefaultInstance()) {
        outpoint_ =
          chronik.Chronik.OutPoint.newBuilder(outpoint_).mergeFrom(value).buildPartial();
      } else {
        outpoint_ = value;
      }

    }
    /**
     * <code>.chronik.OutPoint outpoint = 1;</code>
     */
    private void clearOutpoint() {  outpoint_ = null;

    }

    public static final int BLOCK_HEIGHT_FIELD_NUMBER = 2;
    private int blockHeight_;
    /**
     * <code>int32 block_height = 2;</code>
     * @return The blockHeight.
     */
    @java.lang.Override
    public int getBlockHeight() {
      return blockHeight_;
    }
    /**
     * <code>int32 block_height = 2;</code>
     * @param value The blockHeight to set.
     */
    private void setBlockHeight(int value) {
      
      blockHeight_ = value;
    }
    /**
     * <code>int32 block_height = 2;</code>
     */
    private void clearBlockHeight() {

      blockHeight_ = 0;
    }

    public static final int IS_COINBASE_FIELD_NUMBER = 3;
    private boolean isCoinbase_;
    /**
     * <code>bool is_coinbase = 3;</code>
     * @return The isCoinbase.
     */
    @java.lang.Override
    public boolean getIsCoinbase() {
      return isCoinbase_;
    }
    /**
     * <code>bool is_coinbase = 3;</code>
     * @param value The isCoinbase to set.
     */
    private void setIsCoinbase(boolean value) {
      
      isCoinbase_ = value;
    }
    /**
     * <code>bool is_coinbase = 3;</code>
     */
    private void clearIsCoinbase() {

      isCoinbase_ = false;
    }

    public static final int VALUE_FIELD_NUMBER = 5;
    private long value_;
    /**
     * <code>int64 value = 5;</code>
     * @return The value.
     */
    @java.lang.Override
    public long getValue() {
      return value_;
    }
    /**
     * <code>int64 value = 5;</code>
     * @param value The value to set.
     */
    private void setValue(long value) {
      
      value_ = value;
    }
    /**
     * <code>int64 value = 5;</code>
     */
    private void clearValue() {

      value_ = 0L;
    }

    public static final int SLP_META_FIELD_NUMBER = 6;
    private chronik.Chronik.SlpMeta slpMeta_;
    /**
     * <code>.chronik.SlpMeta slp_meta = 6;</code>
     */
    @java.lang.Override
    public boolean hasSlpMeta() {
      return slpMeta_ != null;
    }
    /**
     * <code>.chronik.SlpMeta slp_meta = 6;</code>
     */
    @java.lang.Override
    public chronik.Chronik.SlpMeta getSlpMeta() {
      return slpMeta_ == null ? chronik.Chronik.SlpMeta.getDefaultInstance() : slpMeta_;
    }
    /**
     * <code>.chronik.SlpMeta slp_meta = 6;</code>
     */
    private void setSlpMeta(chronik.Chronik.SlpMeta value) {
      value.getClass();
  slpMeta_ = value;

      }
    /**
     * <code>.chronik.SlpMeta slp_meta = 6;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeSlpMeta(chronik.Chronik.SlpMeta value) {
      value.getClass();
  if (slpMeta_ != null &&
          slpMeta_ != chronik.Chronik.SlpMeta.getDefaultInstance()) {
        slpMeta_ =
          chronik.Chronik.SlpMeta.newBuilder(slpMeta_).mergeFrom(value).buildPartial();
      } else {
        slpMeta_ = value;
      }

    }
    /**
     * <code>.chronik.SlpMeta slp_meta = 6;</code>
     */
    private void clearSlpMeta() {  slpMeta_ = null;

    }

    public static final int SLP_TOKEN_FIELD_NUMBER = 7;
    private chronik.Chronik.SlpToken slpToken_;
    /**
     * <code>.chronik.SlpToken slp_token = 7;</code>
     */
    @java.lang.Override
    public boolean hasSlpToken() {
      return slpToken_ != null;
    }
    /**
     * <code>.chronik.SlpToken slp_token = 7;</code>
     */
    @java.lang.Override
    public chronik.Chronik.SlpToken getSlpToken() {
      return slpToken_ == null ? chronik.Chronik.SlpToken.getDefaultInstance() : slpToken_;
    }
    /**
     * <code>.chronik.SlpToken slp_token = 7;</code>
     */
    private void setSlpToken(chronik.Chronik.SlpToken value) {
      value.getClass();
  slpToken_ = value;

      }
    /**
     * <code>.chronik.SlpToken slp_token = 7;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeSlpToken(chronik.Chronik.SlpToken value) {
      value.getClass();
  if (slpToken_ != null &&
          slpToken_ != chronik.Chronik.SlpToken.getDefaultInstance()) {
        slpToken_ =
          chronik.Chronik.SlpToken.newBuilder(slpToken_).mergeFrom(value).buildPartial();
      } else {
        slpToken_ = value;
      }

    }
    /**
     * <code>.chronik.SlpToken slp_token = 7;</code>
     */
    private void clearSlpToken() {  slpToken_ = null;

    }

    public static final int NETWORK_FIELD_NUMBER = 9;
    private int network_;
    /**
     * <code>.chronik.Network network = 9;</code>
     * @return The enum numeric value on the wire for network.
     */
    @java.lang.Override
    public int getNetworkValue() {
      return network_;
    }
    /**
     * <code>.chronik.Network network = 9;</code>
     * @return The network.
     */
    @java.lang.Override
    public chronik.Chronik.Network getNetwork() {
      chronik.Chronik.Network result = chronik.Chronik.Network.forNumber(network_);
      return result == null ? chronik.Chronik.Network.UNRECOGNIZED : result;
    }
    /**
     * <code>.chronik.Network network = 9;</code>
     * @param value The enum numeric value on the wire for network to set.
     */
    private void setNetworkValue(int value) {
        network_ = value;
    }
    /**
     * <code>.chronik.Network network = 9;</code>
     * @param value The network to set.
     */
    private void setNetwork(chronik.Chronik.Network value) {
      network_ = value.getNumber();

    }
    /**
     * <code>.chronik.Network network = 9;</code>
     */
    private void clearNetwork() {

      network_ = 0;
    }

    public static chronik.Chronik.Utxo parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.Utxo parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.Utxo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.Utxo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.Utxo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.Utxo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.Utxo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.Utxo parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.Utxo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.Utxo parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.Utxo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.Utxo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(chronik.Chronik.Utxo prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code chronik.Utxo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          chronik.Chronik.Utxo, Builder> implements
        // @@protoc_insertion_point(builder_implements:chronik.Utxo)
        chronik.Chronik.UtxoOrBuilder {
      // Construct using chronik.Chronik.Utxo.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>.chronik.OutPoint outpoint = 1;</code>
       */
      @java.lang.Override
      public boolean hasOutpoint() {
        return instance.hasOutpoint();
      }
      /**
       * <code>.chronik.OutPoint outpoint = 1;</code>
       */
      @java.lang.Override
      public chronik.Chronik.OutPoint getOutpoint() {
        return instance.getOutpoint();
      }
      /**
       * <code>.chronik.OutPoint outpoint = 1;</code>
       */
      public Builder setOutpoint(chronik.Chronik.OutPoint value) {
        copyOnWrite();
        instance.setOutpoint(value);
        return this;
        }
      /**
       * <code>.chronik.OutPoint outpoint = 1;</code>
       */
      public Builder setOutpoint(
          chronik.Chronik.OutPoint.Builder builderForValue) {
        copyOnWrite();
        instance.setOutpoint(builderForValue.build());
        return this;
      }
      /**
       * <code>.chronik.OutPoint outpoint = 1;</code>
       */
      public Builder mergeOutpoint(chronik.Chronik.OutPoint value) {
        copyOnWrite();
        instance.mergeOutpoint(value);
        return this;
      }
      /**
       * <code>.chronik.OutPoint outpoint = 1;</code>
       */
      public Builder clearOutpoint() {  copyOnWrite();
        instance.clearOutpoint();
        return this;
      }

      /**
       * <code>int32 block_height = 2;</code>
       * @return The blockHeight.
       */
      @java.lang.Override
      public int getBlockHeight() {
        return instance.getBlockHeight();
      }
      /**
       * <code>int32 block_height = 2;</code>
       * @param value The blockHeight to set.
       * @return This builder for chaining.
       */
      public Builder setBlockHeight(int value) {
        copyOnWrite();
        instance.setBlockHeight(value);
        return this;
      }
      /**
       * <code>int32 block_height = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearBlockHeight() {
        copyOnWrite();
        instance.clearBlockHeight();
        return this;
      }

      /**
       * <code>bool is_coinbase = 3;</code>
       * @return The isCoinbase.
       */
      @java.lang.Override
      public boolean getIsCoinbase() {
        return instance.getIsCoinbase();
      }
      /**
       * <code>bool is_coinbase = 3;</code>
       * @param value The isCoinbase to set.
       * @return This builder for chaining.
       */
      public Builder setIsCoinbase(boolean value) {
        copyOnWrite();
        instance.setIsCoinbase(value);
        return this;
      }
      /**
       * <code>bool is_coinbase = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearIsCoinbase() {
        copyOnWrite();
        instance.clearIsCoinbase();
        return this;
      }

      /**
       * <code>int64 value = 5;</code>
       * @return The value.
       */
      @java.lang.Override
      public long getValue() {
        return instance.getValue();
      }
      /**
       * <code>int64 value = 5;</code>
       * @param value The value to set.
       * @return This builder for chaining.
       */
      public Builder setValue(long value) {
        copyOnWrite();
        instance.setValue(value);
        return this;
      }
      /**
       * <code>int64 value = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearValue() {
        copyOnWrite();
        instance.clearValue();
        return this;
      }

      /**
       * <code>.chronik.SlpMeta slp_meta = 6;</code>
       */
      @java.lang.Override
      public boolean hasSlpMeta() {
        return instance.hasSlpMeta();
      }
      /**
       * <code>.chronik.SlpMeta slp_meta = 6;</code>
       */
      @java.lang.Override
      public chronik.Chronik.SlpMeta getSlpMeta() {
        return instance.getSlpMeta();
      }
      /**
       * <code>.chronik.SlpMeta slp_meta = 6;</code>
       */
      public Builder setSlpMeta(chronik.Chronik.SlpMeta value) {
        copyOnWrite();
        instance.setSlpMeta(value);
        return this;
        }
      /**
       * <code>.chronik.SlpMeta slp_meta = 6;</code>
       */
      public Builder setSlpMeta(
          chronik.Chronik.SlpMeta.Builder builderForValue) {
        copyOnWrite();
        instance.setSlpMeta(builderForValue.build());
        return this;
      }
      /**
       * <code>.chronik.SlpMeta slp_meta = 6;</code>
       */
      public Builder mergeSlpMeta(chronik.Chronik.SlpMeta value) {
        copyOnWrite();
        instance.mergeSlpMeta(value);
        return this;
      }
      /**
       * <code>.chronik.SlpMeta slp_meta = 6;</code>
       */
      public Builder clearSlpMeta() {  copyOnWrite();
        instance.clearSlpMeta();
        return this;
      }

      /**
       * <code>.chronik.SlpToken slp_token = 7;</code>
       */
      @java.lang.Override
      public boolean hasSlpToken() {
        return instance.hasSlpToken();
      }
      /**
       * <code>.chronik.SlpToken slp_token = 7;</code>
       */
      @java.lang.Override
      public chronik.Chronik.SlpToken getSlpToken() {
        return instance.getSlpToken();
      }
      /**
       * <code>.chronik.SlpToken slp_token = 7;</code>
       */
      public Builder setSlpToken(chronik.Chronik.SlpToken value) {
        copyOnWrite();
        instance.setSlpToken(value);
        return this;
        }
      /**
       * <code>.chronik.SlpToken slp_token = 7;</code>
       */
      public Builder setSlpToken(
          chronik.Chronik.SlpToken.Builder builderForValue) {
        copyOnWrite();
        instance.setSlpToken(builderForValue.build());
        return this;
      }
      /**
       * <code>.chronik.SlpToken slp_token = 7;</code>
       */
      public Builder mergeSlpToken(chronik.Chronik.SlpToken value) {
        copyOnWrite();
        instance.mergeSlpToken(value);
        return this;
      }
      /**
       * <code>.chronik.SlpToken slp_token = 7;</code>
       */
      public Builder clearSlpToken() {  copyOnWrite();
        instance.clearSlpToken();
        return this;
      }

      /**
       * <code>.chronik.Network network = 9;</code>
       * @return The enum numeric value on the wire for network.
       */
      @java.lang.Override
      public int getNetworkValue() {
        return instance.getNetworkValue();
      }
      /**
       * <code>.chronik.Network network = 9;</code>
       * @param value The network to set.
       * @return This builder for chaining.
       */
      public Builder setNetworkValue(int value) {
        copyOnWrite();
        instance.setNetworkValue(value);
        return this;
      }
      /**
       * <code>.chronik.Network network = 9;</code>
       * @return The network.
       */
      @java.lang.Override
      public chronik.Chronik.Network getNetwork() {
        return instance.getNetwork();
      }
      /**
       * <code>.chronik.Network network = 9;</code>
       * @param value The enum numeric value on the wire for network to set.
       * @return This builder for chaining.
       */
      public Builder setNetwork(chronik.Chronik.Network value) {
        copyOnWrite();
        instance.setNetwork(value);
        return this;
      }
      /**
       * <code>.chronik.Network network = 9;</code>
       * @return This builder for chaining.
       */
      public Builder clearNetwork() {
        copyOnWrite();
        instance.clearNetwork();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:chronik.Utxo)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new chronik.Chronik.Utxo();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "outpoint_",
              "blockHeight_",
              "isCoinbase_",
              "value_",
              "slpMeta_",
              "slpToken_",
              "network_",
            };
            java.lang.String info =
                "\u0000\u0007\u0000\u0000\u0001\t\u0007\u0000\u0000\u0000\u0001\t\u0002\u0004\u0003" +
                "\u0007\u0005\u0002\u0006\t\u0007\t\t\f";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<chronik.Chronik.Utxo> parser = PARSER;
          if (parser == null) {
            synchronized (chronik.Chronik.Utxo.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<chronik.Chronik.Utxo>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:chronik.Utxo)
    private static final chronik.Chronik.Utxo DEFAULT_INSTANCE;
    static {
      Utxo defaultInstance = new Utxo();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        Utxo.class, defaultInstance);
    }

    public static chronik.Chronik.Utxo getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<Utxo> PARSER;

    public static com.google.protobuf.Parser<Utxo> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface TokenOrBuilder extends
      // @@protoc_insertion_point(interface_extends:chronik.Token)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>.chronik.SlpTxData slp_tx_data = 1;</code>
     * @return Whether the slpTxData field is set.
     */
    boolean hasSlpTxData();
    /**
     * <code>.chronik.SlpTxData slp_tx_data = 1;</code>
     * @return The slpTxData.
     */
    chronik.Chronik.SlpTxData getSlpTxData();

    /**
     * <code>.chronik.TokenStats token_stats = 2;</code>
     * @return Whether the tokenStats field is set.
     */
    boolean hasTokenStats();
    /**
     * <code>.chronik.TokenStats token_stats = 2;</code>
     * @return The tokenStats.
     */
    chronik.Chronik.TokenStats getTokenStats();

    /**
     * <code>.chronik.BlockMetadata block = 3;</code>
     * @return Whether the block field is set.
     */
    boolean hasBlock();
    /**
     * <code>.chronik.BlockMetadata block = 3;</code>
     * @return The block.
     */
    chronik.Chronik.BlockMetadata getBlock();

    /**
     * <code>int64 time_first_seen = 4;</code>
     * @return The timeFirstSeen.
     */
    long getTimeFirstSeen();

    /**
     * <code>uint64 initial_token_quantity = 5;</code>
     * @return The initialTokenQuantity.
     */
    long getInitialTokenQuantity();

    /**
     * <code>bool contains_baton = 6;</code>
     * @return The containsBaton.
     */
    boolean getContainsBaton();

    /**
     * <code>.chronik.Network network = 7;</code>
     * @return The enum numeric value on the wire for network.
     */
    int getNetworkValue();
    /**
     * <code>.chronik.Network network = 7;</code>
     * @return The network.
     */
    chronik.Chronik.Network getNetwork();
  }
  /**
   * Protobuf type {@code chronik.Token}
   */
  public  static final class Token extends
      com.google.protobuf.GeneratedMessageLite<
          Token, Token.Builder> implements
      // @@protoc_insertion_point(message_implements:chronik.Token)
      TokenOrBuilder {
    private Token() {
    }
    public static final int SLP_TX_DATA_FIELD_NUMBER = 1;
    private chronik.Chronik.SlpTxData slpTxData_;
    /**
     * <code>.chronik.SlpTxData slp_tx_data = 1;</code>
     */
    @java.lang.Override
    public boolean hasSlpTxData() {
      return slpTxData_ != null;
    }
    /**
     * <code>.chronik.SlpTxData slp_tx_data = 1;</code>
     */
    @java.lang.Override
    public chronik.Chronik.SlpTxData getSlpTxData() {
      return slpTxData_ == null ? chronik.Chronik.SlpTxData.getDefaultInstance() : slpTxData_;
    }
    /**
     * <code>.chronik.SlpTxData slp_tx_data = 1;</code>
     */
    private void setSlpTxData(chronik.Chronik.SlpTxData value) {
      value.getClass();
  slpTxData_ = value;

      }
    /**
     * <code>.chronik.SlpTxData slp_tx_data = 1;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeSlpTxData(chronik.Chronik.SlpTxData value) {
      value.getClass();
  if (slpTxData_ != null &&
          slpTxData_ != chronik.Chronik.SlpTxData.getDefaultInstance()) {
        slpTxData_ =
          chronik.Chronik.SlpTxData.newBuilder(slpTxData_).mergeFrom(value).buildPartial();
      } else {
        slpTxData_ = value;
      }

    }
    /**
     * <code>.chronik.SlpTxData slp_tx_data = 1;</code>
     */
    private void clearSlpTxData() {  slpTxData_ = null;

    }

    public static final int TOKEN_STATS_FIELD_NUMBER = 2;
    private chronik.Chronik.TokenStats tokenStats_;
    /**
     * <code>.chronik.TokenStats token_stats = 2;</code>
     */
    @java.lang.Override
    public boolean hasTokenStats() {
      return tokenStats_ != null;
    }
    /**
     * <code>.chronik.TokenStats token_stats = 2;</code>
     */
    @java.lang.Override
    public chronik.Chronik.TokenStats getTokenStats() {
      return tokenStats_ == null ? chronik.Chronik.TokenStats.getDefaultInstance() : tokenStats_;
    }
    /**
     * <code>.chronik.TokenStats token_stats = 2;</code>
     */
    private void setTokenStats(chronik.Chronik.TokenStats value) {
      value.getClass();
  tokenStats_ = value;

      }
    /**
     * <code>.chronik.TokenStats token_stats = 2;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeTokenStats(chronik.Chronik.TokenStats value) {
      value.getClass();
  if (tokenStats_ != null &&
          tokenStats_ != chronik.Chronik.TokenStats.getDefaultInstance()) {
        tokenStats_ =
          chronik.Chronik.TokenStats.newBuilder(tokenStats_).mergeFrom(value).buildPartial();
      } else {
        tokenStats_ = value;
      }

    }
    /**
     * <code>.chronik.TokenStats token_stats = 2;</code>
     */
    private void clearTokenStats() {  tokenStats_ = null;

    }

    public static final int BLOCK_FIELD_NUMBER = 3;
    private chronik.Chronik.BlockMetadata block_;
    /**
     * <code>.chronik.BlockMetadata block = 3;</code>
     */
    @java.lang.Override
    public boolean hasBlock() {
      return block_ != null;
    }
    /**
     * <code>.chronik.BlockMetadata block = 3;</code>
     */
    @java.lang.Override
    public chronik.Chronik.BlockMetadata getBlock() {
      return block_ == null ? chronik.Chronik.BlockMetadata.getDefaultInstance() : block_;
    }
    /**
     * <code>.chronik.BlockMetadata block = 3;</code>
     */
    private void setBlock(chronik.Chronik.BlockMetadata value) {
      value.getClass();
  block_ = value;

      }
    /**
     * <code>.chronik.BlockMetadata block = 3;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeBlock(chronik.Chronik.BlockMetadata value) {
      value.getClass();
  if (block_ != null &&
          block_ != chronik.Chronik.BlockMetadata.getDefaultInstance()) {
        block_ =
          chronik.Chronik.BlockMetadata.newBuilder(block_).mergeFrom(value).buildPartial();
      } else {
        block_ = value;
      }

    }
    /**
     * <code>.chronik.BlockMetadata block = 3;</code>
     */
    private void clearBlock() {  block_ = null;

    }

    public static final int TIME_FIRST_SEEN_FIELD_NUMBER = 4;
    private long timeFirstSeen_;
    /**
     * <code>int64 time_first_seen = 4;</code>
     * @return The timeFirstSeen.
     */
    @java.lang.Override
    public long getTimeFirstSeen() {
      return timeFirstSeen_;
    }
    /**
     * <code>int64 time_first_seen = 4;</code>
     * @param value The timeFirstSeen to set.
     */
    private void setTimeFirstSeen(long value) {
      
      timeFirstSeen_ = value;
    }
    /**
     * <code>int64 time_first_seen = 4;</code>
     */
    private void clearTimeFirstSeen() {

      timeFirstSeen_ = 0L;
    }

    public static final int INITIAL_TOKEN_QUANTITY_FIELD_NUMBER = 5;
    private long initialTokenQuantity_;
    /**
     * <code>uint64 initial_token_quantity = 5;</code>
     * @return The initialTokenQuantity.
     */
    @java.lang.Override
    public long getInitialTokenQuantity() {
      return initialTokenQuantity_;
    }
    /**
     * <code>uint64 initial_token_quantity = 5;</code>
     * @param value The initialTokenQuantity to set.
     */
    private void setInitialTokenQuantity(long value) {
      
      initialTokenQuantity_ = value;
    }
    /**
     * <code>uint64 initial_token_quantity = 5;</code>
     */
    private void clearInitialTokenQuantity() {

      initialTokenQuantity_ = 0L;
    }

    public static final int CONTAINS_BATON_FIELD_NUMBER = 6;
    private boolean containsBaton_;
    /**
     * <code>bool contains_baton = 6;</code>
     * @return The containsBaton.
     */
    @java.lang.Override
    public boolean getContainsBaton() {
      return containsBaton_;
    }
    /**
     * <code>bool contains_baton = 6;</code>
     * @param value The containsBaton to set.
     */
    private void setContainsBaton(boolean value) {
      
      containsBaton_ = value;
    }
    /**
     * <code>bool contains_baton = 6;</code>
     */
    private void clearContainsBaton() {

      containsBaton_ = false;
    }

    public static final int NETWORK_FIELD_NUMBER = 7;
    private int network_;
    /**
     * <code>.chronik.Network network = 7;</code>
     * @return The enum numeric value on the wire for network.
     */
    @java.lang.Override
    public int getNetworkValue() {
      return network_;
    }
    /**
     * <code>.chronik.Network network = 7;</code>
     * @return The network.
     */
    @java.lang.Override
    public chronik.Chronik.Network getNetwork() {
      chronik.Chronik.Network result = chronik.Chronik.Network.forNumber(network_);
      return result == null ? chronik.Chronik.Network.UNRECOGNIZED : result;
    }
    /**
     * <code>.chronik.Network network = 7;</code>
     * @param value The enum numeric value on the wire for network to set.
     */
    private void setNetworkValue(int value) {
        network_ = value;
    }
    /**
     * <code>.chronik.Network network = 7;</code>
     * @param value The network to set.
     */
    private void setNetwork(chronik.Chronik.Network value) {
      network_ = value.getNumber();

    }
    /**
     * <code>.chronik.Network network = 7;</code>
     */
    private void clearNetwork() {

      network_ = 0;
    }

    public static chronik.Chronik.Token parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.Token parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.Token parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.Token parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.Token parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.Token parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.Token parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.Token parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.Token parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.Token parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.Token parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.Token parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(chronik.Chronik.Token prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code chronik.Token}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          chronik.Chronik.Token, Builder> implements
        // @@protoc_insertion_point(builder_implements:chronik.Token)
        chronik.Chronik.TokenOrBuilder {
      // Construct using chronik.Chronik.Token.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>.chronik.SlpTxData slp_tx_data = 1;</code>
       */
      @java.lang.Override
      public boolean hasSlpTxData() {
        return instance.hasSlpTxData();
      }
      /**
       * <code>.chronik.SlpTxData slp_tx_data = 1;</code>
       */
      @java.lang.Override
      public chronik.Chronik.SlpTxData getSlpTxData() {
        return instance.getSlpTxData();
      }
      /**
       * <code>.chronik.SlpTxData slp_tx_data = 1;</code>
       */
      public Builder setSlpTxData(chronik.Chronik.SlpTxData value) {
        copyOnWrite();
        instance.setSlpTxData(value);
        return this;
        }
      /**
       * <code>.chronik.SlpTxData slp_tx_data = 1;</code>
       */
      public Builder setSlpTxData(
          chronik.Chronik.SlpTxData.Builder builderForValue) {
        copyOnWrite();
        instance.setSlpTxData(builderForValue.build());
        return this;
      }
      /**
       * <code>.chronik.SlpTxData slp_tx_data = 1;</code>
       */
      public Builder mergeSlpTxData(chronik.Chronik.SlpTxData value) {
        copyOnWrite();
        instance.mergeSlpTxData(value);
        return this;
      }
      /**
       * <code>.chronik.SlpTxData slp_tx_data = 1;</code>
       */
      public Builder clearSlpTxData() {  copyOnWrite();
        instance.clearSlpTxData();
        return this;
      }

      /**
       * <code>.chronik.TokenStats token_stats = 2;</code>
       */
      @java.lang.Override
      public boolean hasTokenStats() {
        return instance.hasTokenStats();
      }
      /**
       * <code>.chronik.TokenStats token_stats = 2;</code>
       */
      @java.lang.Override
      public chronik.Chronik.TokenStats getTokenStats() {
        return instance.getTokenStats();
      }
      /**
       * <code>.chronik.TokenStats token_stats = 2;</code>
       */
      public Builder setTokenStats(chronik.Chronik.TokenStats value) {
        copyOnWrite();
        instance.setTokenStats(value);
        return this;
        }
      /**
       * <code>.chronik.TokenStats token_stats = 2;</code>
       */
      public Builder setTokenStats(
          chronik.Chronik.TokenStats.Builder builderForValue) {
        copyOnWrite();
        instance.setTokenStats(builderForValue.build());
        return this;
      }
      /**
       * <code>.chronik.TokenStats token_stats = 2;</code>
       */
      public Builder mergeTokenStats(chronik.Chronik.TokenStats value) {
        copyOnWrite();
        instance.mergeTokenStats(value);
        return this;
      }
      /**
       * <code>.chronik.TokenStats token_stats = 2;</code>
       */
      public Builder clearTokenStats() {  copyOnWrite();
        instance.clearTokenStats();
        return this;
      }

      /**
       * <code>.chronik.BlockMetadata block = 3;</code>
       */
      @java.lang.Override
      public boolean hasBlock() {
        return instance.hasBlock();
      }
      /**
       * <code>.chronik.BlockMetadata block = 3;</code>
       */
      @java.lang.Override
      public chronik.Chronik.BlockMetadata getBlock() {
        return instance.getBlock();
      }
      /**
       * <code>.chronik.BlockMetadata block = 3;</code>
       */
      public Builder setBlock(chronik.Chronik.BlockMetadata value) {
        copyOnWrite();
        instance.setBlock(value);
        return this;
        }
      /**
       * <code>.chronik.BlockMetadata block = 3;</code>
       */
      public Builder setBlock(
          chronik.Chronik.BlockMetadata.Builder builderForValue) {
        copyOnWrite();
        instance.setBlock(builderForValue.build());
        return this;
      }
      /**
       * <code>.chronik.BlockMetadata block = 3;</code>
       */
      public Builder mergeBlock(chronik.Chronik.BlockMetadata value) {
        copyOnWrite();
        instance.mergeBlock(value);
        return this;
      }
      /**
       * <code>.chronik.BlockMetadata block = 3;</code>
       */
      public Builder clearBlock() {  copyOnWrite();
        instance.clearBlock();
        return this;
      }

      /**
       * <code>int64 time_first_seen = 4;</code>
       * @return The timeFirstSeen.
       */
      @java.lang.Override
      public long getTimeFirstSeen() {
        return instance.getTimeFirstSeen();
      }
      /**
       * <code>int64 time_first_seen = 4;</code>
       * @param value The timeFirstSeen to set.
       * @return This builder for chaining.
       */
      public Builder setTimeFirstSeen(long value) {
        copyOnWrite();
        instance.setTimeFirstSeen(value);
        return this;
      }
      /**
       * <code>int64 time_first_seen = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearTimeFirstSeen() {
        copyOnWrite();
        instance.clearTimeFirstSeen();
        return this;
      }

      /**
       * <code>uint64 initial_token_quantity = 5;</code>
       * @return The initialTokenQuantity.
       */
      @java.lang.Override
      public long getInitialTokenQuantity() {
        return instance.getInitialTokenQuantity();
      }
      /**
       * <code>uint64 initial_token_quantity = 5;</code>
       * @param value The initialTokenQuantity to set.
       * @return This builder for chaining.
       */
      public Builder setInitialTokenQuantity(long value) {
        copyOnWrite();
        instance.setInitialTokenQuantity(value);
        return this;
      }
      /**
       * <code>uint64 initial_token_quantity = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearInitialTokenQuantity() {
        copyOnWrite();
        instance.clearInitialTokenQuantity();
        return this;
      }

      /**
       * <code>bool contains_baton = 6;</code>
       * @return The containsBaton.
       */
      @java.lang.Override
      public boolean getContainsBaton() {
        return instance.getContainsBaton();
      }
      /**
       * <code>bool contains_baton = 6;</code>
       * @param value The containsBaton to set.
       * @return This builder for chaining.
       */
      public Builder setContainsBaton(boolean value) {
        copyOnWrite();
        instance.setContainsBaton(value);
        return this;
      }
      /**
       * <code>bool contains_baton = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearContainsBaton() {
        copyOnWrite();
        instance.clearContainsBaton();
        return this;
      }

      /**
       * <code>.chronik.Network network = 7;</code>
       * @return The enum numeric value on the wire for network.
       */
      @java.lang.Override
      public int getNetworkValue() {
        return instance.getNetworkValue();
      }
      /**
       * <code>.chronik.Network network = 7;</code>
       * @param value The network to set.
       * @return This builder for chaining.
       */
      public Builder setNetworkValue(int value) {
        copyOnWrite();
        instance.setNetworkValue(value);
        return this;
      }
      /**
       * <code>.chronik.Network network = 7;</code>
       * @return The network.
       */
      @java.lang.Override
      public chronik.Chronik.Network getNetwork() {
        return instance.getNetwork();
      }
      /**
       * <code>.chronik.Network network = 7;</code>
       * @param value The enum numeric value on the wire for network to set.
       * @return This builder for chaining.
       */
      public Builder setNetwork(chronik.Chronik.Network value) {
        copyOnWrite();
        instance.setNetwork(value);
        return this;
      }
      /**
       * <code>.chronik.Network network = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearNetwork() {
        copyOnWrite();
        instance.clearNetwork();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:chronik.Token)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new chronik.Chronik.Token();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "slpTxData_",
              "tokenStats_",
              "block_",
              "timeFirstSeen_",
              "initialTokenQuantity_",
              "containsBaton_",
              "network_",
            };
            java.lang.String info =
                "\u0000\u0007\u0000\u0000\u0001\u0007\u0007\u0000\u0000\u0000\u0001\t\u0002\t\u0003" +
                "\t\u0004\u0002\u0005\u0003\u0006\u0007\u0007\f";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<chronik.Chronik.Token> parser = PARSER;
          if (parser == null) {
            synchronized (chronik.Chronik.Token.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<chronik.Chronik.Token>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:chronik.Token)
    private static final chronik.Chronik.Token DEFAULT_INSTANCE;
    static {
      Token defaultInstance = new Token();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        Token.class, defaultInstance);
    }

    public static chronik.Chronik.Token getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<Token> PARSER;

    public static com.google.protobuf.Parser<Token> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface BlockInfoOrBuilder extends
      // @@protoc_insertion_point(interface_extends:chronik.BlockInfo)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>bytes hash = 1;</code>
     * @return The hash.
     */
    com.google.protobuf.ByteString getHash();

    /**
     * <code>bytes prev_hash = 2;</code>
     * @return The prevHash.
     */
    com.google.protobuf.ByteString getPrevHash();

    /**
     * <code>int32 height = 3;</code>
     * @return The height.
     */
    int getHeight();

    /**
     * <code>uint32 n_bits = 4;</code>
     * @return The nBits.
     */
    int getNBits();

    /**
     * <code>int64 timestamp = 5;</code>
     * @return The timestamp.
     */
    long getTimestamp();

    /**
     * <pre>
     * Block size of this block in bytes (including headers etc.)
     * </pre>
     *
     * <code>uint64 block_size = 6;</code>
     * @return The blockSize.
     */
    long getBlockSize();

    /**
     * <pre>
     * Number of txs in this block
     * </pre>
     *
     * <code>uint64 num_txs = 7;</code>
     * @return The numTxs.
     */
    long getNumTxs();

    /**
     * <pre>
     * Total number of tx inputs in block (including coinbase)
     * </pre>
     *
     * <code>uint64 num_inputs = 8;</code>
     * @return The numInputs.
     */
    long getNumInputs();

    /**
     * <pre>
     * Total number of tx output in block (including coinbase)
     * </pre>
     *
     * <code>uint64 num_outputs = 9;</code>
     * @return The numOutputs.
     */
    long getNumOutputs();

    /**
     * <pre>
     * Total number of satoshis spent by tx inputs
     * </pre>
     *
     * <code>int64 sum_input_sats = 10;</code>
     * @return The sumInputSats.
     */
    long getSumInputSats();

    /**
     * <pre>
     * Block reward for this block
     * </pre>
     *
     * <code>int64 sum_coinbase_output_sats = 11;</code>
     * @return The sumCoinbaseOutputSats.
     */
    long getSumCoinbaseOutputSats();

    /**
     * <pre>
     * Total number of satoshis in non-coinbase tx outputs
     * </pre>
     *
     * <code>int64 sum_normal_output_sats = 12;</code>
     * @return The sumNormalOutputSats.
     */
    long getSumNormalOutputSats();

    /**
     * <pre>
     * Total number of satoshis burned using OP_RETURN
     * </pre>
     *
     * <code>int64 sum_burned_sats = 13;</code>
     * @return The sumBurnedSats.
     */
    long getSumBurnedSats();
  }
  /**
   * Protobuf type {@code chronik.BlockInfo}
   */
  public  static final class BlockInfo extends
      com.google.protobuf.GeneratedMessageLite<
          BlockInfo, BlockInfo.Builder> implements
      // @@protoc_insertion_point(message_implements:chronik.BlockInfo)
      BlockInfoOrBuilder {
    private BlockInfo() {
      hash_ = com.google.protobuf.ByteString.EMPTY;
      prevHash_ = com.google.protobuf.ByteString.EMPTY;
    }
    public static final int HASH_FIELD_NUMBER = 1;
    private com.google.protobuf.ByteString hash_;
    /**
     * <code>bytes hash = 1;</code>
     * @return The hash.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getHash() {
      return hash_;
    }
    /**
     * <code>bytes hash = 1;</code>
     * @param value The hash to set.
     */
    private void setHash(com.google.protobuf.ByteString value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      hash_ = value;
    }
    /**
     * <code>bytes hash = 1;</code>
     */
    private void clearHash() {

      hash_ = getDefaultInstance().getHash();
    }

    public static final int PREV_HASH_FIELD_NUMBER = 2;
    private com.google.protobuf.ByteString prevHash_;
    /**
     * <code>bytes prev_hash = 2;</code>
     * @return The prevHash.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getPrevHash() {
      return prevHash_;
    }
    /**
     * <code>bytes prev_hash = 2;</code>
     * @param value The prevHash to set.
     */
    private void setPrevHash(com.google.protobuf.ByteString value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      prevHash_ = value;
    }
    /**
     * <code>bytes prev_hash = 2;</code>
     */
    private void clearPrevHash() {

      prevHash_ = getDefaultInstance().getPrevHash();
    }

    public static final int HEIGHT_FIELD_NUMBER = 3;
    private int height_;
    /**
     * <code>int32 height = 3;</code>
     * @return The height.
     */
    @java.lang.Override
    public int getHeight() {
      return height_;
    }
    /**
     * <code>int32 height = 3;</code>
     * @param value The height to set.
     */
    private void setHeight(int value) {
      
      height_ = value;
    }
    /**
     * <code>int32 height = 3;</code>
     */
    private void clearHeight() {

      height_ = 0;
    }

    public static final int N_BITS_FIELD_NUMBER = 4;
    private int nBits_;
    /**
     * <code>uint32 n_bits = 4;</code>
     * @return The nBits.
     */
    @java.lang.Override
    public int getNBits() {
      return nBits_;
    }
    /**
     * <code>uint32 n_bits = 4;</code>
     * @param value The nBits to set.
     */
    private void setNBits(int value) {
      
      nBits_ = value;
    }
    /**
     * <code>uint32 n_bits = 4;</code>
     */
    private void clearNBits() {

      nBits_ = 0;
    }

    public static final int TIMESTAMP_FIELD_NUMBER = 5;
    private long timestamp_;
    /**
     * <code>int64 timestamp = 5;</code>
     * @return The timestamp.
     */
    @java.lang.Override
    public long getTimestamp() {
      return timestamp_;
    }
    /**
     * <code>int64 timestamp = 5;</code>
     * @param value The timestamp to set.
     */
    private void setTimestamp(long value) {
      
      timestamp_ = value;
    }
    /**
     * <code>int64 timestamp = 5;</code>
     */
    private void clearTimestamp() {

      timestamp_ = 0L;
    }

    public static final int BLOCK_SIZE_FIELD_NUMBER = 6;
    private long blockSize_;
    /**
     * <pre>
     * Block size of this block in bytes (including headers etc.)
     * </pre>
     *
     * <code>uint64 block_size = 6;</code>
     * @return The blockSize.
     */
    @java.lang.Override
    public long getBlockSize() {
      return blockSize_;
    }
    /**
     * <pre>
     * Block size of this block in bytes (including headers etc.)
     * </pre>
     *
     * <code>uint64 block_size = 6;</code>
     * @param value The blockSize to set.
     */
    private void setBlockSize(long value) {
      
      blockSize_ = value;
    }
    /**
     * <pre>
     * Block size of this block in bytes (including headers etc.)
     * </pre>
     *
     * <code>uint64 block_size = 6;</code>
     */
    private void clearBlockSize() {

      blockSize_ = 0L;
    }

    public static final int NUM_TXS_FIELD_NUMBER = 7;
    private long numTxs_;
    /**
     * <pre>
     * Number of txs in this block
     * </pre>
     *
     * <code>uint64 num_txs = 7;</code>
     * @return The numTxs.
     */
    @java.lang.Override
    public long getNumTxs() {
      return numTxs_;
    }
    /**
     * <pre>
     * Number of txs in this block
     * </pre>
     *
     * <code>uint64 num_txs = 7;</code>
     * @param value The numTxs to set.
     */
    private void setNumTxs(long value) {
      
      numTxs_ = value;
    }
    /**
     * <pre>
     * Number of txs in this block
     * </pre>
     *
     * <code>uint64 num_txs = 7;</code>
     */
    private void clearNumTxs() {

      numTxs_ = 0L;
    }

    public static final int NUM_INPUTS_FIELD_NUMBER = 8;
    private long numInputs_;
    /**
     * <pre>
     * Total number of tx inputs in block (including coinbase)
     * </pre>
     *
     * <code>uint64 num_inputs = 8;</code>
     * @return The numInputs.
     */
    @java.lang.Override
    public long getNumInputs() {
      return numInputs_;
    }
    /**
     * <pre>
     * Total number of tx inputs in block (including coinbase)
     * </pre>
     *
     * <code>uint64 num_inputs = 8;</code>
     * @param value The numInputs to set.
     */
    private void setNumInputs(long value) {
      
      numInputs_ = value;
    }
    /**
     * <pre>
     * Total number of tx inputs in block (including coinbase)
     * </pre>
     *
     * <code>uint64 num_inputs = 8;</code>
     */
    private void clearNumInputs() {

      numInputs_ = 0L;
    }

    public static final int NUM_OUTPUTS_FIELD_NUMBER = 9;
    private long numOutputs_;
    /**
     * <pre>
     * Total number of tx output in block (including coinbase)
     * </pre>
     *
     * <code>uint64 num_outputs = 9;</code>
     * @return The numOutputs.
     */
    @java.lang.Override
    public long getNumOutputs() {
      return numOutputs_;
    }
    /**
     * <pre>
     * Total number of tx output in block (including coinbase)
     * </pre>
     *
     * <code>uint64 num_outputs = 9;</code>
     * @param value The numOutputs to set.
     */
    private void setNumOutputs(long value) {
      
      numOutputs_ = value;
    }
    /**
     * <pre>
     * Total number of tx output in block (including coinbase)
     * </pre>
     *
     * <code>uint64 num_outputs = 9;</code>
     */
    private void clearNumOutputs() {

      numOutputs_ = 0L;
    }

    public static final int SUM_INPUT_SATS_FIELD_NUMBER = 10;
    private long sumInputSats_;
    /**
     * <pre>
     * Total number of satoshis spent by tx inputs
     * </pre>
     *
     * <code>int64 sum_input_sats = 10;</code>
     * @return The sumInputSats.
     */
    @java.lang.Override
    public long getSumInputSats() {
      return sumInputSats_;
    }
    /**
     * <pre>
     * Total number of satoshis spent by tx inputs
     * </pre>
     *
     * <code>int64 sum_input_sats = 10;</code>
     * @param value The sumInputSats to set.
     */
    private void setSumInputSats(long value) {
      
      sumInputSats_ = value;
    }
    /**
     * <pre>
     * Total number of satoshis spent by tx inputs
     * </pre>
     *
     * <code>int64 sum_input_sats = 10;</code>
     */
    private void clearSumInputSats() {

      sumInputSats_ = 0L;
    }

    public static final int SUM_COINBASE_OUTPUT_SATS_FIELD_NUMBER = 11;
    private long sumCoinbaseOutputSats_;
    /**
     * <pre>
     * Block reward for this block
     * </pre>
     *
     * <code>int64 sum_coinbase_output_sats = 11;</code>
     * @return The sumCoinbaseOutputSats.
     */
    @java.lang.Override
    public long getSumCoinbaseOutputSats() {
      return sumCoinbaseOutputSats_;
    }
    /**
     * <pre>
     * Block reward for this block
     * </pre>
     *
     * <code>int64 sum_coinbase_output_sats = 11;</code>
     * @param value The sumCoinbaseOutputSats to set.
     */
    private void setSumCoinbaseOutputSats(long value) {
      
      sumCoinbaseOutputSats_ = value;
    }
    /**
     * <pre>
     * Block reward for this block
     * </pre>
     *
     * <code>int64 sum_coinbase_output_sats = 11;</code>
     */
    private void clearSumCoinbaseOutputSats() {

      sumCoinbaseOutputSats_ = 0L;
    }

    public static final int SUM_NORMAL_OUTPUT_SATS_FIELD_NUMBER = 12;
    private long sumNormalOutputSats_;
    /**
     * <pre>
     * Total number of satoshis in non-coinbase tx outputs
     * </pre>
     *
     * <code>int64 sum_normal_output_sats = 12;</code>
     * @return The sumNormalOutputSats.
     */
    @java.lang.Override
    public long getSumNormalOutputSats() {
      return sumNormalOutputSats_;
    }
    /**
     * <pre>
     * Total number of satoshis in non-coinbase tx outputs
     * </pre>
     *
     * <code>int64 sum_normal_output_sats = 12;</code>
     * @param value The sumNormalOutputSats to set.
     */
    private void setSumNormalOutputSats(long value) {
      
      sumNormalOutputSats_ = value;
    }
    /**
     * <pre>
     * Total number of satoshis in non-coinbase tx outputs
     * </pre>
     *
     * <code>int64 sum_normal_output_sats = 12;</code>
     */
    private void clearSumNormalOutputSats() {

      sumNormalOutputSats_ = 0L;
    }

    public static final int SUM_BURNED_SATS_FIELD_NUMBER = 13;
    private long sumBurnedSats_;
    /**
     * <pre>
     * Total number of satoshis burned using OP_RETURN
     * </pre>
     *
     * <code>int64 sum_burned_sats = 13;</code>
     * @return The sumBurnedSats.
     */
    @java.lang.Override
    public long getSumBurnedSats() {
      return sumBurnedSats_;
    }
    /**
     * <pre>
     * Total number of satoshis burned using OP_RETURN
     * </pre>
     *
     * <code>int64 sum_burned_sats = 13;</code>
     * @param value The sumBurnedSats to set.
     */
    private void setSumBurnedSats(long value) {
      
      sumBurnedSats_ = value;
    }
    /**
     * <pre>
     * Total number of satoshis burned using OP_RETURN
     * </pre>
     *
     * <code>int64 sum_burned_sats = 13;</code>
     */
    private void clearSumBurnedSats() {

      sumBurnedSats_ = 0L;
    }

    public static chronik.Chronik.BlockInfo parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.BlockInfo parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.BlockInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.BlockInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.BlockInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.BlockInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.BlockInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.BlockInfo parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.BlockInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.BlockInfo parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.BlockInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.BlockInfo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(chronik.Chronik.BlockInfo prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code chronik.BlockInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          chronik.Chronik.BlockInfo, Builder> implements
        // @@protoc_insertion_point(builder_implements:chronik.BlockInfo)
        chronik.Chronik.BlockInfoOrBuilder {
      // Construct using chronik.Chronik.BlockInfo.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>bytes hash = 1;</code>
       * @return The hash.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getHash() {
        return instance.getHash();
      }
      /**
       * <code>bytes hash = 1;</code>
       * @param value The hash to set.
       * @return This builder for chaining.
       */
      public Builder setHash(com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setHash(value);
        return this;
      }
      /**
       * <code>bytes hash = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearHash() {
        copyOnWrite();
        instance.clearHash();
        return this;
      }

      /**
       * <code>bytes prev_hash = 2;</code>
       * @return The prevHash.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getPrevHash() {
        return instance.getPrevHash();
      }
      /**
       * <code>bytes prev_hash = 2;</code>
       * @param value The prevHash to set.
       * @return This builder for chaining.
       */
      public Builder setPrevHash(com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setPrevHash(value);
        return this;
      }
      /**
       * <code>bytes prev_hash = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearPrevHash() {
        copyOnWrite();
        instance.clearPrevHash();
        return this;
      }

      /**
       * <code>int32 height = 3;</code>
       * @return The height.
       */
      @java.lang.Override
      public int getHeight() {
        return instance.getHeight();
      }
      /**
       * <code>int32 height = 3;</code>
       * @param value The height to set.
       * @return This builder for chaining.
       */
      public Builder setHeight(int value) {
        copyOnWrite();
        instance.setHeight(value);
        return this;
      }
      /**
       * <code>int32 height = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearHeight() {
        copyOnWrite();
        instance.clearHeight();
        return this;
      }

      /**
       * <code>uint32 n_bits = 4;</code>
       * @return The nBits.
       */
      @java.lang.Override
      public int getNBits() {
        return instance.getNBits();
      }
      /**
       * <code>uint32 n_bits = 4;</code>
       * @param value The nBits to set.
       * @return This builder for chaining.
       */
      public Builder setNBits(int value) {
        copyOnWrite();
        instance.setNBits(value);
        return this;
      }
      /**
       * <code>uint32 n_bits = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearNBits() {
        copyOnWrite();
        instance.clearNBits();
        return this;
      }

      /**
       * <code>int64 timestamp = 5;</code>
       * @return The timestamp.
       */
      @java.lang.Override
      public long getTimestamp() {
        return instance.getTimestamp();
      }
      /**
       * <code>int64 timestamp = 5;</code>
       * @param value The timestamp to set.
       * @return This builder for chaining.
       */
      public Builder setTimestamp(long value) {
        copyOnWrite();
        instance.setTimestamp(value);
        return this;
      }
      /**
       * <code>int64 timestamp = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearTimestamp() {
        copyOnWrite();
        instance.clearTimestamp();
        return this;
      }

      /**
       * <pre>
       * Block size of this block in bytes (including headers etc.)
       * </pre>
       *
       * <code>uint64 block_size = 6;</code>
       * @return The blockSize.
       */
      @java.lang.Override
      public long getBlockSize() {
        return instance.getBlockSize();
      }
      /**
       * <pre>
       * Block size of this block in bytes (including headers etc.)
       * </pre>
       *
       * <code>uint64 block_size = 6;</code>
       * @param value The blockSize to set.
       * @return This builder for chaining.
       */
      public Builder setBlockSize(long value) {
        copyOnWrite();
        instance.setBlockSize(value);
        return this;
      }
      /**
       * <pre>
       * Block size of this block in bytes (including headers etc.)
       * </pre>
       *
       * <code>uint64 block_size = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearBlockSize() {
        copyOnWrite();
        instance.clearBlockSize();
        return this;
      }

      /**
       * <pre>
       * Number of txs in this block
       * </pre>
       *
       * <code>uint64 num_txs = 7;</code>
       * @return The numTxs.
       */
      @java.lang.Override
      public long getNumTxs() {
        return instance.getNumTxs();
      }
      /**
       * <pre>
       * Number of txs in this block
       * </pre>
       *
       * <code>uint64 num_txs = 7;</code>
       * @param value The numTxs to set.
       * @return This builder for chaining.
       */
      public Builder setNumTxs(long value) {
        copyOnWrite();
        instance.setNumTxs(value);
        return this;
      }
      /**
       * <pre>
       * Number of txs in this block
       * </pre>
       *
       * <code>uint64 num_txs = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearNumTxs() {
        copyOnWrite();
        instance.clearNumTxs();
        return this;
      }

      /**
       * <pre>
       * Total number of tx inputs in block (including coinbase)
       * </pre>
       *
       * <code>uint64 num_inputs = 8;</code>
       * @return The numInputs.
       */
      @java.lang.Override
      public long getNumInputs() {
        return instance.getNumInputs();
      }
      /**
       * <pre>
       * Total number of tx inputs in block (including coinbase)
       * </pre>
       *
       * <code>uint64 num_inputs = 8;</code>
       * @param value The numInputs to set.
       * @return This builder for chaining.
       */
      public Builder setNumInputs(long value) {
        copyOnWrite();
        instance.setNumInputs(value);
        return this;
      }
      /**
       * <pre>
       * Total number of tx inputs in block (including coinbase)
       * </pre>
       *
       * <code>uint64 num_inputs = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearNumInputs() {
        copyOnWrite();
        instance.clearNumInputs();
        return this;
      }

      /**
       * <pre>
       * Total number of tx output in block (including coinbase)
       * </pre>
       *
       * <code>uint64 num_outputs = 9;</code>
       * @return The numOutputs.
       */
      @java.lang.Override
      public long getNumOutputs() {
        return instance.getNumOutputs();
      }
      /**
       * <pre>
       * Total number of tx output in block (including coinbase)
       * </pre>
       *
       * <code>uint64 num_outputs = 9;</code>
       * @param value The numOutputs to set.
       * @return This builder for chaining.
       */
      public Builder setNumOutputs(long value) {
        copyOnWrite();
        instance.setNumOutputs(value);
        return this;
      }
      /**
       * <pre>
       * Total number of tx output in block (including coinbase)
       * </pre>
       *
       * <code>uint64 num_outputs = 9;</code>
       * @return This builder for chaining.
       */
      public Builder clearNumOutputs() {
        copyOnWrite();
        instance.clearNumOutputs();
        return this;
      }

      /**
       * <pre>
       * Total number of satoshis spent by tx inputs
       * </pre>
       *
       * <code>int64 sum_input_sats = 10;</code>
       * @return The sumInputSats.
       */
      @java.lang.Override
      public long getSumInputSats() {
        return instance.getSumInputSats();
      }
      /**
       * <pre>
       * Total number of satoshis spent by tx inputs
       * </pre>
       *
       * <code>int64 sum_input_sats = 10;</code>
       * @param value The sumInputSats to set.
       * @return This builder for chaining.
       */
      public Builder setSumInputSats(long value) {
        copyOnWrite();
        instance.setSumInputSats(value);
        return this;
      }
      /**
       * <pre>
       * Total number of satoshis spent by tx inputs
       * </pre>
       *
       * <code>int64 sum_input_sats = 10;</code>
       * @return This builder for chaining.
       */
      public Builder clearSumInputSats() {
        copyOnWrite();
        instance.clearSumInputSats();
        return this;
      }

      /**
       * <pre>
       * Block reward for this block
       * </pre>
       *
       * <code>int64 sum_coinbase_output_sats = 11;</code>
       * @return The sumCoinbaseOutputSats.
       */
      @java.lang.Override
      public long getSumCoinbaseOutputSats() {
        return instance.getSumCoinbaseOutputSats();
      }
      /**
       * <pre>
       * Block reward for this block
       * </pre>
       *
       * <code>int64 sum_coinbase_output_sats = 11;</code>
       * @param value The sumCoinbaseOutputSats to set.
       * @return This builder for chaining.
       */
      public Builder setSumCoinbaseOutputSats(long value) {
        copyOnWrite();
        instance.setSumCoinbaseOutputSats(value);
        return this;
      }
      /**
       * <pre>
       * Block reward for this block
       * </pre>
       *
       * <code>int64 sum_coinbase_output_sats = 11;</code>
       * @return This builder for chaining.
       */
      public Builder clearSumCoinbaseOutputSats() {
        copyOnWrite();
        instance.clearSumCoinbaseOutputSats();
        return this;
      }

      /**
       * <pre>
       * Total number of satoshis in non-coinbase tx outputs
       * </pre>
       *
       * <code>int64 sum_normal_output_sats = 12;</code>
       * @return The sumNormalOutputSats.
       */
      @java.lang.Override
      public long getSumNormalOutputSats() {
        return instance.getSumNormalOutputSats();
      }
      /**
       * <pre>
       * Total number of satoshis in non-coinbase tx outputs
       * </pre>
       *
       * <code>int64 sum_normal_output_sats = 12;</code>
       * @param value The sumNormalOutputSats to set.
       * @return This builder for chaining.
       */
      public Builder setSumNormalOutputSats(long value) {
        copyOnWrite();
        instance.setSumNormalOutputSats(value);
        return this;
      }
      /**
       * <pre>
       * Total number of satoshis in non-coinbase tx outputs
       * </pre>
       *
       * <code>int64 sum_normal_output_sats = 12;</code>
       * @return This builder for chaining.
       */
      public Builder clearSumNormalOutputSats() {
        copyOnWrite();
        instance.clearSumNormalOutputSats();
        return this;
      }

      /**
       * <pre>
       * Total number of satoshis burned using OP_RETURN
       * </pre>
       *
       * <code>int64 sum_burned_sats = 13;</code>
       * @return The sumBurnedSats.
       */
      @java.lang.Override
      public long getSumBurnedSats() {
        return instance.getSumBurnedSats();
      }
      /**
       * <pre>
       * Total number of satoshis burned using OP_RETURN
       * </pre>
       *
       * <code>int64 sum_burned_sats = 13;</code>
       * @param value The sumBurnedSats to set.
       * @return This builder for chaining.
       */
      public Builder setSumBurnedSats(long value) {
        copyOnWrite();
        instance.setSumBurnedSats(value);
        return this;
      }
      /**
       * <pre>
       * Total number of satoshis burned using OP_RETURN
       * </pre>
       *
       * <code>int64 sum_burned_sats = 13;</code>
       * @return This builder for chaining.
       */
      public Builder clearSumBurnedSats() {
        copyOnWrite();
        instance.clearSumBurnedSats();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:chronik.BlockInfo)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new chronik.Chronik.BlockInfo();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "hash_",
              "prevHash_",
              "height_",
              "nBits_",
              "timestamp_",
              "blockSize_",
              "numTxs_",
              "numInputs_",
              "numOutputs_",
              "sumInputSats_",
              "sumCoinbaseOutputSats_",
              "sumNormalOutputSats_",
              "sumBurnedSats_",
            };
            java.lang.String info =
                "\u0000\r\u0000\u0000\u0001\r\r\u0000\u0000\u0000\u0001\n\u0002\n\u0003\u0004\u0004" +
                "\u000b\u0005\u0002\u0006\u0003\u0007\u0003\b\u0003\t\u0003\n\u0002\u000b\u0002\f" +
                "\u0002\r\u0002";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<chronik.Chronik.BlockInfo> parser = PARSER;
          if (parser == null) {
            synchronized (chronik.Chronik.BlockInfo.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<chronik.Chronik.BlockInfo>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:chronik.BlockInfo)
    private static final chronik.Chronik.BlockInfo DEFAULT_INSTANCE;
    static {
      BlockInfo defaultInstance = new BlockInfo();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        BlockInfo.class, defaultInstance);
    }

    public static chronik.Chronik.BlockInfo getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<BlockInfo> PARSER;

    public static com.google.protobuf.Parser<BlockInfo> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface BlockDetailsOrBuilder extends
      // @@protoc_insertion_point(interface_extends:chronik.BlockDetails)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>int32 version = 1;</code>
     * @return The version.
     */
    int getVersion();

    /**
     * <code>bytes merkle_root = 2;</code>
     * @return The merkleRoot.
     */
    com.google.protobuf.ByteString getMerkleRoot();

    /**
     * <code>uint64 nonce = 3;</code>
     * @return The nonce.
     */
    long getNonce();

    /**
     * <code>int64 median_timestamp = 4;</code>
     * @return The medianTimestamp.
     */
    long getMedianTimestamp();
  }
  /**
   * Protobuf type {@code chronik.BlockDetails}
   */
  public  static final class BlockDetails extends
      com.google.protobuf.GeneratedMessageLite<
          BlockDetails, BlockDetails.Builder> implements
      // @@protoc_insertion_point(message_implements:chronik.BlockDetails)
      BlockDetailsOrBuilder {
    private BlockDetails() {
      merkleRoot_ = com.google.protobuf.ByteString.EMPTY;
    }
    public static final int VERSION_FIELD_NUMBER = 1;
    private int version_;
    /**
     * <code>int32 version = 1;</code>
     * @return The version.
     */
    @java.lang.Override
    public int getVersion() {
      return version_;
    }
    /**
     * <code>int32 version = 1;</code>
     * @param value The version to set.
     */
    private void setVersion(int value) {
      
      version_ = value;
    }
    /**
     * <code>int32 version = 1;</code>
     */
    private void clearVersion() {

      version_ = 0;
    }

    public static final int MERKLE_ROOT_FIELD_NUMBER = 2;
    private com.google.protobuf.ByteString merkleRoot_;
    /**
     * <code>bytes merkle_root = 2;</code>
     * @return The merkleRoot.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getMerkleRoot() {
      return merkleRoot_;
    }
    /**
     * <code>bytes merkle_root = 2;</code>
     * @param value The merkleRoot to set.
     */
    private void setMerkleRoot(com.google.protobuf.ByteString value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      merkleRoot_ = value;
    }
    /**
     * <code>bytes merkle_root = 2;</code>
     */
    private void clearMerkleRoot() {

      merkleRoot_ = getDefaultInstance().getMerkleRoot();
    }

    public static final int NONCE_FIELD_NUMBER = 3;
    private long nonce_;
    /**
     * <code>uint64 nonce = 3;</code>
     * @return The nonce.
     */
    @java.lang.Override
    public long getNonce() {
      return nonce_;
    }
    /**
     * <code>uint64 nonce = 3;</code>
     * @param value The nonce to set.
     */
    private void setNonce(long value) {
      
      nonce_ = value;
    }
    /**
     * <code>uint64 nonce = 3;</code>
     */
    private void clearNonce() {

      nonce_ = 0L;
    }

    public static final int MEDIAN_TIMESTAMP_FIELD_NUMBER = 4;
    private long medianTimestamp_;
    /**
     * <code>int64 median_timestamp = 4;</code>
     * @return The medianTimestamp.
     */
    @java.lang.Override
    public long getMedianTimestamp() {
      return medianTimestamp_;
    }
    /**
     * <code>int64 median_timestamp = 4;</code>
     * @param value The medianTimestamp to set.
     */
    private void setMedianTimestamp(long value) {
      
      medianTimestamp_ = value;
    }
    /**
     * <code>int64 median_timestamp = 4;</code>
     */
    private void clearMedianTimestamp() {

      medianTimestamp_ = 0L;
    }

    public static chronik.Chronik.BlockDetails parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.BlockDetails parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.BlockDetails parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.BlockDetails parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.BlockDetails parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.BlockDetails parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.BlockDetails parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.BlockDetails parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.BlockDetails parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.BlockDetails parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.BlockDetails parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.BlockDetails parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(chronik.Chronik.BlockDetails prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code chronik.BlockDetails}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          chronik.Chronik.BlockDetails, Builder> implements
        // @@protoc_insertion_point(builder_implements:chronik.BlockDetails)
        chronik.Chronik.BlockDetailsOrBuilder {
      // Construct using chronik.Chronik.BlockDetails.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>int32 version = 1;</code>
       * @return The version.
       */
      @java.lang.Override
      public int getVersion() {
        return instance.getVersion();
      }
      /**
       * <code>int32 version = 1;</code>
       * @param value The version to set.
       * @return This builder for chaining.
       */
      public Builder setVersion(int value) {
        copyOnWrite();
        instance.setVersion(value);
        return this;
      }
      /**
       * <code>int32 version = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearVersion() {
        copyOnWrite();
        instance.clearVersion();
        return this;
      }

      /**
       * <code>bytes merkle_root = 2;</code>
       * @return The merkleRoot.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getMerkleRoot() {
        return instance.getMerkleRoot();
      }
      /**
       * <code>bytes merkle_root = 2;</code>
       * @param value The merkleRoot to set.
       * @return This builder for chaining.
       */
      public Builder setMerkleRoot(com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setMerkleRoot(value);
        return this;
      }
      /**
       * <code>bytes merkle_root = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearMerkleRoot() {
        copyOnWrite();
        instance.clearMerkleRoot();
        return this;
      }

      /**
       * <code>uint64 nonce = 3;</code>
       * @return The nonce.
       */
      @java.lang.Override
      public long getNonce() {
        return instance.getNonce();
      }
      /**
       * <code>uint64 nonce = 3;</code>
       * @param value The nonce to set.
       * @return This builder for chaining.
       */
      public Builder setNonce(long value) {
        copyOnWrite();
        instance.setNonce(value);
        return this;
      }
      /**
       * <code>uint64 nonce = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearNonce() {
        copyOnWrite();
        instance.clearNonce();
        return this;
      }

      /**
       * <code>int64 median_timestamp = 4;</code>
       * @return The medianTimestamp.
       */
      @java.lang.Override
      public long getMedianTimestamp() {
        return instance.getMedianTimestamp();
      }
      /**
       * <code>int64 median_timestamp = 4;</code>
       * @param value The medianTimestamp to set.
       * @return This builder for chaining.
       */
      public Builder setMedianTimestamp(long value) {
        copyOnWrite();
        instance.setMedianTimestamp(value);
        return this;
      }
      /**
       * <code>int64 median_timestamp = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearMedianTimestamp() {
        copyOnWrite();
        instance.clearMedianTimestamp();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:chronik.BlockDetails)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new chronik.Chronik.BlockDetails();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "version_",
              "merkleRoot_",
              "nonce_",
              "medianTimestamp_",
            };
            java.lang.String info =
                "\u0000\u0004\u0000\u0000\u0001\u0004\u0004\u0000\u0000\u0000\u0001\u0004\u0002\n" +
                "\u0003\u0003\u0004\u0002";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<chronik.Chronik.BlockDetails> parser = PARSER;
          if (parser == null) {
            synchronized (chronik.Chronik.BlockDetails.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<chronik.Chronik.BlockDetails>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:chronik.BlockDetails)
    private static final chronik.Chronik.BlockDetails DEFAULT_INSTANCE;
    static {
      BlockDetails defaultInstance = new BlockDetails();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        BlockDetails.class, defaultInstance);
    }

    public static chronik.Chronik.BlockDetails getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<BlockDetails> PARSER;

    public static com.google.protobuf.Parser<BlockDetails> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface BlockOrBuilder extends
      // @@protoc_insertion_point(interface_extends:chronik.Block)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>.chronik.BlockInfo block_info = 1;</code>
     * @return Whether the blockInfo field is set.
     */
    boolean hasBlockInfo();
    /**
     * <code>.chronik.BlockInfo block_info = 1;</code>
     * @return The blockInfo.
     */
    chronik.Chronik.BlockInfo getBlockInfo();

    /**
     * <code>.chronik.BlockDetails block_details = 3;</code>
     * @return Whether the blockDetails field is set.
     */
    boolean hasBlockDetails();
    /**
     * <code>.chronik.BlockDetails block_details = 3;</code>
     * @return The blockDetails.
     */
    chronik.Chronik.BlockDetails getBlockDetails();

    /**
     * <code>bytes raw_header = 4;</code>
     * @return The rawHeader.
     */
    com.google.protobuf.ByteString getRawHeader();

    /**
     * <code>repeated .chronik.Tx txs = 2;</code>
     */
    java.util.List<chronik.Chronik.Tx> 
        getTxsList();
    /**
     * <code>repeated .chronik.Tx txs = 2;</code>
     */
    chronik.Chronik.Tx getTxs(int index);
    /**
     * <code>repeated .chronik.Tx txs = 2;</code>
     */
    int getTxsCount();
  }
  /**
   * Protobuf type {@code chronik.Block}
   */
  public  static final class Block extends
      com.google.protobuf.GeneratedMessageLite<
          Block, Block.Builder> implements
      // @@protoc_insertion_point(message_implements:chronik.Block)
      BlockOrBuilder {
    private Block() {
      rawHeader_ = com.google.protobuf.ByteString.EMPTY;
      txs_ = emptyProtobufList();
    }
    public static final int BLOCK_INFO_FIELD_NUMBER = 1;
    private chronik.Chronik.BlockInfo blockInfo_;
    /**
     * <code>.chronik.BlockInfo block_info = 1;</code>
     */
    @java.lang.Override
    public boolean hasBlockInfo() {
      return blockInfo_ != null;
    }
    /**
     * <code>.chronik.BlockInfo block_info = 1;</code>
     */
    @java.lang.Override
    public chronik.Chronik.BlockInfo getBlockInfo() {
      return blockInfo_ == null ? chronik.Chronik.BlockInfo.getDefaultInstance() : blockInfo_;
    }
    /**
     * <code>.chronik.BlockInfo block_info = 1;</code>
     */
    private void setBlockInfo(chronik.Chronik.BlockInfo value) {
      value.getClass();
  blockInfo_ = value;

      }
    /**
     * <code>.chronik.BlockInfo block_info = 1;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeBlockInfo(chronik.Chronik.BlockInfo value) {
      value.getClass();
  if (blockInfo_ != null &&
          blockInfo_ != chronik.Chronik.BlockInfo.getDefaultInstance()) {
        blockInfo_ =
          chronik.Chronik.BlockInfo.newBuilder(blockInfo_).mergeFrom(value).buildPartial();
      } else {
        blockInfo_ = value;
      }

    }
    /**
     * <code>.chronik.BlockInfo block_info = 1;</code>
     */
    private void clearBlockInfo() {  blockInfo_ = null;

    }

    public static final int BLOCK_DETAILS_FIELD_NUMBER = 3;
    private chronik.Chronik.BlockDetails blockDetails_;
    /**
     * <code>.chronik.BlockDetails block_details = 3;</code>
     */
    @java.lang.Override
    public boolean hasBlockDetails() {
      return blockDetails_ != null;
    }
    /**
     * <code>.chronik.BlockDetails block_details = 3;</code>
     */
    @java.lang.Override
    public chronik.Chronik.BlockDetails getBlockDetails() {
      return blockDetails_ == null ? chronik.Chronik.BlockDetails.getDefaultInstance() : blockDetails_;
    }
    /**
     * <code>.chronik.BlockDetails block_details = 3;</code>
     */
    private void setBlockDetails(chronik.Chronik.BlockDetails value) {
      value.getClass();
  blockDetails_ = value;

      }
    /**
     * <code>.chronik.BlockDetails block_details = 3;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeBlockDetails(chronik.Chronik.BlockDetails value) {
      value.getClass();
  if (blockDetails_ != null &&
          blockDetails_ != chronik.Chronik.BlockDetails.getDefaultInstance()) {
        blockDetails_ =
          chronik.Chronik.BlockDetails.newBuilder(blockDetails_).mergeFrom(value).buildPartial();
      } else {
        blockDetails_ = value;
      }

    }
    /**
     * <code>.chronik.BlockDetails block_details = 3;</code>
     */
    private void clearBlockDetails() {  blockDetails_ = null;

    }

    public static final int RAW_HEADER_FIELD_NUMBER = 4;
    private com.google.protobuf.ByteString rawHeader_;
    /**
     * <code>bytes raw_header = 4;</code>
     * @return The rawHeader.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getRawHeader() {
      return rawHeader_;
    }
    /**
     * <code>bytes raw_header = 4;</code>
     * @param value The rawHeader to set.
     */
    private void setRawHeader(com.google.protobuf.ByteString value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      rawHeader_ = value;
    }
    /**
     * <code>bytes raw_header = 4;</code>
     */
    private void clearRawHeader() {

      rawHeader_ = getDefaultInstance().getRawHeader();
    }

    public static final int TXS_FIELD_NUMBER = 2;
    private com.google.protobuf.Internal.ProtobufList<chronik.Chronik.Tx> txs_;
    /**
     * <code>repeated .chronik.Tx txs = 2;</code>
     */
    @java.lang.Override
    public java.util.List<chronik.Chronik.Tx> getTxsList() {
      return txs_;
    }
    /**
     * <code>repeated .chronik.Tx txs = 2;</code>
     */
    public java.util.List<? extends chronik.Chronik.TxOrBuilder> 
        getTxsOrBuilderList() {
      return txs_;
    }
    /**
     * <code>repeated .chronik.Tx txs = 2;</code>
     */
    @java.lang.Override
    public int getTxsCount() {
      return txs_.size();
    }
    /**
     * <code>repeated .chronik.Tx txs = 2;</code>
     */
    @java.lang.Override
    public chronik.Chronik.Tx getTxs(int index) {
      return txs_.get(index);
    }
    /**
     * <code>repeated .chronik.Tx txs = 2;</code>
     */
    public chronik.Chronik.TxOrBuilder getTxsOrBuilder(
        int index) {
      return txs_.get(index);
    }
    private void ensureTxsIsMutable() {
      com.google.protobuf.Internal.ProtobufList<chronik.Chronik.Tx> tmp = txs_;
      if (!tmp.isModifiable()) {
        txs_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }

    /**
     * <code>repeated .chronik.Tx txs = 2;</code>
     */
    private void setTxs(
        int index, chronik.Chronik.Tx value) {
      value.getClass();
  ensureTxsIsMutable();
      txs_.set(index, value);
    }
    /**
     * <code>repeated .chronik.Tx txs = 2;</code>
     */
    private void addTxs(chronik.Chronik.Tx value) {
      value.getClass();
  ensureTxsIsMutable();
      txs_.add(value);
    }
    /**
     * <code>repeated .chronik.Tx txs = 2;</code>
     */
    private void addTxs(
        int index, chronik.Chronik.Tx value) {
      value.getClass();
  ensureTxsIsMutable();
      txs_.add(index, value);
    }
    /**
     * <code>repeated .chronik.Tx txs = 2;</code>
     */
    private void addAllTxs(
        java.lang.Iterable<? extends chronik.Chronik.Tx> values) {
      ensureTxsIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, txs_);
    }
    /**
     * <code>repeated .chronik.Tx txs = 2;</code>
     */
    private void clearTxs() {
      txs_ = emptyProtobufList();
    }
    /**
     * <code>repeated .chronik.Tx txs = 2;</code>
     */
    private void removeTxs(int index) {
      ensureTxsIsMutable();
      txs_.remove(index);
    }

    public static chronik.Chronik.Block parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.Block parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.Block parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.Block parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.Block parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.Block parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.Block parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.Block parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.Block parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.Block parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.Block parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.Block parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(chronik.Chronik.Block prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code chronik.Block}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          chronik.Chronik.Block, Builder> implements
        // @@protoc_insertion_point(builder_implements:chronik.Block)
        chronik.Chronik.BlockOrBuilder {
      // Construct using chronik.Chronik.Block.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>.chronik.BlockInfo block_info = 1;</code>
       */
      @java.lang.Override
      public boolean hasBlockInfo() {
        return instance.hasBlockInfo();
      }
      /**
       * <code>.chronik.BlockInfo block_info = 1;</code>
       */
      @java.lang.Override
      public chronik.Chronik.BlockInfo getBlockInfo() {
        return instance.getBlockInfo();
      }
      /**
       * <code>.chronik.BlockInfo block_info = 1;</code>
       */
      public Builder setBlockInfo(chronik.Chronik.BlockInfo value) {
        copyOnWrite();
        instance.setBlockInfo(value);
        return this;
        }
      /**
       * <code>.chronik.BlockInfo block_info = 1;</code>
       */
      public Builder setBlockInfo(
          chronik.Chronik.BlockInfo.Builder builderForValue) {
        copyOnWrite();
        instance.setBlockInfo(builderForValue.build());
        return this;
      }
      /**
       * <code>.chronik.BlockInfo block_info = 1;</code>
       */
      public Builder mergeBlockInfo(chronik.Chronik.BlockInfo value) {
        copyOnWrite();
        instance.mergeBlockInfo(value);
        return this;
      }
      /**
       * <code>.chronik.BlockInfo block_info = 1;</code>
       */
      public Builder clearBlockInfo() {  copyOnWrite();
        instance.clearBlockInfo();
        return this;
      }

      /**
       * <code>.chronik.BlockDetails block_details = 3;</code>
       */
      @java.lang.Override
      public boolean hasBlockDetails() {
        return instance.hasBlockDetails();
      }
      /**
       * <code>.chronik.BlockDetails block_details = 3;</code>
       */
      @java.lang.Override
      public chronik.Chronik.BlockDetails getBlockDetails() {
        return instance.getBlockDetails();
      }
      /**
       * <code>.chronik.BlockDetails block_details = 3;</code>
       */
      public Builder setBlockDetails(chronik.Chronik.BlockDetails value) {
        copyOnWrite();
        instance.setBlockDetails(value);
        return this;
        }
      /**
       * <code>.chronik.BlockDetails block_details = 3;</code>
       */
      public Builder setBlockDetails(
          chronik.Chronik.BlockDetails.Builder builderForValue) {
        copyOnWrite();
        instance.setBlockDetails(builderForValue.build());
        return this;
      }
      /**
       * <code>.chronik.BlockDetails block_details = 3;</code>
       */
      public Builder mergeBlockDetails(chronik.Chronik.BlockDetails value) {
        copyOnWrite();
        instance.mergeBlockDetails(value);
        return this;
      }
      /**
       * <code>.chronik.BlockDetails block_details = 3;</code>
       */
      public Builder clearBlockDetails() {  copyOnWrite();
        instance.clearBlockDetails();
        return this;
      }

      /**
       * <code>bytes raw_header = 4;</code>
       * @return The rawHeader.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getRawHeader() {
        return instance.getRawHeader();
      }
      /**
       * <code>bytes raw_header = 4;</code>
       * @param value The rawHeader to set.
       * @return This builder for chaining.
       */
      public Builder setRawHeader(com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setRawHeader(value);
        return this;
      }
      /**
       * <code>bytes raw_header = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearRawHeader() {
        copyOnWrite();
        instance.clearRawHeader();
        return this;
      }

      /**
       * <code>repeated .chronik.Tx txs = 2;</code>
       */
      @java.lang.Override
      public java.util.List<chronik.Chronik.Tx> getTxsList() {
        return java.util.Collections.unmodifiableList(
            instance.getTxsList());
      }
      /**
       * <code>repeated .chronik.Tx txs = 2;</code>
       */
      @java.lang.Override
      public int getTxsCount() {
        return instance.getTxsCount();
      }/**
       * <code>repeated .chronik.Tx txs = 2;</code>
       */
      @java.lang.Override
      public chronik.Chronik.Tx getTxs(int index) {
        return instance.getTxs(index);
      }
      /**
       * <code>repeated .chronik.Tx txs = 2;</code>
       */
      public Builder setTxs(
          int index, chronik.Chronik.Tx value) {
        copyOnWrite();
        instance.setTxs(index, value);
        return this;
      }
      /**
       * <code>repeated .chronik.Tx txs = 2;</code>
       */
      public Builder setTxs(
          int index, chronik.Chronik.Tx.Builder builderForValue) {
        copyOnWrite();
        instance.setTxs(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .chronik.Tx txs = 2;</code>
       */
      public Builder addTxs(chronik.Chronik.Tx value) {
        copyOnWrite();
        instance.addTxs(value);
        return this;
      }
      /**
       * <code>repeated .chronik.Tx txs = 2;</code>
       */
      public Builder addTxs(
          int index, chronik.Chronik.Tx value) {
        copyOnWrite();
        instance.addTxs(index, value);
        return this;
      }
      /**
       * <code>repeated .chronik.Tx txs = 2;</code>
       */
      public Builder addTxs(
          chronik.Chronik.Tx.Builder builderForValue) {
        copyOnWrite();
        instance.addTxs(builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .chronik.Tx txs = 2;</code>
       */
      public Builder addTxs(
          int index, chronik.Chronik.Tx.Builder builderForValue) {
        copyOnWrite();
        instance.addTxs(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .chronik.Tx txs = 2;</code>
       */
      public Builder addAllTxs(
          java.lang.Iterable<? extends chronik.Chronik.Tx> values) {
        copyOnWrite();
        instance.addAllTxs(values);
        return this;
      }
      /**
       * <code>repeated .chronik.Tx txs = 2;</code>
       */
      public Builder clearTxs() {
        copyOnWrite();
        instance.clearTxs();
        return this;
      }
      /**
       * <code>repeated .chronik.Tx txs = 2;</code>
       */
      public Builder removeTxs(int index) {
        copyOnWrite();
        instance.removeTxs(index);
        return this;
      }

      // @@protoc_insertion_point(builder_scope:chronik.Block)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new chronik.Chronik.Block();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "blockInfo_",
              "txs_",
              chronik.Chronik.Tx.class,
              "blockDetails_",
              "rawHeader_",
            };
            java.lang.String info =
                "\u0000\u0004\u0000\u0000\u0001\u0004\u0004\u0000\u0001\u0000\u0001\t\u0002\u001b" +
                "\u0003\t\u0004\n";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<chronik.Chronik.Block> parser = PARSER;
          if (parser == null) {
            synchronized (chronik.Chronik.Block.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<chronik.Chronik.Block>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:chronik.Block)
    private static final chronik.Chronik.Block DEFAULT_INSTANCE;
    static {
      Block defaultInstance = new Block();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        Block.class, defaultInstance);
    }

    public static chronik.Chronik.Block getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<Block> PARSER;

    public static com.google.protobuf.Parser<Block> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface ScriptUtxosOrBuilder extends
      // @@protoc_insertion_point(interface_extends:chronik.ScriptUtxos)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>bytes output_script = 1;</code>
     * @return The outputScript.
     */
    com.google.protobuf.ByteString getOutputScript();

    /**
     * <code>repeated .chronik.Utxo utxos = 2;</code>
     */
    java.util.List<chronik.Chronik.Utxo> 
        getUtxosList();
    /**
     * <code>repeated .chronik.Utxo utxos = 2;</code>
     */
    chronik.Chronik.Utxo getUtxos(int index);
    /**
     * <code>repeated .chronik.Utxo utxos = 2;</code>
     */
    int getUtxosCount();
  }
  /**
   * Protobuf type {@code chronik.ScriptUtxos}
   */
  public  static final class ScriptUtxos extends
      com.google.protobuf.GeneratedMessageLite<
          ScriptUtxos, ScriptUtxos.Builder> implements
      // @@protoc_insertion_point(message_implements:chronik.ScriptUtxos)
      ScriptUtxosOrBuilder {
    private ScriptUtxos() {
      outputScript_ = com.google.protobuf.ByteString.EMPTY;
      utxos_ = emptyProtobufList();
    }
    public static final int OUTPUT_SCRIPT_FIELD_NUMBER = 1;
    private com.google.protobuf.ByteString outputScript_;
    /**
     * <code>bytes output_script = 1;</code>
     * @return The outputScript.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getOutputScript() {
      return outputScript_;
    }
    /**
     * <code>bytes output_script = 1;</code>
     * @param value The outputScript to set.
     */
    private void setOutputScript(com.google.protobuf.ByteString value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      outputScript_ = value;
    }
    /**
     * <code>bytes output_script = 1;</code>
     */
    private void clearOutputScript() {

      outputScript_ = getDefaultInstance().getOutputScript();
    }

    public static final int UTXOS_FIELD_NUMBER = 2;
    private com.google.protobuf.Internal.ProtobufList<chronik.Chronik.Utxo> utxos_;
    /**
     * <code>repeated .chronik.Utxo utxos = 2;</code>
     */
    @java.lang.Override
    public java.util.List<chronik.Chronik.Utxo> getUtxosList() {
      return utxos_;
    }
    /**
     * <code>repeated .chronik.Utxo utxos = 2;</code>
     */
    public java.util.List<? extends chronik.Chronik.UtxoOrBuilder> 
        getUtxosOrBuilderList() {
      return utxos_;
    }
    /**
     * <code>repeated .chronik.Utxo utxos = 2;</code>
     */
    @java.lang.Override
    public int getUtxosCount() {
      return utxos_.size();
    }
    /**
     * <code>repeated .chronik.Utxo utxos = 2;</code>
     */
    @java.lang.Override
    public chronik.Chronik.Utxo getUtxos(int index) {
      return utxos_.get(index);
    }
    /**
     * <code>repeated .chronik.Utxo utxos = 2;</code>
     */
    public chronik.Chronik.UtxoOrBuilder getUtxosOrBuilder(
        int index) {
      return utxos_.get(index);
    }
    private void ensureUtxosIsMutable() {
      com.google.protobuf.Internal.ProtobufList<chronik.Chronik.Utxo> tmp = utxos_;
      if (!tmp.isModifiable()) {
        utxos_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }

    /**
     * <code>repeated .chronik.Utxo utxos = 2;</code>
     */
    private void setUtxos(
        int index, chronik.Chronik.Utxo value) {
      value.getClass();
  ensureUtxosIsMutable();
      utxos_.set(index, value);
    }
    /**
     * <code>repeated .chronik.Utxo utxos = 2;</code>
     */
    private void addUtxos(chronik.Chronik.Utxo value) {
      value.getClass();
  ensureUtxosIsMutable();
      utxos_.add(value);
    }
    /**
     * <code>repeated .chronik.Utxo utxos = 2;</code>
     */
    private void addUtxos(
        int index, chronik.Chronik.Utxo value) {
      value.getClass();
  ensureUtxosIsMutable();
      utxos_.add(index, value);
    }
    /**
     * <code>repeated .chronik.Utxo utxos = 2;</code>
     */
    private void addAllUtxos(
        java.lang.Iterable<? extends chronik.Chronik.Utxo> values) {
      ensureUtxosIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, utxos_);
    }
    /**
     * <code>repeated .chronik.Utxo utxos = 2;</code>
     */
    private void clearUtxos() {
      utxos_ = emptyProtobufList();
    }
    /**
     * <code>repeated .chronik.Utxo utxos = 2;</code>
     */
    private void removeUtxos(int index) {
      ensureUtxosIsMutable();
      utxos_.remove(index);
    }

    public static chronik.Chronik.ScriptUtxos parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.ScriptUtxos parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.ScriptUtxos parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.ScriptUtxos parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.ScriptUtxos parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.ScriptUtxos parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.ScriptUtxos parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.ScriptUtxos parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.ScriptUtxos parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.ScriptUtxos parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.ScriptUtxos parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.ScriptUtxos parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(chronik.Chronik.ScriptUtxos prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code chronik.ScriptUtxos}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          chronik.Chronik.ScriptUtxos, Builder> implements
        // @@protoc_insertion_point(builder_implements:chronik.ScriptUtxos)
        chronik.Chronik.ScriptUtxosOrBuilder {
      // Construct using chronik.Chronik.ScriptUtxos.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>bytes output_script = 1;</code>
       * @return The outputScript.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getOutputScript() {
        return instance.getOutputScript();
      }
      /**
       * <code>bytes output_script = 1;</code>
       * @param value The outputScript to set.
       * @return This builder for chaining.
       */
      public Builder setOutputScript(com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setOutputScript(value);
        return this;
      }
      /**
       * <code>bytes output_script = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearOutputScript() {
        copyOnWrite();
        instance.clearOutputScript();
        return this;
      }

      /**
       * <code>repeated .chronik.Utxo utxos = 2;</code>
       */
      @java.lang.Override
      public java.util.List<chronik.Chronik.Utxo> getUtxosList() {
        return java.util.Collections.unmodifiableList(
            instance.getUtxosList());
      }
      /**
       * <code>repeated .chronik.Utxo utxos = 2;</code>
       */
      @java.lang.Override
      public int getUtxosCount() {
        return instance.getUtxosCount();
      }/**
       * <code>repeated .chronik.Utxo utxos = 2;</code>
       */
      @java.lang.Override
      public chronik.Chronik.Utxo getUtxos(int index) {
        return instance.getUtxos(index);
      }
      /**
       * <code>repeated .chronik.Utxo utxos = 2;</code>
       */
      public Builder setUtxos(
          int index, chronik.Chronik.Utxo value) {
        copyOnWrite();
        instance.setUtxos(index, value);
        return this;
      }
      /**
       * <code>repeated .chronik.Utxo utxos = 2;</code>
       */
      public Builder setUtxos(
          int index, chronik.Chronik.Utxo.Builder builderForValue) {
        copyOnWrite();
        instance.setUtxos(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .chronik.Utxo utxos = 2;</code>
       */
      public Builder addUtxos(chronik.Chronik.Utxo value) {
        copyOnWrite();
        instance.addUtxos(value);
        return this;
      }
      /**
       * <code>repeated .chronik.Utxo utxos = 2;</code>
       */
      public Builder addUtxos(
          int index, chronik.Chronik.Utxo value) {
        copyOnWrite();
        instance.addUtxos(index, value);
        return this;
      }
      /**
       * <code>repeated .chronik.Utxo utxos = 2;</code>
       */
      public Builder addUtxos(
          chronik.Chronik.Utxo.Builder builderForValue) {
        copyOnWrite();
        instance.addUtxos(builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .chronik.Utxo utxos = 2;</code>
       */
      public Builder addUtxos(
          int index, chronik.Chronik.Utxo.Builder builderForValue) {
        copyOnWrite();
        instance.addUtxos(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .chronik.Utxo utxos = 2;</code>
       */
      public Builder addAllUtxos(
          java.lang.Iterable<? extends chronik.Chronik.Utxo> values) {
        copyOnWrite();
        instance.addAllUtxos(values);
        return this;
      }
      /**
       * <code>repeated .chronik.Utxo utxos = 2;</code>
       */
      public Builder clearUtxos() {
        copyOnWrite();
        instance.clearUtxos();
        return this;
      }
      /**
       * <code>repeated .chronik.Utxo utxos = 2;</code>
       */
      public Builder removeUtxos(int index) {
        copyOnWrite();
        instance.removeUtxos(index);
        return this;
      }

      // @@protoc_insertion_point(builder_scope:chronik.ScriptUtxos)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new chronik.Chronik.ScriptUtxos();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "outputScript_",
              "utxos_",
              chronik.Chronik.Utxo.class,
            };
            java.lang.String info =
                "\u0000\u0002\u0000\u0000\u0001\u0002\u0002\u0000\u0001\u0000\u0001\n\u0002\u001b" +
                "";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<chronik.Chronik.ScriptUtxos> parser = PARSER;
          if (parser == null) {
            synchronized (chronik.Chronik.ScriptUtxos.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<chronik.Chronik.ScriptUtxos>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:chronik.ScriptUtxos)
    private static final chronik.Chronik.ScriptUtxos DEFAULT_INSTANCE;
    static {
      ScriptUtxos defaultInstance = new ScriptUtxos();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        ScriptUtxos.class, defaultInstance);
    }

    public static chronik.Chronik.ScriptUtxos getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<ScriptUtxos> PARSER;

    public static com.google.protobuf.Parser<ScriptUtxos> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface TxHistoryPageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:chronik.TxHistoryPage)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>repeated .chronik.Tx txs = 1;</code>
     */
    java.util.List<chronik.Chronik.Tx> 
        getTxsList();
    /**
     * <code>repeated .chronik.Tx txs = 1;</code>
     */
    chronik.Chronik.Tx getTxs(int index);
    /**
     * <code>repeated .chronik.Tx txs = 1;</code>
     */
    int getTxsCount();

    /**
     * <code>uint32 num_pages = 2;</code>
     * @return The numPages.
     */
    int getNumPages();
  }
  /**
   * Protobuf type {@code chronik.TxHistoryPage}
   */
  public  static final class TxHistoryPage extends
      com.google.protobuf.GeneratedMessageLite<
          TxHistoryPage, TxHistoryPage.Builder> implements
      // @@protoc_insertion_point(message_implements:chronik.TxHistoryPage)
      TxHistoryPageOrBuilder {
    private TxHistoryPage() {
      txs_ = emptyProtobufList();
    }
    public static final int TXS_FIELD_NUMBER = 1;
    private com.google.protobuf.Internal.ProtobufList<chronik.Chronik.Tx> txs_;
    /**
     * <code>repeated .chronik.Tx txs = 1;</code>
     */
    @java.lang.Override
    public java.util.List<chronik.Chronik.Tx> getTxsList() {
      return txs_;
    }
    /**
     * <code>repeated .chronik.Tx txs = 1;</code>
     */
    public java.util.List<? extends chronik.Chronik.TxOrBuilder> 
        getTxsOrBuilderList() {
      return txs_;
    }
    /**
     * <code>repeated .chronik.Tx txs = 1;</code>
     */
    @java.lang.Override
    public int getTxsCount() {
      return txs_.size();
    }
    /**
     * <code>repeated .chronik.Tx txs = 1;</code>
     */
    @java.lang.Override
    public chronik.Chronik.Tx getTxs(int index) {
      return txs_.get(index);
    }
    /**
     * <code>repeated .chronik.Tx txs = 1;</code>
     */
    public chronik.Chronik.TxOrBuilder getTxsOrBuilder(
        int index) {
      return txs_.get(index);
    }
    private void ensureTxsIsMutable() {
      com.google.protobuf.Internal.ProtobufList<chronik.Chronik.Tx> tmp = txs_;
      if (!tmp.isModifiable()) {
        txs_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }

    /**
     * <code>repeated .chronik.Tx txs = 1;</code>
     */
    private void setTxs(
        int index, chronik.Chronik.Tx value) {
      value.getClass();
  ensureTxsIsMutable();
      txs_.set(index, value);
    }
    /**
     * <code>repeated .chronik.Tx txs = 1;</code>
     */
    private void addTxs(chronik.Chronik.Tx value) {
      value.getClass();
  ensureTxsIsMutable();
      txs_.add(value);
    }
    /**
     * <code>repeated .chronik.Tx txs = 1;</code>
     */
    private void addTxs(
        int index, chronik.Chronik.Tx value) {
      value.getClass();
  ensureTxsIsMutable();
      txs_.add(index, value);
    }
    /**
     * <code>repeated .chronik.Tx txs = 1;</code>
     */
    private void addAllTxs(
        java.lang.Iterable<? extends chronik.Chronik.Tx> values) {
      ensureTxsIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, txs_);
    }
    /**
     * <code>repeated .chronik.Tx txs = 1;</code>
     */
    private void clearTxs() {
      txs_ = emptyProtobufList();
    }
    /**
     * <code>repeated .chronik.Tx txs = 1;</code>
     */
    private void removeTxs(int index) {
      ensureTxsIsMutable();
      txs_.remove(index);
    }

    public static final int NUM_PAGES_FIELD_NUMBER = 2;
    private int numPages_;
    /**
     * <code>uint32 num_pages = 2;</code>
     * @return The numPages.
     */
    @java.lang.Override
    public int getNumPages() {
      return numPages_;
    }
    /**
     * <code>uint32 num_pages = 2;</code>
     * @param value The numPages to set.
     */
    private void setNumPages(int value) {
      
      numPages_ = value;
    }
    /**
     * <code>uint32 num_pages = 2;</code>
     */
    private void clearNumPages() {

      numPages_ = 0;
    }

    public static chronik.Chronik.TxHistoryPage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.TxHistoryPage parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.TxHistoryPage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.TxHistoryPage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.TxHistoryPage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.TxHistoryPage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.TxHistoryPage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.TxHistoryPage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.TxHistoryPage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.TxHistoryPage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.TxHistoryPage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.TxHistoryPage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(chronik.Chronik.TxHistoryPage prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code chronik.TxHistoryPage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          chronik.Chronik.TxHistoryPage, Builder> implements
        // @@protoc_insertion_point(builder_implements:chronik.TxHistoryPage)
        chronik.Chronik.TxHistoryPageOrBuilder {
      // Construct using chronik.Chronik.TxHistoryPage.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>repeated .chronik.Tx txs = 1;</code>
       */
      @java.lang.Override
      public java.util.List<chronik.Chronik.Tx> getTxsList() {
        return java.util.Collections.unmodifiableList(
            instance.getTxsList());
      }
      /**
       * <code>repeated .chronik.Tx txs = 1;</code>
       */
      @java.lang.Override
      public int getTxsCount() {
        return instance.getTxsCount();
      }/**
       * <code>repeated .chronik.Tx txs = 1;</code>
       */
      @java.lang.Override
      public chronik.Chronik.Tx getTxs(int index) {
        return instance.getTxs(index);
      }
      /**
       * <code>repeated .chronik.Tx txs = 1;</code>
       */
      public Builder setTxs(
          int index, chronik.Chronik.Tx value) {
        copyOnWrite();
        instance.setTxs(index, value);
        return this;
      }
      /**
       * <code>repeated .chronik.Tx txs = 1;</code>
       */
      public Builder setTxs(
          int index, chronik.Chronik.Tx.Builder builderForValue) {
        copyOnWrite();
        instance.setTxs(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .chronik.Tx txs = 1;</code>
       */
      public Builder addTxs(chronik.Chronik.Tx value) {
        copyOnWrite();
        instance.addTxs(value);
        return this;
      }
      /**
       * <code>repeated .chronik.Tx txs = 1;</code>
       */
      public Builder addTxs(
          int index, chronik.Chronik.Tx value) {
        copyOnWrite();
        instance.addTxs(index, value);
        return this;
      }
      /**
       * <code>repeated .chronik.Tx txs = 1;</code>
       */
      public Builder addTxs(
          chronik.Chronik.Tx.Builder builderForValue) {
        copyOnWrite();
        instance.addTxs(builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .chronik.Tx txs = 1;</code>
       */
      public Builder addTxs(
          int index, chronik.Chronik.Tx.Builder builderForValue) {
        copyOnWrite();
        instance.addTxs(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .chronik.Tx txs = 1;</code>
       */
      public Builder addAllTxs(
          java.lang.Iterable<? extends chronik.Chronik.Tx> values) {
        copyOnWrite();
        instance.addAllTxs(values);
        return this;
      }
      /**
       * <code>repeated .chronik.Tx txs = 1;</code>
       */
      public Builder clearTxs() {
        copyOnWrite();
        instance.clearTxs();
        return this;
      }
      /**
       * <code>repeated .chronik.Tx txs = 1;</code>
       */
      public Builder removeTxs(int index) {
        copyOnWrite();
        instance.removeTxs(index);
        return this;
      }

      /**
       * <code>uint32 num_pages = 2;</code>
       * @return The numPages.
       */
      @java.lang.Override
      public int getNumPages() {
        return instance.getNumPages();
      }
      /**
       * <code>uint32 num_pages = 2;</code>
       * @param value The numPages to set.
       * @return This builder for chaining.
       */
      public Builder setNumPages(int value) {
        copyOnWrite();
        instance.setNumPages(value);
        return this;
      }
      /**
       * <code>uint32 num_pages = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearNumPages() {
        copyOnWrite();
        instance.clearNumPages();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:chronik.TxHistoryPage)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new chronik.Chronik.TxHistoryPage();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "txs_",
              chronik.Chronik.Tx.class,
              "numPages_",
            };
            java.lang.String info =
                "\u0000\u0002\u0000\u0000\u0001\u0002\u0002\u0000\u0001\u0000\u0001\u001b\u0002\u000b" +
                "";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<chronik.Chronik.TxHistoryPage> parser = PARSER;
          if (parser == null) {
            synchronized (chronik.Chronik.TxHistoryPage.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<chronik.Chronik.TxHistoryPage>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:chronik.TxHistoryPage)
    private static final chronik.Chronik.TxHistoryPage DEFAULT_INSTANCE;
    static {
      TxHistoryPage defaultInstance = new TxHistoryPage();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        TxHistoryPage.class, defaultInstance);
    }

    public static chronik.Chronik.TxHistoryPage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<TxHistoryPage> PARSER;

    public static com.google.protobuf.Parser<TxHistoryPage> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface UtxosOrBuilder extends
      // @@protoc_insertion_point(interface_extends:chronik.Utxos)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>repeated .chronik.ScriptUtxos script_utxos = 1;</code>
     */
    java.util.List<chronik.Chronik.ScriptUtxos> 
        getScriptUtxosList();
    /**
     * <code>repeated .chronik.ScriptUtxos script_utxos = 1;</code>
     */
    chronik.Chronik.ScriptUtxos getScriptUtxos(int index);
    /**
     * <code>repeated .chronik.ScriptUtxos script_utxos = 1;</code>
     */
    int getScriptUtxosCount();
  }
  /**
   * Protobuf type {@code chronik.Utxos}
   */
  public  static final class Utxos extends
      com.google.protobuf.GeneratedMessageLite<
          Utxos, Utxos.Builder> implements
      // @@protoc_insertion_point(message_implements:chronik.Utxos)
      UtxosOrBuilder {
    private Utxos() {
      scriptUtxos_ = emptyProtobufList();
    }
    public static final int SCRIPT_UTXOS_FIELD_NUMBER = 1;
    private com.google.protobuf.Internal.ProtobufList<chronik.Chronik.ScriptUtxos> scriptUtxos_;
    /**
     * <code>repeated .chronik.ScriptUtxos script_utxos = 1;</code>
     */
    @java.lang.Override
    public java.util.List<chronik.Chronik.ScriptUtxos> getScriptUtxosList() {
      return scriptUtxos_;
    }
    /**
     * <code>repeated .chronik.ScriptUtxos script_utxos = 1;</code>
     */
    public java.util.List<? extends chronik.Chronik.ScriptUtxosOrBuilder> 
        getScriptUtxosOrBuilderList() {
      return scriptUtxos_;
    }
    /**
     * <code>repeated .chronik.ScriptUtxos script_utxos = 1;</code>
     */
    @java.lang.Override
    public int getScriptUtxosCount() {
      return scriptUtxos_.size();
    }
    /**
     * <code>repeated .chronik.ScriptUtxos script_utxos = 1;</code>
     */
    @java.lang.Override
    public chronik.Chronik.ScriptUtxos getScriptUtxos(int index) {
      return scriptUtxos_.get(index);
    }
    /**
     * <code>repeated .chronik.ScriptUtxos script_utxos = 1;</code>
     */
    public chronik.Chronik.ScriptUtxosOrBuilder getScriptUtxosOrBuilder(
        int index) {
      return scriptUtxos_.get(index);
    }
    private void ensureScriptUtxosIsMutable() {
      com.google.protobuf.Internal.ProtobufList<chronik.Chronik.ScriptUtxos> tmp = scriptUtxos_;
      if (!tmp.isModifiable()) {
        scriptUtxos_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }

    /**
     * <code>repeated .chronik.ScriptUtxos script_utxos = 1;</code>
     */
    private void setScriptUtxos(
        int index, chronik.Chronik.ScriptUtxos value) {
      value.getClass();
  ensureScriptUtxosIsMutable();
      scriptUtxos_.set(index, value);
    }
    /**
     * <code>repeated .chronik.ScriptUtxos script_utxos = 1;</code>
     */
    private void addScriptUtxos(chronik.Chronik.ScriptUtxos value) {
      value.getClass();
  ensureScriptUtxosIsMutable();
      scriptUtxos_.add(value);
    }
    /**
     * <code>repeated .chronik.ScriptUtxos script_utxos = 1;</code>
     */
    private void addScriptUtxos(
        int index, chronik.Chronik.ScriptUtxos value) {
      value.getClass();
  ensureScriptUtxosIsMutable();
      scriptUtxos_.add(index, value);
    }
    /**
     * <code>repeated .chronik.ScriptUtxos script_utxos = 1;</code>
     */
    private void addAllScriptUtxos(
        java.lang.Iterable<? extends chronik.Chronik.ScriptUtxos> values) {
      ensureScriptUtxosIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, scriptUtxos_);
    }
    /**
     * <code>repeated .chronik.ScriptUtxos script_utxos = 1;</code>
     */
    private void clearScriptUtxos() {
      scriptUtxos_ = emptyProtobufList();
    }
    /**
     * <code>repeated .chronik.ScriptUtxos script_utxos = 1;</code>
     */
    private void removeScriptUtxos(int index) {
      ensureScriptUtxosIsMutable();
      scriptUtxos_.remove(index);
    }

    public static chronik.Chronik.Utxos parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.Utxos parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.Utxos parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.Utxos parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.Utxos parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.Utxos parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.Utxos parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.Utxos parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.Utxos parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.Utxos parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.Utxos parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.Utxos parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(chronik.Chronik.Utxos prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code chronik.Utxos}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          chronik.Chronik.Utxos, Builder> implements
        // @@protoc_insertion_point(builder_implements:chronik.Utxos)
        chronik.Chronik.UtxosOrBuilder {
      // Construct using chronik.Chronik.Utxos.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>repeated .chronik.ScriptUtxos script_utxos = 1;</code>
       */
      @java.lang.Override
      public java.util.List<chronik.Chronik.ScriptUtxos> getScriptUtxosList() {
        return java.util.Collections.unmodifiableList(
            instance.getScriptUtxosList());
      }
      /**
       * <code>repeated .chronik.ScriptUtxos script_utxos = 1;</code>
       */
      @java.lang.Override
      public int getScriptUtxosCount() {
        return instance.getScriptUtxosCount();
      }/**
       * <code>repeated .chronik.ScriptUtxos script_utxos = 1;</code>
       */
      @java.lang.Override
      public chronik.Chronik.ScriptUtxos getScriptUtxos(int index) {
        return instance.getScriptUtxos(index);
      }
      /**
       * <code>repeated .chronik.ScriptUtxos script_utxos = 1;</code>
       */
      public Builder setScriptUtxos(
          int index, chronik.Chronik.ScriptUtxos value) {
        copyOnWrite();
        instance.setScriptUtxos(index, value);
        return this;
      }
      /**
       * <code>repeated .chronik.ScriptUtxos script_utxos = 1;</code>
       */
      public Builder setScriptUtxos(
          int index, chronik.Chronik.ScriptUtxos.Builder builderForValue) {
        copyOnWrite();
        instance.setScriptUtxos(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .chronik.ScriptUtxos script_utxos = 1;</code>
       */
      public Builder addScriptUtxos(chronik.Chronik.ScriptUtxos value) {
        copyOnWrite();
        instance.addScriptUtxos(value);
        return this;
      }
      /**
       * <code>repeated .chronik.ScriptUtxos script_utxos = 1;</code>
       */
      public Builder addScriptUtxos(
          int index, chronik.Chronik.ScriptUtxos value) {
        copyOnWrite();
        instance.addScriptUtxos(index, value);
        return this;
      }
      /**
       * <code>repeated .chronik.ScriptUtxos script_utxos = 1;</code>
       */
      public Builder addScriptUtxos(
          chronik.Chronik.ScriptUtxos.Builder builderForValue) {
        copyOnWrite();
        instance.addScriptUtxos(builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .chronik.ScriptUtxos script_utxos = 1;</code>
       */
      public Builder addScriptUtxos(
          int index, chronik.Chronik.ScriptUtxos.Builder builderForValue) {
        copyOnWrite();
        instance.addScriptUtxos(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .chronik.ScriptUtxos script_utxos = 1;</code>
       */
      public Builder addAllScriptUtxos(
          java.lang.Iterable<? extends chronik.Chronik.ScriptUtxos> values) {
        copyOnWrite();
        instance.addAllScriptUtxos(values);
        return this;
      }
      /**
       * <code>repeated .chronik.ScriptUtxos script_utxos = 1;</code>
       */
      public Builder clearScriptUtxos() {
        copyOnWrite();
        instance.clearScriptUtxos();
        return this;
      }
      /**
       * <code>repeated .chronik.ScriptUtxos script_utxos = 1;</code>
       */
      public Builder removeScriptUtxos(int index) {
        copyOnWrite();
        instance.removeScriptUtxos(index);
        return this;
      }

      // @@protoc_insertion_point(builder_scope:chronik.Utxos)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new chronik.Chronik.Utxos();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "scriptUtxos_",
              chronik.Chronik.ScriptUtxos.class,
            };
            java.lang.String info =
                "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0001\u0000\u0001\u001b";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<chronik.Chronik.Utxos> parser = PARSER;
          if (parser == null) {
            synchronized (chronik.Chronik.Utxos.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<chronik.Chronik.Utxos>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:chronik.Utxos)
    private static final chronik.Chronik.Utxos DEFAULT_INSTANCE;
    static {
      Utxos defaultInstance = new Utxos();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        Utxos.class, defaultInstance);
    }

    public static chronik.Chronik.Utxos getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<Utxos> PARSER;

    public static com.google.protobuf.Parser<Utxos> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface BlocksOrBuilder extends
      // @@protoc_insertion_point(interface_extends:chronik.Blocks)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>repeated .chronik.BlockInfo blocks = 1;</code>
     */
    java.util.List<chronik.Chronik.BlockInfo> 
        getBlocksList();
    /**
     * <code>repeated .chronik.BlockInfo blocks = 1;</code>
     */
    chronik.Chronik.BlockInfo getBlocks(int index);
    /**
     * <code>repeated .chronik.BlockInfo blocks = 1;</code>
     */
    int getBlocksCount();
  }
  /**
   * Protobuf type {@code chronik.Blocks}
   */
  public  static final class Blocks extends
      com.google.protobuf.GeneratedMessageLite<
          Blocks, Blocks.Builder> implements
      // @@protoc_insertion_point(message_implements:chronik.Blocks)
      BlocksOrBuilder {
    private Blocks() {
      blocks_ = emptyProtobufList();
    }
    public static final int BLOCKS_FIELD_NUMBER = 1;
    private com.google.protobuf.Internal.ProtobufList<chronik.Chronik.BlockInfo> blocks_;
    /**
     * <code>repeated .chronik.BlockInfo blocks = 1;</code>
     */
    @java.lang.Override
    public java.util.List<chronik.Chronik.BlockInfo> getBlocksList() {
      return blocks_;
    }
    /**
     * <code>repeated .chronik.BlockInfo blocks = 1;</code>
     */
    public java.util.List<? extends chronik.Chronik.BlockInfoOrBuilder> 
        getBlocksOrBuilderList() {
      return blocks_;
    }
    /**
     * <code>repeated .chronik.BlockInfo blocks = 1;</code>
     */
    @java.lang.Override
    public int getBlocksCount() {
      return blocks_.size();
    }
    /**
     * <code>repeated .chronik.BlockInfo blocks = 1;</code>
     */
    @java.lang.Override
    public chronik.Chronik.BlockInfo getBlocks(int index) {
      return blocks_.get(index);
    }
    /**
     * <code>repeated .chronik.BlockInfo blocks = 1;</code>
     */
    public chronik.Chronik.BlockInfoOrBuilder getBlocksOrBuilder(
        int index) {
      return blocks_.get(index);
    }
    private void ensureBlocksIsMutable() {
      com.google.protobuf.Internal.ProtobufList<chronik.Chronik.BlockInfo> tmp = blocks_;
      if (!tmp.isModifiable()) {
        blocks_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }

    /**
     * <code>repeated .chronik.BlockInfo blocks = 1;</code>
     */
    private void setBlocks(
        int index, chronik.Chronik.BlockInfo value) {
      value.getClass();
  ensureBlocksIsMutable();
      blocks_.set(index, value);
    }
    /**
     * <code>repeated .chronik.BlockInfo blocks = 1;</code>
     */
    private void addBlocks(chronik.Chronik.BlockInfo value) {
      value.getClass();
  ensureBlocksIsMutable();
      blocks_.add(value);
    }
    /**
     * <code>repeated .chronik.BlockInfo blocks = 1;</code>
     */
    private void addBlocks(
        int index, chronik.Chronik.BlockInfo value) {
      value.getClass();
  ensureBlocksIsMutable();
      blocks_.add(index, value);
    }
    /**
     * <code>repeated .chronik.BlockInfo blocks = 1;</code>
     */
    private void addAllBlocks(
        java.lang.Iterable<? extends chronik.Chronik.BlockInfo> values) {
      ensureBlocksIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, blocks_);
    }
    /**
     * <code>repeated .chronik.BlockInfo blocks = 1;</code>
     */
    private void clearBlocks() {
      blocks_ = emptyProtobufList();
    }
    /**
     * <code>repeated .chronik.BlockInfo blocks = 1;</code>
     */
    private void removeBlocks(int index) {
      ensureBlocksIsMutable();
      blocks_.remove(index);
    }

    public static chronik.Chronik.Blocks parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.Blocks parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.Blocks parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.Blocks parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.Blocks parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.Blocks parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.Blocks parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.Blocks parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.Blocks parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.Blocks parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.Blocks parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.Blocks parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(chronik.Chronik.Blocks prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code chronik.Blocks}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          chronik.Chronik.Blocks, Builder> implements
        // @@protoc_insertion_point(builder_implements:chronik.Blocks)
        chronik.Chronik.BlocksOrBuilder {
      // Construct using chronik.Chronik.Blocks.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>repeated .chronik.BlockInfo blocks = 1;</code>
       */
      @java.lang.Override
      public java.util.List<chronik.Chronik.BlockInfo> getBlocksList() {
        return java.util.Collections.unmodifiableList(
            instance.getBlocksList());
      }
      /**
       * <code>repeated .chronik.BlockInfo blocks = 1;</code>
       */
      @java.lang.Override
      public int getBlocksCount() {
        return instance.getBlocksCount();
      }/**
       * <code>repeated .chronik.BlockInfo blocks = 1;</code>
       */
      @java.lang.Override
      public chronik.Chronik.BlockInfo getBlocks(int index) {
        return instance.getBlocks(index);
      }
      /**
       * <code>repeated .chronik.BlockInfo blocks = 1;</code>
       */
      public Builder setBlocks(
          int index, chronik.Chronik.BlockInfo value) {
        copyOnWrite();
        instance.setBlocks(index, value);
        return this;
      }
      /**
       * <code>repeated .chronik.BlockInfo blocks = 1;</code>
       */
      public Builder setBlocks(
          int index, chronik.Chronik.BlockInfo.Builder builderForValue) {
        copyOnWrite();
        instance.setBlocks(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .chronik.BlockInfo blocks = 1;</code>
       */
      public Builder addBlocks(chronik.Chronik.BlockInfo value) {
        copyOnWrite();
        instance.addBlocks(value);
        return this;
      }
      /**
       * <code>repeated .chronik.BlockInfo blocks = 1;</code>
       */
      public Builder addBlocks(
          int index, chronik.Chronik.BlockInfo value) {
        copyOnWrite();
        instance.addBlocks(index, value);
        return this;
      }
      /**
       * <code>repeated .chronik.BlockInfo blocks = 1;</code>
       */
      public Builder addBlocks(
          chronik.Chronik.BlockInfo.Builder builderForValue) {
        copyOnWrite();
        instance.addBlocks(builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .chronik.BlockInfo blocks = 1;</code>
       */
      public Builder addBlocks(
          int index, chronik.Chronik.BlockInfo.Builder builderForValue) {
        copyOnWrite();
        instance.addBlocks(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .chronik.BlockInfo blocks = 1;</code>
       */
      public Builder addAllBlocks(
          java.lang.Iterable<? extends chronik.Chronik.BlockInfo> values) {
        copyOnWrite();
        instance.addAllBlocks(values);
        return this;
      }
      /**
       * <code>repeated .chronik.BlockInfo blocks = 1;</code>
       */
      public Builder clearBlocks() {
        copyOnWrite();
        instance.clearBlocks();
        return this;
      }
      /**
       * <code>repeated .chronik.BlockInfo blocks = 1;</code>
       */
      public Builder removeBlocks(int index) {
        copyOnWrite();
        instance.removeBlocks(index);
        return this;
      }

      // @@protoc_insertion_point(builder_scope:chronik.Blocks)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new chronik.Chronik.Blocks();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "blocks_",
              chronik.Chronik.BlockInfo.class,
            };
            java.lang.String info =
                "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0001\u0000\u0001\u001b";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<chronik.Chronik.Blocks> parser = PARSER;
          if (parser == null) {
            synchronized (chronik.Chronik.Blocks.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<chronik.Chronik.Blocks>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:chronik.Blocks)
    private static final chronik.Chronik.Blocks DEFAULT_INSTANCE;
    static {
      Blocks defaultInstance = new Blocks();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        Blocks.class, defaultInstance);
    }

    public static chronik.Chronik.Blocks getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<Blocks> PARSER;

    public static com.google.protobuf.Parser<Blocks> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface SlpTxDataOrBuilder extends
      // @@protoc_insertion_point(interface_extends:chronik.SlpTxData)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>.chronik.SlpMeta slp_meta = 1;</code>
     * @return Whether the slpMeta field is set.
     */
    boolean hasSlpMeta();
    /**
     * <code>.chronik.SlpMeta slp_meta = 1;</code>
     * @return The slpMeta.
     */
    chronik.Chronik.SlpMeta getSlpMeta();

    /**
     * <code>.chronik.SlpGenesisInfo genesis_info = 2;</code>
     * @return Whether the genesisInfo field is set.
     */
    boolean hasGenesisInfo();
    /**
     * <code>.chronik.SlpGenesisInfo genesis_info = 2;</code>
     * @return The genesisInfo.
     */
    chronik.Chronik.SlpGenesisInfo getGenesisInfo();
  }
  /**
   * Protobuf type {@code chronik.SlpTxData}
   */
  public  static final class SlpTxData extends
      com.google.protobuf.GeneratedMessageLite<
          SlpTxData, SlpTxData.Builder> implements
      // @@protoc_insertion_point(message_implements:chronik.SlpTxData)
      SlpTxDataOrBuilder {
    private SlpTxData() {
    }
    public static final int SLP_META_FIELD_NUMBER = 1;
    private chronik.Chronik.SlpMeta slpMeta_;
    /**
     * <code>.chronik.SlpMeta slp_meta = 1;</code>
     */
    @java.lang.Override
    public boolean hasSlpMeta() {
      return slpMeta_ != null;
    }
    /**
     * <code>.chronik.SlpMeta slp_meta = 1;</code>
     */
    @java.lang.Override
    public chronik.Chronik.SlpMeta getSlpMeta() {
      return slpMeta_ == null ? chronik.Chronik.SlpMeta.getDefaultInstance() : slpMeta_;
    }
    /**
     * <code>.chronik.SlpMeta slp_meta = 1;</code>
     */
    private void setSlpMeta(chronik.Chronik.SlpMeta value) {
      value.getClass();
  slpMeta_ = value;

      }
    /**
     * <code>.chronik.SlpMeta slp_meta = 1;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeSlpMeta(chronik.Chronik.SlpMeta value) {
      value.getClass();
  if (slpMeta_ != null &&
          slpMeta_ != chronik.Chronik.SlpMeta.getDefaultInstance()) {
        slpMeta_ =
          chronik.Chronik.SlpMeta.newBuilder(slpMeta_).mergeFrom(value).buildPartial();
      } else {
        slpMeta_ = value;
      }

    }
    /**
     * <code>.chronik.SlpMeta slp_meta = 1;</code>
     */
    private void clearSlpMeta() {  slpMeta_ = null;

    }

    public static final int GENESIS_INFO_FIELD_NUMBER = 2;
    private chronik.Chronik.SlpGenesisInfo genesisInfo_;
    /**
     * <code>.chronik.SlpGenesisInfo genesis_info = 2;</code>
     */
    @java.lang.Override
    public boolean hasGenesisInfo() {
      return genesisInfo_ != null;
    }
    /**
     * <code>.chronik.SlpGenesisInfo genesis_info = 2;</code>
     */
    @java.lang.Override
    public chronik.Chronik.SlpGenesisInfo getGenesisInfo() {
      return genesisInfo_ == null ? chronik.Chronik.SlpGenesisInfo.getDefaultInstance() : genesisInfo_;
    }
    /**
     * <code>.chronik.SlpGenesisInfo genesis_info = 2;</code>
     */
    private void setGenesisInfo(chronik.Chronik.SlpGenesisInfo value) {
      value.getClass();
  genesisInfo_ = value;

      }
    /**
     * <code>.chronik.SlpGenesisInfo genesis_info = 2;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeGenesisInfo(chronik.Chronik.SlpGenesisInfo value) {
      value.getClass();
  if (genesisInfo_ != null &&
          genesisInfo_ != chronik.Chronik.SlpGenesisInfo.getDefaultInstance()) {
        genesisInfo_ =
          chronik.Chronik.SlpGenesisInfo.newBuilder(genesisInfo_).mergeFrom(value).buildPartial();
      } else {
        genesisInfo_ = value;
      }

    }
    /**
     * <code>.chronik.SlpGenesisInfo genesis_info = 2;</code>
     */
    private void clearGenesisInfo() {  genesisInfo_ = null;

    }

    public static chronik.Chronik.SlpTxData parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.SlpTxData parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.SlpTxData parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.SlpTxData parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.SlpTxData parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.SlpTxData parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.SlpTxData parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.SlpTxData parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.SlpTxData parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.SlpTxData parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.SlpTxData parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.SlpTxData parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(chronik.Chronik.SlpTxData prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code chronik.SlpTxData}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          chronik.Chronik.SlpTxData, Builder> implements
        // @@protoc_insertion_point(builder_implements:chronik.SlpTxData)
        chronik.Chronik.SlpTxDataOrBuilder {
      // Construct using chronik.Chronik.SlpTxData.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>.chronik.SlpMeta slp_meta = 1;</code>
       */
      @java.lang.Override
      public boolean hasSlpMeta() {
        return instance.hasSlpMeta();
      }
      /**
       * <code>.chronik.SlpMeta slp_meta = 1;</code>
       */
      @java.lang.Override
      public chronik.Chronik.SlpMeta getSlpMeta() {
        return instance.getSlpMeta();
      }
      /**
       * <code>.chronik.SlpMeta slp_meta = 1;</code>
       */
      public Builder setSlpMeta(chronik.Chronik.SlpMeta value) {
        copyOnWrite();
        instance.setSlpMeta(value);
        return this;
        }
      /**
       * <code>.chronik.SlpMeta slp_meta = 1;</code>
       */
      public Builder setSlpMeta(
          chronik.Chronik.SlpMeta.Builder builderForValue) {
        copyOnWrite();
        instance.setSlpMeta(builderForValue.build());
        return this;
      }
      /**
       * <code>.chronik.SlpMeta slp_meta = 1;</code>
       */
      public Builder mergeSlpMeta(chronik.Chronik.SlpMeta value) {
        copyOnWrite();
        instance.mergeSlpMeta(value);
        return this;
      }
      /**
       * <code>.chronik.SlpMeta slp_meta = 1;</code>
       */
      public Builder clearSlpMeta() {  copyOnWrite();
        instance.clearSlpMeta();
        return this;
      }

      /**
       * <code>.chronik.SlpGenesisInfo genesis_info = 2;</code>
       */
      @java.lang.Override
      public boolean hasGenesisInfo() {
        return instance.hasGenesisInfo();
      }
      /**
       * <code>.chronik.SlpGenesisInfo genesis_info = 2;</code>
       */
      @java.lang.Override
      public chronik.Chronik.SlpGenesisInfo getGenesisInfo() {
        return instance.getGenesisInfo();
      }
      /**
       * <code>.chronik.SlpGenesisInfo genesis_info = 2;</code>
       */
      public Builder setGenesisInfo(chronik.Chronik.SlpGenesisInfo value) {
        copyOnWrite();
        instance.setGenesisInfo(value);
        return this;
        }
      /**
       * <code>.chronik.SlpGenesisInfo genesis_info = 2;</code>
       */
      public Builder setGenesisInfo(
          chronik.Chronik.SlpGenesisInfo.Builder builderForValue) {
        copyOnWrite();
        instance.setGenesisInfo(builderForValue.build());
        return this;
      }
      /**
       * <code>.chronik.SlpGenesisInfo genesis_info = 2;</code>
       */
      public Builder mergeGenesisInfo(chronik.Chronik.SlpGenesisInfo value) {
        copyOnWrite();
        instance.mergeGenesisInfo(value);
        return this;
      }
      /**
       * <code>.chronik.SlpGenesisInfo genesis_info = 2;</code>
       */
      public Builder clearGenesisInfo() {  copyOnWrite();
        instance.clearGenesisInfo();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:chronik.SlpTxData)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new chronik.Chronik.SlpTxData();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "slpMeta_",
              "genesisInfo_",
            };
            java.lang.String info =
                "\u0000\u0002\u0000\u0000\u0001\u0002\u0002\u0000\u0000\u0000\u0001\t\u0002\t";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<chronik.Chronik.SlpTxData> parser = PARSER;
          if (parser == null) {
            synchronized (chronik.Chronik.SlpTxData.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<chronik.Chronik.SlpTxData>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:chronik.SlpTxData)
    private static final chronik.Chronik.SlpTxData DEFAULT_INSTANCE;
    static {
      SlpTxData defaultInstance = new SlpTxData();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        SlpTxData.class, defaultInstance);
    }

    public static chronik.Chronik.SlpTxData getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<SlpTxData> PARSER;

    public static com.google.protobuf.Parser<SlpTxData> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface SlpMetaOrBuilder extends
      // @@protoc_insertion_point(interface_extends:chronik.SlpMeta)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>.chronik.SlpTokenType token_type = 1;</code>
     * @return The enum numeric value on the wire for tokenType.
     */
    int getTokenTypeValue();
    /**
     * <code>.chronik.SlpTokenType token_type = 1;</code>
     * @return The tokenType.
     */
    chronik.Chronik.SlpTokenType getTokenType();

    /**
     * <code>.chronik.SlpTxType tx_type = 2;</code>
     * @return The enum numeric value on the wire for txType.
     */
    int getTxTypeValue();
    /**
     * <code>.chronik.SlpTxType tx_type = 2;</code>
     * @return The txType.
     */
    chronik.Chronik.SlpTxType getTxType();

    /**
     * <code>bytes token_id = 3;</code>
     * @return The tokenId.
     */
    com.google.protobuf.ByteString getTokenId();

    /**
     * <code>bytes group_token_id = 4;</code>
     * @return The groupTokenId.
     */
    com.google.protobuf.ByteString getGroupTokenId();
  }
  /**
   * Protobuf type {@code chronik.SlpMeta}
   */
  public  static final class SlpMeta extends
      com.google.protobuf.GeneratedMessageLite<
          SlpMeta, SlpMeta.Builder> implements
      // @@protoc_insertion_point(message_implements:chronik.SlpMeta)
      SlpMetaOrBuilder {
    private SlpMeta() {
      tokenId_ = com.google.protobuf.ByteString.EMPTY;
      groupTokenId_ = com.google.protobuf.ByteString.EMPTY;
    }
    public static final int TOKEN_TYPE_FIELD_NUMBER = 1;
    private int tokenType_;
    /**
     * <code>.chronik.SlpTokenType token_type = 1;</code>
     * @return The enum numeric value on the wire for tokenType.
     */
    @java.lang.Override
    public int getTokenTypeValue() {
      return tokenType_;
    }
    /**
     * <code>.chronik.SlpTokenType token_type = 1;</code>
     * @return The tokenType.
     */
    @java.lang.Override
    public chronik.Chronik.SlpTokenType getTokenType() {
      chronik.Chronik.SlpTokenType result = chronik.Chronik.SlpTokenType.forNumber(tokenType_);
      return result == null ? chronik.Chronik.SlpTokenType.UNRECOGNIZED : result;
    }
    /**
     * <code>.chronik.SlpTokenType token_type = 1;</code>
     * @param value The enum numeric value on the wire for tokenType to set.
     */
    private void setTokenTypeValue(int value) {
        tokenType_ = value;
    }
    /**
     * <code>.chronik.SlpTokenType token_type = 1;</code>
     * @param value The tokenType to set.
     */
    private void setTokenType(chronik.Chronik.SlpTokenType value) {
      tokenType_ = value.getNumber();

    }
    /**
     * <code>.chronik.SlpTokenType token_type = 1;</code>
     */
    private void clearTokenType() {

      tokenType_ = 0;
    }

    public static final int TX_TYPE_FIELD_NUMBER = 2;
    private int txType_;
    /**
     * <code>.chronik.SlpTxType tx_type = 2;</code>
     * @return The enum numeric value on the wire for txType.
     */
    @java.lang.Override
    public int getTxTypeValue() {
      return txType_;
    }
    /**
     * <code>.chronik.SlpTxType tx_type = 2;</code>
     * @return The txType.
     */
    @java.lang.Override
    public chronik.Chronik.SlpTxType getTxType() {
      chronik.Chronik.SlpTxType result = chronik.Chronik.SlpTxType.forNumber(txType_);
      return result == null ? chronik.Chronik.SlpTxType.UNRECOGNIZED : result;
    }
    /**
     * <code>.chronik.SlpTxType tx_type = 2;</code>
     * @param value The enum numeric value on the wire for txType to set.
     */
    private void setTxTypeValue(int value) {
        txType_ = value;
    }
    /**
     * <code>.chronik.SlpTxType tx_type = 2;</code>
     * @param value The txType to set.
     */
    private void setTxType(chronik.Chronik.SlpTxType value) {
      txType_ = value.getNumber();

    }
    /**
     * <code>.chronik.SlpTxType tx_type = 2;</code>
     */
    private void clearTxType() {

      txType_ = 0;
    }

    public static final int TOKEN_ID_FIELD_NUMBER = 3;
    private com.google.protobuf.ByteString tokenId_;
    /**
     * <code>bytes token_id = 3;</code>
     * @return The tokenId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getTokenId() {
      return tokenId_;
    }
    /**
     * <code>bytes token_id = 3;</code>
     * @param value The tokenId to set.
     */
    private void setTokenId(com.google.protobuf.ByteString value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      tokenId_ = value;
    }
    /**
     * <code>bytes token_id = 3;</code>
     */
    private void clearTokenId() {

      tokenId_ = getDefaultInstance().getTokenId();
    }

    public static final int GROUP_TOKEN_ID_FIELD_NUMBER = 4;
    private com.google.protobuf.ByteString groupTokenId_;
    /**
     * <code>bytes group_token_id = 4;</code>
     * @return The groupTokenId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getGroupTokenId() {
      return groupTokenId_;
    }
    /**
     * <code>bytes group_token_id = 4;</code>
     * @param value The groupTokenId to set.
     */
    private void setGroupTokenId(com.google.protobuf.ByteString value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      groupTokenId_ = value;
    }
    /**
     * <code>bytes group_token_id = 4;</code>
     */
    private void clearGroupTokenId() {

      groupTokenId_ = getDefaultInstance().getGroupTokenId();
    }

    public static chronik.Chronik.SlpMeta parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.SlpMeta parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.SlpMeta parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.SlpMeta parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.SlpMeta parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.SlpMeta parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.SlpMeta parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.SlpMeta parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.SlpMeta parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.SlpMeta parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.SlpMeta parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.SlpMeta parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(chronik.Chronik.SlpMeta prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code chronik.SlpMeta}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          chronik.Chronik.SlpMeta, Builder> implements
        // @@protoc_insertion_point(builder_implements:chronik.SlpMeta)
        chronik.Chronik.SlpMetaOrBuilder {
      // Construct using chronik.Chronik.SlpMeta.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>.chronik.SlpTokenType token_type = 1;</code>
       * @return The enum numeric value on the wire for tokenType.
       */
      @java.lang.Override
      public int getTokenTypeValue() {
        return instance.getTokenTypeValue();
      }
      /**
       * <code>.chronik.SlpTokenType token_type = 1;</code>
       * @param value The tokenType to set.
       * @return This builder for chaining.
       */
      public Builder setTokenTypeValue(int value) {
        copyOnWrite();
        instance.setTokenTypeValue(value);
        return this;
      }
      /**
       * <code>.chronik.SlpTokenType token_type = 1;</code>
       * @return The tokenType.
       */
      @java.lang.Override
      public chronik.Chronik.SlpTokenType getTokenType() {
        return instance.getTokenType();
      }
      /**
       * <code>.chronik.SlpTokenType token_type = 1;</code>
       * @param value The enum numeric value on the wire for tokenType to set.
       * @return This builder for chaining.
       */
      public Builder setTokenType(chronik.Chronik.SlpTokenType value) {
        copyOnWrite();
        instance.setTokenType(value);
        return this;
      }
      /**
       * <code>.chronik.SlpTokenType token_type = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearTokenType() {
        copyOnWrite();
        instance.clearTokenType();
        return this;
      }

      /**
       * <code>.chronik.SlpTxType tx_type = 2;</code>
       * @return The enum numeric value on the wire for txType.
       */
      @java.lang.Override
      public int getTxTypeValue() {
        return instance.getTxTypeValue();
      }
      /**
       * <code>.chronik.SlpTxType tx_type = 2;</code>
       * @param value The txType to set.
       * @return This builder for chaining.
       */
      public Builder setTxTypeValue(int value) {
        copyOnWrite();
        instance.setTxTypeValue(value);
        return this;
      }
      /**
       * <code>.chronik.SlpTxType tx_type = 2;</code>
       * @return The txType.
       */
      @java.lang.Override
      public chronik.Chronik.SlpTxType getTxType() {
        return instance.getTxType();
      }
      /**
       * <code>.chronik.SlpTxType tx_type = 2;</code>
       * @param value The enum numeric value on the wire for txType to set.
       * @return This builder for chaining.
       */
      public Builder setTxType(chronik.Chronik.SlpTxType value) {
        copyOnWrite();
        instance.setTxType(value);
        return this;
      }
      /**
       * <code>.chronik.SlpTxType tx_type = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearTxType() {
        copyOnWrite();
        instance.clearTxType();
        return this;
      }

      /**
       * <code>bytes token_id = 3;</code>
       * @return The tokenId.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getTokenId() {
        return instance.getTokenId();
      }
      /**
       * <code>bytes token_id = 3;</code>
       * @param value The tokenId to set.
       * @return This builder for chaining.
       */
      public Builder setTokenId(com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setTokenId(value);
        return this;
      }
      /**
       * <code>bytes token_id = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearTokenId() {
        copyOnWrite();
        instance.clearTokenId();
        return this;
      }

      /**
       * <code>bytes group_token_id = 4;</code>
       * @return The groupTokenId.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getGroupTokenId() {
        return instance.getGroupTokenId();
      }
      /**
       * <code>bytes group_token_id = 4;</code>
       * @param value The groupTokenId to set.
       * @return This builder for chaining.
       */
      public Builder setGroupTokenId(com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setGroupTokenId(value);
        return this;
      }
      /**
       * <code>bytes group_token_id = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearGroupTokenId() {
        copyOnWrite();
        instance.clearGroupTokenId();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:chronik.SlpMeta)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new chronik.Chronik.SlpMeta();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "tokenType_",
              "txType_",
              "tokenId_",
              "groupTokenId_",
            };
            java.lang.String info =
                "\u0000\u0004\u0000\u0000\u0001\u0004\u0004\u0000\u0000\u0000\u0001\f\u0002\f\u0003" +
                "\n\u0004\n";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<chronik.Chronik.SlpMeta> parser = PARSER;
          if (parser == null) {
            synchronized (chronik.Chronik.SlpMeta.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<chronik.Chronik.SlpMeta>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:chronik.SlpMeta)
    private static final chronik.Chronik.SlpMeta DEFAULT_INSTANCE;
    static {
      SlpMeta defaultInstance = new SlpMeta();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        SlpMeta.class, defaultInstance);
    }

    public static chronik.Chronik.SlpMeta getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<SlpMeta> PARSER;

    public static com.google.protobuf.Parser<SlpMeta> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface TokenStatsOrBuilder extends
      // @@protoc_insertion_point(interface_extends:chronik.TokenStats)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <pre>
     * This doesn't fit into uint64, so we use a string with the decimal
     * representation. If available, use i128 to parse, otherwise some
     * BigNumber library.
     * </pre>
     *
     * <code>string total_minted = 1;</code>
     * @return The totalMinted.
     */
    java.lang.String getTotalMinted();
    /**
     * <pre>
     * This doesn't fit into uint64, so we use a string with the decimal
     * representation. If available, use i128 to parse, otherwise some
     * BigNumber library.
     * </pre>
     *
     * <code>string total_minted = 1;</code>
     * @return The bytes for totalMinted.
     */
    com.google.protobuf.ByteString
        getTotalMintedBytes();

    /**
     * <code>string total_burned = 2;</code>
     * @return The totalBurned.
     */
    java.lang.String getTotalBurned();
    /**
     * <code>string total_burned = 2;</code>
     * @return The bytes for totalBurned.
     */
    com.google.protobuf.ByteString
        getTotalBurnedBytes();
  }
  /**
   * Protobuf type {@code chronik.TokenStats}
   */
  public  static final class TokenStats extends
      com.google.protobuf.GeneratedMessageLite<
          TokenStats, TokenStats.Builder> implements
      // @@protoc_insertion_point(message_implements:chronik.TokenStats)
      TokenStatsOrBuilder {
    private TokenStats() {
      totalMinted_ = "";
      totalBurned_ = "";
    }
    public static final int TOTAL_MINTED_FIELD_NUMBER = 1;
    private java.lang.String totalMinted_;
    /**
     * <pre>
     * This doesn't fit into uint64, so we use a string with the decimal
     * representation. If available, use i128 to parse, otherwise some
     * BigNumber library.
     * </pre>
     *
     * <code>string total_minted = 1;</code>
     * @return The totalMinted.
     */
    @java.lang.Override
    public java.lang.String getTotalMinted() {
      return totalMinted_;
    }
    /**
     * <pre>
     * This doesn't fit into uint64, so we use a string with the decimal
     * representation. If available, use i128 to parse, otherwise some
     * BigNumber library.
     * </pre>
     *
     * <code>string total_minted = 1;</code>
     * @return The bytes for totalMinted.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getTotalMintedBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(totalMinted_);
    }
    /**
     * <pre>
     * This doesn't fit into uint64, so we use a string with the decimal
     * representation. If available, use i128 to parse, otherwise some
     * BigNumber library.
     * </pre>
     *
     * <code>string total_minted = 1;</code>
     * @param value The totalMinted to set.
     */
    private void setTotalMinted(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      totalMinted_ = value;
    }
    /**
     * <pre>
     * This doesn't fit into uint64, so we use a string with the decimal
     * representation. If available, use i128 to parse, otherwise some
     * BigNumber library.
     * </pre>
     *
     * <code>string total_minted = 1;</code>
     */
    private void clearTotalMinted() {

      totalMinted_ = getDefaultInstance().getTotalMinted();
    }
    /**
     * <pre>
     * This doesn't fit into uint64, so we use a string with the decimal
     * representation. If available, use i128 to parse, otherwise some
     * BigNumber library.
     * </pre>
     *
     * <code>string total_minted = 1;</code>
     * @param value The bytes for totalMinted to set.
     */
    private void setTotalMintedBytes(
        com.google.protobuf.ByteString value) {
      checkByteStringIsUtf8(value);
      totalMinted_ = value.toStringUtf8();

    }

    public static final int TOTAL_BURNED_FIELD_NUMBER = 2;
    private java.lang.String totalBurned_;
    /**
     * <code>string total_burned = 2;</code>
     * @return The totalBurned.
     */
    @java.lang.Override
    public java.lang.String getTotalBurned() {
      return totalBurned_;
    }
    /**
     * <code>string total_burned = 2;</code>
     * @return The bytes for totalBurned.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getTotalBurnedBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(totalBurned_);
    }
    /**
     * <code>string total_burned = 2;</code>
     * @param value The totalBurned to set.
     */
    private void setTotalBurned(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      totalBurned_ = value;
    }
    /**
     * <code>string total_burned = 2;</code>
     */
    private void clearTotalBurned() {

      totalBurned_ = getDefaultInstance().getTotalBurned();
    }
    /**
     * <code>string total_burned = 2;</code>
     * @param value The bytes for totalBurned to set.
     */
    private void setTotalBurnedBytes(
        com.google.protobuf.ByteString value) {
      checkByteStringIsUtf8(value);
      totalBurned_ = value.toStringUtf8();

    }

    public static chronik.Chronik.TokenStats parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.TokenStats parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.TokenStats parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.TokenStats parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.TokenStats parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.TokenStats parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.TokenStats parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.TokenStats parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.TokenStats parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.TokenStats parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.TokenStats parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.TokenStats parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(chronik.Chronik.TokenStats prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code chronik.TokenStats}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          chronik.Chronik.TokenStats, Builder> implements
        // @@protoc_insertion_point(builder_implements:chronik.TokenStats)
        chronik.Chronik.TokenStatsOrBuilder {
      // Construct using chronik.Chronik.TokenStats.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <pre>
       * This doesn't fit into uint64, so we use a string with the decimal
       * representation. If available, use i128 to parse, otherwise some
       * BigNumber library.
       * </pre>
       *
       * <code>string total_minted = 1;</code>
       * @return The totalMinted.
       */
      @java.lang.Override
      public java.lang.String getTotalMinted() {
        return instance.getTotalMinted();
      }
      /**
       * <pre>
       * This doesn't fit into uint64, so we use a string with the decimal
       * representation. If available, use i128 to parse, otherwise some
       * BigNumber library.
       * </pre>
       *
       * <code>string total_minted = 1;</code>
       * @return The bytes for totalMinted.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getTotalMintedBytes() {
        return instance.getTotalMintedBytes();
      }
      /**
       * <pre>
       * This doesn't fit into uint64, so we use a string with the decimal
       * representation. If available, use i128 to parse, otherwise some
       * BigNumber library.
       * </pre>
       *
       * <code>string total_minted = 1;</code>
       * @param value The totalMinted to set.
       * @return This builder for chaining.
       */
      public Builder setTotalMinted(
          java.lang.String value) {
        copyOnWrite();
        instance.setTotalMinted(value);
        return this;
      }
      /**
       * <pre>
       * This doesn't fit into uint64, so we use a string with the decimal
       * representation. If available, use i128 to parse, otherwise some
       * BigNumber library.
       * </pre>
       *
       * <code>string total_minted = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearTotalMinted() {
        copyOnWrite();
        instance.clearTotalMinted();
        return this;
      }
      /**
       * <pre>
       * This doesn't fit into uint64, so we use a string with the decimal
       * representation. If available, use i128 to parse, otherwise some
       * BigNumber library.
       * </pre>
       *
       * <code>string total_minted = 1;</code>
       * @param value The bytes for totalMinted to set.
       * @return This builder for chaining.
       */
      public Builder setTotalMintedBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setTotalMintedBytes(value);
        return this;
      }

      /**
       * <code>string total_burned = 2;</code>
       * @return The totalBurned.
       */
      @java.lang.Override
      public java.lang.String getTotalBurned() {
        return instance.getTotalBurned();
      }
      /**
       * <code>string total_burned = 2;</code>
       * @return The bytes for totalBurned.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getTotalBurnedBytes() {
        return instance.getTotalBurnedBytes();
      }
      /**
       * <code>string total_burned = 2;</code>
       * @param value The totalBurned to set.
       * @return This builder for chaining.
       */
      public Builder setTotalBurned(
          java.lang.String value) {
        copyOnWrite();
        instance.setTotalBurned(value);
        return this;
      }
      /**
       * <code>string total_burned = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearTotalBurned() {
        copyOnWrite();
        instance.clearTotalBurned();
        return this;
      }
      /**
       * <code>string total_burned = 2;</code>
       * @param value The bytes for totalBurned to set.
       * @return This builder for chaining.
       */
      public Builder setTotalBurnedBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setTotalBurnedBytes(value);
        return this;
      }

      // @@protoc_insertion_point(builder_scope:chronik.TokenStats)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new chronik.Chronik.TokenStats();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "totalMinted_",
              "totalBurned_",
            };
            java.lang.String info =
                "\u0000\u0002\u0000\u0000\u0001\u0002\u0002\u0000\u0000\u0000\u0001\u0208\u0002\u0208" +
                "";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<chronik.Chronik.TokenStats> parser = PARSER;
          if (parser == null) {
            synchronized (chronik.Chronik.TokenStats.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<chronik.Chronik.TokenStats>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:chronik.TokenStats)
    private static final chronik.Chronik.TokenStats DEFAULT_INSTANCE;
    static {
      TokenStats defaultInstance = new TokenStats();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        TokenStats.class, defaultInstance);
    }

    public static chronik.Chronik.TokenStats getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<TokenStats> PARSER;

    public static com.google.protobuf.Parser<TokenStats> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface TxInputOrBuilder extends
      // @@protoc_insertion_point(interface_extends:chronik.TxInput)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>.chronik.OutPoint prev_out = 1;</code>
     * @return Whether the prevOut field is set.
     */
    boolean hasPrevOut();
    /**
     * <code>.chronik.OutPoint prev_out = 1;</code>
     * @return The prevOut.
     */
    chronik.Chronik.OutPoint getPrevOut();

    /**
     * <code>bytes input_script = 2;</code>
     * @return The inputScript.
     */
    com.google.protobuf.ByteString getInputScript();

    /**
     * <code>bytes output_script = 3;</code>
     * @return The outputScript.
     */
    com.google.protobuf.ByteString getOutputScript();

    /**
     * <code>int64 value = 4;</code>
     * @return The value.
     */
    long getValue();

    /**
     * <code>uint32 sequence_no = 5;</code>
     * @return The sequenceNo.
     */
    int getSequenceNo();

    /**
     * <code>.chronik.SlpBurn slp_burn = 6;</code>
     * @return Whether the slpBurn field is set.
     */
    boolean hasSlpBurn();
    /**
     * <code>.chronik.SlpBurn slp_burn = 6;</code>
     * @return The slpBurn.
     */
    chronik.Chronik.SlpBurn getSlpBurn();

    /**
     * <code>.chronik.SlpToken slp_token = 7;</code>
     * @return Whether the slpToken field is set.
     */
    boolean hasSlpToken();
    /**
     * <code>.chronik.SlpToken slp_token = 7;</code>
     * @return The slpToken.
     */
    chronik.Chronik.SlpToken getSlpToken();
  }
  /**
   * Protobuf type {@code chronik.TxInput}
   */
  public  static final class TxInput extends
      com.google.protobuf.GeneratedMessageLite<
          TxInput, TxInput.Builder> implements
      // @@protoc_insertion_point(message_implements:chronik.TxInput)
      TxInputOrBuilder {
    private TxInput() {
      inputScript_ = com.google.protobuf.ByteString.EMPTY;
      outputScript_ = com.google.protobuf.ByteString.EMPTY;
    }
    public static final int PREV_OUT_FIELD_NUMBER = 1;
    private chronik.Chronik.OutPoint prevOut_;
    /**
     * <code>.chronik.OutPoint prev_out = 1;</code>
     */
    @java.lang.Override
    public boolean hasPrevOut() {
      return prevOut_ != null;
    }
    /**
     * <code>.chronik.OutPoint prev_out = 1;</code>
     */
    @java.lang.Override
    public chronik.Chronik.OutPoint getPrevOut() {
      return prevOut_ == null ? chronik.Chronik.OutPoint.getDefaultInstance() : prevOut_;
    }
    /**
     * <code>.chronik.OutPoint prev_out = 1;</code>
     */
    private void setPrevOut(chronik.Chronik.OutPoint value) {
      value.getClass();
  prevOut_ = value;

      }
    /**
     * <code>.chronik.OutPoint prev_out = 1;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergePrevOut(chronik.Chronik.OutPoint value) {
      value.getClass();
  if (prevOut_ != null &&
          prevOut_ != chronik.Chronik.OutPoint.getDefaultInstance()) {
        prevOut_ =
          chronik.Chronik.OutPoint.newBuilder(prevOut_).mergeFrom(value).buildPartial();
      } else {
        prevOut_ = value;
      }

    }
    /**
     * <code>.chronik.OutPoint prev_out = 1;</code>
     */
    private void clearPrevOut() {  prevOut_ = null;

    }

    public static final int INPUT_SCRIPT_FIELD_NUMBER = 2;
    private com.google.protobuf.ByteString inputScript_;
    /**
     * <code>bytes input_script = 2;</code>
     * @return The inputScript.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getInputScript() {
      return inputScript_;
    }
    /**
     * <code>bytes input_script = 2;</code>
     * @param value The inputScript to set.
     */
    private void setInputScript(com.google.protobuf.ByteString value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      inputScript_ = value;
    }
    /**
     * <code>bytes input_script = 2;</code>
     */
    private void clearInputScript() {

      inputScript_ = getDefaultInstance().getInputScript();
    }

    public static final int OUTPUT_SCRIPT_FIELD_NUMBER = 3;
    private com.google.protobuf.ByteString outputScript_;
    /**
     * <code>bytes output_script = 3;</code>
     * @return The outputScript.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getOutputScript() {
      return outputScript_;
    }
    /**
     * <code>bytes output_script = 3;</code>
     * @param value The outputScript to set.
     */
    private void setOutputScript(com.google.protobuf.ByteString value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      outputScript_ = value;
    }
    /**
     * <code>bytes output_script = 3;</code>
     */
    private void clearOutputScript() {

      outputScript_ = getDefaultInstance().getOutputScript();
    }

    public static final int VALUE_FIELD_NUMBER = 4;
    private long value_;
    /**
     * <code>int64 value = 4;</code>
     * @return The value.
     */
    @java.lang.Override
    public long getValue() {
      return value_;
    }
    /**
     * <code>int64 value = 4;</code>
     * @param value The value to set.
     */
    private void setValue(long value) {
      
      value_ = value;
    }
    /**
     * <code>int64 value = 4;</code>
     */
    private void clearValue() {

      value_ = 0L;
    }

    public static final int SEQUENCE_NO_FIELD_NUMBER = 5;
    private int sequenceNo_;
    /**
     * <code>uint32 sequence_no = 5;</code>
     * @return The sequenceNo.
     */
    @java.lang.Override
    public int getSequenceNo() {
      return sequenceNo_;
    }
    /**
     * <code>uint32 sequence_no = 5;</code>
     * @param value The sequenceNo to set.
     */
    private void setSequenceNo(int value) {
      
      sequenceNo_ = value;
    }
    /**
     * <code>uint32 sequence_no = 5;</code>
     */
    private void clearSequenceNo() {

      sequenceNo_ = 0;
    }

    public static final int SLP_BURN_FIELD_NUMBER = 6;
    private chronik.Chronik.SlpBurn slpBurn_;
    /**
     * <code>.chronik.SlpBurn slp_burn = 6;</code>
     */
    @java.lang.Override
    public boolean hasSlpBurn() {
      return slpBurn_ != null;
    }
    /**
     * <code>.chronik.SlpBurn slp_burn = 6;</code>
     */
    @java.lang.Override
    public chronik.Chronik.SlpBurn getSlpBurn() {
      return slpBurn_ == null ? chronik.Chronik.SlpBurn.getDefaultInstance() : slpBurn_;
    }
    /**
     * <code>.chronik.SlpBurn slp_burn = 6;</code>
     */
    private void setSlpBurn(chronik.Chronik.SlpBurn value) {
      value.getClass();
  slpBurn_ = value;

      }
    /**
     * <code>.chronik.SlpBurn slp_burn = 6;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeSlpBurn(chronik.Chronik.SlpBurn value) {
      value.getClass();
  if (slpBurn_ != null &&
          slpBurn_ != chronik.Chronik.SlpBurn.getDefaultInstance()) {
        slpBurn_ =
          chronik.Chronik.SlpBurn.newBuilder(slpBurn_).mergeFrom(value).buildPartial();
      } else {
        slpBurn_ = value;
      }

    }
    /**
     * <code>.chronik.SlpBurn slp_burn = 6;</code>
     */
    private void clearSlpBurn() {  slpBurn_ = null;

    }

    public static final int SLP_TOKEN_FIELD_NUMBER = 7;
    private chronik.Chronik.SlpToken slpToken_;
    /**
     * <code>.chronik.SlpToken slp_token = 7;</code>
     */
    @java.lang.Override
    public boolean hasSlpToken() {
      return slpToken_ != null;
    }
    /**
     * <code>.chronik.SlpToken slp_token = 7;</code>
     */
    @java.lang.Override
    public chronik.Chronik.SlpToken getSlpToken() {
      return slpToken_ == null ? chronik.Chronik.SlpToken.getDefaultInstance() : slpToken_;
    }
    /**
     * <code>.chronik.SlpToken slp_token = 7;</code>
     */
    private void setSlpToken(chronik.Chronik.SlpToken value) {
      value.getClass();
  slpToken_ = value;

      }
    /**
     * <code>.chronik.SlpToken slp_token = 7;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeSlpToken(chronik.Chronik.SlpToken value) {
      value.getClass();
  if (slpToken_ != null &&
          slpToken_ != chronik.Chronik.SlpToken.getDefaultInstance()) {
        slpToken_ =
          chronik.Chronik.SlpToken.newBuilder(slpToken_).mergeFrom(value).buildPartial();
      } else {
        slpToken_ = value;
      }

    }
    /**
     * <code>.chronik.SlpToken slp_token = 7;</code>
     */
    private void clearSlpToken() {  slpToken_ = null;

    }

    public static chronik.Chronik.TxInput parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.TxInput parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.TxInput parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.TxInput parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.TxInput parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.TxInput parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.TxInput parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.TxInput parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.TxInput parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.TxInput parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.TxInput parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.TxInput parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(chronik.Chronik.TxInput prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code chronik.TxInput}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          chronik.Chronik.TxInput, Builder> implements
        // @@protoc_insertion_point(builder_implements:chronik.TxInput)
        chronik.Chronik.TxInputOrBuilder {
      // Construct using chronik.Chronik.TxInput.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>.chronik.OutPoint prev_out = 1;</code>
       */
      @java.lang.Override
      public boolean hasPrevOut() {
        return instance.hasPrevOut();
      }
      /**
       * <code>.chronik.OutPoint prev_out = 1;</code>
       */
      @java.lang.Override
      public chronik.Chronik.OutPoint getPrevOut() {
        return instance.getPrevOut();
      }
      /**
       * <code>.chronik.OutPoint prev_out = 1;</code>
       */
      public Builder setPrevOut(chronik.Chronik.OutPoint value) {
        copyOnWrite();
        instance.setPrevOut(value);
        return this;
        }
      /**
       * <code>.chronik.OutPoint prev_out = 1;</code>
       */
      public Builder setPrevOut(
          chronik.Chronik.OutPoint.Builder builderForValue) {
        copyOnWrite();
        instance.setPrevOut(builderForValue.build());
        return this;
      }
      /**
       * <code>.chronik.OutPoint prev_out = 1;</code>
       */
      public Builder mergePrevOut(chronik.Chronik.OutPoint value) {
        copyOnWrite();
        instance.mergePrevOut(value);
        return this;
      }
      /**
       * <code>.chronik.OutPoint prev_out = 1;</code>
       */
      public Builder clearPrevOut() {  copyOnWrite();
        instance.clearPrevOut();
        return this;
      }

      /**
       * <code>bytes input_script = 2;</code>
       * @return The inputScript.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getInputScript() {
        return instance.getInputScript();
      }
      /**
       * <code>bytes input_script = 2;</code>
       * @param value The inputScript to set.
       * @return This builder for chaining.
       */
      public Builder setInputScript(com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setInputScript(value);
        return this;
      }
      /**
       * <code>bytes input_script = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearInputScript() {
        copyOnWrite();
        instance.clearInputScript();
        return this;
      }

      /**
       * <code>bytes output_script = 3;</code>
       * @return The outputScript.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getOutputScript() {
        return instance.getOutputScript();
      }
      /**
       * <code>bytes output_script = 3;</code>
       * @param value The outputScript to set.
       * @return This builder for chaining.
       */
      public Builder setOutputScript(com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setOutputScript(value);
        return this;
      }
      /**
       * <code>bytes output_script = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearOutputScript() {
        copyOnWrite();
        instance.clearOutputScript();
        return this;
      }

      /**
       * <code>int64 value = 4;</code>
       * @return The value.
       */
      @java.lang.Override
      public long getValue() {
        return instance.getValue();
      }
      /**
       * <code>int64 value = 4;</code>
       * @param value The value to set.
       * @return This builder for chaining.
       */
      public Builder setValue(long value) {
        copyOnWrite();
        instance.setValue(value);
        return this;
      }
      /**
       * <code>int64 value = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearValue() {
        copyOnWrite();
        instance.clearValue();
        return this;
      }

      /**
       * <code>uint32 sequence_no = 5;</code>
       * @return The sequenceNo.
       */
      @java.lang.Override
      public int getSequenceNo() {
        return instance.getSequenceNo();
      }
      /**
       * <code>uint32 sequence_no = 5;</code>
       * @param value The sequenceNo to set.
       * @return This builder for chaining.
       */
      public Builder setSequenceNo(int value) {
        copyOnWrite();
        instance.setSequenceNo(value);
        return this;
      }
      /**
       * <code>uint32 sequence_no = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearSequenceNo() {
        copyOnWrite();
        instance.clearSequenceNo();
        return this;
      }

      /**
       * <code>.chronik.SlpBurn slp_burn = 6;</code>
       */
      @java.lang.Override
      public boolean hasSlpBurn() {
        return instance.hasSlpBurn();
      }
      /**
       * <code>.chronik.SlpBurn slp_burn = 6;</code>
       */
      @java.lang.Override
      public chronik.Chronik.SlpBurn getSlpBurn() {
        return instance.getSlpBurn();
      }
      /**
       * <code>.chronik.SlpBurn slp_burn = 6;</code>
       */
      public Builder setSlpBurn(chronik.Chronik.SlpBurn value) {
        copyOnWrite();
        instance.setSlpBurn(value);
        return this;
        }
      /**
       * <code>.chronik.SlpBurn slp_burn = 6;</code>
       */
      public Builder setSlpBurn(
          chronik.Chronik.SlpBurn.Builder builderForValue) {
        copyOnWrite();
        instance.setSlpBurn(builderForValue.build());
        return this;
      }
      /**
       * <code>.chronik.SlpBurn slp_burn = 6;</code>
       */
      public Builder mergeSlpBurn(chronik.Chronik.SlpBurn value) {
        copyOnWrite();
        instance.mergeSlpBurn(value);
        return this;
      }
      /**
       * <code>.chronik.SlpBurn slp_burn = 6;</code>
       */
      public Builder clearSlpBurn() {  copyOnWrite();
        instance.clearSlpBurn();
        return this;
      }

      /**
       * <code>.chronik.SlpToken slp_token = 7;</code>
       */
      @java.lang.Override
      public boolean hasSlpToken() {
        return instance.hasSlpToken();
      }
      /**
       * <code>.chronik.SlpToken slp_token = 7;</code>
       */
      @java.lang.Override
      public chronik.Chronik.SlpToken getSlpToken() {
        return instance.getSlpToken();
      }
      /**
       * <code>.chronik.SlpToken slp_token = 7;</code>
       */
      public Builder setSlpToken(chronik.Chronik.SlpToken value) {
        copyOnWrite();
        instance.setSlpToken(value);
        return this;
        }
      /**
       * <code>.chronik.SlpToken slp_token = 7;</code>
       */
      public Builder setSlpToken(
          chronik.Chronik.SlpToken.Builder builderForValue) {
        copyOnWrite();
        instance.setSlpToken(builderForValue.build());
        return this;
      }
      /**
       * <code>.chronik.SlpToken slp_token = 7;</code>
       */
      public Builder mergeSlpToken(chronik.Chronik.SlpToken value) {
        copyOnWrite();
        instance.mergeSlpToken(value);
        return this;
      }
      /**
       * <code>.chronik.SlpToken slp_token = 7;</code>
       */
      public Builder clearSlpToken() {  copyOnWrite();
        instance.clearSlpToken();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:chronik.TxInput)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new chronik.Chronik.TxInput();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "prevOut_",
              "inputScript_",
              "outputScript_",
              "value_",
              "sequenceNo_",
              "slpBurn_",
              "slpToken_",
            };
            java.lang.String info =
                "\u0000\u0007\u0000\u0000\u0001\u0007\u0007\u0000\u0000\u0000\u0001\t\u0002\n\u0003" +
                "\n\u0004\u0002\u0005\u000b\u0006\t\u0007\t";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<chronik.Chronik.TxInput> parser = PARSER;
          if (parser == null) {
            synchronized (chronik.Chronik.TxInput.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<chronik.Chronik.TxInput>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:chronik.TxInput)
    private static final chronik.Chronik.TxInput DEFAULT_INSTANCE;
    static {
      TxInput defaultInstance = new TxInput();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        TxInput.class, defaultInstance);
    }

    public static chronik.Chronik.TxInput getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<TxInput> PARSER;

    public static com.google.protobuf.Parser<TxInput> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface TxOutputOrBuilder extends
      // @@protoc_insertion_point(interface_extends:chronik.TxOutput)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>int64 value = 1;</code>
     * @return The value.
     */
    long getValue();

    /**
     * <code>bytes output_script = 2;</code>
     * @return The outputScript.
     */
    com.google.protobuf.ByteString getOutputScript();

    /**
     * <code>.chronik.SlpToken slp_token = 3;</code>
     * @return Whether the slpToken field is set.
     */
    boolean hasSlpToken();
    /**
     * <code>.chronik.SlpToken slp_token = 3;</code>
     * @return The slpToken.
     */
    chronik.Chronik.SlpToken getSlpToken();

    /**
     * <code>.chronik.OutPoint spent_by = 4;</code>
     * @return Whether the spentBy field is set.
     */
    boolean hasSpentBy();
    /**
     * <code>.chronik.OutPoint spent_by = 4;</code>
     * @return The spentBy.
     */
    chronik.Chronik.OutPoint getSpentBy();
  }
  /**
   * Protobuf type {@code chronik.TxOutput}
   */
  public  static final class TxOutput extends
      com.google.protobuf.GeneratedMessageLite<
          TxOutput, TxOutput.Builder> implements
      // @@protoc_insertion_point(message_implements:chronik.TxOutput)
      TxOutputOrBuilder {
    private TxOutput() {
      outputScript_ = com.google.protobuf.ByteString.EMPTY;
    }
    public static final int VALUE_FIELD_NUMBER = 1;
    private long value_;
    /**
     * <code>int64 value = 1;</code>
     * @return The value.
     */
    @java.lang.Override
    public long getValue() {
      return value_;
    }
    /**
     * <code>int64 value = 1;</code>
     * @param value The value to set.
     */
    private void setValue(long value) {
      
      value_ = value;
    }
    /**
     * <code>int64 value = 1;</code>
     */
    private void clearValue() {

      value_ = 0L;
    }

    public static final int OUTPUT_SCRIPT_FIELD_NUMBER = 2;
    private com.google.protobuf.ByteString outputScript_;
    /**
     * <code>bytes output_script = 2;</code>
     * @return The outputScript.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getOutputScript() {
      return outputScript_;
    }
    /**
     * <code>bytes output_script = 2;</code>
     * @param value The outputScript to set.
     */
    private void setOutputScript(com.google.protobuf.ByteString value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      outputScript_ = value;
    }
    /**
     * <code>bytes output_script = 2;</code>
     */
    private void clearOutputScript() {

      outputScript_ = getDefaultInstance().getOutputScript();
    }

    public static final int SLP_TOKEN_FIELD_NUMBER = 3;
    private chronik.Chronik.SlpToken slpToken_;
    /**
     * <code>.chronik.SlpToken slp_token = 3;</code>
     */
    @java.lang.Override
    public boolean hasSlpToken() {
      return slpToken_ != null;
    }
    /**
     * <code>.chronik.SlpToken slp_token = 3;</code>
     */
    @java.lang.Override
    public chronik.Chronik.SlpToken getSlpToken() {
      return slpToken_ == null ? chronik.Chronik.SlpToken.getDefaultInstance() : slpToken_;
    }
    /**
     * <code>.chronik.SlpToken slp_token = 3;</code>
     */
    private void setSlpToken(chronik.Chronik.SlpToken value) {
      value.getClass();
  slpToken_ = value;

      }
    /**
     * <code>.chronik.SlpToken slp_token = 3;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeSlpToken(chronik.Chronik.SlpToken value) {
      value.getClass();
  if (slpToken_ != null &&
          slpToken_ != chronik.Chronik.SlpToken.getDefaultInstance()) {
        slpToken_ =
          chronik.Chronik.SlpToken.newBuilder(slpToken_).mergeFrom(value).buildPartial();
      } else {
        slpToken_ = value;
      }

    }
    /**
     * <code>.chronik.SlpToken slp_token = 3;</code>
     */
    private void clearSlpToken() {  slpToken_ = null;

    }

    public static final int SPENT_BY_FIELD_NUMBER = 4;
    private chronik.Chronik.OutPoint spentBy_;
    /**
     * <code>.chronik.OutPoint spent_by = 4;</code>
     */
    @java.lang.Override
    public boolean hasSpentBy() {
      return spentBy_ != null;
    }
    /**
     * <code>.chronik.OutPoint spent_by = 4;</code>
     */
    @java.lang.Override
    public chronik.Chronik.OutPoint getSpentBy() {
      return spentBy_ == null ? chronik.Chronik.OutPoint.getDefaultInstance() : spentBy_;
    }
    /**
     * <code>.chronik.OutPoint spent_by = 4;</code>
     */
    private void setSpentBy(chronik.Chronik.OutPoint value) {
      value.getClass();
  spentBy_ = value;

      }
    /**
     * <code>.chronik.OutPoint spent_by = 4;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeSpentBy(chronik.Chronik.OutPoint value) {
      value.getClass();
  if (spentBy_ != null &&
          spentBy_ != chronik.Chronik.OutPoint.getDefaultInstance()) {
        spentBy_ =
          chronik.Chronik.OutPoint.newBuilder(spentBy_).mergeFrom(value).buildPartial();
      } else {
        spentBy_ = value;
      }

    }
    /**
     * <code>.chronik.OutPoint spent_by = 4;</code>
     */
    private void clearSpentBy() {  spentBy_ = null;

    }

    public static chronik.Chronik.TxOutput parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.TxOutput parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.TxOutput parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.TxOutput parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.TxOutput parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.TxOutput parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.TxOutput parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.TxOutput parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.TxOutput parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.TxOutput parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.TxOutput parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.TxOutput parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(chronik.Chronik.TxOutput prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code chronik.TxOutput}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          chronik.Chronik.TxOutput, Builder> implements
        // @@protoc_insertion_point(builder_implements:chronik.TxOutput)
        chronik.Chronik.TxOutputOrBuilder {
      // Construct using chronik.Chronik.TxOutput.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>int64 value = 1;</code>
       * @return The value.
       */
      @java.lang.Override
      public long getValue() {
        return instance.getValue();
      }
      /**
       * <code>int64 value = 1;</code>
       * @param value The value to set.
       * @return This builder for chaining.
       */
      public Builder setValue(long value) {
        copyOnWrite();
        instance.setValue(value);
        return this;
      }
      /**
       * <code>int64 value = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearValue() {
        copyOnWrite();
        instance.clearValue();
        return this;
      }

      /**
       * <code>bytes output_script = 2;</code>
       * @return The outputScript.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getOutputScript() {
        return instance.getOutputScript();
      }
      /**
       * <code>bytes output_script = 2;</code>
       * @param value The outputScript to set.
       * @return This builder for chaining.
       */
      public Builder setOutputScript(com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setOutputScript(value);
        return this;
      }
      /**
       * <code>bytes output_script = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearOutputScript() {
        copyOnWrite();
        instance.clearOutputScript();
        return this;
      }

      /**
       * <code>.chronik.SlpToken slp_token = 3;</code>
       */
      @java.lang.Override
      public boolean hasSlpToken() {
        return instance.hasSlpToken();
      }
      /**
       * <code>.chronik.SlpToken slp_token = 3;</code>
       */
      @java.lang.Override
      public chronik.Chronik.SlpToken getSlpToken() {
        return instance.getSlpToken();
      }
      /**
       * <code>.chronik.SlpToken slp_token = 3;</code>
       */
      public Builder setSlpToken(chronik.Chronik.SlpToken value) {
        copyOnWrite();
        instance.setSlpToken(value);
        return this;
        }
      /**
       * <code>.chronik.SlpToken slp_token = 3;</code>
       */
      public Builder setSlpToken(
          chronik.Chronik.SlpToken.Builder builderForValue) {
        copyOnWrite();
        instance.setSlpToken(builderForValue.build());
        return this;
      }
      /**
       * <code>.chronik.SlpToken slp_token = 3;</code>
       */
      public Builder mergeSlpToken(chronik.Chronik.SlpToken value) {
        copyOnWrite();
        instance.mergeSlpToken(value);
        return this;
      }
      /**
       * <code>.chronik.SlpToken slp_token = 3;</code>
       */
      public Builder clearSlpToken() {  copyOnWrite();
        instance.clearSlpToken();
        return this;
      }

      /**
       * <code>.chronik.OutPoint spent_by = 4;</code>
       */
      @java.lang.Override
      public boolean hasSpentBy() {
        return instance.hasSpentBy();
      }
      /**
       * <code>.chronik.OutPoint spent_by = 4;</code>
       */
      @java.lang.Override
      public chronik.Chronik.OutPoint getSpentBy() {
        return instance.getSpentBy();
      }
      /**
       * <code>.chronik.OutPoint spent_by = 4;</code>
       */
      public Builder setSpentBy(chronik.Chronik.OutPoint value) {
        copyOnWrite();
        instance.setSpentBy(value);
        return this;
        }
      /**
       * <code>.chronik.OutPoint spent_by = 4;</code>
       */
      public Builder setSpentBy(
          chronik.Chronik.OutPoint.Builder builderForValue) {
        copyOnWrite();
        instance.setSpentBy(builderForValue.build());
        return this;
      }
      /**
       * <code>.chronik.OutPoint spent_by = 4;</code>
       */
      public Builder mergeSpentBy(chronik.Chronik.OutPoint value) {
        copyOnWrite();
        instance.mergeSpentBy(value);
        return this;
      }
      /**
       * <code>.chronik.OutPoint spent_by = 4;</code>
       */
      public Builder clearSpentBy() {  copyOnWrite();
        instance.clearSpentBy();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:chronik.TxOutput)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new chronik.Chronik.TxOutput();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "value_",
              "outputScript_",
              "slpToken_",
              "spentBy_",
            };
            java.lang.String info =
                "\u0000\u0004\u0000\u0000\u0001\u0004\u0004\u0000\u0000\u0000\u0001\u0002\u0002\n" +
                "\u0003\t\u0004\t";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<chronik.Chronik.TxOutput> parser = PARSER;
          if (parser == null) {
            synchronized (chronik.Chronik.TxOutput.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<chronik.Chronik.TxOutput>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:chronik.TxOutput)
    private static final chronik.Chronik.TxOutput DEFAULT_INSTANCE;
    static {
      TxOutput defaultInstance = new TxOutput();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        TxOutput.class, defaultInstance);
    }

    public static chronik.Chronik.TxOutput getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<TxOutput> PARSER;

    public static com.google.protobuf.Parser<TxOutput> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface BlockMetadataOrBuilder extends
      // @@protoc_insertion_point(interface_extends:chronik.BlockMetadata)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>int32 height = 1;</code>
     * @return The height.
     */
    int getHeight();

    /**
     * <code>bytes hash = 2;</code>
     * @return The hash.
     */
    com.google.protobuf.ByteString getHash();

    /**
     * <code>int64 timestamp = 3;</code>
     * @return The timestamp.
     */
    long getTimestamp();
  }
  /**
   * Protobuf type {@code chronik.BlockMetadata}
   */
  public  static final class BlockMetadata extends
      com.google.protobuf.GeneratedMessageLite<
          BlockMetadata, BlockMetadata.Builder> implements
      // @@protoc_insertion_point(message_implements:chronik.BlockMetadata)
      BlockMetadataOrBuilder {
    private BlockMetadata() {
      hash_ = com.google.protobuf.ByteString.EMPTY;
    }
    public static final int HEIGHT_FIELD_NUMBER = 1;
    private int height_;
    /**
     * <code>int32 height = 1;</code>
     * @return The height.
     */
    @java.lang.Override
    public int getHeight() {
      return height_;
    }
    /**
     * <code>int32 height = 1;</code>
     * @param value The height to set.
     */
    private void setHeight(int value) {
      
      height_ = value;
    }
    /**
     * <code>int32 height = 1;</code>
     */
    private void clearHeight() {

      height_ = 0;
    }

    public static final int HASH_FIELD_NUMBER = 2;
    private com.google.protobuf.ByteString hash_;
    /**
     * <code>bytes hash = 2;</code>
     * @return The hash.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getHash() {
      return hash_;
    }
    /**
     * <code>bytes hash = 2;</code>
     * @param value The hash to set.
     */
    private void setHash(com.google.protobuf.ByteString value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      hash_ = value;
    }
    /**
     * <code>bytes hash = 2;</code>
     */
    private void clearHash() {

      hash_ = getDefaultInstance().getHash();
    }

    public static final int TIMESTAMP_FIELD_NUMBER = 3;
    private long timestamp_;
    /**
     * <code>int64 timestamp = 3;</code>
     * @return The timestamp.
     */
    @java.lang.Override
    public long getTimestamp() {
      return timestamp_;
    }
    /**
     * <code>int64 timestamp = 3;</code>
     * @param value The timestamp to set.
     */
    private void setTimestamp(long value) {
      
      timestamp_ = value;
    }
    /**
     * <code>int64 timestamp = 3;</code>
     */
    private void clearTimestamp() {

      timestamp_ = 0L;
    }

    public static chronik.Chronik.BlockMetadata parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.BlockMetadata parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.BlockMetadata parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.BlockMetadata parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.BlockMetadata parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.BlockMetadata parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.BlockMetadata parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.BlockMetadata parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.BlockMetadata parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.BlockMetadata parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.BlockMetadata parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.BlockMetadata parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(chronik.Chronik.BlockMetadata prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code chronik.BlockMetadata}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          chronik.Chronik.BlockMetadata, Builder> implements
        // @@protoc_insertion_point(builder_implements:chronik.BlockMetadata)
        chronik.Chronik.BlockMetadataOrBuilder {
      // Construct using chronik.Chronik.BlockMetadata.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>int32 height = 1;</code>
       * @return The height.
       */
      @java.lang.Override
      public int getHeight() {
        return instance.getHeight();
      }
      /**
       * <code>int32 height = 1;</code>
       * @param value The height to set.
       * @return This builder for chaining.
       */
      public Builder setHeight(int value) {
        copyOnWrite();
        instance.setHeight(value);
        return this;
      }
      /**
       * <code>int32 height = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearHeight() {
        copyOnWrite();
        instance.clearHeight();
        return this;
      }

      /**
       * <code>bytes hash = 2;</code>
       * @return The hash.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getHash() {
        return instance.getHash();
      }
      /**
       * <code>bytes hash = 2;</code>
       * @param value The hash to set.
       * @return This builder for chaining.
       */
      public Builder setHash(com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setHash(value);
        return this;
      }
      /**
       * <code>bytes hash = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearHash() {
        copyOnWrite();
        instance.clearHash();
        return this;
      }

      /**
       * <code>int64 timestamp = 3;</code>
       * @return The timestamp.
       */
      @java.lang.Override
      public long getTimestamp() {
        return instance.getTimestamp();
      }
      /**
       * <code>int64 timestamp = 3;</code>
       * @param value The timestamp to set.
       * @return This builder for chaining.
       */
      public Builder setTimestamp(long value) {
        copyOnWrite();
        instance.setTimestamp(value);
        return this;
      }
      /**
       * <code>int64 timestamp = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearTimestamp() {
        copyOnWrite();
        instance.clearTimestamp();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:chronik.BlockMetadata)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new chronik.Chronik.BlockMetadata();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "height_",
              "hash_",
              "timestamp_",
            };
            java.lang.String info =
                "\u0000\u0003\u0000\u0000\u0001\u0003\u0003\u0000\u0000\u0000\u0001\u0004\u0002\n" +
                "\u0003\u0002";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<chronik.Chronik.BlockMetadata> parser = PARSER;
          if (parser == null) {
            synchronized (chronik.Chronik.BlockMetadata.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<chronik.Chronik.BlockMetadata>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:chronik.BlockMetadata)
    private static final chronik.Chronik.BlockMetadata DEFAULT_INSTANCE;
    static {
      BlockMetadata defaultInstance = new BlockMetadata();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        BlockMetadata.class, defaultInstance);
    }

    public static chronik.Chronik.BlockMetadata getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<BlockMetadata> PARSER;

    public static com.google.protobuf.Parser<BlockMetadata> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface OutPointOrBuilder extends
      // @@protoc_insertion_point(interface_extends:chronik.OutPoint)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>bytes txid = 1;</code>
     * @return The txid.
     */
    com.google.protobuf.ByteString getTxid();

    /**
     * <code>uint32 out_idx = 2;</code>
     * @return The outIdx.
     */
    int getOutIdx();
  }
  /**
   * Protobuf type {@code chronik.OutPoint}
   */
  public  static final class OutPoint extends
      com.google.protobuf.GeneratedMessageLite<
          OutPoint, OutPoint.Builder> implements
      // @@protoc_insertion_point(message_implements:chronik.OutPoint)
      OutPointOrBuilder {
    private OutPoint() {
      txid_ = com.google.protobuf.ByteString.EMPTY;
    }
    public static final int TXID_FIELD_NUMBER = 1;
    private com.google.protobuf.ByteString txid_;
    /**
     * <code>bytes txid = 1;</code>
     * @return The txid.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getTxid() {
      return txid_;
    }
    /**
     * <code>bytes txid = 1;</code>
     * @param value The txid to set.
     */
    private void setTxid(com.google.protobuf.ByteString value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      txid_ = value;
    }
    /**
     * <code>bytes txid = 1;</code>
     */
    private void clearTxid() {

      txid_ = getDefaultInstance().getTxid();
    }

    public static final int OUT_IDX_FIELD_NUMBER = 2;
    private int outIdx_;
    /**
     * <code>uint32 out_idx = 2;</code>
     * @return The outIdx.
     */
    @java.lang.Override
    public int getOutIdx() {
      return outIdx_;
    }
    /**
     * <code>uint32 out_idx = 2;</code>
     * @param value The outIdx to set.
     */
    private void setOutIdx(int value) {
      
      outIdx_ = value;
    }
    /**
     * <code>uint32 out_idx = 2;</code>
     */
    private void clearOutIdx() {

      outIdx_ = 0;
    }

    public static chronik.Chronik.OutPoint parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.OutPoint parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.OutPoint parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.OutPoint parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.OutPoint parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.OutPoint parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.OutPoint parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.OutPoint parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.OutPoint parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.OutPoint parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.OutPoint parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.OutPoint parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(chronik.Chronik.OutPoint prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code chronik.OutPoint}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          chronik.Chronik.OutPoint, Builder> implements
        // @@protoc_insertion_point(builder_implements:chronik.OutPoint)
        chronik.Chronik.OutPointOrBuilder {
      // Construct using chronik.Chronik.OutPoint.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>bytes txid = 1;</code>
       * @return The txid.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getTxid() {
        return instance.getTxid();
      }
      /**
       * <code>bytes txid = 1;</code>
       * @param value The txid to set.
       * @return This builder for chaining.
       */
      public Builder setTxid(com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setTxid(value);
        return this;
      }
      /**
       * <code>bytes txid = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearTxid() {
        copyOnWrite();
        instance.clearTxid();
        return this;
      }

      /**
       * <code>uint32 out_idx = 2;</code>
       * @return The outIdx.
       */
      @java.lang.Override
      public int getOutIdx() {
        return instance.getOutIdx();
      }
      /**
       * <code>uint32 out_idx = 2;</code>
       * @param value The outIdx to set.
       * @return This builder for chaining.
       */
      public Builder setOutIdx(int value) {
        copyOnWrite();
        instance.setOutIdx(value);
        return this;
      }
      /**
       * <code>uint32 out_idx = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearOutIdx() {
        copyOnWrite();
        instance.clearOutIdx();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:chronik.OutPoint)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new chronik.Chronik.OutPoint();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "txid_",
              "outIdx_",
            };
            java.lang.String info =
                "\u0000\u0002\u0000\u0000\u0001\u0002\u0002\u0000\u0000\u0000\u0001\n\u0002\u000b" +
                "";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<chronik.Chronik.OutPoint> parser = PARSER;
          if (parser == null) {
            synchronized (chronik.Chronik.OutPoint.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<chronik.Chronik.OutPoint>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:chronik.OutPoint)
    private static final chronik.Chronik.OutPoint DEFAULT_INSTANCE;
    static {
      OutPoint defaultInstance = new OutPoint();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        OutPoint.class, defaultInstance);
    }

    public static chronik.Chronik.OutPoint getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<OutPoint> PARSER;

    public static com.google.protobuf.Parser<OutPoint> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface SlpTokenOrBuilder extends
      // @@protoc_insertion_point(interface_extends:chronik.SlpToken)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>uint64 amount = 1;</code>
     * @return The amount.
     */
    long getAmount();

    /**
     * <code>bool is_mint_baton = 2;</code>
     * @return The isMintBaton.
     */
    boolean getIsMintBaton();
  }
  /**
   * Protobuf type {@code chronik.SlpToken}
   */
  public  static final class SlpToken extends
      com.google.protobuf.GeneratedMessageLite<
          SlpToken, SlpToken.Builder> implements
      // @@protoc_insertion_point(message_implements:chronik.SlpToken)
      SlpTokenOrBuilder {
    private SlpToken() {
    }
    public static final int AMOUNT_FIELD_NUMBER = 1;
    private long amount_;
    /**
     * <code>uint64 amount = 1;</code>
     * @return The amount.
     */
    @java.lang.Override
    public long getAmount() {
      return amount_;
    }
    /**
     * <code>uint64 amount = 1;</code>
     * @param value The amount to set.
     */
    private void setAmount(long value) {
      
      amount_ = value;
    }
    /**
     * <code>uint64 amount = 1;</code>
     */
    private void clearAmount() {

      amount_ = 0L;
    }

    public static final int IS_MINT_BATON_FIELD_NUMBER = 2;
    private boolean isMintBaton_;
    /**
     * <code>bool is_mint_baton = 2;</code>
     * @return The isMintBaton.
     */
    @java.lang.Override
    public boolean getIsMintBaton() {
      return isMintBaton_;
    }
    /**
     * <code>bool is_mint_baton = 2;</code>
     * @param value The isMintBaton to set.
     */
    private void setIsMintBaton(boolean value) {
      
      isMintBaton_ = value;
    }
    /**
     * <code>bool is_mint_baton = 2;</code>
     */
    private void clearIsMintBaton() {

      isMintBaton_ = false;
    }

    public static chronik.Chronik.SlpToken parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.SlpToken parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.SlpToken parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.SlpToken parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.SlpToken parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.SlpToken parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.SlpToken parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.SlpToken parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.SlpToken parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.SlpToken parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.SlpToken parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.SlpToken parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(chronik.Chronik.SlpToken prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code chronik.SlpToken}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          chronik.Chronik.SlpToken, Builder> implements
        // @@protoc_insertion_point(builder_implements:chronik.SlpToken)
        chronik.Chronik.SlpTokenOrBuilder {
      // Construct using chronik.Chronik.SlpToken.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>uint64 amount = 1;</code>
       * @return The amount.
       */
      @java.lang.Override
      public long getAmount() {
        return instance.getAmount();
      }
      /**
       * <code>uint64 amount = 1;</code>
       * @param value The amount to set.
       * @return This builder for chaining.
       */
      public Builder setAmount(long value) {
        copyOnWrite();
        instance.setAmount(value);
        return this;
      }
      /**
       * <code>uint64 amount = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearAmount() {
        copyOnWrite();
        instance.clearAmount();
        return this;
      }

      /**
       * <code>bool is_mint_baton = 2;</code>
       * @return The isMintBaton.
       */
      @java.lang.Override
      public boolean getIsMintBaton() {
        return instance.getIsMintBaton();
      }
      /**
       * <code>bool is_mint_baton = 2;</code>
       * @param value The isMintBaton to set.
       * @return This builder for chaining.
       */
      public Builder setIsMintBaton(boolean value) {
        copyOnWrite();
        instance.setIsMintBaton(value);
        return this;
      }
      /**
       * <code>bool is_mint_baton = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearIsMintBaton() {
        copyOnWrite();
        instance.clearIsMintBaton();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:chronik.SlpToken)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new chronik.Chronik.SlpToken();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "amount_",
              "isMintBaton_",
            };
            java.lang.String info =
                "\u0000\u0002\u0000\u0000\u0001\u0002\u0002\u0000\u0000\u0000\u0001\u0003\u0002\u0007" +
                "";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<chronik.Chronik.SlpToken> parser = PARSER;
          if (parser == null) {
            synchronized (chronik.Chronik.SlpToken.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<chronik.Chronik.SlpToken>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:chronik.SlpToken)
    private static final chronik.Chronik.SlpToken DEFAULT_INSTANCE;
    static {
      SlpToken defaultInstance = new SlpToken();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        SlpToken.class, defaultInstance);
    }

    public static chronik.Chronik.SlpToken getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<SlpToken> PARSER;

    public static com.google.protobuf.Parser<SlpToken> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface SlpBurnOrBuilder extends
      // @@protoc_insertion_point(interface_extends:chronik.SlpBurn)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>.chronik.SlpToken token = 1;</code>
     * @return Whether the token field is set.
     */
    boolean hasToken();
    /**
     * <code>.chronik.SlpToken token = 1;</code>
     * @return The token.
     */
    chronik.Chronik.SlpToken getToken();

    /**
     * <code>bytes token_id = 2;</code>
     * @return The tokenId.
     */
    com.google.protobuf.ByteString getTokenId();
  }
  /**
   * Protobuf type {@code chronik.SlpBurn}
   */
  public  static final class SlpBurn extends
      com.google.protobuf.GeneratedMessageLite<
          SlpBurn, SlpBurn.Builder> implements
      // @@protoc_insertion_point(message_implements:chronik.SlpBurn)
      SlpBurnOrBuilder {
    private SlpBurn() {
      tokenId_ = com.google.protobuf.ByteString.EMPTY;
    }
    public static final int TOKEN_FIELD_NUMBER = 1;
    private chronik.Chronik.SlpToken token_;
    /**
     * <code>.chronik.SlpToken token = 1;</code>
     */
    @java.lang.Override
    public boolean hasToken() {
      return token_ != null;
    }
    /**
     * <code>.chronik.SlpToken token = 1;</code>
     */
    @java.lang.Override
    public chronik.Chronik.SlpToken getToken() {
      return token_ == null ? chronik.Chronik.SlpToken.getDefaultInstance() : token_;
    }
    /**
     * <code>.chronik.SlpToken token = 1;</code>
     */
    private void setToken(chronik.Chronik.SlpToken value) {
      value.getClass();
  token_ = value;

      }
    /**
     * <code>.chronik.SlpToken token = 1;</code>
     */
    @java.lang.SuppressWarnings({"ReferenceEquality"})
    private void mergeToken(chronik.Chronik.SlpToken value) {
      value.getClass();
  if (token_ != null &&
          token_ != chronik.Chronik.SlpToken.getDefaultInstance()) {
        token_ =
          chronik.Chronik.SlpToken.newBuilder(token_).mergeFrom(value).buildPartial();
      } else {
        token_ = value;
      }

    }
    /**
     * <code>.chronik.SlpToken token = 1;</code>
     */
    private void clearToken() {  token_ = null;

    }

    public static final int TOKEN_ID_FIELD_NUMBER = 2;
    private com.google.protobuf.ByteString tokenId_;
    /**
     * <code>bytes token_id = 2;</code>
     * @return The tokenId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getTokenId() {
      return tokenId_;
    }
    /**
     * <code>bytes token_id = 2;</code>
     * @param value The tokenId to set.
     */
    private void setTokenId(com.google.protobuf.ByteString value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      tokenId_ = value;
    }
    /**
     * <code>bytes token_id = 2;</code>
     */
    private void clearTokenId() {

      tokenId_ = getDefaultInstance().getTokenId();
    }

    public static chronik.Chronik.SlpBurn parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.SlpBurn parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.SlpBurn parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.SlpBurn parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.SlpBurn parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.SlpBurn parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.SlpBurn parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.SlpBurn parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.SlpBurn parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.SlpBurn parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.SlpBurn parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.SlpBurn parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(chronik.Chronik.SlpBurn prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code chronik.SlpBurn}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          chronik.Chronik.SlpBurn, Builder> implements
        // @@protoc_insertion_point(builder_implements:chronik.SlpBurn)
        chronik.Chronik.SlpBurnOrBuilder {
      // Construct using chronik.Chronik.SlpBurn.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>.chronik.SlpToken token = 1;</code>
       */
      @java.lang.Override
      public boolean hasToken() {
        return instance.hasToken();
      }
      /**
       * <code>.chronik.SlpToken token = 1;</code>
       */
      @java.lang.Override
      public chronik.Chronik.SlpToken getToken() {
        return instance.getToken();
      }
      /**
       * <code>.chronik.SlpToken token = 1;</code>
       */
      public Builder setToken(chronik.Chronik.SlpToken value) {
        copyOnWrite();
        instance.setToken(value);
        return this;
        }
      /**
       * <code>.chronik.SlpToken token = 1;</code>
       */
      public Builder setToken(
          chronik.Chronik.SlpToken.Builder builderForValue) {
        copyOnWrite();
        instance.setToken(builderForValue.build());
        return this;
      }
      /**
       * <code>.chronik.SlpToken token = 1;</code>
       */
      public Builder mergeToken(chronik.Chronik.SlpToken value) {
        copyOnWrite();
        instance.mergeToken(value);
        return this;
      }
      /**
       * <code>.chronik.SlpToken token = 1;</code>
       */
      public Builder clearToken() {  copyOnWrite();
        instance.clearToken();
        return this;
      }

      /**
       * <code>bytes token_id = 2;</code>
       * @return The tokenId.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getTokenId() {
        return instance.getTokenId();
      }
      /**
       * <code>bytes token_id = 2;</code>
       * @param value The tokenId to set.
       * @return This builder for chaining.
       */
      public Builder setTokenId(com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setTokenId(value);
        return this;
      }
      /**
       * <code>bytes token_id = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearTokenId() {
        copyOnWrite();
        instance.clearTokenId();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:chronik.SlpBurn)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new chronik.Chronik.SlpBurn();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "token_",
              "tokenId_",
            };
            java.lang.String info =
                "\u0000\u0002\u0000\u0000\u0001\u0002\u0002\u0000\u0000\u0000\u0001\t\u0002\n";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<chronik.Chronik.SlpBurn> parser = PARSER;
          if (parser == null) {
            synchronized (chronik.Chronik.SlpBurn.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<chronik.Chronik.SlpBurn>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:chronik.SlpBurn)
    private static final chronik.Chronik.SlpBurn DEFAULT_INSTANCE;
    static {
      SlpBurn defaultInstance = new SlpBurn();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        SlpBurn.class, defaultInstance);
    }

    public static chronik.Chronik.SlpBurn getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<SlpBurn> PARSER;

    public static com.google.protobuf.Parser<SlpBurn> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface SlpGenesisInfoOrBuilder extends
      // @@protoc_insertion_point(interface_extends:chronik.SlpGenesisInfo)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>bytes token_ticker = 1;</code>
     * @return The tokenTicker.
     */
    com.google.protobuf.ByteString getTokenTicker();

    /**
     * <code>bytes token_name = 2;</code>
     * @return The tokenName.
     */
    com.google.protobuf.ByteString getTokenName();

    /**
     * <code>bytes token_document_url = 3;</code>
     * @return The tokenDocumentUrl.
     */
    com.google.protobuf.ByteString getTokenDocumentUrl();

    /**
     * <code>bytes token_document_hash = 4;</code>
     * @return The tokenDocumentHash.
     */
    com.google.protobuf.ByteString getTokenDocumentHash();

    /**
     * <code>uint32 decimals = 5;</code>
     * @return The decimals.
     */
    int getDecimals();
  }
  /**
   * Protobuf type {@code chronik.SlpGenesisInfo}
   */
  public  static final class SlpGenesisInfo extends
      com.google.protobuf.GeneratedMessageLite<
          SlpGenesisInfo, SlpGenesisInfo.Builder> implements
      // @@protoc_insertion_point(message_implements:chronik.SlpGenesisInfo)
      SlpGenesisInfoOrBuilder {
    private SlpGenesisInfo() {
      tokenTicker_ = com.google.protobuf.ByteString.EMPTY;
      tokenName_ = com.google.protobuf.ByteString.EMPTY;
      tokenDocumentUrl_ = com.google.protobuf.ByteString.EMPTY;
      tokenDocumentHash_ = com.google.protobuf.ByteString.EMPTY;
    }
    public static final int TOKEN_TICKER_FIELD_NUMBER = 1;
    private com.google.protobuf.ByteString tokenTicker_;
    /**
     * <code>bytes token_ticker = 1;</code>
     * @return The tokenTicker.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getTokenTicker() {
      return tokenTicker_;
    }
    /**
     * <code>bytes token_ticker = 1;</code>
     * @param value The tokenTicker to set.
     */
    private void setTokenTicker(com.google.protobuf.ByteString value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      tokenTicker_ = value;
    }
    /**
     * <code>bytes token_ticker = 1;</code>
     */
    private void clearTokenTicker() {

      tokenTicker_ = getDefaultInstance().getTokenTicker();
    }

    public static final int TOKEN_NAME_FIELD_NUMBER = 2;
    private com.google.protobuf.ByteString tokenName_;
    /**
     * <code>bytes token_name = 2;</code>
     * @return The tokenName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getTokenName() {
      return tokenName_;
    }
    /**
     * <code>bytes token_name = 2;</code>
     * @param value The tokenName to set.
     */
    private void setTokenName(com.google.protobuf.ByteString value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      tokenName_ = value;
    }
    /**
     * <code>bytes token_name = 2;</code>
     */
    private void clearTokenName() {

      tokenName_ = getDefaultInstance().getTokenName();
    }

    public static final int TOKEN_DOCUMENT_URL_FIELD_NUMBER = 3;
    private com.google.protobuf.ByteString tokenDocumentUrl_;
    /**
     * <code>bytes token_document_url = 3;</code>
     * @return The tokenDocumentUrl.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getTokenDocumentUrl() {
      return tokenDocumentUrl_;
    }
    /**
     * <code>bytes token_document_url = 3;</code>
     * @param value The tokenDocumentUrl to set.
     */
    private void setTokenDocumentUrl(com.google.protobuf.ByteString value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      tokenDocumentUrl_ = value;
    }
    /**
     * <code>bytes token_document_url = 3;</code>
     */
    private void clearTokenDocumentUrl() {

      tokenDocumentUrl_ = getDefaultInstance().getTokenDocumentUrl();
    }

    public static final int TOKEN_DOCUMENT_HASH_FIELD_NUMBER = 4;
    private com.google.protobuf.ByteString tokenDocumentHash_;
    /**
     * <code>bytes token_document_hash = 4;</code>
     * @return The tokenDocumentHash.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getTokenDocumentHash() {
      return tokenDocumentHash_;
    }
    /**
     * <code>bytes token_document_hash = 4;</code>
     * @param value The tokenDocumentHash to set.
     */
    private void setTokenDocumentHash(com.google.protobuf.ByteString value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      tokenDocumentHash_ = value;
    }
    /**
     * <code>bytes token_document_hash = 4;</code>
     */
    private void clearTokenDocumentHash() {

      tokenDocumentHash_ = getDefaultInstance().getTokenDocumentHash();
    }

    public static final int DECIMALS_FIELD_NUMBER = 5;
    private int decimals_;
    /**
     * <code>uint32 decimals = 5;</code>
     * @return The decimals.
     */
    @java.lang.Override
    public int getDecimals() {
      return decimals_;
    }
    /**
     * <code>uint32 decimals = 5;</code>
     * @param value The decimals to set.
     */
    private void setDecimals(int value) {
      
      decimals_ = value;
    }
    /**
     * <code>uint32 decimals = 5;</code>
     */
    private void clearDecimals() {

      decimals_ = 0;
    }

    public static chronik.Chronik.SlpGenesisInfo parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.SlpGenesisInfo parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.SlpGenesisInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.SlpGenesisInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.SlpGenesisInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.SlpGenesisInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.SlpGenesisInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.SlpGenesisInfo parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.SlpGenesisInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.SlpGenesisInfo parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.SlpGenesisInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.SlpGenesisInfo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(chronik.Chronik.SlpGenesisInfo prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code chronik.SlpGenesisInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          chronik.Chronik.SlpGenesisInfo, Builder> implements
        // @@protoc_insertion_point(builder_implements:chronik.SlpGenesisInfo)
        chronik.Chronik.SlpGenesisInfoOrBuilder {
      // Construct using chronik.Chronik.SlpGenesisInfo.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>bytes token_ticker = 1;</code>
       * @return The tokenTicker.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getTokenTicker() {
        return instance.getTokenTicker();
      }
      /**
       * <code>bytes token_ticker = 1;</code>
       * @param value The tokenTicker to set.
       * @return This builder for chaining.
       */
      public Builder setTokenTicker(com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setTokenTicker(value);
        return this;
      }
      /**
       * <code>bytes token_ticker = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearTokenTicker() {
        copyOnWrite();
        instance.clearTokenTicker();
        return this;
      }

      /**
       * <code>bytes token_name = 2;</code>
       * @return The tokenName.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getTokenName() {
        return instance.getTokenName();
      }
      /**
       * <code>bytes token_name = 2;</code>
       * @param value The tokenName to set.
       * @return This builder for chaining.
       */
      public Builder setTokenName(com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setTokenName(value);
        return this;
      }
      /**
       * <code>bytes token_name = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearTokenName() {
        copyOnWrite();
        instance.clearTokenName();
        return this;
      }

      /**
       * <code>bytes token_document_url = 3;</code>
       * @return The tokenDocumentUrl.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getTokenDocumentUrl() {
        return instance.getTokenDocumentUrl();
      }
      /**
       * <code>bytes token_document_url = 3;</code>
       * @param value The tokenDocumentUrl to set.
       * @return This builder for chaining.
       */
      public Builder setTokenDocumentUrl(com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setTokenDocumentUrl(value);
        return this;
      }
      /**
       * <code>bytes token_document_url = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearTokenDocumentUrl() {
        copyOnWrite();
        instance.clearTokenDocumentUrl();
        return this;
      }

      /**
       * <code>bytes token_document_hash = 4;</code>
       * @return The tokenDocumentHash.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getTokenDocumentHash() {
        return instance.getTokenDocumentHash();
      }
      /**
       * <code>bytes token_document_hash = 4;</code>
       * @param value The tokenDocumentHash to set.
       * @return This builder for chaining.
       */
      public Builder setTokenDocumentHash(com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setTokenDocumentHash(value);
        return this;
      }
      /**
       * <code>bytes token_document_hash = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearTokenDocumentHash() {
        copyOnWrite();
        instance.clearTokenDocumentHash();
        return this;
      }

      /**
       * <code>uint32 decimals = 5;</code>
       * @return The decimals.
       */
      @java.lang.Override
      public int getDecimals() {
        return instance.getDecimals();
      }
      /**
       * <code>uint32 decimals = 5;</code>
       * @param value The decimals to set.
       * @return This builder for chaining.
       */
      public Builder setDecimals(int value) {
        copyOnWrite();
        instance.setDecimals(value);
        return this;
      }
      /**
       * <code>uint32 decimals = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearDecimals() {
        copyOnWrite();
        instance.clearDecimals();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:chronik.SlpGenesisInfo)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new chronik.Chronik.SlpGenesisInfo();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "tokenTicker_",
              "tokenName_",
              "tokenDocumentUrl_",
              "tokenDocumentHash_",
              "decimals_",
            };
            java.lang.String info =
                "\u0000\u0005\u0000\u0000\u0001\u0005\u0005\u0000\u0000\u0000\u0001\n\u0002\n\u0003" +
                "\n\u0004\n\u0005\u000b";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<chronik.Chronik.SlpGenesisInfo> parser = PARSER;
          if (parser == null) {
            synchronized (chronik.Chronik.SlpGenesisInfo.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<chronik.Chronik.SlpGenesisInfo>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:chronik.SlpGenesisInfo)
    private static final chronik.Chronik.SlpGenesisInfo DEFAULT_INSTANCE;
    static {
      SlpGenesisInfo defaultInstance = new SlpGenesisInfo();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        SlpGenesisInfo.class, defaultInstance);
    }

    public static chronik.Chronik.SlpGenesisInfo getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<SlpGenesisInfo> PARSER;

    public static com.google.protobuf.Parser<SlpGenesisInfo> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface UtxoStateOrBuilder extends
      // @@protoc_insertion_point(interface_extends:chronik.UtxoState)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>int32 height = 1;</code>
     * @return The height.
     */
    int getHeight();

    /**
     * <code>bool is_confirmed = 2;</code>
     * @return The isConfirmed.
     */
    boolean getIsConfirmed();

    /**
     * <code>.chronik.UtxoStateVariant state = 3;</code>
     * @return The enum numeric value on the wire for state.
     */
    int getStateValue();
    /**
     * <code>.chronik.UtxoStateVariant state = 3;</code>
     * @return The state.
     */
    chronik.Chronik.UtxoStateVariant getState();
  }
  /**
   * Protobuf type {@code chronik.UtxoState}
   */
  public  static final class UtxoState extends
      com.google.protobuf.GeneratedMessageLite<
          UtxoState, UtxoState.Builder> implements
      // @@protoc_insertion_point(message_implements:chronik.UtxoState)
      UtxoStateOrBuilder {
    private UtxoState() {
    }
    public static final int HEIGHT_FIELD_NUMBER = 1;
    private int height_;
    /**
     * <code>int32 height = 1;</code>
     * @return The height.
     */
    @java.lang.Override
    public int getHeight() {
      return height_;
    }
    /**
     * <code>int32 height = 1;</code>
     * @param value The height to set.
     */
    private void setHeight(int value) {
      
      height_ = value;
    }
    /**
     * <code>int32 height = 1;</code>
     */
    private void clearHeight() {

      height_ = 0;
    }

    public static final int IS_CONFIRMED_FIELD_NUMBER = 2;
    private boolean isConfirmed_;
    /**
     * <code>bool is_confirmed = 2;</code>
     * @return The isConfirmed.
     */
    @java.lang.Override
    public boolean getIsConfirmed() {
      return isConfirmed_;
    }
    /**
     * <code>bool is_confirmed = 2;</code>
     * @param value The isConfirmed to set.
     */
    private void setIsConfirmed(boolean value) {
      
      isConfirmed_ = value;
    }
    /**
     * <code>bool is_confirmed = 2;</code>
     */
    private void clearIsConfirmed() {

      isConfirmed_ = false;
    }

    public static final int STATE_FIELD_NUMBER = 3;
    private int state_;
    /**
     * <code>.chronik.UtxoStateVariant state = 3;</code>
     * @return The enum numeric value on the wire for state.
     */
    @java.lang.Override
    public int getStateValue() {
      return state_;
    }
    /**
     * <code>.chronik.UtxoStateVariant state = 3;</code>
     * @return The state.
     */
    @java.lang.Override
    public chronik.Chronik.UtxoStateVariant getState() {
      chronik.Chronik.UtxoStateVariant result = chronik.Chronik.UtxoStateVariant.forNumber(state_);
      return result == null ? chronik.Chronik.UtxoStateVariant.UNRECOGNIZED : result;
    }
    /**
     * <code>.chronik.UtxoStateVariant state = 3;</code>
     * @param value The enum numeric value on the wire for state to set.
     */
    private void setStateValue(int value) {
        state_ = value;
    }
    /**
     * <code>.chronik.UtxoStateVariant state = 3;</code>
     * @param value The state to set.
     */
    private void setState(chronik.Chronik.UtxoStateVariant value) {
      state_ = value.getNumber();

    }
    /**
     * <code>.chronik.UtxoStateVariant state = 3;</code>
     */
    private void clearState() {

      state_ = 0;
    }

    public static chronik.Chronik.UtxoState parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.UtxoState parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.UtxoState parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.UtxoState parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.UtxoState parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.UtxoState parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.UtxoState parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.UtxoState parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.UtxoState parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.UtxoState parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.UtxoState parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.UtxoState parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(chronik.Chronik.UtxoState prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code chronik.UtxoState}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          chronik.Chronik.UtxoState, Builder> implements
        // @@protoc_insertion_point(builder_implements:chronik.UtxoState)
        chronik.Chronik.UtxoStateOrBuilder {
      // Construct using chronik.Chronik.UtxoState.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>int32 height = 1;</code>
       * @return The height.
       */
      @java.lang.Override
      public int getHeight() {
        return instance.getHeight();
      }
      /**
       * <code>int32 height = 1;</code>
       * @param value The height to set.
       * @return This builder for chaining.
       */
      public Builder setHeight(int value) {
        copyOnWrite();
        instance.setHeight(value);
        return this;
      }
      /**
       * <code>int32 height = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearHeight() {
        copyOnWrite();
        instance.clearHeight();
        return this;
      }

      /**
       * <code>bool is_confirmed = 2;</code>
       * @return The isConfirmed.
       */
      @java.lang.Override
      public boolean getIsConfirmed() {
        return instance.getIsConfirmed();
      }
      /**
       * <code>bool is_confirmed = 2;</code>
       * @param value The isConfirmed to set.
       * @return This builder for chaining.
       */
      public Builder setIsConfirmed(boolean value) {
        copyOnWrite();
        instance.setIsConfirmed(value);
        return this;
      }
      /**
       * <code>bool is_confirmed = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearIsConfirmed() {
        copyOnWrite();
        instance.clearIsConfirmed();
        return this;
      }

      /**
       * <code>.chronik.UtxoStateVariant state = 3;</code>
       * @return The enum numeric value on the wire for state.
       */
      @java.lang.Override
      public int getStateValue() {
        return instance.getStateValue();
      }
      /**
       * <code>.chronik.UtxoStateVariant state = 3;</code>
       * @param value The state to set.
       * @return This builder for chaining.
       */
      public Builder setStateValue(int value) {
        copyOnWrite();
        instance.setStateValue(value);
        return this;
      }
      /**
       * <code>.chronik.UtxoStateVariant state = 3;</code>
       * @return The state.
       */
      @java.lang.Override
      public chronik.Chronik.UtxoStateVariant getState() {
        return instance.getState();
      }
      /**
       * <code>.chronik.UtxoStateVariant state = 3;</code>
       * @param value The enum numeric value on the wire for state to set.
       * @return This builder for chaining.
       */
      public Builder setState(chronik.Chronik.UtxoStateVariant value) {
        copyOnWrite();
        instance.setState(value);
        return this;
      }
      /**
       * <code>.chronik.UtxoStateVariant state = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearState() {
        copyOnWrite();
        instance.clearState();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:chronik.UtxoState)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new chronik.Chronik.UtxoState();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "height_",
              "isConfirmed_",
              "state_",
            };
            java.lang.String info =
                "\u0000\u0003\u0000\u0000\u0001\u0003\u0003\u0000\u0000\u0000\u0001\u0004\u0002\u0007" +
                "\u0003\f";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<chronik.Chronik.UtxoState> parser = PARSER;
          if (parser == null) {
            synchronized (chronik.Chronik.UtxoState.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<chronik.Chronik.UtxoState>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:chronik.UtxoState)
    private static final chronik.Chronik.UtxoState DEFAULT_INSTANCE;
    static {
      UtxoState defaultInstance = new UtxoState();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        UtxoState.class, defaultInstance);
    }

    public static chronik.Chronik.UtxoState getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<UtxoState> PARSER;

    public static com.google.protobuf.Parser<UtxoState> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface SubscriptionOrBuilder extends
      // @@protoc_insertion_point(interface_extends:chronik.Subscription)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>string script_type = 1;</code>
     * @return The scriptType.
     */
    java.lang.String getScriptType();
    /**
     * <code>string script_type = 1;</code>
     * @return The bytes for scriptType.
     */
    com.google.protobuf.ByteString
        getScriptTypeBytes();

    /**
     * <code>bytes payload = 2;</code>
     * @return The payload.
     */
    com.google.protobuf.ByteString getPayload();

    /**
     * <code>bool is_subscribe = 3;</code>
     * @return The isSubscribe.
     */
    boolean getIsSubscribe();
  }
  /**
   * Protobuf type {@code chronik.Subscription}
   */
  public  static final class Subscription extends
      com.google.protobuf.GeneratedMessageLite<
          Subscription, Subscription.Builder> implements
      // @@protoc_insertion_point(message_implements:chronik.Subscription)
      SubscriptionOrBuilder {
    private Subscription() {
      scriptType_ = "";
      payload_ = com.google.protobuf.ByteString.EMPTY;
    }
    public static final int SCRIPT_TYPE_FIELD_NUMBER = 1;
    private java.lang.String scriptType_;
    /**
     * <code>string script_type = 1;</code>
     * @return The scriptType.
     */
    @java.lang.Override
    public java.lang.String getScriptType() {
      return scriptType_;
    }
    /**
     * <code>string script_type = 1;</code>
     * @return The bytes for scriptType.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getScriptTypeBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(scriptType_);
    }
    /**
     * <code>string script_type = 1;</code>
     * @param value The scriptType to set.
     */
    private void setScriptType(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      scriptType_ = value;
    }
    /**
     * <code>string script_type = 1;</code>
     */
    private void clearScriptType() {

      scriptType_ = getDefaultInstance().getScriptType();
    }
    /**
     * <code>string script_type = 1;</code>
     * @param value The bytes for scriptType to set.
     */
    private void setScriptTypeBytes(
        com.google.protobuf.ByteString value) {
      checkByteStringIsUtf8(value);
      scriptType_ = value.toStringUtf8();

    }

    public static final int PAYLOAD_FIELD_NUMBER = 2;
    private com.google.protobuf.ByteString payload_;
    /**
     * <code>bytes payload = 2;</code>
     * @return The payload.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getPayload() {
      return payload_;
    }
    /**
     * <code>bytes payload = 2;</code>
     * @param value The payload to set.
     */
    private void setPayload(com.google.protobuf.ByteString value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      payload_ = value;
    }
    /**
     * <code>bytes payload = 2;</code>
     */
    private void clearPayload() {

      payload_ = getDefaultInstance().getPayload();
    }

    public static final int IS_SUBSCRIBE_FIELD_NUMBER = 3;
    private boolean isSubscribe_;
    /**
     * <code>bool is_subscribe = 3;</code>
     * @return The isSubscribe.
     */
    @java.lang.Override
    public boolean getIsSubscribe() {
      return isSubscribe_;
    }
    /**
     * <code>bool is_subscribe = 3;</code>
     * @param value The isSubscribe to set.
     */
    private void setIsSubscribe(boolean value) {
      
      isSubscribe_ = value;
    }
    /**
     * <code>bool is_subscribe = 3;</code>
     */
    private void clearIsSubscribe() {

      isSubscribe_ = false;
    }

    public static chronik.Chronik.Subscription parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.Subscription parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.Subscription parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.Subscription parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.Subscription parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.Subscription parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.Subscription parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.Subscription parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.Subscription parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.Subscription parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.Subscription parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.Subscription parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(chronik.Chronik.Subscription prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code chronik.Subscription}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          chronik.Chronik.Subscription, Builder> implements
        // @@protoc_insertion_point(builder_implements:chronik.Subscription)
        chronik.Chronik.SubscriptionOrBuilder {
      // Construct using chronik.Chronik.Subscription.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>string script_type = 1;</code>
       * @return The scriptType.
       */
      @java.lang.Override
      public java.lang.String getScriptType() {
        return instance.getScriptType();
      }
      /**
       * <code>string script_type = 1;</code>
       * @return The bytes for scriptType.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getScriptTypeBytes() {
        return instance.getScriptTypeBytes();
      }
      /**
       * <code>string script_type = 1;</code>
       * @param value The scriptType to set.
       * @return This builder for chaining.
       */
      public Builder setScriptType(
          java.lang.String value) {
        copyOnWrite();
        instance.setScriptType(value);
        return this;
      }
      /**
       * <code>string script_type = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearScriptType() {
        copyOnWrite();
        instance.clearScriptType();
        return this;
      }
      /**
       * <code>string script_type = 1;</code>
       * @param value The bytes for scriptType to set.
       * @return This builder for chaining.
       */
      public Builder setScriptTypeBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setScriptTypeBytes(value);
        return this;
      }

      /**
       * <code>bytes payload = 2;</code>
       * @return The payload.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getPayload() {
        return instance.getPayload();
      }
      /**
       * <code>bytes payload = 2;</code>
       * @param value The payload to set.
       * @return This builder for chaining.
       */
      public Builder setPayload(com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setPayload(value);
        return this;
      }
      /**
       * <code>bytes payload = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearPayload() {
        copyOnWrite();
        instance.clearPayload();
        return this;
      }

      /**
       * <code>bool is_subscribe = 3;</code>
       * @return The isSubscribe.
       */
      @java.lang.Override
      public boolean getIsSubscribe() {
        return instance.getIsSubscribe();
      }
      /**
       * <code>bool is_subscribe = 3;</code>
       * @param value The isSubscribe to set.
       * @return This builder for chaining.
       */
      public Builder setIsSubscribe(boolean value) {
        copyOnWrite();
        instance.setIsSubscribe(value);
        return this;
      }
      /**
       * <code>bool is_subscribe = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearIsSubscribe() {
        copyOnWrite();
        instance.clearIsSubscribe();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:chronik.Subscription)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new chronik.Chronik.Subscription();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "scriptType_",
              "payload_",
              "isSubscribe_",
            };
            java.lang.String info =
                "\u0000\u0003\u0000\u0000\u0001\u0003\u0003\u0000\u0000\u0000\u0001\u0208\u0002\n" +
                "\u0003\u0007";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<chronik.Chronik.Subscription> parser = PARSER;
          if (parser == null) {
            synchronized (chronik.Chronik.Subscription.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<chronik.Chronik.Subscription>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:chronik.Subscription)
    private static final chronik.Chronik.Subscription DEFAULT_INSTANCE;
    static {
      Subscription defaultInstance = new Subscription();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        Subscription.class, defaultInstance);
    }

    public static chronik.Chronik.Subscription getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<Subscription> PARSER;

    public static com.google.protobuf.Parser<Subscription> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface SubscribeMsgOrBuilder extends
      // @@protoc_insertion_point(interface_extends:chronik.SubscribeMsg)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>.chronik.Error error = 1;</code>
     * @return Whether the error field is set.
     */
    boolean hasError();
    /**
     * <code>.chronik.Error error = 1;</code>
     * @return The error.
     */
    chronik.Chronik.Error getError();

    /**
     * <code>.chronik.MsgAddedToMempool AddedToMempool = 2;</code>
     * @return Whether the addedToMempool field is set.
     */
    boolean hasAddedToMempool();
    /**
     * <code>.chronik.MsgAddedToMempool AddedToMempool = 2;</code>
     * @return The addedToMempool.
     */
    chronik.Chronik.MsgAddedToMempool getAddedToMempool();

    /**
     * <code>.chronik.MsgRemovedFromMempool RemovedFromMempool = 3;</code>
     * @return Whether the removedFromMempool field is set.
     */
    boolean hasRemovedFromMempool();
    /**
     * <code>.chronik.MsgRemovedFromMempool RemovedFromMempool = 3;</code>
     * @return The removedFromMempool.
     */
    chronik.Chronik.MsgRemovedFromMempool getRemovedFromMempool();

    /**
     * <code>.chronik.MsgConfirmed Confirmed = 4;</code>
     * @return Whether the confirmed field is set.
     */
    boolean hasConfirmed();
    /**
     * <code>.chronik.MsgConfirmed Confirmed = 4;</code>
     * @return The confirmed.
     */
    chronik.Chronik.MsgConfirmed getConfirmed();

    /**
     * <code>.chronik.MsgReorg Reorg = 5;</code>
     * @return Whether the reorg field is set.
     */
    boolean hasReorg();
    /**
     * <code>.chronik.MsgReorg Reorg = 5;</code>
     * @return The reorg.
     */
    chronik.Chronik.MsgReorg getReorg();

    /**
     * <code>.chronik.MsgBlockConnected BlockConnected = 6;</code>
     * @return Whether the blockConnected field is set.
     */
    boolean hasBlockConnected();
    /**
     * <code>.chronik.MsgBlockConnected BlockConnected = 6;</code>
     * @return The blockConnected.
     */
    chronik.Chronik.MsgBlockConnected getBlockConnected();

    /**
     * <code>.chronik.MsgBlockDisconnected BlockDisconnected = 7;</code>
     * @return Whether the blockDisconnected field is set.
     */
    boolean hasBlockDisconnected();
    /**
     * <code>.chronik.MsgBlockDisconnected BlockDisconnected = 7;</code>
     * @return The blockDisconnected.
     */
    chronik.Chronik.MsgBlockDisconnected getBlockDisconnected();

    public chronik.Chronik.SubscribeMsg.MsgTypeCase getMsgTypeCase();
  }
  /**
   * Protobuf type {@code chronik.SubscribeMsg}
   */
  public  static final class SubscribeMsg extends
      com.google.protobuf.GeneratedMessageLite<
          SubscribeMsg, SubscribeMsg.Builder> implements
      // @@protoc_insertion_point(message_implements:chronik.SubscribeMsg)
      SubscribeMsgOrBuilder {
    private SubscribeMsg() {
    }
    private int msgTypeCase_ = 0;
    private java.lang.Object msgType_;
    public enum MsgTypeCase {
      ERROR(1),
      ADDEDTOMEMPOOL(2),
      REMOVEDFROMMEMPOOL(3),
      CONFIRMED(4),
      REORG(5),
      BLOCKCONNECTED(6),
      BLOCKDISCONNECTED(7),
      MSGTYPE_NOT_SET(0);
      private final int value;
      private MsgTypeCase(int value) {
        this.value = value;
      }
      /**
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static MsgTypeCase valueOf(int value) {
        return forNumber(value);
      }

      public static MsgTypeCase forNumber(int value) {
        switch (value) {
          case 1: return ERROR;
          case 2: return ADDEDTOMEMPOOL;
          case 3: return REMOVEDFROMMEMPOOL;
          case 4: return CONFIRMED;
          case 5: return REORG;
          case 6: return BLOCKCONNECTED;
          case 7: return BLOCKDISCONNECTED;
          case 0: return MSGTYPE_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    @java.lang.Override
    public MsgTypeCase
    getMsgTypeCase() {
      return MsgTypeCase.forNumber(
          msgTypeCase_);
    }

    private void clearMsgType() {
      msgTypeCase_ = 0;
      msgType_ = null;
    }

    public static final int ERROR_FIELD_NUMBER = 1;
    /**
     * <code>.chronik.Error error = 1;</code>
     */
    @java.lang.Override
    public boolean hasError() {
      return msgTypeCase_ == 1;
    }
    /**
     * <code>.chronik.Error error = 1;</code>
     */
    @java.lang.Override
    public chronik.Chronik.Error getError() {
      if (msgTypeCase_ == 1) {
         return (chronik.Chronik.Error) msgType_;
      }
      return chronik.Chronik.Error.getDefaultInstance();
    }
    /**
     * <code>.chronik.Error error = 1;</code>
     */
    private void setError(chronik.Chronik.Error value) {
      value.getClass();
  msgType_ = value;
      msgTypeCase_ = 1;
    }
    /**
     * <code>.chronik.Error error = 1;</code>
     */
    private void mergeError(chronik.Chronik.Error value) {
      value.getClass();
  if (msgTypeCase_ == 1 &&
          msgType_ != chronik.Chronik.Error.getDefaultInstance()) {
        msgType_ = chronik.Chronik.Error.newBuilder((chronik.Chronik.Error) msgType_)
            .mergeFrom(value).buildPartial();
      } else {
        msgType_ = value;
      }
      msgTypeCase_ = 1;
    }
    /**
     * <code>.chronik.Error error = 1;</code>
     */
    private void clearError() {
      if (msgTypeCase_ == 1) {
        msgTypeCase_ = 0;
        msgType_ = null;
      }
    }

    public static final int ADDEDTOMEMPOOL_FIELD_NUMBER = 2;
    /**
     * <code>.chronik.MsgAddedToMempool AddedToMempool = 2;</code>
     */
    @java.lang.Override
    public boolean hasAddedToMempool() {
      return msgTypeCase_ == 2;
    }
    /**
     * <code>.chronik.MsgAddedToMempool AddedToMempool = 2;</code>
     */
    @java.lang.Override
    public chronik.Chronik.MsgAddedToMempool getAddedToMempool() {
      if (msgTypeCase_ == 2) {
         return (chronik.Chronik.MsgAddedToMempool) msgType_;
      }
      return chronik.Chronik.MsgAddedToMempool.getDefaultInstance();
    }
    /**
     * <code>.chronik.MsgAddedToMempool AddedToMempool = 2;</code>
     */
    private void setAddedToMempool(chronik.Chronik.MsgAddedToMempool value) {
      value.getClass();
  msgType_ = value;
      msgTypeCase_ = 2;
    }
    /**
     * <code>.chronik.MsgAddedToMempool AddedToMempool = 2;</code>
     */
    private void mergeAddedToMempool(chronik.Chronik.MsgAddedToMempool value) {
      value.getClass();
  if (msgTypeCase_ == 2 &&
          msgType_ != chronik.Chronik.MsgAddedToMempool.getDefaultInstance()) {
        msgType_ = chronik.Chronik.MsgAddedToMempool.newBuilder((chronik.Chronik.MsgAddedToMempool) msgType_)
            .mergeFrom(value).buildPartial();
      } else {
        msgType_ = value;
      }
      msgTypeCase_ = 2;
    }
    /**
     * <code>.chronik.MsgAddedToMempool AddedToMempool = 2;</code>
     */
    private void clearAddedToMempool() {
      if (msgTypeCase_ == 2) {
        msgTypeCase_ = 0;
        msgType_ = null;
      }
    }

    public static final int REMOVEDFROMMEMPOOL_FIELD_NUMBER = 3;
    /**
     * <code>.chronik.MsgRemovedFromMempool RemovedFromMempool = 3;</code>
     */
    @java.lang.Override
    public boolean hasRemovedFromMempool() {
      return msgTypeCase_ == 3;
    }
    /**
     * <code>.chronik.MsgRemovedFromMempool RemovedFromMempool = 3;</code>
     */
    @java.lang.Override
    public chronik.Chronik.MsgRemovedFromMempool getRemovedFromMempool() {
      if (msgTypeCase_ == 3) {
         return (chronik.Chronik.MsgRemovedFromMempool) msgType_;
      }
      return chronik.Chronik.MsgRemovedFromMempool.getDefaultInstance();
    }
    /**
     * <code>.chronik.MsgRemovedFromMempool RemovedFromMempool = 3;</code>
     */
    private void setRemovedFromMempool(chronik.Chronik.MsgRemovedFromMempool value) {
      value.getClass();
  msgType_ = value;
      msgTypeCase_ = 3;
    }
    /**
     * <code>.chronik.MsgRemovedFromMempool RemovedFromMempool = 3;</code>
     */
    private void mergeRemovedFromMempool(chronik.Chronik.MsgRemovedFromMempool value) {
      value.getClass();
  if (msgTypeCase_ == 3 &&
          msgType_ != chronik.Chronik.MsgRemovedFromMempool.getDefaultInstance()) {
        msgType_ = chronik.Chronik.MsgRemovedFromMempool.newBuilder((chronik.Chronik.MsgRemovedFromMempool) msgType_)
            .mergeFrom(value).buildPartial();
      } else {
        msgType_ = value;
      }
      msgTypeCase_ = 3;
    }
    /**
     * <code>.chronik.MsgRemovedFromMempool RemovedFromMempool = 3;</code>
     */
    private void clearRemovedFromMempool() {
      if (msgTypeCase_ == 3) {
        msgTypeCase_ = 0;
        msgType_ = null;
      }
    }

    public static final int CONFIRMED_FIELD_NUMBER = 4;
    /**
     * <code>.chronik.MsgConfirmed Confirmed = 4;</code>
     */
    @java.lang.Override
    public boolean hasConfirmed() {
      return msgTypeCase_ == 4;
    }
    /**
     * <code>.chronik.MsgConfirmed Confirmed = 4;</code>
     */
    @java.lang.Override
    public chronik.Chronik.MsgConfirmed getConfirmed() {
      if (msgTypeCase_ == 4) {
         return (chronik.Chronik.MsgConfirmed) msgType_;
      }
      return chronik.Chronik.MsgConfirmed.getDefaultInstance();
    }
    /**
     * <code>.chronik.MsgConfirmed Confirmed = 4;</code>
     */
    private void setConfirmed(chronik.Chronik.MsgConfirmed value) {
      value.getClass();
  msgType_ = value;
      msgTypeCase_ = 4;
    }
    /**
     * <code>.chronik.MsgConfirmed Confirmed = 4;</code>
     */
    private void mergeConfirmed(chronik.Chronik.MsgConfirmed value) {
      value.getClass();
  if (msgTypeCase_ == 4 &&
          msgType_ != chronik.Chronik.MsgConfirmed.getDefaultInstance()) {
        msgType_ = chronik.Chronik.MsgConfirmed.newBuilder((chronik.Chronik.MsgConfirmed) msgType_)
            .mergeFrom(value).buildPartial();
      } else {
        msgType_ = value;
      }
      msgTypeCase_ = 4;
    }
    /**
     * <code>.chronik.MsgConfirmed Confirmed = 4;</code>
     */
    private void clearConfirmed() {
      if (msgTypeCase_ == 4) {
        msgTypeCase_ = 0;
        msgType_ = null;
      }
    }

    public static final int REORG_FIELD_NUMBER = 5;
    /**
     * <code>.chronik.MsgReorg Reorg = 5;</code>
     */
    @java.lang.Override
    public boolean hasReorg() {
      return msgTypeCase_ == 5;
    }
    /**
     * <code>.chronik.MsgReorg Reorg = 5;</code>
     */
    @java.lang.Override
    public chronik.Chronik.MsgReorg getReorg() {
      if (msgTypeCase_ == 5) {
         return (chronik.Chronik.MsgReorg) msgType_;
      }
      return chronik.Chronik.MsgReorg.getDefaultInstance();
    }
    /**
     * <code>.chronik.MsgReorg Reorg = 5;</code>
     */
    private void setReorg(chronik.Chronik.MsgReorg value) {
      value.getClass();
  msgType_ = value;
      msgTypeCase_ = 5;
    }
    /**
     * <code>.chronik.MsgReorg Reorg = 5;</code>
     */
    private void mergeReorg(chronik.Chronik.MsgReorg value) {
      value.getClass();
  if (msgTypeCase_ == 5 &&
          msgType_ != chronik.Chronik.MsgReorg.getDefaultInstance()) {
        msgType_ = chronik.Chronik.MsgReorg.newBuilder((chronik.Chronik.MsgReorg) msgType_)
            .mergeFrom(value).buildPartial();
      } else {
        msgType_ = value;
      }
      msgTypeCase_ = 5;
    }
    /**
     * <code>.chronik.MsgReorg Reorg = 5;</code>
     */
    private void clearReorg() {
      if (msgTypeCase_ == 5) {
        msgTypeCase_ = 0;
        msgType_ = null;
      }
    }

    public static final int BLOCKCONNECTED_FIELD_NUMBER = 6;
    /**
     * <code>.chronik.MsgBlockConnected BlockConnected = 6;</code>
     */
    @java.lang.Override
    public boolean hasBlockConnected() {
      return msgTypeCase_ == 6;
    }
    /**
     * <code>.chronik.MsgBlockConnected BlockConnected = 6;</code>
     */
    @java.lang.Override
    public chronik.Chronik.MsgBlockConnected getBlockConnected() {
      if (msgTypeCase_ == 6) {
         return (chronik.Chronik.MsgBlockConnected) msgType_;
      }
      return chronik.Chronik.MsgBlockConnected.getDefaultInstance();
    }
    /**
     * <code>.chronik.MsgBlockConnected BlockConnected = 6;</code>
     */
    private void setBlockConnected(chronik.Chronik.MsgBlockConnected value) {
      value.getClass();
  msgType_ = value;
      msgTypeCase_ = 6;
    }
    /**
     * <code>.chronik.MsgBlockConnected BlockConnected = 6;</code>
     */
    private void mergeBlockConnected(chronik.Chronik.MsgBlockConnected value) {
      value.getClass();
  if (msgTypeCase_ == 6 &&
          msgType_ != chronik.Chronik.MsgBlockConnected.getDefaultInstance()) {
        msgType_ = chronik.Chronik.MsgBlockConnected.newBuilder((chronik.Chronik.MsgBlockConnected) msgType_)
            .mergeFrom(value).buildPartial();
      } else {
        msgType_ = value;
      }
      msgTypeCase_ = 6;
    }
    /**
     * <code>.chronik.MsgBlockConnected BlockConnected = 6;</code>
     */
    private void clearBlockConnected() {
      if (msgTypeCase_ == 6) {
        msgTypeCase_ = 0;
        msgType_ = null;
      }
    }

    public static final int BLOCKDISCONNECTED_FIELD_NUMBER = 7;
    /**
     * <code>.chronik.MsgBlockDisconnected BlockDisconnected = 7;</code>
     */
    @java.lang.Override
    public boolean hasBlockDisconnected() {
      return msgTypeCase_ == 7;
    }
    /**
     * <code>.chronik.MsgBlockDisconnected BlockDisconnected = 7;</code>
     */
    @java.lang.Override
    public chronik.Chronik.MsgBlockDisconnected getBlockDisconnected() {
      if (msgTypeCase_ == 7) {
         return (chronik.Chronik.MsgBlockDisconnected) msgType_;
      }
      return chronik.Chronik.MsgBlockDisconnected.getDefaultInstance();
    }
    /**
     * <code>.chronik.MsgBlockDisconnected BlockDisconnected = 7;</code>
     */
    private void setBlockDisconnected(chronik.Chronik.MsgBlockDisconnected value) {
      value.getClass();
  msgType_ = value;
      msgTypeCase_ = 7;
    }
    /**
     * <code>.chronik.MsgBlockDisconnected BlockDisconnected = 7;</code>
     */
    private void mergeBlockDisconnected(chronik.Chronik.MsgBlockDisconnected value) {
      value.getClass();
  if (msgTypeCase_ == 7 &&
          msgType_ != chronik.Chronik.MsgBlockDisconnected.getDefaultInstance()) {
        msgType_ = chronik.Chronik.MsgBlockDisconnected.newBuilder((chronik.Chronik.MsgBlockDisconnected) msgType_)
            .mergeFrom(value).buildPartial();
      } else {
        msgType_ = value;
      }
      msgTypeCase_ = 7;
    }
    /**
     * <code>.chronik.MsgBlockDisconnected BlockDisconnected = 7;</code>
     */
    private void clearBlockDisconnected() {
      if (msgTypeCase_ == 7) {
        msgTypeCase_ = 0;
        msgType_ = null;
      }
    }

    public static chronik.Chronik.SubscribeMsg parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.SubscribeMsg parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.SubscribeMsg parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.SubscribeMsg parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.SubscribeMsg parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.SubscribeMsg parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.SubscribeMsg parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.SubscribeMsg parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.SubscribeMsg parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.SubscribeMsg parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.SubscribeMsg parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.SubscribeMsg parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(chronik.Chronik.SubscribeMsg prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code chronik.SubscribeMsg}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          chronik.Chronik.SubscribeMsg, Builder> implements
        // @@protoc_insertion_point(builder_implements:chronik.SubscribeMsg)
        chronik.Chronik.SubscribeMsgOrBuilder {
      // Construct using chronik.Chronik.SubscribeMsg.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }

      @java.lang.Override
      public MsgTypeCase
          getMsgTypeCase() {
        return instance.getMsgTypeCase();
      }

      public Builder clearMsgType() {
        copyOnWrite();
        instance.clearMsgType();
        return this;
      }


      /**
       * <code>.chronik.Error error = 1;</code>
       */
      @java.lang.Override
      public boolean hasError() {
        return instance.hasError();
      }
      /**
       * <code>.chronik.Error error = 1;</code>
       */
      @java.lang.Override
      public chronik.Chronik.Error getError() {
        return instance.getError();
      }
      /**
       * <code>.chronik.Error error = 1;</code>
       */
      public Builder setError(chronik.Chronik.Error value) {
        copyOnWrite();
        instance.setError(value);
        return this;
      }
      /**
       * <code>.chronik.Error error = 1;</code>
       */
      public Builder setError(
          chronik.Chronik.Error.Builder builderForValue) {
        copyOnWrite();
        instance.setError(builderForValue.build());
        return this;
      }
      /**
       * <code>.chronik.Error error = 1;</code>
       */
      public Builder mergeError(chronik.Chronik.Error value) {
        copyOnWrite();
        instance.mergeError(value);
        return this;
      }
      /**
       * <code>.chronik.Error error = 1;</code>
       */
      public Builder clearError() {
        copyOnWrite();
        instance.clearError();
        return this;
      }

      /**
       * <code>.chronik.MsgAddedToMempool AddedToMempool = 2;</code>
       */
      @java.lang.Override
      public boolean hasAddedToMempool() {
        return instance.hasAddedToMempool();
      }
      /**
       * <code>.chronik.MsgAddedToMempool AddedToMempool = 2;</code>
       */
      @java.lang.Override
      public chronik.Chronik.MsgAddedToMempool getAddedToMempool() {
        return instance.getAddedToMempool();
      }
      /**
       * <code>.chronik.MsgAddedToMempool AddedToMempool = 2;</code>
       */
      public Builder setAddedToMempool(chronik.Chronik.MsgAddedToMempool value) {
        copyOnWrite();
        instance.setAddedToMempool(value);
        return this;
      }
      /**
       * <code>.chronik.MsgAddedToMempool AddedToMempool = 2;</code>
       */
      public Builder setAddedToMempool(
          chronik.Chronik.MsgAddedToMempool.Builder builderForValue) {
        copyOnWrite();
        instance.setAddedToMempool(builderForValue.build());
        return this;
      }
      /**
       * <code>.chronik.MsgAddedToMempool AddedToMempool = 2;</code>
       */
      public Builder mergeAddedToMempool(chronik.Chronik.MsgAddedToMempool value) {
        copyOnWrite();
        instance.mergeAddedToMempool(value);
        return this;
      }
      /**
       * <code>.chronik.MsgAddedToMempool AddedToMempool = 2;</code>
       */
      public Builder clearAddedToMempool() {
        copyOnWrite();
        instance.clearAddedToMempool();
        return this;
      }

      /**
       * <code>.chronik.MsgRemovedFromMempool RemovedFromMempool = 3;</code>
       */
      @java.lang.Override
      public boolean hasRemovedFromMempool() {
        return instance.hasRemovedFromMempool();
      }
      /**
       * <code>.chronik.MsgRemovedFromMempool RemovedFromMempool = 3;</code>
       */
      @java.lang.Override
      public chronik.Chronik.MsgRemovedFromMempool getRemovedFromMempool() {
        return instance.getRemovedFromMempool();
      }
      /**
       * <code>.chronik.MsgRemovedFromMempool RemovedFromMempool = 3;</code>
       */
      public Builder setRemovedFromMempool(chronik.Chronik.MsgRemovedFromMempool value) {
        copyOnWrite();
        instance.setRemovedFromMempool(value);
        return this;
      }
      /**
       * <code>.chronik.MsgRemovedFromMempool RemovedFromMempool = 3;</code>
       */
      public Builder setRemovedFromMempool(
          chronik.Chronik.MsgRemovedFromMempool.Builder builderForValue) {
        copyOnWrite();
        instance.setRemovedFromMempool(builderForValue.build());
        return this;
      }
      /**
       * <code>.chronik.MsgRemovedFromMempool RemovedFromMempool = 3;</code>
       */
      public Builder mergeRemovedFromMempool(chronik.Chronik.MsgRemovedFromMempool value) {
        copyOnWrite();
        instance.mergeRemovedFromMempool(value);
        return this;
      }
      /**
       * <code>.chronik.MsgRemovedFromMempool RemovedFromMempool = 3;</code>
       */
      public Builder clearRemovedFromMempool() {
        copyOnWrite();
        instance.clearRemovedFromMempool();
        return this;
      }

      /**
       * <code>.chronik.MsgConfirmed Confirmed = 4;</code>
       */
      @java.lang.Override
      public boolean hasConfirmed() {
        return instance.hasConfirmed();
      }
      /**
       * <code>.chronik.MsgConfirmed Confirmed = 4;</code>
       */
      @java.lang.Override
      public chronik.Chronik.MsgConfirmed getConfirmed() {
        return instance.getConfirmed();
      }
      /**
       * <code>.chronik.MsgConfirmed Confirmed = 4;</code>
       */
      public Builder setConfirmed(chronik.Chronik.MsgConfirmed value) {
        copyOnWrite();
        instance.setConfirmed(value);
        return this;
      }
      /**
       * <code>.chronik.MsgConfirmed Confirmed = 4;</code>
       */
      public Builder setConfirmed(
          chronik.Chronik.MsgConfirmed.Builder builderForValue) {
        copyOnWrite();
        instance.setConfirmed(builderForValue.build());
        return this;
      }
      /**
       * <code>.chronik.MsgConfirmed Confirmed = 4;</code>
       */
      public Builder mergeConfirmed(chronik.Chronik.MsgConfirmed value) {
        copyOnWrite();
        instance.mergeConfirmed(value);
        return this;
      }
      /**
       * <code>.chronik.MsgConfirmed Confirmed = 4;</code>
       */
      public Builder clearConfirmed() {
        copyOnWrite();
        instance.clearConfirmed();
        return this;
      }

      /**
       * <code>.chronik.MsgReorg Reorg = 5;</code>
       */
      @java.lang.Override
      public boolean hasReorg() {
        return instance.hasReorg();
      }
      /**
       * <code>.chronik.MsgReorg Reorg = 5;</code>
       */
      @java.lang.Override
      public chronik.Chronik.MsgReorg getReorg() {
        return instance.getReorg();
      }
      /**
       * <code>.chronik.MsgReorg Reorg = 5;</code>
       */
      public Builder setReorg(chronik.Chronik.MsgReorg value) {
        copyOnWrite();
        instance.setReorg(value);
        return this;
      }
      /**
       * <code>.chronik.MsgReorg Reorg = 5;</code>
       */
      public Builder setReorg(
          chronik.Chronik.MsgReorg.Builder builderForValue) {
        copyOnWrite();
        instance.setReorg(builderForValue.build());
        return this;
      }
      /**
       * <code>.chronik.MsgReorg Reorg = 5;</code>
       */
      public Builder mergeReorg(chronik.Chronik.MsgReorg value) {
        copyOnWrite();
        instance.mergeReorg(value);
        return this;
      }
      /**
       * <code>.chronik.MsgReorg Reorg = 5;</code>
       */
      public Builder clearReorg() {
        copyOnWrite();
        instance.clearReorg();
        return this;
      }

      /**
       * <code>.chronik.MsgBlockConnected BlockConnected = 6;</code>
       */
      @java.lang.Override
      public boolean hasBlockConnected() {
        return instance.hasBlockConnected();
      }
      /**
       * <code>.chronik.MsgBlockConnected BlockConnected = 6;</code>
       */
      @java.lang.Override
      public chronik.Chronik.MsgBlockConnected getBlockConnected() {
        return instance.getBlockConnected();
      }
      /**
       * <code>.chronik.MsgBlockConnected BlockConnected = 6;</code>
       */
      public Builder setBlockConnected(chronik.Chronik.MsgBlockConnected value) {
        copyOnWrite();
        instance.setBlockConnected(value);
        return this;
      }
      /**
       * <code>.chronik.MsgBlockConnected BlockConnected = 6;</code>
       */
      public Builder setBlockConnected(
          chronik.Chronik.MsgBlockConnected.Builder builderForValue) {
        copyOnWrite();
        instance.setBlockConnected(builderForValue.build());
        return this;
      }
      /**
       * <code>.chronik.MsgBlockConnected BlockConnected = 6;</code>
       */
      public Builder mergeBlockConnected(chronik.Chronik.MsgBlockConnected value) {
        copyOnWrite();
        instance.mergeBlockConnected(value);
        return this;
      }
      /**
       * <code>.chronik.MsgBlockConnected BlockConnected = 6;</code>
       */
      public Builder clearBlockConnected() {
        copyOnWrite();
        instance.clearBlockConnected();
        return this;
      }

      /**
       * <code>.chronik.MsgBlockDisconnected BlockDisconnected = 7;</code>
       */
      @java.lang.Override
      public boolean hasBlockDisconnected() {
        return instance.hasBlockDisconnected();
      }
      /**
       * <code>.chronik.MsgBlockDisconnected BlockDisconnected = 7;</code>
       */
      @java.lang.Override
      public chronik.Chronik.MsgBlockDisconnected getBlockDisconnected() {
        return instance.getBlockDisconnected();
      }
      /**
       * <code>.chronik.MsgBlockDisconnected BlockDisconnected = 7;</code>
       */
      public Builder setBlockDisconnected(chronik.Chronik.MsgBlockDisconnected value) {
        copyOnWrite();
        instance.setBlockDisconnected(value);
        return this;
      }
      /**
       * <code>.chronik.MsgBlockDisconnected BlockDisconnected = 7;</code>
       */
      public Builder setBlockDisconnected(
          chronik.Chronik.MsgBlockDisconnected.Builder builderForValue) {
        copyOnWrite();
        instance.setBlockDisconnected(builderForValue.build());
        return this;
      }
      /**
       * <code>.chronik.MsgBlockDisconnected BlockDisconnected = 7;</code>
       */
      public Builder mergeBlockDisconnected(chronik.Chronik.MsgBlockDisconnected value) {
        copyOnWrite();
        instance.mergeBlockDisconnected(value);
        return this;
      }
      /**
       * <code>.chronik.MsgBlockDisconnected BlockDisconnected = 7;</code>
       */
      public Builder clearBlockDisconnected() {
        copyOnWrite();
        instance.clearBlockDisconnected();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:chronik.SubscribeMsg)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new chronik.Chronik.SubscribeMsg();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "msgType_",
              "msgTypeCase_",
              chronik.Chronik.Error.class,
              chronik.Chronik.MsgAddedToMempool.class,
              chronik.Chronik.MsgRemovedFromMempool.class,
              chronik.Chronik.MsgConfirmed.class,
              chronik.Chronik.MsgReorg.class,
              chronik.Chronik.MsgBlockConnected.class,
              chronik.Chronik.MsgBlockDisconnected.class,
            };
            java.lang.String info =
                "\u0000\u0007\u0001\u0000\u0001\u0007\u0007\u0000\u0000\u0000\u0001<\u0000\u0002<" +
                "\u0000\u0003<\u0000\u0004<\u0000\u0005<\u0000\u0006<\u0000\u0007<\u0000";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<chronik.Chronik.SubscribeMsg> parser = PARSER;
          if (parser == null) {
            synchronized (chronik.Chronik.SubscribeMsg.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<chronik.Chronik.SubscribeMsg>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:chronik.SubscribeMsg)
    private static final chronik.Chronik.SubscribeMsg DEFAULT_INSTANCE;
    static {
      SubscribeMsg defaultInstance = new SubscribeMsg();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        SubscribeMsg.class, defaultInstance);
    }

    public static chronik.Chronik.SubscribeMsg getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<SubscribeMsg> PARSER;

    public static com.google.protobuf.Parser<SubscribeMsg> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface MsgAddedToMempoolOrBuilder extends
      // @@protoc_insertion_point(interface_extends:chronik.MsgAddedToMempool)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>bytes txid = 1;</code>
     * @return The txid.
     */
    com.google.protobuf.ByteString getTxid();
  }
  /**
   * Protobuf type {@code chronik.MsgAddedToMempool}
   */
  public  static final class MsgAddedToMempool extends
      com.google.protobuf.GeneratedMessageLite<
          MsgAddedToMempool, MsgAddedToMempool.Builder> implements
      // @@protoc_insertion_point(message_implements:chronik.MsgAddedToMempool)
      MsgAddedToMempoolOrBuilder {
    private MsgAddedToMempool() {
      txid_ = com.google.protobuf.ByteString.EMPTY;
    }
    public static final int TXID_FIELD_NUMBER = 1;
    private com.google.protobuf.ByteString txid_;
    /**
     * <code>bytes txid = 1;</code>
     * @return The txid.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getTxid() {
      return txid_;
    }
    /**
     * <code>bytes txid = 1;</code>
     * @param value The txid to set.
     */
    private void setTxid(com.google.protobuf.ByteString value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      txid_ = value;
    }
    /**
     * <code>bytes txid = 1;</code>
     */
    private void clearTxid() {

      txid_ = getDefaultInstance().getTxid();
    }

    public static chronik.Chronik.MsgAddedToMempool parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.MsgAddedToMempool parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.MsgAddedToMempool parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.MsgAddedToMempool parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.MsgAddedToMempool parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.MsgAddedToMempool parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.MsgAddedToMempool parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.MsgAddedToMempool parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.MsgAddedToMempool parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.MsgAddedToMempool parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.MsgAddedToMempool parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.MsgAddedToMempool parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(chronik.Chronik.MsgAddedToMempool prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code chronik.MsgAddedToMempool}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          chronik.Chronik.MsgAddedToMempool, Builder> implements
        // @@protoc_insertion_point(builder_implements:chronik.MsgAddedToMempool)
        chronik.Chronik.MsgAddedToMempoolOrBuilder {
      // Construct using chronik.Chronik.MsgAddedToMempool.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>bytes txid = 1;</code>
       * @return The txid.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getTxid() {
        return instance.getTxid();
      }
      /**
       * <code>bytes txid = 1;</code>
       * @param value The txid to set.
       * @return This builder for chaining.
       */
      public Builder setTxid(com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setTxid(value);
        return this;
      }
      /**
       * <code>bytes txid = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearTxid() {
        copyOnWrite();
        instance.clearTxid();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:chronik.MsgAddedToMempool)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new chronik.Chronik.MsgAddedToMempool();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "txid_",
            };
            java.lang.String info =
                "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0001\n";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<chronik.Chronik.MsgAddedToMempool> parser = PARSER;
          if (parser == null) {
            synchronized (chronik.Chronik.MsgAddedToMempool.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<chronik.Chronik.MsgAddedToMempool>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:chronik.MsgAddedToMempool)
    private static final chronik.Chronik.MsgAddedToMempool DEFAULT_INSTANCE;
    static {
      MsgAddedToMempool defaultInstance = new MsgAddedToMempool();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        MsgAddedToMempool.class, defaultInstance);
    }

    public static chronik.Chronik.MsgAddedToMempool getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<MsgAddedToMempool> PARSER;

    public static com.google.protobuf.Parser<MsgAddedToMempool> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface MsgRemovedFromMempoolOrBuilder extends
      // @@protoc_insertion_point(interface_extends:chronik.MsgRemovedFromMempool)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>bytes txid = 1;</code>
     * @return The txid.
     */
    com.google.protobuf.ByteString getTxid();
  }
  /**
   * Protobuf type {@code chronik.MsgRemovedFromMempool}
   */
  public  static final class MsgRemovedFromMempool extends
      com.google.protobuf.GeneratedMessageLite<
          MsgRemovedFromMempool, MsgRemovedFromMempool.Builder> implements
      // @@protoc_insertion_point(message_implements:chronik.MsgRemovedFromMempool)
      MsgRemovedFromMempoolOrBuilder {
    private MsgRemovedFromMempool() {
      txid_ = com.google.protobuf.ByteString.EMPTY;
    }
    public static final int TXID_FIELD_NUMBER = 1;
    private com.google.protobuf.ByteString txid_;
    /**
     * <code>bytes txid = 1;</code>
     * @return The txid.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getTxid() {
      return txid_;
    }
    /**
     * <code>bytes txid = 1;</code>
     * @param value The txid to set.
     */
    private void setTxid(com.google.protobuf.ByteString value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      txid_ = value;
    }
    /**
     * <code>bytes txid = 1;</code>
     */
    private void clearTxid() {

      txid_ = getDefaultInstance().getTxid();
    }

    public static chronik.Chronik.MsgRemovedFromMempool parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.MsgRemovedFromMempool parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.MsgRemovedFromMempool parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.MsgRemovedFromMempool parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.MsgRemovedFromMempool parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.MsgRemovedFromMempool parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.MsgRemovedFromMempool parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.MsgRemovedFromMempool parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.MsgRemovedFromMempool parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.MsgRemovedFromMempool parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.MsgRemovedFromMempool parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.MsgRemovedFromMempool parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(chronik.Chronik.MsgRemovedFromMempool prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code chronik.MsgRemovedFromMempool}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          chronik.Chronik.MsgRemovedFromMempool, Builder> implements
        // @@protoc_insertion_point(builder_implements:chronik.MsgRemovedFromMempool)
        chronik.Chronik.MsgRemovedFromMempoolOrBuilder {
      // Construct using chronik.Chronik.MsgRemovedFromMempool.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>bytes txid = 1;</code>
       * @return The txid.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getTxid() {
        return instance.getTxid();
      }
      /**
       * <code>bytes txid = 1;</code>
       * @param value The txid to set.
       * @return This builder for chaining.
       */
      public Builder setTxid(com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setTxid(value);
        return this;
      }
      /**
       * <code>bytes txid = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearTxid() {
        copyOnWrite();
        instance.clearTxid();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:chronik.MsgRemovedFromMempool)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new chronik.Chronik.MsgRemovedFromMempool();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "txid_",
            };
            java.lang.String info =
                "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0001\n";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<chronik.Chronik.MsgRemovedFromMempool> parser = PARSER;
          if (parser == null) {
            synchronized (chronik.Chronik.MsgRemovedFromMempool.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<chronik.Chronik.MsgRemovedFromMempool>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:chronik.MsgRemovedFromMempool)
    private static final chronik.Chronik.MsgRemovedFromMempool DEFAULT_INSTANCE;
    static {
      MsgRemovedFromMempool defaultInstance = new MsgRemovedFromMempool();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        MsgRemovedFromMempool.class, defaultInstance);
    }

    public static chronik.Chronik.MsgRemovedFromMempool getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<MsgRemovedFromMempool> PARSER;

    public static com.google.protobuf.Parser<MsgRemovedFromMempool> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface MsgConfirmedOrBuilder extends
      // @@protoc_insertion_point(interface_extends:chronik.MsgConfirmed)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>bytes txid = 1;</code>
     * @return The txid.
     */
    com.google.protobuf.ByteString getTxid();
  }
  /**
   * Protobuf type {@code chronik.MsgConfirmed}
   */
  public  static final class MsgConfirmed extends
      com.google.protobuf.GeneratedMessageLite<
          MsgConfirmed, MsgConfirmed.Builder> implements
      // @@protoc_insertion_point(message_implements:chronik.MsgConfirmed)
      MsgConfirmedOrBuilder {
    private MsgConfirmed() {
      txid_ = com.google.protobuf.ByteString.EMPTY;
    }
    public static final int TXID_FIELD_NUMBER = 1;
    private com.google.protobuf.ByteString txid_;
    /**
     * <code>bytes txid = 1;</code>
     * @return The txid.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getTxid() {
      return txid_;
    }
    /**
     * <code>bytes txid = 1;</code>
     * @param value The txid to set.
     */
    private void setTxid(com.google.protobuf.ByteString value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      txid_ = value;
    }
    /**
     * <code>bytes txid = 1;</code>
     */
    private void clearTxid() {

      txid_ = getDefaultInstance().getTxid();
    }

    public static chronik.Chronik.MsgConfirmed parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.MsgConfirmed parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.MsgConfirmed parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.MsgConfirmed parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.MsgConfirmed parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.MsgConfirmed parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.MsgConfirmed parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.MsgConfirmed parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.MsgConfirmed parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.MsgConfirmed parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.MsgConfirmed parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.MsgConfirmed parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(chronik.Chronik.MsgConfirmed prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code chronik.MsgConfirmed}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          chronik.Chronik.MsgConfirmed, Builder> implements
        // @@protoc_insertion_point(builder_implements:chronik.MsgConfirmed)
        chronik.Chronik.MsgConfirmedOrBuilder {
      // Construct using chronik.Chronik.MsgConfirmed.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>bytes txid = 1;</code>
       * @return The txid.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getTxid() {
        return instance.getTxid();
      }
      /**
       * <code>bytes txid = 1;</code>
       * @param value The txid to set.
       * @return This builder for chaining.
       */
      public Builder setTxid(com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setTxid(value);
        return this;
      }
      /**
       * <code>bytes txid = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearTxid() {
        copyOnWrite();
        instance.clearTxid();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:chronik.MsgConfirmed)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new chronik.Chronik.MsgConfirmed();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "txid_",
            };
            java.lang.String info =
                "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0001\n";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<chronik.Chronik.MsgConfirmed> parser = PARSER;
          if (parser == null) {
            synchronized (chronik.Chronik.MsgConfirmed.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<chronik.Chronik.MsgConfirmed>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:chronik.MsgConfirmed)
    private static final chronik.Chronik.MsgConfirmed DEFAULT_INSTANCE;
    static {
      MsgConfirmed defaultInstance = new MsgConfirmed();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        MsgConfirmed.class, defaultInstance);
    }

    public static chronik.Chronik.MsgConfirmed getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<MsgConfirmed> PARSER;

    public static com.google.protobuf.Parser<MsgConfirmed> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface MsgReorgOrBuilder extends
      // @@protoc_insertion_point(interface_extends:chronik.MsgReorg)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>bytes txid = 1;</code>
     * @return The txid.
     */
    com.google.protobuf.ByteString getTxid();
  }
  /**
   * Protobuf type {@code chronik.MsgReorg}
   */
  public  static final class MsgReorg extends
      com.google.protobuf.GeneratedMessageLite<
          MsgReorg, MsgReorg.Builder> implements
      // @@protoc_insertion_point(message_implements:chronik.MsgReorg)
      MsgReorgOrBuilder {
    private MsgReorg() {
      txid_ = com.google.protobuf.ByteString.EMPTY;
    }
    public static final int TXID_FIELD_NUMBER = 1;
    private com.google.protobuf.ByteString txid_;
    /**
     * <code>bytes txid = 1;</code>
     * @return The txid.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getTxid() {
      return txid_;
    }
    /**
     * <code>bytes txid = 1;</code>
     * @param value The txid to set.
     */
    private void setTxid(com.google.protobuf.ByteString value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      txid_ = value;
    }
    /**
     * <code>bytes txid = 1;</code>
     */
    private void clearTxid() {

      txid_ = getDefaultInstance().getTxid();
    }

    public static chronik.Chronik.MsgReorg parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.MsgReorg parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.MsgReorg parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.MsgReorg parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.MsgReorg parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.MsgReorg parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.MsgReorg parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.MsgReorg parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.MsgReorg parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.MsgReorg parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.MsgReorg parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.MsgReorg parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(chronik.Chronik.MsgReorg prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code chronik.MsgReorg}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          chronik.Chronik.MsgReorg, Builder> implements
        // @@protoc_insertion_point(builder_implements:chronik.MsgReorg)
        chronik.Chronik.MsgReorgOrBuilder {
      // Construct using chronik.Chronik.MsgReorg.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>bytes txid = 1;</code>
       * @return The txid.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getTxid() {
        return instance.getTxid();
      }
      /**
       * <code>bytes txid = 1;</code>
       * @param value The txid to set.
       * @return This builder for chaining.
       */
      public Builder setTxid(com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setTxid(value);
        return this;
      }
      /**
       * <code>bytes txid = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearTxid() {
        copyOnWrite();
        instance.clearTxid();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:chronik.MsgReorg)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new chronik.Chronik.MsgReorg();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "txid_",
            };
            java.lang.String info =
                "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0001\n";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<chronik.Chronik.MsgReorg> parser = PARSER;
          if (parser == null) {
            synchronized (chronik.Chronik.MsgReorg.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<chronik.Chronik.MsgReorg>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:chronik.MsgReorg)
    private static final chronik.Chronik.MsgReorg DEFAULT_INSTANCE;
    static {
      MsgReorg defaultInstance = new MsgReorg();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        MsgReorg.class, defaultInstance);
    }

    public static chronik.Chronik.MsgReorg getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<MsgReorg> PARSER;

    public static com.google.protobuf.Parser<MsgReorg> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface MsgBlockConnectedOrBuilder extends
      // @@protoc_insertion_point(interface_extends:chronik.MsgBlockConnected)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>bytes block_hash = 1;</code>
     * @return The blockHash.
     */
    com.google.protobuf.ByteString getBlockHash();
  }
  /**
   * Protobuf type {@code chronik.MsgBlockConnected}
   */
  public  static final class MsgBlockConnected extends
      com.google.protobuf.GeneratedMessageLite<
          MsgBlockConnected, MsgBlockConnected.Builder> implements
      // @@protoc_insertion_point(message_implements:chronik.MsgBlockConnected)
      MsgBlockConnectedOrBuilder {
    private MsgBlockConnected() {
      blockHash_ = com.google.protobuf.ByteString.EMPTY;
    }
    public static final int BLOCK_HASH_FIELD_NUMBER = 1;
    private com.google.protobuf.ByteString blockHash_;
    /**
     * <code>bytes block_hash = 1;</code>
     * @return The blockHash.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getBlockHash() {
      return blockHash_;
    }
    /**
     * <code>bytes block_hash = 1;</code>
     * @param value The blockHash to set.
     */
    private void setBlockHash(com.google.protobuf.ByteString value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      blockHash_ = value;
    }
    /**
     * <code>bytes block_hash = 1;</code>
     */
    private void clearBlockHash() {

      blockHash_ = getDefaultInstance().getBlockHash();
    }

    public static chronik.Chronik.MsgBlockConnected parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.MsgBlockConnected parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.MsgBlockConnected parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.MsgBlockConnected parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.MsgBlockConnected parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.MsgBlockConnected parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.MsgBlockConnected parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.MsgBlockConnected parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.MsgBlockConnected parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.MsgBlockConnected parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.MsgBlockConnected parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.MsgBlockConnected parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(chronik.Chronik.MsgBlockConnected prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code chronik.MsgBlockConnected}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          chronik.Chronik.MsgBlockConnected, Builder> implements
        // @@protoc_insertion_point(builder_implements:chronik.MsgBlockConnected)
        chronik.Chronik.MsgBlockConnectedOrBuilder {
      // Construct using chronik.Chronik.MsgBlockConnected.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>bytes block_hash = 1;</code>
       * @return The blockHash.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getBlockHash() {
        return instance.getBlockHash();
      }
      /**
       * <code>bytes block_hash = 1;</code>
       * @param value The blockHash to set.
       * @return This builder for chaining.
       */
      public Builder setBlockHash(com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setBlockHash(value);
        return this;
      }
      /**
       * <code>bytes block_hash = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearBlockHash() {
        copyOnWrite();
        instance.clearBlockHash();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:chronik.MsgBlockConnected)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new chronik.Chronik.MsgBlockConnected();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "blockHash_",
            };
            java.lang.String info =
                "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0001\n";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<chronik.Chronik.MsgBlockConnected> parser = PARSER;
          if (parser == null) {
            synchronized (chronik.Chronik.MsgBlockConnected.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<chronik.Chronik.MsgBlockConnected>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:chronik.MsgBlockConnected)
    private static final chronik.Chronik.MsgBlockConnected DEFAULT_INSTANCE;
    static {
      MsgBlockConnected defaultInstance = new MsgBlockConnected();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        MsgBlockConnected.class, defaultInstance);
    }

    public static chronik.Chronik.MsgBlockConnected getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<MsgBlockConnected> PARSER;

    public static com.google.protobuf.Parser<MsgBlockConnected> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface MsgBlockDisconnectedOrBuilder extends
      // @@protoc_insertion_point(interface_extends:chronik.MsgBlockDisconnected)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>bytes block_hash = 1;</code>
     * @return The blockHash.
     */
    com.google.protobuf.ByteString getBlockHash();
  }
  /**
   * Protobuf type {@code chronik.MsgBlockDisconnected}
   */
  public  static final class MsgBlockDisconnected extends
      com.google.protobuf.GeneratedMessageLite<
          MsgBlockDisconnected, MsgBlockDisconnected.Builder> implements
      // @@protoc_insertion_point(message_implements:chronik.MsgBlockDisconnected)
      MsgBlockDisconnectedOrBuilder {
    private MsgBlockDisconnected() {
      blockHash_ = com.google.protobuf.ByteString.EMPTY;
    }
    public static final int BLOCK_HASH_FIELD_NUMBER = 1;
    private com.google.protobuf.ByteString blockHash_;
    /**
     * <code>bytes block_hash = 1;</code>
     * @return The blockHash.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getBlockHash() {
      return blockHash_;
    }
    /**
     * <code>bytes block_hash = 1;</code>
     * @param value The blockHash to set.
     */
    private void setBlockHash(com.google.protobuf.ByteString value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      blockHash_ = value;
    }
    /**
     * <code>bytes block_hash = 1;</code>
     */
    private void clearBlockHash() {

      blockHash_ = getDefaultInstance().getBlockHash();
    }

    public static chronik.Chronik.MsgBlockDisconnected parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.MsgBlockDisconnected parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.MsgBlockDisconnected parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.MsgBlockDisconnected parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.MsgBlockDisconnected parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.MsgBlockDisconnected parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.MsgBlockDisconnected parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.MsgBlockDisconnected parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.MsgBlockDisconnected parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.MsgBlockDisconnected parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.MsgBlockDisconnected parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.MsgBlockDisconnected parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(chronik.Chronik.MsgBlockDisconnected prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code chronik.MsgBlockDisconnected}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          chronik.Chronik.MsgBlockDisconnected, Builder> implements
        // @@protoc_insertion_point(builder_implements:chronik.MsgBlockDisconnected)
        chronik.Chronik.MsgBlockDisconnectedOrBuilder {
      // Construct using chronik.Chronik.MsgBlockDisconnected.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>bytes block_hash = 1;</code>
       * @return The blockHash.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString getBlockHash() {
        return instance.getBlockHash();
      }
      /**
       * <code>bytes block_hash = 1;</code>
       * @param value The blockHash to set.
       * @return This builder for chaining.
       */
      public Builder setBlockHash(com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setBlockHash(value);
        return this;
      }
      /**
       * <code>bytes block_hash = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearBlockHash() {
        copyOnWrite();
        instance.clearBlockHash();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:chronik.MsgBlockDisconnected)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new chronik.Chronik.MsgBlockDisconnected();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "blockHash_",
            };
            java.lang.String info =
                "\u0000\u0001\u0000\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0001\n";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<chronik.Chronik.MsgBlockDisconnected> parser = PARSER;
          if (parser == null) {
            synchronized (chronik.Chronik.MsgBlockDisconnected.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<chronik.Chronik.MsgBlockDisconnected>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:chronik.MsgBlockDisconnected)
    private static final chronik.Chronik.MsgBlockDisconnected DEFAULT_INSTANCE;
    static {
      MsgBlockDisconnected defaultInstance = new MsgBlockDisconnected();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        MsgBlockDisconnected.class, defaultInstance);
    }

    public static chronik.Chronik.MsgBlockDisconnected getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<MsgBlockDisconnected> PARSER;

    public static com.google.protobuf.Parser<MsgBlockDisconnected> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }

  public interface ErrorOrBuilder extends
      // @@protoc_insertion_point(interface_extends:chronik.Error)
      com.google.protobuf.MessageLiteOrBuilder {

    /**
     * <code>string error_code = 1;</code>
     * @return The errorCode.
     */
    java.lang.String getErrorCode();
    /**
     * <code>string error_code = 1;</code>
     * @return The bytes for errorCode.
     */
    com.google.protobuf.ByteString
        getErrorCodeBytes();

    /**
     * <code>string msg = 2;</code>
     * @return The msg.
     */
    java.lang.String getMsg();
    /**
     * <code>string msg = 2;</code>
     * @return The bytes for msg.
     */
    com.google.protobuf.ByteString
        getMsgBytes();

    /**
     * <code>bool is_user_error = 3;</code>
     * @return The isUserError.
     */
    boolean getIsUserError();
  }
  /**
   * Protobuf type {@code chronik.Error}
   */
  public  static final class Error extends
      com.google.protobuf.GeneratedMessageLite<
          Error, Error.Builder> implements
      // @@protoc_insertion_point(message_implements:chronik.Error)
      ErrorOrBuilder {
    private Error() {
      errorCode_ = "";
      msg_ = "";
    }
    public static final int ERROR_CODE_FIELD_NUMBER = 1;
    private java.lang.String errorCode_;
    /**
     * <code>string error_code = 1;</code>
     * @return The errorCode.
     */
    @java.lang.Override
    public java.lang.String getErrorCode() {
      return errorCode_;
    }
    /**
     * <code>string error_code = 1;</code>
     * @return The bytes for errorCode.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getErrorCodeBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(errorCode_);
    }
    /**
     * <code>string error_code = 1;</code>
     * @param value The errorCode to set.
     */
    private void setErrorCode(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      errorCode_ = value;
    }
    /**
     * <code>string error_code = 1;</code>
     */
    private void clearErrorCode() {

      errorCode_ = getDefaultInstance().getErrorCode();
    }
    /**
     * <code>string error_code = 1;</code>
     * @param value The bytes for errorCode to set.
     */
    private void setErrorCodeBytes(
        com.google.protobuf.ByteString value) {
      checkByteStringIsUtf8(value);
      errorCode_ = value.toStringUtf8();

    }

    public static final int MSG_FIELD_NUMBER = 2;
    private java.lang.String msg_;
    /**
     * <code>string msg = 2;</code>
     * @return The msg.
     */
    @java.lang.Override
    public java.lang.String getMsg() {
      return msg_;
    }
    /**
     * <code>string msg = 2;</code>
     * @return The bytes for msg.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getMsgBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(msg_);
    }
    /**
     * <code>string msg = 2;</code>
     * @param value The msg to set.
     */
    private void setMsg(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
  
      msg_ = value;
    }
    /**
     * <code>string msg = 2;</code>
     */
    private void clearMsg() {

      msg_ = getDefaultInstance().getMsg();
    }
    /**
     * <code>string msg = 2;</code>
     * @param value The bytes for msg to set.
     */
    private void setMsgBytes(
        com.google.protobuf.ByteString value) {
      checkByteStringIsUtf8(value);
      msg_ = value.toStringUtf8();

    }

    public static final int IS_USER_ERROR_FIELD_NUMBER = 3;
    private boolean isUserError_;
    /**
     * <code>bool is_user_error = 3;</code>
     * @return The isUserError.
     */
    @java.lang.Override
    public boolean getIsUserError() {
      return isUserError_;
    }
    /**
     * <code>bool is_user_error = 3;</code>
     * @param value The isUserError to set.
     */
    private void setIsUserError(boolean value) {
      
      isUserError_ = value;
    }
    /**
     * <code>bool is_user_error = 3;</code>
     */
    private void clearIsUserError() {

      isUserError_ = false;
    }

    public static chronik.Chronik.Error parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.Error parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.Error parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.Error parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.Error parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static chronik.Chronik.Error parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static chronik.Chronik.Error parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.Error parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.Error parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.Error parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static chronik.Chronik.Error parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static chronik.Chronik.Error parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }

    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(chronik.Chronik.Error prototype) {
      return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
    }

    /**
     * Protobuf type {@code chronik.Error}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          chronik.Chronik.Error, Builder> implements
        // @@protoc_insertion_point(builder_implements:chronik.Error)
        chronik.Chronik.ErrorOrBuilder {
      // Construct using chronik.Chronik.Error.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }


      /**
       * <code>string error_code = 1;</code>
       * @return The errorCode.
       */
      @java.lang.Override
      public java.lang.String getErrorCode() {
        return instance.getErrorCode();
      }
      /**
       * <code>string error_code = 1;</code>
       * @return The bytes for errorCode.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getErrorCodeBytes() {
        return instance.getErrorCodeBytes();
      }
      /**
       * <code>string error_code = 1;</code>
       * @param value The errorCode to set.
       * @return This builder for chaining.
       */
      public Builder setErrorCode(
          java.lang.String value) {
        copyOnWrite();
        instance.setErrorCode(value);
        return this;
      }
      /**
       * <code>string error_code = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearErrorCode() {
        copyOnWrite();
        instance.clearErrorCode();
        return this;
      }
      /**
       * <code>string error_code = 1;</code>
       * @param value The bytes for errorCode to set.
       * @return This builder for chaining.
       */
      public Builder setErrorCodeBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setErrorCodeBytes(value);
        return this;
      }

      /**
       * <code>string msg = 2;</code>
       * @return The msg.
       */
      @java.lang.Override
      public java.lang.String getMsg() {
        return instance.getMsg();
      }
      /**
       * <code>string msg = 2;</code>
       * @return The bytes for msg.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getMsgBytes() {
        return instance.getMsgBytes();
      }
      /**
       * <code>string msg = 2;</code>
       * @param value The msg to set.
       * @return This builder for chaining.
       */
      public Builder setMsg(
          java.lang.String value) {
        copyOnWrite();
        instance.setMsg(value);
        return this;
      }
      /**
       * <code>string msg = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearMsg() {
        copyOnWrite();
        instance.clearMsg();
        return this;
      }
      /**
       * <code>string msg = 2;</code>
       * @param value The bytes for msg to set.
       * @return This builder for chaining.
       */
      public Builder setMsgBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setMsgBytes(value);
        return this;
      }

      /**
       * <code>bool is_user_error = 3;</code>
       * @return The isUserError.
       */
      @java.lang.Override
      public boolean getIsUserError() {
        return instance.getIsUserError();
      }
      /**
       * <code>bool is_user_error = 3;</code>
       * @param value The isUserError to set.
       * @return This builder for chaining.
       */
      public Builder setIsUserError(boolean value) {
        copyOnWrite();
        instance.setIsUserError(value);
        return this;
      }
      /**
       * <code>bool is_user_error = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearIsUserError() {
        copyOnWrite();
        instance.clearIsUserError();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:chronik.Error)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new chronik.Chronik.Error();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "errorCode_",
              "msg_",
              "isUserError_",
            };
            java.lang.String info =
                "\u0000\u0003\u0000\u0000\u0001\u0003\u0003\u0000\u0000\u0000\u0001\u0208\u0002\u0208" +
                "\u0003\u0007";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<chronik.Chronik.Error> parser = PARSER;
          if (parser == null) {
            synchronized (chronik.Chronik.Error.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<chronik.Chronik.Error>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }


    // @@protoc_insertion_point(class_scope:chronik.Error)
    private static final chronik.Chronik.Error DEFAULT_INSTANCE;
    static {
      Error defaultInstance = new Error();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        Error.class, defaultInstance);
    }

    public static chronik.Chronik.Error getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static volatile com.google.protobuf.Parser<Error> PARSER;

    public static com.google.protobuf.Parser<Error> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }


  static {
  }

  // @@protoc_insertion_point(outer_class_scope)
}
