Interface ScheduleServiceGrpc.AsyncService

All Known Implementing Classes:
ScheduleServiceGrpc.ScheduleServiceImplBase
Enclosing class:
ScheduleServiceGrpc

public static interface ScheduleServiceGrpc.AsyncService

 Transactions and queries for the Schedule Service.<br/>
 The Schedule Service enables transactions to be submitted without all
 required signatures and offers a `scheduleSign` transaction to provide
 additional signatures independently after the schedule is created. The
 scheduled transaction may be executed immediately when all required
 signatures are present, or at expiration if "long term" schedules
 are enabled in network configuration.
 ### Execution
 Scheduled transactions SHALL be executed under the following conditions.
 1. If "long term" schedules are enabled and `wait_for_expiry` is set for
    that schedule then the transaction SHALL NOT be executed before the
    network consensus time matches or exceeds the `expiration_time` field
    for that schedule.
 1. If "long term" schedules are enabled and `wait_for_expiry` is _not_ set
    for that schedule, then the transaction SHALL be executed when all
    signatures required by the scheduled transaction are active for that
    schedule. This MAY be immediately after the `scheduleCreate` or a
    subsequent `scheduleSign` transaction, or MAY be at expiration if
    the signature requirements are met at that time.
 1. If "long term" schedules are _disabled_, then the scheduled transaction
    SHALL be executed immediately after all signature requirements for the
    scheduled transaction are met during the `scheduleCreate` or a subsequent
    `scheduleSign` transaction. The scheduled transaction SHALL NOT be
    on expiration when "long term" schedules are disabled.
 A schedule SHALL remain in state and MAY be queried with a `getScheduleInfo`
 transaction after execution, until the schedule expires.<br/>
 When network consensus time matches or exceeds the `expiration_time` for
 a schedule, that schedule SHALL be removed from state, whether it has
 executed or not.<br/>
 If "long term" schedules are _disabled_, the maximum expiration time SHALL
 be the consensus time of the `scheduleCreate` transaction extended by
 the network configuration value `ledger.scheduleTxExpiryTimeSecs`.
 ### Block Stream Effects
 When a scheduled transaction is executed, the timestamp in the transaction
 identifier for that transaction SHALL be 1 nanosecond after the consensus
 timestamp for the transaction that resulted in its execution. If execution
 occurred at expiration, that transaction may be almost any transaction,
 including another scheduled transaction that executed at expiration.<br/>
 The transaction identifier for a scheduled transaction that is executed
 SHALL have the `scheduled` flag set and SHALL inherit the `accountID` and
 `transactionValidStart` values from the `scheduleCreate` that created the
 schedule.<br/>
 The `scheduleRef` property of the record for a scheduled transaction SHALL
 be populated with the schedule identifier of the schedule that executed.
 
  • Method Details

    • createSchedule

      default void createSchedule(Transaction request, io.grpc.stub.StreamObserver<TransactionResponse> responseObserver)
      
       Create a new Schedule.
       <p>
       If all signature requirements are met with this transaction, the
       scheduled transaction MAY execute immediately.
       
    • signSchedule

      default void signSchedule(Transaction request, io.grpc.stub.StreamObserver<TransactionResponse> responseObserver)
      
       Add signatures to an existing schedule.
       <p>
       Signatures on this transaction SHALL be added to the set of active
       signatures on the schedule, and MAY result in execution of the
       scheduled transaction if all signature requirements are met.
       
    • deleteSchedule

      default void deleteSchedule(Transaction request, io.grpc.stub.StreamObserver<TransactionResponse> responseObserver)
      
       Mark an existing schedule deleted.
       <p>
       Once deleted a schedule SHALL NOT be executed and any subsequent
       `scheduleSign` transaction SHALL fail.
       
    • getScheduleInfo

      default void getScheduleInfo(Query request, io.grpc.stub.StreamObserver<Response> responseObserver)
      
       Retrieve the metadata for a schedule.