// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: token_burn.proto
// Protobuf Java Version: 3.25.3
package com.hedera.hashgraph.sdk.proto;
/**
*
**
* Burns tokens from the Token's treasury Account. If no Supply Key is defined, the transaction will
* resolve to TOKEN_HAS_NO_SUPPLY_KEY.
* The operation decreases the Total Supply of the Token. Total supply cannot go below zero.
* The amount provided must be in the lowest denomination possible. Example:
* Token A has 2 decimals. In order to burn 100 tokens, one must provide amount of 10000. In order
* to burn 100.55 tokens, one must provide amount of 10055.
* For non fungible tokens the transaction body accepts serialNumbers list of integers as a parameter.
*
* If the serialNumbers don't get filled for non-fungible token type, a INVALID_TOKEN_BURN_AMOUNT response
* code will be returned.
* If a zero amount is provided for a fungible token type, it will be treated as a regular transaction.
* If both amount and serialNumbers get filled, a INVALID_TRANSACTION_BODY response code will be
* returned.
* If the serialNumbers' list count is greater than the batch size limit global dynamic property, a
* BATCH_SIZE_LIMIT_EXCEEDED response code will be returned.
* If the serialNumbers list contains a non-positive integer as a serial number, a INVALID_NFT_ID
* response code will be returned.
*
*
* Protobuf type {@code proto.TokenBurnTransactionBody}
*/
public final class TokenBurnTransactionBody extends
com.google.protobuf.GeneratedMessageLite<
TokenBurnTransactionBody, TokenBurnTransactionBody.Builder> implements
// @@protoc_insertion_point(message_implements:proto.TokenBurnTransactionBody)
TokenBurnTransactionBodyOrBuilder {
private TokenBurnTransactionBody() {
serialNumbers_ = emptyLongList();
}
private int bitField0_;
public static final int TOKEN_FIELD_NUMBER = 1;
private com.hedera.hashgraph.sdk.proto.TokenID token_;
/**
*
**
* The token for which to burn tokens. If token does not exist, transaction results in
* INVALID_TOKEN_ID
*
*
* .proto.TokenID token = 1;
*/
@java.lang.Override
public boolean hasToken() {
return ((bitField0_ & 0x00000001) != 0);
}
/**
*
**
* The token for which to burn tokens. If token does not exist, transaction results in
* INVALID_TOKEN_ID
*
*
* .proto.TokenID token = 1;
*/
@java.lang.Override
public com.hedera.hashgraph.sdk.proto.TokenID getToken() {
return token_ == null ? com.hedera.hashgraph.sdk.proto.TokenID.getDefaultInstance() : token_;
}
/**
*
**
* The token for which to burn tokens. If token does not exist, transaction results in
* INVALID_TOKEN_ID
*
*
* .proto.TokenID token = 1;
*/
private void setToken(com.hedera.hashgraph.sdk.proto.TokenID value) {
value.getClass();
token_ = value;
bitField0_ |= 0x00000001;
}
/**
*
**
* The token for which to burn tokens. If token does not exist, transaction results in
* INVALID_TOKEN_ID
*
*
* .proto.TokenID token = 1;
*/
@java.lang.SuppressWarnings({"ReferenceEquality"})
private void mergeToken(com.hedera.hashgraph.sdk.proto.TokenID value) {
value.getClass();
if (token_ != null &&
token_ != com.hedera.hashgraph.sdk.proto.TokenID.getDefaultInstance()) {
token_ =
com.hedera.hashgraph.sdk.proto.TokenID.newBuilder(token_).mergeFrom(value).buildPartial();
} else {
token_ = value;
}
bitField0_ |= 0x00000001;
}
/**
*
**
* The token for which to burn tokens. If token does not exist, transaction results in
* INVALID_TOKEN_ID
*
*
* .proto.TokenID token = 1;
*/
private void clearToken() { token_ = null;
bitField0_ = (bitField0_ & ~0x00000001);
}
public static final int AMOUNT_FIELD_NUMBER = 2;
private long amount_;
/**
*
**
* Applicable to tokens of type FUNGIBLE_COMMON. The amount to burn from the Treasury Account.
* Amount must be a positive non-zero number, not bigger than the token balance of the treasury
* account (0; balance], represented in the lowest denomination.
*
*
* uint64 amount = 2;
* @return The amount.
*/
@java.lang.Override
public long getAmount() {
return amount_;
}
/**
*
**
* Applicable to tokens of type FUNGIBLE_COMMON. The amount to burn from the Treasury Account.
* Amount must be a positive non-zero number, not bigger than the token balance of the treasury
* account (0; balance], represented in the lowest denomination.
*
*
* uint64 amount = 2;
* @param value The amount to set.
*/
private void setAmount(long value) {
amount_ = value;
}
/**
*
**
* Applicable to tokens of type FUNGIBLE_COMMON. The amount to burn from the Treasury Account.
* Amount must be a positive non-zero number, not bigger than the token balance of the treasury
* account (0; balance], represented in the lowest denomination.
*
*
* uint64 amount = 2;
*/
private void clearAmount() {
amount_ = 0L;
}
public static final int SERIALNUMBERS_FIELD_NUMBER = 3;
private com.google.protobuf.Internal.LongList serialNumbers_;
/**
*
**
* Applicable to tokens of type NON_FUNGIBLE_UNIQUE. The list of serial numbers to be burned.
*
*
* repeated int64 serialNumbers = 3;
* @return A list containing the serialNumbers.
*/
@java.lang.Override
public java.util.List
getSerialNumbersList() {
return serialNumbers_;
}
/**
*
**
* Applicable to tokens of type NON_FUNGIBLE_UNIQUE. The list of serial numbers to be burned.
*
*
* repeated int64 serialNumbers = 3;
* @return The count of serialNumbers.
*/
@java.lang.Override
public int getSerialNumbersCount() {
return serialNumbers_.size();
}
/**
*
**
* Applicable to tokens of type NON_FUNGIBLE_UNIQUE. The list of serial numbers to be burned.
*
*
* repeated int64 serialNumbers = 3;
* @param index The index of the element to return.
* @return The serialNumbers at the given index.
*/
@java.lang.Override
public long getSerialNumbers(int index) {
return serialNumbers_.getLong(index);
}
private int serialNumbersMemoizedSerializedSize = -1;
private void ensureSerialNumbersIsMutable() {
com.google.protobuf.Internal.LongList tmp = serialNumbers_;
if (!tmp.isModifiable()) {
serialNumbers_ =
com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
}
}
/**
*
**
* Applicable to tokens of type NON_FUNGIBLE_UNIQUE. The list of serial numbers to be burned.
*
*
* repeated int64 serialNumbers = 3;
* @param index The index to set the value at.
* @param value The serialNumbers to set.
*/
private void setSerialNumbers(
int index, long value) {
ensureSerialNumbersIsMutable();
serialNumbers_.setLong(index, value);
}
/**
*
**
* Applicable to tokens of type NON_FUNGIBLE_UNIQUE. The list of serial numbers to be burned.
*
*
* repeated int64 serialNumbers = 3;
* @param value The serialNumbers to add.
*/
private void addSerialNumbers(long value) {
ensureSerialNumbersIsMutable();
serialNumbers_.addLong(value);
}
/**
*
**
* Applicable to tokens of type NON_FUNGIBLE_UNIQUE. The list of serial numbers to be burned.
*
*
* repeated int64 serialNumbers = 3;
* @param values The serialNumbers to add.
*/
private void addAllSerialNumbers(
java.lang.Iterable extends java.lang.Long> values) {
ensureSerialNumbersIsMutable();
com.google.protobuf.AbstractMessageLite.addAll(
values, serialNumbers_);
}
/**
*
**
* Applicable to tokens of type NON_FUNGIBLE_UNIQUE. The list of serial numbers to be burned.
*
*
* repeated int64 serialNumbers = 3;
*/
private void clearSerialNumbers() {
serialNumbers_ = emptyLongList();
}
public static com.hedera.hashgraph.sdk.proto.TokenBurnTransactionBody parseFrom(
java.nio.ByteBuffer data)
throws com.google.protobuf.InvalidProtocolBufferException {
return com.google.protobuf.GeneratedMessageLite.parseFrom(
DEFAULT_INSTANCE, data);
}
public static com.hedera.hashgraph.sdk.proto.TokenBurnTransactionBody parseFrom(
java.nio.ByteBuffer data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return com.google.protobuf.GeneratedMessageLite.parseFrom(
DEFAULT_INSTANCE, data, extensionRegistry);
}
public static com.hedera.hashgraph.sdk.proto.TokenBurnTransactionBody parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return com.google.protobuf.GeneratedMessageLite.parseFrom(
DEFAULT_INSTANCE, data);
}
public static com.hedera.hashgraph.sdk.proto.TokenBurnTransactionBody parseFrom(
com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return com.google.protobuf.GeneratedMessageLite.parseFrom(
DEFAULT_INSTANCE, data, extensionRegistry);
}
public static com.hedera.hashgraph.sdk.proto.TokenBurnTransactionBody parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return com.google.protobuf.GeneratedMessageLite.parseFrom(
DEFAULT_INSTANCE, data);
}
public static com.hedera.hashgraph.sdk.proto.TokenBurnTransactionBody parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return com.google.protobuf.GeneratedMessageLite.parseFrom(
DEFAULT_INSTANCE, data, extensionRegistry);
}
public static com.hedera.hashgraph.sdk.proto.TokenBurnTransactionBody parseFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageLite.parseFrom(
DEFAULT_INSTANCE, input);
}
public static com.hedera.hashgraph.sdk.proto.TokenBurnTransactionBody parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageLite.parseFrom(
DEFAULT_INSTANCE, input, extensionRegistry);
}
public static com.hedera.hashgraph.sdk.proto.TokenBurnTransactionBody parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
return parseDelimitedFrom(DEFAULT_INSTANCE, input);
}
public static com.hedera.hashgraph.sdk.proto.TokenBurnTransactionBody parseDelimitedFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
}
public static com.hedera.hashgraph.sdk.proto.TokenBurnTransactionBody parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageLite.parseFrom(
DEFAULT_INSTANCE, input);
}
public static com.hedera.hashgraph.sdk.proto.TokenBurnTransactionBody parseFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessageLite.parseFrom(
DEFAULT_INSTANCE, input, extensionRegistry);
}
public static Builder newBuilder() {
return (Builder) DEFAULT_INSTANCE.createBuilder();
}
public static Builder newBuilder(com.hedera.hashgraph.sdk.proto.TokenBurnTransactionBody prototype) {
return DEFAULT_INSTANCE.createBuilder(prototype);
}
/**
*
**
* Burns tokens from the Token's treasury Account. If no Supply Key is defined, the transaction will
* resolve to TOKEN_HAS_NO_SUPPLY_KEY.
* The operation decreases the Total Supply of the Token. Total supply cannot go below zero.
* The amount provided must be in the lowest denomination possible. Example:
* Token A has 2 decimals. In order to burn 100 tokens, one must provide amount of 10000. In order
* to burn 100.55 tokens, one must provide amount of 10055.
* For non fungible tokens the transaction body accepts serialNumbers list of integers as a parameter.
*
* If the serialNumbers don't get filled for non-fungible token type, a INVALID_TOKEN_BURN_AMOUNT response
* code will be returned.
* If a zero amount is provided for a fungible token type, it will be treated as a regular transaction.
* If both amount and serialNumbers get filled, a INVALID_TRANSACTION_BODY response code will be
* returned.
* If the serialNumbers' list count is greater than the batch size limit global dynamic property, a
* BATCH_SIZE_LIMIT_EXCEEDED response code will be returned.
* If the serialNumbers list contains a non-positive integer as a serial number, a INVALID_NFT_ID
* response code will be returned.
*
*
* Protobuf type {@code proto.TokenBurnTransactionBody}
*/
public static final class Builder extends
com.google.protobuf.GeneratedMessageLite.Builder<
com.hedera.hashgraph.sdk.proto.TokenBurnTransactionBody, Builder> implements
// @@protoc_insertion_point(builder_implements:proto.TokenBurnTransactionBody)
com.hedera.hashgraph.sdk.proto.TokenBurnTransactionBodyOrBuilder {
// Construct using com.hedera.hashgraph.sdk.proto.TokenBurnTransactionBody.newBuilder()
private Builder() {
super(DEFAULT_INSTANCE);
}
/**
*
**
* The token for which to burn tokens. If token does not exist, transaction results in
* INVALID_TOKEN_ID
*
*
* .proto.TokenID token = 1;
*/
@java.lang.Override
public boolean hasToken() {
return instance.hasToken();
}
/**
*
**
* The token for which to burn tokens. If token does not exist, transaction results in
* INVALID_TOKEN_ID
*
*
* .proto.TokenID token = 1;
*/
@java.lang.Override
public com.hedera.hashgraph.sdk.proto.TokenID getToken() {
return instance.getToken();
}
/**
*
**
* The token for which to burn tokens. If token does not exist, transaction results in
* INVALID_TOKEN_ID
*
*
* .proto.TokenID token = 1;
*/
public Builder setToken(com.hedera.hashgraph.sdk.proto.TokenID value) {
copyOnWrite();
instance.setToken(value);
return this;
}
/**
*
**
* The token for which to burn tokens. If token does not exist, transaction results in
* INVALID_TOKEN_ID
*
*
* .proto.TokenID token = 1;
*/
public Builder setToken(
com.hedera.hashgraph.sdk.proto.TokenID.Builder builderForValue) {
copyOnWrite();
instance.setToken(builderForValue.build());
return this;
}
/**
*
**
* The token for which to burn tokens. If token does not exist, transaction results in
* INVALID_TOKEN_ID
*
*
* .proto.TokenID token = 1;
*/
public Builder mergeToken(com.hedera.hashgraph.sdk.proto.TokenID value) {
copyOnWrite();
instance.mergeToken(value);
return this;
}
/**
*
**
* The token for which to burn tokens. If token does not exist, transaction results in
* INVALID_TOKEN_ID
*
*
* .proto.TokenID token = 1;
*/
public Builder clearToken() { copyOnWrite();
instance.clearToken();
return this;
}
/**
*
**
* Applicable to tokens of type FUNGIBLE_COMMON. The amount to burn from the Treasury Account.
* Amount must be a positive non-zero number, not bigger than the token balance of the treasury
* account (0; balance], represented in the lowest denomination.
*
*
* uint64 amount = 2;
* @return The amount.
*/
@java.lang.Override
public long getAmount() {
return instance.getAmount();
}
/**
*
**
* Applicable to tokens of type FUNGIBLE_COMMON. The amount to burn from the Treasury Account.
* Amount must be a positive non-zero number, not bigger than the token balance of the treasury
* account (0; balance], represented in the lowest denomination.
*
*
* uint64 amount = 2;
* @param value The amount to set.
* @return This builder for chaining.
*/
public Builder setAmount(long value) {
copyOnWrite();
instance.setAmount(value);
return this;
}
/**
*
**
* Applicable to tokens of type FUNGIBLE_COMMON. The amount to burn from the Treasury Account.
* Amount must be a positive non-zero number, not bigger than the token balance of the treasury
* account (0; balance], represented in the lowest denomination.
*
*
* uint64 amount = 2;
* @return This builder for chaining.
*/
public Builder clearAmount() {
copyOnWrite();
instance.clearAmount();
return this;
}
/**
*
**
* Applicable to tokens of type NON_FUNGIBLE_UNIQUE. The list of serial numbers to be burned.
*
*
* repeated int64 serialNumbers = 3;
* @return A list containing the serialNumbers.
*/
@java.lang.Override
public java.util.List
getSerialNumbersList() {
return java.util.Collections.unmodifiableList(
instance.getSerialNumbersList());
}
/**
*
**
* Applicable to tokens of type NON_FUNGIBLE_UNIQUE. The list of serial numbers to be burned.
*
*
* repeated int64 serialNumbers = 3;
* @return The count of serialNumbers.
*/
@java.lang.Override
public int getSerialNumbersCount() {
return instance.getSerialNumbersCount();
}
/**
*
**
* Applicable to tokens of type NON_FUNGIBLE_UNIQUE. The list of serial numbers to be burned.
*
*
* repeated int64 serialNumbers = 3;
* @param index The index of the element to return.
* @return The serialNumbers at the given index.
*/
@java.lang.Override
public long getSerialNumbers(int index) {
return instance.getSerialNumbers(index);
}
/**
*
**
* Applicable to tokens of type NON_FUNGIBLE_UNIQUE. The list of serial numbers to be burned.
*
*
* repeated int64 serialNumbers = 3;
* @param value The serialNumbers to set.
* @return This builder for chaining.
*/
public Builder setSerialNumbers(
int index, long value) {
copyOnWrite();
instance.setSerialNumbers(index, value);
return this;
}
/**
*
**
* Applicable to tokens of type NON_FUNGIBLE_UNIQUE. The list of serial numbers to be burned.
*
*
* repeated int64 serialNumbers = 3;
* @param value The serialNumbers to add.
* @return This builder for chaining.
*/
public Builder addSerialNumbers(long value) {
copyOnWrite();
instance.addSerialNumbers(value);
return this;
}
/**
*
**
* Applicable to tokens of type NON_FUNGIBLE_UNIQUE. The list of serial numbers to be burned.
*
*
* repeated int64 serialNumbers = 3;
* @param values The serialNumbers to add.
* @return This builder for chaining.
*/
public Builder addAllSerialNumbers(
java.lang.Iterable extends java.lang.Long> values) {
copyOnWrite();
instance.addAllSerialNumbers(values);
return this;
}
/**
*
**
* Applicable to tokens of type NON_FUNGIBLE_UNIQUE. The list of serial numbers to be burned.
*
*
* repeated int64 serialNumbers = 3;
* @return This builder for chaining.
*/
public Builder clearSerialNumbers() {
copyOnWrite();
instance.clearSerialNumbers();
return this;
}
// @@protoc_insertion_point(builder_scope:proto.TokenBurnTransactionBody)
}
@java.lang.Override
@java.lang.SuppressWarnings({"unchecked", "fallthrough"})
protected final java.lang.Object dynamicMethod(
com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
java.lang.Object arg0, java.lang.Object arg1) {
switch (method) {
case NEW_MUTABLE_INSTANCE: {
return new com.hedera.hashgraph.sdk.proto.TokenBurnTransactionBody();
}
case NEW_BUILDER: {
return new Builder();
}
case BUILD_MESSAGE_INFO: {
java.lang.Object[] objects = new java.lang.Object[] {
"bitField0_",
"token_",
"amount_",
"serialNumbers_",
};
java.lang.String info =
"\u0000\u0003\u0000\u0001\u0001\u0003\u0003\u0000\u0001\u0000\u0001\u1009\u0000\u0002" +
"\u0003\u0003%";
return newMessageInfo(DEFAULT_INSTANCE, info, objects);
}
// fall through
case GET_DEFAULT_INSTANCE: {
return DEFAULT_INSTANCE;
}
case GET_PARSER: {
com.google.protobuf.Parser parser = PARSER;
if (parser == null) {
synchronized (com.hedera.hashgraph.sdk.proto.TokenBurnTransactionBody.class) {
parser = PARSER;
if (parser == null) {
parser =
new DefaultInstanceBasedParser(
DEFAULT_INSTANCE);
PARSER = parser;
}
}
}
return parser;
}
case GET_MEMOIZED_IS_INITIALIZED: {
return (byte) 1;
}
case SET_MEMOIZED_IS_INITIALIZED: {
return null;
}
}
throw new UnsupportedOperationException();
}
// @@protoc_insertion_point(class_scope:proto.TokenBurnTransactionBody)
private static final com.hedera.hashgraph.sdk.proto.TokenBurnTransactionBody DEFAULT_INSTANCE;
static {
TokenBurnTransactionBody defaultInstance = new TokenBurnTransactionBody();
// New instances are implicitly immutable so no need to make
// immutable.
DEFAULT_INSTANCE = defaultInstance;
com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
TokenBurnTransactionBody.class, defaultInstance);
}
public static com.hedera.hashgraph.sdk.proto.TokenBurnTransactionBody getDefaultInstance() {
return DEFAULT_INSTANCE;
}
private static volatile com.google.protobuf.Parser PARSER;
public static com.google.protobuf.Parser parser() {
return DEFAULT_INSTANCE.getParserForType();
}
}