/
transaction_record.proto
155 lines (131 loc) · 4.7 KB
/
transaction_record.proto
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
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";
// <<<pbj.java_package = "com.hedera.hapi.node.transaction">>> 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;
}