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

stream.output.smart_contract_service.proto Maven / Gradle / Ivy

There is a newer version: 0.54.0
Show newest version
/**
 * #  Service
 * Block stream messages that report the results of transactions handled
 * by the `` service.
 *
 * > REVIEW NOTE
 * >> The use of sidecar records is a bit odd here. We may find it more
 * >> effective to extract the actual changes into proper output messages
 * >> and fields included in the ethereum call output and/or related state
 * >> changes items, and remove the whole sidecar concept going forward.
 *
 * ### 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 "contract_call_local.proto";
import "sidecar_file.proto";

/**
 * Block Stream data for a `contractCallMethod` transaction.
 *
 * This message SHALL NOT duplicate information already contained in
 * the original transaction.
 */
message CallContractOutput {
    repeated proto.TransactionSidecarRecord sidecars = 1;

    /**
     * An EVM contract call result.
     * 

* This field SHALL contain all of the data produced by the contract * call transaction as well as basic accounting results. */ proto.ContractFunctionResult contract_call_result = 2; } /** * Block Stream data for a `createContract` transaction. * * This message SHALL NOT duplicate information already contained in * the original transaction. */ message CreateContractOutput { repeated proto.TransactionSidecarRecord sidecars = 1; /** * An EVM contract call result. *

* This field SHALL contain all of the data produced by the contract * create transaction as well as basic accounting results. */ proto.ContractFunctionResult contract_create_result = 2; } // no evm exec, only modified entity /** * Block Stream data for a `updateContract` transaction. * * This message SHALL NOT duplicate information already contained in * the original transaction. */ message UpdateContractOutput {} // no evm exec, only modified entity /** * Block Stream data for a `deleteContract` transaction. * * This message SHALL NOT duplicate information already contained in * the original transaction. */ message DeleteContractOutput {} /** * Block Stream data for a contract `systemUndelete` transaction. * * This message SHALL NOT duplicate information already contained in * the original transaction. */ message SystemUnDeleteContractOutput {} /** * Block Stream data for a contract `systemDelete` transaction. * * This message SHALL NOT duplicate information already contained in * the original transaction. */ message SystemDeleteContractOutput {} /** * Block Stream data for a `callEthereum` transaction. * * This message SHALL NOT duplicate information already contained in * the original transaction. */ message EthereumOutput { /** * A list of additional outputs. *

* This field MAY record one or more additional outputs and smart * contract state changes produced during the ethereum call * transaction handling.
* This field SHALL NOT be set if the transaction handling did not * produce additional outputs.
* This field is not settled and MAY be removed or modified. */ repeated proto.TransactionSidecarRecord sidecars = 1; /** * An ethereum hash value. *

* This SHALL be a keccak256 hash of the ethereumData. */ bytes ethereum_hash = 2; }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy