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

shgraph.hapi.0.54.0.source-code.transaction_record.proto Maven / Gradle / Ivy

The newest version!
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;
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy