// Copyright (c) Mysten Labs, Inc.
// SPDX-License-Identifier: Apache-2.0

// @generated by protobuf-ts 2.9.6 with parameter force_server_none,optimize_code_size,ts_nocheck
// @generated from protobuf file "sui/rpc/v2/executed_transaction.proto" (package "sui.rpc.v2", syntax proto3)
// tslint:disable
// @ts-nocheck
//
// Copyright (c) Mysten Labs, Inc.
// SPDX-License-Identifier: Apache-2.0
//
import { MessageType } from '@protobuf-ts/runtime';
import { ObjectSet } from './object.js';
import { BalanceChange } from './balance_change.js';
import { Timestamp } from '../../../google/protobuf/timestamp.js';
import { TransactionEvents } from './event.js';
import { TransactionEffects } from './effects.js';
import { UserSignature } from './signature.js';
import { Transaction } from './transaction.js';
/**
 * @generated from protobuf message sui.rpc.v2.ExecutedTransaction
 */
export interface ExecutedTransaction {
	/**
	 * The digest of this Transaction.
	 *
	 * @generated from protobuf field: optional string digest = 1;
	 */
	digest?: string;
	/**
	 * The transaction itself.
	 *
	 * @generated from protobuf field: optional sui.rpc.v2.Transaction transaction = 2;
	 */
	transaction?: Transaction;
	/**
	 * List of user signatures that are used to authorize the
	 * execution of this transaction.
	 *
	 * @generated from protobuf field: repeated sui.rpc.v2.UserSignature signatures = 3;
	 */
	signatures: UserSignature[];
	/**
	 * The `TransactionEffects` for this transaction.
	 *
	 * @generated from protobuf field: optional sui.rpc.v2.TransactionEffects effects = 4;
	 */
	effects?: TransactionEffects;
	/**
	 * The `TransactionEvents` for this transaction.
	 *
	 * This field might be empty, even if it was explicitly requested, if the
	 * transaction didn't produce any events.
	 * `sui.types.TransactionEffects.events_digest` is populated if the
	 * transaction produced any events.
	 *
	 * @generated from protobuf field: optional sui.rpc.v2.TransactionEvents events = 5;
	 */
	events?: TransactionEvents;
	/**
	 * The sequence number for the checkpoint that includes this transaction.
	 *
	 * @generated from protobuf field: optional uint64 checkpoint = 6;
	 */
	checkpoint?: bigint;
	/**
	 * The Unix timestamp of the checkpoint that includes this transaction.
	 *
	 * @generated from protobuf field: optional google.protobuf.Timestamp timestamp = 7;
	 */
	timestamp?: Timestamp;
	/**
	 * @generated from protobuf field: repeated sui.rpc.v2.BalanceChange balance_changes = 8;
	 */
	balanceChanges: BalanceChange[];
	/**
	 * Set of objects either referenced as inputs or produced as
	 * outputs from this Transaction.
	 *
	 * @generated from protobuf field: optional sui.rpc.v2.ObjectSet objects = 9;
	 */
	objects?: ObjectSet;
}
// @generated message type with reflection information, may provide speed optimized methods
class ExecutedTransaction$Type extends MessageType<ExecutedTransaction> {
	constructor() {
		super('sui.rpc.v2.ExecutedTransaction', [
			{ no: 1, name: 'digest', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },
			{ no: 2, name: 'transaction', kind: 'message', T: () => Transaction },
			{
				no: 3,
				name: 'signatures',
				kind: 'message',
				repeat: 1 /*RepeatType.PACKED*/,
				T: () => UserSignature,
			},
			{ no: 4, name: 'effects', kind: 'message', T: () => TransactionEffects },
			{ no: 5, name: 'events', kind: 'message', T: () => TransactionEvents },
			{
				no: 6,
				name: 'checkpoint',
				kind: 'scalar',
				opt: true,
				T: 4 /*ScalarType.UINT64*/,
				L: 0 /*LongType.BIGINT*/,
			},
			{ no: 7, name: 'timestamp', kind: 'message', T: () => Timestamp },
			{
				no: 8,
				name: 'balance_changes',
				kind: 'message',
				repeat: 1 /*RepeatType.PACKED*/,
				T: () => BalanceChange,
			},
			{ no: 9, name: 'objects', kind: 'message', T: () => ObjectSet },
		]);
	}
}
/**
 * @generated MessageType for protobuf message sui.rpc.v2.ExecutedTransaction
 */
export const ExecutedTransaction = new ExecutedTransaction$Type();
