Class ConsensusCreateTopicTransactionBody

java.lang.Object
com.google.protobuf.AbstractMessageLite<ConsensusCreateTopicTransactionBody,ConsensusCreateTopicTransactionBody.Builder>
com.google.protobuf.GeneratedMessageLite<ConsensusCreateTopicTransactionBody,ConsensusCreateTopicTransactionBody.Builder>
com.hedera.hashgraph.sdk.proto.ConsensusCreateTopicTransactionBody
All Implemented Interfaces:
com.google.protobuf.MessageLite, com.google.protobuf.MessageLiteOrBuilder, ConsensusCreateTopicTransactionBodyOrBuilder

@Generated public final class ConsensusCreateTopicTransactionBody extends com.google.protobuf.GeneratedMessageLite<ConsensusCreateTopicTransactionBody,ConsensusCreateTopicTransactionBody.Builder> implements ConsensusCreateTopicTransactionBodyOrBuilder
 *
 Create a topic to accept and group consensus messages.

 If `autoRenewAccount` is specified, that account Key MUST also sign this
 transaction.<br/>
 If `adminKey` is set, that Key MUST sign the transaction.<br/>
 On success, the resulting `TransactionReceipt` SHALL contain the newly
 created `TopicId`.

 The `autoRenewPeriod` on a topic MUST be set to a value between
 `autoRenewPeriod.minDuration` and `autoRenewPeriod.maxDuration`. These
 values are configurable, typically 30 and 92 days.<br/>
 This also sets the initial expirationTime of the topic.

 If no `adminKey` is set on a topic
 -`autoRenewAccount` SHALL NOT be set on the topic.
 - A `deleteTopic` transaction SHALL fail.
 - An `updateTopic` transaction that only extends the expirationTime MAY
 succeed.
 - Any other `updateTopic` transaction SHALL fail.

 If the topic expires and is not automatically renewed, the topic SHALL enter
 the `EXPIRED` state.
 - All transactions on the topic SHALL fail with TOPIC_EXPIRED
 - Except an updateTopic() call that only extends the expirationTime.
 - getTopicInfo() SHALL succeed, and show the topic is expired.
 The topic SHALL remain in the `EXPIRED` state for a time determined by the
 `autorenew.gracePeriod` (configurable, originally 7 days).<br/>
 After the grace period, if the topic's expirationTime is not extended, the
 topic SHALL be automatically deleted from state entirely, and cannot be
 recovered or recreated.

 ### Block Stream Effects
 None
 
Protobuf type proto.ConsensusCreateTopicTransactionBody
  • Field Details

    • MEMO_FIELD_NUMBER

      public static final int MEMO_FIELD_NUMBER
      See Also:
    • ADMINKEY_FIELD_NUMBER

      public static final int ADMINKEY_FIELD_NUMBER
      See Also:
    • SUBMITKEY_FIELD_NUMBER

      public static final int SUBMITKEY_FIELD_NUMBER
      See Also:
    • AUTORENEWPERIOD_FIELD_NUMBER

      public static final int AUTORENEWPERIOD_FIELD_NUMBER
      See Also:
    • AUTORENEWACCOUNT_FIELD_NUMBER

      public static final int AUTORENEWACCOUNT_FIELD_NUMBER
      See Also:
    • FEE_SCHEDULE_KEY_FIELD_NUMBER

      public static final int FEE_SCHEDULE_KEY_FIELD_NUMBER
      See Also:
    • FEE_EXEMPT_KEY_LIST_FIELD_NUMBER

      public static final int FEE_EXEMPT_KEY_LIST_FIELD_NUMBER
      See Also:
    • CUSTOM_FEES_FIELD_NUMBER

      public static final int CUSTOM_FEES_FIELD_NUMBER
      See Also:
  • Method Details

    • getMemo

      public String getMemo()
       *
       A short memo for this topic.
       <p>
       This value, if set, MUST NOT exceed `transaction.maxMemoUtf8Bytes`
       (default 100) bytes when encoded as UTF-8.
       
      string memo = 1;
      Specified by:
      getMemo in interface ConsensusCreateTopicTransactionBodyOrBuilder
      Returns:
      The memo.
    • getMemoBytes

      public com.google.protobuf.ByteString getMemoBytes()
       *
       A short memo for this topic.
       <p>
       This value, if set, MUST NOT exceed `transaction.maxMemoUtf8Bytes`
       (default 100) bytes when encoded as UTF-8.
       
      string memo = 1;
      Specified by:
      getMemoBytes in interface ConsensusCreateTopicTransactionBodyOrBuilder
      Returns:
      The bytes for memo.
    • hasAdminKey

      public boolean hasAdminKey()
       *
       Access control for modification of the topic after it is created.
       <p>
       If this field is set, that key MUST sign this transaction.<br/>
       If this field is set, that key MUST sign each future transaction to
       update or delete the topic.<br/>
       An updateTopic transaction that _only_ extends the topic expirationTime
       (a "manual renewal" transaction) SHALL NOT require admin key
       signature.<br/>
       A topic without an admin key SHALL be immutable, except for expiration
       and renewal.<br/>
       If adminKey is not set, then `autoRenewAccount` SHALL NOT be set.
       
      .proto.Key adminKey = 2;
      Specified by:
      hasAdminKey in interface ConsensusCreateTopicTransactionBodyOrBuilder
      Returns:
      Whether the adminKey field is set.
    • getAdminKey

      public Key getAdminKey()
       *
       Access control for modification of the topic after it is created.
       <p>
       If this field is set, that key MUST sign this transaction.<br/>
       If this field is set, that key MUST sign each future transaction to
       update or delete the topic.<br/>
       An updateTopic transaction that _only_ extends the topic expirationTime
       (a "manual renewal" transaction) SHALL NOT require admin key
       signature.<br/>
       A topic without an admin key SHALL be immutable, except for expiration
       and renewal.<br/>
       If adminKey is not set, then `autoRenewAccount` SHALL NOT be set.
       
      .proto.Key adminKey = 2;
      Specified by:
      getAdminKey in interface ConsensusCreateTopicTransactionBodyOrBuilder
      Returns:
      The adminKey.
    • hasSubmitKey

      public boolean hasSubmitKey()
       *
       Access control for message submission to the topic.
       <p>
       If this field is set, that key MUST sign each consensus submit message
       for this topic.<br/>
       If this field is not set then any account may submit a message on the
       topic, without restriction.
       
      .proto.Key submitKey = 3;
      Specified by:
      hasSubmitKey in interface ConsensusCreateTopicTransactionBodyOrBuilder
      Returns:
      Whether the submitKey field is set.
    • getSubmitKey

      public Key getSubmitKey()
       *
       Access control for message submission to the topic.
       <p>
       If this field is set, that key MUST sign each consensus submit message
       for this topic.<br/>
       If this field is not set then any account may submit a message on the
       topic, without restriction.
       
      .proto.Key submitKey = 3;
      Specified by:
      getSubmitKey in interface ConsensusCreateTopicTransactionBodyOrBuilder
      Returns:
      The submitKey.
    • hasAutoRenewPeriod

      public boolean hasAutoRenewPeriod()
       *
       The initial lifetime, in seconds, for the topic.<br/>
       This is also the number of seconds for which the topic SHALL be
       automatically renewed upon expiring, if it has a valid auto-renew
       account.
       <p>
       This value MUST be set.<br/>
       This value MUST be greater than the configured
       MIN_AUTORENEW_PERIOD.<br/>
       This value MUST be less than the configured MAX_AUTORENEW_PERIOD.
       
      .proto.Duration autoRenewPeriod = 6;
      Specified by:
      hasAutoRenewPeriod in interface ConsensusCreateTopicTransactionBodyOrBuilder
      Returns:
      Whether the autoRenewPeriod field is set.
    • getAutoRenewPeriod

      public Duration getAutoRenewPeriod()
       *
       The initial lifetime, in seconds, for the topic.<br/>
       This is also the number of seconds for which the topic SHALL be
       automatically renewed upon expiring, if it has a valid auto-renew
       account.
       <p>
       This value MUST be set.<br/>
       This value MUST be greater than the configured
       MIN_AUTORENEW_PERIOD.<br/>
       This value MUST be less than the configured MAX_AUTORENEW_PERIOD.
       
      .proto.Duration autoRenewPeriod = 6;
      Specified by:
      getAutoRenewPeriod in interface ConsensusCreateTopicTransactionBodyOrBuilder
      Returns:
      The autoRenewPeriod.
    • hasAutoRenewAccount

      public boolean hasAutoRenewAccount()
       *
       The ID of the account to be charged renewal fees at the topic's
       expirationTime to extend the lifetime of the topic.
       <p>
       The topic lifetime SHALL be extended by the smallest of the following:
       <ul>
       <li>The current `autoRenewPeriod` duration.</li>
       <li>The maximum duration that this account has funds to purchase.</li>
       <li>The configured MAX_AUTORENEW_PERIOD at the time of automatic
       renewal.</li>
       </ul>
       If this value is set, the referenced account MUST sign this
       transaction.<br/>
       If this value is set, the `adminKey` field MUST also be set (though that
       key MAY not have any correlation to this account).
       
      .proto.AccountID autoRenewAccount = 7;
      Specified by:
      hasAutoRenewAccount in interface ConsensusCreateTopicTransactionBodyOrBuilder
      Returns:
      Whether the autoRenewAccount field is set.
    • getAutoRenewAccount

      public AccountID getAutoRenewAccount()
       *
       The ID of the account to be charged renewal fees at the topic's
       expirationTime to extend the lifetime of the topic.
       <p>
       The topic lifetime SHALL be extended by the smallest of the following:
       <ul>
       <li>The current `autoRenewPeriod` duration.</li>
       <li>The maximum duration that this account has funds to purchase.</li>
       <li>The configured MAX_AUTORENEW_PERIOD at the time of automatic
       renewal.</li>
       </ul>
       If this value is set, the referenced account MUST sign this
       transaction.<br/>
       If this value is set, the `adminKey` field MUST also be set (though that
       key MAY not have any correlation to this account).
       
      .proto.AccountID autoRenewAccount = 7;
      Specified by:
      getAutoRenewAccount in interface ConsensusCreateTopicTransactionBodyOrBuilder
      Returns:
      The autoRenewAccount.
    • hasFeeScheduleKey

      public boolean hasFeeScheduleKey()
       *
       Access control for update or delete of custom fees.
       <p>
       If set, subsequent `consensus_update_topic` transactions signed with this
       key MAY update or delete the custom fees for this topic.<br/>
       If not set, the custom fees for this topic SHALL BE immutable.<br/>
       If not set when the topic is created, this field CANNOT be set via
       update.<br/>
       If set when the topic is created, this field MAY be changed via update.
       
      .proto.Key fee_schedule_key = 8;
      Specified by:
      hasFeeScheduleKey in interface ConsensusCreateTopicTransactionBodyOrBuilder
      Returns:
      Whether the feeScheduleKey field is set.
    • getFeeScheduleKey

      public Key getFeeScheduleKey()
       *
       Access control for update or delete of custom fees.
       <p>
       If set, subsequent `consensus_update_topic` transactions signed with this
       key MAY update or delete the custom fees for this topic.<br/>
       If not set, the custom fees for this topic SHALL BE immutable.<br/>
       If not set when the topic is created, this field CANNOT be set via
       update.<br/>
       If set when the topic is created, this field MAY be changed via update.
       
      .proto.Key fee_schedule_key = 8;
      Specified by:
      getFeeScheduleKey in interface ConsensusCreateTopicTransactionBodyOrBuilder
      Returns:
      The feeScheduleKey.
    • getFeeExemptKeyListList

      public List<Key> getFeeExemptKeyListList()
       *
       A set of keys.<br/>
       Keys in this list are permitted to submit messages to this topic without
       paying custom fees associated with this topic.
       <p>
       If a submit transaction is signed by _any_ key included in this set,
       custom fees SHALL NOT be charged for that transaction.<br/>
       This field MUST NOT contain more than 10 keys.<br/>
       fee_exempt_key_list SHALL NOT contain any duplicate keys.<br/>
       fee_exempt_key_list MAY contain keys for accounts that are inactive,
       deleted, or non-existent.<br/>
       If fee_exempt_key_list is unset in this transaction, there SHALL NOT be
       any fee-exempt keys.  In particular, the following keys SHALL NOT be
       implicitly or automatically added to this list:
       `adminKey`, `submitKey`, `fee_schedule_key`.
       
      repeated .proto.Key fee_exempt_key_list = 9;
      Specified by:
      getFeeExemptKeyListList in interface ConsensusCreateTopicTransactionBodyOrBuilder
    • getFeeExemptKeyListOrBuilderList

      public List<? extends KeyOrBuilder> getFeeExemptKeyListOrBuilderList()
       *
       A set of keys.<br/>
       Keys in this list are permitted to submit messages to this topic without
       paying custom fees associated with this topic.
       <p>
       If a submit transaction is signed by _any_ key included in this set,
       custom fees SHALL NOT be charged for that transaction.<br/>
       This field MUST NOT contain more than 10 keys.<br/>
       fee_exempt_key_list SHALL NOT contain any duplicate keys.<br/>
       fee_exempt_key_list MAY contain keys for accounts that are inactive,
       deleted, or non-existent.<br/>
       If fee_exempt_key_list is unset in this transaction, there SHALL NOT be
       any fee-exempt keys.  In particular, the following keys SHALL NOT be
       implicitly or automatically added to this list:
       `adminKey`, `submitKey`, `fee_schedule_key`.
       
      repeated .proto.Key fee_exempt_key_list = 9;
    • getFeeExemptKeyListCount

      public int getFeeExemptKeyListCount()
       *
       A set of keys.<br/>
       Keys in this list are permitted to submit messages to this topic without
       paying custom fees associated with this topic.
       <p>
       If a submit transaction is signed by _any_ key included in this set,
       custom fees SHALL NOT be charged for that transaction.<br/>
       This field MUST NOT contain more than 10 keys.<br/>
       fee_exempt_key_list SHALL NOT contain any duplicate keys.<br/>
       fee_exempt_key_list MAY contain keys for accounts that are inactive,
       deleted, or non-existent.<br/>
       If fee_exempt_key_list is unset in this transaction, there SHALL NOT be
       any fee-exempt keys.  In particular, the following keys SHALL NOT be
       implicitly or automatically added to this list:
       `adminKey`, `submitKey`, `fee_schedule_key`.
       
      repeated .proto.Key fee_exempt_key_list = 9;
      Specified by:
      getFeeExemptKeyListCount in interface ConsensusCreateTopicTransactionBodyOrBuilder
    • getFeeExemptKeyList

      public Key getFeeExemptKeyList(int index)
       *
       A set of keys.<br/>
       Keys in this list are permitted to submit messages to this topic without
       paying custom fees associated with this topic.
       <p>
       If a submit transaction is signed by _any_ key included in this set,
       custom fees SHALL NOT be charged for that transaction.<br/>
       This field MUST NOT contain more than 10 keys.<br/>
       fee_exempt_key_list SHALL NOT contain any duplicate keys.<br/>
       fee_exempt_key_list MAY contain keys for accounts that are inactive,
       deleted, or non-existent.<br/>
       If fee_exempt_key_list is unset in this transaction, there SHALL NOT be
       any fee-exempt keys.  In particular, the following keys SHALL NOT be
       implicitly or automatically added to this list:
       `adminKey`, `submitKey`, `fee_schedule_key`.
       
      repeated .proto.Key fee_exempt_key_list = 9;
      Specified by:
      getFeeExemptKeyList in interface ConsensusCreateTopicTransactionBodyOrBuilder
    • getFeeExemptKeyListOrBuilder

      public KeyOrBuilder getFeeExemptKeyListOrBuilder(int index)
       *
       A set of keys.<br/>
       Keys in this list are permitted to submit messages to this topic without
       paying custom fees associated with this topic.
       <p>
       If a submit transaction is signed by _any_ key included in this set,
       custom fees SHALL NOT be charged for that transaction.<br/>
       This field MUST NOT contain more than 10 keys.<br/>
       fee_exempt_key_list SHALL NOT contain any duplicate keys.<br/>
       fee_exempt_key_list MAY contain keys for accounts that are inactive,
       deleted, or non-existent.<br/>
       If fee_exempt_key_list is unset in this transaction, there SHALL NOT be
       any fee-exempt keys.  In particular, the following keys SHALL NOT be
       implicitly or automatically added to this list:
       `adminKey`, `submitKey`, `fee_schedule_key`.
       
      repeated .proto.Key fee_exempt_key_list = 9;
    • getCustomFeesList

      public List<FixedCustomFee> getCustomFeesList()
       *
       A set of custom fee definitions.<br/>
       These are fees to be assessed for each submit to this topic.
       <p>
       Each fee defined in this set SHALL be evaluated for
       each message submitted to this topic, and the resultant
       total assessed fees SHALL be charged.<br/>
       Custom fees defined here SHALL be assessed in addition to the base
       network and node fees.<br/>
       custom_fees list SHALL NOT contain more than
       `MAX_CUSTOM_FEE_ENTRIES_FOR_TOPICS` entries.
       
      repeated .proto.FixedCustomFee custom_fees = 10;
      Specified by:
      getCustomFeesList in interface ConsensusCreateTopicTransactionBodyOrBuilder
    • getCustomFeesOrBuilderList

      public List<? extends FixedCustomFeeOrBuilder> getCustomFeesOrBuilderList()
       *
       A set of custom fee definitions.<br/>
       These are fees to be assessed for each submit to this topic.
       <p>
       Each fee defined in this set SHALL be evaluated for
       each message submitted to this topic, and the resultant
       total assessed fees SHALL be charged.<br/>
       Custom fees defined here SHALL be assessed in addition to the base
       network and node fees.<br/>
       custom_fees list SHALL NOT contain more than
       `MAX_CUSTOM_FEE_ENTRIES_FOR_TOPICS` entries.
       
      repeated .proto.FixedCustomFee custom_fees = 10;
    • getCustomFeesCount

      public int getCustomFeesCount()
       *
       A set of custom fee definitions.<br/>
       These are fees to be assessed for each submit to this topic.
       <p>
       Each fee defined in this set SHALL be evaluated for
       each message submitted to this topic, and the resultant
       total assessed fees SHALL be charged.<br/>
       Custom fees defined here SHALL be assessed in addition to the base
       network and node fees.<br/>
       custom_fees list SHALL NOT contain more than
       `MAX_CUSTOM_FEE_ENTRIES_FOR_TOPICS` entries.
       
      repeated .proto.FixedCustomFee custom_fees = 10;
      Specified by:
      getCustomFeesCount in interface ConsensusCreateTopicTransactionBodyOrBuilder
    • getCustomFees

      public FixedCustomFee getCustomFees(int index)
       *
       A set of custom fee definitions.<br/>
       These are fees to be assessed for each submit to this topic.
       <p>
       Each fee defined in this set SHALL be evaluated for
       each message submitted to this topic, and the resultant
       total assessed fees SHALL be charged.<br/>
       Custom fees defined here SHALL be assessed in addition to the base
       network and node fees.<br/>
       custom_fees list SHALL NOT contain more than
       `MAX_CUSTOM_FEE_ENTRIES_FOR_TOPICS` entries.
       
      repeated .proto.FixedCustomFee custom_fees = 10;
      Specified by:
      getCustomFees in interface ConsensusCreateTopicTransactionBodyOrBuilder
    • getCustomFeesOrBuilder

      public FixedCustomFeeOrBuilder getCustomFeesOrBuilder(int index)
       *
       A set of custom fee definitions.<br/>
       These are fees to be assessed for each submit to this topic.
       <p>
       Each fee defined in this set SHALL be evaluated for
       each message submitted to this topic, and the resultant
       total assessed fees SHALL be charged.<br/>
       Custom fees defined here SHALL be assessed in addition to the base
       network and node fees.<br/>
       custom_fees list SHALL NOT contain more than
       `MAX_CUSTOM_FEE_ENTRIES_FOR_TOPICS` entries.
       
      repeated .proto.FixedCustomFee custom_fees = 10;
    • parseFrom

      public static ConsensusCreateTopicTransactionBody parseFrom(ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

      public static ConsensusCreateTopicTransactionBody parseFrom(ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

      public static ConsensusCreateTopicTransactionBody parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

      public static ConsensusCreateTopicTransactionBody parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

      public static ConsensusCreateTopicTransactionBody parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

      public static ConsensusCreateTopicTransactionBody parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

      public static ConsensusCreateTopicTransactionBody parseFrom(InputStream input) throws IOException
      Throws:
      IOException
    • parseFrom

      public static ConsensusCreateTopicTransactionBody parseFrom(InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException
      Throws:
      IOException
    • parseDelimitedFrom

      public static ConsensusCreateTopicTransactionBody parseDelimitedFrom(InputStream input) throws IOException
      Throws:
      IOException
    • parseDelimitedFrom

      public static ConsensusCreateTopicTransactionBody parseDelimitedFrom(InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException
      Throws:
      IOException
    • parseFrom

      public static ConsensusCreateTopicTransactionBody parseFrom(com.google.protobuf.CodedInputStream input) throws IOException
      Throws:
      IOException
    • parseFrom

      public static ConsensusCreateTopicTransactionBody parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException
      Throws:
      IOException
    • newBuilder

      public static ConsensusCreateTopicTransactionBody.Builder newBuilder()
    • newBuilder

    • dynamicMethod

      protected final Object dynamicMethod(com.google.protobuf.GeneratedMessageLite.MethodToInvoke method, Object arg0, Object arg1)
      Specified by:
      dynamicMethod in class com.google.protobuf.GeneratedMessageLite<ConsensusCreateTopicTransactionBody,ConsensusCreateTopicTransactionBody.Builder>
    • getDefaultInstance

      public static ConsensusCreateTopicTransactionBody getDefaultInstance()
    • parser

      public static com.google.protobuf.Parser<ConsensusCreateTopicTransactionBody> parser()