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

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

There is a newer version: 0.57.1
Show newest version
/**
 * # Schedule Service
 * Block stream messages that report the results of transactions handled by
 * the `Schedule` service.
 *
 * The Schedule service handles delayed execution in two major forms.
 * - Transactions that only execute after being signed, via scheduleSign
 *   transactions, with additional keys beyond the keys that signe the
 *   scheduleCreate transaction.
 * - Transactions that only execute after a specified consensus time.
 *
 * Some outputs contain a scheduled transaction identifier.
* That value SHALL be set if, and only if, the transaction resulted in * _execution_ of the scheduled child transaction.
* Most outputs from this service SHALL NOT set the scheduled transaction * identifier, because the transaction has not executed yet. Only when the * schedule has gathered all of the signatures required to execute the * scheduled child transaction is the network able to execute that child * transaction, and assign a final transaction identifier. * * When a scheduled child transaction is executed, the identifier of the * schedule that executed that transaction SHALL be included as a * `schedule_ref` in the _result_ for the _child_ transaction.
* The output of the schedule transaction (create or sign) SHALL NOT contain * the `schedule_ref`. * * ### 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 "basic_types.proto"; /** * Block Stream data for a `createSchedule` transaction. * * This message SHALL NOT duplicate information already contained in * the original transaction. */ message CreateScheduleOutput { /** * A schedule identifier. *

* If the status of the transaction is `SUCCESS`, this value SHALL be * set to the identifier of the schedule that was created. If the * transaction status is `IDENTICAL_SCHEDULE_ALREADY_CREATED`, this * value SHALL be set to the identifier of the existing schedule that * is identical to the one that was attempted to be created. For any * other status, this value SHALL NOT be set. */ proto.ScheduleID schedule_id = 1; /** * A scheduled transaction identifier. *

* This value SHALL be the transaction identifier for the _scheduled_ * child transaction executed as a result of gathering sufficient * signatures to complete the schedule.
* This value SHALL NOT be set unless the scheduled transaction was * executed as a child of this schedule create transaction.
* This value SHALL NOT be set unless this schedule create transaction * was signed by sufficient keys to meet the signature requirements * for the scheduled child transaction immediately. */ proto.TransactionID scheduled_transaction_id = 2; } /** * Block Stream data for a `deleteSchedule` transaction. * * This message SHALL NOT duplicate information already contained in * the original transaction. */ message DeleteScheduleOutput {} /** * Block Stream data for a `signSchedule` transaction. * * This message SHALL NOT duplicate information already contained in * the original transaction. */ message SignScheduleOutput { /** * A scheduled transaction identifier. *

* This value SHALL be the transaction identifier for the _scheduled_ * child transaction executed as a result of gathering sufficient * signatures to complete the schedule.
* This value SHALL NOT be set unless the scheduled transaction was * executed as a child of this schedule sign transaction.
* This value SHALL NOT be set unless this schedule sign transaction * was signed by sufficient additional keys to meet the signature * requirements for the scheduled child transaction. */ proto.TransactionID scheduled_transaction_id = 1; }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy