// 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/signature.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 { JwkId } from './jwk.js';
import { SignatureScheme } from './signature_scheme.js';
import { Bcs } from './bcs.js';
/**
 * A signature from a user.
 *
 * @generated from protobuf message sui.rpc.v2.UserSignature
 */
export interface UserSignature {
	/**
	 * This signature serialized as as BCS.
	 *
	 * When provided as input this will support both the form that is length
	 * prefixed as well as not length prefixed.
	 *
	 * @generated from protobuf field: optional sui.rpc.v2.Bcs bcs = 1;
	 */
	bcs?: Bcs;
	/**
	 * The signature scheme of this signature.
	 *
	 * @generated from protobuf field: optional sui.rpc.v2.SignatureScheme scheme = 2;
	 */
	scheme?: SignatureScheme;
	/**
	 * @generated from protobuf oneof: signature
	 */
	signature:
		| {
				oneofKind: 'simple';
				/**
				 * Simple signature if scheme is ed25519 | secp256k1 | secp256r1.
				 *
				 * @generated from protobuf field: sui.rpc.v2.SimpleSignature simple = 3;
				 */
				simple: SimpleSignature;
		  }
		| {
				oneofKind: 'multisig';
				/**
				 * The multisig aggregated signature if scheme is `MULTISIG`.
				 *
				 * @generated from protobuf field: sui.rpc.v2.MultisigAggregatedSignature multisig = 4;
				 */
				multisig: MultisigAggregatedSignature;
		  }
		| {
				oneofKind: 'zklogin';
				/**
				 * The zklogin authenticator if scheme is `ZKLOGIN`.
				 *
				 * @generated from protobuf field: sui.rpc.v2.ZkLoginAuthenticator zklogin = 5;
				 */
				zklogin: ZkLoginAuthenticator;
		  }
		| {
				oneofKind: 'passkey';
				/**
				 * The passkey authenticator if scheme is `PASSKEY`.
				 *
				 * @generated from protobuf field: sui.rpc.v2.PasskeyAuthenticator passkey = 6;
				 */
				passkey: PasskeyAuthenticator;
		  }
		| {
				oneofKind: undefined;
		  };
}
/**
 * Either an ed25519, secp256k1 or secp256r1 signature
 *
 * @generated from protobuf message sui.rpc.v2.SimpleSignature
 */
export interface SimpleSignature {
	/**
	 * The signature scheme of this signature.
	 *
	 * @generated from protobuf field: optional sui.rpc.v2.SignatureScheme scheme = 1;
	 */
	scheme?: SignatureScheme;
	/**
	 * Signature bytes
	 *
	 * @generated from protobuf field: optional bytes signature = 2;
	 */
	signature?: Uint8Array;
	/**
	 * Public key bytes
	 *
	 * @generated from protobuf field: optional bytes public_key = 3;
	 */
	publicKey?: Uint8Array;
}
/**
 * Public key equivalent for zklogin authenticators.
 *
 * @generated from protobuf message sui.rpc.v2.ZkLoginPublicIdentifier
 */
export interface ZkLoginPublicIdentifier {
	/**
	 * @generated from protobuf field: optional string iss = 1;
	 */
	iss?: string;
	/**
	 * base10 encoded Bn254FieldElement
	 *
	 * @generated from protobuf field: optional string address_seed = 2;
	 */
	addressSeed?: string;
}
/**
 * Set of valid public keys for multisig committee members.
 *
 * @generated from protobuf message sui.rpc.v2.MultisigMemberPublicKey
 */
export interface MultisigMemberPublicKey {
	/**
	 * The signature scheme of this public key.
	 *
	 * @generated from protobuf field: optional sui.rpc.v2.SignatureScheme scheme = 1;
	 */
	scheme?: SignatureScheme;
	/**
	 * Public key bytes if scheme is ed25519 | secp256k1 | secp256r1 | passkey.
	 *
	 * @generated from protobuf field: optional bytes public_key = 2;
	 */
	publicKey?: Uint8Array;
	/**
	 * A zklogin public identifier if scheme is zklogin.
	 *
	 * @generated from protobuf field: optional sui.rpc.v2.ZkLoginPublicIdentifier zklogin = 3;
	 */
	zklogin?: ZkLoginPublicIdentifier;
}
/**
 * A member in a multisig committee.
 *
 * @generated from protobuf message sui.rpc.v2.MultisigMember
 */
export interface MultisigMember {
	/**
	 * The public key of the committee member.
	 *
	 * @generated from protobuf field: optional sui.rpc.v2.MultisigMemberPublicKey public_key = 1;
	 */
	publicKey?: MultisigMemberPublicKey;
	/**
	 * The weight of this member's signature.
	 *
	 * @generated from protobuf field: optional uint32 weight = 2;
	 */
	weight?: number;
}
/**
 * A multisig committee.
 *
 * @generated from protobuf message sui.rpc.v2.MultisigCommittee
 */
export interface MultisigCommittee {
	/**
	 * A list of committee members and their corresponding weight.
	 *
	 * @generated from protobuf field: repeated sui.rpc.v2.MultisigMember members = 1;
	 */
	members: MultisigMember[];
	/**
	 * The threshold of signatures needed to validate a signature from
	 * this committee.
	 *
	 * @generated from protobuf field: optional uint32 threshold = 2;
	 */
	threshold?: number;
}
/**
 * Aggregated signature from members of a multisig committee.
 *
 * @generated from protobuf message sui.rpc.v2.MultisigAggregatedSignature
 */
export interface MultisigAggregatedSignature {
	/**
	 * The plain signatures encoded with signature scheme.
	 *
	 * The signatures must be in the same order as they are listed in the committee.
	 *
	 * @generated from protobuf field: repeated sui.rpc.v2.MultisigMemberSignature signatures = 1;
	 */
	signatures: MultisigMemberSignature[];
	/**
	 * Bitmap indicating which committee members contributed to the
	 * signature.
	 *
	 * @generated from protobuf field: optional uint32 bitmap = 2;
	 */
	bitmap?: number;
	/**
	 * If present, means this signature's on-chain format uses the old
	 * legacy multisig format.
	 *
	 * @generated from protobuf field: optional bytes legacy_bitmap = 3;
	 */
	legacyBitmap?: Uint8Array;
	/**
	 * The committee to use to validate this signature.
	 *
	 * @generated from protobuf field: optional sui.rpc.v2.MultisigCommittee committee = 4;
	 */
	committee?: MultisigCommittee;
}
/**
 * A signature from a member of a multisig committee.
 *
 * @generated from protobuf message sui.rpc.v2.MultisigMemberSignature
 */
export interface MultisigMemberSignature {
	/**
	 * The signature scheme of this signature.
	 *
	 * @generated from protobuf field: optional sui.rpc.v2.SignatureScheme scheme = 1;
	 */
	scheme?: SignatureScheme;
	/**
	 * Signature bytes if scheme is ed25519 | secp256k1 | secp256r1.
	 *
	 * @generated from protobuf field: optional bytes signature = 2;
	 */
	signature?: Uint8Array;
	/**
	 * The zklogin authenticator if scheme is `ZKLOGIN`.
	 *
	 * @generated from protobuf field: optional sui.rpc.v2.ZkLoginAuthenticator zklogin = 3;
	 */
	zklogin?: ZkLoginAuthenticator;
	/**
	 * The passkey authenticator if scheme is `PASSKEY`.
	 *
	 * @generated from protobuf field: optional sui.rpc.v2.PasskeyAuthenticator passkey = 4;
	 */
	passkey?: PasskeyAuthenticator;
}
/**
 * A zklogin authenticator.
 *
 * @generated from protobuf message sui.rpc.v2.ZkLoginAuthenticator
 */
export interface ZkLoginAuthenticator {
	/**
	 * Zklogin proof and inputs required to perform proof verification.
	 *
	 * @generated from protobuf field: optional sui.rpc.v2.ZkLoginInputs inputs = 1;
	 */
	inputs?: ZkLoginInputs;
	/**
	 * Maximum epoch for which the proof is valid.
	 *
	 * @generated from protobuf field: optional uint64 max_epoch = 2;
	 */
	maxEpoch?: bigint;
	/**
	 * User signature with the public key attested to by the provided proof.
	 *
	 * @generated from protobuf field: optional sui.rpc.v2.SimpleSignature signature = 3;
	 */
	signature?: SimpleSignature;
	/**
	 * The public identifier (similar to a public key) for this zklogin authenticator
	 *
	 * @generated from protobuf field: optional sui.rpc.v2.ZkLoginPublicIdentifier public_identifier = 4;
	 */
	publicIdentifier?: ZkLoginPublicIdentifier;
	/**
	 * The id of the JWK used to authorize this zklogin authenticator
	 *
	 * @generated from protobuf field: optional sui.rpc.v2.JwkId jwk_id = 5;
	 */
	jwkId?: JwkId;
}
/**
 * A zklogin groth16 proof and the required inputs to perform proof verification.
 *
 * @generated from protobuf message sui.rpc.v2.ZkLoginInputs
 */
export interface ZkLoginInputs {
	/**
	 * @generated from protobuf field: optional sui.rpc.v2.ZkLoginProof proof_points = 1;
	 */
	proofPoints?: ZkLoginProof;
	/**
	 * @generated from protobuf field: optional sui.rpc.v2.ZkLoginClaim iss_base64_details = 2;
	 */
	issBase64Details?: ZkLoginClaim;
	/**
	 * @generated from protobuf field: optional string header_base64 = 3;
	 */
	headerBase64?: string;
	/**
	 * base10 encoded Bn254FieldElement
	 *
	 * @generated from protobuf field: optional string address_seed = 4;
	 */
	addressSeed?: string;
}
/**
 * A zklogin groth16 proof.
 *
 * @generated from protobuf message sui.rpc.v2.ZkLoginProof
 */
export interface ZkLoginProof {
	/**
	 * @generated from protobuf field: optional sui.rpc.v2.CircomG1 a = 1;
	 */
	a?: CircomG1;
	/**
	 * @generated from protobuf field: optional sui.rpc.v2.CircomG2 b = 2;
	 */
	b?: CircomG2;
	/**
	 * @generated from protobuf field: optional sui.rpc.v2.CircomG1 c = 3;
	 */
	c?: CircomG1;
}
/**
 * A claim of the iss in a zklogin proof.
 *
 * @generated from protobuf message sui.rpc.v2.ZkLoginClaim
 */
export interface ZkLoginClaim {
	/**
	 * @generated from protobuf field: optional string value = 1;
	 */
	value?: string;
	/**
	 * @generated from protobuf field: optional uint32 index_mod_4 = 2;
	 */
	indexMod4?: number;
}
/**
 * A G1 point.
 *
 * @generated from protobuf message sui.rpc.v2.CircomG1
 */
export interface CircomG1 {
	/**
	 * base10 encoded Bn254FieldElement
	 *
	 * @generated from protobuf field: optional string e0 = 1;
	 */
	e0?: string;
	/**
	 * base10 encoded Bn254FieldElement
	 *
	 * @generated from protobuf field: optional string e1 = 2;
	 */
	e1?: string;
	/**
	 * base10 encoded Bn254FieldElement
	 *
	 * @generated from protobuf field: optional string e2 = 3;
	 */
	e2?: string;
}
/**
 * A G2 point.
 *
 * @generated from protobuf message sui.rpc.v2.CircomG2
 */
export interface CircomG2 {
	/**
	 * base10 encoded Bn254FieldElement
	 *
	 * @generated from protobuf field: optional string e00 = 1;
	 */
	e00?: string;
	/**
	 * base10 encoded Bn254FieldElement
	 *
	 * @generated from protobuf field: optional string e01 = 2;
	 */
	e01?: string;
	/**
	 * base10 encoded Bn254FieldElement
	 *
	 * @generated from protobuf field: optional string e10 = 3;
	 */
	e10?: string;
	/**
	 * base10 encoded Bn254FieldElement
	 *
	 * @generated from protobuf field: optional string e11 = 4;
	 */
	e11?: string;
	/**
	 * base10 encoded Bn254FieldElement
	 *
	 * @generated from protobuf field: optional string e20 = 5;
	 */
	e20?: string;
	/**
	 * base10 encoded Bn254FieldElement
	 *
	 * @generated from protobuf field: optional string e21 = 6;
	 */
	e21?: string;
}
/**
 * A passkey authenticator.
 *
 * See
 * [struct.PasskeyAuthenticator](https://mystenlabs.github.io/sui-rust-sdk/sui_sdk_types/struct.PasskeyAuthenticator.html#bcs)
 * for more information on the requirements on the shape of the
 * `client_data_json` field.
 *
 * @generated from protobuf message sui.rpc.v2.PasskeyAuthenticator
 */
export interface PasskeyAuthenticator {
	/**
	 * Opaque authenticator data for this passkey signature.
	 *
	 * See [Authenticator Data](https://www.w3.org/TR/webauthn-2/#sctn-authenticator-data) for
	 * more information on this field.
	 *
	 * @generated from protobuf field: optional bytes authenticator_data = 1;
	 */
	authenticatorData?: Uint8Array;
	/**
	 * Structured, unparsed, JSON for this passkey signature.
	 *
	 * See [CollectedClientData](https://www.w3.org/TR/webauthn-2/#dictdef-collectedclientdata)
	 * for more information on this field.
	 *
	 * @generated from protobuf field: optional string client_data_json = 2;
	 */
	clientDataJson?: string;
	/**
	 * A secp256r1 signature.
	 *
	 * @generated from protobuf field: optional sui.rpc.v2.SimpleSignature signature = 3;
	 */
	signature?: SimpleSignature;
}
/**
 * The validator set for a particular epoch.
 *
 * @generated from protobuf message sui.rpc.v2.ValidatorCommittee
 */
export interface ValidatorCommittee {
	/**
	 * The epoch where this committee governs.
	 *
	 * @generated from protobuf field: optional uint64 epoch = 1;
	 */
	epoch?: bigint;
	/**
	 * The committee members.
	 *
	 * @generated from protobuf field: repeated sui.rpc.v2.ValidatorCommitteeMember members = 2;
	 */
	members: ValidatorCommitteeMember[];
}
/**
 * A member of a validator committee.
 *
 * @generated from protobuf message sui.rpc.v2.ValidatorCommitteeMember
 */
export interface ValidatorCommitteeMember {
	/**
	 * The 96-byte Bls12381 public key for this validator.
	 *
	 * @generated from protobuf field: optional bytes public_key = 1;
	 */
	publicKey?: Uint8Array;
	/**
	 * voting weight this validator possesses.
	 *
	 * @generated from protobuf field: optional uint64 weight = 2;
	 */
	weight?: bigint;
}
/**
 * / An aggregated signature from multiple validators.
 *
 * @generated from protobuf message sui.rpc.v2.ValidatorAggregatedSignature
 */
export interface ValidatorAggregatedSignature {
	/**
	 * The epoch when this signature was produced.
	 *
	 * This can be used to lookup the `ValidatorCommittee` from this epoch
	 * to verify this signature.
	 *
	 * @generated from protobuf field: optional uint64 epoch = 1;
	 */
	epoch?: bigint;
	/**
	 * The 48-byte Bls12381 aggregated signature.
	 *
	 * @generated from protobuf field: optional bytes signature = 2;
	 */
	signature?: Uint8Array;
	/**
	 * Bitmap indicating which members of the committee contributed to
	 * this signature.
	 *
	 * @generated from protobuf field: optional bytes bitmap = 3;
	 */
	bitmap?: Uint8Array;
}
// @generated message type with reflection information, may provide speed optimized methods
class UserSignature$Type extends MessageType<UserSignature> {
	constructor() {
		super('sui.rpc.v2.UserSignature', [
			{ no: 1, name: 'bcs', kind: 'message', T: () => Bcs },
			{
				no: 2,
				name: 'scheme',
				kind: 'enum',
				opt: true,
				T: () => ['sui.rpc.v2.SignatureScheme', SignatureScheme],
			},
			{ no: 3, name: 'simple', kind: 'message', oneof: 'signature', T: () => SimpleSignature },
			{
				no: 4,
				name: 'multisig',
				kind: 'message',
				oneof: 'signature',
				T: () => MultisigAggregatedSignature,
			},
			{
				no: 5,
				name: 'zklogin',
				kind: 'message',
				oneof: 'signature',
				T: () => ZkLoginAuthenticator,
			},
			{
				no: 6,
				name: 'passkey',
				kind: 'message',
				oneof: 'signature',
				T: () => PasskeyAuthenticator,
			},
		]);
	}
}
/**
 * @generated MessageType for protobuf message sui.rpc.v2.UserSignature
 */
export const UserSignature = new UserSignature$Type();
// @generated message type with reflection information, may provide speed optimized methods
class SimpleSignature$Type extends MessageType<SimpleSignature> {
	constructor() {
		super('sui.rpc.v2.SimpleSignature', [
			{
				no: 1,
				name: 'scheme',
				kind: 'enum',
				opt: true,
				T: () => ['sui.rpc.v2.SignatureScheme', SignatureScheme],
			},
			{ no: 2, name: 'signature', kind: 'scalar', opt: true, T: 12 /*ScalarType.BYTES*/ },
			{ no: 3, name: 'public_key', kind: 'scalar', opt: true, T: 12 /*ScalarType.BYTES*/ },
		]);
	}
}
/**
 * @generated MessageType for protobuf message sui.rpc.v2.SimpleSignature
 */
export const SimpleSignature = new SimpleSignature$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ZkLoginPublicIdentifier$Type extends MessageType<ZkLoginPublicIdentifier> {
	constructor() {
		super('sui.rpc.v2.ZkLoginPublicIdentifier', [
			{ no: 1, name: 'iss', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },
			{ no: 2, name: 'address_seed', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },
		]);
	}
}
/**
 * @generated MessageType for protobuf message sui.rpc.v2.ZkLoginPublicIdentifier
 */
export const ZkLoginPublicIdentifier = new ZkLoginPublicIdentifier$Type();
// @generated message type with reflection information, may provide speed optimized methods
class MultisigMemberPublicKey$Type extends MessageType<MultisigMemberPublicKey> {
	constructor() {
		super('sui.rpc.v2.MultisigMemberPublicKey', [
			{
				no: 1,
				name: 'scheme',
				kind: 'enum',
				opt: true,
				T: () => ['sui.rpc.v2.SignatureScheme', SignatureScheme],
			},
			{ no: 2, name: 'public_key', kind: 'scalar', opt: true, T: 12 /*ScalarType.BYTES*/ },
			{ no: 3, name: 'zklogin', kind: 'message', T: () => ZkLoginPublicIdentifier },
		]);
	}
}
/**
 * @generated MessageType for protobuf message sui.rpc.v2.MultisigMemberPublicKey
 */
export const MultisigMemberPublicKey = new MultisigMemberPublicKey$Type();
// @generated message type with reflection information, may provide speed optimized methods
class MultisigMember$Type extends MessageType<MultisigMember> {
	constructor() {
		super('sui.rpc.v2.MultisigMember', [
			{ no: 1, name: 'public_key', kind: 'message', T: () => MultisigMemberPublicKey },
			{ no: 2, name: 'weight', kind: 'scalar', opt: true, T: 13 /*ScalarType.UINT32*/ },
		]);
	}
}
/**
 * @generated MessageType for protobuf message sui.rpc.v2.MultisigMember
 */
export const MultisigMember = new MultisigMember$Type();
// @generated message type with reflection information, may provide speed optimized methods
class MultisigCommittee$Type extends MessageType<MultisigCommittee> {
	constructor() {
		super('sui.rpc.v2.MultisigCommittee', [
			{
				no: 1,
				name: 'members',
				kind: 'message',
				repeat: 1 /*RepeatType.PACKED*/,
				T: () => MultisigMember,
			},
			{ no: 2, name: 'threshold', kind: 'scalar', opt: true, T: 13 /*ScalarType.UINT32*/ },
		]);
	}
}
/**
 * @generated MessageType for protobuf message sui.rpc.v2.MultisigCommittee
 */
export const MultisigCommittee = new MultisigCommittee$Type();
// @generated message type with reflection information, may provide speed optimized methods
class MultisigAggregatedSignature$Type extends MessageType<MultisigAggregatedSignature> {
	constructor() {
		super('sui.rpc.v2.MultisigAggregatedSignature', [
			{
				no: 1,
				name: 'signatures',
				kind: 'message',
				repeat: 1 /*RepeatType.PACKED*/,
				T: () => MultisigMemberSignature,
			},
			{ no: 2, name: 'bitmap', kind: 'scalar', opt: true, T: 13 /*ScalarType.UINT32*/ },
			{ no: 3, name: 'legacy_bitmap', kind: 'scalar', opt: true, T: 12 /*ScalarType.BYTES*/ },
			{ no: 4, name: 'committee', kind: 'message', T: () => MultisigCommittee },
		]);
	}
}
/**
 * @generated MessageType for protobuf message sui.rpc.v2.MultisigAggregatedSignature
 */
export const MultisigAggregatedSignature = new MultisigAggregatedSignature$Type();
// @generated message type with reflection information, may provide speed optimized methods
class MultisigMemberSignature$Type extends MessageType<MultisigMemberSignature> {
	constructor() {
		super('sui.rpc.v2.MultisigMemberSignature', [
			{
				no: 1,
				name: 'scheme',
				kind: 'enum',
				opt: true,
				T: () => ['sui.rpc.v2.SignatureScheme', SignatureScheme],
			},
			{ no: 2, name: 'signature', kind: 'scalar', opt: true, T: 12 /*ScalarType.BYTES*/ },
			{ no: 3, name: 'zklogin', kind: 'message', T: () => ZkLoginAuthenticator },
			{ no: 4, name: 'passkey', kind: 'message', T: () => PasskeyAuthenticator },
		]);
	}
}
/**
 * @generated MessageType for protobuf message sui.rpc.v2.MultisigMemberSignature
 */
export const MultisigMemberSignature = new MultisigMemberSignature$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ZkLoginAuthenticator$Type extends MessageType<ZkLoginAuthenticator> {
	constructor() {
		super('sui.rpc.v2.ZkLoginAuthenticator', [
			{ no: 1, name: 'inputs', kind: 'message', T: () => ZkLoginInputs },
			{
				no: 2,
				name: 'max_epoch',
				kind: 'scalar',
				opt: true,
				T: 4 /*ScalarType.UINT64*/,
				L: 0 /*LongType.BIGINT*/,
			},
			{ no: 3, name: 'signature', kind: 'message', T: () => SimpleSignature },
			{ no: 4, name: 'public_identifier', kind: 'message', T: () => ZkLoginPublicIdentifier },
			{ no: 5, name: 'jwk_id', kind: 'message', T: () => JwkId },
		]);
	}
}
/**
 * @generated MessageType for protobuf message sui.rpc.v2.ZkLoginAuthenticator
 */
export const ZkLoginAuthenticator = new ZkLoginAuthenticator$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ZkLoginInputs$Type extends MessageType<ZkLoginInputs> {
	constructor() {
		super('sui.rpc.v2.ZkLoginInputs', [
			{ no: 1, name: 'proof_points', kind: 'message', T: () => ZkLoginProof },
			{ no: 2, name: 'iss_base64_details', kind: 'message', T: () => ZkLoginClaim },
			{ no: 3, name: 'header_base64', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },
			{ no: 4, name: 'address_seed', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },
		]);
	}
}
/**
 * @generated MessageType for protobuf message sui.rpc.v2.ZkLoginInputs
 */
export const ZkLoginInputs = new ZkLoginInputs$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ZkLoginProof$Type extends MessageType<ZkLoginProof> {
	constructor() {
		super('sui.rpc.v2.ZkLoginProof', [
			{ no: 1, name: 'a', kind: 'message', T: () => CircomG1 },
			{ no: 2, name: 'b', kind: 'message', T: () => CircomG2 },
			{ no: 3, name: 'c', kind: 'message', T: () => CircomG1 },
		]);
	}
}
/**
 * @generated MessageType for protobuf message sui.rpc.v2.ZkLoginProof
 */
export const ZkLoginProof = new ZkLoginProof$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ZkLoginClaim$Type extends MessageType<ZkLoginClaim> {
	constructor() {
		super('sui.rpc.v2.ZkLoginClaim', [
			{ no: 1, name: 'value', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },
			{ no: 2, name: 'index_mod_4', kind: 'scalar', opt: true, T: 13 /*ScalarType.UINT32*/ },
		]);
	}
}
/**
 * @generated MessageType for protobuf message sui.rpc.v2.ZkLoginClaim
 */
export const ZkLoginClaim = new ZkLoginClaim$Type();
// @generated message type with reflection information, may provide speed optimized methods
class CircomG1$Type extends MessageType<CircomG1> {
	constructor() {
		super('sui.rpc.v2.CircomG1', [
			{ no: 1, name: 'e0', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },
			{ no: 2, name: 'e1', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },
			{ no: 3, name: 'e2', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },
		]);
	}
}
/**
 * @generated MessageType for protobuf message sui.rpc.v2.CircomG1
 */
export const CircomG1 = new CircomG1$Type();
// @generated message type with reflection information, may provide speed optimized methods
class CircomG2$Type extends MessageType<CircomG2> {
	constructor() {
		super('sui.rpc.v2.CircomG2', [
			{ no: 1, name: 'e00', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },
			{ no: 2, name: 'e01', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },
			{ no: 3, name: 'e10', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },
			{ no: 4, name: 'e11', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },
			{ no: 5, name: 'e20', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },
			{ no: 6, name: 'e21', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },
		]);
	}
}
/**
 * @generated MessageType for protobuf message sui.rpc.v2.CircomG2
 */
export const CircomG2 = new CircomG2$Type();
// @generated message type with reflection information, may provide speed optimized methods
class PasskeyAuthenticator$Type extends MessageType<PasskeyAuthenticator> {
	constructor() {
		super('sui.rpc.v2.PasskeyAuthenticator', [
			{ no: 1, name: 'authenticator_data', kind: 'scalar', opt: true, T: 12 /*ScalarType.BYTES*/ },
			{ no: 2, name: 'client_data_json', kind: 'scalar', opt: true, T: 9 /*ScalarType.STRING*/ },
			{ no: 3, name: 'signature', kind: 'message', T: () => SimpleSignature },
		]);
	}
}
/**
 * @generated MessageType for protobuf message sui.rpc.v2.PasskeyAuthenticator
 */
export const PasskeyAuthenticator = new PasskeyAuthenticator$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ValidatorCommittee$Type extends MessageType<ValidatorCommittee> {
	constructor() {
		super('sui.rpc.v2.ValidatorCommittee', [
			{
				no: 1,
				name: 'epoch',
				kind: 'scalar',
				opt: true,
				T: 4 /*ScalarType.UINT64*/,
				L: 0 /*LongType.BIGINT*/,
			},
			{
				no: 2,
				name: 'members',
				kind: 'message',
				repeat: 1 /*RepeatType.PACKED*/,
				T: () => ValidatorCommitteeMember,
			},
		]);
	}
}
/**
 * @generated MessageType for protobuf message sui.rpc.v2.ValidatorCommittee
 */
export const ValidatorCommittee = new ValidatorCommittee$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ValidatorCommitteeMember$Type extends MessageType<ValidatorCommitteeMember> {
	constructor() {
		super('sui.rpc.v2.ValidatorCommitteeMember', [
			{ no: 1, name: 'public_key', kind: 'scalar', opt: true, T: 12 /*ScalarType.BYTES*/ },
			{
				no: 2,
				name: 'weight',
				kind: 'scalar',
				opt: true,
				T: 4 /*ScalarType.UINT64*/,
				L: 0 /*LongType.BIGINT*/,
			},
		]);
	}
}
/**
 * @generated MessageType for protobuf message sui.rpc.v2.ValidatorCommitteeMember
 */
export const ValidatorCommitteeMember = new ValidatorCommitteeMember$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ValidatorAggregatedSignature$Type extends MessageType<ValidatorAggregatedSignature> {
	constructor() {
		super('sui.rpc.v2.ValidatorAggregatedSignature', [
			{
				no: 1,
				name: 'epoch',
				kind: 'scalar',
				opt: true,
				T: 4 /*ScalarType.UINT64*/,
				L: 0 /*LongType.BIGINT*/,
			},
			{ no: 2, name: 'signature', kind: 'scalar', opt: true, T: 12 /*ScalarType.BYTES*/ },
			{ no: 3, name: 'bitmap', kind: 'scalar', opt: true, T: 12 /*ScalarType.BYTES*/ },
		]);
	}
}
/**
 * @generated MessageType for protobuf message sui.rpc.v2.ValidatorAggregatedSignature
 */
export const ValidatorAggregatedSignature = new ValidatorAggregatedSignature$Type();
