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

com.wavesplatform.protobuf.transaction.TransactionOuterClass Maven / Gradle / Ivy

There is a newer version: 1.5.2
Show newest version
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: waves/transaction.proto

package com.wavesplatform.protobuf.transaction;

public final class TransactionOuterClass {
  private TransactionOuterClass() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }

  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
    registerAllExtensions(
        (com.google.protobuf.ExtensionRegistryLite) registry);
  }
  public interface SignedTransactionOrBuilder extends
      // @@protoc_insertion_point(interface_extends:waves.SignedTransaction)
      com.google.protobuf.MessageOrBuilder {

    /**
     * .waves.Transaction transaction = 1;
     * @return Whether the transaction field is set.
     */
    boolean hasTransaction();
    /**
     * .waves.Transaction transaction = 1;
     * @return The transaction.
     */
    com.wavesplatform.protobuf.transaction.TransactionOuterClass.Transaction getTransaction();
    /**
     * .waves.Transaction transaction = 1;
     */
    com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransactionOrBuilder getTransactionOrBuilder();

    /**
     * repeated bytes proofs = 2;
     * @return A list containing the proofs.
     */
    java.util.List getProofsList();
    /**
     * repeated bytes proofs = 2;
     * @return The count of proofs.
     */
    int getProofsCount();
    /**
     * repeated bytes proofs = 2;
     * @param index The index of the element to return.
     * @return The proofs at the given index.
     */
    com.google.protobuf.ByteString getProofs(int index);
  }
  /**
   * Protobuf type {@code waves.SignedTransaction}
   */
  public  static final class SignedTransaction extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:waves.SignedTransaction)
      SignedTransactionOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use SignedTransaction.newBuilder() to construct.
    private SignedTransaction(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private SignedTransaction() {
      proofs_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new SignedTransaction();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private SignedTransaction(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              com.wavesplatform.protobuf.transaction.TransactionOuterClass.Transaction.Builder subBuilder = null;
              if (transaction_ != null) {
                subBuilder = transaction_.toBuilder();
              }
              transaction_ = input.readMessage(com.wavesplatform.protobuf.transaction.TransactionOuterClass.Transaction.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(transaction_);
                transaction_ = subBuilder.buildPartial();
              }

              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                proofs_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              proofs_.add(input.readBytes());
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          proofs_ = java.util.Collections.unmodifiableList(proofs_); // C
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_SignedTransaction_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_SignedTransaction_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.wavesplatform.protobuf.transaction.TransactionOuterClass.SignedTransaction.class, com.wavesplatform.protobuf.transaction.TransactionOuterClass.SignedTransaction.Builder.class);
    }

    public static final int TRANSACTION_FIELD_NUMBER = 1;
    private com.wavesplatform.protobuf.transaction.TransactionOuterClass.Transaction transaction_;
    /**
     * .waves.Transaction transaction = 1;
     * @return Whether the transaction field is set.
     */
    public boolean hasTransaction() {
      return transaction_ != null;
    }
    /**
     * .waves.Transaction transaction = 1;
     * @return The transaction.
     */
    public com.wavesplatform.protobuf.transaction.TransactionOuterClass.Transaction getTransaction() {
      return transaction_ == null ? com.wavesplatform.protobuf.transaction.TransactionOuterClass.Transaction.getDefaultInstance() : transaction_;
    }
    /**
     * .waves.Transaction transaction = 1;
     */
    public com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransactionOrBuilder getTransactionOrBuilder() {
      return getTransaction();
    }

    public static final int PROOFS_FIELD_NUMBER = 2;
    private java.util.List proofs_;
    /**
     * repeated bytes proofs = 2;
     * @return A list containing the proofs.
     */
    public java.util.List
        getProofsList() {
      return proofs_;
    }
    /**
     * repeated bytes proofs = 2;
     * @return The count of proofs.
     */
    public int getProofsCount() {
      return proofs_.size();
    }
    /**
     * repeated bytes proofs = 2;
     * @param index The index of the element to return.
     * @return The proofs at the given index.
     */
    public com.google.protobuf.ByteString getProofs(int index) {
      return proofs_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (transaction_ != null) {
        output.writeMessage(1, getTransaction());
      }
      for (int i = 0; i < proofs_.size(); i++) {
        output.writeBytes(2, proofs_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (transaction_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getTransaction());
      }
      {
        int dataSize = 0;
        for (int i = 0; i < proofs_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeBytesSizeNoTag(proofs_.get(i));
        }
        size += dataSize;
        size += 1 * getProofsList().size();
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.wavesplatform.protobuf.transaction.TransactionOuterClass.SignedTransaction)) {
        return super.equals(obj);
      }
      com.wavesplatform.protobuf.transaction.TransactionOuterClass.SignedTransaction other = (com.wavesplatform.protobuf.transaction.TransactionOuterClass.SignedTransaction) obj;

      if (hasTransaction() != other.hasTransaction()) return false;
      if (hasTransaction()) {
        if (!getTransaction()
            .equals(other.getTransaction())) return false;
      }
      if (!getProofsList()
          .equals(other.getProofsList())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasTransaction()) {
        hash = (37 * hash) + TRANSACTION_FIELD_NUMBER;
        hash = (53 * hash) + getTransaction().hashCode();
      }
      if (getProofsCount() > 0) {
        hash = (37 * hash) + PROOFS_FIELD_NUMBER;
        hash = (53 * hash) + getProofsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.SignedTransaction parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.SignedTransaction parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.SignedTransaction parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.SignedTransaction parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.SignedTransaction parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.SignedTransaction parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.SignedTransaction parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.SignedTransaction parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.SignedTransaction parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.SignedTransaction parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.SignedTransaction parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.SignedTransaction parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.wavesplatform.protobuf.transaction.TransactionOuterClass.SignedTransaction prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code waves.SignedTransaction}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:waves.SignedTransaction)
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.SignedTransactionOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_SignedTransaction_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_SignedTransaction_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.wavesplatform.protobuf.transaction.TransactionOuterClass.SignedTransaction.class, com.wavesplatform.protobuf.transaction.TransactionOuterClass.SignedTransaction.Builder.class);
      }

      // Construct using com.wavesplatform.protobuf.transaction.TransactionOuterClass.SignedTransaction.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (transactionBuilder_ == null) {
          transaction_ = null;
        } else {
          transaction_ = null;
          transactionBuilder_ = null;
        }
        proofs_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_SignedTransaction_descriptor;
      }

      @java.lang.Override
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.SignedTransaction getDefaultInstanceForType() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.SignedTransaction.getDefaultInstance();
      }

      @java.lang.Override
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.SignedTransaction build() {
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.SignedTransaction result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.SignedTransaction buildPartial() {
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.SignedTransaction result = new com.wavesplatform.protobuf.transaction.TransactionOuterClass.SignedTransaction(this);
        int from_bitField0_ = bitField0_;
        if (transactionBuilder_ == null) {
          result.transaction_ = transaction_;
        } else {
          result.transaction_ = transactionBuilder_.build();
        }
        if (((bitField0_ & 0x00000001) != 0)) {
          proofs_ = java.util.Collections.unmodifiableList(proofs_);
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.proofs_ = proofs_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.wavesplatform.protobuf.transaction.TransactionOuterClass.SignedTransaction) {
          return mergeFrom((com.wavesplatform.protobuf.transaction.TransactionOuterClass.SignedTransaction)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.wavesplatform.protobuf.transaction.TransactionOuterClass.SignedTransaction other) {
        if (other == com.wavesplatform.protobuf.transaction.TransactionOuterClass.SignedTransaction.getDefaultInstance()) return this;
        if (other.hasTransaction()) {
          mergeTransaction(other.getTransaction());
        }
        if (!other.proofs_.isEmpty()) {
          if (proofs_.isEmpty()) {
            proofs_ = other.proofs_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureProofsIsMutable();
            proofs_.addAll(other.proofs_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.SignedTransaction parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.wavesplatform.protobuf.transaction.TransactionOuterClass.SignedTransaction) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private com.wavesplatform.protobuf.transaction.TransactionOuterClass.Transaction transaction_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.Transaction, com.wavesplatform.protobuf.transaction.TransactionOuterClass.Transaction.Builder, com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransactionOrBuilder> transactionBuilder_;
      /**
       * .waves.Transaction transaction = 1;
       * @return Whether the transaction field is set.
       */
      public boolean hasTransaction() {
        return transactionBuilder_ != null || transaction_ != null;
      }
      /**
       * .waves.Transaction transaction = 1;
       * @return The transaction.
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.Transaction getTransaction() {
        if (transactionBuilder_ == null) {
          return transaction_ == null ? com.wavesplatform.protobuf.transaction.TransactionOuterClass.Transaction.getDefaultInstance() : transaction_;
        } else {
          return transactionBuilder_.getMessage();
        }
      }
      /**
       * .waves.Transaction transaction = 1;
       */
      public Builder setTransaction(com.wavesplatform.protobuf.transaction.TransactionOuterClass.Transaction value) {
        if (transactionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          transaction_ = value;
          onChanged();
        } else {
          transactionBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .waves.Transaction transaction = 1;
       */
      public Builder setTransaction(
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.Transaction.Builder builderForValue) {
        if (transactionBuilder_ == null) {
          transaction_ = builderForValue.build();
          onChanged();
        } else {
          transactionBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .waves.Transaction transaction = 1;
       */
      public Builder mergeTransaction(com.wavesplatform.protobuf.transaction.TransactionOuterClass.Transaction value) {
        if (transactionBuilder_ == null) {
          if (transaction_ != null) {
            transaction_ =
              com.wavesplatform.protobuf.transaction.TransactionOuterClass.Transaction.newBuilder(transaction_).mergeFrom(value).buildPartial();
          } else {
            transaction_ = value;
          }
          onChanged();
        } else {
          transactionBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .waves.Transaction transaction = 1;
       */
      public Builder clearTransaction() {
        if (transactionBuilder_ == null) {
          transaction_ = null;
          onChanged();
        } else {
          transaction_ = null;
          transactionBuilder_ = null;
        }

        return this;
      }
      /**
       * .waves.Transaction transaction = 1;
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.Transaction.Builder getTransactionBuilder() {
        
        onChanged();
        return getTransactionFieldBuilder().getBuilder();
      }
      /**
       * .waves.Transaction transaction = 1;
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransactionOrBuilder getTransactionOrBuilder() {
        if (transactionBuilder_ != null) {
          return transactionBuilder_.getMessageOrBuilder();
        } else {
          return transaction_ == null ?
              com.wavesplatform.protobuf.transaction.TransactionOuterClass.Transaction.getDefaultInstance() : transaction_;
        }
      }
      /**
       * .waves.Transaction transaction = 1;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.Transaction, com.wavesplatform.protobuf.transaction.TransactionOuterClass.Transaction.Builder, com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransactionOrBuilder> 
          getTransactionFieldBuilder() {
        if (transactionBuilder_ == null) {
          transactionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.wavesplatform.protobuf.transaction.TransactionOuterClass.Transaction, com.wavesplatform.protobuf.transaction.TransactionOuterClass.Transaction.Builder, com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransactionOrBuilder>(
                  getTransaction(),
                  getParentForChildren(),
                  isClean());
          transaction_ = null;
        }
        return transactionBuilder_;
      }

      private java.util.List proofs_ = java.util.Collections.emptyList();
      private void ensureProofsIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          proofs_ = new java.util.ArrayList(proofs_);
          bitField0_ |= 0x00000001;
         }
      }
      /**
       * repeated bytes proofs = 2;
       * @return A list containing the proofs.
       */
      public java.util.List
          getProofsList() {
        return ((bitField0_ & 0x00000001) != 0) ?
                 java.util.Collections.unmodifiableList(proofs_) : proofs_;
      }
      /**
       * repeated bytes proofs = 2;
       * @return The count of proofs.
       */
      public int getProofsCount() {
        return proofs_.size();
      }
      /**
       * repeated bytes proofs = 2;
       * @param index The index of the element to return.
       * @return The proofs at the given index.
       */
      public com.google.protobuf.ByteString getProofs(int index) {
        return proofs_.get(index);
      }
      /**
       * repeated bytes proofs = 2;
       * @param index The index to set the value at.
       * @param value The proofs to set.
       * @return This builder for chaining.
       */
      public Builder setProofs(
          int index, com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureProofsIsMutable();
        proofs_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * repeated bytes proofs = 2;
       * @param value The proofs to add.
       * @return This builder for chaining.
       */
      public Builder addProofs(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureProofsIsMutable();
        proofs_.add(value);
        onChanged();
        return this;
      }
      /**
       * repeated bytes proofs = 2;
       * @param values The proofs to add.
       * @return This builder for chaining.
       */
      public Builder addAllProofs(
          java.lang.Iterable values) {
        ensureProofsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, proofs_);
        onChanged();
        return this;
      }
      /**
       * repeated bytes proofs = 2;
       * @return This builder for chaining.
       */
      public Builder clearProofs() {
        proofs_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:waves.SignedTransaction)
    }

    // @@protoc_insertion_point(class_scope:waves.SignedTransaction)
    private static final com.wavesplatform.protobuf.transaction.TransactionOuterClass.SignedTransaction DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.wavesplatform.protobuf.transaction.TransactionOuterClass.SignedTransaction();
    }

    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.SignedTransaction getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public SignedTransaction parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new SignedTransaction(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.wavesplatform.protobuf.transaction.TransactionOuterClass.SignedTransaction getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface TransactionOrBuilder extends
      // @@protoc_insertion_point(interface_extends:waves.Transaction)
      com.google.protobuf.MessageOrBuilder {

    /**
     * int32 chain_id = 1;
     * @return The chainId.
     */
    int getChainId();

    /**
     * bytes sender_public_key = 2;
     * @return The senderPublicKey.
     */
    com.google.protobuf.ByteString getSenderPublicKey();

    /**
     * .waves.Amount fee = 3;
     * @return Whether the fee field is set.
     */
    boolean hasFee();
    /**
     * .waves.Amount fee = 3;
     * @return The fee.
     */
    com.wavesplatform.protobuf.AmountOuterClass.Amount getFee();
    /**
     * .waves.Amount fee = 3;
     */
    com.wavesplatform.protobuf.AmountOuterClass.AmountOrBuilder getFeeOrBuilder();

    /**
     * int64 timestamp = 4;
     * @return The timestamp.
     */
    long getTimestamp();

    /**
     * int32 version = 5;
     * @return The version.
     */
    int getVersion();

    /**
     * .waves.GenesisTransactionData genesis = 101;
     * @return Whether the genesis field is set.
     */
    boolean hasGenesis();
    /**
     * .waves.GenesisTransactionData genesis = 101;
     * @return The genesis.
     */
    com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData getGenesis();
    /**
     * .waves.GenesisTransactionData genesis = 101;
     */
    com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionDataOrBuilder getGenesisOrBuilder();

    /**
     * .waves.PaymentTransactionData payment = 102;
     * @return Whether the payment field is set.
     */
    boolean hasPayment();
    /**
     * .waves.PaymentTransactionData payment = 102;
     * @return The payment.
     */
    com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData getPayment();
    /**
     * .waves.PaymentTransactionData payment = 102;
     */
    com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionDataOrBuilder getPaymentOrBuilder();

    /**
     * .waves.IssueTransactionData issue = 103;
     * @return Whether the issue field is set.
     */
    boolean hasIssue();
    /**
     * .waves.IssueTransactionData issue = 103;
     * @return The issue.
     */
    com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData getIssue();
    /**
     * .waves.IssueTransactionData issue = 103;
     */
    com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionDataOrBuilder getIssueOrBuilder();

    /**
     * .waves.TransferTransactionData transfer = 104;
     * @return Whether the transfer field is set.
     */
    boolean hasTransfer();
    /**
     * .waves.TransferTransactionData transfer = 104;
     * @return The transfer.
     */
    com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData getTransfer();
    /**
     * .waves.TransferTransactionData transfer = 104;
     */
    com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionDataOrBuilder getTransferOrBuilder();

    /**
     * .waves.ReissueTransactionData reissue = 105;
     * @return Whether the reissue field is set.
     */
    boolean hasReissue();
    /**
     * .waves.ReissueTransactionData reissue = 105;
     * @return The reissue.
     */
    com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData getReissue();
    /**
     * .waves.ReissueTransactionData reissue = 105;
     */
    com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionDataOrBuilder getReissueOrBuilder();

    /**
     * .waves.BurnTransactionData burn = 106;
     * @return Whether the burn field is set.
     */
    boolean hasBurn();
    /**
     * .waves.BurnTransactionData burn = 106;
     * @return The burn.
     */
    com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData getBurn();
    /**
     * .waves.BurnTransactionData burn = 106;
     */
    com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionDataOrBuilder getBurnOrBuilder();

    /**
     * .waves.ExchangeTransactionData exchange = 107;
     * @return Whether the exchange field is set.
     */
    boolean hasExchange();
    /**
     * .waves.ExchangeTransactionData exchange = 107;
     * @return The exchange.
     */
    com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData getExchange();
    /**
     * .waves.ExchangeTransactionData exchange = 107;
     */
    com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionDataOrBuilder getExchangeOrBuilder();

    /**
     * .waves.LeaseTransactionData lease = 108;
     * @return Whether the lease field is set.
     */
    boolean hasLease();
    /**
     * .waves.LeaseTransactionData lease = 108;
     * @return The lease.
     */
    com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData getLease();
    /**
     * .waves.LeaseTransactionData lease = 108;
     */
    com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionDataOrBuilder getLeaseOrBuilder();

    /**
     * .waves.LeaseCancelTransactionData lease_cancel = 109;
     * @return Whether the leaseCancel field is set.
     */
    boolean hasLeaseCancel();
    /**
     * .waves.LeaseCancelTransactionData lease_cancel = 109;
     * @return The leaseCancel.
     */
    com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData getLeaseCancel();
    /**
     * .waves.LeaseCancelTransactionData lease_cancel = 109;
     */
    com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionDataOrBuilder getLeaseCancelOrBuilder();

    /**
     * .waves.CreateAliasTransactionData create_alias = 110;
     * @return Whether the createAlias field is set.
     */
    boolean hasCreateAlias();
    /**
     * .waves.CreateAliasTransactionData create_alias = 110;
     * @return The createAlias.
     */
    com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData getCreateAlias();
    /**
     * .waves.CreateAliasTransactionData create_alias = 110;
     */
    com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionDataOrBuilder getCreateAliasOrBuilder();

    /**
     * .waves.MassTransferTransactionData mass_transfer = 111;
     * @return Whether the massTransfer field is set.
     */
    boolean hasMassTransfer();
    /**
     * .waves.MassTransferTransactionData mass_transfer = 111;
     * @return The massTransfer.
     */
    com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData getMassTransfer();
    /**
     * .waves.MassTransferTransactionData mass_transfer = 111;
     */
    com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionDataOrBuilder getMassTransferOrBuilder();

    /**
     * .waves.DataTransactionData data_transaction = 112;
     * @return Whether the dataTransaction field is set.
     */
    boolean hasDataTransaction();
    /**
     * .waves.DataTransactionData data_transaction = 112;
     * @return The dataTransaction.
     */
    com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData getDataTransaction();
    /**
     * .waves.DataTransactionData data_transaction = 112;
     */
    com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionDataOrBuilder getDataTransactionOrBuilder();

    /**
     * .waves.SetScriptTransactionData set_script = 113;
     * @return Whether the setScript field is set.
     */
    boolean hasSetScript();
    /**
     * .waves.SetScriptTransactionData set_script = 113;
     * @return The setScript.
     */
    com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData getSetScript();
    /**
     * .waves.SetScriptTransactionData set_script = 113;
     */
    com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionDataOrBuilder getSetScriptOrBuilder();

    /**
     * .waves.SponsorFeeTransactionData sponsor_fee = 114;
     * @return Whether the sponsorFee field is set.
     */
    boolean hasSponsorFee();
    /**
     * .waves.SponsorFeeTransactionData sponsor_fee = 114;
     * @return The sponsorFee.
     */
    com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData getSponsorFee();
    /**
     * .waves.SponsorFeeTransactionData sponsor_fee = 114;
     */
    com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionDataOrBuilder getSponsorFeeOrBuilder();

    /**
     * .waves.SetAssetScriptTransactionData set_asset_script = 115;
     * @return Whether the setAssetScript field is set.
     */
    boolean hasSetAssetScript();
    /**
     * .waves.SetAssetScriptTransactionData set_asset_script = 115;
     * @return The setAssetScript.
     */
    com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData getSetAssetScript();
    /**
     * .waves.SetAssetScriptTransactionData set_asset_script = 115;
     */
    com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionDataOrBuilder getSetAssetScriptOrBuilder();

    /**
     * .waves.InvokeScriptTransactionData invoke_script = 116;
     * @return Whether the invokeScript field is set.
     */
    boolean hasInvokeScript();
    /**
     * .waves.InvokeScriptTransactionData invoke_script = 116;
     * @return The invokeScript.
     */
    com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData getInvokeScript();
    /**
     * .waves.InvokeScriptTransactionData invoke_script = 116;
     */
    com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionDataOrBuilder getInvokeScriptOrBuilder();

    /**
     * .waves.UpdateAssetInfoTransactionData update_asset_info = 117;
     * @return Whether the updateAssetInfo field is set.
     */
    boolean hasUpdateAssetInfo();
    /**
     * .waves.UpdateAssetInfoTransactionData update_asset_info = 117;
     * @return The updateAssetInfo.
     */
    com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData getUpdateAssetInfo();
    /**
     * .waves.UpdateAssetInfoTransactionData update_asset_info = 117;
     */
    com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionDataOrBuilder getUpdateAssetInfoOrBuilder();

    /**
     * .waves.ContinuationTransactionData continuation = 118;
     * @return Whether the continuation field is set.
     */
    boolean hasContinuation();
    /**
     * .waves.ContinuationTransactionData continuation = 118;
     * @return The continuation.
     */
    com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData getContinuation();
    /**
     * .waves.ContinuationTransactionData continuation = 118;
     */
    com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionDataOrBuilder getContinuationOrBuilder();

    public com.wavesplatform.protobuf.transaction.TransactionOuterClass.Transaction.DataCase getDataCase();
  }
  /**
   * Protobuf type {@code waves.Transaction}
   */
  public  static final class Transaction extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:waves.Transaction)
      TransactionOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Transaction.newBuilder() to construct.
    private Transaction(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private Transaction() {
      senderPublicKey_ = com.google.protobuf.ByteString.EMPTY;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new Transaction();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Transaction(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {

              chainId_ = input.readInt32();
              break;
            }
            case 18: {

              senderPublicKey_ = input.readBytes();
              break;
            }
            case 26: {
              com.wavesplatform.protobuf.AmountOuterClass.Amount.Builder subBuilder = null;
              if (fee_ != null) {
                subBuilder = fee_.toBuilder();
              }
              fee_ = input.readMessage(com.wavesplatform.protobuf.AmountOuterClass.Amount.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(fee_);
                fee_ = subBuilder.buildPartial();
              }

              break;
            }
            case 32: {

              timestamp_ = input.readInt64();
              break;
            }
            case 40: {

              version_ = input.readInt32();
              break;
            }
            case 810: {
              com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData.Builder subBuilder = null;
              if (dataCase_ == 101) {
                subBuilder = ((com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData) data_).toBuilder();
              }
              data_ =
                  input.readMessage(com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData) data_);
                data_ = subBuilder.buildPartial();
              }
              dataCase_ = 101;
              break;
            }
            case 818: {
              com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData.Builder subBuilder = null;
              if (dataCase_ == 102) {
                subBuilder = ((com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData) data_).toBuilder();
              }
              data_ =
                  input.readMessage(com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData) data_);
                data_ = subBuilder.buildPartial();
              }
              dataCase_ = 102;
              break;
            }
            case 826: {
              com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData.Builder subBuilder = null;
              if (dataCase_ == 103) {
                subBuilder = ((com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData) data_).toBuilder();
              }
              data_ =
                  input.readMessage(com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData) data_);
                data_ = subBuilder.buildPartial();
              }
              dataCase_ = 103;
              break;
            }
            case 834: {
              com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData.Builder subBuilder = null;
              if (dataCase_ == 104) {
                subBuilder = ((com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData) data_).toBuilder();
              }
              data_ =
                  input.readMessage(com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData) data_);
                data_ = subBuilder.buildPartial();
              }
              dataCase_ = 104;
              break;
            }
            case 842: {
              com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData.Builder subBuilder = null;
              if (dataCase_ == 105) {
                subBuilder = ((com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData) data_).toBuilder();
              }
              data_ =
                  input.readMessage(com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData) data_);
                data_ = subBuilder.buildPartial();
              }
              dataCase_ = 105;
              break;
            }
            case 850: {
              com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData.Builder subBuilder = null;
              if (dataCase_ == 106) {
                subBuilder = ((com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData) data_).toBuilder();
              }
              data_ =
                  input.readMessage(com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData) data_);
                data_ = subBuilder.buildPartial();
              }
              dataCase_ = 106;
              break;
            }
            case 858: {
              com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData.Builder subBuilder = null;
              if (dataCase_ == 107) {
                subBuilder = ((com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData) data_).toBuilder();
              }
              data_ =
                  input.readMessage(com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData) data_);
                data_ = subBuilder.buildPartial();
              }
              dataCase_ = 107;
              break;
            }
            case 866: {
              com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData.Builder subBuilder = null;
              if (dataCase_ == 108) {
                subBuilder = ((com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData) data_).toBuilder();
              }
              data_ =
                  input.readMessage(com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData) data_);
                data_ = subBuilder.buildPartial();
              }
              dataCase_ = 108;
              break;
            }
            case 874: {
              com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData.Builder subBuilder = null;
              if (dataCase_ == 109) {
                subBuilder = ((com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData) data_).toBuilder();
              }
              data_ =
                  input.readMessage(com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData) data_);
                data_ = subBuilder.buildPartial();
              }
              dataCase_ = 109;
              break;
            }
            case 882: {
              com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData.Builder subBuilder = null;
              if (dataCase_ == 110) {
                subBuilder = ((com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData) data_).toBuilder();
              }
              data_ =
                  input.readMessage(com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData) data_);
                data_ = subBuilder.buildPartial();
              }
              dataCase_ = 110;
              break;
            }
            case 890: {
              com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Builder subBuilder = null;
              if (dataCase_ == 111) {
                subBuilder = ((com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData) data_).toBuilder();
              }
              data_ =
                  input.readMessage(com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData) data_);
                data_ = subBuilder.buildPartial();
              }
              dataCase_ = 111;
              break;
            }
            case 898: {
              com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.Builder subBuilder = null;
              if (dataCase_ == 112) {
                subBuilder = ((com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData) data_).toBuilder();
              }
              data_ =
                  input.readMessage(com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData) data_);
                data_ = subBuilder.buildPartial();
              }
              dataCase_ = 112;
              break;
            }
            case 906: {
              com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData.Builder subBuilder = null;
              if (dataCase_ == 113) {
                subBuilder = ((com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData) data_).toBuilder();
              }
              data_ =
                  input.readMessage(com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData) data_);
                data_ = subBuilder.buildPartial();
              }
              dataCase_ = 113;
              break;
            }
            case 914: {
              com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData.Builder subBuilder = null;
              if (dataCase_ == 114) {
                subBuilder = ((com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData) data_).toBuilder();
              }
              data_ =
                  input.readMessage(com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData) data_);
                data_ = subBuilder.buildPartial();
              }
              dataCase_ = 114;
              break;
            }
            case 922: {
              com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData.Builder subBuilder = null;
              if (dataCase_ == 115) {
                subBuilder = ((com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData) data_).toBuilder();
              }
              data_ =
                  input.readMessage(com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData) data_);
                data_ = subBuilder.buildPartial();
              }
              dataCase_ = 115;
              break;
            }
            case 930: {
              com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData.Builder subBuilder = null;
              if (dataCase_ == 116) {
                subBuilder = ((com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData) data_).toBuilder();
              }
              data_ =
                  input.readMessage(com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData) data_);
                data_ = subBuilder.buildPartial();
              }
              dataCase_ = 116;
              break;
            }
            case 938: {
              com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData.Builder subBuilder = null;
              if (dataCase_ == 117) {
                subBuilder = ((com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData) data_).toBuilder();
              }
              data_ =
                  input.readMessage(com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData) data_);
                data_ = subBuilder.buildPartial();
              }
              dataCase_ = 117;
              break;
            }
            case 946: {
              com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData.Builder subBuilder = null;
              if (dataCase_ == 118) {
                subBuilder = ((com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData) data_).toBuilder();
              }
              data_ =
                  input.readMessage(com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData) data_);
                data_ = subBuilder.buildPartial();
              }
              dataCase_ = 118;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_Transaction_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_Transaction_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.wavesplatform.protobuf.transaction.TransactionOuterClass.Transaction.class, com.wavesplatform.protobuf.transaction.TransactionOuterClass.Transaction.Builder.class);
    }

    private int dataCase_ = 0;
    private java.lang.Object data_;
    public enum DataCase
        implements com.google.protobuf.Internal.EnumLite,
            com.google.protobuf.AbstractMessage.InternalOneOfEnum {
      GENESIS(101),
      PAYMENT(102),
      ISSUE(103),
      TRANSFER(104),
      REISSUE(105),
      BURN(106),
      EXCHANGE(107),
      LEASE(108),
      LEASE_CANCEL(109),
      CREATE_ALIAS(110),
      MASS_TRANSFER(111),
      DATA_TRANSACTION(112),
      SET_SCRIPT(113),
      SPONSOR_FEE(114),
      SET_ASSET_SCRIPT(115),
      INVOKE_SCRIPT(116),
      UPDATE_ASSET_INFO(117),
      CONTINUATION(118),
      DATA_NOT_SET(0);
      private final int value;
      private DataCase(int value) {
        this.value = 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 DataCase valueOf(int value) {
        return forNumber(value);
      }

      public static DataCase forNumber(int value) {
        switch (value) {
          case 101: return GENESIS;
          case 102: return PAYMENT;
          case 103: return ISSUE;
          case 104: return TRANSFER;
          case 105: return REISSUE;
          case 106: return BURN;
          case 107: return EXCHANGE;
          case 108: return LEASE;
          case 109: return LEASE_CANCEL;
          case 110: return CREATE_ALIAS;
          case 111: return MASS_TRANSFER;
          case 112: return DATA_TRANSACTION;
          case 113: return SET_SCRIPT;
          case 114: return SPONSOR_FEE;
          case 115: return SET_ASSET_SCRIPT;
          case 116: return INVOKE_SCRIPT;
          case 117: return UPDATE_ASSET_INFO;
          case 118: return CONTINUATION;
          case 0: return DATA_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public DataCase
    getDataCase() {
      return DataCase.forNumber(
          dataCase_);
    }

    public static final int CHAIN_ID_FIELD_NUMBER = 1;
    private int chainId_;
    /**
     * int32 chain_id = 1;
     * @return The chainId.
     */
    public int getChainId() {
      return chainId_;
    }

    public static final int SENDER_PUBLIC_KEY_FIELD_NUMBER = 2;
    private com.google.protobuf.ByteString senderPublicKey_;
    /**
     * bytes sender_public_key = 2;
     * @return The senderPublicKey.
     */
    public com.google.protobuf.ByteString getSenderPublicKey() {
      return senderPublicKey_;
    }

    public static final int FEE_FIELD_NUMBER = 3;
    private com.wavesplatform.protobuf.AmountOuterClass.Amount fee_;
    /**
     * .waves.Amount fee = 3;
     * @return Whether the fee field is set.
     */
    public boolean hasFee() {
      return fee_ != null;
    }
    /**
     * .waves.Amount fee = 3;
     * @return The fee.
     */
    public com.wavesplatform.protobuf.AmountOuterClass.Amount getFee() {
      return fee_ == null ? com.wavesplatform.protobuf.AmountOuterClass.Amount.getDefaultInstance() : fee_;
    }
    /**
     * .waves.Amount fee = 3;
     */
    public com.wavesplatform.protobuf.AmountOuterClass.AmountOrBuilder getFeeOrBuilder() {
      return getFee();
    }

    public static final int TIMESTAMP_FIELD_NUMBER = 4;
    private long timestamp_;
    /**
     * int64 timestamp = 4;
     * @return The timestamp.
     */
    public long getTimestamp() {
      return timestamp_;
    }

    public static final int VERSION_FIELD_NUMBER = 5;
    private int version_;
    /**
     * int32 version = 5;
     * @return The version.
     */
    public int getVersion() {
      return version_;
    }

    public static final int GENESIS_FIELD_NUMBER = 101;
    /**
     * .waves.GenesisTransactionData genesis = 101;
     * @return Whether the genesis field is set.
     */
    public boolean hasGenesis() {
      return dataCase_ == 101;
    }
    /**
     * .waves.GenesisTransactionData genesis = 101;
     * @return The genesis.
     */
    public com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData getGenesis() {
      if (dataCase_ == 101) {
         return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData) data_;
      }
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData.getDefaultInstance();
    }
    /**
     * .waves.GenesisTransactionData genesis = 101;
     */
    public com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionDataOrBuilder getGenesisOrBuilder() {
      if (dataCase_ == 101) {
         return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData) data_;
      }
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData.getDefaultInstance();
    }

    public static final int PAYMENT_FIELD_NUMBER = 102;
    /**
     * .waves.PaymentTransactionData payment = 102;
     * @return Whether the payment field is set.
     */
    public boolean hasPayment() {
      return dataCase_ == 102;
    }
    /**
     * .waves.PaymentTransactionData payment = 102;
     * @return The payment.
     */
    public com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData getPayment() {
      if (dataCase_ == 102) {
         return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData) data_;
      }
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData.getDefaultInstance();
    }
    /**
     * .waves.PaymentTransactionData payment = 102;
     */
    public com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionDataOrBuilder getPaymentOrBuilder() {
      if (dataCase_ == 102) {
         return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData) data_;
      }
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData.getDefaultInstance();
    }

    public static final int ISSUE_FIELD_NUMBER = 103;
    /**
     * .waves.IssueTransactionData issue = 103;
     * @return Whether the issue field is set.
     */
    public boolean hasIssue() {
      return dataCase_ == 103;
    }
    /**
     * .waves.IssueTransactionData issue = 103;
     * @return The issue.
     */
    public com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData getIssue() {
      if (dataCase_ == 103) {
         return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData) data_;
      }
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData.getDefaultInstance();
    }
    /**
     * .waves.IssueTransactionData issue = 103;
     */
    public com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionDataOrBuilder getIssueOrBuilder() {
      if (dataCase_ == 103) {
         return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData) data_;
      }
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData.getDefaultInstance();
    }

    public static final int TRANSFER_FIELD_NUMBER = 104;
    /**
     * .waves.TransferTransactionData transfer = 104;
     * @return Whether the transfer field is set.
     */
    public boolean hasTransfer() {
      return dataCase_ == 104;
    }
    /**
     * .waves.TransferTransactionData transfer = 104;
     * @return The transfer.
     */
    public com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData getTransfer() {
      if (dataCase_ == 104) {
         return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData) data_;
      }
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData.getDefaultInstance();
    }
    /**
     * .waves.TransferTransactionData transfer = 104;
     */
    public com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionDataOrBuilder getTransferOrBuilder() {
      if (dataCase_ == 104) {
         return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData) data_;
      }
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData.getDefaultInstance();
    }

    public static final int REISSUE_FIELD_NUMBER = 105;
    /**
     * .waves.ReissueTransactionData reissue = 105;
     * @return Whether the reissue field is set.
     */
    public boolean hasReissue() {
      return dataCase_ == 105;
    }
    /**
     * .waves.ReissueTransactionData reissue = 105;
     * @return The reissue.
     */
    public com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData getReissue() {
      if (dataCase_ == 105) {
         return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData) data_;
      }
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData.getDefaultInstance();
    }
    /**
     * .waves.ReissueTransactionData reissue = 105;
     */
    public com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionDataOrBuilder getReissueOrBuilder() {
      if (dataCase_ == 105) {
         return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData) data_;
      }
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData.getDefaultInstance();
    }

    public static final int BURN_FIELD_NUMBER = 106;
    /**
     * .waves.BurnTransactionData burn = 106;
     * @return Whether the burn field is set.
     */
    public boolean hasBurn() {
      return dataCase_ == 106;
    }
    /**
     * .waves.BurnTransactionData burn = 106;
     * @return The burn.
     */
    public com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData getBurn() {
      if (dataCase_ == 106) {
         return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData) data_;
      }
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData.getDefaultInstance();
    }
    /**
     * .waves.BurnTransactionData burn = 106;
     */
    public com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionDataOrBuilder getBurnOrBuilder() {
      if (dataCase_ == 106) {
         return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData) data_;
      }
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData.getDefaultInstance();
    }

    public static final int EXCHANGE_FIELD_NUMBER = 107;
    /**
     * .waves.ExchangeTransactionData exchange = 107;
     * @return Whether the exchange field is set.
     */
    public boolean hasExchange() {
      return dataCase_ == 107;
    }
    /**
     * .waves.ExchangeTransactionData exchange = 107;
     * @return The exchange.
     */
    public com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData getExchange() {
      if (dataCase_ == 107) {
         return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData) data_;
      }
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData.getDefaultInstance();
    }
    /**
     * .waves.ExchangeTransactionData exchange = 107;
     */
    public com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionDataOrBuilder getExchangeOrBuilder() {
      if (dataCase_ == 107) {
         return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData) data_;
      }
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData.getDefaultInstance();
    }

    public static final int LEASE_FIELD_NUMBER = 108;
    /**
     * .waves.LeaseTransactionData lease = 108;
     * @return Whether the lease field is set.
     */
    public boolean hasLease() {
      return dataCase_ == 108;
    }
    /**
     * .waves.LeaseTransactionData lease = 108;
     * @return The lease.
     */
    public com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData getLease() {
      if (dataCase_ == 108) {
         return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData) data_;
      }
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData.getDefaultInstance();
    }
    /**
     * .waves.LeaseTransactionData lease = 108;
     */
    public com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionDataOrBuilder getLeaseOrBuilder() {
      if (dataCase_ == 108) {
         return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData) data_;
      }
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData.getDefaultInstance();
    }

    public static final int LEASE_CANCEL_FIELD_NUMBER = 109;
    /**
     * .waves.LeaseCancelTransactionData lease_cancel = 109;
     * @return Whether the leaseCancel field is set.
     */
    public boolean hasLeaseCancel() {
      return dataCase_ == 109;
    }
    /**
     * .waves.LeaseCancelTransactionData lease_cancel = 109;
     * @return The leaseCancel.
     */
    public com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData getLeaseCancel() {
      if (dataCase_ == 109) {
         return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData) data_;
      }
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData.getDefaultInstance();
    }
    /**
     * .waves.LeaseCancelTransactionData lease_cancel = 109;
     */
    public com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionDataOrBuilder getLeaseCancelOrBuilder() {
      if (dataCase_ == 109) {
         return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData) data_;
      }
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData.getDefaultInstance();
    }

    public static final int CREATE_ALIAS_FIELD_NUMBER = 110;
    /**
     * .waves.CreateAliasTransactionData create_alias = 110;
     * @return Whether the createAlias field is set.
     */
    public boolean hasCreateAlias() {
      return dataCase_ == 110;
    }
    /**
     * .waves.CreateAliasTransactionData create_alias = 110;
     * @return The createAlias.
     */
    public com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData getCreateAlias() {
      if (dataCase_ == 110) {
         return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData) data_;
      }
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData.getDefaultInstance();
    }
    /**
     * .waves.CreateAliasTransactionData create_alias = 110;
     */
    public com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionDataOrBuilder getCreateAliasOrBuilder() {
      if (dataCase_ == 110) {
         return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData) data_;
      }
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData.getDefaultInstance();
    }

    public static final int MASS_TRANSFER_FIELD_NUMBER = 111;
    /**
     * .waves.MassTransferTransactionData mass_transfer = 111;
     * @return Whether the massTransfer field is set.
     */
    public boolean hasMassTransfer() {
      return dataCase_ == 111;
    }
    /**
     * .waves.MassTransferTransactionData mass_transfer = 111;
     * @return The massTransfer.
     */
    public com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData getMassTransfer() {
      if (dataCase_ == 111) {
         return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData) data_;
      }
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.getDefaultInstance();
    }
    /**
     * .waves.MassTransferTransactionData mass_transfer = 111;
     */
    public com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionDataOrBuilder getMassTransferOrBuilder() {
      if (dataCase_ == 111) {
         return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData) data_;
      }
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.getDefaultInstance();
    }

    public static final int DATA_TRANSACTION_FIELD_NUMBER = 112;
    /**
     * .waves.DataTransactionData data_transaction = 112;
     * @return Whether the dataTransaction field is set.
     */
    public boolean hasDataTransaction() {
      return dataCase_ == 112;
    }
    /**
     * .waves.DataTransactionData data_transaction = 112;
     * @return The dataTransaction.
     */
    public com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData getDataTransaction() {
      if (dataCase_ == 112) {
         return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData) data_;
      }
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.getDefaultInstance();
    }
    /**
     * .waves.DataTransactionData data_transaction = 112;
     */
    public com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionDataOrBuilder getDataTransactionOrBuilder() {
      if (dataCase_ == 112) {
         return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData) data_;
      }
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.getDefaultInstance();
    }

    public static final int SET_SCRIPT_FIELD_NUMBER = 113;
    /**
     * .waves.SetScriptTransactionData set_script = 113;
     * @return Whether the setScript field is set.
     */
    public boolean hasSetScript() {
      return dataCase_ == 113;
    }
    /**
     * .waves.SetScriptTransactionData set_script = 113;
     * @return The setScript.
     */
    public com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData getSetScript() {
      if (dataCase_ == 113) {
         return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData) data_;
      }
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData.getDefaultInstance();
    }
    /**
     * .waves.SetScriptTransactionData set_script = 113;
     */
    public com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionDataOrBuilder getSetScriptOrBuilder() {
      if (dataCase_ == 113) {
         return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData) data_;
      }
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData.getDefaultInstance();
    }

    public static final int SPONSOR_FEE_FIELD_NUMBER = 114;
    /**
     * .waves.SponsorFeeTransactionData sponsor_fee = 114;
     * @return Whether the sponsorFee field is set.
     */
    public boolean hasSponsorFee() {
      return dataCase_ == 114;
    }
    /**
     * .waves.SponsorFeeTransactionData sponsor_fee = 114;
     * @return The sponsorFee.
     */
    public com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData getSponsorFee() {
      if (dataCase_ == 114) {
         return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData) data_;
      }
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData.getDefaultInstance();
    }
    /**
     * .waves.SponsorFeeTransactionData sponsor_fee = 114;
     */
    public com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionDataOrBuilder getSponsorFeeOrBuilder() {
      if (dataCase_ == 114) {
         return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData) data_;
      }
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData.getDefaultInstance();
    }

    public static final int SET_ASSET_SCRIPT_FIELD_NUMBER = 115;
    /**
     * .waves.SetAssetScriptTransactionData set_asset_script = 115;
     * @return Whether the setAssetScript field is set.
     */
    public boolean hasSetAssetScript() {
      return dataCase_ == 115;
    }
    /**
     * .waves.SetAssetScriptTransactionData set_asset_script = 115;
     * @return The setAssetScript.
     */
    public com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData getSetAssetScript() {
      if (dataCase_ == 115) {
         return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData) data_;
      }
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData.getDefaultInstance();
    }
    /**
     * .waves.SetAssetScriptTransactionData set_asset_script = 115;
     */
    public com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionDataOrBuilder getSetAssetScriptOrBuilder() {
      if (dataCase_ == 115) {
         return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData) data_;
      }
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData.getDefaultInstance();
    }

    public static final int INVOKE_SCRIPT_FIELD_NUMBER = 116;
    /**
     * .waves.InvokeScriptTransactionData invoke_script = 116;
     * @return Whether the invokeScript field is set.
     */
    public boolean hasInvokeScript() {
      return dataCase_ == 116;
    }
    /**
     * .waves.InvokeScriptTransactionData invoke_script = 116;
     * @return The invokeScript.
     */
    public com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData getInvokeScript() {
      if (dataCase_ == 116) {
         return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData) data_;
      }
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData.getDefaultInstance();
    }
    /**
     * .waves.InvokeScriptTransactionData invoke_script = 116;
     */
    public com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionDataOrBuilder getInvokeScriptOrBuilder() {
      if (dataCase_ == 116) {
         return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData) data_;
      }
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData.getDefaultInstance();
    }

    public static final int UPDATE_ASSET_INFO_FIELD_NUMBER = 117;
    /**
     * .waves.UpdateAssetInfoTransactionData update_asset_info = 117;
     * @return Whether the updateAssetInfo field is set.
     */
    public boolean hasUpdateAssetInfo() {
      return dataCase_ == 117;
    }
    /**
     * .waves.UpdateAssetInfoTransactionData update_asset_info = 117;
     * @return The updateAssetInfo.
     */
    public com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData getUpdateAssetInfo() {
      if (dataCase_ == 117) {
         return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData) data_;
      }
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData.getDefaultInstance();
    }
    /**
     * .waves.UpdateAssetInfoTransactionData update_asset_info = 117;
     */
    public com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionDataOrBuilder getUpdateAssetInfoOrBuilder() {
      if (dataCase_ == 117) {
         return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData) data_;
      }
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData.getDefaultInstance();
    }

    public static final int CONTINUATION_FIELD_NUMBER = 118;
    /**
     * .waves.ContinuationTransactionData continuation = 118;
     * @return Whether the continuation field is set.
     */
    public boolean hasContinuation() {
      return dataCase_ == 118;
    }
    /**
     * .waves.ContinuationTransactionData continuation = 118;
     * @return The continuation.
     */
    public com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData getContinuation() {
      if (dataCase_ == 118) {
         return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData) data_;
      }
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData.getDefaultInstance();
    }
    /**
     * .waves.ContinuationTransactionData continuation = 118;
     */
    public com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionDataOrBuilder getContinuationOrBuilder() {
      if (dataCase_ == 118) {
         return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData) data_;
      }
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData.getDefaultInstance();
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (chainId_ != 0) {
        output.writeInt32(1, chainId_);
      }
      if (!senderPublicKey_.isEmpty()) {
        output.writeBytes(2, senderPublicKey_);
      }
      if (fee_ != null) {
        output.writeMessage(3, getFee());
      }
      if (timestamp_ != 0L) {
        output.writeInt64(4, timestamp_);
      }
      if (version_ != 0) {
        output.writeInt32(5, version_);
      }
      if (dataCase_ == 101) {
        output.writeMessage(101, (com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData) data_);
      }
      if (dataCase_ == 102) {
        output.writeMessage(102, (com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData) data_);
      }
      if (dataCase_ == 103) {
        output.writeMessage(103, (com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData) data_);
      }
      if (dataCase_ == 104) {
        output.writeMessage(104, (com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData) data_);
      }
      if (dataCase_ == 105) {
        output.writeMessage(105, (com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData) data_);
      }
      if (dataCase_ == 106) {
        output.writeMessage(106, (com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData) data_);
      }
      if (dataCase_ == 107) {
        output.writeMessage(107, (com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData) data_);
      }
      if (dataCase_ == 108) {
        output.writeMessage(108, (com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData) data_);
      }
      if (dataCase_ == 109) {
        output.writeMessage(109, (com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData) data_);
      }
      if (dataCase_ == 110) {
        output.writeMessage(110, (com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData) data_);
      }
      if (dataCase_ == 111) {
        output.writeMessage(111, (com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData) data_);
      }
      if (dataCase_ == 112) {
        output.writeMessage(112, (com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData) data_);
      }
      if (dataCase_ == 113) {
        output.writeMessage(113, (com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData) data_);
      }
      if (dataCase_ == 114) {
        output.writeMessage(114, (com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData) data_);
      }
      if (dataCase_ == 115) {
        output.writeMessage(115, (com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData) data_);
      }
      if (dataCase_ == 116) {
        output.writeMessage(116, (com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData) data_);
      }
      if (dataCase_ == 117) {
        output.writeMessage(117, (com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData) data_);
      }
      if (dataCase_ == 118) {
        output.writeMessage(118, (com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData) data_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (chainId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, chainId_);
      }
      if (!senderPublicKey_.isEmpty()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, senderPublicKey_);
      }
      if (fee_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getFee());
      }
      if (timestamp_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(4, timestamp_);
      }
      if (version_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(5, version_);
      }
      if (dataCase_ == 101) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(101, (com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData) data_);
      }
      if (dataCase_ == 102) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(102, (com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData) data_);
      }
      if (dataCase_ == 103) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(103, (com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData) data_);
      }
      if (dataCase_ == 104) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(104, (com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData) data_);
      }
      if (dataCase_ == 105) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(105, (com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData) data_);
      }
      if (dataCase_ == 106) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(106, (com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData) data_);
      }
      if (dataCase_ == 107) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(107, (com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData) data_);
      }
      if (dataCase_ == 108) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(108, (com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData) data_);
      }
      if (dataCase_ == 109) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(109, (com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData) data_);
      }
      if (dataCase_ == 110) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(110, (com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData) data_);
      }
      if (dataCase_ == 111) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(111, (com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData) data_);
      }
      if (dataCase_ == 112) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(112, (com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData) data_);
      }
      if (dataCase_ == 113) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(113, (com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData) data_);
      }
      if (dataCase_ == 114) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(114, (com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData) data_);
      }
      if (dataCase_ == 115) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(115, (com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData) data_);
      }
      if (dataCase_ == 116) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(116, (com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData) data_);
      }
      if (dataCase_ == 117) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(117, (com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData) data_);
      }
      if (dataCase_ == 118) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(118, (com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData) data_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.wavesplatform.protobuf.transaction.TransactionOuterClass.Transaction)) {
        return super.equals(obj);
      }
      com.wavesplatform.protobuf.transaction.TransactionOuterClass.Transaction other = (com.wavesplatform.protobuf.transaction.TransactionOuterClass.Transaction) obj;

      if (getChainId()
          != other.getChainId()) return false;
      if (!getSenderPublicKey()
          .equals(other.getSenderPublicKey())) return false;
      if (hasFee() != other.hasFee()) return false;
      if (hasFee()) {
        if (!getFee()
            .equals(other.getFee())) return false;
      }
      if (getTimestamp()
          != other.getTimestamp()) return false;
      if (getVersion()
          != other.getVersion()) return false;
      if (!getDataCase().equals(other.getDataCase())) return false;
      switch (dataCase_) {
        case 101:
          if (!getGenesis()
              .equals(other.getGenesis())) return false;
          break;
        case 102:
          if (!getPayment()
              .equals(other.getPayment())) return false;
          break;
        case 103:
          if (!getIssue()
              .equals(other.getIssue())) return false;
          break;
        case 104:
          if (!getTransfer()
              .equals(other.getTransfer())) return false;
          break;
        case 105:
          if (!getReissue()
              .equals(other.getReissue())) return false;
          break;
        case 106:
          if (!getBurn()
              .equals(other.getBurn())) return false;
          break;
        case 107:
          if (!getExchange()
              .equals(other.getExchange())) return false;
          break;
        case 108:
          if (!getLease()
              .equals(other.getLease())) return false;
          break;
        case 109:
          if (!getLeaseCancel()
              .equals(other.getLeaseCancel())) return false;
          break;
        case 110:
          if (!getCreateAlias()
              .equals(other.getCreateAlias())) return false;
          break;
        case 111:
          if (!getMassTransfer()
              .equals(other.getMassTransfer())) return false;
          break;
        case 112:
          if (!getDataTransaction()
              .equals(other.getDataTransaction())) return false;
          break;
        case 113:
          if (!getSetScript()
              .equals(other.getSetScript())) return false;
          break;
        case 114:
          if (!getSponsorFee()
              .equals(other.getSponsorFee())) return false;
          break;
        case 115:
          if (!getSetAssetScript()
              .equals(other.getSetAssetScript())) return false;
          break;
        case 116:
          if (!getInvokeScript()
              .equals(other.getInvokeScript())) return false;
          break;
        case 117:
          if (!getUpdateAssetInfo()
              .equals(other.getUpdateAssetInfo())) return false;
          break;
        case 118:
          if (!getContinuation()
              .equals(other.getContinuation())) return false;
          break;
        case 0:
        default:
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + CHAIN_ID_FIELD_NUMBER;
      hash = (53 * hash) + getChainId();
      hash = (37 * hash) + SENDER_PUBLIC_KEY_FIELD_NUMBER;
      hash = (53 * hash) + getSenderPublicKey().hashCode();
      if (hasFee()) {
        hash = (37 * hash) + FEE_FIELD_NUMBER;
        hash = (53 * hash) + getFee().hashCode();
      }
      hash = (37 * hash) + TIMESTAMP_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getTimestamp());
      hash = (37 * hash) + VERSION_FIELD_NUMBER;
      hash = (53 * hash) + getVersion();
      switch (dataCase_) {
        case 101:
          hash = (37 * hash) + GENESIS_FIELD_NUMBER;
          hash = (53 * hash) + getGenesis().hashCode();
          break;
        case 102:
          hash = (37 * hash) + PAYMENT_FIELD_NUMBER;
          hash = (53 * hash) + getPayment().hashCode();
          break;
        case 103:
          hash = (37 * hash) + ISSUE_FIELD_NUMBER;
          hash = (53 * hash) + getIssue().hashCode();
          break;
        case 104:
          hash = (37 * hash) + TRANSFER_FIELD_NUMBER;
          hash = (53 * hash) + getTransfer().hashCode();
          break;
        case 105:
          hash = (37 * hash) + REISSUE_FIELD_NUMBER;
          hash = (53 * hash) + getReissue().hashCode();
          break;
        case 106:
          hash = (37 * hash) + BURN_FIELD_NUMBER;
          hash = (53 * hash) + getBurn().hashCode();
          break;
        case 107:
          hash = (37 * hash) + EXCHANGE_FIELD_NUMBER;
          hash = (53 * hash) + getExchange().hashCode();
          break;
        case 108:
          hash = (37 * hash) + LEASE_FIELD_NUMBER;
          hash = (53 * hash) + getLease().hashCode();
          break;
        case 109:
          hash = (37 * hash) + LEASE_CANCEL_FIELD_NUMBER;
          hash = (53 * hash) + getLeaseCancel().hashCode();
          break;
        case 110:
          hash = (37 * hash) + CREATE_ALIAS_FIELD_NUMBER;
          hash = (53 * hash) + getCreateAlias().hashCode();
          break;
        case 111:
          hash = (37 * hash) + MASS_TRANSFER_FIELD_NUMBER;
          hash = (53 * hash) + getMassTransfer().hashCode();
          break;
        case 112:
          hash = (37 * hash) + DATA_TRANSACTION_FIELD_NUMBER;
          hash = (53 * hash) + getDataTransaction().hashCode();
          break;
        case 113:
          hash = (37 * hash) + SET_SCRIPT_FIELD_NUMBER;
          hash = (53 * hash) + getSetScript().hashCode();
          break;
        case 114:
          hash = (37 * hash) + SPONSOR_FEE_FIELD_NUMBER;
          hash = (53 * hash) + getSponsorFee().hashCode();
          break;
        case 115:
          hash = (37 * hash) + SET_ASSET_SCRIPT_FIELD_NUMBER;
          hash = (53 * hash) + getSetAssetScript().hashCode();
          break;
        case 116:
          hash = (37 * hash) + INVOKE_SCRIPT_FIELD_NUMBER;
          hash = (53 * hash) + getInvokeScript().hashCode();
          break;
        case 117:
          hash = (37 * hash) + UPDATE_ASSET_INFO_FIELD_NUMBER;
          hash = (53 * hash) + getUpdateAssetInfo().hashCode();
          break;
        case 118:
          hash = (37 * hash) + CONTINUATION_FIELD_NUMBER;
          hash = (53 * hash) + getContinuation().hashCode();
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.Transaction parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.Transaction parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.Transaction parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.Transaction parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.Transaction parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.Transaction parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.Transaction parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.Transaction parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.Transaction parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.Transaction parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.Transaction parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.Transaction parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.wavesplatform.protobuf.transaction.TransactionOuterClass.Transaction prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code waves.Transaction}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:waves.Transaction)
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransactionOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_Transaction_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_Transaction_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.wavesplatform.protobuf.transaction.TransactionOuterClass.Transaction.class, com.wavesplatform.protobuf.transaction.TransactionOuterClass.Transaction.Builder.class);
      }

      // Construct using com.wavesplatform.protobuf.transaction.TransactionOuterClass.Transaction.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        chainId_ = 0;

        senderPublicKey_ = com.google.protobuf.ByteString.EMPTY;

        if (feeBuilder_ == null) {
          fee_ = null;
        } else {
          fee_ = null;
          feeBuilder_ = null;
        }
        timestamp_ = 0L;

        version_ = 0;

        dataCase_ = 0;
        data_ = null;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_Transaction_descriptor;
      }

      @java.lang.Override
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.Transaction getDefaultInstanceForType() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.Transaction.getDefaultInstance();
      }

      @java.lang.Override
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.Transaction build() {
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.Transaction result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.Transaction buildPartial() {
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.Transaction result = new com.wavesplatform.protobuf.transaction.TransactionOuterClass.Transaction(this);
        result.chainId_ = chainId_;
        result.senderPublicKey_ = senderPublicKey_;
        if (feeBuilder_ == null) {
          result.fee_ = fee_;
        } else {
          result.fee_ = feeBuilder_.build();
        }
        result.timestamp_ = timestamp_;
        result.version_ = version_;
        if (dataCase_ == 101) {
          if (genesisBuilder_ == null) {
            result.data_ = data_;
          } else {
            result.data_ = genesisBuilder_.build();
          }
        }
        if (dataCase_ == 102) {
          if (paymentBuilder_ == null) {
            result.data_ = data_;
          } else {
            result.data_ = paymentBuilder_.build();
          }
        }
        if (dataCase_ == 103) {
          if (issueBuilder_ == null) {
            result.data_ = data_;
          } else {
            result.data_ = issueBuilder_.build();
          }
        }
        if (dataCase_ == 104) {
          if (transferBuilder_ == null) {
            result.data_ = data_;
          } else {
            result.data_ = transferBuilder_.build();
          }
        }
        if (dataCase_ == 105) {
          if (reissueBuilder_ == null) {
            result.data_ = data_;
          } else {
            result.data_ = reissueBuilder_.build();
          }
        }
        if (dataCase_ == 106) {
          if (burnBuilder_ == null) {
            result.data_ = data_;
          } else {
            result.data_ = burnBuilder_.build();
          }
        }
        if (dataCase_ == 107) {
          if (exchangeBuilder_ == null) {
            result.data_ = data_;
          } else {
            result.data_ = exchangeBuilder_.build();
          }
        }
        if (dataCase_ == 108) {
          if (leaseBuilder_ == null) {
            result.data_ = data_;
          } else {
            result.data_ = leaseBuilder_.build();
          }
        }
        if (dataCase_ == 109) {
          if (leaseCancelBuilder_ == null) {
            result.data_ = data_;
          } else {
            result.data_ = leaseCancelBuilder_.build();
          }
        }
        if (dataCase_ == 110) {
          if (createAliasBuilder_ == null) {
            result.data_ = data_;
          } else {
            result.data_ = createAliasBuilder_.build();
          }
        }
        if (dataCase_ == 111) {
          if (massTransferBuilder_ == null) {
            result.data_ = data_;
          } else {
            result.data_ = massTransferBuilder_.build();
          }
        }
        if (dataCase_ == 112) {
          if (dataTransactionBuilder_ == null) {
            result.data_ = data_;
          } else {
            result.data_ = dataTransactionBuilder_.build();
          }
        }
        if (dataCase_ == 113) {
          if (setScriptBuilder_ == null) {
            result.data_ = data_;
          } else {
            result.data_ = setScriptBuilder_.build();
          }
        }
        if (dataCase_ == 114) {
          if (sponsorFeeBuilder_ == null) {
            result.data_ = data_;
          } else {
            result.data_ = sponsorFeeBuilder_.build();
          }
        }
        if (dataCase_ == 115) {
          if (setAssetScriptBuilder_ == null) {
            result.data_ = data_;
          } else {
            result.data_ = setAssetScriptBuilder_.build();
          }
        }
        if (dataCase_ == 116) {
          if (invokeScriptBuilder_ == null) {
            result.data_ = data_;
          } else {
            result.data_ = invokeScriptBuilder_.build();
          }
        }
        if (dataCase_ == 117) {
          if (updateAssetInfoBuilder_ == null) {
            result.data_ = data_;
          } else {
            result.data_ = updateAssetInfoBuilder_.build();
          }
        }
        if (dataCase_ == 118) {
          if (continuationBuilder_ == null) {
            result.data_ = data_;
          } else {
            result.data_ = continuationBuilder_.build();
          }
        }
        result.dataCase_ = dataCase_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.wavesplatform.protobuf.transaction.TransactionOuterClass.Transaction) {
          return mergeFrom((com.wavesplatform.protobuf.transaction.TransactionOuterClass.Transaction)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.wavesplatform.protobuf.transaction.TransactionOuterClass.Transaction other) {
        if (other == com.wavesplatform.protobuf.transaction.TransactionOuterClass.Transaction.getDefaultInstance()) return this;
        if (other.getChainId() != 0) {
          setChainId(other.getChainId());
        }
        if (other.getSenderPublicKey() != com.google.protobuf.ByteString.EMPTY) {
          setSenderPublicKey(other.getSenderPublicKey());
        }
        if (other.hasFee()) {
          mergeFee(other.getFee());
        }
        if (other.getTimestamp() != 0L) {
          setTimestamp(other.getTimestamp());
        }
        if (other.getVersion() != 0) {
          setVersion(other.getVersion());
        }
        switch (other.getDataCase()) {
          case GENESIS: {
            mergeGenesis(other.getGenesis());
            break;
          }
          case PAYMENT: {
            mergePayment(other.getPayment());
            break;
          }
          case ISSUE: {
            mergeIssue(other.getIssue());
            break;
          }
          case TRANSFER: {
            mergeTransfer(other.getTransfer());
            break;
          }
          case REISSUE: {
            mergeReissue(other.getReissue());
            break;
          }
          case BURN: {
            mergeBurn(other.getBurn());
            break;
          }
          case EXCHANGE: {
            mergeExchange(other.getExchange());
            break;
          }
          case LEASE: {
            mergeLease(other.getLease());
            break;
          }
          case LEASE_CANCEL: {
            mergeLeaseCancel(other.getLeaseCancel());
            break;
          }
          case CREATE_ALIAS: {
            mergeCreateAlias(other.getCreateAlias());
            break;
          }
          case MASS_TRANSFER: {
            mergeMassTransfer(other.getMassTransfer());
            break;
          }
          case DATA_TRANSACTION: {
            mergeDataTransaction(other.getDataTransaction());
            break;
          }
          case SET_SCRIPT: {
            mergeSetScript(other.getSetScript());
            break;
          }
          case SPONSOR_FEE: {
            mergeSponsorFee(other.getSponsorFee());
            break;
          }
          case SET_ASSET_SCRIPT: {
            mergeSetAssetScript(other.getSetAssetScript());
            break;
          }
          case INVOKE_SCRIPT: {
            mergeInvokeScript(other.getInvokeScript());
            break;
          }
          case UPDATE_ASSET_INFO: {
            mergeUpdateAssetInfo(other.getUpdateAssetInfo());
            break;
          }
          case CONTINUATION: {
            mergeContinuation(other.getContinuation());
            break;
          }
          case DATA_NOT_SET: {
            break;
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.Transaction parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.wavesplatform.protobuf.transaction.TransactionOuterClass.Transaction) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int dataCase_ = 0;
      private java.lang.Object data_;
      public DataCase
          getDataCase() {
        return DataCase.forNumber(
            dataCase_);
      }

      public Builder clearData() {
        dataCase_ = 0;
        data_ = null;
        onChanged();
        return this;
      }


      private int chainId_ ;
      /**
       * int32 chain_id = 1;
       * @return The chainId.
       */
      public int getChainId() {
        return chainId_;
      }
      /**
       * int32 chain_id = 1;
       * @param value The chainId to set.
       * @return This builder for chaining.
       */
      public Builder setChainId(int value) {
        
        chainId_ = value;
        onChanged();
        return this;
      }
      /**
       * int32 chain_id = 1;
       * @return This builder for chaining.
       */
      public Builder clearChainId() {
        
        chainId_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString senderPublicKey_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * bytes sender_public_key = 2;
       * @return The senderPublicKey.
       */
      public com.google.protobuf.ByteString getSenderPublicKey() {
        return senderPublicKey_;
      }
      /**
       * bytes sender_public_key = 2;
       * @param value The senderPublicKey to set.
       * @return This builder for chaining.
       */
      public Builder setSenderPublicKey(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        senderPublicKey_ = value;
        onChanged();
        return this;
      }
      /**
       * bytes sender_public_key = 2;
       * @return This builder for chaining.
       */
      public Builder clearSenderPublicKey() {
        
        senderPublicKey_ = getDefaultInstance().getSenderPublicKey();
        onChanged();
        return this;
      }

      private com.wavesplatform.protobuf.AmountOuterClass.Amount fee_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.wavesplatform.protobuf.AmountOuterClass.Amount, com.wavesplatform.protobuf.AmountOuterClass.Amount.Builder, com.wavesplatform.protobuf.AmountOuterClass.AmountOrBuilder> feeBuilder_;
      /**
       * .waves.Amount fee = 3;
       * @return Whether the fee field is set.
       */
      public boolean hasFee() {
        return feeBuilder_ != null || fee_ != null;
      }
      /**
       * .waves.Amount fee = 3;
       * @return The fee.
       */
      public com.wavesplatform.protobuf.AmountOuterClass.Amount getFee() {
        if (feeBuilder_ == null) {
          return fee_ == null ? com.wavesplatform.protobuf.AmountOuterClass.Amount.getDefaultInstance() : fee_;
        } else {
          return feeBuilder_.getMessage();
        }
      }
      /**
       * .waves.Amount fee = 3;
       */
      public Builder setFee(com.wavesplatform.protobuf.AmountOuterClass.Amount value) {
        if (feeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          fee_ = value;
          onChanged();
        } else {
          feeBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .waves.Amount fee = 3;
       */
      public Builder setFee(
          com.wavesplatform.protobuf.AmountOuterClass.Amount.Builder builderForValue) {
        if (feeBuilder_ == null) {
          fee_ = builderForValue.build();
          onChanged();
        } else {
          feeBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .waves.Amount fee = 3;
       */
      public Builder mergeFee(com.wavesplatform.protobuf.AmountOuterClass.Amount value) {
        if (feeBuilder_ == null) {
          if (fee_ != null) {
            fee_ =
              com.wavesplatform.protobuf.AmountOuterClass.Amount.newBuilder(fee_).mergeFrom(value).buildPartial();
          } else {
            fee_ = value;
          }
          onChanged();
        } else {
          feeBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .waves.Amount fee = 3;
       */
      public Builder clearFee() {
        if (feeBuilder_ == null) {
          fee_ = null;
          onChanged();
        } else {
          fee_ = null;
          feeBuilder_ = null;
        }

        return this;
      }
      /**
       * .waves.Amount fee = 3;
       */
      public com.wavesplatform.protobuf.AmountOuterClass.Amount.Builder getFeeBuilder() {
        
        onChanged();
        return getFeeFieldBuilder().getBuilder();
      }
      /**
       * .waves.Amount fee = 3;
       */
      public com.wavesplatform.protobuf.AmountOuterClass.AmountOrBuilder getFeeOrBuilder() {
        if (feeBuilder_ != null) {
          return feeBuilder_.getMessageOrBuilder();
        } else {
          return fee_ == null ?
              com.wavesplatform.protobuf.AmountOuterClass.Amount.getDefaultInstance() : fee_;
        }
      }
      /**
       * .waves.Amount fee = 3;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.wavesplatform.protobuf.AmountOuterClass.Amount, com.wavesplatform.protobuf.AmountOuterClass.Amount.Builder, com.wavesplatform.protobuf.AmountOuterClass.AmountOrBuilder> 
          getFeeFieldBuilder() {
        if (feeBuilder_ == null) {
          feeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.wavesplatform.protobuf.AmountOuterClass.Amount, com.wavesplatform.protobuf.AmountOuterClass.Amount.Builder, com.wavesplatform.protobuf.AmountOuterClass.AmountOrBuilder>(
                  getFee(),
                  getParentForChildren(),
                  isClean());
          fee_ = null;
        }
        return feeBuilder_;
      }

      private long timestamp_ ;
      /**
       * int64 timestamp = 4;
       * @return The timestamp.
       */
      public long getTimestamp() {
        return timestamp_;
      }
      /**
       * int64 timestamp = 4;
       * @param value The timestamp to set.
       * @return This builder for chaining.
       */
      public Builder setTimestamp(long value) {
        
        timestamp_ = value;
        onChanged();
        return this;
      }
      /**
       * int64 timestamp = 4;
       * @return This builder for chaining.
       */
      public Builder clearTimestamp() {
        
        timestamp_ = 0L;
        onChanged();
        return this;
      }

      private int version_ ;
      /**
       * int32 version = 5;
       * @return The version.
       */
      public int getVersion() {
        return version_;
      }
      /**
       * int32 version = 5;
       * @param value The version to set.
       * @return This builder for chaining.
       */
      public Builder setVersion(int value) {
        
        version_ = value;
        onChanged();
        return this;
      }
      /**
       * int32 version = 5;
       * @return This builder for chaining.
       */
      public Builder clearVersion() {
        
        version_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData, com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData.Builder, com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionDataOrBuilder> genesisBuilder_;
      /**
       * .waves.GenesisTransactionData genesis = 101;
       * @return Whether the genesis field is set.
       */
      public boolean hasGenesis() {
        return dataCase_ == 101;
      }
      /**
       * .waves.GenesisTransactionData genesis = 101;
       * @return The genesis.
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData getGenesis() {
        if (genesisBuilder_ == null) {
          if (dataCase_ == 101) {
            return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData) data_;
          }
          return com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData.getDefaultInstance();
        } else {
          if (dataCase_ == 101) {
            return genesisBuilder_.getMessage();
          }
          return com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData.getDefaultInstance();
        }
      }
      /**
       * .waves.GenesisTransactionData genesis = 101;
       */
      public Builder setGenesis(com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData value) {
        if (genesisBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          data_ = value;
          onChanged();
        } else {
          genesisBuilder_.setMessage(value);
        }
        dataCase_ = 101;
        return this;
      }
      /**
       * .waves.GenesisTransactionData genesis = 101;
       */
      public Builder setGenesis(
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData.Builder builderForValue) {
        if (genesisBuilder_ == null) {
          data_ = builderForValue.build();
          onChanged();
        } else {
          genesisBuilder_.setMessage(builderForValue.build());
        }
        dataCase_ = 101;
        return this;
      }
      /**
       * .waves.GenesisTransactionData genesis = 101;
       */
      public Builder mergeGenesis(com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData value) {
        if (genesisBuilder_ == null) {
          if (dataCase_ == 101 &&
              data_ != com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData.getDefaultInstance()) {
            data_ = com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData.newBuilder((com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData) data_)
                .mergeFrom(value).buildPartial();
          } else {
            data_ = value;
          }
          onChanged();
        } else {
          if (dataCase_ == 101) {
            genesisBuilder_.mergeFrom(value);
          }
          genesisBuilder_.setMessage(value);
        }
        dataCase_ = 101;
        return this;
      }
      /**
       * .waves.GenesisTransactionData genesis = 101;
       */
      public Builder clearGenesis() {
        if (genesisBuilder_ == null) {
          if (dataCase_ == 101) {
            dataCase_ = 0;
            data_ = null;
            onChanged();
          }
        } else {
          if (dataCase_ == 101) {
            dataCase_ = 0;
            data_ = null;
          }
          genesisBuilder_.clear();
        }
        return this;
      }
      /**
       * .waves.GenesisTransactionData genesis = 101;
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData.Builder getGenesisBuilder() {
        return getGenesisFieldBuilder().getBuilder();
      }
      /**
       * .waves.GenesisTransactionData genesis = 101;
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionDataOrBuilder getGenesisOrBuilder() {
        if ((dataCase_ == 101) && (genesisBuilder_ != null)) {
          return genesisBuilder_.getMessageOrBuilder();
        } else {
          if (dataCase_ == 101) {
            return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData) data_;
          }
          return com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData.getDefaultInstance();
        }
      }
      /**
       * .waves.GenesisTransactionData genesis = 101;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData, com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData.Builder, com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionDataOrBuilder> 
          getGenesisFieldBuilder() {
        if (genesisBuilder_ == null) {
          if (!(dataCase_ == 101)) {
            data_ = com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData.getDefaultInstance();
          }
          genesisBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData, com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData.Builder, com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionDataOrBuilder>(
                  (com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData) data_,
                  getParentForChildren(),
                  isClean());
          data_ = null;
        }
        dataCase_ = 101;
        onChanged();;
        return genesisBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData, com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData.Builder, com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionDataOrBuilder> paymentBuilder_;
      /**
       * .waves.PaymentTransactionData payment = 102;
       * @return Whether the payment field is set.
       */
      public boolean hasPayment() {
        return dataCase_ == 102;
      }
      /**
       * .waves.PaymentTransactionData payment = 102;
       * @return The payment.
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData getPayment() {
        if (paymentBuilder_ == null) {
          if (dataCase_ == 102) {
            return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData) data_;
          }
          return com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData.getDefaultInstance();
        } else {
          if (dataCase_ == 102) {
            return paymentBuilder_.getMessage();
          }
          return com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData.getDefaultInstance();
        }
      }
      /**
       * .waves.PaymentTransactionData payment = 102;
       */
      public Builder setPayment(com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData value) {
        if (paymentBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          data_ = value;
          onChanged();
        } else {
          paymentBuilder_.setMessage(value);
        }
        dataCase_ = 102;
        return this;
      }
      /**
       * .waves.PaymentTransactionData payment = 102;
       */
      public Builder setPayment(
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData.Builder builderForValue) {
        if (paymentBuilder_ == null) {
          data_ = builderForValue.build();
          onChanged();
        } else {
          paymentBuilder_.setMessage(builderForValue.build());
        }
        dataCase_ = 102;
        return this;
      }
      /**
       * .waves.PaymentTransactionData payment = 102;
       */
      public Builder mergePayment(com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData value) {
        if (paymentBuilder_ == null) {
          if (dataCase_ == 102 &&
              data_ != com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData.getDefaultInstance()) {
            data_ = com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData.newBuilder((com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData) data_)
                .mergeFrom(value).buildPartial();
          } else {
            data_ = value;
          }
          onChanged();
        } else {
          if (dataCase_ == 102) {
            paymentBuilder_.mergeFrom(value);
          }
          paymentBuilder_.setMessage(value);
        }
        dataCase_ = 102;
        return this;
      }
      /**
       * .waves.PaymentTransactionData payment = 102;
       */
      public Builder clearPayment() {
        if (paymentBuilder_ == null) {
          if (dataCase_ == 102) {
            dataCase_ = 0;
            data_ = null;
            onChanged();
          }
        } else {
          if (dataCase_ == 102) {
            dataCase_ = 0;
            data_ = null;
          }
          paymentBuilder_.clear();
        }
        return this;
      }
      /**
       * .waves.PaymentTransactionData payment = 102;
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData.Builder getPaymentBuilder() {
        return getPaymentFieldBuilder().getBuilder();
      }
      /**
       * .waves.PaymentTransactionData payment = 102;
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionDataOrBuilder getPaymentOrBuilder() {
        if ((dataCase_ == 102) && (paymentBuilder_ != null)) {
          return paymentBuilder_.getMessageOrBuilder();
        } else {
          if (dataCase_ == 102) {
            return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData) data_;
          }
          return com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData.getDefaultInstance();
        }
      }
      /**
       * .waves.PaymentTransactionData payment = 102;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData, com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData.Builder, com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionDataOrBuilder> 
          getPaymentFieldBuilder() {
        if (paymentBuilder_ == null) {
          if (!(dataCase_ == 102)) {
            data_ = com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData.getDefaultInstance();
          }
          paymentBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData, com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData.Builder, com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionDataOrBuilder>(
                  (com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData) data_,
                  getParentForChildren(),
                  isClean());
          data_ = null;
        }
        dataCase_ = 102;
        onChanged();;
        return paymentBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData, com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData.Builder, com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionDataOrBuilder> issueBuilder_;
      /**
       * .waves.IssueTransactionData issue = 103;
       * @return Whether the issue field is set.
       */
      public boolean hasIssue() {
        return dataCase_ == 103;
      }
      /**
       * .waves.IssueTransactionData issue = 103;
       * @return The issue.
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData getIssue() {
        if (issueBuilder_ == null) {
          if (dataCase_ == 103) {
            return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData) data_;
          }
          return com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData.getDefaultInstance();
        } else {
          if (dataCase_ == 103) {
            return issueBuilder_.getMessage();
          }
          return com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData.getDefaultInstance();
        }
      }
      /**
       * .waves.IssueTransactionData issue = 103;
       */
      public Builder setIssue(com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData value) {
        if (issueBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          data_ = value;
          onChanged();
        } else {
          issueBuilder_.setMessage(value);
        }
        dataCase_ = 103;
        return this;
      }
      /**
       * .waves.IssueTransactionData issue = 103;
       */
      public Builder setIssue(
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData.Builder builderForValue) {
        if (issueBuilder_ == null) {
          data_ = builderForValue.build();
          onChanged();
        } else {
          issueBuilder_.setMessage(builderForValue.build());
        }
        dataCase_ = 103;
        return this;
      }
      /**
       * .waves.IssueTransactionData issue = 103;
       */
      public Builder mergeIssue(com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData value) {
        if (issueBuilder_ == null) {
          if (dataCase_ == 103 &&
              data_ != com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData.getDefaultInstance()) {
            data_ = com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData.newBuilder((com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData) data_)
                .mergeFrom(value).buildPartial();
          } else {
            data_ = value;
          }
          onChanged();
        } else {
          if (dataCase_ == 103) {
            issueBuilder_.mergeFrom(value);
          }
          issueBuilder_.setMessage(value);
        }
        dataCase_ = 103;
        return this;
      }
      /**
       * .waves.IssueTransactionData issue = 103;
       */
      public Builder clearIssue() {
        if (issueBuilder_ == null) {
          if (dataCase_ == 103) {
            dataCase_ = 0;
            data_ = null;
            onChanged();
          }
        } else {
          if (dataCase_ == 103) {
            dataCase_ = 0;
            data_ = null;
          }
          issueBuilder_.clear();
        }
        return this;
      }
      /**
       * .waves.IssueTransactionData issue = 103;
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData.Builder getIssueBuilder() {
        return getIssueFieldBuilder().getBuilder();
      }
      /**
       * .waves.IssueTransactionData issue = 103;
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionDataOrBuilder getIssueOrBuilder() {
        if ((dataCase_ == 103) && (issueBuilder_ != null)) {
          return issueBuilder_.getMessageOrBuilder();
        } else {
          if (dataCase_ == 103) {
            return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData) data_;
          }
          return com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData.getDefaultInstance();
        }
      }
      /**
       * .waves.IssueTransactionData issue = 103;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData, com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData.Builder, com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionDataOrBuilder> 
          getIssueFieldBuilder() {
        if (issueBuilder_ == null) {
          if (!(dataCase_ == 103)) {
            data_ = com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData.getDefaultInstance();
          }
          issueBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData, com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData.Builder, com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionDataOrBuilder>(
                  (com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData) data_,
                  getParentForChildren(),
                  isClean());
          data_ = null;
        }
        dataCase_ = 103;
        onChanged();;
        return issueBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData, com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData.Builder, com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionDataOrBuilder> transferBuilder_;
      /**
       * .waves.TransferTransactionData transfer = 104;
       * @return Whether the transfer field is set.
       */
      public boolean hasTransfer() {
        return dataCase_ == 104;
      }
      /**
       * .waves.TransferTransactionData transfer = 104;
       * @return The transfer.
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData getTransfer() {
        if (transferBuilder_ == null) {
          if (dataCase_ == 104) {
            return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData) data_;
          }
          return com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData.getDefaultInstance();
        } else {
          if (dataCase_ == 104) {
            return transferBuilder_.getMessage();
          }
          return com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData.getDefaultInstance();
        }
      }
      /**
       * .waves.TransferTransactionData transfer = 104;
       */
      public Builder setTransfer(com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData value) {
        if (transferBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          data_ = value;
          onChanged();
        } else {
          transferBuilder_.setMessage(value);
        }
        dataCase_ = 104;
        return this;
      }
      /**
       * .waves.TransferTransactionData transfer = 104;
       */
      public Builder setTransfer(
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData.Builder builderForValue) {
        if (transferBuilder_ == null) {
          data_ = builderForValue.build();
          onChanged();
        } else {
          transferBuilder_.setMessage(builderForValue.build());
        }
        dataCase_ = 104;
        return this;
      }
      /**
       * .waves.TransferTransactionData transfer = 104;
       */
      public Builder mergeTransfer(com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData value) {
        if (transferBuilder_ == null) {
          if (dataCase_ == 104 &&
              data_ != com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData.getDefaultInstance()) {
            data_ = com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData.newBuilder((com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData) data_)
                .mergeFrom(value).buildPartial();
          } else {
            data_ = value;
          }
          onChanged();
        } else {
          if (dataCase_ == 104) {
            transferBuilder_.mergeFrom(value);
          }
          transferBuilder_.setMessage(value);
        }
        dataCase_ = 104;
        return this;
      }
      /**
       * .waves.TransferTransactionData transfer = 104;
       */
      public Builder clearTransfer() {
        if (transferBuilder_ == null) {
          if (dataCase_ == 104) {
            dataCase_ = 0;
            data_ = null;
            onChanged();
          }
        } else {
          if (dataCase_ == 104) {
            dataCase_ = 0;
            data_ = null;
          }
          transferBuilder_.clear();
        }
        return this;
      }
      /**
       * .waves.TransferTransactionData transfer = 104;
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData.Builder getTransferBuilder() {
        return getTransferFieldBuilder().getBuilder();
      }
      /**
       * .waves.TransferTransactionData transfer = 104;
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionDataOrBuilder getTransferOrBuilder() {
        if ((dataCase_ == 104) && (transferBuilder_ != null)) {
          return transferBuilder_.getMessageOrBuilder();
        } else {
          if (dataCase_ == 104) {
            return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData) data_;
          }
          return com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData.getDefaultInstance();
        }
      }
      /**
       * .waves.TransferTransactionData transfer = 104;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData, com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData.Builder, com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionDataOrBuilder> 
          getTransferFieldBuilder() {
        if (transferBuilder_ == null) {
          if (!(dataCase_ == 104)) {
            data_ = com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData.getDefaultInstance();
          }
          transferBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData, com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData.Builder, com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionDataOrBuilder>(
                  (com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData) data_,
                  getParentForChildren(),
                  isClean());
          data_ = null;
        }
        dataCase_ = 104;
        onChanged();;
        return transferBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData, com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData.Builder, com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionDataOrBuilder> reissueBuilder_;
      /**
       * .waves.ReissueTransactionData reissue = 105;
       * @return Whether the reissue field is set.
       */
      public boolean hasReissue() {
        return dataCase_ == 105;
      }
      /**
       * .waves.ReissueTransactionData reissue = 105;
       * @return The reissue.
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData getReissue() {
        if (reissueBuilder_ == null) {
          if (dataCase_ == 105) {
            return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData) data_;
          }
          return com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData.getDefaultInstance();
        } else {
          if (dataCase_ == 105) {
            return reissueBuilder_.getMessage();
          }
          return com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData.getDefaultInstance();
        }
      }
      /**
       * .waves.ReissueTransactionData reissue = 105;
       */
      public Builder setReissue(com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData value) {
        if (reissueBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          data_ = value;
          onChanged();
        } else {
          reissueBuilder_.setMessage(value);
        }
        dataCase_ = 105;
        return this;
      }
      /**
       * .waves.ReissueTransactionData reissue = 105;
       */
      public Builder setReissue(
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData.Builder builderForValue) {
        if (reissueBuilder_ == null) {
          data_ = builderForValue.build();
          onChanged();
        } else {
          reissueBuilder_.setMessage(builderForValue.build());
        }
        dataCase_ = 105;
        return this;
      }
      /**
       * .waves.ReissueTransactionData reissue = 105;
       */
      public Builder mergeReissue(com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData value) {
        if (reissueBuilder_ == null) {
          if (dataCase_ == 105 &&
              data_ != com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData.getDefaultInstance()) {
            data_ = com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData.newBuilder((com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData) data_)
                .mergeFrom(value).buildPartial();
          } else {
            data_ = value;
          }
          onChanged();
        } else {
          if (dataCase_ == 105) {
            reissueBuilder_.mergeFrom(value);
          }
          reissueBuilder_.setMessage(value);
        }
        dataCase_ = 105;
        return this;
      }
      /**
       * .waves.ReissueTransactionData reissue = 105;
       */
      public Builder clearReissue() {
        if (reissueBuilder_ == null) {
          if (dataCase_ == 105) {
            dataCase_ = 0;
            data_ = null;
            onChanged();
          }
        } else {
          if (dataCase_ == 105) {
            dataCase_ = 0;
            data_ = null;
          }
          reissueBuilder_.clear();
        }
        return this;
      }
      /**
       * .waves.ReissueTransactionData reissue = 105;
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData.Builder getReissueBuilder() {
        return getReissueFieldBuilder().getBuilder();
      }
      /**
       * .waves.ReissueTransactionData reissue = 105;
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionDataOrBuilder getReissueOrBuilder() {
        if ((dataCase_ == 105) && (reissueBuilder_ != null)) {
          return reissueBuilder_.getMessageOrBuilder();
        } else {
          if (dataCase_ == 105) {
            return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData) data_;
          }
          return com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData.getDefaultInstance();
        }
      }
      /**
       * .waves.ReissueTransactionData reissue = 105;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData, com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData.Builder, com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionDataOrBuilder> 
          getReissueFieldBuilder() {
        if (reissueBuilder_ == null) {
          if (!(dataCase_ == 105)) {
            data_ = com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData.getDefaultInstance();
          }
          reissueBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData, com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData.Builder, com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionDataOrBuilder>(
                  (com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData) data_,
                  getParentForChildren(),
                  isClean());
          data_ = null;
        }
        dataCase_ = 105;
        onChanged();;
        return reissueBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData, com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData.Builder, com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionDataOrBuilder> burnBuilder_;
      /**
       * .waves.BurnTransactionData burn = 106;
       * @return Whether the burn field is set.
       */
      public boolean hasBurn() {
        return dataCase_ == 106;
      }
      /**
       * .waves.BurnTransactionData burn = 106;
       * @return The burn.
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData getBurn() {
        if (burnBuilder_ == null) {
          if (dataCase_ == 106) {
            return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData) data_;
          }
          return com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData.getDefaultInstance();
        } else {
          if (dataCase_ == 106) {
            return burnBuilder_.getMessage();
          }
          return com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData.getDefaultInstance();
        }
      }
      /**
       * .waves.BurnTransactionData burn = 106;
       */
      public Builder setBurn(com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData value) {
        if (burnBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          data_ = value;
          onChanged();
        } else {
          burnBuilder_.setMessage(value);
        }
        dataCase_ = 106;
        return this;
      }
      /**
       * .waves.BurnTransactionData burn = 106;
       */
      public Builder setBurn(
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData.Builder builderForValue) {
        if (burnBuilder_ == null) {
          data_ = builderForValue.build();
          onChanged();
        } else {
          burnBuilder_.setMessage(builderForValue.build());
        }
        dataCase_ = 106;
        return this;
      }
      /**
       * .waves.BurnTransactionData burn = 106;
       */
      public Builder mergeBurn(com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData value) {
        if (burnBuilder_ == null) {
          if (dataCase_ == 106 &&
              data_ != com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData.getDefaultInstance()) {
            data_ = com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData.newBuilder((com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData) data_)
                .mergeFrom(value).buildPartial();
          } else {
            data_ = value;
          }
          onChanged();
        } else {
          if (dataCase_ == 106) {
            burnBuilder_.mergeFrom(value);
          }
          burnBuilder_.setMessage(value);
        }
        dataCase_ = 106;
        return this;
      }
      /**
       * .waves.BurnTransactionData burn = 106;
       */
      public Builder clearBurn() {
        if (burnBuilder_ == null) {
          if (dataCase_ == 106) {
            dataCase_ = 0;
            data_ = null;
            onChanged();
          }
        } else {
          if (dataCase_ == 106) {
            dataCase_ = 0;
            data_ = null;
          }
          burnBuilder_.clear();
        }
        return this;
      }
      /**
       * .waves.BurnTransactionData burn = 106;
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData.Builder getBurnBuilder() {
        return getBurnFieldBuilder().getBuilder();
      }
      /**
       * .waves.BurnTransactionData burn = 106;
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionDataOrBuilder getBurnOrBuilder() {
        if ((dataCase_ == 106) && (burnBuilder_ != null)) {
          return burnBuilder_.getMessageOrBuilder();
        } else {
          if (dataCase_ == 106) {
            return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData) data_;
          }
          return com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData.getDefaultInstance();
        }
      }
      /**
       * .waves.BurnTransactionData burn = 106;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData, com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData.Builder, com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionDataOrBuilder> 
          getBurnFieldBuilder() {
        if (burnBuilder_ == null) {
          if (!(dataCase_ == 106)) {
            data_ = com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData.getDefaultInstance();
          }
          burnBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData, com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData.Builder, com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionDataOrBuilder>(
                  (com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData) data_,
                  getParentForChildren(),
                  isClean());
          data_ = null;
        }
        dataCase_ = 106;
        onChanged();;
        return burnBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData, com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData.Builder, com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionDataOrBuilder> exchangeBuilder_;
      /**
       * .waves.ExchangeTransactionData exchange = 107;
       * @return Whether the exchange field is set.
       */
      public boolean hasExchange() {
        return dataCase_ == 107;
      }
      /**
       * .waves.ExchangeTransactionData exchange = 107;
       * @return The exchange.
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData getExchange() {
        if (exchangeBuilder_ == null) {
          if (dataCase_ == 107) {
            return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData) data_;
          }
          return com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData.getDefaultInstance();
        } else {
          if (dataCase_ == 107) {
            return exchangeBuilder_.getMessage();
          }
          return com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData.getDefaultInstance();
        }
      }
      /**
       * .waves.ExchangeTransactionData exchange = 107;
       */
      public Builder setExchange(com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData value) {
        if (exchangeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          data_ = value;
          onChanged();
        } else {
          exchangeBuilder_.setMessage(value);
        }
        dataCase_ = 107;
        return this;
      }
      /**
       * .waves.ExchangeTransactionData exchange = 107;
       */
      public Builder setExchange(
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData.Builder builderForValue) {
        if (exchangeBuilder_ == null) {
          data_ = builderForValue.build();
          onChanged();
        } else {
          exchangeBuilder_.setMessage(builderForValue.build());
        }
        dataCase_ = 107;
        return this;
      }
      /**
       * .waves.ExchangeTransactionData exchange = 107;
       */
      public Builder mergeExchange(com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData value) {
        if (exchangeBuilder_ == null) {
          if (dataCase_ == 107 &&
              data_ != com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData.getDefaultInstance()) {
            data_ = com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData.newBuilder((com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData) data_)
                .mergeFrom(value).buildPartial();
          } else {
            data_ = value;
          }
          onChanged();
        } else {
          if (dataCase_ == 107) {
            exchangeBuilder_.mergeFrom(value);
          }
          exchangeBuilder_.setMessage(value);
        }
        dataCase_ = 107;
        return this;
      }
      /**
       * .waves.ExchangeTransactionData exchange = 107;
       */
      public Builder clearExchange() {
        if (exchangeBuilder_ == null) {
          if (dataCase_ == 107) {
            dataCase_ = 0;
            data_ = null;
            onChanged();
          }
        } else {
          if (dataCase_ == 107) {
            dataCase_ = 0;
            data_ = null;
          }
          exchangeBuilder_.clear();
        }
        return this;
      }
      /**
       * .waves.ExchangeTransactionData exchange = 107;
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData.Builder getExchangeBuilder() {
        return getExchangeFieldBuilder().getBuilder();
      }
      /**
       * .waves.ExchangeTransactionData exchange = 107;
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionDataOrBuilder getExchangeOrBuilder() {
        if ((dataCase_ == 107) && (exchangeBuilder_ != null)) {
          return exchangeBuilder_.getMessageOrBuilder();
        } else {
          if (dataCase_ == 107) {
            return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData) data_;
          }
          return com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData.getDefaultInstance();
        }
      }
      /**
       * .waves.ExchangeTransactionData exchange = 107;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData, com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData.Builder, com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionDataOrBuilder> 
          getExchangeFieldBuilder() {
        if (exchangeBuilder_ == null) {
          if (!(dataCase_ == 107)) {
            data_ = com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData.getDefaultInstance();
          }
          exchangeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData, com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData.Builder, com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionDataOrBuilder>(
                  (com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData) data_,
                  getParentForChildren(),
                  isClean());
          data_ = null;
        }
        dataCase_ = 107;
        onChanged();;
        return exchangeBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData, com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData.Builder, com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionDataOrBuilder> leaseBuilder_;
      /**
       * .waves.LeaseTransactionData lease = 108;
       * @return Whether the lease field is set.
       */
      public boolean hasLease() {
        return dataCase_ == 108;
      }
      /**
       * .waves.LeaseTransactionData lease = 108;
       * @return The lease.
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData getLease() {
        if (leaseBuilder_ == null) {
          if (dataCase_ == 108) {
            return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData) data_;
          }
          return com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData.getDefaultInstance();
        } else {
          if (dataCase_ == 108) {
            return leaseBuilder_.getMessage();
          }
          return com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData.getDefaultInstance();
        }
      }
      /**
       * .waves.LeaseTransactionData lease = 108;
       */
      public Builder setLease(com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData value) {
        if (leaseBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          data_ = value;
          onChanged();
        } else {
          leaseBuilder_.setMessage(value);
        }
        dataCase_ = 108;
        return this;
      }
      /**
       * .waves.LeaseTransactionData lease = 108;
       */
      public Builder setLease(
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData.Builder builderForValue) {
        if (leaseBuilder_ == null) {
          data_ = builderForValue.build();
          onChanged();
        } else {
          leaseBuilder_.setMessage(builderForValue.build());
        }
        dataCase_ = 108;
        return this;
      }
      /**
       * .waves.LeaseTransactionData lease = 108;
       */
      public Builder mergeLease(com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData value) {
        if (leaseBuilder_ == null) {
          if (dataCase_ == 108 &&
              data_ != com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData.getDefaultInstance()) {
            data_ = com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData.newBuilder((com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData) data_)
                .mergeFrom(value).buildPartial();
          } else {
            data_ = value;
          }
          onChanged();
        } else {
          if (dataCase_ == 108) {
            leaseBuilder_.mergeFrom(value);
          }
          leaseBuilder_.setMessage(value);
        }
        dataCase_ = 108;
        return this;
      }
      /**
       * .waves.LeaseTransactionData lease = 108;
       */
      public Builder clearLease() {
        if (leaseBuilder_ == null) {
          if (dataCase_ == 108) {
            dataCase_ = 0;
            data_ = null;
            onChanged();
          }
        } else {
          if (dataCase_ == 108) {
            dataCase_ = 0;
            data_ = null;
          }
          leaseBuilder_.clear();
        }
        return this;
      }
      /**
       * .waves.LeaseTransactionData lease = 108;
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData.Builder getLeaseBuilder() {
        return getLeaseFieldBuilder().getBuilder();
      }
      /**
       * .waves.LeaseTransactionData lease = 108;
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionDataOrBuilder getLeaseOrBuilder() {
        if ((dataCase_ == 108) && (leaseBuilder_ != null)) {
          return leaseBuilder_.getMessageOrBuilder();
        } else {
          if (dataCase_ == 108) {
            return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData) data_;
          }
          return com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData.getDefaultInstance();
        }
      }
      /**
       * .waves.LeaseTransactionData lease = 108;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData, com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData.Builder, com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionDataOrBuilder> 
          getLeaseFieldBuilder() {
        if (leaseBuilder_ == null) {
          if (!(dataCase_ == 108)) {
            data_ = com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData.getDefaultInstance();
          }
          leaseBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData, com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData.Builder, com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionDataOrBuilder>(
                  (com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData) data_,
                  getParentForChildren(),
                  isClean());
          data_ = null;
        }
        dataCase_ = 108;
        onChanged();;
        return leaseBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData, com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData.Builder, com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionDataOrBuilder> leaseCancelBuilder_;
      /**
       * .waves.LeaseCancelTransactionData lease_cancel = 109;
       * @return Whether the leaseCancel field is set.
       */
      public boolean hasLeaseCancel() {
        return dataCase_ == 109;
      }
      /**
       * .waves.LeaseCancelTransactionData lease_cancel = 109;
       * @return The leaseCancel.
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData getLeaseCancel() {
        if (leaseCancelBuilder_ == null) {
          if (dataCase_ == 109) {
            return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData) data_;
          }
          return com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData.getDefaultInstance();
        } else {
          if (dataCase_ == 109) {
            return leaseCancelBuilder_.getMessage();
          }
          return com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData.getDefaultInstance();
        }
      }
      /**
       * .waves.LeaseCancelTransactionData lease_cancel = 109;
       */
      public Builder setLeaseCancel(com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData value) {
        if (leaseCancelBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          data_ = value;
          onChanged();
        } else {
          leaseCancelBuilder_.setMessage(value);
        }
        dataCase_ = 109;
        return this;
      }
      /**
       * .waves.LeaseCancelTransactionData lease_cancel = 109;
       */
      public Builder setLeaseCancel(
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData.Builder builderForValue) {
        if (leaseCancelBuilder_ == null) {
          data_ = builderForValue.build();
          onChanged();
        } else {
          leaseCancelBuilder_.setMessage(builderForValue.build());
        }
        dataCase_ = 109;
        return this;
      }
      /**
       * .waves.LeaseCancelTransactionData lease_cancel = 109;
       */
      public Builder mergeLeaseCancel(com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData value) {
        if (leaseCancelBuilder_ == null) {
          if (dataCase_ == 109 &&
              data_ != com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData.getDefaultInstance()) {
            data_ = com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData.newBuilder((com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData) data_)
                .mergeFrom(value).buildPartial();
          } else {
            data_ = value;
          }
          onChanged();
        } else {
          if (dataCase_ == 109) {
            leaseCancelBuilder_.mergeFrom(value);
          }
          leaseCancelBuilder_.setMessage(value);
        }
        dataCase_ = 109;
        return this;
      }
      /**
       * .waves.LeaseCancelTransactionData lease_cancel = 109;
       */
      public Builder clearLeaseCancel() {
        if (leaseCancelBuilder_ == null) {
          if (dataCase_ == 109) {
            dataCase_ = 0;
            data_ = null;
            onChanged();
          }
        } else {
          if (dataCase_ == 109) {
            dataCase_ = 0;
            data_ = null;
          }
          leaseCancelBuilder_.clear();
        }
        return this;
      }
      /**
       * .waves.LeaseCancelTransactionData lease_cancel = 109;
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData.Builder getLeaseCancelBuilder() {
        return getLeaseCancelFieldBuilder().getBuilder();
      }
      /**
       * .waves.LeaseCancelTransactionData lease_cancel = 109;
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionDataOrBuilder getLeaseCancelOrBuilder() {
        if ((dataCase_ == 109) && (leaseCancelBuilder_ != null)) {
          return leaseCancelBuilder_.getMessageOrBuilder();
        } else {
          if (dataCase_ == 109) {
            return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData) data_;
          }
          return com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData.getDefaultInstance();
        }
      }
      /**
       * .waves.LeaseCancelTransactionData lease_cancel = 109;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData, com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData.Builder, com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionDataOrBuilder> 
          getLeaseCancelFieldBuilder() {
        if (leaseCancelBuilder_ == null) {
          if (!(dataCase_ == 109)) {
            data_ = com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData.getDefaultInstance();
          }
          leaseCancelBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData, com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData.Builder, com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionDataOrBuilder>(
                  (com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData) data_,
                  getParentForChildren(),
                  isClean());
          data_ = null;
        }
        dataCase_ = 109;
        onChanged();;
        return leaseCancelBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData, com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData.Builder, com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionDataOrBuilder> createAliasBuilder_;
      /**
       * .waves.CreateAliasTransactionData create_alias = 110;
       * @return Whether the createAlias field is set.
       */
      public boolean hasCreateAlias() {
        return dataCase_ == 110;
      }
      /**
       * .waves.CreateAliasTransactionData create_alias = 110;
       * @return The createAlias.
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData getCreateAlias() {
        if (createAliasBuilder_ == null) {
          if (dataCase_ == 110) {
            return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData) data_;
          }
          return com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData.getDefaultInstance();
        } else {
          if (dataCase_ == 110) {
            return createAliasBuilder_.getMessage();
          }
          return com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData.getDefaultInstance();
        }
      }
      /**
       * .waves.CreateAliasTransactionData create_alias = 110;
       */
      public Builder setCreateAlias(com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData value) {
        if (createAliasBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          data_ = value;
          onChanged();
        } else {
          createAliasBuilder_.setMessage(value);
        }
        dataCase_ = 110;
        return this;
      }
      /**
       * .waves.CreateAliasTransactionData create_alias = 110;
       */
      public Builder setCreateAlias(
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData.Builder builderForValue) {
        if (createAliasBuilder_ == null) {
          data_ = builderForValue.build();
          onChanged();
        } else {
          createAliasBuilder_.setMessage(builderForValue.build());
        }
        dataCase_ = 110;
        return this;
      }
      /**
       * .waves.CreateAliasTransactionData create_alias = 110;
       */
      public Builder mergeCreateAlias(com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData value) {
        if (createAliasBuilder_ == null) {
          if (dataCase_ == 110 &&
              data_ != com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData.getDefaultInstance()) {
            data_ = com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData.newBuilder((com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData) data_)
                .mergeFrom(value).buildPartial();
          } else {
            data_ = value;
          }
          onChanged();
        } else {
          if (dataCase_ == 110) {
            createAliasBuilder_.mergeFrom(value);
          }
          createAliasBuilder_.setMessage(value);
        }
        dataCase_ = 110;
        return this;
      }
      /**
       * .waves.CreateAliasTransactionData create_alias = 110;
       */
      public Builder clearCreateAlias() {
        if (createAliasBuilder_ == null) {
          if (dataCase_ == 110) {
            dataCase_ = 0;
            data_ = null;
            onChanged();
          }
        } else {
          if (dataCase_ == 110) {
            dataCase_ = 0;
            data_ = null;
          }
          createAliasBuilder_.clear();
        }
        return this;
      }
      /**
       * .waves.CreateAliasTransactionData create_alias = 110;
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData.Builder getCreateAliasBuilder() {
        return getCreateAliasFieldBuilder().getBuilder();
      }
      /**
       * .waves.CreateAliasTransactionData create_alias = 110;
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionDataOrBuilder getCreateAliasOrBuilder() {
        if ((dataCase_ == 110) && (createAliasBuilder_ != null)) {
          return createAliasBuilder_.getMessageOrBuilder();
        } else {
          if (dataCase_ == 110) {
            return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData) data_;
          }
          return com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData.getDefaultInstance();
        }
      }
      /**
       * .waves.CreateAliasTransactionData create_alias = 110;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData, com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData.Builder, com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionDataOrBuilder> 
          getCreateAliasFieldBuilder() {
        if (createAliasBuilder_ == null) {
          if (!(dataCase_ == 110)) {
            data_ = com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData.getDefaultInstance();
          }
          createAliasBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData, com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData.Builder, com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionDataOrBuilder>(
                  (com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData) data_,
                  getParentForChildren(),
                  isClean());
          data_ = null;
        }
        dataCase_ = 110;
        onChanged();;
        return createAliasBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData, com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Builder, com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionDataOrBuilder> massTransferBuilder_;
      /**
       * .waves.MassTransferTransactionData mass_transfer = 111;
       * @return Whether the massTransfer field is set.
       */
      public boolean hasMassTransfer() {
        return dataCase_ == 111;
      }
      /**
       * .waves.MassTransferTransactionData mass_transfer = 111;
       * @return The massTransfer.
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData getMassTransfer() {
        if (massTransferBuilder_ == null) {
          if (dataCase_ == 111) {
            return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData) data_;
          }
          return com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.getDefaultInstance();
        } else {
          if (dataCase_ == 111) {
            return massTransferBuilder_.getMessage();
          }
          return com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.getDefaultInstance();
        }
      }
      /**
       * .waves.MassTransferTransactionData mass_transfer = 111;
       */
      public Builder setMassTransfer(com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData value) {
        if (massTransferBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          data_ = value;
          onChanged();
        } else {
          massTransferBuilder_.setMessage(value);
        }
        dataCase_ = 111;
        return this;
      }
      /**
       * .waves.MassTransferTransactionData mass_transfer = 111;
       */
      public Builder setMassTransfer(
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Builder builderForValue) {
        if (massTransferBuilder_ == null) {
          data_ = builderForValue.build();
          onChanged();
        } else {
          massTransferBuilder_.setMessage(builderForValue.build());
        }
        dataCase_ = 111;
        return this;
      }
      /**
       * .waves.MassTransferTransactionData mass_transfer = 111;
       */
      public Builder mergeMassTransfer(com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData value) {
        if (massTransferBuilder_ == null) {
          if (dataCase_ == 111 &&
              data_ != com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.getDefaultInstance()) {
            data_ = com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.newBuilder((com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData) data_)
                .mergeFrom(value).buildPartial();
          } else {
            data_ = value;
          }
          onChanged();
        } else {
          if (dataCase_ == 111) {
            massTransferBuilder_.mergeFrom(value);
          }
          massTransferBuilder_.setMessage(value);
        }
        dataCase_ = 111;
        return this;
      }
      /**
       * .waves.MassTransferTransactionData mass_transfer = 111;
       */
      public Builder clearMassTransfer() {
        if (massTransferBuilder_ == null) {
          if (dataCase_ == 111) {
            dataCase_ = 0;
            data_ = null;
            onChanged();
          }
        } else {
          if (dataCase_ == 111) {
            dataCase_ = 0;
            data_ = null;
          }
          massTransferBuilder_.clear();
        }
        return this;
      }
      /**
       * .waves.MassTransferTransactionData mass_transfer = 111;
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Builder getMassTransferBuilder() {
        return getMassTransferFieldBuilder().getBuilder();
      }
      /**
       * .waves.MassTransferTransactionData mass_transfer = 111;
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionDataOrBuilder getMassTransferOrBuilder() {
        if ((dataCase_ == 111) && (massTransferBuilder_ != null)) {
          return massTransferBuilder_.getMessageOrBuilder();
        } else {
          if (dataCase_ == 111) {
            return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData) data_;
          }
          return com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.getDefaultInstance();
        }
      }
      /**
       * .waves.MassTransferTransactionData mass_transfer = 111;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData, com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Builder, com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionDataOrBuilder> 
          getMassTransferFieldBuilder() {
        if (massTransferBuilder_ == null) {
          if (!(dataCase_ == 111)) {
            data_ = com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.getDefaultInstance();
          }
          massTransferBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData, com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Builder, com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionDataOrBuilder>(
                  (com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData) data_,
                  getParentForChildren(),
                  isClean());
          data_ = null;
        }
        dataCase_ = 111;
        onChanged();;
        return massTransferBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData, com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.Builder, com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionDataOrBuilder> dataTransactionBuilder_;
      /**
       * .waves.DataTransactionData data_transaction = 112;
       * @return Whether the dataTransaction field is set.
       */
      public boolean hasDataTransaction() {
        return dataCase_ == 112;
      }
      /**
       * .waves.DataTransactionData data_transaction = 112;
       * @return The dataTransaction.
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData getDataTransaction() {
        if (dataTransactionBuilder_ == null) {
          if (dataCase_ == 112) {
            return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData) data_;
          }
          return com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.getDefaultInstance();
        } else {
          if (dataCase_ == 112) {
            return dataTransactionBuilder_.getMessage();
          }
          return com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.getDefaultInstance();
        }
      }
      /**
       * .waves.DataTransactionData data_transaction = 112;
       */
      public Builder setDataTransaction(com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData value) {
        if (dataTransactionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          data_ = value;
          onChanged();
        } else {
          dataTransactionBuilder_.setMessage(value);
        }
        dataCase_ = 112;
        return this;
      }
      /**
       * .waves.DataTransactionData data_transaction = 112;
       */
      public Builder setDataTransaction(
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.Builder builderForValue) {
        if (dataTransactionBuilder_ == null) {
          data_ = builderForValue.build();
          onChanged();
        } else {
          dataTransactionBuilder_.setMessage(builderForValue.build());
        }
        dataCase_ = 112;
        return this;
      }
      /**
       * .waves.DataTransactionData data_transaction = 112;
       */
      public Builder mergeDataTransaction(com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData value) {
        if (dataTransactionBuilder_ == null) {
          if (dataCase_ == 112 &&
              data_ != com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.getDefaultInstance()) {
            data_ = com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.newBuilder((com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData) data_)
                .mergeFrom(value).buildPartial();
          } else {
            data_ = value;
          }
          onChanged();
        } else {
          if (dataCase_ == 112) {
            dataTransactionBuilder_.mergeFrom(value);
          }
          dataTransactionBuilder_.setMessage(value);
        }
        dataCase_ = 112;
        return this;
      }
      /**
       * .waves.DataTransactionData data_transaction = 112;
       */
      public Builder clearDataTransaction() {
        if (dataTransactionBuilder_ == null) {
          if (dataCase_ == 112) {
            dataCase_ = 0;
            data_ = null;
            onChanged();
          }
        } else {
          if (dataCase_ == 112) {
            dataCase_ = 0;
            data_ = null;
          }
          dataTransactionBuilder_.clear();
        }
        return this;
      }
      /**
       * .waves.DataTransactionData data_transaction = 112;
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.Builder getDataTransactionBuilder() {
        return getDataTransactionFieldBuilder().getBuilder();
      }
      /**
       * .waves.DataTransactionData data_transaction = 112;
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionDataOrBuilder getDataTransactionOrBuilder() {
        if ((dataCase_ == 112) && (dataTransactionBuilder_ != null)) {
          return dataTransactionBuilder_.getMessageOrBuilder();
        } else {
          if (dataCase_ == 112) {
            return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData) data_;
          }
          return com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.getDefaultInstance();
        }
      }
      /**
       * .waves.DataTransactionData data_transaction = 112;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData, com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.Builder, com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionDataOrBuilder> 
          getDataTransactionFieldBuilder() {
        if (dataTransactionBuilder_ == null) {
          if (!(dataCase_ == 112)) {
            data_ = com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.getDefaultInstance();
          }
          dataTransactionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData, com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.Builder, com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionDataOrBuilder>(
                  (com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData) data_,
                  getParentForChildren(),
                  isClean());
          data_ = null;
        }
        dataCase_ = 112;
        onChanged();;
        return dataTransactionBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData, com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData.Builder, com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionDataOrBuilder> setScriptBuilder_;
      /**
       * .waves.SetScriptTransactionData set_script = 113;
       * @return Whether the setScript field is set.
       */
      public boolean hasSetScript() {
        return dataCase_ == 113;
      }
      /**
       * .waves.SetScriptTransactionData set_script = 113;
       * @return The setScript.
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData getSetScript() {
        if (setScriptBuilder_ == null) {
          if (dataCase_ == 113) {
            return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData) data_;
          }
          return com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData.getDefaultInstance();
        } else {
          if (dataCase_ == 113) {
            return setScriptBuilder_.getMessage();
          }
          return com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData.getDefaultInstance();
        }
      }
      /**
       * .waves.SetScriptTransactionData set_script = 113;
       */
      public Builder setSetScript(com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData value) {
        if (setScriptBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          data_ = value;
          onChanged();
        } else {
          setScriptBuilder_.setMessage(value);
        }
        dataCase_ = 113;
        return this;
      }
      /**
       * .waves.SetScriptTransactionData set_script = 113;
       */
      public Builder setSetScript(
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData.Builder builderForValue) {
        if (setScriptBuilder_ == null) {
          data_ = builderForValue.build();
          onChanged();
        } else {
          setScriptBuilder_.setMessage(builderForValue.build());
        }
        dataCase_ = 113;
        return this;
      }
      /**
       * .waves.SetScriptTransactionData set_script = 113;
       */
      public Builder mergeSetScript(com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData value) {
        if (setScriptBuilder_ == null) {
          if (dataCase_ == 113 &&
              data_ != com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData.getDefaultInstance()) {
            data_ = com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData.newBuilder((com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData) data_)
                .mergeFrom(value).buildPartial();
          } else {
            data_ = value;
          }
          onChanged();
        } else {
          if (dataCase_ == 113) {
            setScriptBuilder_.mergeFrom(value);
          }
          setScriptBuilder_.setMessage(value);
        }
        dataCase_ = 113;
        return this;
      }
      /**
       * .waves.SetScriptTransactionData set_script = 113;
       */
      public Builder clearSetScript() {
        if (setScriptBuilder_ == null) {
          if (dataCase_ == 113) {
            dataCase_ = 0;
            data_ = null;
            onChanged();
          }
        } else {
          if (dataCase_ == 113) {
            dataCase_ = 0;
            data_ = null;
          }
          setScriptBuilder_.clear();
        }
        return this;
      }
      /**
       * .waves.SetScriptTransactionData set_script = 113;
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData.Builder getSetScriptBuilder() {
        return getSetScriptFieldBuilder().getBuilder();
      }
      /**
       * .waves.SetScriptTransactionData set_script = 113;
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionDataOrBuilder getSetScriptOrBuilder() {
        if ((dataCase_ == 113) && (setScriptBuilder_ != null)) {
          return setScriptBuilder_.getMessageOrBuilder();
        } else {
          if (dataCase_ == 113) {
            return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData) data_;
          }
          return com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData.getDefaultInstance();
        }
      }
      /**
       * .waves.SetScriptTransactionData set_script = 113;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData, com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData.Builder, com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionDataOrBuilder> 
          getSetScriptFieldBuilder() {
        if (setScriptBuilder_ == null) {
          if (!(dataCase_ == 113)) {
            data_ = com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData.getDefaultInstance();
          }
          setScriptBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData, com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData.Builder, com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionDataOrBuilder>(
                  (com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData) data_,
                  getParentForChildren(),
                  isClean());
          data_ = null;
        }
        dataCase_ = 113;
        onChanged();;
        return setScriptBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData, com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData.Builder, com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionDataOrBuilder> sponsorFeeBuilder_;
      /**
       * .waves.SponsorFeeTransactionData sponsor_fee = 114;
       * @return Whether the sponsorFee field is set.
       */
      public boolean hasSponsorFee() {
        return dataCase_ == 114;
      }
      /**
       * .waves.SponsorFeeTransactionData sponsor_fee = 114;
       * @return The sponsorFee.
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData getSponsorFee() {
        if (sponsorFeeBuilder_ == null) {
          if (dataCase_ == 114) {
            return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData) data_;
          }
          return com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData.getDefaultInstance();
        } else {
          if (dataCase_ == 114) {
            return sponsorFeeBuilder_.getMessage();
          }
          return com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData.getDefaultInstance();
        }
      }
      /**
       * .waves.SponsorFeeTransactionData sponsor_fee = 114;
       */
      public Builder setSponsorFee(com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData value) {
        if (sponsorFeeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          data_ = value;
          onChanged();
        } else {
          sponsorFeeBuilder_.setMessage(value);
        }
        dataCase_ = 114;
        return this;
      }
      /**
       * .waves.SponsorFeeTransactionData sponsor_fee = 114;
       */
      public Builder setSponsorFee(
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData.Builder builderForValue) {
        if (sponsorFeeBuilder_ == null) {
          data_ = builderForValue.build();
          onChanged();
        } else {
          sponsorFeeBuilder_.setMessage(builderForValue.build());
        }
        dataCase_ = 114;
        return this;
      }
      /**
       * .waves.SponsorFeeTransactionData sponsor_fee = 114;
       */
      public Builder mergeSponsorFee(com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData value) {
        if (sponsorFeeBuilder_ == null) {
          if (dataCase_ == 114 &&
              data_ != com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData.getDefaultInstance()) {
            data_ = com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData.newBuilder((com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData) data_)
                .mergeFrom(value).buildPartial();
          } else {
            data_ = value;
          }
          onChanged();
        } else {
          if (dataCase_ == 114) {
            sponsorFeeBuilder_.mergeFrom(value);
          }
          sponsorFeeBuilder_.setMessage(value);
        }
        dataCase_ = 114;
        return this;
      }
      /**
       * .waves.SponsorFeeTransactionData sponsor_fee = 114;
       */
      public Builder clearSponsorFee() {
        if (sponsorFeeBuilder_ == null) {
          if (dataCase_ == 114) {
            dataCase_ = 0;
            data_ = null;
            onChanged();
          }
        } else {
          if (dataCase_ == 114) {
            dataCase_ = 0;
            data_ = null;
          }
          sponsorFeeBuilder_.clear();
        }
        return this;
      }
      /**
       * .waves.SponsorFeeTransactionData sponsor_fee = 114;
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData.Builder getSponsorFeeBuilder() {
        return getSponsorFeeFieldBuilder().getBuilder();
      }
      /**
       * .waves.SponsorFeeTransactionData sponsor_fee = 114;
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionDataOrBuilder getSponsorFeeOrBuilder() {
        if ((dataCase_ == 114) && (sponsorFeeBuilder_ != null)) {
          return sponsorFeeBuilder_.getMessageOrBuilder();
        } else {
          if (dataCase_ == 114) {
            return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData) data_;
          }
          return com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData.getDefaultInstance();
        }
      }
      /**
       * .waves.SponsorFeeTransactionData sponsor_fee = 114;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData, com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData.Builder, com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionDataOrBuilder> 
          getSponsorFeeFieldBuilder() {
        if (sponsorFeeBuilder_ == null) {
          if (!(dataCase_ == 114)) {
            data_ = com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData.getDefaultInstance();
          }
          sponsorFeeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData, com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData.Builder, com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionDataOrBuilder>(
                  (com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData) data_,
                  getParentForChildren(),
                  isClean());
          data_ = null;
        }
        dataCase_ = 114;
        onChanged();;
        return sponsorFeeBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData, com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData.Builder, com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionDataOrBuilder> setAssetScriptBuilder_;
      /**
       * .waves.SetAssetScriptTransactionData set_asset_script = 115;
       * @return Whether the setAssetScript field is set.
       */
      public boolean hasSetAssetScript() {
        return dataCase_ == 115;
      }
      /**
       * .waves.SetAssetScriptTransactionData set_asset_script = 115;
       * @return The setAssetScript.
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData getSetAssetScript() {
        if (setAssetScriptBuilder_ == null) {
          if (dataCase_ == 115) {
            return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData) data_;
          }
          return com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData.getDefaultInstance();
        } else {
          if (dataCase_ == 115) {
            return setAssetScriptBuilder_.getMessage();
          }
          return com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData.getDefaultInstance();
        }
      }
      /**
       * .waves.SetAssetScriptTransactionData set_asset_script = 115;
       */
      public Builder setSetAssetScript(com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData value) {
        if (setAssetScriptBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          data_ = value;
          onChanged();
        } else {
          setAssetScriptBuilder_.setMessage(value);
        }
        dataCase_ = 115;
        return this;
      }
      /**
       * .waves.SetAssetScriptTransactionData set_asset_script = 115;
       */
      public Builder setSetAssetScript(
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData.Builder builderForValue) {
        if (setAssetScriptBuilder_ == null) {
          data_ = builderForValue.build();
          onChanged();
        } else {
          setAssetScriptBuilder_.setMessage(builderForValue.build());
        }
        dataCase_ = 115;
        return this;
      }
      /**
       * .waves.SetAssetScriptTransactionData set_asset_script = 115;
       */
      public Builder mergeSetAssetScript(com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData value) {
        if (setAssetScriptBuilder_ == null) {
          if (dataCase_ == 115 &&
              data_ != com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData.getDefaultInstance()) {
            data_ = com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData.newBuilder((com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData) data_)
                .mergeFrom(value).buildPartial();
          } else {
            data_ = value;
          }
          onChanged();
        } else {
          if (dataCase_ == 115) {
            setAssetScriptBuilder_.mergeFrom(value);
          }
          setAssetScriptBuilder_.setMessage(value);
        }
        dataCase_ = 115;
        return this;
      }
      /**
       * .waves.SetAssetScriptTransactionData set_asset_script = 115;
       */
      public Builder clearSetAssetScript() {
        if (setAssetScriptBuilder_ == null) {
          if (dataCase_ == 115) {
            dataCase_ = 0;
            data_ = null;
            onChanged();
          }
        } else {
          if (dataCase_ == 115) {
            dataCase_ = 0;
            data_ = null;
          }
          setAssetScriptBuilder_.clear();
        }
        return this;
      }
      /**
       * .waves.SetAssetScriptTransactionData set_asset_script = 115;
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData.Builder getSetAssetScriptBuilder() {
        return getSetAssetScriptFieldBuilder().getBuilder();
      }
      /**
       * .waves.SetAssetScriptTransactionData set_asset_script = 115;
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionDataOrBuilder getSetAssetScriptOrBuilder() {
        if ((dataCase_ == 115) && (setAssetScriptBuilder_ != null)) {
          return setAssetScriptBuilder_.getMessageOrBuilder();
        } else {
          if (dataCase_ == 115) {
            return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData) data_;
          }
          return com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData.getDefaultInstance();
        }
      }
      /**
       * .waves.SetAssetScriptTransactionData set_asset_script = 115;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData, com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData.Builder, com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionDataOrBuilder> 
          getSetAssetScriptFieldBuilder() {
        if (setAssetScriptBuilder_ == null) {
          if (!(dataCase_ == 115)) {
            data_ = com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData.getDefaultInstance();
          }
          setAssetScriptBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData, com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData.Builder, com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionDataOrBuilder>(
                  (com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData) data_,
                  getParentForChildren(),
                  isClean());
          data_ = null;
        }
        dataCase_ = 115;
        onChanged();;
        return setAssetScriptBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData, com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData.Builder, com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionDataOrBuilder> invokeScriptBuilder_;
      /**
       * .waves.InvokeScriptTransactionData invoke_script = 116;
       * @return Whether the invokeScript field is set.
       */
      public boolean hasInvokeScript() {
        return dataCase_ == 116;
      }
      /**
       * .waves.InvokeScriptTransactionData invoke_script = 116;
       * @return The invokeScript.
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData getInvokeScript() {
        if (invokeScriptBuilder_ == null) {
          if (dataCase_ == 116) {
            return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData) data_;
          }
          return com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData.getDefaultInstance();
        } else {
          if (dataCase_ == 116) {
            return invokeScriptBuilder_.getMessage();
          }
          return com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData.getDefaultInstance();
        }
      }
      /**
       * .waves.InvokeScriptTransactionData invoke_script = 116;
       */
      public Builder setInvokeScript(com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData value) {
        if (invokeScriptBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          data_ = value;
          onChanged();
        } else {
          invokeScriptBuilder_.setMessage(value);
        }
        dataCase_ = 116;
        return this;
      }
      /**
       * .waves.InvokeScriptTransactionData invoke_script = 116;
       */
      public Builder setInvokeScript(
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData.Builder builderForValue) {
        if (invokeScriptBuilder_ == null) {
          data_ = builderForValue.build();
          onChanged();
        } else {
          invokeScriptBuilder_.setMessage(builderForValue.build());
        }
        dataCase_ = 116;
        return this;
      }
      /**
       * .waves.InvokeScriptTransactionData invoke_script = 116;
       */
      public Builder mergeInvokeScript(com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData value) {
        if (invokeScriptBuilder_ == null) {
          if (dataCase_ == 116 &&
              data_ != com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData.getDefaultInstance()) {
            data_ = com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData.newBuilder((com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData) data_)
                .mergeFrom(value).buildPartial();
          } else {
            data_ = value;
          }
          onChanged();
        } else {
          if (dataCase_ == 116) {
            invokeScriptBuilder_.mergeFrom(value);
          }
          invokeScriptBuilder_.setMessage(value);
        }
        dataCase_ = 116;
        return this;
      }
      /**
       * .waves.InvokeScriptTransactionData invoke_script = 116;
       */
      public Builder clearInvokeScript() {
        if (invokeScriptBuilder_ == null) {
          if (dataCase_ == 116) {
            dataCase_ = 0;
            data_ = null;
            onChanged();
          }
        } else {
          if (dataCase_ == 116) {
            dataCase_ = 0;
            data_ = null;
          }
          invokeScriptBuilder_.clear();
        }
        return this;
      }
      /**
       * .waves.InvokeScriptTransactionData invoke_script = 116;
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData.Builder getInvokeScriptBuilder() {
        return getInvokeScriptFieldBuilder().getBuilder();
      }
      /**
       * .waves.InvokeScriptTransactionData invoke_script = 116;
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionDataOrBuilder getInvokeScriptOrBuilder() {
        if ((dataCase_ == 116) && (invokeScriptBuilder_ != null)) {
          return invokeScriptBuilder_.getMessageOrBuilder();
        } else {
          if (dataCase_ == 116) {
            return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData) data_;
          }
          return com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData.getDefaultInstance();
        }
      }
      /**
       * .waves.InvokeScriptTransactionData invoke_script = 116;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData, com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData.Builder, com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionDataOrBuilder> 
          getInvokeScriptFieldBuilder() {
        if (invokeScriptBuilder_ == null) {
          if (!(dataCase_ == 116)) {
            data_ = com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData.getDefaultInstance();
          }
          invokeScriptBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData, com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData.Builder, com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionDataOrBuilder>(
                  (com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData) data_,
                  getParentForChildren(),
                  isClean());
          data_ = null;
        }
        dataCase_ = 116;
        onChanged();;
        return invokeScriptBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData, com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData.Builder, com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionDataOrBuilder> updateAssetInfoBuilder_;
      /**
       * .waves.UpdateAssetInfoTransactionData update_asset_info = 117;
       * @return Whether the updateAssetInfo field is set.
       */
      public boolean hasUpdateAssetInfo() {
        return dataCase_ == 117;
      }
      /**
       * .waves.UpdateAssetInfoTransactionData update_asset_info = 117;
       * @return The updateAssetInfo.
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData getUpdateAssetInfo() {
        if (updateAssetInfoBuilder_ == null) {
          if (dataCase_ == 117) {
            return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData) data_;
          }
          return com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData.getDefaultInstance();
        } else {
          if (dataCase_ == 117) {
            return updateAssetInfoBuilder_.getMessage();
          }
          return com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData.getDefaultInstance();
        }
      }
      /**
       * .waves.UpdateAssetInfoTransactionData update_asset_info = 117;
       */
      public Builder setUpdateAssetInfo(com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData value) {
        if (updateAssetInfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          data_ = value;
          onChanged();
        } else {
          updateAssetInfoBuilder_.setMessage(value);
        }
        dataCase_ = 117;
        return this;
      }
      /**
       * .waves.UpdateAssetInfoTransactionData update_asset_info = 117;
       */
      public Builder setUpdateAssetInfo(
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData.Builder builderForValue) {
        if (updateAssetInfoBuilder_ == null) {
          data_ = builderForValue.build();
          onChanged();
        } else {
          updateAssetInfoBuilder_.setMessage(builderForValue.build());
        }
        dataCase_ = 117;
        return this;
      }
      /**
       * .waves.UpdateAssetInfoTransactionData update_asset_info = 117;
       */
      public Builder mergeUpdateAssetInfo(com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData value) {
        if (updateAssetInfoBuilder_ == null) {
          if (dataCase_ == 117 &&
              data_ != com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData.getDefaultInstance()) {
            data_ = com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData.newBuilder((com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData) data_)
                .mergeFrom(value).buildPartial();
          } else {
            data_ = value;
          }
          onChanged();
        } else {
          if (dataCase_ == 117) {
            updateAssetInfoBuilder_.mergeFrom(value);
          }
          updateAssetInfoBuilder_.setMessage(value);
        }
        dataCase_ = 117;
        return this;
      }
      /**
       * .waves.UpdateAssetInfoTransactionData update_asset_info = 117;
       */
      public Builder clearUpdateAssetInfo() {
        if (updateAssetInfoBuilder_ == null) {
          if (dataCase_ == 117) {
            dataCase_ = 0;
            data_ = null;
            onChanged();
          }
        } else {
          if (dataCase_ == 117) {
            dataCase_ = 0;
            data_ = null;
          }
          updateAssetInfoBuilder_.clear();
        }
        return this;
      }
      /**
       * .waves.UpdateAssetInfoTransactionData update_asset_info = 117;
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData.Builder getUpdateAssetInfoBuilder() {
        return getUpdateAssetInfoFieldBuilder().getBuilder();
      }
      /**
       * .waves.UpdateAssetInfoTransactionData update_asset_info = 117;
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionDataOrBuilder getUpdateAssetInfoOrBuilder() {
        if ((dataCase_ == 117) && (updateAssetInfoBuilder_ != null)) {
          return updateAssetInfoBuilder_.getMessageOrBuilder();
        } else {
          if (dataCase_ == 117) {
            return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData) data_;
          }
          return com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData.getDefaultInstance();
        }
      }
      /**
       * .waves.UpdateAssetInfoTransactionData update_asset_info = 117;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData, com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData.Builder, com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionDataOrBuilder> 
          getUpdateAssetInfoFieldBuilder() {
        if (updateAssetInfoBuilder_ == null) {
          if (!(dataCase_ == 117)) {
            data_ = com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData.getDefaultInstance();
          }
          updateAssetInfoBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData, com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData.Builder, com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionDataOrBuilder>(
                  (com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData) data_,
                  getParentForChildren(),
                  isClean());
          data_ = null;
        }
        dataCase_ = 117;
        onChanged();;
        return updateAssetInfoBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData, com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData.Builder, com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionDataOrBuilder> continuationBuilder_;
      /**
       * .waves.ContinuationTransactionData continuation = 118;
       * @return Whether the continuation field is set.
       */
      public boolean hasContinuation() {
        return dataCase_ == 118;
      }
      /**
       * .waves.ContinuationTransactionData continuation = 118;
       * @return The continuation.
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData getContinuation() {
        if (continuationBuilder_ == null) {
          if (dataCase_ == 118) {
            return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData) data_;
          }
          return com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData.getDefaultInstance();
        } else {
          if (dataCase_ == 118) {
            return continuationBuilder_.getMessage();
          }
          return com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData.getDefaultInstance();
        }
      }
      /**
       * .waves.ContinuationTransactionData continuation = 118;
       */
      public Builder setContinuation(com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData value) {
        if (continuationBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          data_ = value;
          onChanged();
        } else {
          continuationBuilder_.setMessage(value);
        }
        dataCase_ = 118;
        return this;
      }
      /**
       * .waves.ContinuationTransactionData continuation = 118;
       */
      public Builder setContinuation(
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData.Builder builderForValue) {
        if (continuationBuilder_ == null) {
          data_ = builderForValue.build();
          onChanged();
        } else {
          continuationBuilder_.setMessage(builderForValue.build());
        }
        dataCase_ = 118;
        return this;
      }
      /**
       * .waves.ContinuationTransactionData continuation = 118;
       */
      public Builder mergeContinuation(com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData value) {
        if (continuationBuilder_ == null) {
          if (dataCase_ == 118 &&
              data_ != com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData.getDefaultInstance()) {
            data_ = com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData.newBuilder((com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData) data_)
                .mergeFrom(value).buildPartial();
          } else {
            data_ = value;
          }
          onChanged();
        } else {
          if (dataCase_ == 118) {
            continuationBuilder_.mergeFrom(value);
          }
          continuationBuilder_.setMessage(value);
        }
        dataCase_ = 118;
        return this;
      }
      /**
       * .waves.ContinuationTransactionData continuation = 118;
       */
      public Builder clearContinuation() {
        if (continuationBuilder_ == null) {
          if (dataCase_ == 118) {
            dataCase_ = 0;
            data_ = null;
            onChanged();
          }
        } else {
          if (dataCase_ == 118) {
            dataCase_ = 0;
            data_ = null;
          }
          continuationBuilder_.clear();
        }
        return this;
      }
      /**
       * .waves.ContinuationTransactionData continuation = 118;
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData.Builder getContinuationBuilder() {
        return getContinuationFieldBuilder().getBuilder();
      }
      /**
       * .waves.ContinuationTransactionData continuation = 118;
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionDataOrBuilder getContinuationOrBuilder() {
        if ((dataCase_ == 118) && (continuationBuilder_ != null)) {
          return continuationBuilder_.getMessageOrBuilder();
        } else {
          if (dataCase_ == 118) {
            return (com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData) data_;
          }
          return com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData.getDefaultInstance();
        }
      }
      /**
       * .waves.ContinuationTransactionData continuation = 118;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData, com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData.Builder, com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionDataOrBuilder> 
          getContinuationFieldBuilder() {
        if (continuationBuilder_ == null) {
          if (!(dataCase_ == 118)) {
            data_ = com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData.getDefaultInstance();
          }
          continuationBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData, com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData.Builder, com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionDataOrBuilder>(
                  (com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData) data_,
                  getParentForChildren(),
                  isClean());
          data_ = null;
        }
        dataCase_ = 118;
        onChanged();;
        return continuationBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:waves.Transaction)
    }

    // @@protoc_insertion_point(class_scope:waves.Transaction)
    private static final com.wavesplatform.protobuf.transaction.TransactionOuterClass.Transaction DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.wavesplatform.protobuf.transaction.TransactionOuterClass.Transaction();
    }

    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.Transaction getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public Transaction parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new Transaction(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.wavesplatform.protobuf.transaction.TransactionOuterClass.Transaction getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface GenesisTransactionDataOrBuilder extends
      // @@protoc_insertion_point(interface_extends:waves.GenesisTransactionData)
      com.google.protobuf.MessageOrBuilder {

    /**
     * bytes recipient_address = 1;
     * @return The recipientAddress.
     */
    com.google.protobuf.ByteString getRecipientAddress();

    /**
     * int64 amount = 2;
     * @return The amount.
     */
    long getAmount();
  }
  /**
   * Protobuf type {@code waves.GenesisTransactionData}
   */
  public  static final class GenesisTransactionData extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:waves.GenesisTransactionData)
      GenesisTransactionDataOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use GenesisTransactionData.newBuilder() to construct.
    private GenesisTransactionData(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private GenesisTransactionData() {
      recipientAddress_ = com.google.protobuf.ByteString.EMPTY;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new GenesisTransactionData();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private GenesisTransactionData(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {

              recipientAddress_ = input.readBytes();
              break;
            }
            case 16: {

              amount_ = input.readInt64();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_GenesisTransactionData_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_GenesisTransactionData_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData.class, com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData.Builder.class);
    }

    public static final int RECIPIENT_ADDRESS_FIELD_NUMBER = 1;
    private com.google.protobuf.ByteString recipientAddress_;
    /**
     * bytes recipient_address = 1;
     * @return The recipientAddress.
     */
    public com.google.protobuf.ByteString getRecipientAddress() {
      return recipientAddress_;
    }

    public static final int AMOUNT_FIELD_NUMBER = 2;
    private long amount_;
    /**
     * int64 amount = 2;
     * @return The amount.
     */
    public long getAmount() {
      return amount_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!recipientAddress_.isEmpty()) {
        output.writeBytes(1, recipientAddress_);
      }
      if (amount_ != 0L) {
        output.writeInt64(2, amount_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!recipientAddress_.isEmpty()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, recipientAddress_);
      }
      if (amount_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, amount_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData)) {
        return super.equals(obj);
      }
      com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData other = (com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData) obj;

      if (!getRecipientAddress()
          .equals(other.getRecipientAddress())) return false;
      if (getAmount()
          != other.getAmount()) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + RECIPIENT_ADDRESS_FIELD_NUMBER;
      hash = (53 * hash) + getRecipientAddress().hashCode();
      hash = (37 * hash) + AMOUNT_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getAmount());
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code waves.GenesisTransactionData}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:waves.GenesisTransactionData)
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionDataOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_GenesisTransactionData_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_GenesisTransactionData_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData.class, com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData.Builder.class);
      }

      // Construct using com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        recipientAddress_ = com.google.protobuf.ByteString.EMPTY;

        amount_ = 0L;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_GenesisTransactionData_descriptor;
      }

      @java.lang.Override
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData getDefaultInstanceForType() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData.getDefaultInstance();
      }

      @java.lang.Override
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData build() {
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData buildPartial() {
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData result = new com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData(this);
        result.recipientAddress_ = recipientAddress_;
        result.amount_ = amount_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData) {
          return mergeFrom((com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData other) {
        if (other == com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData.getDefaultInstance()) return this;
        if (other.getRecipientAddress() != com.google.protobuf.ByteString.EMPTY) {
          setRecipientAddress(other.getRecipientAddress());
        }
        if (other.getAmount() != 0L) {
          setAmount(other.getAmount());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private com.google.protobuf.ByteString recipientAddress_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * bytes recipient_address = 1;
       * @return The recipientAddress.
       */
      public com.google.protobuf.ByteString getRecipientAddress() {
        return recipientAddress_;
      }
      /**
       * bytes recipient_address = 1;
       * @param value The recipientAddress to set.
       * @return This builder for chaining.
       */
      public Builder setRecipientAddress(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        recipientAddress_ = value;
        onChanged();
        return this;
      }
      /**
       * bytes recipient_address = 1;
       * @return This builder for chaining.
       */
      public Builder clearRecipientAddress() {
        
        recipientAddress_ = getDefaultInstance().getRecipientAddress();
        onChanged();
        return this;
      }

      private long amount_ ;
      /**
       * int64 amount = 2;
       * @return The amount.
       */
      public long getAmount() {
        return amount_;
      }
      /**
       * int64 amount = 2;
       * @param value The amount to set.
       * @return This builder for chaining.
       */
      public Builder setAmount(long value) {
        
        amount_ = value;
        onChanged();
        return this;
      }
      /**
       * int64 amount = 2;
       * @return This builder for chaining.
       */
      public Builder clearAmount() {
        
        amount_ = 0L;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:waves.GenesisTransactionData)
    }

    // @@protoc_insertion_point(class_scope:waves.GenesisTransactionData)
    private static final com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData();
    }

    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public GenesisTransactionData parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new GenesisTransactionData(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.wavesplatform.protobuf.transaction.TransactionOuterClass.GenesisTransactionData getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface PaymentTransactionDataOrBuilder extends
      // @@protoc_insertion_point(interface_extends:waves.PaymentTransactionData)
      com.google.protobuf.MessageOrBuilder {

    /**
     * bytes recipient_address = 1;
     * @return The recipientAddress.
     */
    com.google.protobuf.ByteString getRecipientAddress();

    /**
     * int64 amount = 2;
     * @return The amount.
     */
    long getAmount();
  }
  /**
   * Protobuf type {@code waves.PaymentTransactionData}
   */
  public  static final class PaymentTransactionData extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:waves.PaymentTransactionData)
      PaymentTransactionDataOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PaymentTransactionData.newBuilder() to construct.
    private PaymentTransactionData(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private PaymentTransactionData() {
      recipientAddress_ = com.google.protobuf.ByteString.EMPTY;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new PaymentTransactionData();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private PaymentTransactionData(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {

              recipientAddress_ = input.readBytes();
              break;
            }
            case 16: {

              amount_ = input.readInt64();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_PaymentTransactionData_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_PaymentTransactionData_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData.class, com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData.Builder.class);
    }

    public static final int RECIPIENT_ADDRESS_FIELD_NUMBER = 1;
    private com.google.protobuf.ByteString recipientAddress_;
    /**
     * bytes recipient_address = 1;
     * @return The recipientAddress.
     */
    public com.google.protobuf.ByteString getRecipientAddress() {
      return recipientAddress_;
    }

    public static final int AMOUNT_FIELD_NUMBER = 2;
    private long amount_;
    /**
     * int64 amount = 2;
     * @return The amount.
     */
    public long getAmount() {
      return amount_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!recipientAddress_.isEmpty()) {
        output.writeBytes(1, recipientAddress_);
      }
      if (amount_ != 0L) {
        output.writeInt64(2, amount_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!recipientAddress_.isEmpty()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, recipientAddress_);
      }
      if (amount_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, amount_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData)) {
        return super.equals(obj);
      }
      com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData other = (com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData) obj;

      if (!getRecipientAddress()
          .equals(other.getRecipientAddress())) return false;
      if (getAmount()
          != other.getAmount()) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + RECIPIENT_ADDRESS_FIELD_NUMBER;
      hash = (53 * hash) + getRecipientAddress().hashCode();
      hash = (37 * hash) + AMOUNT_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getAmount());
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code waves.PaymentTransactionData}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:waves.PaymentTransactionData)
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionDataOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_PaymentTransactionData_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_PaymentTransactionData_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData.class, com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData.Builder.class);
      }

      // Construct using com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        recipientAddress_ = com.google.protobuf.ByteString.EMPTY;

        amount_ = 0L;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_PaymentTransactionData_descriptor;
      }

      @java.lang.Override
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData getDefaultInstanceForType() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData.getDefaultInstance();
      }

      @java.lang.Override
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData build() {
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData buildPartial() {
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData result = new com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData(this);
        result.recipientAddress_ = recipientAddress_;
        result.amount_ = amount_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData) {
          return mergeFrom((com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData other) {
        if (other == com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData.getDefaultInstance()) return this;
        if (other.getRecipientAddress() != com.google.protobuf.ByteString.EMPTY) {
          setRecipientAddress(other.getRecipientAddress());
        }
        if (other.getAmount() != 0L) {
          setAmount(other.getAmount());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private com.google.protobuf.ByteString recipientAddress_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * bytes recipient_address = 1;
       * @return The recipientAddress.
       */
      public com.google.protobuf.ByteString getRecipientAddress() {
        return recipientAddress_;
      }
      /**
       * bytes recipient_address = 1;
       * @param value The recipientAddress to set.
       * @return This builder for chaining.
       */
      public Builder setRecipientAddress(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        recipientAddress_ = value;
        onChanged();
        return this;
      }
      /**
       * bytes recipient_address = 1;
       * @return This builder for chaining.
       */
      public Builder clearRecipientAddress() {
        
        recipientAddress_ = getDefaultInstance().getRecipientAddress();
        onChanged();
        return this;
      }

      private long amount_ ;
      /**
       * int64 amount = 2;
       * @return The amount.
       */
      public long getAmount() {
        return amount_;
      }
      /**
       * int64 amount = 2;
       * @param value The amount to set.
       * @return This builder for chaining.
       */
      public Builder setAmount(long value) {
        
        amount_ = value;
        onChanged();
        return this;
      }
      /**
       * int64 amount = 2;
       * @return This builder for chaining.
       */
      public Builder clearAmount() {
        
        amount_ = 0L;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:waves.PaymentTransactionData)
    }

    // @@protoc_insertion_point(class_scope:waves.PaymentTransactionData)
    private static final com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData();
    }

    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public PaymentTransactionData parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PaymentTransactionData(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.wavesplatform.protobuf.transaction.TransactionOuterClass.PaymentTransactionData getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface TransferTransactionDataOrBuilder extends
      // @@protoc_insertion_point(interface_extends:waves.TransferTransactionData)
      com.google.protobuf.MessageOrBuilder {

    /**
     * .waves.Recipient recipient = 1;
     * @return Whether the recipient field is set.
     */
    boolean hasRecipient();
    /**
     * .waves.Recipient recipient = 1;
     * @return The recipient.
     */
    com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient getRecipient();
    /**
     * .waves.Recipient recipient = 1;
     */
    com.wavesplatform.protobuf.transaction.RecipientOuterClass.RecipientOrBuilder getRecipientOrBuilder();

    /**
     * .waves.Amount amount = 2;
     * @return Whether the amount field is set.
     */
    boolean hasAmount();
    /**
     * .waves.Amount amount = 2;
     * @return The amount.
     */
    com.wavesplatform.protobuf.AmountOuterClass.Amount getAmount();
    /**
     * .waves.Amount amount = 2;
     */
    com.wavesplatform.protobuf.AmountOuterClass.AmountOrBuilder getAmountOrBuilder();

    /**
     * bytes attachment = 3;
     * @return The attachment.
     */
    com.google.protobuf.ByteString getAttachment();
  }
  /**
   * Protobuf type {@code waves.TransferTransactionData}
   */
  public  static final class TransferTransactionData extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:waves.TransferTransactionData)
      TransferTransactionDataOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use TransferTransactionData.newBuilder() to construct.
    private TransferTransactionData(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private TransferTransactionData() {
      attachment_ = com.google.protobuf.ByteString.EMPTY;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new TransferTransactionData();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private TransferTransactionData(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient.Builder subBuilder = null;
              if (recipient_ != null) {
                subBuilder = recipient_.toBuilder();
              }
              recipient_ = input.readMessage(com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(recipient_);
                recipient_ = subBuilder.buildPartial();
              }

              break;
            }
            case 18: {
              com.wavesplatform.protobuf.AmountOuterClass.Amount.Builder subBuilder = null;
              if (amount_ != null) {
                subBuilder = amount_.toBuilder();
              }
              amount_ = input.readMessage(com.wavesplatform.protobuf.AmountOuterClass.Amount.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(amount_);
                amount_ = subBuilder.buildPartial();
              }

              break;
            }
            case 26: {

              attachment_ = input.readBytes();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_TransferTransactionData_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_TransferTransactionData_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData.class, com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData.Builder.class);
    }

    public static final int RECIPIENT_FIELD_NUMBER = 1;
    private com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient recipient_;
    /**
     * .waves.Recipient recipient = 1;
     * @return Whether the recipient field is set.
     */
    public boolean hasRecipient() {
      return recipient_ != null;
    }
    /**
     * .waves.Recipient recipient = 1;
     * @return The recipient.
     */
    public com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient getRecipient() {
      return recipient_ == null ? com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient.getDefaultInstance() : recipient_;
    }
    /**
     * .waves.Recipient recipient = 1;
     */
    public com.wavesplatform.protobuf.transaction.RecipientOuterClass.RecipientOrBuilder getRecipientOrBuilder() {
      return getRecipient();
    }

    public static final int AMOUNT_FIELD_NUMBER = 2;
    private com.wavesplatform.protobuf.AmountOuterClass.Amount amount_;
    /**
     * .waves.Amount amount = 2;
     * @return Whether the amount field is set.
     */
    public boolean hasAmount() {
      return amount_ != null;
    }
    /**
     * .waves.Amount amount = 2;
     * @return The amount.
     */
    public com.wavesplatform.protobuf.AmountOuterClass.Amount getAmount() {
      return amount_ == null ? com.wavesplatform.protobuf.AmountOuterClass.Amount.getDefaultInstance() : amount_;
    }
    /**
     * .waves.Amount amount = 2;
     */
    public com.wavesplatform.protobuf.AmountOuterClass.AmountOrBuilder getAmountOrBuilder() {
      return getAmount();
    }

    public static final int ATTACHMENT_FIELD_NUMBER = 3;
    private com.google.protobuf.ByteString attachment_;
    /**
     * bytes attachment = 3;
     * @return The attachment.
     */
    public com.google.protobuf.ByteString getAttachment() {
      return attachment_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (recipient_ != null) {
        output.writeMessage(1, getRecipient());
      }
      if (amount_ != null) {
        output.writeMessage(2, getAmount());
      }
      if (!attachment_.isEmpty()) {
        output.writeBytes(3, attachment_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (recipient_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getRecipient());
      }
      if (amount_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getAmount());
      }
      if (!attachment_.isEmpty()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, attachment_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData)) {
        return super.equals(obj);
      }
      com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData other = (com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData) obj;

      if (hasRecipient() != other.hasRecipient()) return false;
      if (hasRecipient()) {
        if (!getRecipient()
            .equals(other.getRecipient())) return false;
      }
      if (hasAmount() != other.hasAmount()) return false;
      if (hasAmount()) {
        if (!getAmount()
            .equals(other.getAmount())) return false;
      }
      if (!getAttachment()
          .equals(other.getAttachment())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasRecipient()) {
        hash = (37 * hash) + RECIPIENT_FIELD_NUMBER;
        hash = (53 * hash) + getRecipient().hashCode();
      }
      if (hasAmount()) {
        hash = (37 * hash) + AMOUNT_FIELD_NUMBER;
        hash = (53 * hash) + getAmount().hashCode();
      }
      hash = (37 * hash) + ATTACHMENT_FIELD_NUMBER;
      hash = (53 * hash) + getAttachment().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code waves.TransferTransactionData}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:waves.TransferTransactionData)
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionDataOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_TransferTransactionData_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_TransferTransactionData_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData.class, com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData.Builder.class);
      }

      // Construct using com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (recipientBuilder_ == null) {
          recipient_ = null;
        } else {
          recipient_ = null;
          recipientBuilder_ = null;
        }
        if (amountBuilder_ == null) {
          amount_ = null;
        } else {
          amount_ = null;
          amountBuilder_ = null;
        }
        attachment_ = com.google.protobuf.ByteString.EMPTY;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_TransferTransactionData_descriptor;
      }

      @java.lang.Override
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData getDefaultInstanceForType() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData.getDefaultInstance();
      }

      @java.lang.Override
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData build() {
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData buildPartial() {
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData result = new com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData(this);
        if (recipientBuilder_ == null) {
          result.recipient_ = recipient_;
        } else {
          result.recipient_ = recipientBuilder_.build();
        }
        if (amountBuilder_ == null) {
          result.amount_ = amount_;
        } else {
          result.amount_ = amountBuilder_.build();
        }
        result.attachment_ = attachment_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData) {
          return mergeFrom((com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData other) {
        if (other == com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData.getDefaultInstance()) return this;
        if (other.hasRecipient()) {
          mergeRecipient(other.getRecipient());
        }
        if (other.hasAmount()) {
          mergeAmount(other.getAmount());
        }
        if (other.getAttachment() != com.google.protobuf.ByteString.EMPTY) {
          setAttachment(other.getAttachment());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient recipient_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient, com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient.Builder, com.wavesplatform.protobuf.transaction.RecipientOuterClass.RecipientOrBuilder> recipientBuilder_;
      /**
       * .waves.Recipient recipient = 1;
       * @return Whether the recipient field is set.
       */
      public boolean hasRecipient() {
        return recipientBuilder_ != null || recipient_ != null;
      }
      /**
       * .waves.Recipient recipient = 1;
       * @return The recipient.
       */
      public com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient getRecipient() {
        if (recipientBuilder_ == null) {
          return recipient_ == null ? com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient.getDefaultInstance() : recipient_;
        } else {
          return recipientBuilder_.getMessage();
        }
      }
      /**
       * .waves.Recipient recipient = 1;
       */
      public Builder setRecipient(com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient value) {
        if (recipientBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          recipient_ = value;
          onChanged();
        } else {
          recipientBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .waves.Recipient recipient = 1;
       */
      public Builder setRecipient(
          com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient.Builder builderForValue) {
        if (recipientBuilder_ == null) {
          recipient_ = builderForValue.build();
          onChanged();
        } else {
          recipientBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .waves.Recipient recipient = 1;
       */
      public Builder mergeRecipient(com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient value) {
        if (recipientBuilder_ == null) {
          if (recipient_ != null) {
            recipient_ =
              com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient.newBuilder(recipient_).mergeFrom(value).buildPartial();
          } else {
            recipient_ = value;
          }
          onChanged();
        } else {
          recipientBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .waves.Recipient recipient = 1;
       */
      public Builder clearRecipient() {
        if (recipientBuilder_ == null) {
          recipient_ = null;
          onChanged();
        } else {
          recipient_ = null;
          recipientBuilder_ = null;
        }

        return this;
      }
      /**
       * .waves.Recipient recipient = 1;
       */
      public com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient.Builder getRecipientBuilder() {
        
        onChanged();
        return getRecipientFieldBuilder().getBuilder();
      }
      /**
       * .waves.Recipient recipient = 1;
       */
      public com.wavesplatform.protobuf.transaction.RecipientOuterClass.RecipientOrBuilder getRecipientOrBuilder() {
        if (recipientBuilder_ != null) {
          return recipientBuilder_.getMessageOrBuilder();
        } else {
          return recipient_ == null ?
              com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient.getDefaultInstance() : recipient_;
        }
      }
      /**
       * .waves.Recipient recipient = 1;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient, com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient.Builder, com.wavesplatform.protobuf.transaction.RecipientOuterClass.RecipientOrBuilder> 
          getRecipientFieldBuilder() {
        if (recipientBuilder_ == null) {
          recipientBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient, com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient.Builder, com.wavesplatform.protobuf.transaction.RecipientOuterClass.RecipientOrBuilder>(
                  getRecipient(),
                  getParentForChildren(),
                  isClean());
          recipient_ = null;
        }
        return recipientBuilder_;
      }

      private com.wavesplatform.protobuf.AmountOuterClass.Amount amount_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.wavesplatform.protobuf.AmountOuterClass.Amount, com.wavesplatform.protobuf.AmountOuterClass.Amount.Builder, com.wavesplatform.protobuf.AmountOuterClass.AmountOrBuilder> amountBuilder_;
      /**
       * .waves.Amount amount = 2;
       * @return Whether the amount field is set.
       */
      public boolean hasAmount() {
        return amountBuilder_ != null || amount_ != null;
      }
      /**
       * .waves.Amount amount = 2;
       * @return The amount.
       */
      public com.wavesplatform.protobuf.AmountOuterClass.Amount getAmount() {
        if (amountBuilder_ == null) {
          return amount_ == null ? com.wavesplatform.protobuf.AmountOuterClass.Amount.getDefaultInstance() : amount_;
        } else {
          return amountBuilder_.getMessage();
        }
      }
      /**
       * .waves.Amount amount = 2;
       */
      public Builder setAmount(com.wavesplatform.protobuf.AmountOuterClass.Amount value) {
        if (amountBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          amount_ = value;
          onChanged();
        } else {
          amountBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .waves.Amount amount = 2;
       */
      public Builder setAmount(
          com.wavesplatform.protobuf.AmountOuterClass.Amount.Builder builderForValue) {
        if (amountBuilder_ == null) {
          amount_ = builderForValue.build();
          onChanged();
        } else {
          amountBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .waves.Amount amount = 2;
       */
      public Builder mergeAmount(com.wavesplatform.protobuf.AmountOuterClass.Amount value) {
        if (amountBuilder_ == null) {
          if (amount_ != null) {
            amount_ =
              com.wavesplatform.protobuf.AmountOuterClass.Amount.newBuilder(amount_).mergeFrom(value).buildPartial();
          } else {
            amount_ = value;
          }
          onChanged();
        } else {
          amountBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .waves.Amount amount = 2;
       */
      public Builder clearAmount() {
        if (amountBuilder_ == null) {
          amount_ = null;
          onChanged();
        } else {
          amount_ = null;
          amountBuilder_ = null;
        }

        return this;
      }
      /**
       * .waves.Amount amount = 2;
       */
      public com.wavesplatform.protobuf.AmountOuterClass.Amount.Builder getAmountBuilder() {
        
        onChanged();
        return getAmountFieldBuilder().getBuilder();
      }
      /**
       * .waves.Amount amount = 2;
       */
      public com.wavesplatform.protobuf.AmountOuterClass.AmountOrBuilder getAmountOrBuilder() {
        if (amountBuilder_ != null) {
          return amountBuilder_.getMessageOrBuilder();
        } else {
          return amount_ == null ?
              com.wavesplatform.protobuf.AmountOuterClass.Amount.getDefaultInstance() : amount_;
        }
      }
      /**
       * .waves.Amount amount = 2;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.wavesplatform.protobuf.AmountOuterClass.Amount, com.wavesplatform.protobuf.AmountOuterClass.Amount.Builder, com.wavesplatform.protobuf.AmountOuterClass.AmountOrBuilder> 
          getAmountFieldBuilder() {
        if (amountBuilder_ == null) {
          amountBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.wavesplatform.protobuf.AmountOuterClass.Amount, com.wavesplatform.protobuf.AmountOuterClass.Amount.Builder, com.wavesplatform.protobuf.AmountOuterClass.AmountOrBuilder>(
                  getAmount(),
                  getParentForChildren(),
                  isClean());
          amount_ = null;
        }
        return amountBuilder_;
      }

      private com.google.protobuf.ByteString attachment_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * bytes attachment = 3;
       * @return The attachment.
       */
      public com.google.protobuf.ByteString getAttachment() {
        return attachment_;
      }
      /**
       * bytes attachment = 3;
       * @param value The attachment to set.
       * @return This builder for chaining.
       */
      public Builder setAttachment(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        attachment_ = value;
        onChanged();
        return this;
      }
      /**
       * bytes attachment = 3;
       * @return This builder for chaining.
       */
      public Builder clearAttachment() {
        
        attachment_ = getDefaultInstance().getAttachment();
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:waves.TransferTransactionData)
    }

    // @@protoc_insertion_point(class_scope:waves.TransferTransactionData)
    private static final com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData();
    }

    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public TransferTransactionData parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new TransferTransactionData(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.wavesplatform.protobuf.transaction.TransactionOuterClass.TransferTransactionData getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface CreateAliasTransactionDataOrBuilder extends
      // @@protoc_insertion_point(interface_extends:waves.CreateAliasTransactionData)
      com.google.protobuf.MessageOrBuilder {

    /**
     * string alias = 1;
     * @return The alias.
     */
    java.lang.String getAlias();
    /**
     * string alias = 1;
     * @return The bytes for alias.
     */
    com.google.protobuf.ByteString
        getAliasBytes();
  }
  /**
   * Protobuf type {@code waves.CreateAliasTransactionData}
   */
  public  static final class CreateAliasTransactionData extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:waves.CreateAliasTransactionData)
      CreateAliasTransactionDataOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use CreateAliasTransactionData.newBuilder() to construct.
    private CreateAliasTransactionData(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private CreateAliasTransactionData() {
      alias_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new CreateAliasTransactionData();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private CreateAliasTransactionData(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              java.lang.String s = input.readStringRequireUtf8();

              alias_ = s;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_CreateAliasTransactionData_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_CreateAliasTransactionData_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData.class, com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData.Builder.class);
    }

    public static final int ALIAS_FIELD_NUMBER = 1;
    private volatile java.lang.Object alias_;
    /**
     * string alias = 1;
     * @return The alias.
     */
    public java.lang.String getAlias() {
      java.lang.Object ref = alias_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        alias_ = s;
        return s;
      }
    }
    /**
     * string alias = 1;
     * @return The bytes for alias.
     */
    public com.google.protobuf.ByteString
        getAliasBytes() {
      java.lang.Object ref = alias_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        alias_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!getAliasBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, alias_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!getAliasBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, alias_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData)) {
        return super.equals(obj);
      }
      com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData other = (com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData) obj;

      if (!getAlias()
          .equals(other.getAlias())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + ALIAS_FIELD_NUMBER;
      hash = (53 * hash) + getAlias().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code waves.CreateAliasTransactionData}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:waves.CreateAliasTransactionData)
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionDataOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_CreateAliasTransactionData_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_CreateAliasTransactionData_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData.class, com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData.Builder.class);
      }

      // Construct using com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        alias_ = "";

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_CreateAliasTransactionData_descriptor;
      }

      @java.lang.Override
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData getDefaultInstanceForType() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData.getDefaultInstance();
      }

      @java.lang.Override
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData build() {
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData buildPartial() {
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData result = new com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData(this);
        result.alias_ = alias_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData) {
          return mergeFrom((com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData other) {
        if (other == com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData.getDefaultInstance()) return this;
        if (!other.getAlias().isEmpty()) {
          alias_ = other.alias_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private java.lang.Object alias_ = "";
      /**
       * string alias = 1;
       * @return The alias.
       */
      public java.lang.String getAlias() {
        java.lang.Object ref = alias_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          alias_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string alias = 1;
       * @return The bytes for alias.
       */
      public com.google.protobuf.ByteString
          getAliasBytes() {
        java.lang.Object ref = alias_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          alias_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string alias = 1;
       * @param value The alias to set.
       * @return This builder for chaining.
       */
      public Builder setAlias(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        alias_ = value;
        onChanged();
        return this;
      }
      /**
       * string alias = 1;
       * @return This builder for chaining.
       */
      public Builder clearAlias() {
        
        alias_ = getDefaultInstance().getAlias();
        onChanged();
        return this;
      }
      /**
       * string alias = 1;
       * @param value The bytes for alias to set.
       * @return This builder for chaining.
       */
      public Builder setAliasBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        alias_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:waves.CreateAliasTransactionData)
    }

    // @@protoc_insertion_point(class_scope:waves.CreateAliasTransactionData)
    private static final com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData();
    }

    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public CreateAliasTransactionData parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CreateAliasTransactionData(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.wavesplatform.protobuf.transaction.TransactionOuterClass.CreateAliasTransactionData getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface DataTransactionDataOrBuilder extends
      // @@protoc_insertion_point(interface_extends:waves.DataTransactionData)
      com.google.protobuf.MessageOrBuilder {

    /**
     * repeated .waves.DataTransactionData.DataEntry data = 1;
     */
    java.util.List 
        getDataList();
    /**
     * repeated .waves.DataTransactionData.DataEntry data = 1;
     */
    com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntry getData(int index);
    /**
     * repeated .waves.DataTransactionData.DataEntry data = 1;
     */
    int getDataCount();
    /**
     * repeated .waves.DataTransactionData.DataEntry data = 1;
     */
    java.util.List 
        getDataOrBuilderList();
    /**
     * repeated .waves.DataTransactionData.DataEntry data = 1;
     */
    com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntryOrBuilder getDataOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code waves.DataTransactionData}
   */
  public  static final class DataTransactionData extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:waves.DataTransactionData)
      DataTransactionDataOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use DataTransactionData.newBuilder() to construct.
    private DataTransactionData(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private DataTransactionData() {
      data_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new DataTransactionData();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private DataTransactionData(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                data_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              data_.add(
                  input.readMessage(com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntry.parser(), extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          data_ = java.util.Collections.unmodifiableList(data_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_DataTransactionData_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_DataTransactionData_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.class, com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.Builder.class);
    }

    public interface DataEntryOrBuilder extends
        // @@protoc_insertion_point(interface_extends:waves.DataTransactionData.DataEntry)
        com.google.protobuf.MessageOrBuilder {

      /**
       * string key = 1;
       * @return The key.
       */
      java.lang.String getKey();
      /**
       * string key = 1;
       * @return The bytes for key.
       */
      com.google.protobuf.ByteString
          getKeyBytes();

      /**
       * int64 int_value = 10;
       * @return The intValue.
       */
      long getIntValue();

      /**
       * bool bool_value = 11;
       * @return The boolValue.
       */
      boolean getBoolValue();

      /**
       * bytes binary_value = 12;
       * @return The binaryValue.
       */
      com.google.protobuf.ByteString getBinaryValue();

      /**
       * string string_value = 13;
       * @return The stringValue.
       */
      java.lang.String getStringValue();
      /**
       * string string_value = 13;
       * @return The bytes for stringValue.
       */
      com.google.protobuf.ByteString
          getStringValueBytes();

      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntry.ValueCase getValueCase();
    }
    /**
     * Protobuf type {@code waves.DataTransactionData.DataEntry}
     */
    public  static final class DataEntry extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:waves.DataTransactionData.DataEntry)
        DataEntryOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use DataEntry.newBuilder() to construct.
      private DataEntry(com.google.protobuf.GeneratedMessageV3.Builder builder) {
        super(builder);
      }
      private DataEntry() {
        key_ = "";
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new DataEntry();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      private DataEntry(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                java.lang.String s = input.readStringRequireUtf8();

                key_ = s;
                break;
              }
              case 80: {
                valueCase_ = 10;
                value_ = input.readInt64();
                break;
              }
              case 88: {
                valueCase_ = 11;
                value_ = input.readBool();
                break;
              }
              case 98: {
                valueCase_ = 12;
                value_ = input.readBytes();
                break;
              }
              case 106: {
                java.lang.String s = input.readStringRequireUtf8();
                valueCase_ = 13;
                value_ = s;
                break;
              }
              default: {
                if (!parseUnknownField(
                    input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_DataTransactionData_DataEntry_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_DataTransactionData_DataEntry_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntry.class, com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntry.Builder.class);
      }

      private int valueCase_ = 0;
      private java.lang.Object value_;
      public enum ValueCase
          implements com.google.protobuf.Internal.EnumLite,
              com.google.protobuf.AbstractMessage.InternalOneOfEnum {
        INT_VALUE(10),
        BOOL_VALUE(11),
        BINARY_VALUE(12),
        STRING_VALUE(13),
        VALUE_NOT_SET(0);
        private final int value;
        private ValueCase(int value) {
          this.value = 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 ValueCase valueOf(int value) {
          return forNumber(value);
        }

        public static ValueCase forNumber(int value) {
          switch (value) {
            case 10: return INT_VALUE;
            case 11: return BOOL_VALUE;
            case 12: return BINARY_VALUE;
            case 13: return STRING_VALUE;
            case 0: return VALUE_NOT_SET;
            default: return null;
          }
        }
        public int getNumber() {
          return this.value;
        }
      };

      public ValueCase
      getValueCase() {
        return ValueCase.forNumber(
            valueCase_);
      }

      public static final int KEY_FIELD_NUMBER = 1;
      private volatile java.lang.Object key_;
      /**
       * string key = 1;
       * @return The key.
       */
      public java.lang.String getKey() {
        java.lang.Object ref = key_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          key_ = s;
          return s;
        }
      }
      /**
       * string key = 1;
       * @return The bytes for key.
       */
      public com.google.protobuf.ByteString
          getKeyBytes() {
        java.lang.Object ref = key_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          key_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int INT_VALUE_FIELD_NUMBER = 10;
      /**
       * int64 int_value = 10;
       * @return The intValue.
       */
      public long getIntValue() {
        if (valueCase_ == 10) {
          return (java.lang.Long) value_;
        }
        return 0L;
      }

      public static final int BOOL_VALUE_FIELD_NUMBER = 11;
      /**
       * bool bool_value = 11;
       * @return The boolValue.
       */
      public boolean getBoolValue() {
        if (valueCase_ == 11) {
          return (java.lang.Boolean) value_;
        }
        return false;
      }

      public static final int BINARY_VALUE_FIELD_NUMBER = 12;
      /**
       * bytes binary_value = 12;
       * @return The binaryValue.
       */
      public com.google.protobuf.ByteString getBinaryValue() {
        if (valueCase_ == 12) {
          return (com.google.protobuf.ByteString) value_;
        }
        return com.google.protobuf.ByteString.EMPTY;
      }

      public static final int STRING_VALUE_FIELD_NUMBER = 13;
      /**
       * string string_value = 13;
       * @return The stringValue.
       */
      public java.lang.String getStringValue() {
        java.lang.Object ref = "";
        if (valueCase_ == 13) {
          ref = value_;
        }
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (valueCase_ == 13) {
            value_ = s;
          }
          return s;
        }
      }
      /**
       * string string_value = 13;
       * @return The bytes for stringValue.
       */
      public com.google.protobuf.ByteString
          getStringValueBytes() {
        java.lang.Object ref = "";
        if (valueCase_ == 13) {
          ref = value_;
        }
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          if (valueCase_ == 13) {
            value_ = b;
          }
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (!getKeyBytes().isEmpty()) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 1, key_);
        }
        if (valueCase_ == 10) {
          output.writeInt64(
              10, (long)((java.lang.Long) value_));
        }
        if (valueCase_ == 11) {
          output.writeBool(
              11, (boolean)((java.lang.Boolean) value_));
        }
        if (valueCase_ == 12) {
          output.writeBytes(
              12, (com.google.protobuf.ByteString) value_);
        }
        if (valueCase_ == 13) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 13, value_);
        }
        unknownFields.writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (!getKeyBytes().isEmpty()) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, key_);
        }
        if (valueCase_ == 10) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(
                10, (long)((java.lang.Long) value_));
        }
        if (valueCase_ == 11) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(
                11, (boolean)((java.lang.Boolean) value_));
        }
        if (valueCase_ == 12) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(
                12, (com.google.protobuf.ByteString) value_);
        }
        if (valueCase_ == 13) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(13, value_);
        }
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntry)) {
          return super.equals(obj);
        }
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntry other = (com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntry) obj;

        if (!getKey()
            .equals(other.getKey())) return false;
        if (!getValueCase().equals(other.getValueCase())) return false;
        switch (valueCase_) {
          case 10:
            if (getIntValue()
                != other.getIntValue()) return false;
            break;
          case 11:
            if (getBoolValue()
                != other.getBoolValue()) return false;
            break;
          case 12:
            if (!getBinaryValue()
                .equals(other.getBinaryValue())) return false;
            break;
          case 13:
            if (!getStringValue()
                .equals(other.getStringValue())) return false;
            break;
          case 0:
          default:
        }
        if (!unknownFields.equals(other.unknownFields)) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (37 * hash) + KEY_FIELD_NUMBER;
        hash = (53 * hash) + getKey().hashCode();
        switch (valueCase_) {
          case 10:
            hash = (37 * hash) + INT_VALUE_FIELD_NUMBER;
            hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
                getIntValue());
            break;
          case 11:
            hash = (37 * hash) + BOOL_VALUE_FIELD_NUMBER;
            hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
                getBoolValue());
            break;
          case 12:
            hash = (37 * hash) + BINARY_VALUE_FIELD_NUMBER;
            hash = (53 * hash) + getBinaryValue().hashCode();
            break;
          case 13:
            hash = (37 * hash) + STRING_VALUE_FIELD_NUMBER;
            hash = (53 * hash) + getStringValue().hashCode();
            break;
          case 0:
          default:
        }
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntry parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntry parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntry parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntry parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntry parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntry parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntry parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntry parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntry parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntry parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntry parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntry parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntry prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code waves.DataTransactionData.DataEntry}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder implements
          // @@protoc_insertion_point(builder_implements:waves.DataTransactionData.DataEntry)
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntryOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_DataTransactionData_DataEntry_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_DataTransactionData_DataEntry_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntry.class, com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntry.Builder.class);
        }

        // Construct using com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntry.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
          }
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          key_ = "";

          valueCase_ = 0;
          value_ = null;
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_DataTransactionData_DataEntry_descriptor;
        }

        @java.lang.Override
        public com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntry getDefaultInstanceForType() {
          return com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntry.getDefaultInstance();
        }

        @java.lang.Override
        public com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntry build() {
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntry result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntry buildPartial() {
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntry result = new com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntry(this);
          result.key_ = key_;
          if (valueCase_ == 10) {
            result.value_ = value_;
          }
          if (valueCase_ == 11) {
            result.value_ = value_;
          }
          if (valueCase_ == 12) {
            result.value_ = value_;
          }
          if (valueCase_ == 13) {
            result.value_ = value_;
          }
          result.valueCase_ = valueCase_;
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntry) {
            return mergeFrom((com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntry)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntry other) {
          if (other == com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntry.getDefaultInstance()) return this;
          if (!other.getKey().isEmpty()) {
            key_ = other.key_;
            onChanged();
          }
          switch (other.getValueCase()) {
            case INT_VALUE: {
              setIntValue(other.getIntValue());
              break;
            }
            case BOOL_VALUE: {
              setBoolValue(other.getBoolValue());
              break;
            }
            case BINARY_VALUE: {
              setBinaryValue(other.getBinaryValue());
              break;
            }
            case STRING_VALUE: {
              valueCase_ = 13;
              value_ = other.value_;
              onChanged();
              break;
            }
            case VALUE_NOT_SET: {
              break;
            }
          }
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntry parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntry) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int valueCase_ = 0;
        private java.lang.Object value_;
        public ValueCase
            getValueCase() {
          return ValueCase.forNumber(
              valueCase_);
        }

        public Builder clearValue() {
          valueCase_ = 0;
          value_ = null;
          onChanged();
          return this;
        }


        private java.lang.Object key_ = "";
        /**
         * string key = 1;
         * @return The key.
         */
        public java.lang.String getKey() {
          java.lang.Object ref = key_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            key_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * string key = 1;
         * @return The bytes for key.
         */
        public com.google.protobuf.ByteString
            getKeyBytes() {
          java.lang.Object ref = key_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            key_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * string key = 1;
         * @param value The key to set.
         * @return This builder for chaining.
         */
        public Builder setKey(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  
          key_ = value;
          onChanged();
          return this;
        }
        /**
         * string key = 1;
         * @return This builder for chaining.
         */
        public Builder clearKey() {
          
          key_ = getDefaultInstance().getKey();
          onChanged();
          return this;
        }
        /**
         * string key = 1;
         * @param value The bytes for key to set.
         * @return This builder for chaining.
         */
        public Builder setKeyBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
          
          key_ = value;
          onChanged();
          return this;
        }

        /**
         * int64 int_value = 10;
         * @return The intValue.
         */
        public long getIntValue() {
          if (valueCase_ == 10) {
            return (java.lang.Long) value_;
          }
          return 0L;
        }
        /**
         * int64 int_value = 10;
         * @param value The intValue to set.
         * @return This builder for chaining.
         */
        public Builder setIntValue(long value) {
          valueCase_ = 10;
          value_ = value;
          onChanged();
          return this;
        }
        /**
         * int64 int_value = 10;
         * @return This builder for chaining.
         */
        public Builder clearIntValue() {
          if (valueCase_ == 10) {
            valueCase_ = 0;
            value_ = null;
            onChanged();
          }
          return this;
        }

        /**
         * bool bool_value = 11;
         * @return The boolValue.
         */
        public boolean getBoolValue() {
          if (valueCase_ == 11) {
            return (java.lang.Boolean) value_;
          }
          return false;
        }
        /**
         * bool bool_value = 11;
         * @param value The boolValue to set.
         * @return This builder for chaining.
         */
        public Builder setBoolValue(boolean value) {
          valueCase_ = 11;
          value_ = value;
          onChanged();
          return this;
        }
        /**
         * bool bool_value = 11;
         * @return This builder for chaining.
         */
        public Builder clearBoolValue() {
          if (valueCase_ == 11) {
            valueCase_ = 0;
            value_ = null;
            onChanged();
          }
          return this;
        }

        /**
         * bytes binary_value = 12;
         * @return The binaryValue.
         */
        public com.google.protobuf.ByteString getBinaryValue() {
          if (valueCase_ == 12) {
            return (com.google.protobuf.ByteString) value_;
          }
          return com.google.protobuf.ByteString.EMPTY;
        }
        /**
         * bytes binary_value = 12;
         * @param value The binaryValue to set.
         * @return This builder for chaining.
         */
        public Builder setBinaryValue(com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  valueCase_ = 12;
          value_ = value;
          onChanged();
          return this;
        }
        /**
         * bytes binary_value = 12;
         * @return This builder for chaining.
         */
        public Builder clearBinaryValue() {
          if (valueCase_ == 12) {
            valueCase_ = 0;
            value_ = null;
            onChanged();
          }
          return this;
        }

        /**
         * string string_value = 13;
         * @return The stringValue.
         */
        public java.lang.String getStringValue() {
          java.lang.Object ref = "";
          if (valueCase_ == 13) {
            ref = value_;
          }
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            if (valueCase_ == 13) {
              value_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * string string_value = 13;
         * @return The bytes for stringValue.
         */
        public com.google.protobuf.ByteString
            getStringValueBytes() {
          java.lang.Object ref = "";
          if (valueCase_ == 13) {
            ref = value_;
          }
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            if (valueCase_ == 13) {
              value_ = b;
            }
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * string string_value = 13;
         * @param value The stringValue to set.
         * @return This builder for chaining.
         */
        public Builder setStringValue(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  valueCase_ = 13;
          value_ = value;
          onChanged();
          return this;
        }
        /**
         * string string_value = 13;
         * @return This builder for chaining.
         */
        public Builder clearStringValue() {
          if (valueCase_ == 13) {
            valueCase_ = 0;
            value_ = null;
            onChanged();
          }
          return this;
        }
        /**
         * string string_value = 13;
         * @param value The bytes for stringValue to set.
         * @return This builder for chaining.
         */
        public Builder setStringValueBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
          valueCase_ = 13;
          value_ = value;
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:waves.DataTransactionData.DataEntry)
      }

      // @@protoc_insertion_point(class_scope:waves.DataTransactionData.DataEntry)
      private static final com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntry DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntry();
      }

      public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntry getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser
          PARSER = new com.google.protobuf.AbstractParser() {
        @java.lang.Override
        public DataEntry parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new DataEntry(input, extensionRegistry);
        }
      };

      public static com.google.protobuf.Parser parser() {
        return PARSER;
      }

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntry getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public static final int DATA_FIELD_NUMBER = 1;
    private java.util.List data_;
    /**
     * repeated .waves.DataTransactionData.DataEntry data = 1;
     */
    public java.util.List getDataList() {
      return data_;
    }
    /**
     * repeated .waves.DataTransactionData.DataEntry data = 1;
     */
    public java.util.List 
        getDataOrBuilderList() {
      return data_;
    }
    /**
     * repeated .waves.DataTransactionData.DataEntry data = 1;
     */
    public int getDataCount() {
      return data_.size();
    }
    /**
     * repeated .waves.DataTransactionData.DataEntry data = 1;
     */
    public com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntry getData(int index) {
      return data_.get(index);
    }
    /**
     * repeated .waves.DataTransactionData.DataEntry data = 1;
     */
    public com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntryOrBuilder getDataOrBuilder(
        int index) {
      return data_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < data_.size(); i++) {
        output.writeMessage(1, data_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < data_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, data_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData)) {
        return super.equals(obj);
      }
      com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData other = (com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData) obj;

      if (!getDataList()
          .equals(other.getDataList())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getDataCount() > 0) {
        hash = (37 * hash) + DATA_FIELD_NUMBER;
        hash = (53 * hash) + getDataList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code waves.DataTransactionData}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:waves.DataTransactionData)
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionDataOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_DataTransactionData_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_DataTransactionData_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.class, com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.Builder.class);
      }

      // Construct using com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getDataFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (dataBuilder_ == null) {
          data_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          dataBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_DataTransactionData_descriptor;
      }

      @java.lang.Override
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData getDefaultInstanceForType() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.getDefaultInstance();
      }

      @java.lang.Override
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData build() {
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData buildPartial() {
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData result = new com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData(this);
        int from_bitField0_ = bitField0_;
        if (dataBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            data_ = java.util.Collections.unmodifiableList(data_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.data_ = data_;
        } else {
          result.data_ = dataBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData) {
          return mergeFrom((com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData other) {
        if (other == com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.getDefaultInstance()) return this;
        if (dataBuilder_ == null) {
          if (!other.data_.isEmpty()) {
            if (data_.isEmpty()) {
              data_ = other.data_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureDataIsMutable();
              data_.addAll(other.data_);
            }
            onChanged();
          }
        } else {
          if (!other.data_.isEmpty()) {
            if (dataBuilder_.isEmpty()) {
              dataBuilder_.dispose();
              dataBuilder_ = null;
              data_ = other.data_;
              bitField0_ = (bitField0_ & ~0x00000001);
              dataBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getDataFieldBuilder() : null;
            } else {
              dataBuilder_.addAllMessages(other.data_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.util.List data_ =
        java.util.Collections.emptyList();
      private void ensureDataIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          data_ = new java.util.ArrayList(data_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntry, com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntry.Builder, com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntryOrBuilder> dataBuilder_;

      /**
       * repeated .waves.DataTransactionData.DataEntry data = 1;
       */
      public java.util.List getDataList() {
        if (dataBuilder_ == null) {
          return java.util.Collections.unmodifiableList(data_);
        } else {
          return dataBuilder_.getMessageList();
        }
      }
      /**
       * repeated .waves.DataTransactionData.DataEntry data = 1;
       */
      public int getDataCount() {
        if (dataBuilder_ == null) {
          return data_.size();
        } else {
          return dataBuilder_.getCount();
        }
      }
      /**
       * repeated .waves.DataTransactionData.DataEntry data = 1;
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntry getData(int index) {
        if (dataBuilder_ == null) {
          return data_.get(index);
        } else {
          return dataBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .waves.DataTransactionData.DataEntry data = 1;
       */
      public Builder setData(
          int index, com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntry value) {
        if (dataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDataIsMutable();
          data_.set(index, value);
          onChanged();
        } else {
          dataBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .waves.DataTransactionData.DataEntry data = 1;
       */
      public Builder setData(
          int index, com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntry.Builder builderForValue) {
        if (dataBuilder_ == null) {
          ensureDataIsMutable();
          data_.set(index, builderForValue.build());
          onChanged();
        } else {
          dataBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .waves.DataTransactionData.DataEntry data = 1;
       */
      public Builder addData(com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntry value) {
        if (dataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDataIsMutable();
          data_.add(value);
          onChanged();
        } else {
          dataBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .waves.DataTransactionData.DataEntry data = 1;
       */
      public Builder addData(
          int index, com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntry value) {
        if (dataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDataIsMutable();
          data_.add(index, value);
          onChanged();
        } else {
          dataBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .waves.DataTransactionData.DataEntry data = 1;
       */
      public Builder addData(
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntry.Builder builderForValue) {
        if (dataBuilder_ == null) {
          ensureDataIsMutable();
          data_.add(builderForValue.build());
          onChanged();
        } else {
          dataBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .waves.DataTransactionData.DataEntry data = 1;
       */
      public Builder addData(
          int index, com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntry.Builder builderForValue) {
        if (dataBuilder_ == null) {
          ensureDataIsMutable();
          data_.add(index, builderForValue.build());
          onChanged();
        } else {
          dataBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .waves.DataTransactionData.DataEntry data = 1;
       */
      public Builder addAllData(
          java.lang.Iterable values) {
        if (dataBuilder_ == null) {
          ensureDataIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, data_);
          onChanged();
        } else {
          dataBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .waves.DataTransactionData.DataEntry data = 1;
       */
      public Builder clearData() {
        if (dataBuilder_ == null) {
          data_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          dataBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .waves.DataTransactionData.DataEntry data = 1;
       */
      public Builder removeData(int index) {
        if (dataBuilder_ == null) {
          ensureDataIsMutable();
          data_.remove(index);
          onChanged();
        } else {
          dataBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .waves.DataTransactionData.DataEntry data = 1;
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntry.Builder getDataBuilder(
          int index) {
        return getDataFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .waves.DataTransactionData.DataEntry data = 1;
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntryOrBuilder getDataOrBuilder(
          int index) {
        if (dataBuilder_ == null) {
          return data_.get(index);  } else {
          return dataBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .waves.DataTransactionData.DataEntry data = 1;
       */
      public java.util.List 
           getDataOrBuilderList() {
        if (dataBuilder_ != null) {
          return dataBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(data_);
        }
      }
      /**
       * repeated .waves.DataTransactionData.DataEntry data = 1;
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntry.Builder addDataBuilder() {
        return getDataFieldBuilder().addBuilder(
            com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntry.getDefaultInstance());
      }
      /**
       * repeated .waves.DataTransactionData.DataEntry data = 1;
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntry.Builder addDataBuilder(
          int index) {
        return getDataFieldBuilder().addBuilder(
            index, com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntry.getDefaultInstance());
      }
      /**
       * repeated .waves.DataTransactionData.DataEntry data = 1;
       */
      public java.util.List 
           getDataBuilderList() {
        return getDataFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntry, com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntry.Builder, com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntryOrBuilder> 
          getDataFieldBuilder() {
        if (dataBuilder_ == null) {
          dataBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntry, com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntry.Builder, com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData.DataEntryOrBuilder>(
                  data_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          data_ = null;
        }
        return dataBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:waves.DataTransactionData)
    }

    // @@protoc_insertion_point(class_scope:waves.DataTransactionData)
    private static final com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData();
    }

    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public DataTransactionData parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new DataTransactionData(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.wavesplatform.protobuf.transaction.TransactionOuterClass.DataTransactionData getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface MassTransferTransactionDataOrBuilder extends
      // @@protoc_insertion_point(interface_extends:waves.MassTransferTransactionData)
      com.google.protobuf.MessageOrBuilder {

    /**
     * bytes asset_id = 1;
     * @return The assetId.
     */
    com.google.protobuf.ByteString getAssetId();

    /**
     * repeated .waves.MassTransferTransactionData.Transfer transfers = 2;
     */
    java.util.List 
        getTransfersList();
    /**
     * repeated .waves.MassTransferTransactionData.Transfer transfers = 2;
     */
    com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Transfer getTransfers(int index);
    /**
     * repeated .waves.MassTransferTransactionData.Transfer transfers = 2;
     */
    int getTransfersCount();
    /**
     * repeated .waves.MassTransferTransactionData.Transfer transfers = 2;
     */
    java.util.List 
        getTransfersOrBuilderList();
    /**
     * repeated .waves.MassTransferTransactionData.Transfer transfers = 2;
     */
    com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.TransferOrBuilder getTransfersOrBuilder(
        int index);

    /**
     * bytes attachment = 3;
     * @return The attachment.
     */
    com.google.protobuf.ByteString getAttachment();
  }
  /**
   * Protobuf type {@code waves.MassTransferTransactionData}
   */
  public  static final class MassTransferTransactionData extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:waves.MassTransferTransactionData)
      MassTransferTransactionDataOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use MassTransferTransactionData.newBuilder() to construct.
    private MassTransferTransactionData(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private MassTransferTransactionData() {
      assetId_ = com.google.protobuf.ByteString.EMPTY;
      transfers_ = java.util.Collections.emptyList();
      attachment_ = com.google.protobuf.ByteString.EMPTY;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new MassTransferTransactionData();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private MassTransferTransactionData(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {

              assetId_ = input.readBytes();
              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                transfers_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              transfers_.add(
                  input.readMessage(com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Transfer.parser(), extensionRegistry));
              break;
            }
            case 26: {

              attachment_ = input.readBytes();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          transfers_ = java.util.Collections.unmodifiableList(transfers_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_MassTransferTransactionData_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_MassTransferTransactionData_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.class, com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Builder.class);
    }

    public interface TransferOrBuilder extends
        // @@protoc_insertion_point(interface_extends:waves.MassTransferTransactionData.Transfer)
        com.google.protobuf.MessageOrBuilder {

      /**
       * .waves.Recipient recipient = 1;
       * @return Whether the recipient field is set.
       */
      boolean hasRecipient();
      /**
       * .waves.Recipient recipient = 1;
       * @return The recipient.
       */
      com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient getRecipient();
      /**
       * .waves.Recipient recipient = 1;
       */
      com.wavesplatform.protobuf.transaction.RecipientOuterClass.RecipientOrBuilder getRecipientOrBuilder();

      /**
       * int64 amount = 2;
       * @return The amount.
       */
      long getAmount();
    }
    /**
     * Protobuf type {@code waves.MassTransferTransactionData.Transfer}
     */
    public  static final class Transfer extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:waves.MassTransferTransactionData.Transfer)
        TransferOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Transfer.newBuilder() to construct.
      private Transfer(com.google.protobuf.GeneratedMessageV3.Builder builder) {
        super(builder);
      }
      private Transfer() {
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Transfer();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      private Transfer(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient.Builder subBuilder = null;
                if (recipient_ != null) {
                  subBuilder = recipient_.toBuilder();
                }
                recipient_ = input.readMessage(com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient.parser(), extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(recipient_);
                  recipient_ = subBuilder.buildPartial();
                }

                break;
              }
              case 16: {

                amount_ = input.readInt64();
                break;
              }
              default: {
                if (!parseUnknownField(
                    input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_MassTransferTransactionData_Transfer_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_MassTransferTransactionData_Transfer_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Transfer.class, com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Transfer.Builder.class);
      }

      public static final int RECIPIENT_FIELD_NUMBER = 1;
      private com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient recipient_;
      /**
       * .waves.Recipient recipient = 1;
       * @return Whether the recipient field is set.
       */
      public boolean hasRecipient() {
        return recipient_ != null;
      }
      /**
       * .waves.Recipient recipient = 1;
       * @return The recipient.
       */
      public com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient getRecipient() {
        return recipient_ == null ? com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient.getDefaultInstance() : recipient_;
      }
      /**
       * .waves.Recipient recipient = 1;
       */
      public com.wavesplatform.protobuf.transaction.RecipientOuterClass.RecipientOrBuilder getRecipientOrBuilder() {
        return getRecipient();
      }

      public static final int AMOUNT_FIELD_NUMBER = 2;
      private long amount_;
      /**
       * int64 amount = 2;
       * @return The amount.
       */
      public long getAmount() {
        return amount_;
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (recipient_ != null) {
          output.writeMessage(1, getRecipient());
        }
        if (amount_ != 0L) {
          output.writeInt64(2, amount_);
        }
        unknownFields.writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (recipient_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getRecipient());
        }
        if (amount_ != 0L) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(2, amount_);
        }
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Transfer)) {
          return super.equals(obj);
        }
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Transfer other = (com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Transfer) obj;

        if (hasRecipient() != other.hasRecipient()) return false;
        if (hasRecipient()) {
          if (!getRecipient()
              .equals(other.getRecipient())) return false;
        }
        if (getAmount()
            != other.getAmount()) return false;
        if (!unknownFields.equals(other.unknownFields)) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasRecipient()) {
          hash = (37 * hash) + RECIPIENT_FIELD_NUMBER;
          hash = (53 * hash) + getRecipient().hashCode();
        }
        hash = (37 * hash) + AMOUNT_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getAmount());
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Transfer parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Transfer parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Transfer parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Transfer parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Transfer parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Transfer parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Transfer parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Transfer parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Transfer parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Transfer parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Transfer parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Transfer parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Transfer prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code waves.MassTransferTransactionData.Transfer}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder implements
          // @@protoc_insertion_point(builder_implements:waves.MassTransferTransactionData.Transfer)
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.TransferOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_MassTransferTransactionData_Transfer_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_MassTransferTransactionData_Transfer_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Transfer.class, com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Transfer.Builder.class);
        }

        // Construct using com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Transfer.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
          }
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          if (recipientBuilder_ == null) {
            recipient_ = null;
          } else {
            recipient_ = null;
            recipientBuilder_ = null;
          }
          amount_ = 0L;

          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_MassTransferTransactionData_Transfer_descriptor;
        }

        @java.lang.Override
        public com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Transfer getDefaultInstanceForType() {
          return com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Transfer.getDefaultInstance();
        }

        @java.lang.Override
        public com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Transfer build() {
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Transfer result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Transfer buildPartial() {
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Transfer result = new com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Transfer(this);
          if (recipientBuilder_ == null) {
            result.recipient_ = recipient_;
          } else {
            result.recipient_ = recipientBuilder_.build();
          }
          result.amount_ = amount_;
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Transfer) {
            return mergeFrom((com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Transfer)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Transfer other) {
          if (other == com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Transfer.getDefaultInstance()) return this;
          if (other.hasRecipient()) {
            mergeRecipient(other.getRecipient());
          }
          if (other.getAmount() != 0L) {
            setAmount(other.getAmount());
          }
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Transfer parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Transfer) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }

        private com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient recipient_;
        private com.google.protobuf.SingleFieldBuilderV3<
            com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient, com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient.Builder, com.wavesplatform.protobuf.transaction.RecipientOuterClass.RecipientOrBuilder> recipientBuilder_;
        /**
         * .waves.Recipient recipient = 1;
         * @return Whether the recipient field is set.
         */
        public boolean hasRecipient() {
          return recipientBuilder_ != null || recipient_ != null;
        }
        /**
         * .waves.Recipient recipient = 1;
         * @return The recipient.
         */
        public com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient getRecipient() {
          if (recipientBuilder_ == null) {
            return recipient_ == null ? com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient.getDefaultInstance() : recipient_;
          } else {
            return recipientBuilder_.getMessage();
          }
        }
        /**
         * .waves.Recipient recipient = 1;
         */
        public Builder setRecipient(com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient value) {
          if (recipientBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            recipient_ = value;
            onChanged();
          } else {
            recipientBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         * .waves.Recipient recipient = 1;
         */
        public Builder setRecipient(
            com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient.Builder builderForValue) {
          if (recipientBuilder_ == null) {
            recipient_ = builderForValue.build();
            onChanged();
          } else {
            recipientBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         * .waves.Recipient recipient = 1;
         */
        public Builder mergeRecipient(com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient value) {
          if (recipientBuilder_ == null) {
            if (recipient_ != null) {
              recipient_ =
                com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient.newBuilder(recipient_).mergeFrom(value).buildPartial();
            } else {
              recipient_ = value;
            }
            onChanged();
          } else {
            recipientBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         * .waves.Recipient recipient = 1;
         */
        public Builder clearRecipient() {
          if (recipientBuilder_ == null) {
            recipient_ = null;
            onChanged();
          } else {
            recipient_ = null;
            recipientBuilder_ = null;
          }

          return this;
        }
        /**
         * .waves.Recipient recipient = 1;
         */
        public com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient.Builder getRecipientBuilder() {
          
          onChanged();
          return getRecipientFieldBuilder().getBuilder();
        }
        /**
         * .waves.Recipient recipient = 1;
         */
        public com.wavesplatform.protobuf.transaction.RecipientOuterClass.RecipientOrBuilder getRecipientOrBuilder() {
          if (recipientBuilder_ != null) {
            return recipientBuilder_.getMessageOrBuilder();
          } else {
            return recipient_ == null ?
                com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient.getDefaultInstance() : recipient_;
          }
        }
        /**
         * .waves.Recipient recipient = 1;
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient, com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient.Builder, com.wavesplatform.protobuf.transaction.RecipientOuterClass.RecipientOrBuilder> 
            getRecipientFieldBuilder() {
          if (recipientBuilder_ == null) {
            recipientBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient, com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient.Builder, com.wavesplatform.protobuf.transaction.RecipientOuterClass.RecipientOrBuilder>(
                    getRecipient(),
                    getParentForChildren(),
                    isClean());
            recipient_ = null;
          }
          return recipientBuilder_;
        }

        private long amount_ ;
        /**
         * int64 amount = 2;
         * @return The amount.
         */
        public long getAmount() {
          return amount_;
        }
        /**
         * int64 amount = 2;
         * @param value The amount to set.
         * @return This builder for chaining.
         */
        public Builder setAmount(long value) {
          
          amount_ = value;
          onChanged();
          return this;
        }
        /**
         * int64 amount = 2;
         * @return This builder for chaining.
         */
        public Builder clearAmount() {
          
          amount_ = 0L;
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:waves.MassTransferTransactionData.Transfer)
      }

      // @@protoc_insertion_point(class_scope:waves.MassTransferTransactionData.Transfer)
      private static final com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Transfer DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Transfer();
      }

      public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Transfer getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser
          PARSER = new com.google.protobuf.AbstractParser() {
        @java.lang.Override
        public Transfer parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new Transfer(input, extensionRegistry);
        }
      };

      public static com.google.protobuf.Parser parser() {
        return PARSER;
      }

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Transfer getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public static final int ASSET_ID_FIELD_NUMBER = 1;
    private com.google.protobuf.ByteString assetId_;
    /**
     * bytes asset_id = 1;
     * @return The assetId.
     */
    public com.google.protobuf.ByteString getAssetId() {
      return assetId_;
    }

    public static final int TRANSFERS_FIELD_NUMBER = 2;
    private java.util.List transfers_;
    /**
     * repeated .waves.MassTransferTransactionData.Transfer transfers = 2;
     */
    public java.util.List getTransfersList() {
      return transfers_;
    }
    /**
     * repeated .waves.MassTransferTransactionData.Transfer transfers = 2;
     */
    public java.util.List 
        getTransfersOrBuilderList() {
      return transfers_;
    }
    /**
     * repeated .waves.MassTransferTransactionData.Transfer transfers = 2;
     */
    public int getTransfersCount() {
      return transfers_.size();
    }
    /**
     * repeated .waves.MassTransferTransactionData.Transfer transfers = 2;
     */
    public com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Transfer getTransfers(int index) {
      return transfers_.get(index);
    }
    /**
     * repeated .waves.MassTransferTransactionData.Transfer transfers = 2;
     */
    public com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.TransferOrBuilder getTransfersOrBuilder(
        int index) {
      return transfers_.get(index);
    }

    public static final int ATTACHMENT_FIELD_NUMBER = 3;
    private com.google.protobuf.ByteString attachment_;
    /**
     * bytes attachment = 3;
     * @return The attachment.
     */
    public com.google.protobuf.ByteString getAttachment() {
      return attachment_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!assetId_.isEmpty()) {
        output.writeBytes(1, assetId_);
      }
      for (int i = 0; i < transfers_.size(); i++) {
        output.writeMessage(2, transfers_.get(i));
      }
      if (!attachment_.isEmpty()) {
        output.writeBytes(3, attachment_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!assetId_.isEmpty()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, assetId_);
      }
      for (int i = 0; i < transfers_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, transfers_.get(i));
      }
      if (!attachment_.isEmpty()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, attachment_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData)) {
        return super.equals(obj);
      }
      com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData other = (com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData) obj;

      if (!getAssetId()
          .equals(other.getAssetId())) return false;
      if (!getTransfersList()
          .equals(other.getTransfersList())) return false;
      if (!getAttachment()
          .equals(other.getAttachment())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + ASSET_ID_FIELD_NUMBER;
      hash = (53 * hash) + getAssetId().hashCode();
      if (getTransfersCount() > 0) {
        hash = (37 * hash) + TRANSFERS_FIELD_NUMBER;
        hash = (53 * hash) + getTransfersList().hashCode();
      }
      hash = (37 * hash) + ATTACHMENT_FIELD_NUMBER;
      hash = (53 * hash) + getAttachment().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code waves.MassTransferTransactionData}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:waves.MassTransferTransactionData)
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionDataOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_MassTransferTransactionData_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_MassTransferTransactionData_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.class, com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Builder.class);
      }

      // Construct using com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getTransfersFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        assetId_ = com.google.protobuf.ByteString.EMPTY;

        if (transfersBuilder_ == null) {
          transfers_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          transfersBuilder_.clear();
        }
        attachment_ = com.google.protobuf.ByteString.EMPTY;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_MassTransferTransactionData_descriptor;
      }

      @java.lang.Override
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData getDefaultInstanceForType() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.getDefaultInstance();
      }

      @java.lang.Override
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData build() {
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData buildPartial() {
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData result = new com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData(this);
        int from_bitField0_ = bitField0_;
        result.assetId_ = assetId_;
        if (transfersBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            transfers_ = java.util.Collections.unmodifiableList(transfers_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.transfers_ = transfers_;
        } else {
          result.transfers_ = transfersBuilder_.build();
        }
        result.attachment_ = attachment_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData) {
          return mergeFrom((com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData other) {
        if (other == com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.getDefaultInstance()) return this;
        if (other.getAssetId() != com.google.protobuf.ByteString.EMPTY) {
          setAssetId(other.getAssetId());
        }
        if (transfersBuilder_ == null) {
          if (!other.transfers_.isEmpty()) {
            if (transfers_.isEmpty()) {
              transfers_ = other.transfers_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureTransfersIsMutable();
              transfers_.addAll(other.transfers_);
            }
            onChanged();
          }
        } else {
          if (!other.transfers_.isEmpty()) {
            if (transfersBuilder_.isEmpty()) {
              transfersBuilder_.dispose();
              transfersBuilder_ = null;
              transfers_ = other.transfers_;
              bitField0_ = (bitField0_ & ~0x00000001);
              transfersBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getTransfersFieldBuilder() : null;
            } else {
              transfersBuilder_.addAllMessages(other.transfers_);
            }
          }
        }
        if (other.getAttachment() != com.google.protobuf.ByteString.EMPTY) {
          setAttachment(other.getAttachment());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private com.google.protobuf.ByteString assetId_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * bytes asset_id = 1;
       * @return The assetId.
       */
      public com.google.protobuf.ByteString getAssetId() {
        return assetId_;
      }
      /**
       * bytes asset_id = 1;
       * @param value The assetId to set.
       * @return This builder for chaining.
       */
      public Builder setAssetId(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        assetId_ = value;
        onChanged();
        return this;
      }
      /**
       * bytes asset_id = 1;
       * @return This builder for chaining.
       */
      public Builder clearAssetId() {
        
        assetId_ = getDefaultInstance().getAssetId();
        onChanged();
        return this;
      }

      private java.util.List transfers_ =
        java.util.Collections.emptyList();
      private void ensureTransfersIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          transfers_ = new java.util.ArrayList(transfers_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Transfer, com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Transfer.Builder, com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.TransferOrBuilder> transfersBuilder_;

      /**
       * repeated .waves.MassTransferTransactionData.Transfer transfers = 2;
       */
      public java.util.List getTransfersList() {
        if (transfersBuilder_ == null) {
          return java.util.Collections.unmodifiableList(transfers_);
        } else {
          return transfersBuilder_.getMessageList();
        }
      }
      /**
       * repeated .waves.MassTransferTransactionData.Transfer transfers = 2;
       */
      public int getTransfersCount() {
        if (transfersBuilder_ == null) {
          return transfers_.size();
        } else {
          return transfersBuilder_.getCount();
        }
      }
      /**
       * repeated .waves.MassTransferTransactionData.Transfer transfers = 2;
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Transfer getTransfers(int index) {
        if (transfersBuilder_ == null) {
          return transfers_.get(index);
        } else {
          return transfersBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .waves.MassTransferTransactionData.Transfer transfers = 2;
       */
      public Builder setTransfers(
          int index, com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Transfer value) {
        if (transfersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureTransfersIsMutable();
          transfers_.set(index, value);
          onChanged();
        } else {
          transfersBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .waves.MassTransferTransactionData.Transfer transfers = 2;
       */
      public Builder setTransfers(
          int index, com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Transfer.Builder builderForValue) {
        if (transfersBuilder_ == null) {
          ensureTransfersIsMutable();
          transfers_.set(index, builderForValue.build());
          onChanged();
        } else {
          transfersBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .waves.MassTransferTransactionData.Transfer transfers = 2;
       */
      public Builder addTransfers(com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Transfer value) {
        if (transfersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureTransfersIsMutable();
          transfers_.add(value);
          onChanged();
        } else {
          transfersBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .waves.MassTransferTransactionData.Transfer transfers = 2;
       */
      public Builder addTransfers(
          int index, com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Transfer value) {
        if (transfersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureTransfersIsMutable();
          transfers_.add(index, value);
          onChanged();
        } else {
          transfersBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .waves.MassTransferTransactionData.Transfer transfers = 2;
       */
      public Builder addTransfers(
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Transfer.Builder builderForValue) {
        if (transfersBuilder_ == null) {
          ensureTransfersIsMutable();
          transfers_.add(builderForValue.build());
          onChanged();
        } else {
          transfersBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .waves.MassTransferTransactionData.Transfer transfers = 2;
       */
      public Builder addTransfers(
          int index, com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Transfer.Builder builderForValue) {
        if (transfersBuilder_ == null) {
          ensureTransfersIsMutable();
          transfers_.add(index, builderForValue.build());
          onChanged();
        } else {
          transfersBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .waves.MassTransferTransactionData.Transfer transfers = 2;
       */
      public Builder addAllTransfers(
          java.lang.Iterable values) {
        if (transfersBuilder_ == null) {
          ensureTransfersIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, transfers_);
          onChanged();
        } else {
          transfersBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .waves.MassTransferTransactionData.Transfer transfers = 2;
       */
      public Builder clearTransfers() {
        if (transfersBuilder_ == null) {
          transfers_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          transfersBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .waves.MassTransferTransactionData.Transfer transfers = 2;
       */
      public Builder removeTransfers(int index) {
        if (transfersBuilder_ == null) {
          ensureTransfersIsMutable();
          transfers_.remove(index);
          onChanged();
        } else {
          transfersBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .waves.MassTransferTransactionData.Transfer transfers = 2;
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Transfer.Builder getTransfersBuilder(
          int index) {
        return getTransfersFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .waves.MassTransferTransactionData.Transfer transfers = 2;
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.TransferOrBuilder getTransfersOrBuilder(
          int index) {
        if (transfersBuilder_ == null) {
          return transfers_.get(index);  } else {
          return transfersBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .waves.MassTransferTransactionData.Transfer transfers = 2;
       */
      public java.util.List 
           getTransfersOrBuilderList() {
        if (transfersBuilder_ != null) {
          return transfersBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(transfers_);
        }
      }
      /**
       * repeated .waves.MassTransferTransactionData.Transfer transfers = 2;
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Transfer.Builder addTransfersBuilder() {
        return getTransfersFieldBuilder().addBuilder(
            com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Transfer.getDefaultInstance());
      }
      /**
       * repeated .waves.MassTransferTransactionData.Transfer transfers = 2;
       */
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Transfer.Builder addTransfersBuilder(
          int index) {
        return getTransfersFieldBuilder().addBuilder(
            index, com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Transfer.getDefaultInstance());
      }
      /**
       * repeated .waves.MassTransferTransactionData.Transfer transfers = 2;
       */
      public java.util.List 
           getTransfersBuilderList() {
        return getTransfersFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Transfer, com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Transfer.Builder, com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.TransferOrBuilder> 
          getTransfersFieldBuilder() {
        if (transfersBuilder_ == null) {
          transfersBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Transfer, com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.Transfer.Builder, com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData.TransferOrBuilder>(
                  transfers_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          transfers_ = null;
        }
        return transfersBuilder_;
      }

      private com.google.protobuf.ByteString attachment_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * bytes attachment = 3;
       * @return The attachment.
       */
      public com.google.protobuf.ByteString getAttachment() {
        return attachment_;
      }
      /**
       * bytes attachment = 3;
       * @param value The attachment to set.
       * @return This builder for chaining.
       */
      public Builder setAttachment(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        attachment_ = value;
        onChanged();
        return this;
      }
      /**
       * bytes attachment = 3;
       * @return This builder for chaining.
       */
      public Builder clearAttachment() {
        
        attachment_ = getDefaultInstance().getAttachment();
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:waves.MassTransferTransactionData)
    }

    // @@protoc_insertion_point(class_scope:waves.MassTransferTransactionData)
    private static final com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData();
    }

    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public MassTransferTransactionData parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new MassTransferTransactionData(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.wavesplatform.protobuf.transaction.TransactionOuterClass.MassTransferTransactionData getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface LeaseTransactionDataOrBuilder extends
      // @@protoc_insertion_point(interface_extends:waves.LeaseTransactionData)
      com.google.protobuf.MessageOrBuilder {

    /**
     * .waves.Recipient recipient = 1;
     * @return Whether the recipient field is set.
     */
    boolean hasRecipient();
    /**
     * .waves.Recipient recipient = 1;
     * @return The recipient.
     */
    com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient getRecipient();
    /**
     * .waves.Recipient recipient = 1;
     */
    com.wavesplatform.protobuf.transaction.RecipientOuterClass.RecipientOrBuilder getRecipientOrBuilder();

    /**
     * int64 amount = 2;
     * @return The amount.
     */
    long getAmount();
  }
  /**
   * Protobuf type {@code waves.LeaseTransactionData}
   */
  public  static final class LeaseTransactionData extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:waves.LeaseTransactionData)
      LeaseTransactionDataOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use LeaseTransactionData.newBuilder() to construct.
    private LeaseTransactionData(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private LeaseTransactionData() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new LeaseTransactionData();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private LeaseTransactionData(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient.Builder subBuilder = null;
              if (recipient_ != null) {
                subBuilder = recipient_.toBuilder();
              }
              recipient_ = input.readMessage(com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(recipient_);
                recipient_ = subBuilder.buildPartial();
              }

              break;
            }
            case 16: {

              amount_ = input.readInt64();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_LeaseTransactionData_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_LeaseTransactionData_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData.class, com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData.Builder.class);
    }

    public static final int RECIPIENT_FIELD_NUMBER = 1;
    private com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient recipient_;
    /**
     * .waves.Recipient recipient = 1;
     * @return Whether the recipient field is set.
     */
    public boolean hasRecipient() {
      return recipient_ != null;
    }
    /**
     * .waves.Recipient recipient = 1;
     * @return The recipient.
     */
    public com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient getRecipient() {
      return recipient_ == null ? com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient.getDefaultInstance() : recipient_;
    }
    /**
     * .waves.Recipient recipient = 1;
     */
    public com.wavesplatform.protobuf.transaction.RecipientOuterClass.RecipientOrBuilder getRecipientOrBuilder() {
      return getRecipient();
    }

    public static final int AMOUNT_FIELD_NUMBER = 2;
    private long amount_;
    /**
     * int64 amount = 2;
     * @return The amount.
     */
    public long getAmount() {
      return amount_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (recipient_ != null) {
        output.writeMessage(1, getRecipient());
      }
      if (amount_ != 0L) {
        output.writeInt64(2, amount_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (recipient_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getRecipient());
      }
      if (amount_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, amount_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData)) {
        return super.equals(obj);
      }
      com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData other = (com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData) obj;

      if (hasRecipient() != other.hasRecipient()) return false;
      if (hasRecipient()) {
        if (!getRecipient()
            .equals(other.getRecipient())) return false;
      }
      if (getAmount()
          != other.getAmount()) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasRecipient()) {
        hash = (37 * hash) + RECIPIENT_FIELD_NUMBER;
        hash = (53 * hash) + getRecipient().hashCode();
      }
      hash = (37 * hash) + AMOUNT_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getAmount());
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code waves.LeaseTransactionData}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:waves.LeaseTransactionData)
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionDataOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_LeaseTransactionData_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_LeaseTransactionData_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData.class, com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData.Builder.class);
      }

      // Construct using com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (recipientBuilder_ == null) {
          recipient_ = null;
        } else {
          recipient_ = null;
          recipientBuilder_ = null;
        }
        amount_ = 0L;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_LeaseTransactionData_descriptor;
      }

      @java.lang.Override
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData getDefaultInstanceForType() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData.getDefaultInstance();
      }

      @java.lang.Override
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData build() {
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData buildPartial() {
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData result = new com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData(this);
        if (recipientBuilder_ == null) {
          result.recipient_ = recipient_;
        } else {
          result.recipient_ = recipientBuilder_.build();
        }
        result.amount_ = amount_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData) {
          return mergeFrom((com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData other) {
        if (other == com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData.getDefaultInstance()) return this;
        if (other.hasRecipient()) {
          mergeRecipient(other.getRecipient());
        }
        if (other.getAmount() != 0L) {
          setAmount(other.getAmount());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient recipient_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient, com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient.Builder, com.wavesplatform.protobuf.transaction.RecipientOuterClass.RecipientOrBuilder> recipientBuilder_;
      /**
       * .waves.Recipient recipient = 1;
       * @return Whether the recipient field is set.
       */
      public boolean hasRecipient() {
        return recipientBuilder_ != null || recipient_ != null;
      }
      /**
       * .waves.Recipient recipient = 1;
       * @return The recipient.
       */
      public com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient getRecipient() {
        if (recipientBuilder_ == null) {
          return recipient_ == null ? com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient.getDefaultInstance() : recipient_;
        } else {
          return recipientBuilder_.getMessage();
        }
      }
      /**
       * .waves.Recipient recipient = 1;
       */
      public Builder setRecipient(com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient value) {
        if (recipientBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          recipient_ = value;
          onChanged();
        } else {
          recipientBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .waves.Recipient recipient = 1;
       */
      public Builder setRecipient(
          com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient.Builder builderForValue) {
        if (recipientBuilder_ == null) {
          recipient_ = builderForValue.build();
          onChanged();
        } else {
          recipientBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .waves.Recipient recipient = 1;
       */
      public Builder mergeRecipient(com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient value) {
        if (recipientBuilder_ == null) {
          if (recipient_ != null) {
            recipient_ =
              com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient.newBuilder(recipient_).mergeFrom(value).buildPartial();
          } else {
            recipient_ = value;
          }
          onChanged();
        } else {
          recipientBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .waves.Recipient recipient = 1;
       */
      public Builder clearRecipient() {
        if (recipientBuilder_ == null) {
          recipient_ = null;
          onChanged();
        } else {
          recipient_ = null;
          recipientBuilder_ = null;
        }

        return this;
      }
      /**
       * .waves.Recipient recipient = 1;
       */
      public com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient.Builder getRecipientBuilder() {
        
        onChanged();
        return getRecipientFieldBuilder().getBuilder();
      }
      /**
       * .waves.Recipient recipient = 1;
       */
      public com.wavesplatform.protobuf.transaction.RecipientOuterClass.RecipientOrBuilder getRecipientOrBuilder() {
        if (recipientBuilder_ != null) {
          return recipientBuilder_.getMessageOrBuilder();
        } else {
          return recipient_ == null ?
              com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient.getDefaultInstance() : recipient_;
        }
      }
      /**
       * .waves.Recipient recipient = 1;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient, com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient.Builder, com.wavesplatform.protobuf.transaction.RecipientOuterClass.RecipientOrBuilder> 
          getRecipientFieldBuilder() {
        if (recipientBuilder_ == null) {
          recipientBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient, com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient.Builder, com.wavesplatform.protobuf.transaction.RecipientOuterClass.RecipientOrBuilder>(
                  getRecipient(),
                  getParentForChildren(),
                  isClean());
          recipient_ = null;
        }
        return recipientBuilder_;
      }

      private long amount_ ;
      /**
       * int64 amount = 2;
       * @return The amount.
       */
      public long getAmount() {
        return amount_;
      }
      /**
       * int64 amount = 2;
       * @param value The amount to set.
       * @return This builder for chaining.
       */
      public Builder setAmount(long value) {
        
        amount_ = value;
        onChanged();
        return this;
      }
      /**
       * int64 amount = 2;
       * @return This builder for chaining.
       */
      public Builder clearAmount() {
        
        amount_ = 0L;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:waves.LeaseTransactionData)
    }

    // @@protoc_insertion_point(class_scope:waves.LeaseTransactionData)
    private static final com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData();
    }

    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public LeaseTransactionData parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new LeaseTransactionData(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseTransactionData getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface LeaseCancelTransactionDataOrBuilder extends
      // @@protoc_insertion_point(interface_extends:waves.LeaseCancelTransactionData)
      com.google.protobuf.MessageOrBuilder {

    /**
     * bytes lease_id = 1;
     * @return The leaseId.
     */
    com.google.protobuf.ByteString getLeaseId();
  }
  /**
   * Protobuf type {@code waves.LeaseCancelTransactionData}
   */
  public  static final class LeaseCancelTransactionData extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:waves.LeaseCancelTransactionData)
      LeaseCancelTransactionDataOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use LeaseCancelTransactionData.newBuilder() to construct.
    private LeaseCancelTransactionData(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private LeaseCancelTransactionData() {
      leaseId_ = com.google.protobuf.ByteString.EMPTY;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new LeaseCancelTransactionData();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private LeaseCancelTransactionData(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {

              leaseId_ = input.readBytes();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_LeaseCancelTransactionData_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_LeaseCancelTransactionData_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData.class, com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData.Builder.class);
    }

    public static final int LEASE_ID_FIELD_NUMBER = 1;
    private com.google.protobuf.ByteString leaseId_;
    /**
     * bytes lease_id = 1;
     * @return The leaseId.
     */
    public com.google.protobuf.ByteString getLeaseId() {
      return leaseId_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!leaseId_.isEmpty()) {
        output.writeBytes(1, leaseId_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!leaseId_.isEmpty()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, leaseId_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData)) {
        return super.equals(obj);
      }
      com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData other = (com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData) obj;

      if (!getLeaseId()
          .equals(other.getLeaseId())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + LEASE_ID_FIELD_NUMBER;
      hash = (53 * hash) + getLeaseId().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code waves.LeaseCancelTransactionData}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:waves.LeaseCancelTransactionData)
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionDataOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_LeaseCancelTransactionData_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_LeaseCancelTransactionData_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData.class, com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData.Builder.class);
      }

      // Construct using com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        leaseId_ = com.google.protobuf.ByteString.EMPTY;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_LeaseCancelTransactionData_descriptor;
      }

      @java.lang.Override
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData getDefaultInstanceForType() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData.getDefaultInstance();
      }

      @java.lang.Override
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData build() {
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData buildPartial() {
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData result = new com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData(this);
        result.leaseId_ = leaseId_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData) {
          return mergeFrom((com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData other) {
        if (other == com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData.getDefaultInstance()) return this;
        if (other.getLeaseId() != com.google.protobuf.ByteString.EMPTY) {
          setLeaseId(other.getLeaseId());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private com.google.protobuf.ByteString leaseId_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * bytes lease_id = 1;
       * @return The leaseId.
       */
      public com.google.protobuf.ByteString getLeaseId() {
        return leaseId_;
      }
      /**
       * bytes lease_id = 1;
       * @param value The leaseId to set.
       * @return This builder for chaining.
       */
      public Builder setLeaseId(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        leaseId_ = value;
        onChanged();
        return this;
      }
      /**
       * bytes lease_id = 1;
       * @return This builder for chaining.
       */
      public Builder clearLeaseId() {
        
        leaseId_ = getDefaultInstance().getLeaseId();
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:waves.LeaseCancelTransactionData)
    }

    // @@protoc_insertion_point(class_scope:waves.LeaseCancelTransactionData)
    private static final com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData();
    }

    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public LeaseCancelTransactionData parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new LeaseCancelTransactionData(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.wavesplatform.protobuf.transaction.TransactionOuterClass.LeaseCancelTransactionData getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface BurnTransactionDataOrBuilder extends
      // @@protoc_insertion_point(interface_extends:waves.BurnTransactionData)
      com.google.protobuf.MessageOrBuilder {

    /**
     * .waves.Amount asset_amount = 1;
     * @return Whether the assetAmount field is set.
     */
    boolean hasAssetAmount();
    /**
     * .waves.Amount asset_amount = 1;
     * @return The assetAmount.
     */
    com.wavesplatform.protobuf.AmountOuterClass.Amount getAssetAmount();
    /**
     * .waves.Amount asset_amount = 1;
     */
    com.wavesplatform.protobuf.AmountOuterClass.AmountOrBuilder getAssetAmountOrBuilder();
  }
  /**
   * Protobuf type {@code waves.BurnTransactionData}
   */
  public  static final class BurnTransactionData extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:waves.BurnTransactionData)
      BurnTransactionDataOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use BurnTransactionData.newBuilder() to construct.
    private BurnTransactionData(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private BurnTransactionData() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new BurnTransactionData();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private BurnTransactionData(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              com.wavesplatform.protobuf.AmountOuterClass.Amount.Builder subBuilder = null;
              if (assetAmount_ != null) {
                subBuilder = assetAmount_.toBuilder();
              }
              assetAmount_ = input.readMessage(com.wavesplatform.protobuf.AmountOuterClass.Amount.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(assetAmount_);
                assetAmount_ = subBuilder.buildPartial();
              }

              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_BurnTransactionData_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_BurnTransactionData_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData.class, com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData.Builder.class);
    }

    public static final int ASSET_AMOUNT_FIELD_NUMBER = 1;
    private com.wavesplatform.protobuf.AmountOuterClass.Amount assetAmount_;
    /**
     * .waves.Amount asset_amount = 1;
     * @return Whether the assetAmount field is set.
     */
    public boolean hasAssetAmount() {
      return assetAmount_ != null;
    }
    /**
     * .waves.Amount asset_amount = 1;
     * @return The assetAmount.
     */
    public com.wavesplatform.protobuf.AmountOuterClass.Amount getAssetAmount() {
      return assetAmount_ == null ? com.wavesplatform.protobuf.AmountOuterClass.Amount.getDefaultInstance() : assetAmount_;
    }
    /**
     * .waves.Amount asset_amount = 1;
     */
    public com.wavesplatform.protobuf.AmountOuterClass.AmountOrBuilder getAssetAmountOrBuilder() {
      return getAssetAmount();
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (assetAmount_ != null) {
        output.writeMessage(1, getAssetAmount());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (assetAmount_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getAssetAmount());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData)) {
        return super.equals(obj);
      }
      com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData other = (com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData) obj;

      if (hasAssetAmount() != other.hasAssetAmount()) return false;
      if (hasAssetAmount()) {
        if (!getAssetAmount()
            .equals(other.getAssetAmount())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasAssetAmount()) {
        hash = (37 * hash) + ASSET_AMOUNT_FIELD_NUMBER;
        hash = (53 * hash) + getAssetAmount().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code waves.BurnTransactionData}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:waves.BurnTransactionData)
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionDataOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_BurnTransactionData_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_BurnTransactionData_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData.class, com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData.Builder.class);
      }

      // Construct using com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (assetAmountBuilder_ == null) {
          assetAmount_ = null;
        } else {
          assetAmount_ = null;
          assetAmountBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_BurnTransactionData_descriptor;
      }

      @java.lang.Override
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData getDefaultInstanceForType() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData.getDefaultInstance();
      }

      @java.lang.Override
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData build() {
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData buildPartial() {
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData result = new com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData(this);
        if (assetAmountBuilder_ == null) {
          result.assetAmount_ = assetAmount_;
        } else {
          result.assetAmount_ = assetAmountBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData) {
          return mergeFrom((com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData other) {
        if (other == com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData.getDefaultInstance()) return this;
        if (other.hasAssetAmount()) {
          mergeAssetAmount(other.getAssetAmount());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private com.wavesplatform.protobuf.AmountOuterClass.Amount assetAmount_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.wavesplatform.protobuf.AmountOuterClass.Amount, com.wavesplatform.protobuf.AmountOuterClass.Amount.Builder, com.wavesplatform.protobuf.AmountOuterClass.AmountOrBuilder> assetAmountBuilder_;
      /**
       * .waves.Amount asset_amount = 1;
       * @return Whether the assetAmount field is set.
       */
      public boolean hasAssetAmount() {
        return assetAmountBuilder_ != null || assetAmount_ != null;
      }
      /**
       * .waves.Amount asset_amount = 1;
       * @return The assetAmount.
       */
      public com.wavesplatform.protobuf.AmountOuterClass.Amount getAssetAmount() {
        if (assetAmountBuilder_ == null) {
          return assetAmount_ == null ? com.wavesplatform.protobuf.AmountOuterClass.Amount.getDefaultInstance() : assetAmount_;
        } else {
          return assetAmountBuilder_.getMessage();
        }
      }
      /**
       * .waves.Amount asset_amount = 1;
       */
      public Builder setAssetAmount(com.wavesplatform.protobuf.AmountOuterClass.Amount value) {
        if (assetAmountBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          assetAmount_ = value;
          onChanged();
        } else {
          assetAmountBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .waves.Amount asset_amount = 1;
       */
      public Builder setAssetAmount(
          com.wavesplatform.protobuf.AmountOuterClass.Amount.Builder builderForValue) {
        if (assetAmountBuilder_ == null) {
          assetAmount_ = builderForValue.build();
          onChanged();
        } else {
          assetAmountBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .waves.Amount asset_amount = 1;
       */
      public Builder mergeAssetAmount(com.wavesplatform.protobuf.AmountOuterClass.Amount value) {
        if (assetAmountBuilder_ == null) {
          if (assetAmount_ != null) {
            assetAmount_ =
              com.wavesplatform.protobuf.AmountOuterClass.Amount.newBuilder(assetAmount_).mergeFrom(value).buildPartial();
          } else {
            assetAmount_ = value;
          }
          onChanged();
        } else {
          assetAmountBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .waves.Amount asset_amount = 1;
       */
      public Builder clearAssetAmount() {
        if (assetAmountBuilder_ == null) {
          assetAmount_ = null;
          onChanged();
        } else {
          assetAmount_ = null;
          assetAmountBuilder_ = null;
        }

        return this;
      }
      /**
       * .waves.Amount asset_amount = 1;
       */
      public com.wavesplatform.protobuf.AmountOuterClass.Amount.Builder getAssetAmountBuilder() {
        
        onChanged();
        return getAssetAmountFieldBuilder().getBuilder();
      }
      /**
       * .waves.Amount asset_amount = 1;
       */
      public com.wavesplatform.protobuf.AmountOuterClass.AmountOrBuilder getAssetAmountOrBuilder() {
        if (assetAmountBuilder_ != null) {
          return assetAmountBuilder_.getMessageOrBuilder();
        } else {
          return assetAmount_ == null ?
              com.wavesplatform.protobuf.AmountOuterClass.Amount.getDefaultInstance() : assetAmount_;
        }
      }
      /**
       * .waves.Amount asset_amount = 1;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.wavesplatform.protobuf.AmountOuterClass.Amount, com.wavesplatform.protobuf.AmountOuterClass.Amount.Builder, com.wavesplatform.protobuf.AmountOuterClass.AmountOrBuilder> 
          getAssetAmountFieldBuilder() {
        if (assetAmountBuilder_ == null) {
          assetAmountBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.wavesplatform.protobuf.AmountOuterClass.Amount, com.wavesplatform.protobuf.AmountOuterClass.Amount.Builder, com.wavesplatform.protobuf.AmountOuterClass.AmountOrBuilder>(
                  getAssetAmount(),
                  getParentForChildren(),
                  isClean());
          assetAmount_ = null;
        }
        return assetAmountBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:waves.BurnTransactionData)
    }

    // @@protoc_insertion_point(class_scope:waves.BurnTransactionData)
    private static final com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData();
    }

    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public BurnTransactionData parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new BurnTransactionData(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.wavesplatform.protobuf.transaction.TransactionOuterClass.BurnTransactionData getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface IssueTransactionDataOrBuilder extends
      // @@protoc_insertion_point(interface_extends:waves.IssueTransactionData)
      com.google.protobuf.MessageOrBuilder {

    /**
     * string name = 1;
     * @return The name.
     */
    java.lang.String getName();
    /**
     * string name = 1;
     * @return The bytes for name.
     */
    com.google.protobuf.ByteString
        getNameBytes();

    /**
     * string description = 2;
     * @return The description.
     */
    java.lang.String getDescription();
    /**
     * string description = 2;
     * @return The bytes for description.
     */
    com.google.protobuf.ByteString
        getDescriptionBytes();

    /**
     * int64 amount = 3;
     * @return The amount.
     */
    long getAmount();

    /**
     * int32 decimals = 4;
     * @return The decimals.
     */
    int getDecimals();

    /**
     * bool reissuable = 5;
     * @return The reissuable.
     */
    boolean getReissuable();

    /**
     * bytes script = 6;
     * @return The script.
     */
    com.google.protobuf.ByteString getScript();
  }
  /**
   * Protobuf type {@code waves.IssueTransactionData}
   */
  public  static final class IssueTransactionData extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:waves.IssueTransactionData)
      IssueTransactionDataOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use IssueTransactionData.newBuilder() to construct.
    private IssueTransactionData(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private IssueTransactionData() {
      name_ = "";
      description_ = "";
      script_ = com.google.protobuf.ByteString.EMPTY;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new IssueTransactionData();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private IssueTransactionData(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              java.lang.String s = input.readStringRequireUtf8();

              name_ = s;
              break;
            }
            case 18: {
              java.lang.String s = input.readStringRequireUtf8();

              description_ = s;
              break;
            }
            case 24: {

              amount_ = input.readInt64();
              break;
            }
            case 32: {

              decimals_ = input.readInt32();
              break;
            }
            case 40: {

              reissuable_ = input.readBool();
              break;
            }
            case 50: {

              script_ = input.readBytes();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_IssueTransactionData_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_IssueTransactionData_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData.class, com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData.Builder.class);
    }

    public static final int NAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object name_;
    /**
     * string name = 1;
     * @return The name.
     */
    public java.lang.String getName() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        name_ = s;
        return s;
      }
    }
    /**
     * string name = 1;
     * @return The bytes for name.
     */
    public com.google.protobuf.ByteString
        getNameBytes() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        name_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DESCRIPTION_FIELD_NUMBER = 2;
    private volatile java.lang.Object description_;
    /**
     * string description = 2;
     * @return The description.
     */
    public java.lang.String getDescription() {
      java.lang.Object ref = description_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        description_ = s;
        return s;
      }
    }
    /**
     * string description = 2;
     * @return The bytes for description.
     */
    public com.google.protobuf.ByteString
        getDescriptionBytes() {
      java.lang.Object ref = description_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        description_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int AMOUNT_FIELD_NUMBER = 3;
    private long amount_;
    /**
     * int64 amount = 3;
     * @return The amount.
     */
    public long getAmount() {
      return amount_;
    }

    public static final int DECIMALS_FIELD_NUMBER = 4;
    private int decimals_;
    /**
     * int32 decimals = 4;
     * @return The decimals.
     */
    public int getDecimals() {
      return decimals_;
    }

    public static final int REISSUABLE_FIELD_NUMBER = 5;
    private boolean reissuable_;
    /**
     * bool reissuable = 5;
     * @return The reissuable.
     */
    public boolean getReissuable() {
      return reissuable_;
    }

    public static final int SCRIPT_FIELD_NUMBER = 6;
    private com.google.protobuf.ByteString script_;
    /**
     * bytes script = 6;
     * @return The script.
     */
    public com.google.protobuf.ByteString getScript() {
      return script_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!getNameBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
      }
      if (!getDescriptionBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, description_);
      }
      if (amount_ != 0L) {
        output.writeInt64(3, amount_);
      }
      if (decimals_ != 0) {
        output.writeInt32(4, decimals_);
      }
      if (reissuable_ != false) {
        output.writeBool(5, reissuable_);
      }
      if (!script_.isEmpty()) {
        output.writeBytes(6, script_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!getNameBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
      }
      if (!getDescriptionBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, description_);
      }
      if (amount_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(3, amount_);
      }
      if (decimals_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, decimals_);
      }
      if (reissuable_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(5, reissuable_);
      }
      if (!script_.isEmpty()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(6, script_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData)) {
        return super.equals(obj);
      }
      com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData other = (com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData) obj;

      if (!getName()
          .equals(other.getName())) return false;
      if (!getDescription()
          .equals(other.getDescription())) return false;
      if (getAmount()
          != other.getAmount()) return false;
      if (getDecimals()
          != other.getDecimals()) return false;
      if (getReissuable()
          != other.getReissuable()) return false;
      if (!getScript()
          .equals(other.getScript())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + NAME_FIELD_NUMBER;
      hash = (53 * hash) + getName().hashCode();
      hash = (37 * hash) + DESCRIPTION_FIELD_NUMBER;
      hash = (53 * hash) + getDescription().hashCode();
      hash = (37 * hash) + AMOUNT_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getAmount());
      hash = (37 * hash) + DECIMALS_FIELD_NUMBER;
      hash = (53 * hash) + getDecimals();
      hash = (37 * hash) + REISSUABLE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getReissuable());
      hash = (37 * hash) + SCRIPT_FIELD_NUMBER;
      hash = (53 * hash) + getScript().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code waves.IssueTransactionData}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:waves.IssueTransactionData)
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionDataOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_IssueTransactionData_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_IssueTransactionData_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData.class, com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData.Builder.class);
      }

      // Construct using com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        name_ = "";

        description_ = "";

        amount_ = 0L;

        decimals_ = 0;

        reissuable_ = false;

        script_ = com.google.protobuf.ByteString.EMPTY;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_IssueTransactionData_descriptor;
      }

      @java.lang.Override
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData getDefaultInstanceForType() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData.getDefaultInstance();
      }

      @java.lang.Override
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData build() {
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData buildPartial() {
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData result = new com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData(this);
        result.name_ = name_;
        result.description_ = description_;
        result.amount_ = amount_;
        result.decimals_ = decimals_;
        result.reissuable_ = reissuable_;
        result.script_ = script_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData) {
          return mergeFrom((com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData other) {
        if (other == com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData.getDefaultInstance()) return this;
        if (!other.getName().isEmpty()) {
          name_ = other.name_;
          onChanged();
        }
        if (!other.getDescription().isEmpty()) {
          description_ = other.description_;
          onChanged();
        }
        if (other.getAmount() != 0L) {
          setAmount(other.getAmount());
        }
        if (other.getDecimals() != 0) {
          setDecimals(other.getDecimals());
        }
        if (other.getReissuable() != false) {
          setReissuable(other.getReissuable());
        }
        if (other.getScript() != com.google.protobuf.ByteString.EMPTY) {
          setScript(other.getScript());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private java.lang.Object name_ = "";
      /**
       * string name = 1;
       * @return The name.
       */
      public java.lang.String getName() {
        java.lang.Object ref = name_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          name_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string name = 1;
       * @return The bytes for name.
       */
      public com.google.protobuf.ByteString
          getNameBytes() {
        java.lang.Object ref = name_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          name_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string name = 1;
       * @param value The name to set.
       * @return This builder for chaining.
       */
      public Builder setName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        name_ = value;
        onChanged();
        return this;
      }
      /**
       * string name = 1;
       * @return This builder for chaining.
       */
      public Builder clearName() {
        
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       * string name = 1;
       * @param value The bytes for name to set.
       * @return This builder for chaining.
       */
      public Builder setNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        name_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object description_ = "";
      /**
       * string description = 2;
       * @return The description.
       */
      public java.lang.String getDescription() {
        java.lang.Object ref = description_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          description_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string description = 2;
       * @return The bytes for description.
       */
      public com.google.protobuf.ByteString
          getDescriptionBytes() {
        java.lang.Object ref = description_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          description_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string description = 2;
       * @param value The description to set.
       * @return This builder for chaining.
       */
      public Builder setDescription(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        description_ = value;
        onChanged();
        return this;
      }
      /**
       * string description = 2;
       * @return This builder for chaining.
       */
      public Builder clearDescription() {
        
        description_ = getDefaultInstance().getDescription();
        onChanged();
        return this;
      }
      /**
       * string description = 2;
       * @param value The bytes for description to set.
       * @return This builder for chaining.
       */
      public Builder setDescriptionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        description_ = value;
        onChanged();
        return this;
      }

      private long amount_ ;
      /**
       * int64 amount = 3;
       * @return The amount.
       */
      public long getAmount() {
        return amount_;
      }
      /**
       * int64 amount = 3;
       * @param value The amount to set.
       * @return This builder for chaining.
       */
      public Builder setAmount(long value) {
        
        amount_ = value;
        onChanged();
        return this;
      }
      /**
       * int64 amount = 3;
       * @return This builder for chaining.
       */
      public Builder clearAmount() {
        
        amount_ = 0L;
        onChanged();
        return this;
      }

      private int decimals_ ;
      /**
       * int32 decimals = 4;
       * @return The decimals.
       */
      public int getDecimals() {
        return decimals_;
      }
      /**
       * int32 decimals = 4;
       * @param value The decimals to set.
       * @return This builder for chaining.
       */
      public Builder setDecimals(int value) {
        
        decimals_ = value;
        onChanged();
        return this;
      }
      /**
       * int32 decimals = 4;
       * @return This builder for chaining.
       */
      public Builder clearDecimals() {
        
        decimals_ = 0;
        onChanged();
        return this;
      }

      private boolean reissuable_ ;
      /**
       * bool reissuable = 5;
       * @return The reissuable.
       */
      public boolean getReissuable() {
        return reissuable_;
      }
      /**
       * bool reissuable = 5;
       * @param value The reissuable to set.
       * @return This builder for chaining.
       */
      public Builder setReissuable(boolean value) {
        
        reissuable_ = value;
        onChanged();
        return this;
      }
      /**
       * bool reissuable = 5;
       * @return This builder for chaining.
       */
      public Builder clearReissuable() {
        
        reissuable_ = false;
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString script_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * bytes script = 6;
       * @return The script.
       */
      public com.google.protobuf.ByteString getScript() {
        return script_;
      }
      /**
       * bytes script = 6;
       * @param value The script to set.
       * @return This builder for chaining.
       */
      public Builder setScript(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        script_ = value;
        onChanged();
        return this;
      }
      /**
       * bytes script = 6;
       * @return This builder for chaining.
       */
      public Builder clearScript() {
        
        script_ = getDefaultInstance().getScript();
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:waves.IssueTransactionData)
    }

    // @@protoc_insertion_point(class_scope:waves.IssueTransactionData)
    private static final com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData();
    }

    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public IssueTransactionData parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new IssueTransactionData(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.wavesplatform.protobuf.transaction.TransactionOuterClass.IssueTransactionData getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ReissueTransactionDataOrBuilder extends
      // @@protoc_insertion_point(interface_extends:waves.ReissueTransactionData)
      com.google.protobuf.MessageOrBuilder {

    /**
     * .waves.Amount asset_amount = 1;
     * @return Whether the assetAmount field is set.
     */
    boolean hasAssetAmount();
    /**
     * .waves.Amount asset_amount = 1;
     * @return The assetAmount.
     */
    com.wavesplatform.protobuf.AmountOuterClass.Amount getAssetAmount();
    /**
     * .waves.Amount asset_amount = 1;
     */
    com.wavesplatform.protobuf.AmountOuterClass.AmountOrBuilder getAssetAmountOrBuilder();

    /**
     * bool reissuable = 2;
     * @return The reissuable.
     */
    boolean getReissuable();
  }
  /**
   * Protobuf type {@code waves.ReissueTransactionData}
   */
  public  static final class ReissueTransactionData extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:waves.ReissueTransactionData)
      ReissueTransactionDataOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ReissueTransactionData.newBuilder() to construct.
    private ReissueTransactionData(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private ReissueTransactionData() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ReissueTransactionData();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ReissueTransactionData(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              com.wavesplatform.protobuf.AmountOuterClass.Amount.Builder subBuilder = null;
              if (assetAmount_ != null) {
                subBuilder = assetAmount_.toBuilder();
              }
              assetAmount_ = input.readMessage(com.wavesplatform.protobuf.AmountOuterClass.Amount.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(assetAmount_);
                assetAmount_ = subBuilder.buildPartial();
              }

              break;
            }
            case 16: {

              reissuable_ = input.readBool();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_ReissueTransactionData_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_ReissueTransactionData_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData.class, com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData.Builder.class);
    }

    public static final int ASSET_AMOUNT_FIELD_NUMBER = 1;
    private com.wavesplatform.protobuf.AmountOuterClass.Amount assetAmount_;
    /**
     * .waves.Amount asset_amount = 1;
     * @return Whether the assetAmount field is set.
     */
    public boolean hasAssetAmount() {
      return assetAmount_ != null;
    }
    /**
     * .waves.Amount asset_amount = 1;
     * @return The assetAmount.
     */
    public com.wavesplatform.protobuf.AmountOuterClass.Amount getAssetAmount() {
      return assetAmount_ == null ? com.wavesplatform.protobuf.AmountOuterClass.Amount.getDefaultInstance() : assetAmount_;
    }
    /**
     * .waves.Amount asset_amount = 1;
     */
    public com.wavesplatform.protobuf.AmountOuterClass.AmountOrBuilder getAssetAmountOrBuilder() {
      return getAssetAmount();
    }

    public static final int REISSUABLE_FIELD_NUMBER = 2;
    private boolean reissuable_;
    /**
     * bool reissuable = 2;
     * @return The reissuable.
     */
    public boolean getReissuable() {
      return reissuable_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (assetAmount_ != null) {
        output.writeMessage(1, getAssetAmount());
      }
      if (reissuable_ != false) {
        output.writeBool(2, reissuable_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (assetAmount_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getAssetAmount());
      }
      if (reissuable_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(2, reissuable_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData)) {
        return super.equals(obj);
      }
      com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData other = (com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData) obj;

      if (hasAssetAmount() != other.hasAssetAmount()) return false;
      if (hasAssetAmount()) {
        if (!getAssetAmount()
            .equals(other.getAssetAmount())) return false;
      }
      if (getReissuable()
          != other.getReissuable()) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasAssetAmount()) {
        hash = (37 * hash) + ASSET_AMOUNT_FIELD_NUMBER;
        hash = (53 * hash) + getAssetAmount().hashCode();
      }
      hash = (37 * hash) + REISSUABLE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getReissuable());
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code waves.ReissueTransactionData}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:waves.ReissueTransactionData)
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionDataOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_ReissueTransactionData_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_ReissueTransactionData_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData.class, com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData.Builder.class);
      }

      // Construct using com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (assetAmountBuilder_ == null) {
          assetAmount_ = null;
        } else {
          assetAmount_ = null;
          assetAmountBuilder_ = null;
        }
        reissuable_ = false;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_ReissueTransactionData_descriptor;
      }

      @java.lang.Override
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData getDefaultInstanceForType() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData.getDefaultInstance();
      }

      @java.lang.Override
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData build() {
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData buildPartial() {
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData result = new com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData(this);
        if (assetAmountBuilder_ == null) {
          result.assetAmount_ = assetAmount_;
        } else {
          result.assetAmount_ = assetAmountBuilder_.build();
        }
        result.reissuable_ = reissuable_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData) {
          return mergeFrom((com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData other) {
        if (other == com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData.getDefaultInstance()) return this;
        if (other.hasAssetAmount()) {
          mergeAssetAmount(other.getAssetAmount());
        }
        if (other.getReissuable() != false) {
          setReissuable(other.getReissuable());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private com.wavesplatform.protobuf.AmountOuterClass.Amount assetAmount_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.wavesplatform.protobuf.AmountOuterClass.Amount, com.wavesplatform.protobuf.AmountOuterClass.Amount.Builder, com.wavesplatform.protobuf.AmountOuterClass.AmountOrBuilder> assetAmountBuilder_;
      /**
       * .waves.Amount asset_amount = 1;
       * @return Whether the assetAmount field is set.
       */
      public boolean hasAssetAmount() {
        return assetAmountBuilder_ != null || assetAmount_ != null;
      }
      /**
       * .waves.Amount asset_amount = 1;
       * @return The assetAmount.
       */
      public com.wavesplatform.protobuf.AmountOuterClass.Amount getAssetAmount() {
        if (assetAmountBuilder_ == null) {
          return assetAmount_ == null ? com.wavesplatform.protobuf.AmountOuterClass.Amount.getDefaultInstance() : assetAmount_;
        } else {
          return assetAmountBuilder_.getMessage();
        }
      }
      /**
       * .waves.Amount asset_amount = 1;
       */
      public Builder setAssetAmount(com.wavesplatform.protobuf.AmountOuterClass.Amount value) {
        if (assetAmountBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          assetAmount_ = value;
          onChanged();
        } else {
          assetAmountBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .waves.Amount asset_amount = 1;
       */
      public Builder setAssetAmount(
          com.wavesplatform.protobuf.AmountOuterClass.Amount.Builder builderForValue) {
        if (assetAmountBuilder_ == null) {
          assetAmount_ = builderForValue.build();
          onChanged();
        } else {
          assetAmountBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .waves.Amount asset_amount = 1;
       */
      public Builder mergeAssetAmount(com.wavesplatform.protobuf.AmountOuterClass.Amount value) {
        if (assetAmountBuilder_ == null) {
          if (assetAmount_ != null) {
            assetAmount_ =
              com.wavesplatform.protobuf.AmountOuterClass.Amount.newBuilder(assetAmount_).mergeFrom(value).buildPartial();
          } else {
            assetAmount_ = value;
          }
          onChanged();
        } else {
          assetAmountBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .waves.Amount asset_amount = 1;
       */
      public Builder clearAssetAmount() {
        if (assetAmountBuilder_ == null) {
          assetAmount_ = null;
          onChanged();
        } else {
          assetAmount_ = null;
          assetAmountBuilder_ = null;
        }

        return this;
      }
      /**
       * .waves.Amount asset_amount = 1;
       */
      public com.wavesplatform.protobuf.AmountOuterClass.Amount.Builder getAssetAmountBuilder() {
        
        onChanged();
        return getAssetAmountFieldBuilder().getBuilder();
      }
      /**
       * .waves.Amount asset_amount = 1;
       */
      public com.wavesplatform.protobuf.AmountOuterClass.AmountOrBuilder getAssetAmountOrBuilder() {
        if (assetAmountBuilder_ != null) {
          return assetAmountBuilder_.getMessageOrBuilder();
        } else {
          return assetAmount_ == null ?
              com.wavesplatform.protobuf.AmountOuterClass.Amount.getDefaultInstance() : assetAmount_;
        }
      }
      /**
       * .waves.Amount asset_amount = 1;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.wavesplatform.protobuf.AmountOuterClass.Amount, com.wavesplatform.protobuf.AmountOuterClass.Amount.Builder, com.wavesplatform.protobuf.AmountOuterClass.AmountOrBuilder> 
          getAssetAmountFieldBuilder() {
        if (assetAmountBuilder_ == null) {
          assetAmountBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.wavesplatform.protobuf.AmountOuterClass.Amount, com.wavesplatform.protobuf.AmountOuterClass.Amount.Builder, com.wavesplatform.protobuf.AmountOuterClass.AmountOrBuilder>(
                  getAssetAmount(),
                  getParentForChildren(),
                  isClean());
          assetAmount_ = null;
        }
        return assetAmountBuilder_;
      }

      private boolean reissuable_ ;
      /**
       * bool reissuable = 2;
       * @return The reissuable.
       */
      public boolean getReissuable() {
        return reissuable_;
      }
      /**
       * bool reissuable = 2;
       * @param value The reissuable to set.
       * @return This builder for chaining.
       */
      public Builder setReissuable(boolean value) {
        
        reissuable_ = value;
        onChanged();
        return this;
      }
      /**
       * bool reissuable = 2;
       * @return This builder for chaining.
       */
      public Builder clearReissuable() {
        
        reissuable_ = false;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:waves.ReissueTransactionData)
    }

    // @@protoc_insertion_point(class_scope:waves.ReissueTransactionData)
    private static final com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData();
    }

    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public ReissueTransactionData parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ReissueTransactionData(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.wavesplatform.protobuf.transaction.TransactionOuterClass.ReissueTransactionData getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface SetAssetScriptTransactionDataOrBuilder extends
      // @@protoc_insertion_point(interface_extends:waves.SetAssetScriptTransactionData)
      com.google.protobuf.MessageOrBuilder {

    /**
     * bytes asset_id = 1;
     * @return The assetId.
     */
    com.google.protobuf.ByteString getAssetId();

    /**
     * bytes script = 2;
     * @return The script.
     */
    com.google.protobuf.ByteString getScript();
  }
  /**
   * Protobuf type {@code waves.SetAssetScriptTransactionData}
   */
  public  static final class SetAssetScriptTransactionData extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:waves.SetAssetScriptTransactionData)
      SetAssetScriptTransactionDataOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use SetAssetScriptTransactionData.newBuilder() to construct.
    private SetAssetScriptTransactionData(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private SetAssetScriptTransactionData() {
      assetId_ = com.google.protobuf.ByteString.EMPTY;
      script_ = com.google.protobuf.ByteString.EMPTY;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new SetAssetScriptTransactionData();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private SetAssetScriptTransactionData(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {

              assetId_ = input.readBytes();
              break;
            }
            case 18: {

              script_ = input.readBytes();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_SetAssetScriptTransactionData_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_SetAssetScriptTransactionData_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData.class, com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData.Builder.class);
    }

    public static final int ASSET_ID_FIELD_NUMBER = 1;
    private com.google.protobuf.ByteString assetId_;
    /**
     * bytes asset_id = 1;
     * @return The assetId.
     */
    public com.google.protobuf.ByteString getAssetId() {
      return assetId_;
    }

    public static final int SCRIPT_FIELD_NUMBER = 2;
    private com.google.protobuf.ByteString script_;
    /**
     * bytes script = 2;
     * @return The script.
     */
    public com.google.protobuf.ByteString getScript() {
      return script_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!assetId_.isEmpty()) {
        output.writeBytes(1, assetId_);
      }
      if (!script_.isEmpty()) {
        output.writeBytes(2, script_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!assetId_.isEmpty()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, assetId_);
      }
      if (!script_.isEmpty()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, script_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData)) {
        return super.equals(obj);
      }
      com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData other = (com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData) obj;

      if (!getAssetId()
          .equals(other.getAssetId())) return false;
      if (!getScript()
          .equals(other.getScript())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + ASSET_ID_FIELD_NUMBER;
      hash = (53 * hash) + getAssetId().hashCode();
      hash = (37 * hash) + SCRIPT_FIELD_NUMBER;
      hash = (53 * hash) + getScript().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code waves.SetAssetScriptTransactionData}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:waves.SetAssetScriptTransactionData)
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionDataOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_SetAssetScriptTransactionData_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_SetAssetScriptTransactionData_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData.class, com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData.Builder.class);
      }

      // Construct using com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        assetId_ = com.google.protobuf.ByteString.EMPTY;

        script_ = com.google.protobuf.ByteString.EMPTY;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_SetAssetScriptTransactionData_descriptor;
      }

      @java.lang.Override
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData getDefaultInstanceForType() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData.getDefaultInstance();
      }

      @java.lang.Override
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData build() {
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData buildPartial() {
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData result = new com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData(this);
        result.assetId_ = assetId_;
        result.script_ = script_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData) {
          return mergeFrom((com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData other) {
        if (other == com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData.getDefaultInstance()) return this;
        if (other.getAssetId() != com.google.protobuf.ByteString.EMPTY) {
          setAssetId(other.getAssetId());
        }
        if (other.getScript() != com.google.protobuf.ByteString.EMPTY) {
          setScript(other.getScript());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private com.google.protobuf.ByteString assetId_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * bytes asset_id = 1;
       * @return The assetId.
       */
      public com.google.protobuf.ByteString getAssetId() {
        return assetId_;
      }
      /**
       * bytes asset_id = 1;
       * @param value The assetId to set.
       * @return This builder for chaining.
       */
      public Builder setAssetId(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        assetId_ = value;
        onChanged();
        return this;
      }
      /**
       * bytes asset_id = 1;
       * @return This builder for chaining.
       */
      public Builder clearAssetId() {
        
        assetId_ = getDefaultInstance().getAssetId();
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString script_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * bytes script = 2;
       * @return The script.
       */
      public com.google.protobuf.ByteString getScript() {
        return script_;
      }
      /**
       * bytes script = 2;
       * @param value The script to set.
       * @return This builder for chaining.
       */
      public Builder setScript(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        script_ = value;
        onChanged();
        return this;
      }
      /**
       * bytes script = 2;
       * @return This builder for chaining.
       */
      public Builder clearScript() {
        
        script_ = getDefaultInstance().getScript();
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:waves.SetAssetScriptTransactionData)
    }

    // @@protoc_insertion_point(class_scope:waves.SetAssetScriptTransactionData)
    private static final com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData();
    }

    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public SetAssetScriptTransactionData parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new SetAssetScriptTransactionData(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetAssetScriptTransactionData getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface SetScriptTransactionDataOrBuilder extends
      // @@protoc_insertion_point(interface_extends:waves.SetScriptTransactionData)
      com.google.protobuf.MessageOrBuilder {

    /**
     * bytes script = 1;
     * @return The script.
     */
    com.google.protobuf.ByteString getScript();
  }
  /**
   * Protobuf type {@code waves.SetScriptTransactionData}
   */
  public  static final class SetScriptTransactionData extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:waves.SetScriptTransactionData)
      SetScriptTransactionDataOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use SetScriptTransactionData.newBuilder() to construct.
    private SetScriptTransactionData(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private SetScriptTransactionData() {
      script_ = com.google.protobuf.ByteString.EMPTY;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new SetScriptTransactionData();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private SetScriptTransactionData(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {

              script_ = input.readBytes();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_SetScriptTransactionData_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_SetScriptTransactionData_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData.class, com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData.Builder.class);
    }

    public static final int SCRIPT_FIELD_NUMBER = 1;
    private com.google.protobuf.ByteString script_;
    /**
     * bytes script = 1;
     * @return The script.
     */
    public com.google.protobuf.ByteString getScript() {
      return script_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!script_.isEmpty()) {
        output.writeBytes(1, script_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!script_.isEmpty()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, script_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData)) {
        return super.equals(obj);
      }
      com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData other = (com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData) obj;

      if (!getScript()
          .equals(other.getScript())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + SCRIPT_FIELD_NUMBER;
      hash = (53 * hash) + getScript().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code waves.SetScriptTransactionData}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:waves.SetScriptTransactionData)
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionDataOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_SetScriptTransactionData_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_SetScriptTransactionData_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData.class, com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData.Builder.class);
      }

      // Construct using com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        script_ = com.google.protobuf.ByteString.EMPTY;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_SetScriptTransactionData_descriptor;
      }

      @java.lang.Override
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData getDefaultInstanceForType() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData.getDefaultInstance();
      }

      @java.lang.Override
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData build() {
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData buildPartial() {
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData result = new com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData(this);
        result.script_ = script_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData) {
          return mergeFrom((com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData other) {
        if (other == com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData.getDefaultInstance()) return this;
        if (other.getScript() != com.google.protobuf.ByteString.EMPTY) {
          setScript(other.getScript());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private com.google.protobuf.ByteString script_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * bytes script = 1;
       * @return The script.
       */
      public com.google.protobuf.ByteString getScript() {
        return script_;
      }
      /**
       * bytes script = 1;
       * @param value The script to set.
       * @return This builder for chaining.
       */
      public Builder setScript(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        script_ = value;
        onChanged();
        return this;
      }
      /**
       * bytes script = 1;
       * @return This builder for chaining.
       */
      public Builder clearScript() {
        
        script_ = getDefaultInstance().getScript();
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:waves.SetScriptTransactionData)
    }

    // @@protoc_insertion_point(class_scope:waves.SetScriptTransactionData)
    private static final com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData();
    }

    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public SetScriptTransactionData parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new SetScriptTransactionData(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.wavesplatform.protobuf.transaction.TransactionOuterClass.SetScriptTransactionData getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ExchangeTransactionDataOrBuilder extends
      // @@protoc_insertion_point(interface_extends:waves.ExchangeTransactionData)
      com.google.protobuf.MessageOrBuilder {

    /**
     * int64 amount = 1;
     * @return The amount.
     */
    long getAmount();

    /**
     * int64 price = 2;
     * @return The price.
     */
    long getPrice();

    /**
     * int64 buy_matcher_fee = 3;
     * @return The buyMatcherFee.
     */
    long getBuyMatcherFee();

    /**
     * int64 sell_matcher_fee = 4;
     * @return The sellMatcherFee.
     */
    long getSellMatcherFee();

    /**
     * repeated .waves.Order orders = 5;
     */
    java.util.List 
        getOrdersList();
    /**
     * repeated .waves.Order orders = 5;
     */
    com.wavesplatform.protobuf.order.OrderOuterClass.Order getOrders(int index);
    /**
     * repeated .waves.Order orders = 5;
     */
    int getOrdersCount();
    /**
     * repeated .waves.Order orders = 5;
     */
    java.util.List 
        getOrdersOrBuilderList();
    /**
     * repeated .waves.Order orders = 5;
     */
    com.wavesplatform.protobuf.order.OrderOuterClass.OrderOrBuilder getOrdersOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code waves.ExchangeTransactionData}
   */
  public  static final class ExchangeTransactionData extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:waves.ExchangeTransactionData)
      ExchangeTransactionDataOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ExchangeTransactionData.newBuilder() to construct.
    private ExchangeTransactionData(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private ExchangeTransactionData() {
      orders_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ExchangeTransactionData();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ExchangeTransactionData(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {

              amount_ = input.readInt64();
              break;
            }
            case 16: {

              price_ = input.readInt64();
              break;
            }
            case 24: {

              buyMatcherFee_ = input.readInt64();
              break;
            }
            case 32: {

              sellMatcherFee_ = input.readInt64();
              break;
            }
            case 42: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                orders_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              orders_.add(
                  input.readMessage(com.wavesplatform.protobuf.order.OrderOuterClass.Order.parser(), extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          orders_ = java.util.Collections.unmodifiableList(orders_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_ExchangeTransactionData_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_ExchangeTransactionData_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData.class, com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData.Builder.class);
    }

    public static final int AMOUNT_FIELD_NUMBER = 1;
    private long amount_;
    /**
     * int64 amount = 1;
     * @return The amount.
     */
    public long getAmount() {
      return amount_;
    }

    public static final int PRICE_FIELD_NUMBER = 2;
    private long price_;
    /**
     * int64 price = 2;
     * @return The price.
     */
    public long getPrice() {
      return price_;
    }

    public static final int BUY_MATCHER_FEE_FIELD_NUMBER = 3;
    private long buyMatcherFee_;
    /**
     * int64 buy_matcher_fee = 3;
     * @return The buyMatcherFee.
     */
    public long getBuyMatcherFee() {
      return buyMatcherFee_;
    }

    public static final int SELL_MATCHER_FEE_FIELD_NUMBER = 4;
    private long sellMatcherFee_;
    /**
     * int64 sell_matcher_fee = 4;
     * @return The sellMatcherFee.
     */
    public long getSellMatcherFee() {
      return sellMatcherFee_;
    }

    public static final int ORDERS_FIELD_NUMBER = 5;
    private java.util.List orders_;
    /**
     * repeated .waves.Order orders = 5;
     */
    public java.util.List getOrdersList() {
      return orders_;
    }
    /**
     * repeated .waves.Order orders = 5;
     */
    public java.util.List 
        getOrdersOrBuilderList() {
      return orders_;
    }
    /**
     * repeated .waves.Order orders = 5;
     */
    public int getOrdersCount() {
      return orders_.size();
    }
    /**
     * repeated .waves.Order orders = 5;
     */
    public com.wavesplatform.protobuf.order.OrderOuterClass.Order getOrders(int index) {
      return orders_.get(index);
    }
    /**
     * repeated .waves.Order orders = 5;
     */
    public com.wavesplatform.protobuf.order.OrderOuterClass.OrderOrBuilder getOrdersOrBuilder(
        int index) {
      return orders_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (amount_ != 0L) {
        output.writeInt64(1, amount_);
      }
      if (price_ != 0L) {
        output.writeInt64(2, price_);
      }
      if (buyMatcherFee_ != 0L) {
        output.writeInt64(3, buyMatcherFee_);
      }
      if (sellMatcherFee_ != 0L) {
        output.writeInt64(4, sellMatcherFee_);
      }
      for (int i = 0; i < orders_.size(); i++) {
        output.writeMessage(5, orders_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (amount_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, amount_);
      }
      if (price_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, price_);
      }
      if (buyMatcherFee_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(3, buyMatcherFee_);
      }
      if (sellMatcherFee_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(4, sellMatcherFee_);
      }
      for (int i = 0; i < orders_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, orders_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData)) {
        return super.equals(obj);
      }
      com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData other = (com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData) obj;

      if (getAmount()
          != other.getAmount()) return false;
      if (getPrice()
          != other.getPrice()) return false;
      if (getBuyMatcherFee()
          != other.getBuyMatcherFee()) return false;
      if (getSellMatcherFee()
          != other.getSellMatcherFee()) return false;
      if (!getOrdersList()
          .equals(other.getOrdersList())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + AMOUNT_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getAmount());
      hash = (37 * hash) + PRICE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getPrice());
      hash = (37 * hash) + BUY_MATCHER_FEE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getBuyMatcherFee());
      hash = (37 * hash) + SELL_MATCHER_FEE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getSellMatcherFee());
      if (getOrdersCount() > 0) {
        hash = (37 * hash) + ORDERS_FIELD_NUMBER;
        hash = (53 * hash) + getOrdersList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code waves.ExchangeTransactionData}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:waves.ExchangeTransactionData)
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionDataOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_ExchangeTransactionData_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_ExchangeTransactionData_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData.class, com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData.Builder.class);
      }

      // Construct using com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getOrdersFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        amount_ = 0L;

        price_ = 0L;

        buyMatcherFee_ = 0L;

        sellMatcherFee_ = 0L;

        if (ordersBuilder_ == null) {
          orders_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          ordersBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_ExchangeTransactionData_descriptor;
      }

      @java.lang.Override
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData getDefaultInstanceForType() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData.getDefaultInstance();
      }

      @java.lang.Override
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData build() {
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData buildPartial() {
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData result = new com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData(this);
        int from_bitField0_ = bitField0_;
        result.amount_ = amount_;
        result.price_ = price_;
        result.buyMatcherFee_ = buyMatcherFee_;
        result.sellMatcherFee_ = sellMatcherFee_;
        if (ordersBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            orders_ = java.util.Collections.unmodifiableList(orders_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.orders_ = orders_;
        } else {
          result.orders_ = ordersBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData) {
          return mergeFrom((com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData other) {
        if (other == com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData.getDefaultInstance()) return this;
        if (other.getAmount() != 0L) {
          setAmount(other.getAmount());
        }
        if (other.getPrice() != 0L) {
          setPrice(other.getPrice());
        }
        if (other.getBuyMatcherFee() != 0L) {
          setBuyMatcherFee(other.getBuyMatcherFee());
        }
        if (other.getSellMatcherFee() != 0L) {
          setSellMatcherFee(other.getSellMatcherFee());
        }
        if (ordersBuilder_ == null) {
          if (!other.orders_.isEmpty()) {
            if (orders_.isEmpty()) {
              orders_ = other.orders_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureOrdersIsMutable();
              orders_.addAll(other.orders_);
            }
            onChanged();
          }
        } else {
          if (!other.orders_.isEmpty()) {
            if (ordersBuilder_.isEmpty()) {
              ordersBuilder_.dispose();
              ordersBuilder_ = null;
              orders_ = other.orders_;
              bitField0_ = (bitField0_ & ~0x00000001);
              ordersBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getOrdersFieldBuilder() : null;
            } else {
              ordersBuilder_.addAllMessages(other.orders_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private long amount_ ;
      /**
       * int64 amount = 1;
       * @return The amount.
       */
      public long getAmount() {
        return amount_;
      }
      /**
       * int64 amount = 1;
       * @param value The amount to set.
       * @return This builder for chaining.
       */
      public Builder setAmount(long value) {
        
        amount_ = value;
        onChanged();
        return this;
      }
      /**
       * int64 amount = 1;
       * @return This builder for chaining.
       */
      public Builder clearAmount() {
        
        amount_ = 0L;
        onChanged();
        return this;
      }

      private long price_ ;
      /**
       * int64 price = 2;
       * @return The price.
       */
      public long getPrice() {
        return price_;
      }
      /**
       * int64 price = 2;
       * @param value The price to set.
       * @return This builder for chaining.
       */
      public Builder setPrice(long value) {
        
        price_ = value;
        onChanged();
        return this;
      }
      /**
       * int64 price = 2;
       * @return This builder for chaining.
       */
      public Builder clearPrice() {
        
        price_ = 0L;
        onChanged();
        return this;
      }

      private long buyMatcherFee_ ;
      /**
       * int64 buy_matcher_fee = 3;
       * @return The buyMatcherFee.
       */
      public long getBuyMatcherFee() {
        return buyMatcherFee_;
      }
      /**
       * int64 buy_matcher_fee = 3;
       * @param value The buyMatcherFee to set.
       * @return This builder for chaining.
       */
      public Builder setBuyMatcherFee(long value) {
        
        buyMatcherFee_ = value;
        onChanged();
        return this;
      }
      /**
       * int64 buy_matcher_fee = 3;
       * @return This builder for chaining.
       */
      public Builder clearBuyMatcherFee() {
        
        buyMatcherFee_ = 0L;
        onChanged();
        return this;
      }

      private long sellMatcherFee_ ;
      /**
       * int64 sell_matcher_fee = 4;
       * @return The sellMatcherFee.
       */
      public long getSellMatcherFee() {
        return sellMatcherFee_;
      }
      /**
       * int64 sell_matcher_fee = 4;
       * @param value The sellMatcherFee to set.
       * @return This builder for chaining.
       */
      public Builder setSellMatcherFee(long value) {
        
        sellMatcherFee_ = value;
        onChanged();
        return this;
      }
      /**
       * int64 sell_matcher_fee = 4;
       * @return This builder for chaining.
       */
      public Builder clearSellMatcherFee() {
        
        sellMatcherFee_ = 0L;
        onChanged();
        return this;
      }

      private java.util.List orders_ =
        java.util.Collections.emptyList();
      private void ensureOrdersIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          orders_ = new java.util.ArrayList(orders_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.wavesplatform.protobuf.order.OrderOuterClass.Order, com.wavesplatform.protobuf.order.OrderOuterClass.Order.Builder, com.wavesplatform.protobuf.order.OrderOuterClass.OrderOrBuilder> ordersBuilder_;

      /**
       * repeated .waves.Order orders = 5;
       */
      public java.util.List getOrdersList() {
        if (ordersBuilder_ == null) {
          return java.util.Collections.unmodifiableList(orders_);
        } else {
          return ordersBuilder_.getMessageList();
        }
      }
      /**
       * repeated .waves.Order orders = 5;
       */
      public int getOrdersCount() {
        if (ordersBuilder_ == null) {
          return orders_.size();
        } else {
          return ordersBuilder_.getCount();
        }
      }
      /**
       * repeated .waves.Order orders = 5;
       */
      public com.wavesplatform.protobuf.order.OrderOuterClass.Order getOrders(int index) {
        if (ordersBuilder_ == null) {
          return orders_.get(index);
        } else {
          return ordersBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .waves.Order orders = 5;
       */
      public Builder setOrders(
          int index, com.wavesplatform.protobuf.order.OrderOuterClass.Order value) {
        if (ordersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureOrdersIsMutable();
          orders_.set(index, value);
          onChanged();
        } else {
          ordersBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .waves.Order orders = 5;
       */
      public Builder setOrders(
          int index, com.wavesplatform.protobuf.order.OrderOuterClass.Order.Builder builderForValue) {
        if (ordersBuilder_ == null) {
          ensureOrdersIsMutable();
          orders_.set(index, builderForValue.build());
          onChanged();
        } else {
          ordersBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .waves.Order orders = 5;
       */
      public Builder addOrders(com.wavesplatform.protobuf.order.OrderOuterClass.Order value) {
        if (ordersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureOrdersIsMutable();
          orders_.add(value);
          onChanged();
        } else {
          ordersBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .waves.Order orders = 5;
       */
      public Builder addOrders(
          int index, com.wavesplatform.protobuf.order.OrderOuterClass.Order value) {
        if (ordersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureOrdersIsMutable();
          orders_.add(index, value);
          onChanged();
        } else {
          ordersBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .waves.Order orders = 5;
       */
      public Builder addOrders(
          com.wavesplatform.protobuf.order.OrderOuterClass.Order.Builder builderForValue) {
        if (ordersBuilder_ == null) {
          ensureOrdersIsMutable();
          orders_.add(builderForValue.build());
          onChanged();
        } else {
          ordersBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .waves.Order orders = 5;
       */
      public Builder addOrders(
          int index, com.wavesplatform.protobuf.order.OrderOuterClass.Order.Builder builderForValue) {
        if (ordersBuilder_ == null) {
          ensureOrdersIsMutable();
          orders_.add(index, builderForValue.build());
          onChanged();
        } else {
          ordersBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .waves.Order orders = 5;
       */
      public Builder addAllOrders(
          java.lang.Iterable values) {
        if (ordersBuilder_ == null) {
          ensureOrdersIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, orders_);
          onChanged();
        } else {
          ordersBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .waves.Order orders = 5;
       */
      public Builder clearOrders() {
        if (ordersBuilder_ == null) {
          orders_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          ordersBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .waves.Order orders = 5;
       */
      public Builder removeOrders(int index) {
        if (ordersBuilder_ == null) {
          ensureOrdersIsMutable();
          orders_.remove(index);
          onChanged();
        } else {
          ordersBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .waves.Order orders = 5;
       */
      public com.wavesplatform.protobuf.order.OrderOuterClass.Order.Builder getOrdersBuilder(
          int index) {
        return getOrdersFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .waves.Order orders = 5;
       */
      public com.wavesplatform.protobuf.order.OrderOuterClass.OrderOrBuilder getOrdersOrBuilder(
          int index) {
        if (ordersBuilder_ == null) {
          return orders_.get(index);  } else {
          return ordersBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .waves.Order orders = 5;
       */
      public java.util.List 
           getOrdersOrBuilderList() {
        if (ordersBuilder_ != null) {
          return ordersBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(orders_);
        }
      }
      /**
       * repeated .waves.Order orders = 5;
       */
      public com.wavesplatform.protobuf.order.OrderOuterClass.Order.Builder addOrdersBuilder() {
        return getOrdersFieldBuilder().addBuilder(
            com.wavesplatform.protobuf.order.OrderOuterClass.Order.getDefaultInstance());
      }
      /**
       * repeated .waves.Order orders = 5;
       */
      public com.wavesplatform.protobuf.order.OrderOuterClass.Order.Builder addOrdersBuilder(
          int index) {
        return getOrdersFieldBuilder().addBuilder(
            index, com.wavesplatform.protobuf.order.OrderOuterClass.Order.getDefaultInstance());
      }
      /**
       * repeated .waves.Order orders = 5;
       */
      public java.util.List 
           getOrdersBuilderList() {
        return getOrdersFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.wavesplatform.protobuf.order.OrderOuterClass.Order, com.wavesplatform.protobuf.order.OrderOuterClass.Order.Builder, com.wavesplatform.protobuf.order.OrderOuterClass.OrderOrBuilder> 
          getOrdersFieldBuilder() {
        if (ordersBuilder_ == null) {
          ordersBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.wavesplatform.protobuf.order.OrderOuterClass.Order, com.wavesplatform.protobuf.order.OrderOuterClass.Order.Builder, com.wavesplatform.protobuf.order.OrderOuterClass.OrderOrBuilder>(
                  orders_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          orders_ = null;
        }
        return ordersBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:waves.ExchangeTransactionData)
    }

    // @@protoc_insertion_point(class_scope:waves.ExchangeTransactionData)
    private static final com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData();
    }

    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public ExchangeTransactionData parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ExchangeTransactionData(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.wavesplatform.protobuf.transaction.TransactionOuterClass.ExchangeTransactionData getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface SponsorFeeTransactionDataOrBuilder extends
      // @@protoc_insertion_point(interface_extends:waves.SponsorFeeTransactionData)
      com.google.protobuf.MessageOrBuilder {

    /**
     * .waves.Amount min_fee = 1;
     * @return Whether the minFee field is set.
     */
    boolean hasMinFee();
    /**
     * .waves.Amount min_fee = 1;
     * @return The minFee.
     */
    com.wavesplatform.protobuf.AmountOuterClass.Amount getMinFee();
    /**
     * .waves.Amount min_fee = 1;
     */
    com.wavesplatform.protobuf.AmountOuterClass.AmountOrBuilder getMinFeeOrBuilder();
  }
  /**
   * Protobuf type {@code waves.SponsorFeeTransactionData}
   */
  public  static final class SponsorFeeTransactionData extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:waves.SponsorFeeTransactionData)
      SponsorFeeTransactionDataOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use SponsorFeeTransactionData.newBuilder() to construct.
    private SponsorFeeTransactionData(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private SponsorFeeTransactionData() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new SponsorFeeTransactionData();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private SponsorFeeTransactionData(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              com.wavesplatform.protobuf.AmountOuterClass.Amount.Builder subBuilder = null;
              if (minFee_ != null) {
                subBuilder = minFee_.toBuilder();
              }
              minFee_ = input.readMessage(com.wavesplatform.protobuf.AmountOuterClass.Amount.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(minFee_);
                minFee_ = subBuilder.buildPartial();
              }

              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_SponsorFeeTransactionData_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_SponsorFeeTransactionData_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData.class, com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData.Builder.class);
    }

    public static final int MIN_FEE_FIELD_NUMBER = 1;
    private com.wavesplatform.protobuf.AmountOuterClass.Amount minFee_;
    /**
     * .waves.Amount min_fee = 1;
     * @return Whether the minFee field is set.
     */
    public boolean hasMinFee() {
      return minFee_ != null;
    }
    /**
     * .waves.Amount min_fee = 1;
     * @return The minFee.
     */
    public com.wavesplatform.protobuf.AmountOuterClass.Amount getMinFee() {
      return minFee_ == null ? com.wavesplatform.protobuf.AmountOuterClass.Amount.getDefaultInstance() : minFee_;
    }
    /**
     * .waves.Amount min_fee = 1;
     */
    public com.wavesplatform.protobuf.AmountOuterClass.AmountOrBuilder getMinFeeOrBuilder() {
      return getMinFee();
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (minFee_ != null) {
        output.writeMessage(1, getMinFee());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (minFee_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getMinFee());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData)) {
        return super.equals(obj);
      }
      com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData other = (com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData) obj;

      if (hasMinFee() != other.hasMinFee()) return false;
      if (hasMinFee()) {
        if (!getMinFee()
            .equals(other.getMinFee())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasMinFee()) {
        hash = (37 * hash) + MIN_FEE_FIELD_NUMBER;
        hash = (53 * hash) + getMinFee().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code waves.SponsorFeeTransactionData}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:waves.SponsorFeeTransactionData)
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionDataOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_SponsorFeeTransactionData_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_SponsorFeeTransactionData_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData.class, com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData.Builder.class);
      }

      // Construct using com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (minFeeBuilder_ == null) {
          minFee_ = null;
        } else {
          minFee_ = null;
          minFeeBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_SponsorFeeTransactionData_descriptor;
      }

      @java.lang.Override
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData getDefaultInstanceForType() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData.getDefaultInstance();
      }

      @java.lang.Override
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData build() {
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData buildPartial() {
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData result = new com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData(this);
        if (minFeeBuilder_ == null) {
          result.minFee_ = minFee_;
        } else {
          result.minFee_ = minFeeBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData) {
          return mergeFrom((com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData other) {
        if (other == com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData.getDefaultInstance()) return this;
        if (other.hasMinFee()) {
          mergeMinFee(other.getMinFee());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private com.wavesplatform.protobuf.AmountOuterClass.Amount minFee_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.wavesplatform.protobuf.AmountOuterClass.Amount, com.wavesplatform.protobuf.AmountOuterClass.Amount.Builder, com.wavesplatform.protobuf.AmountOuterClass.AmountOrBuilder> minFeeBuilder_;
      /**
       * .waves.Amount min_fee = 1;
       * @return Whether the minFee field is set.
       */
      public boolean hasMinFee() {
        return minFeeBuilder_ != null || minFee_ != null;
      }
      /**
       * .waves.Amount min_fee = 1;
       * @return The minFee.
       */
      public com.wavesplatform.protobuf.AmountOuterClass.Amount getMinFee() {
        if (minFeeBuilder_ == null) {
          return minFee_ == null ? com.wavesplatform.protobuf.AmountOuterClass.Amount.getDefaultInstance() : minFee_;
        } else {
          return minFeeBuilder_.getMessage();
        }
      }
      /**
       * .waves.Amount min_fee = 1;
       */
      public Builder setMinFee(com.wavesplatform.protobuf.AmountOuterClass.Amount value) {
        if (minFeeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          minFee_ = value;
          onChanged();
        } else {
          minFeeBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .waves.Amount min_fee = 1;
       */
      public Builder setMinFee(
          com.wavesplatform.protobuf.AmountOuterClass.Amount.Builder builderForValue) {
        if (minFeeBuilder_ == null) {
          minFee_ = builderForValue.build();
          onChanged();
        } else {
          minFeeBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .waves.Amount min_fee = 1;
       */
      public Builder mergeMinFee(com.wavesplatform.protobuf.AmountOuterClass.Amount value) {
        if (minFeeBuilder_ == null) {
          if (minFee_ != null) {
            minFee_ =
              com.wavesplatform.protobuf.AmountOuterClass.Amount.newBuilder(minFee_).mergeFrom(value).buildPartial();
          } else {
            minFee_ = value;
          }
          onChanged();
        } else {
          minFeeBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .waves.Amount min_fee = 1;
       */
      public Builder clearMinFee() {
        if (minFeeBuilder_ == null) {
          minFee_ = null;
          onChanged();
        } else {
          minFee_ = null;
          minFeeBuilder_ = null;
        }

        return this;
      }
      /**
       * .waves.Amount min_fee = 1;
       */
      public com.wavesplatform.protobuf.AmountOuterClass.Amount.Builder getMinFeeBuilder() {
        
        onChanged();
        return getMinFeeFieldBuilder().getBuilder();
      }
      /**
       * .waves.Amount min_fee = 1;
       */
      public com.wavesplatform.protobuf.AmountOuterClass.AmountOrBuilder getMinFeeOrBuilder() {
        if (minFeeBuilder_ != null) {
          return minFeeBuilder_.getMessageOrBuilder();
        } else {
          return minFee_ == null ?
              com.wavesplatform.protobuf.AmountOuterClass.Amount.getDefaultInstance() : minFee_;
        }
      }
      /**
       * .waves.Amount min_fee = 1;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.wavesplatform.protobuf.AmountOuterClass.Amount, com.wavesplatform.protobuf.AmountOuterClass.Amount.Builder, com.wavesplatform.protobuf.AmountOuterClass.AmountOrBuilder> 
          getMinFeeFieldBuilder() {
        if (minFeeBuilder_ == null) {
          minFeeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.wavesplatform.protobuf.AmountOuterClass.Amount, com.wavesplatform.protobuf.AmountOuterClass.Amount.Builder, com.wavesplatform.protobuf.AmountOuterClass.AmountOrBuilder>(
                  getMinFee(),
                  getParentForChildren(),
                  isClean());
          minFee_ = null;
        }
        return minFeeBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:waves.SponsorFeeTransactionData)
    }

    // @@protoc_insertion_point(class_scope:waves.SponsorFeeTransactionData)
    private static final com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData();
    }

    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public SponsorFeeTransactionData parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new SponsorFeeTransactionData(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.wavesplatform.protobuf.transaction.TransactionOuterClass.SponsorFeeTransactionData getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface InvokeScriptTransactionDataOrBuilder extends
      // @@protoc_insertion_point(interface_extends:waves.InvokeScriptTransactionData)
      com.google.protobuf.MessageOrBuilder {

    /**
     * .waves.Recipient d_app = 1;
     * @return Whether the dApp field is set.
     */
    boolean hasDApp();
    /**
     * .waves.Recipient d_app = 1;
     * @return The dApp.
     */
    com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient getDApp();
    /**
     * .waves.Recipient d_app = 1;
     */
    com.wavesplatform.protobuf.transaction.RecipientOuterClass.RecipientOrBuilder getDAppOrBuilder();

    /**
     * bytes function_call = 2;
     * @return The functionCall.
     */
    com.google.protobuf.ByteString getFunctionCall();

    /**
     * repeated .waves.Amount payments = 3;
     */
    java.util.List 
        getPaymentsList();
    /**
     * repeated .waves.Amount payments = 3;
     */
    com.wavesplatform.protobuf.AmountOuterClass.Amount getPayments(int index);
    /**
     * repeated .waves.Amount payments = 3;
     */
    int getPaymentsCount();
    /**
     * repeated .waves.Amount payments = 3;
     */
    java.util.List 
        getPaymentsOrBuilderList();
    /**
     * repeated .waves.Amount payments = 3;
     */
    com.wavesplatform.protobuf.AmountOuterClass.AmountOrBuilder getPaymentsOrBuilder(
        int index);

    /**
     * int32 fee_increase_factor = 4;
     * @return The feeIncreaseFactor.
     */
    int getFeeIncreaseFactor();
  }
  /**
   * Protobuf type {@code waves.InvokeScriptTransactionData}
   */
  public  static final class InvokeScriptTransactionData extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:waves.InvokeScriptTransactionData)
      InvokeScriptTransactionDataOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use InvokeScriptTransactionData.newBuilder() to construct.
    private InvokeScriptTransactionData(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private InvokeScriptTransactionData() {
      functionCall_ = com.google.protobuf.ByteString.EMPTY;
      payments_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new InvokeScriptTransactionData();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private InvokeScriptTransactionData(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient.Builder subBuilder = null;
              if (dApp_ != null) {
                subBuilder = dApp_.toBuilder();
              }
              dApp_ = input.readMessage(com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(dApp_);
                dApp_ = subBuilder.buildPartial();
              }

              break;
            }
            case 18: {

              functionCall_ = input.readBytes();
              break;
            }
            case 26: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                payments_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              payments_.add(
                  input.readMessage(com.wavesplatform.protobuf.AmountOuterClass.Amount.parser(), extensionRegistry));
              break;
            }
            case 32: {

              feeIncreaseFactor_ = input.readInt32();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          payments_ = java.util.Collections.unmodifiableList(payments_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_InvokeScriptTransactionData_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_InvokeScriptTransactionData_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData.class, com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData.Builder.class);
    }

    public static final int D_APP_FIELD_NUMBER = 1;
    private com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient dApp_;
    /**
     * .waves.Recipient d_app = 1;
     * @return Whether the dApp field is set.
     */
    public boolean hasDApp() {
      return dApp_ != null;
    }
    /**
     * .waves.Recipient d_app = 1;
     * @return The dApp.
     */
    public com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient getDApp() {
      return dApp_ == null ? com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient.getDefaultInstance() : dApp_;
    }
    /**
     * .waves.Recipient d_app = 1;
     */
    public com.wavesplatform.protobuf.transaction.RecipientOuterClass.RecipientOrBuilder getDAppOrBuilder() {
      return getDApp();
    }

    public static final int FUNCTION_CALL_FIELD_NUMBER = 2;
    private com.google.protobuf.ByteString functionCall_;
    /**
     * bytes function_call = 2;
     * @return The functionCall.
     */
    public com.google.protobuf.ByteString getFunctionCall() {
      return functionCall_;
    }

    public static final int PAYMENTS_FIELD_NUMBER = 3;
    private java.util.List payments_;
    /**
     * repeated .waves.Amount payments = 3;
     */
    public java.util.List getPaymentsList() {
      return payments_;
    }
    /**
     * repeated .waves.Amount payments = 3;
     */
    public java.util.List 
        getPaymentsOrBuilderList() {
      return payments_;
    }
    /**
     * repeated .waves.Amount payments = 3;
     */
    public int getPaymentsCount() {
      return payments_.size();
    }
    /**
     * repeated .waves.Amount payments = 3;
     */
    public com.wavesplatform.protobuf.AmountOuterClass.Amount getPayments(int index) {
      return payments_.get(index);
    }
    /**
     * repeated .waves.Amount payments = 3;
     */
    public com.wavesplatform.protobuf.AmountOuterClass.AmountOrBuilder getPaymentsOrBuilder(
        int index) {
      return payments_.get(index);
    }

    public static final int FEE_INCREASE_FACTOR_FIELD_NUMBER = 4;
    private int feeIncreaseFactor_;
    /**
     * int32 fee_increase_factor = 4;
     * @return The feeIncreaseFactor.
     */
    public int getFeeIncreaseFactor() {
      return feeIncreaseFactor_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (dApp_ != null) {
        output.writeMessage(1, getDApp());
      }
      if (!functionCall_.isEmpty()) {
        output.writeBytes(2, functionCall_);
      }
      for (int i = 0; i < payments_.size(); i++) {
        output.writeMessage(3, payments_.get(i));
      }
      if (feeIncreaseFactor_ != 0) {
        output.writeInt32(4, feeIncreaseFactor_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (dApp_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getDApp());
      }
      if (!functionCall_.isEmpty()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, functionCall_);
      }
      for (int i = 0; i < payments_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, payments_.get(i));
      }
      if (feeIncreaseFactor_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, feeIncreaseFactor_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData)) {
        return super.equals(obj);
      }
      com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData other = (com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData) obj;

      if (hasDApp() != other.hasDApp()) return false;
      if (hasDApp()) {
        if (!getDApp()
            .equals(other.getDApp())) return false;
      }
      if (!getFunctionCall()
          .equals(other.getFunctionCall())) return false;
      if (!getPaymentsList()
          .equals(other.getPaymentsList())) return false;
      if (getFeeIncreaseFactor()
          != other.getFeeIncreaseFactor()) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasDApp()) {
        hash = (37 * hash) + D_APP_FIELD_NUMBER;
        hash = (53 * hash) + getDApp().hashCode();
      }
      hash = (37 * hash) + FUNCTION_CALL_FIELD_NUMBER;
      hash = (53 * hash) + getFunctionCall().hashCode();
      if (getPaymentsCount() > 0) {
        hash = (37 * hash) + PAYMENTS_FIELD_NUMBER;
        hash = (53 * hash) + getPaymentsList().hashCode();
      }
      hash = (37 * hash) + FEE_INCREASE_FACTOR_FIELD_NUMBER;
      hash = (53 * hash) + getFeeIncreaseFactor();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code waves.InvokeScriptTransactionData}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:waves.InvokeScriptTransactionData)
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionDataOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_InvokeScriptTransactionData_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_InvokeScriptTransactionData_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData.class, com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData.Builder.class);
      }

      // Construct using com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getPaymentsFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (dAppBuilder_ == null) {
          dApp_ = null;
        } else {
          dApp_ = null;
          dAppBuilder_ = null;
        }
        functionCall_ = com.google.protobuf.ByteString.EMPTY;

        if (paymentsBuilder_ == null) {
          payments_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          paymentsBuilder_.clear();
        }
        feeIncreaseFactor_ = 0;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_InvokeScriptTransactionData_descriptor;
      }

      @java.lang.Override
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData getDefaultInstanceForType() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData.getDefaultInstance();
      }

      @java.lang.Override
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData build() {
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData buildPartial() {
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData result = new com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData(this);
        int from_bitField0_ = bitField0_;
        if (dAppBuilder_ == null) {
          result.dApp_ = dApp_;
        } else {
          result.dApp_ = dAppBuilder_.build();
        }
        result.functionCall_ = functionCall_;
        if (paymentsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            payments_ = java.util.Collections.unmodifiableList(payments_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.payments_ = payments_;
        } else {
          result.payments_ = paymentsBuilder_.build();
        }
        result.feeIncreaseFactor_ = feeIncreaseFactor_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData) {
          return mergeFrom((com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData other) {
        if (other == com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData.getDefaultInstance()) return this;
        if (other.hasDApp()) {
          mergeDApp(other.getDApp());
        }
        if (other.getFunctionCall() != com.google.protobuf.ByteString.EMPTY) {
          setFunctionCall(other.getFunctionCall());
        }
        if (paymentsBuilder_ == null) {
          if (!other.payments_.isEmpty()) {
            if (payments_.isEmpty()) {
              payments_ = other.payments_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensurePaymentsIsMutable();
              payments_.addAll(other.payments_);
            }
            onChanged();
          }
        } else {
          if (!other.payments_.isEmpty()) {
            if (paymentsBuilder_.isEmpty()) {
              paymentsBuilder_.dispose();
              paymentsBuilder_ = null;
              payments_ = other.payments_;
              bitField0_ = (bitField0_ & ~0x00000001);
              paymentsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getPaymentsFieldBuilder() : null;
            } else {
              paymentsBuilder_.addAllMessages(other.payments_);
            }
          }
        }
        if (other.getFeeIncreaseFactor() != 0) {
          setFeeIncreaseFactor(other.getFeeIncreaseFactor());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient dApp_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient, com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient.Builder, com.wavesplatform.protobuf.transaction.RecipientOuterClass.RecipientOrBuilder> dAppBuilder_;
      /**
       * .waves.Recipient d_app = 1;
       * @return Whether the dApp field is set.
       */
      public boolean hasDApp() {
        return dAppBuilder_ != null || dApp_ != null;
      }
      /**
       * .waves.Recipient d_app = 1;
       * @return The dApp.
       */
      public com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient getDApp() {
        if (dAppBuilder_ == null) {
          return dApp_ == null ? com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient.getDefaultInstance() : dApp_;
        } else {
          return dAppBuilder_.getMessage();
        }
      }
      /**
       * .waves.Recipient d_app = 1;
       */
      public Builder setDApp(com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient value) {
        if (dAppBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          dApp_ = value;
          onChanged();
        } else {
          dAppBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * .waves.Recipient d_app = 1;
       */
      public Builder setDApp(
          com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient.Builder builderForValue) {
        if (dAppBuilder_ == null) {
          dApp_ = builderForValue.build();
          onChanged();
        } else {
          dAppBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * .waves.Recipient d_app = 1;
       */
      public Builder mergeDApp(com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient value) {
        if (dAppBuilder_ == null) {
          if (dApp_ != null) {
            dApp_ =
              com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient.newBuilder(dApp_).mergeFrom(value).buildPartial();
          } else {
            dApp_ = value;
          }
          onChanged();
        } else {
          dAppBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * .waves.Recipient d_app = 1;
       */
      public Builder clearDApp() {
        if (dAppBuilder_ == null) {
          dApp_ = null;
          onChanged();
        } else {
          dApp_ = null;
          dAppBuilder_ = null;
        }

        return this;
      }
      /**
       * .waves.Recipient d_app = 1;
       */
      public com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient.Builder getDAppBuilder() {
        
        onChanged();
        return getDAppFieldBuilder().getBuilder();
      }
      /**
       * .waves.Recipient d_app = 1;
       */
      public com.wavesplatform.protobuf.transaction.RecipientOuterClass.RecipientOrBuilder getDAppOrBuilder() {
        if (dAppBuilder_ != null) {
          return dAppBuilder_.getMessageOrBuilder();
        } else {
          return dApp_ == null ?
              com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient.getDefaultInstance() : dApp_;
        }
      }
      /**
       * .waves.Recipient d_app = 1;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient, com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient.Builder, com.wavesplatform.protobuf.transaction.RecipientOuterClass.RecipientOrBuilder> 
          getDAppFieldBuilder() {
        if (dAppBuilder_ == null) {
          dAppBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient, com.wavesplatform.protobuf.transaction.RecipientOuterClass.Recipient.Builder, com.wavesplatform.protobuf.transaction.RecipientOuterClass.RecipientOrBuilder>(
                  getDApp(),
                  getParentForChildren(),
                  isClean());
          dApp_ = null;
        }
        return dAppBuilder_;
      }

      private com.google.protobuf.ByteString functionCall_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * bytes function_call = 2;
       * @return The functionCall.
       */
      public com.google.protobuf.ByteString getFunctionCall() {
        return functionCall_;
      }
      /**
       * bytes function_call = 2;
       * @param value The functionCall to set.
       * @return This builder for chaining.
       */
      public Builder setFunctionCall(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        functionCall_ = value;
        onChanged();
        return this;
      }
      /**
       * bytes function_call = 2;
       * @return This builder for chaining.
       */
      public Builder clearFunctionCall() {
        
        functionCall_ = getDefaultInstance().getFunctionCall();
        onChanged();
        return this;
      }

      private java.util.List payments_ =
        java.util.Collections.emptyList();
      private void ensurePaymentsIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          payments_ = new java.util.ArrayList(payments_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.wavesplatform.protobuf.AmountOuterClass.Amount, com.wavesplatform.protobuf.AmountOuterClass.Amount.Builder, com.wavesplatform.protobuf.AmountOuterClass.AmountOrBuilder> paymentsBuilder_;

      /**
       * repeated .waves.Amount payments = 3;
       */
      public java.util.List getPaymentsList() {
        if (paymentsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(payments_);
        } else {
          return paymentsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .waves.Amount payments = 3;
       */
      public int getPaymentsCount() {
        if (paymentsBuilder_ == null) {
          return payments_.size();
        } else {
          return paymentsBuilder_.getCount();
        }
      }
      /**
       * repeated .waves.Amount payments = 3;
       */
      public com.wavesplatform.protobuf.AmountOuterClass.Amount getPayments(int index) {
        if (paymentsBuilder_ == null) {
          return payments_.get(index);
        } else {
          return paymentsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .waves.Amount payments = 3;
       */
      public Builder setPayments(
          int index, com.wavesplatform.protobuf.AmountOuterClass.Amount value) {
        if (paymentsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePaymentsIsMutable();
          payments_.set(index, value);
          onChanged();
        } else {
          paymentsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .waves.Amount payments = 3;
       */
      public Builder setPayments(
          int index, com.wavesplatform.protobuf.AmountOuterClass.Amount.Builder builderForValue) {
        if (paymentsBuilder_ == null) {
          ensurePaymentsIsMutable();
          payments_.set(index, builderForValue.build());
          onChanged();
        } else {
          paymentsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .waves.Amount payments = 3;
       */
      public Builder addPayments(com.wavesplatform.protobuf.AmountOuterClass.Amount value) {
        if (paymentsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePaymentsIsMutable();
          payments_.add(value);
          onChanged();
        } else {
          paymentsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .waves.Amount payments = 3;
       */
      public Builder addPayments(
          int index, com.wavesplatform.protobuf.AmountOuterClass.Amount value) {
        if (paymentsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePaymentsIsMutable();
          payments_.add(index, value);
          onChanged();
        } else {
          paymentsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .waves.Amount payments = 3;
       */
      public Builder addPayments(
          com.wavesplatform.protobuf.AmountOuterClass.Amount.Builder builderForValue) {
        if (paymentsBuilder_ == null) {
          ensurePaymentsIsMutable();
          payments_.add(builderForValue.build());
          onChanged();
        } else {
          paymentsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .waves.Amount payments = 3;
       */
      public Builder addPayments(
          int index, com.wavesplatform.protobuf.AmountOuterClass.Amount.Builder builderForValue) {
        if (paymentsBuilder_ == null) {
          ensurePaymentsIsMutable();
          payments_.add(index, builderForValue.build());
          onChanged();
        } else {
          paymentsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .waves.Amount payments = 3;
       */
      public Builder addAllPayments(
          java.lang.Iterable values) {
        if (paymentsBuilder_ == null) {
          ensurePaymentsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, payments_);
          onChanged();
        } else {
          paymentsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .waves.Amount payments = 3;
       */
      public Builder clearPayments() {
        if (paymentsBuilder_ == null) {
          payments_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          paymentsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .waves.Amount payments = 3;
       */
      public Builder removePayments(int index) {
        if (paymentsBuilder_ == null) {
          ensurePaymentsIsMutable();
          payments_.remove(index);
          onChanged();
        } else {
          paymentsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .waves.Amount payments = 3;
       */
      public com.wavesplatform.protobuf.AmountOuterClass.Amount.Builder getPaymentsBuilder(
          int index) {
        return getPaymentsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .waves.Amount payments = 3;
       */
      public com.wavesplatform.protobuf.AmountOuterClass.AmountOrBuilder getPaymentsOrBuilder(
          int index) {
        if (paymentsBuilder_ == null) {
          return payments_.get(index);  } else {
          return paymentsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .waves.Amount payments = 3;
       */
      public java.util.List 
           getPaymentsOrBuilderList() {
        if (paymentsBuilder_ != null) {
          return paymentsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(payments_);
        }
      }
      /**
       * repeated .waves.Amount payments = 3;
       */
      public com.wavesplatform.protobuf.AmountOuterClass.Amount.Builder addPaymentsBuilder() {
        return getPaymentsFieldBuilder().addBuilder(
            com.wavesplatform.protobuf.AmountOuterClass.Amount.getDefaultInstance());
      }
      /**
       * repeated .waves.Amount payments = 3;
       */
      public com.wavesplatform.protobuf.AmountOuterClass.Amount.Builder addPaymentsBuilder(
          int index) {
        return getPaymentsFieldBuilder().addBuilder(
            index, com.wavesplatform.protobuf.AmountOuterClass.Amount.getDefaultInstance());
      }
      /**
       * repeated .waves.Amount payments = 3;
       */
      public java.util.List 
           getPaymentsBuilderList() {
        return getPaymentsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.wavesplatform.protobuf.AmountOuterClass.Amount, com.wavesplatform.protobuf.AmountOuterClass.Amount.Builder, com.wavesplatform.protobuf.AmountOuterClass.AmountOrBuilder> 
          getPaymentsFieldBuilder() {
        if (paymentsBuilder_ == null) {
          paymentsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.wavesplatform.protobuf.AmountOuterClass.Amount, com.wavesplatform.protobuf.AmountOuterClass.Amount.Builder, com.wavesplatform.protobuf.AmountOuterClass.AmountOrBuilder>(
                  payments_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          payments_ = null;
        }
        return paymentsBuilder_;
      }

      private int feeIncreaseFactor_ ;
      /**
       * int32 fee_increase_factor = 4;
       * @return The feeIncreaseFactor.
       */
      public int getFeeIncreaseFactor() {
        return feeIncreaseFactor_;
      }
      /**
       * int32 fee_increase_factor = 4;
       * @param value The feeIncreaseFactor to set.
       * @return This builder for chaining.
       */
      public Builder setFeeIncreaseFactor(int value) {
        
        feeIncreaseFactor_ = value;
        onChanged();
        return this;
      }
      /**
       * int32 fee_increase_factor = 4;
       * @return This builder for chaining.
       */
      public Builder clearFeeIncreaseFactor() {
        
        feeIncreaseFactor_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:waves.InvokeScriptTransactionData)
    }

    // @@protoc_insertion_point(class_scope:waves.InvokeScriptTransactionData)
    private static final com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData();
    }

    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public InvokeScriptTransactionData parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new InvokeScriptTransactionData(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.wavesplatform.protobuf.transaction.TransactionOuterClass.InvokeScriptTransactionData getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface UpdateAssetInfoTransactionDataOrBuilder extends
      // @@protoc_insertion_point(interface_extends:waves.UpdateAssetInfoTransactionData)
      com.google.protobuf.MessageOrBuilder {

    /**
     * bytes asset_id = 1;
     * @return The assetId.
     */
    com.google.protobuf.ByteString getAssetId();

    /**
     * string name = 2;
     * @return The name.
     */
    java.lang.String getName();
    /**
     * string name = 2;
     * @return The bytes for name.
     */
    com.google.protobuf.ByteString
        getNameBytes();

    /**
     * string description = 3;
     * @return The description.
     */
    java.lang.String getDescription();
    /**
     * string description = 3;
     * @return The bytes for description.
     */
    com.google.protobuf.ByteString
        getDescriptionBytes();
  }
  /**
   * Protobuf type {@code waves.UpdateAssetInfoTransactionData}
   */
  public  static final class UpdateAssetInfoTransactionData extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:waves.UpdateAssetInfoTransactionData)
      UpdateAssetInfoTransactionDataOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use UpdateAssetInfoTransactionData.newBuilder() to construct.
    private UpdateAssetInfoTransactionData(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private UpdateAssetInfoTransactionData() {
      assetId_ = com.google.protobuf.ByteString.EMPTY;
      name_ = "";
      description_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new UpdateAssetInfoTransactionData();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private UpdateAssetInfoTransactionData(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {

              assetId_ = input.readBytes();
              break;
            }
            case 18: {
              java.lang.String s = input.readStringRequireUtf8();

              name_ = s;
              break;
            }
            case 26: {
              java.lang.String s = input.readStringRequireUtf8();

              description_ = s;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_UpdateAssetInfoTransactionData_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_UpdateAssetInfoTransactionData_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData.class, com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData.Builder.class);
    }

    public static final int ASSET_ID_FIELD_NUMBER = 1;
    private com.google.protobuf.ByteString assetId_;
    /**
     * bytes asset_id = 1;
     * @return The assetId.
     */
    public com.google.protobuf.ByteString getAssetId() {
      return assetId_;
    }

    public static final int NAME_FIELD_NUMBER = 2;
    private volatile java.lang.Object name_;
    /**
     * string name = 2;
     * @return The name.
     */
    public java.lang.String getName() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        name_ = s;
        return s;
      }
    }
    /**
     * string name = 2;
     * @return The bytes for name.
     */
    public com.google.protobuf.ByteString
        getNameBytes() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        name_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DESCRIPTION_FIELD_NUMBER = 3;
    private volatile java.lang.Object description_;
    /**
     * string description = 3;
     * @return The description.
     */
    public java.lang.String getDescription() {
      java.lang.Object ref = description_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        description_ = s;
        return s;
      }
    }
    /**
     * string description = 3;
     * @return The bytes for description.
     */
    public com.google.protobuf.ByteString
        getDescriptionBytes() {
      java.lang.Object ref = description_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        description_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!assetId_.isEmpty()) {
        output.writeBytes(1, assetId_);
      }
      if (!getNameBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, name_);
      }
      if (!getDescriptionBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, description_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!assetId_.isEmpty()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, assetId_);
      }
      if (!getNameBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, name_);
      }
      if (!getDescriptionBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, description_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData)) {
        return super.equals(obj);
      }
      com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData other = (com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData) obj;

      if (!getAssetId()
          .equals(other.getAssetId())) return false;
      if (!getName()
          .equals(other.getName())) return false;
      if (!getDescription()
          .equals(other.getDescription())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + ASSET_ID_FIELD_NUMBER;
      hash = (53 * hash) + getAssetId().hashCode();
      hash = (37 * hash) + NAME_FIELD_NUMBER;
      hash = (53 * hash) + getName().hashCode();
      hash = (37 * hash) + DESCRIPTION_FIELD_NUMBER;
      hash = (53 * hash) + getDescription().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code waves.UpdateAssetInfoTransactionData}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:waves.UpdateAssetInfoTransactionData)
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionDataOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_UpdateAssetInfoTransactionData_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_UpdateAssetInfoTransactionData_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData.class, com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData.Builder.class);
      }

      // Construct using com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        assetId_ = com.google.protobuf.ByteString.EMPTY;

        name_ = "";

        description_ = "";

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_UpdateAssetInfoTransactionData_descriptor;
      }

      @java.lang.Override
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData getDefaultInstanceForType() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData.getDefaultInstance();
      }

      @java.lang.Override
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData build() {
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData buildPartial() {
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData result = new com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData(this);
        result.assetId_ = assetId_;
        result.name_ = name_;
        result.description_ = description_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData) {
          return mergeFrom((com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData other) {
        if (other == com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData.getDefaultInstance()) return this;
        if (other.getAssetId() != com.google.protobuf.ByteString.EMPTY) {
          setAssetId(other.getAssetId());
        }
        if (!other.getName().isEmpty()) {
          name_ = other.name_;
          onChanged();
        }
        if (!other.getDescription().isEmpty()) {
          description_ = other.description_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private com.google.protobuf.ByteString assetId_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * bytes asset_id = 1;
       * @return The assetId.
       */
      public com.google.protobuf.ByteString getAssetId() {
        return assetId_;
      }
      /**
       * bytes asset_id = 1;
       * @param value The assetId to set.
       * @return This builder for chaining.
       */
      public Builder setAssetId(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        assetId_ = value;
        onChanged();
        return this;
      }
      /**
       * bytes asset_id = 1;
       * @return This builder for chaining.
       */
      public Builder clearAssetId() {
        
        assetId_ = getDefaultInstance().getAssetId();
        onChanged();
        return this;
      }

      private java.lang.Object name_ = "";
      /**
       * string name = 2;
       * @return The name.
       */
      public java.lang.String getName() {
        java.lang.Object ref = name_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          name_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string name = 2;
       * @return The bytes for name.
       */
      public com.google.protobuf.ByteString
          getNameBytes() {
        java.lang.Object ref = name_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          name_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string name = 2;
       * @param value The name to set.
       * @return This builder for chaining.
       */
      public Builder setName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        name_ = value;
        onChanged();
        return this;
      }
      /**
       * string name = 2;
       * @return This builder for chaining.
       */
      public Builder clearName() {
        
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       * string name = 2;
       * @param value The bytes for name to set.
       * @return This builder for chaining.
       */
      public Builder setNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        name_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object description_ = "";
      /**
       * string description = 3;
       * @return The description.
       */
      public java.lang.String getDescription() {
        java.lang.Object ref = description_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          description_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * string description = 3;
       * @return The bytes for description.
       */
      public com.google.protobuf.ByteString
          getDescriptionBytes() {
        java.lang.Object ref = description_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          description_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * string description = 3;
       * @param value The description to set.
       * @return This builder for chaining.
       */
      public Builder setDescription(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        description_ = value;
        onChanged();
        return this;
      }
      /**
       * string description = 3;
       * @return This builder for chaining.
       */
      public Builder clearDescription() {
        
        description_ = getDefaultInstance().getDescription();
        onChanged();
        return this;
      }
      /**
       * string description = 3;
       * @param value The bytes for description to set.
       * @return This builder for chaining.
       */
      public Builder setDescriptionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        description_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:waves.UpdateAssetInfoTransactionData)
    }

    // @@protoc_insertion_point(class_scope:waves.UpdateAssetInfoTransactionData)
    private static final com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData();
    }

    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public UpdateAssetInfoTransactionData parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new UpdateAssetInfoTransactionData(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.wavesplatform.protobuf.transaction.TransactionOuterClass.UpdateAssetInfoTransactionData getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ContinuationTransactionDataOrBuilder extends
      // @@protoc_insertion_point(interface_extends:waves.ContinuationTransactionData)
      com.google.protobuf.MessageOrBuilder {

    /**
     * bytes invoke_transaction_id = 1;
     * @return The invokeTransactionId.
     */
    com.google.protobuf.ByteString getInvokeTransactionId();

    /**
     * int32 nonce = 2;
     * @return The nonce.
     */
    int getNonce();
  }
  /**
   * Protobuf type {@code waves.ContinuationTransactionData}
   */
  public  static final class ContinuationTransactionData extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:waves.ContinuationTransactionData)
      ContinuationTransactionDataOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ContinuationTransactionData.newBuilder() to construct.
    private ContinuationTransactionData(com.google.protobuf.GeneratedMessageV3.Builder builder) {
      super(builder);
    }
    private ContinuationTransactionData() {
      invokeTransactionId_ = com.google.protobuf.ByteString.EMPTY;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ContinuationTransactionData();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ContinuationTransactionData(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {

              invokeTransactionId_ = input.readBytes();
              break;
            }
            case 16: {

              nonce_ = input.readInt32();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_ContinuationTransactionData_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_ContinuationTransactionData_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData.class, com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData.Builder.class);
    }

    public static final int INVOKE_TRANSACTION_ID_FIELD_NUMBER = 1;
    private com.google.protobuf.ByteString invokeTransactionId_;
    /**
     * bytes invoke_transaction_id = 1;
     * @return The invokeTransactionId.
     */
    public com.google.protobuf.ByteString getInvokeTransactionId() {
      return invokeTransactionId_;
    }

    public static final int NONCE_FIELD_NUMBER = 2;
    private int nonce_;
    /**
     * int32 nonce = 2;
     * @return The nonce.
     */
    public int getNonce() {
      return nonce_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!invokeTransactionId_.isEmpty()) {
        output.writeBytes(1, invokeTransactionId_);
      }
      if (nonce_ != 0) {
        output.writeInt32(2, nonce_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!invokeTransactionId_.isEmpty()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, invokeTransactionId_);
      }
      if (nonce_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, nonce_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData)) {
        return super.equals(obj);
      }
      com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData other = (com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData) obj;

      if (!getInvokeTransactionId()
          .equals(other.getInvokeTransactionId())) return false;
      if (getNonce()
          != other.getNonce()) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + INVOKE_TRANSACTION_ID_FIELD_NUMBER;
      hash = (53 * hash) + getInvokeTransactionId().hashCode();
      hash = (37 * hash) + NONCE_FIELD_NUMBER;
      hash = (53 * hash) + getNonce();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code waves.ContinuationTransactionData}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:waves.ContinuationTransactionData)
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionDataOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_ContinuationTransactionData_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_ContinuationTransactionData_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData.class, com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData.Builder.class);
      }

      // Construct using com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        invokeTransactionId_ = com.google.protobuf.ByteString.EMPTY;

        nonce_ = 0;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.internal_static_waves_ContinuationTransactionData_descriptor;
      }

      @java.lang.Override
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData getDefaultInstanceForType() {
        return com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData.getDefaultInstance();
      }

      @java.lang.Override
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData build() {
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData buildPartial() {
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData result = new com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData(this);
        result.invokeTransactionId_ = invokeTransactionId_;
        result.nonce_ = nonce_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData) {
          return mergeFrom((com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData other) {
        if (other == com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData.getDefaultInstance()) return this;
        if (other.getInvokeTransactionId() != com.google.protobuf.ByteString.EMPTY) {
          setInvokeTransactionId(other.getInvokeTransactionId());
        }
        if (other.getNonce() != 0) {
          setNonce(other.getNonce());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private com.google.protobuf.ByteString invokeTransactionId_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * bytes invoke_transaction_id = 1;
       * @return The invokeTransactionId.
       */
      public com.google.protobuf.ByteString getInvokeTransactionId() {
        return invokeTransactionId_;
      }
      /**
       * bytes invoke_transaction_id = 1;
       * @param value The invokeTransactionId to set.
       * @return This builder for chaining.
       */
      public Builder setInvokeTransactionId(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        invokeTransactionId_ = value;
        onChanged();
        return this;
      }
      /**
       * bytes invoke_transaction_id = 1;
       * @return This builder for chaining.
       */
      public Builder clearInvokeTransactionId() {
        
        invokeTransactionId_ = getDefaultInstance().getInvokeTransactionId();
        onChanged();
        return this;
      }

      private int nonce_ ;
      /**
       * int32 nonce = 2;
       * @return The nonce.
       */
      public int getNonce() {
        return nonce_;
      }
      /**
       * int32 nonce = 2;
       * @param value The nonce to set.
       * @return This builder for chaining.
       */
      public Builder setNonce(int value) {
        
        nonce_ = value;
        onChanged();
        return this;
      }
      /**
       * int32 nonce = 2;
       * @return This builder for chaining.
       */
      public Builder clearNonce() {
        
        nonce_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:waves.ContinuationTransactionData)
    }

    // @@protoc_insertion_point(class_scope:waves.ContinuationTransactionData)
    private static final com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData();
    }

    public static com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public ContinuationTransactionData parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ContinuationTransactionData(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.wavesplatform.protobuf.transaction.TransactionOuterClass.ContinuationTransactionData getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_waves_SignedTransaction_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_waves_SignedTransaction_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_waves_Transaction_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_waves_Transaction_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_waves_GenesisTransactionData_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_waves_GenesisTransactionData_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_waves_PaymentTransactionData_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_waves_PaymentTransactionData_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_waves_TransferTransactionData_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_waves_TransferTransactionData_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_waves_CreateAliasTransactionData_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_waves_CreateAliasTransactionData_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_waves_DataTransactionData_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_waves_DataTransactionData_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_waves_DataTransactionData_DataEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_waves_DataTransactionData_DataEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_waves_MassTransferTransactionData_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_waves_MassTransferTransactionData_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_waves_MassTransferTransactionData_Transfer_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_waves_MassTransferTransactionData_Transfer_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_waves_LeaseTransactionData_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_waves_LeaseTransactionData_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_waves_LeaseCancelTransactionData_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_waves_LeaseCancelTransactionData_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_waves_BurnTransactionData_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_waves_BurnTransactionData_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_waves_IssueTransactionData_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_waves_IssueTransactionData_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_waves_ReissueTransactionData_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_waves_ReissueTransactionData_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_waves_SetAssetScriptTransactionData_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_waves_SetAssetScriptTransactionData_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_waves_SetScriptTransactionData_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_waves_SetScriptTransactionData_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_waves_ExchangeTransactionData_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_waves_ExchangeTransactionData_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_waves_SponsorFeeTransactionData_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_waves_SponsorFeeTransactionData_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_waves_InvokeScriptTransactionData_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_waves_InvokeScriptTransactionData_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_waves_UpdateAssetInfoTransactionData_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_waves_UpdateAssetInfoTransactionData_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_waves_ContinuationTransactionData_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_waves_ContinuationTransactionData_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static  com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n\027waves/transaction.proto\022\005waves\032\022waves/" +
      "amount.proto\032\025waves/recipient.proto\032\021wav" +
      "es/order.proto\"L\n\021SignedTransaction\022\'\n\013t" +
      "ransaction\030\001 \001(\0132\022.waves.Transaction\022\016\n\006" +
      "proofs\030\002 \003(\014\"\342\010\n\013Transaction\022\020\n\010chain_id" +
      "\030\001 \001(\005\022\031\n\021sender_public_key\030\002 \001(\014\022\032\n\003fee" +
      "\030\003 \001(\0132\r.waves.Amount\022\021\n\ttimestamp\030\004 \001(\003" +
      "\022\017\n\007version\030\005 \001(\005\0220\n\007genesis\030e \001(\0132\035.wav" +
      "es.GenesisTransactionDataH\000\0220\n\007payment\030f" +
      " \001(\0132\035.waves.PaymentTransactionDataH\000\022,\n" +
      "\005issue\030g \001(\0132\033.waves.IssueTransactionDat" +
      "aH\000\0222\n\010transfer\030h \001(\0132\036.waves.TransferTr" +
      "ansactionDataH\000\0220\n\007reissue\030i \001(\0132\035.waves" +
      ".ReissueTransactionDataH\000\022*\n\004burn\030j \001(\0132" +
      "\032.waves.BurnTransactionDataH\000\0222\n\010exchang" +
      "e\030k \001(\0132\036.waves.ExchangeTransactionDataH" +
      "\000\022,\n\005lease\030l \001(\0132\033.waves.LeaseTransactio" +
      "nDataH\000\0229\n\014lease_cancel\030m \001(\0132!.waves.Le" +
      "aseCancelTransactionDataH\000\0229\n\014create_ali" +
      "as\030n \001(\0132!.waves.CreateAliasTransactionD" +
      "ataH\000\022;\n\rmass_transfer\030o \001(\0132\".waves.Mas" +
      "sTransferTransactionDataH\000\0226\n\020data_trans" +
      "action\030p \001(\0132\032.waves.DataTransactionData" +
      "H\000\0225\n\nset_script\030q \001(\0132\037.waves.SetScript" +
      "TransactionDataH\000\0227\n\013sponsor_fee\030r \001(\0132 " +
      ".waves.SponsorFeeTransactionDataH\000\022@\n\020se" +
      "t_asset_script\030s \001(\0132$.waves.SetAssetScr" +
      "iptTransactionDataH\000\022;\n\rinvoke_script\030t " +
      "\001(\0132\".waves.InvokeScriptTransactionDataH" +
      "\000\022B\n\021update_asset_info\030u \001(\0132%.waves.Upd" +
      "ateAssetInfoTransactionDataH\000\022:\n\014continu" +
      "ation\030v \001(\0132\".waves.ContinuationTransact" +
      "ionDataH\000B\006\n\004data\"C\n\026GenesisTransactionD" +
      "ata\022\031\n\021recipient_address\030\001 \001(\014\022\016\n\006amount" +
      "\030\002 \001(\003\"C\n\026PaymentTransactionData\022\031\n\021reci" +
      "pient_address\030\001 \001(\014\022\016\n\006amount\030\002 \001(\003\"q\n\027T" +
      "ransferTransactionData\022#\n\trecipient\030\001 \001(" +
      "\0132\020.waves.Recipient\022\035\n\006amount\030\002 \001(\0132\r.wa" +
      "ves.Amount\022\022\n\nattachment\030\003 \001(\014\"+\n\032Create" +
      "AliasTransactionData\022\r\n\005alias\030\001 \001(\t\"\307\001\n\023" +
      "DataTransactionData\0222\n\004data\030\001 \003(\0132$.wave" +
      "s.DataTransactionData.DataEntry\032|\n\tDataE" +
      "ntry\022\013\n\003key\030\001 \001(\t\022\023\n\tint_value\030\n \001(\003H\000\022\024" +
      "\n\nbool_value\030\013 \001(\010H\000\022\026\n\014binary_value\030\014 \001" +
      "(\014H\000\022\026\n\014string_value\030\r \001(\tH\000B\007\n\005value\"\304\001" +
      "\n\033MassTransferTransactionData\022\020\n\010asset_i" +
      "d\030\001 \001(\014\022>\n\ttransfers\030\002 \003(\0132+.waves.MassT" +
      "ransferTransactionData.Transfer\022\022\n\nattac" +
      "hment\030\003 \001(\014\032?\n\010Transfer\022#\n\trecipient\030\001 \001" +
      "(\0132\020.waves.Recipient\022\016\n\006amount\030\002 \001(\003\"K\n\024" +
      "LeaseTransactionData\022#\n\trecipient\030\001 \001(\0132" +
      "\020.waves.Recipient\022\016\n\006amount\030\002 \001(\003\".\n\032Lea" +
      "seCancelTransactionData\022\020\n\010lease_id\030\001 \001(" +
      "\014\":\n\023BurnTransactionData\022#\n\014asset_amount" +
      "\030\001 \001(\0132\r.waves.Amount\"\177\n\024IssueTransactio" +
      "nData\022\014\n\004name\030\001 \001(\t\022\023\n\013description\030\002 \001(\t" +
      "\022\016\n\006amount\030\003 \001(\003\022\020\n\010decimals\030\004 \001(\005\022\022\n\nre" +
      "issuable\030\005 \001(\010\022\016\n\006script\030\006 \001(\014\"Q\n\026Reissu" +
      "eTransactionData\022#\n\014asset_amount\030\001 \001(\0132\r" +
      ".waves.Amount\022\022\n\nreissuable\030\002 \001(\010\"A\n\035Set" +
      "AssetScriptTransactionData\022\020\n\010asset_id\030\001" +
      " \001(\014\022\016\n\006script\030\002 \001(\014\"*\n\030SetScriptTransac" +
      "tionData\022\016\n\006script\030\001 \001(\014\"\211\001\n\027ExchangeTra" +
      "nsactionData\022\016\n\006amount\030\001 \001(\003\022\r\n\005price\030\002 " +
      "\001(\003\022\027\n\017buy_matcher_fee\030\003 \001(\003\022\030\n\020sell_mat" +
      "cher_fee\030\004 \001(\003\022\034\n\006orders\030\005 \003(\0132\014.waves.O" +
      "rder\";\n\031SponsorFeeTransactionData\022\036\n\007min" +
      "_fee\030\001 \001(\0132\r.waves.Amount\"\223\001\n\033InvokeScri" +
      "ptTransactionData\022\037\n\005d_app\030\001 \001(\0132\020.waves" +
      ".Recipient\022\025\n\rfunction_call\030\002 \001(\014\022\037\n\010pay" +
      "ments\030\003 \003(\0132\r.waves.Amount\022\033\n\023fee_increa" +
      "se_factor\030\004 \001(\005\"U\n\036UpdateAssetInfoTransa" +
      "ctionData\022\020\n\010asset_id\030\001 \001(\014\022\014\n\004name\030\002 \001(" +
      "\t\022\023\n\013description\030\003 \001(\t\"K\n\033ContinuationTr" +
      "ansactionData\022\035\n\025invoke_transaction_id\030\001" +
      " \001(\014\022\r\n\005nonce\030\002 \001(\005Bk\n&com.wavesplatform" +
      ".protobuf.transactionZ9github.com/wavesp" +
      "latform/gowaves/pkg/grpc/generated/waves" +
      "\252\002\005Wavesb\006proto3"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          com.wavesplatform.protobuf.AmountOuterClass.getDescriptor(),
          com.wavesplatform.protobuf.transaction.RecipientOuterClass.getDescriptor(),
          com.wavesplatform.protobuf.order.OrderOuterClass.getDescriptor(),
        });
    internal_static_waves_SignedTransaction_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_waves_SignedTransaction_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_waves_SignedTransaction_descriptor,
        new java.lang.String[] { "Transaction", "Proofs", });
    internal_static_waves_Transaction_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_waves_Transaction_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_waves_Transaction_descriptor,
        new java.lang.String[] { "ChainId", "SenderPublicKey", "Fee", "Timestamp", "Version", "Genesis", "Payment", "Issue", "Transfer", "Reissue", "Burn", "Exchange", "Lease", "LeaseCancel", "CreateAlias", "MassTransfer", "DataTransaction", "SetScript", "SponsorFee", "SetAssetScript", "InvokeScript", "UpdateAssetInfo", "Continuation", "Data", });
    internal_static_waves_GenesisTransactionData_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_waves_GenesisTransactionData_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_waves_GenesisTransactionData_descriptor,
        new java.lang.String[] { "RecipientAddress", "Amount", });
    internal_static_waves_PaymentTransactionData_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_waves_PaymentTransactionData_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_waves_PaymentTransactionData_descriptor,
        new java.lang.String[] { "RecipientAddress", "Amount", });
    internal_static_waves_TransferTransactionData_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_waves_TransferTransactionData_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_waves_TransferTransactionData_descriptor,
        new java.lang.String[] { "Recipient", "Amount", "Attachment", });
    internal_static_waves_CreateAliasTransactionData_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_waves_CreateAliasTransactionData_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_waves_CreateAliasTransactionData_descriptor,
        new java.lang.String[] { "Alias", });
    internal_static_waves_DataTransactionData_descriptor =
      getDescriptor().getMessageTypes().get(6);
    internal_static_waves_DataTransactionData_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_waves_DataTransactionData_descriptor,
        new java.lang.String[] { "Data", });
    internal_static_waves_DataTransactionData_DataEntry_descriptor =
      internal_static_waves_DataTransactionData_descriptor.getNestedTypes().get(0);
    internal_static_waves_DataTransactionData_DataEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_waves_DataTransactionData_DataEntry_descriptor,
        new java.lang.String[] { "Key", "IntValue", "BoolValue", "BinaryValue", "StringValue", "Value", });
    internal_static_waves_MassTransferTransactionData_descriptor =
      getDescriptor().getMessageTypes().get(7);
    internal_static_waves_MassTransferTransactionData_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_waves_MassTransferTransactionData_descriptor,
        new java.lang.String[] { "AssetId", "Transfers", "Attachment", });
    internal_static_waves_MassTransferTransactionData_Transfer_descriptor =
      internal_static_waves_MassTransferTransactionData_descriptor.getNestedTypes().get(0);
    internal_static_waves_MassTransferTransactionData_Transfer_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_waves_MassTransferTransactionData_Transfer_descriptor,
        new java.lang.String[] { "Recipient", "Amount", });
    internal_static_waves_LeaseTransactionData_descriptor =
      getDescriptor().getMessageTypes().get(8);
    internal_static_waves_LeaseTransactionData_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_waves_LeaseTransactionData_descriptor,
        new java.lang.String[] { "Recipient", "Amount", });
    internal_static_waves_LeaseCancelTransactionData_descriptor =
      getDescriptor().getMessageTypes().get(9);
    internal_static_waves_LeaseCancelTransactionData_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_waves_LeaseCancelTransactionData_descriptor,
        new java.lang.String[] { "LeaseId", });
    internal_static_waves_BurnTransactionData_descriptor =
      getDescriptor().getMessageTypes().get(10);
    internal_static_waves_BurnTransactionData_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_waves_BurnTransactionData_descriptor,
        new java.lang.String[] { "AssetAmount", });
    internal_static_waves_IssueTransactionData_descriptor =
      getDescriptor().getMessageTypes().get(11);
    internal_static_waves_IssueTransactionData_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_waves_IssueTransactionData_descriptor,
        new java.lang.String[] { "Name", "Description", "Amount", "Decimals", "Reissuable", "Script", });
    internal_static_waves_ReissueTransactionData_descriptor =
      getDescriptor().getMessageTypes().get(12);
    internal_static_waves_ReissueTransactionData_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_waves_ReissueTransactionData_descriptor,
        new java.lang.String[] { "AssetAmount", "Reissuable", });
    internal_static_waves_SetAssetScriptTransactionData_descriptor =
      getDescriptor().getMessageTypes().get(13);
    internal_static_waves_SetAssetScriptTransactionData_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_waves_SetAssetScriptTransactionData_descriptor,
        new java.lang.String[] { "AssetId", "Script", });
    internal_static_waves_SetScriptTransactionData_descriptor =
      getDescriptor().getMessageTypes().get(14);
    internal_static_waves_SetScriptTransactionData_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_waves_SetScriptTransactionData_descriptor,
        new java.lang.String[] { "Script", });
    internal_static_waves_ExchangeTransactionData_descriptor =
      getDescriptor().getMessageTypes().get(15);
    internal_static_waves_ExchangeTransactionData_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_waves_ExchangeTransactionData_descriptor,
        new java.lang.String[] { "Amount", "Price", "BuyMatcherFee", "SellMatcherFee", "Orders", });
    internal_static_waves_SponsorFeeTransactionData_descriptor =
      getDescriptor().getMessageTypes().get(16);
    internal_static_waves_SponsorFeeTransactionData_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_waves_SponsorFeeTransactionData_descriptor,
        new java.lang.String[] { "MinFee", });
    internal_static_waves_InvokeScriptTransactionData_descriptor =
      getDescriptor().getMessageTypes().get(17);
    internal_static_waves_InvokeScriptTransactionData_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_waves_InvokeScriptTransactionData_descriptor,
        new java.lang.String[] { "DApp", "FunctionCall", "Payments", "FeeIncreaseFactor", });
    internal_static_waves_UpdateAssetInfoTransactionData_descriptor =
      getDescriptor().getMessageTypes().get(18);
    internal_static_waves_UpdateAssetInfoTransactionData_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_waves_UpdateAssetInfoTransactionData_descriptor,
        new java.lang.String[] { "AssetId", "Name", "Description", });
    internal_static_waves_ContinuationTransactionData_descriptor =
      getDescriptor().getMessageTypes().get(19);
    internal_static_waves_ContinuationTransactionData_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_waves_ContinuationTransactionData_descriptor,
        new java.lang.String[] { "InvokeTransactionId", "Nonce", });
    com.wavesplatform.protobuf.AmountOuterClass.getDescriptor();
    com.wavesplatform.protobuf.transaction.RecipientOuterClass.getDescriptor();
    com.wavesplatform.protobuf.order.OrderOuterClass.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy