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

shgraph.hapi.0.54.1.source-code.transaction_body.proto Maven / Gradle / Ivy

There is a newer version: 0.54.0
Show newest version
syntax = "proto3";

package proto;

/*
 * Copyright (C) 2018-2024 Hedera Hashgraph, LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

option java_package = "com.hederahashgraph.api.proto.java";
// <<>> This comment is special code for setting PBJ Compiler java package
option java_multiple_files = true;

import "system_delete.proto";
import "system_undelete.proto";
import "freeze.proto";

import "contract_call.proto";
import "contract_create.proto";
import "contract_update.proto";

import "crypto_add_live_hash.proto";
import "crypto_create.proto";
import "crypto_delete.proto";
import "crypto_delete_live_hash.proto";
import "crypto_transfer.proto";
import "crypto_update.proto";
import "crypto_approve_allowance.proto";
import "crypto_delete_allowance.proto";

import "ethereum_transaction.proto";

import "file_append.proto";
import "file_create.proto";
import "file_delete.proto";
import "file_update.proto";

import "duration.proto";
import "basic_types.proto";
import "contract_delete.proto";

import "consensus_create_topic.proto";
import "consensus_update_topic.proto";
import "consensus_delete_topic.proto";
import "consensus_submit_message.proto";

import "unchecked_submit.proto";

import "token_create.proto";
import "token_freeze_account.proto";
import "token_unfreeze_account.proto";
import "token_grant_kyc.proto";
import "token_revoke_kyc.proto";
import "token_delete.proto";
import "token_update.proto";
import "token_mint.proto";
import "token_burn.proto";
import "token_wipe_account.proto";
import "token_associate.proto";
import "token_dissociate.proto";
import "token_fee_schedule_update.proto";
import "token_pause.proto";
import "token_unpause.proto";
import "token_update_nfts.proto";
import "token_reject.proto";
import "token_airdrop.proto";
import "token_cancel_airdrop.proto";
import "token_claim_airdrop.proto";

import "schedule_create.proto";
import "schedule_delete.proto";
import "schedule_sign.proto";

import "node_stake_update.proto";
import "util_prng.proto";

import "node_create.proto";
import "node_update.proto";
import "node_delete.proto";

/**
 * A single transaction. All transaction types are possible here.
 */
message TransactionBody {
    /**
     * The ID for this transaction, which includes the payer's account (the account paying the
     * transaction fee). If two transactions have the same transactionID, they won't both have an
     * effect
     */
    TransactionID transactionID = 1;

    /**
     * The account of the node that submits the client's transaction to the network
     */
    AccountID nodeAccountID = 2;

    /**
     * The maximum transaction fee the client is willing to pay
     */
    uint64 transactionFee = 3;

    /**
     * The transaction is invalid if consensusTimestamp > transactionID.transactionValidStart +
     * transactionValidDuration
     */
    Duration transactionValidDuration = 4;

    /**
     * Should a record of this transaction be generated? (A receipt is always generated, but the
     * record is optional)
     */
    bool generateRecord = 5 [deprecated = true];

    /**
     * Any notes or descriptions that should be put into the record (max length 100)
     */
    string memo = 6;

    /**
     * The choices here are arranged by service in roughly lexicographical order. The field ordinals are non-sequential, and a result of the historical order of implementation.
     */
    oneof data {
        /**
         * Calls a function of a contract instance
         */
        ContractCallTransactionBody contractCall = 7;

        /**
         * Creates a contract instance
         */
        ContractCreateTransactionBody contractCreateInstance = 8;

        /**
         * Updates a contract
         */
        ContractUpdateTransactionBody contractUpdateInstance = 9;

        /**
         * Attach a new livehash to an account
         */
        CryptoAddLiveHashTransactionBody cryptoAddLiveHash = 10;

        /**
         * Create a new cryptocurrency account
         */
        CryptoCreateTransactionBody cryptoCreateAccount = 11;

        /**
         * Delete a cryptocurrency account (mark as deleted, and transfer hbars out)
         */
        CryptoDeleteTransactionBody cryptoDelete = 12;

        /**
         * Remove a livehash from an account
         */
        CryptoDeleteLiveHashTransactionBody cryptoDeleteLiveHash = 13;

        /**
         * Transfer amount between accounts
         */
        CryptoTransferTransactionBody cryptoTransfer = 14;

        /**
         * Modify information such as the expiration date for an account
         */
        CryptoUpdateTransactionBody cryptoUpdateAccount = 15;

        /**
         * Add bytes to the end of the contents of a file
         */
        FileAppendTransactionBody fileAppend = 16;

        /**
         * Create a new file
         */
        FileCreateTransactionBody fileCreate = 17;

        /**
         * Delete a file (remove contents and mark as deleted until it expires)
         */
        FileDeleteTransactionBody fileDelete = 18;

        /**
         * Modify information such as the expiration date for a file
         */
        FileUpdateTransactionBody fileUpdate = 19;

        /**
         * Hedera administrative deletion of a file or smart contract
         */
        SystemDeleteTransactionBody systemDelete = 20;

        /**
         * To undelete an entity deleted by SystemDelete
         */
        SystemUndeleteTransactionBody systemUndelete = 21;

        /**
         * Delete contract and transfer remaining balance into specified account
         */
        ContractDeleteTransactionBody contractDeleteInstance = 22;

        /**
         * Freeze the nodes
         */
        FreezeTransactionBody freeze = 23;

        /**
         * Creates a topic
         */
        ConsensusCreateTopicTransactionBody consensusCreateTopic = 24;

        /**
         * Updates a topic
         */
        ConsensusUpdateTopicTransactionBody consensusUpdateTopic = 25;

        /**
         * Deletes a topic
         */
        ConsensusDeleteTopicTransactionBody consensusDeleteTopic = 26;

        /**
         * Submits message to a topic
         */
        ConsensusSubmitMessageTransactionBody consensusSubmitMessage = 27;

        /**
         * UNDOCUMENTED
         */
        UncheckedSubmitBody uncheckedSubmit = 28;

        /**
         * Creates a token instance
         */
        TokenCreateTransactionBody tokenCreation = 29;

        /**
         * Freezes account not to be able to transact with a token
         */
        TokenFreezeAccountTransactionBody tokenFreeze = 31;

        /**
         * Unfreezes account for a token
         */
        TokenUnfreezeAccountTransactionBody tokenUnfreeze = 32;

        /**
         * Grants KYC to an account for a token
         */
        TokenGrantKycTransactionBody tokenGrantKyc = 33;

        /**
         * Revokes KYC of an account for a token
         */
        TokenRevokeKycTransactionBody tokenRevokeKyc = 34;

        /**
         * Deletes a token instance
         */
        TokenDeleteTransactionBody tokenDeletion = 35;

        /**
         * Updates a token instance
         */
        TokenUpdateTransactionBody tokenUpdate = 36;

        /**
         * Mints new tokens to a token's treasury account
         */
        TokenMintTransactionBody tokenMint = 37;

        /**
         * Burns tokens from a token's treasury account
         */
        TokenBurnTransactionBody tokenBurn = 38;

        /**
         * Wipes amount of tokens from an account
         */
        TokenWipeAccountTransactionBody tokenWipe = 39;

        /**
         * Associate tokens to an account
         */
        TokenAssociateTransactionBody tokenAssociate = 40;

        /**
         * Dissociate tokens from an account
         */
        TokenDissociateTransactionBody tokenDissociate = 41;

        /**
         * Creates a schedule in the network's action queue
         */
        ScheduleCreateTransactionBody scheduleCreate = 42;

        /**
         * Deletes a schedule from the network's action queue
         */
        ScheduleDeleteTransactionBody scheduleDelete = 43;

        /**
         * Adds one or more Ed25519 keys to the affirmed signers of a scheduled transaction
         */
        ScheduleSignTransactionBody scheduleSign = 44;

        /**
         * Updates a token's custom fee schedule
         */
        TokenFeeScheduleUpdateTransactionBody token_fee_schedule_update = 45;

        /**
         * Pauses the Token
         */
        TokenPauseTransactionBody token_pause = 46;

        /**
         * Unpauses the Token
         */
        TokenUnpauseTransactionBody token_unpause = 47;

        /**
         * Adds one or more approved allowances for spenders to transfer the paying account's hbar or tokens.
         */
        CryptoApproveAllowanceTransactionBody cryptoApproveAllowance = 48;

        /**
         * Deletes one or more of the specific approved NFT serial numbers on an owner account.
         */
        CryptoDeleteAllowanceTransactionBody cryptoDeleteAllowance = 49;

        /**
         * An Ethereum encoded transaction.
         */
        EthereumTransactionBody ethereumTransaction = 50;

        /**
         * Updates the staking info at the end of staking period to indicate new staking period has started.
         */
        NodeStakeUpdateTransactionBody node_stake_update = 51;

        /**
         * Generates a pseudorandom number.
         */
        UtilPrngTransactionBody util_prng = 52;

        /**
         * Update the metadata of one or more NFT's of a specific token type.
         */
        TokenUpdateNftsTransactionBody token_update_nfts = 53;

        /**
         * A transaction body for a `createNode` request.
         * 

* This transaction SHALL create a new consensus node record and add * that record to the network address book. */ com.hedera.hapi.node.addressbook.NodeCreateTransactionBody nodeCreate = 54; /** * A transaction body for an `updateNode` request. *

* This transaction SHALL update an existing consensus node record in * the network address book. */ com.hedera.hapi.node.addressbook.NodeUpdateTransactionBody nodeUpdate = 55; /** * A transaction body for a `deleteNode` request. *

* This transaction SHALL remove an existing consensus node record from * the network address book. */ com.hedera.hapi.node.addressbook.NodeDeleteTransactionBody nodeDelete = 56; /** * A transaction body to "reject" undesired tokens.
* This transaction will transfer one or more tokens or token * balances held by the requesting account to the treasury * for each token type. *

* Each transfer MUST be one of the following: *

    *
  • A single non-fungible/unique token.
  • *
  • The full balance held for a fungible/common * token type.
  • *
* When complete, the requesting account SHALL NOT hold the * rejected tokens.
* Custom fees and royalties defined for the tokens rejected * SHALL NOT be charged for this transaction. */ TokenRejectTransactionBody tokenReject = 57; /** * A transaction body for a `tokenAirdrop` request. */ TokenAirdropTransactionBody tokenAirdrop = 58; /** * A transaction body for a `cancelAirdrop` request. */ TokenCancelAirdropTransactionBody tokenCancelAirdrop = 59; /** * A transaction body for a `claimAirdrop` request. */ TokenClaimAirdropTransactionBody tokenClaimAirdrop = 60; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy