// 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/checkpoint.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 { ExecutedTransaction } from './executed_transaction.js';
import { CheckpointContents } from './checkpoint_contents.js';
import { ValidatorAggregatedSignature } from './signature.js';
import { CheckpointSummary } from './checkpoint_summary.js';
/**
 * @generated from protobuf message sui.rpc.v2.Checkpoint
 */
export interface Checkpoint {
	/**
	 * The height of this checkpoint.
	 *
	 * @generated from protobuf field: optional uint64 sequence_number = 1;
	 */
	sequenceNumber?: bigint;
	/**
	 * The digest of this Checkpoint's CheckpointSummary.
	 *
	 * @generated from protobuf field: optional string digest = 2;
	 */
	digest?: string;
	/**
	 * The `CheckpointSummary` for this checkpoint.
	 *
	 * @generated from protobuf field: optional sui.rpc.v2.CheckpointSummary summary = 3;
	 */
	summary?: CheckpointSummary;
	/**
	 * An aggregated quorum signature from the validator committee that
	 * certified this checkpoint.
	 *
	 * @generated from protobuf field: optional sui.rpc.v2.ValidatorAggregatedSignature signature = 4;
	 */
	signature?: ValidatorAggregatedSignature;
	/**
	 * The `CheckpointContents` for this checkpoint.
	 *
	 * @generated from protobuf field: optional sui.rpc.v2.CheckpointContents contents = 5;
	 */
	contents?: CheckpointContents;
	/**
	 * List of transactions included in this checkpoint.
	 *
	 * @generated from protobuf field: repeated sui.rpc.v2.ExecutedTransaction transactions = 6;
	 */
	transactions: ExecutedTransaction[];
	/**
	 * Set of objects either referenced as inputs or produced as
	 * outputs by transactions included in this checkpoint.
	 *
	 * In order to benefit from deduplication of objects that
	 * appear in multiple transactions in this checkpoint, objects
	 * will only be present here and the `transactions.objects`
	 * field will not be populated.
	 *
	 * @generated from protobuf field: optional sui.rpc.v2.ObjectSet objects = 7;
	 */
	objects?: ObjectSet;
}
// @generated message type with reflection information, may provide speed optimized methods
class Checkpoint$Type extends MessageType<Checkpoint> {
	constructor() {
		super('sui.rpc.v2.Checkpoint', [
			{
				no: 1,
				name: 'sequence_number',
				kind: 'scalar',
				opt: true,
				T: 4 /*ScalarType.UINT64*/,
				L: 0 /*LongType.BIGINT*/,
			},
			{ no: 2, name: 'digest', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },
			{ no: 3, name: 'summary', kind: 'message', T: () => CheckpointSummary },
			{ no: 4, name: 'signature', kind: 'message', T: () => ValidatorAggregatedSignature },
			{ no: 5, name: 'contents', kind: 'message', T: () => CheckpointContents },
			{
				no: 6,
				name: 'transactions',
				kind: 'message',
				repeat: 1 /*RepeatType.PACKED*/,
				T: () => ExecutedTransaction,
			},
			{ no: 7, name: 'objects', kind: 'message', T: () => ObjectSet },
		]);
	}
}
/**
 * @generated MessageType for protobuf message sui.rpc.v2.Checkpoint
 */
export const Checkpoint = new Checkpoint$Type();
