// 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_contents.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 { UserSignature } from './signature.js';
import { Bcs } from './bcs.js';
/**
 * The committed to contents of a checkpoint.
 *
 * @generated from protobuf message sui.rpc.v2.CheckpointContents
 */
export interface CheckpointContents {
	/**
	 * This CheckpointContents serialized as BCS.
	 *
	 * @generated from protobuf field: optional sui.rpc.v2.Bcs bcs = 1;
	 */
	bcs?: Bcs;
	/**
	 * The digest of this CheckpointContents.
	 *
	 * @generated from protobuf field: optional string digest = 2;
	 */
	digest?: string;
	/**
	 * Version of this CheckpointContents
	 *
	 * @generated from protobuf field: optional int32 version = 3;
	 */
	version?: number;
	/**
	 * Set of transactions committed to in this checkpoint.
	 *
	 * @generated from protobuf field: repeated sui.rpc.v2.CheckpointedTransactionInfo transactions = 4;
	 */
	transactions: CheckpointedTransactionInfo[];
}
/**
 * Transaction information committed to in a checkpoint.
 *
 * @generated from protobuf message sui.rpc.v2.CheckpointedTransactionInfo
 */
export interface CheckpointedTransactionInfo {
	/**
	 * Digest of the transaction.
	 *
	 * @generated from protobuf field: optional string transaction = 1;
	 */
	transaction?: string;
	/**
	 * Digest of the effects.
	 *
	 * @generated from protobuf field: optional string effects = 2;
	 */
	effects?: string;
	/**
	 * Set of user signatures that authorized the transaction.
	 *
	 * @generated from protobuf field: repeated sui.rpc.v2.UserSignature signatures = 3;
	 */
	signatures: UserSignature[];
	/**
	 * The `AddressAliases` object version, if any, that was used to verify the
	 * UserSignature at the same position in `signatures`.
	 *
	 * This field is present when CheckpointContents.version is >= 2.
	 *
	 * @generated from protobuf field: repeated sui.rpc.v2.AddressAliasesVersion address_aliases_versions = 4;
	 */
	addressAliasesVersions: AddressAliasesVersion[];
}
/**
 * @generated from protobuf message sui.rpc.v2.AddressAliasesVersion
 */
export interface AddressAliasesVersion {
	/**
	 * @generated from protobuf field: optional uint64 version = 1;
	 */
	version?: bigint;
}
// @generated message type with reflection information, may provide speed optimized methods
class CheckpointContents$Type extends MessageType<CheckpointContents> {
	constructor() {
		super('sui.rpc.v2.CheckpointContents', [
			{ no: 1, name: 'bcs', kind: 'message', T: () => Bcs },
			{ no: 2, name: 'digest', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },
			{ no: 3, name: 'version', kind: 'scalar', opt: true, T: 5 /*ScalarType.INT32*/ },
			{
				no: 4,
				name: 'transactions',
				kind: 'message',
				repeat: 1 /*RepeatType.PACKED*/,
				T: () => CheckpointedTransactionInfo,
			},
		]);
	}
}
/**
 * @generated MessageType for protobuf message sui.rpc.v2.CheckpointContents
 */
export const CheckpointContents = new CheckpointContents$Type();
// @generated message type with reflection information, may provide speed optimized methods
class CheckpointedTransactionInfo$Type extends MessageType<CheckpointedTransactionInfo> {
	constructor() {
		super('sui.rpc.v2.CheckpointedTransactionInfo', [
			{ no: 1, name: 'transaction', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },
			{ no: 2, name: 'effects', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },
			{
				no: 3,
				name: 'signatures',
				kind: 'message',
				repeat: 1 /*RepeatType.PACKED*/,
				T: () => UserSignature,
			},
			{
				no: 4,
				name: 'address_aliases_versions',
				kind: 'message',
				repeat: 1 /*RepeatType.PACKED*/,
				T: () => AddressAliasesVersion,
			},
		]);
	}
}
/**
 * @generated MessageType for protobuf message sui.rpc.v2.CheckpointedTransactionInfo
 */
export const CheckpointedTransactionInfo = new CheckpointedTransactionInfo$Type();
// @generated message type with reflection information, may provide speed optimized methods
class AddressAliasesVersion$Type extends MessageType<AddressAliasesVersion> {
	constructor() {
		super('sui.rpc.v2.AddressAliasesVersion', [
			{
				no: 1,
				name: 'version',
				kind: 'scalar',
				opt: true,
				T: 4 /*ScalarType.UINT64*/,
				L: 0 /*LongType.BIGINT*/,
			},
		]);
	}
}
/**
 * @generated MessageType for protobuf message sui.rpc.v2.AddressAliasesVersion
 */
export const AddressAliasesVersion = new AddressAliasesVersion$Type();
