stream.output.transaction_output.proto Maven / Gradle / Ivy
The newest version!
/**
* # Transaction Output
* Messages that describe the output of a transaction; data reported
* in the block stream that is not in the transaction body and is
* not reported in state changes.
*
* ### Keywords
* The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
* "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
* document are to be interpreted as described in
* [RFC2119](https://www.ietf.org/rfc/rfc2119) and clarified in
* [RFC8174](https://www.ietf.org/rfc/rfc8174).
*/
syntax = "proto3";
package com.hedera.hapi.block.stream.output;
/*
* Copyright (C) 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.hedera.hapi.block.stream.output.protoc";
// <<>> This comment is special code for setting PBJ Compiler java package
option java_multiple_files = true;
import "stream/output/schedule_service.proto";
import "stream/output/util_service.proto";
import "stream/output/crypto_service.proto";
import "stream/output/smart_contract_service.proto";
/**
* Output from a transaction.
*
* The values in transaction outputs SHALL be data that is neither present
* in the original transaction nor present in state changes.
*
* > Note
* >> Only a few transactions produce output that is not in the transaction
* >> and also not reflected in state changes. All other transaction types
* >> are _currently_ not included here. We have, however, allocated names
* >> and indexes for those transaction types to preserve consistency if we
* >> add them later.
*
*
*/
message TransactionOutput {
oneof transaction {
/**
* Output from a crypto transfer transaction.
*/
CryptoTransferOutput crypto_transfer = 1;
/**
* Output from a utilPrng transaction to request a
* deterministic pseudo-random number.
*/
UtilPrngOutput util_prng = 2;
/**
* Output from a contract call transaction.
*/
CallContractOutput contract_call = 3;
/**
* Output from an ethereum call transaction.
*/
EthereumOutput ethereum_call = 4;
/**
* Output from a contract create transaction.
*/
CreateContractOutput contract_create = 5;
/**
* Output from a schedule create transaction that executed
* immediately on creation.
*/
CreateScheduleOutput create_schedule = 6;
/**
* Output from a schedule sign transaction that resulted in
* executing the scheduled transaction.
*/
SignScheduleOutput sign_schedule = 7;
}
}