shgraph.hapi.0.54.1.source-code.transaction_record.proto Maven / Gradle / Ivy
syntax = "proto3";
package proto;
/*-
*
* Hedera Network Services Protobuf
*
* Copyright (C) 2018 - 2021 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 "timestamp.proto";
import "basic_types.proto";
import "custom_fees.proto";
import "transaction_receipt.proto";
import "crypto_transfer.proto";
import "contract_call_local.proto";
/**
* Response when the client sends the node TransactionGetRecordResponse
*/
message TransactionRecord {
/**
* The status (reach consensus, or failed, or is unknown) and the ID of any new
* account/file/instance created.
*/
TransactionReceipt receipt = 1;
/**
* The hash of the Transaction that executed (not the hash of any Transaction that failed for
* having a duplicate TransactionID)
*/
bytes transactionHash = 2;
/**
* The consensus timestamp (or null if didn't reach consensus yet)
*/
Timestamp consensusTimestamp = 3;
/**
* The ID of the transaction this record represents
*/
TransactionID transactionID = 4;
/**
* The memo that was submitted as part of the transaction (max 100 bytes)
*/
string memo = 5;
/**
* The actual transaction fee charged, not the original transactionFee value from
* TransactionBody
*/
uint64 transactionFee = 6;
oneof body {
/**
* Record of the value returned by the smart contract function (if it completed and didn't
* fail) from ContractCallTransaction
*/
ContractFunctionResult contractCallResult = 7;
/**
* Record of the value returned by the smart contract constructor (if it completed and
* didn't fail) from ContractCreateTransaction
*/
ContractFunctionResult contractCreateResult = 8;
}
/**
* All hbar transfers as a result of this transaction, such as fees, or transfers performed by
* the transaction, or by a smart contract it calls, or by the creation of threshold records
* that it triggers.
*/
TransferList transferList = 10;
/**
* All Token transfers as a result of this transaction
*/
repeated TokenTransferList tokenTransferLists = 11;
/**
* Reference to the scheduled transaction ID that this transaction record represent
*/
ScheduleID scheduleRef = 12;
/**
* All custom fees that were assessed during a CryptoTransfer, and must be paid if the
* transaction status resolved to SUCCESS
*/
repeated AssessedCustomFee assessed_custom_fees = 13;
/**
* All token associations implicitly created while handling this transaction
*/
repeated TokenAssociation automatic_token_associations = 14;
/**
* In the record of an internal transaction, the consensus timestamp of the user
* transaction that spawned it.
*/
Timestamp parent_consensus_timestamp = 15;
/**
* In the record of a CryptoCreate transaction triggered by a user transaction with a
* (previously unused) alias, the new account's alias.
*/
bytes alias = 16;
/**
* The keccak256 hash of the ethereumData. This field will only be populated for
* EthereumTransaction.
*/
bytes ethereum_hash = 17;
/**
* List of accounts with the corresponding staking rewards paid as a result of a transaction.
*/
repeated AccountAmount paid_staking_rewards = 18;
oneof entropy {
/**
* In the record of a UtilPrng transaction with no output range, a pseudorandom 384-bit string.
*/
bytes prng_bytes = 19;
/**
* In the record of a PRNG transaction with an output range, the output of a PRNG whose input was a 384-bit string.
*/
int32 prng_number = 20;
}
/**
* The new default EVM address of the account created by this transaction.
* This field is populated only when the EVM address is not specified in the related transaction body.
*/
bytes evm_address = 21;
/**
* A list of pending token airdrops.
* Each pending airdrop represents a single requested transfer from a
* sending account to a recipient account. These pending transfers are
* issued unilaterally by the sending account, and MUST be claimed by the
* recipient account before the transfer MAY complete.
* A sender MAY cancel a pending airdrop before it is claimed.
* An airdrop transaction SHALL emit a pending airdrop when the recipient has no
* available automatic association slots available or when the recipient
* has set `receiver_sig_required`.
*/
repeated PendingAirdropRecord new_pending_airdrops = 22;
}
/**
* A record of a new pending airdrop.
*/
message PendingAirdropRecord {
/**
* A unique, composite, identifier for a pending airdrop.
* This field is REQUIRED.
*/
PendingAirdropId pending_airdrop_id = 1;
/**
* A single pending airdrop amount.
* If the pending airdrop is for a fungible/common token this field is REQUIRED
* and SHALL be the current amount of tokens offered.
* If the pending airdrop is for a non-fungible/unique token, this field SHALL NOT
* be set.
*/
PendingAirdropValue pending_airdrop_value = 2;
}