shgraph.hapi.0.54.2.source-code.schedulable_transaction_body.proto Maven / Gradle / Ivy
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_create.proto";
import "crypto_delete.proto";
import "crypto_transfer.proto";
import "crypto_update.proto";
import "crypto_approve_allowance.proto";
import "crypto_delete_allowance.proto";
import "file_append.proto";
import "file_create.proto";
import "file_delete.proto";
import "file_update.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 "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_cancel_airdrop.proto";
import "token_claim_airdrop.proto";
import "token_airdrop.proto";
import "schedule_delete.proto";
import "util_prng.proto";
import "node_create.proto";
import "node_update.proto";
import "node_delete.proto";
/**
* A schedulable transaction. Note that the global/dynamic system property
* scheduling.whitelist controls which transaction types may be scheduled. As of Hedera
* Services 0.24.0 this list includes ConsensusSubmitMessage, CryptoTransfer, TokenMint, and TokenBurn
* functions.
*/
message SchedulableTransactionBody {
/**
* The maximum transaction fee the client is willing to pay
*/
uint64 transactionFee = 1;
/**
* A memo to include the execution record; the UTF-8 encoding may be up to 100 bytes and must not
* include the zero byte
*/
string memo = 2;
/**
* 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 = 3;
/**
* Creates a contract instance
*/
ContractCreateTransactionBody contractCreateInstance = 4;
/**
* Updates a contract
*/
ContractUpdateTransactionBody contractUpdateInstance = 5;
/**
* Delete contract and transfer remaining balance into specified account
*/
ContractDeleteTransactionBody contractDeleteInstance = 6;
/**
* Adds one or more approved allowances for spenders to transfer the paying account's hbar or tokens.
*/
CryptoApproveAllowanceTransactionBody cryptoApproveAllowance = 37;
/**
* Deletes one or more of the specific approved NFT serial numbers on an owner account.
*/
CryptoDeleteAllowanceTransactionBody cryptoDeleteAllowance = 38;
/**
* Create a new cryptocurrency account
*/
CryptoCreateTransactionBody cryptoCreateAccount = 7;
/**
* Delete a cryptocurrency account (mark as deleted, and transfer hbars out)
*/
CryptoDeleteTransactionBody cryptoDelete = 8;
/**
* Transfer amount between accounts
*/
CryptoTransferTransactionBody cryptoTransfer = 9;
/**
* Modify information such as the expiration date for an account
*/
CryptoUpdateTransactionBody cryptoUpdateAccount = 10;
/**
* Add bytes to the end of the contents of a file
*/
FileAppendTransactionBody fileAppend = 11;
/**
* Create a new file
*/
FileCreateTransactionBody fileCreate = 12;
/**
* Delete a file (remove contents and mark as deleted until it expires)
*/
FileDeleteTransactionBody fileDelete = 13;
/**
* Modify information such as the expiration date for a file
*/
FileUpdateTransactionBody fileUpdate = 14;
/**
* Hedera administrative deletion of a file or smart contract
*/
SystemDeleteTransactionBody systemDelete = 15;
/**
* To undelete an entity deleted by SystemDelete
*/
SystemUndeleteTransactionBody systemUndelete = 16;
/**
* Freeze the nodes
*/
FreezeTransactionBody freeze = 17;
/**
* Creates a topic
*/
ConsensusCreateTopicTransactionBody consensusCreateTopic = 18;
/**
* Updates a topic
*/
ConsensusUpdateTopicTransactionBody consensusUpdateTopic = 19;
/**
* Deletes a topic
*/
ConsensusDeleteTopicTransactionBody consensusDeleteTopic = 20;
/**
* Submits message to a topic
*/
ConsensusSubmitMessageTransactionBody consensusSubmitMessage = 21;
/**
* Creates a token instance
*/
TokenCreateTransactionBody tokenCreation = 22;
/**
* Freezes account not to be able to transact with a token
*/
TokenFreezeAccountTransactionBody tokenFreeze = 23;
/**
* Unfreezes account for a token
*/
TokenUnfreezeAccountTransactionBody tokenUnfreeze = 24;
/**
* Grants KYC to an account for a token
*/
TokenGrantKycTransactionBody tokenGrantKyc = 25;
/**
* Revokes KYC of an account for a token
*/
TokenRevokeKycTransactionBody tokenRevokeKyc = 26;
/**
* Deletes a token instance
*/
TokenDeleteTransactionBody tokenDeletion = 27;
/**
* Updates a token instance
*/
TokenUpdateTransactionBody tokenUpdate = 28;
/**
* Mints new tokens to a token's treasury account
*/
TokenMintTransactionBody tokenMint = 29;
/**
* Burns tokens from a token's treasury account
*/
TokenBurnTransactionBody tokenBurn = 30;
/**
* Wipes amount of tokens from an account
*/
TokenWipeAccountTransactionBody tokenWipe = 31;
/**
* Associate tokens to an account
*/
TokenAssociateTransactionBody tokenAssociate = 32;
/**
* Dissociate tokens from an account
*/
TokenDissociateTransactionBody tokenDissociate = 33;
/**
* Updates a token's custom fee schedule
*/
TokenFeeScheduleUpdateTransactionBody token_fee_schedule_update = 39;
/**
* Pauses the Token
*/
TokenPauseTransactionBody token_pause = 35;
/**
* Unpauses the Token
*/
TokenUnpauseTransactionBody token_unpause = 36;
/**
* Marks a schedule in the network's action queue as deleted, preventing it from executing
*/
ScheduleDeleteTransactionBody scheduleDelete = 34;
/**
* Generates a pseudorandom number.
*/
UtilPrngTransactionBody util_prng = 40;
/**
* Update the metadata of one or more NFT's of a specific token type.
*/
TokenUpdateNftsTransactionBody token_update_nfts = 41;
/**
* Transaction body for a scheduled transaction to create a new node.
*/
com.hedera.hapi.node.addressbook.NodeCreateTransactionBody nodeCreate = 42;
/**
* Transaction body for a scheduled transaction to modify an existing node.
*/
com.hedera.hapi.node.addressbook.NodeUpdateTransactionBody nodeUpdate = 43;
/**
* Transaction body for a scheduled transaction to remove a node.
*/
com.hedera.hapi.node.addressbook.NodeDeleteTransactionBody nodeDelete = 44;
/**
* 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 = 45;
/**
* Transaction body for a scheduled transaction to cancel an airdrop.
*/
TokenCancelAirdropTransactionBody tokenCancelAirdrop = 46;
/**
* Transaction body for a scheduled transaction to claim an airdrop.
*/
TokenClaimAirdropTransactionBody tokenClaimAirdrop = 47;
/**
* Transaction body for a scheduled transaction to airdrop tokens.
*/
TokenAirdropTransactionBody tokenAirdrop = 48;
}
}