Class TokenMintTransaction


public class TokenMintTransaction extends Transaction<TokenMintTransaction>
Mint tokens and deliver the new tokens to the token treasury account. The token MUST have a `supply_key` set and that key MUST NOT be an empty `KeyList`.
The token `supply_key` MUST sign this transaction.
This operation SHALL increase the total supply for the token type by the number of tokens "minted".
The total supply for the token type MUST NOT be increased above the maximum supply limit (2^63-1) by this transaction.
The tokens minted SHALL be credited to the token treasury account.
If the token is a fungible/common type, the amount MUST be specified.
If the token is a non-fungible/unique type, the metadata bytes for each unique token MUST be specified in the `metadata` list.
Each unique metadata MUST not exceed the global metadata size limit defined by the network configuration value `tokens.maxMetadataBytes`.
The global batch size limit (`tokens.nfts.maxBatchSizeMint`) SHALL set the maximum number of individual NFT metadata permitted in a single `tokenMint` transaction. ### Block Stream Effects None
  • Constructor Details

    • TokenMintTransaction

      public TokenMintTransaction()
      Constructor.
    • TokenMintTransaction

      TokenMintTransaction(LinkedHashMap<TransactionId,LinkedHashMap<AccountId,Transaction>> txs) throws com.google.protobuf.InvalidProtocolBufferException
      Constructor.
      Parameters:
      txs - Compound list of transaction id's list of (AccountId, Transaction) records
      Throws:
      com.google.protobuf.InvalidProtocolBufferException - when there is an issue with the protobuf
    • TokenMintTransaction

      TokenMintTransaction(TransactionBody txBody)
      Constructor.
      Parameters:
      txBody - protobuf TransactionBody
  • Method Details

    • getTokenId

      @Nullable public TokenId getTokenId()
      Extract the token id.
      Returns:
      the token id
    • setTokenId

      public TokenMintTransaction setTokenId(TokenId tokenId)
      A token identifier.

      This SHALL identify the token type to "mint".
      The identified token MUST exist, and MUST NOT be deleted.

      Parameters:
      tokenId - the token id
      Returns:
      this
    • getAmount

      public long getAmount()
      Extract the amount.
      Returns:
      the amount to mint
    • setAmount

      public TokenMintTransaction setAmount(@Nonnegative long amount)
      An amount to mint to the Treasury Account.

      This is interpreted as an amount in the smallest possible denomination for the token (10-decimals whole tokens).
      The balance for the token treasury account SHALL receive the newly minted tokens.
      If this value is equal to zero (`0`), the token SHOULD be a non-fungible/unique type.
      If this value is non-zero, the token MUST be a fungible/common type.

      Parameters:
      amount - the amount to mint
      Returns:
      this
    • addMetadata

      public TokenMintTransaction addMetadata(byte[] metadata)
      Add to the metadata list.
      Parameters:
      metadata - the metadata 100 bytes max
      Returns:
      this
    • getMetadata

      public List<byte[]> getMetadata()
      Extract the list of metadata byte array records.
      Returns:
      the metadata list
    • setMetadata

      public TokenMintTransaction setMetadata(List<byte[]> metadataList)
      A list of metadata bytes.

      One non-fungible/unique token SHALL be minted for each entry in this list.
      Each entry in this list MUST NOT be larger than the limit set by the current network configuration value `tokens.maxMetadataBytes`.
      This list MUST NOT contain more entries than the current limit set by the network configuration value `tokens.nfts.maxBatchSizeMint`.
      If this list is not empty, the token MUST be a non-fungible/unique type.
      If this list is empty, the token MUST be a fungible/common type.

      Parameters:
      metadataList - the metadata list
      Returns:
      this
    • initFromTransactionBody

      void initFromTransactionBody()
      Initialize from the transaction body.
    • build

      Build the transaction body.
      Returns:
      TokenMintTransactionBody
    • validateChecksums

      void validateChecksums(Client client) throws BadEntityIdException
      Specified by:
      validateChecksums in class Transaction<TokenMintTransaction>
      Throws:
      BadEntityIdException
    • getMethodDescriptor

      io.grpc.MethodDescriptor<Transaction,TransactionResponse> getMethodDescriptor()
      Description copied from class: Executable
      Called to direct the invocation of the query to the appropriate gRPC service.
      Specified by:
      getMethodDescriptor in class Executable<TokenMintTransaction,Transaction,TransactionResponse,TransactionResponse>
    • onFreeze

      void onFreeze(TransactionBody.Builder bodyBuilder)
      Description copied from class: Transaction
      Called in Transaction.freezeWith(Client) just before the transaction body is built. The intent is for the derived class to assign their data variant to the transaction body.
      Specified by:
      onFreeze in class Transaction<TokenMintTransaction>
    • onScheduled

      void onScheduled(SchedulableTransactionBody.Builder scheduled)
      Description copied from class: Transaction
      Called in Transaction.schedule() when converting transaction into a scheduled version.
      Specified by:
      onScheduled in class Transaction<TokenMintTransaction>