syntax = "proto3";

package soma.rpc;

import "google/protobuf/timestamp.proto";
import "soma/rpc/balance_change.proto";
import "soma/rpc/effects.proto";
import "soma/rpc/object.proto";
import "soma/rpc/signature.proto";
import "soma/rpc/transaction.proto";

message ExecutedTransaction {
  // The digest of this Transaction.
  optional string digest = 1;

  // The transaction itself.
  optional Transaction transaction = 2;

  // List of user signatures that are used to authorize the
  // execution of this transaction.
  repeated UserSignature signatures = 3;

  // The `TransactionEffects` for this transaction.
  optional TransactionEffects effects = 4;

  // The checkpoint index that includes this transaction.
  optional uint64 checkpoint = 5;

  // The Unix timestamp of the checkpoint that includes this transaction.
  optional google.protobuf.Timestamp timestamp = 6;

  repeated BalanceChange balance_changes = 7;

  // Set of objects either referenced as inputs or produced as
  // outputs from this Transaction.
  optional ObjectSet objects = 9;
}