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

/**
 *  ######################################
 *  ### DO NOT EDIT THIS FILE DIRECTLY ###
 *  ######################################
 *
 * This file is generated from:
 * /crates/sui-open-rpc/spec/openrpc.json
 */

export type Authenticator =
	/** The contained SuiAddress exclusively has all permissions: read, write, delete, transfer */
	{
		SingleOwner: string;
	};
export interface Balance {
	coinObjectCount: number;
	coinType: string;
	lockedBalance: {
		[key: string]: string;
	};
	totalBalance: string;
}
export interface BalanceChange {
	/**
	 * The amount indicate the balance value changes, negative amount means spending coin value and
	 * positive means receiving coin value.
	 */
	amount: string;
	coinType: string;
	/** Owner of the balance change */
	owner: ObjectOwner;
}
export interface Checkpoint {
	/** Commitments to checkpoint state */
	checkpointCommitments: CheckpointCommitment[];
	/** Checkpoint digest */
	digest: string;
	/** Present only on the final checkpoint of the epoch. */
	endOfEpochData?: EndOfEpochData | null;
	/** Checkpoint's epoch ID */
	epoch: string;
	/**
	 * The running total gas costs of all transactions included in the current epoch so far until this
	 * checkpoint.
	 */
	epochRollingGasCostSummary: GasCostSummary;
	/** Total number of transactions committed since genesis, including those in this checkpoint. */
	networkTotalTransactions: string;
	/** Digest of the previous checkpoint */
	previousDigest?: string | null;
	/** Checkpoint sequence number */
	sequenceNumber: string;
	/**
	 * Timestamp of the checkpoint - number of milliseconds from the Unix epoch Checkpoint timestamps are
	 * monotonic, but not strongly monotonic - subsequent checkpoints can have same timestamp if they
	 * originate from the same underlining consensus commit
	 */
	timestampMs: string;
	/** Transaction digests */
	transactions: string[];
	/** Validator Signature */
	validatorSignature: string;
}
export type CheckpointCommitment = {
	ECMHLiveObjectSetDigest: ECMHLiveObjectSetDigest;
};
export type CheckpointId = string | string;
/** A claim consists of value and index_mod_4. */
export interface Claim {
	indexMod4: number;
	value: string;
}
export interface CoinStruct {
	balance: string;
	coinObjectId: string;
	coinType: string;
	digest: string;
	previousTransaction: string;
	version: string;
}
/** RPC representation of the [Committee] type. */
export interface CommitteeInfo {
	epoch: string;
	validators: [string, string][];
}
/** Unlike [enum Signature], [enum CompressedSignature] does not contain public key. */
export type CompressedSignature =
	| {
			Ed25519: string;
	  }
	| {
			Secp256k1: string;
	  }
	| {
			Secp256r1: string;
	  }
	| {
			ZkLogin: string;
	  }
	| {
			Passkey: string;
	  };
/** Uses an enum to allow for future expansion of the ConsensusDeterminedVersionAssignments. */
export type ConsensusDeterminedVersionAssignments =
	| {
			CancelledTransactions: [string, [string, string][]][];
	  }
	| {
			CancelledTransactionsV2: [string, [[string, string], string][]][];
	  };
export type SuiParsedData =
	| {
			dataType: 'moveObject';
			fields: MoveStruct;
			hasPublicTransfer: boolean;
			type: string;
	  }
	| {
			dataType: 'package';
			disassembled: {
				[key: string]: unknown;
			};
	  };
export interface DelegatedStake {
	stakes: StakeObject[];
	/** Staking pool object id. */
	stakingPool: string;
	/** Validator's Address. */
	validatorAddress: string;
}
/** Additional rguments supplied to dev inspect beyond what is allowed in today's API. */
export interface DevInspectArgs {
	/** The gas budget for the transaction. */
	gasBudget?: string | null;
	/** The gas objects used to pay for the transaction. */
	gasObjects?: [string, string, string][] | null;
	/** The sponsor of the gas for the transaction, might be different from the sender. */
	gasSponsor?: string | null;
	/** Whether to return the raw transaction data and effects. */
	showRawTxnDataAndEffects?: boolean | null;
	/** Whether to skip transaction checks for the transaction. */
	skipChecks?: boolean | null;
}
/** The response from processing a dev inspect transaction */
export interface DevInspectResults {
	/**
	 * Summary of effects that likely would be generated if the transaction is actually run. Note however,
	 * that not all dev-inspect transactions are actually usable as transactions so it might not be
	 * possible actually generate these effects from a normal transaction.
	 */
	effects: TransactionEffects;
	/** Execution error from executing the transactions */
	error?: string | null;
	/** Events that likely would be generated if the transaction is actually run. */
	events: SuiEvent[];
	/** The raw effects of the transaction that was dev inspected. */
	rawEffects?: number[];
	/** The raw transaction data that was dev inspected. */
	rawTxnData?: number[];
	/** Execution results (including return values) from executing the transactions */
	results?: SuiExecutionResult[] | null;
}
export interface DisplayFieldsResponse {
	data?: {
		[key: string]: string;
	} | null;
	error?: ObjectResponseError | null;
}
export interface DryRunTransactionBlockResponse {
	balanceChanges: BalanceChange[];
	effects: TransactionEffects;
	events: SuiEvent[];
	executionErrorSource?: string | null;
	input: TransactionBlockData;
	objectChanges: SuiObjectChange[];
	suggestedGasPrice?: string | null;
}
export type DynamicFieldInfo =
	| {
			digest: string;
			name: DynamicFieldName;
			objectId: string;
			objectType: string;
			type: DynamicFieldType;
			version: string;
			bcsEncoding: 'base64';
			bcsName: string;
	  }
	| {
			digest: string;
			name: DynamicFieldName;
			objectId: string;
			objectType: string;
			type: DynamicFieldType;
			version: string;
			bcsEncoding: 'base58';
			bcsName: string;
	  };
export interface DynamicFieldName {
	type: string;
	value: unknown;
}
export type DynamicFieldType = 'DynamicField' | 'DynamicObject';
/** The Sha256 digest of an EllipticCurveMultisetHash committing to the live object set. */
export interface ECMHLiveObjectSetDigest {
	digest: number[];
}
export interface EndOfEpochData {
	/** Commitments to epoch specific state (e.g. live object set) */
	epochCommitments: CheckpointCommitment[];
	/**
	 * next_epoch_committee is `Some` if and only if the current checkpoint is the last checkpoint of an
	 * epoch. Therefore next_epoch_committee can be used to pick the last checkpoint of an epoch, which is
	 * often useful to get epoch level summary stats like total gas cost of an epoch, or the total number
	 * of transactions from genesis to the end of an epoch. The committee is stored as a vector of
	 * validator pub key and stake pairs. The vector should be sorted based on the Committee data
	 * structure.
	 */
	nextEpochCommittee: [string, string][];
	/**
	 * The protocol version that is in effect during the epoch that starts immediately after this
	 * checkpoint.
	 */
	nextEpochProtocolVersion: string;
}
export type SuiEvent =
	| {
			/**
			 * Sequential event ID, ie (transaction seq number, event seq number). 1) Serves as a unique event ID
			 * for each fullnode 2) Also serves to sequence events for the purposes of pagination and querying. A
			 * higher id is an event seen later by that fullnode. This ID is the "cursor" for event querying.
			 */
			id: EventId;
			/** Move package where this event was emitted. */
			packageId: string;
			/** Parsed json value of the event */
			parsedJson: unknown;
			/** Sender's Sui address. */
			sender: string;
			/** UTC timestamp in milliseconds since epoch (1/1/1970) */
			timestampMs?: string | null;
			/** Move module where this event was emitted. */
			transactionModule: string;
			/** Move event type. */
			type: string;
			bcs: string;
			bcsEncoding: 'base64';
	  }
	| {
			/**
			 * Sequential event ID, ie (transaction seq number, event seq number). 1) Serves as a unique event ID
			 * for each fullnode 2) Also serves to sequence events for the purposes of pagination and querying. A
			 * higher id is an event seen later by that fullnode. This ID is the "cursor" for event querying.
			 */
			id: EventId;
			/** Move package where this event was emitted. */
			packageId: string;
			/** Parsed json value of the event */
			parsedJson: unknown;
			/** Sender's Sui address. */
			sender: string;
			/** UTC timestamp in milliseconds since epoch (1/1/1970) */
			timestampMs?: string | null;
			/** Move module where this event was emitted. */
			transactionModule: string;
			/** Move event type. */
			type: string;
			bcs: string;
			bcsEncoding: 'base58';
	  };
export type SuiEventFilter =
	/** Return all events. */
	| {
			All: [];
	  } /** Return events that match any of the given filters. Only supported on event subscriptions. */
	| {
			Any: SuiEventFilter[];
	  } /** Query by sender address. */
	| {
			Sender: string;
	  } /** Return events emitted by the given transaction. */
	| {
			Transaction: string;
	  } /**
	 * Return events emitted in a specified Move module. If the event is defined in Module A but emitted in
	 * a tx with Module B, query `MoveModule` by module B returns the event. Query `MoveEventModule` by
	 * module A returns the event too.
	 */
	| {
			MoveModule: {
				/** the module name */
				module: string;
				/** the Move package ID */
				package: string;
			};
	  } /**
	 * Return events with the given Move event struct name (struct tag). For example, if the event is
	 * defined in `0xabcd::MyModule`, and named `Foo`, then the struct tag is `0xabcd::MyModule::Foo`.
	 */
	| {
			MoveEventType: string;
	  } /**
	 * Return events with the given Move module name where the event struct is defined. If the event is
	 * defined in Module A but emitted in a tx with Module B, query `MoveEventModule` by module A returns
	 * the event. Query `MoveModule` by module B returns the event too.
	 */
	| {
			MoveEventModule: {
				/** the module name */
				module: string;
				/** the Move package ID */
				package: string;
			};
	  } /** Return events emitted in [start_time, end_time] interval */
	| {
			TimeRange: {
				/** right endpoint of time interval, milliseconds since epoch, exclusive */
				endTime: string;
				/** left endpoint of time interval, milliseconds since epoch, inclusive */
				startTime: string;
			};
	  };
/** Unique ID of a Sui Event, the ID is a combination of transaction digest and event seq number. */
export interface EventId {
	eventSeq: string;
	txDigest: string;
}
export type ExecuteTransactionRequestType = 'WaitForEffectsCert' | 'WaitForLocalExecution';
export type ExecutionStatus = {
	status: 'success' | 'failure';
	error?: string;
};
/**
 * Summary of the charges in a transaction. Storage is charged independently of computation. There are
 * 3 parts to the storage charges: `storage_cost`: it is the charge of storage at the time the
 * transaction is executed. The cost of storage is the number of bytes of the objects being mutated
 * multiplied by a variable storage cost per byte `storage_rebate`: this is the amount a user gets back
 * when manipulating an object. The `storage_rebate` is the `storage_cost` for an object minus fees.
 * `non_refundable_storage_fee`: not all the value of the object storage cost is given back to user and
 * there is a small fraction that is kept by the system. This value tracks that charge.
 *
 * When looking at a gas cost summary the amount charged to the user is
 * `computation_cost + storage_cost - storage_rebate` and that is the amount that is deducted from the
 * gas coins. `non_refundable_storage_fee` is collected from the objects being mutated/deleted and it
 * is tracked by the system in storage funds.
 *
 * Objects deleted, including the older versions of objects mutated, have the storage field on the
 * objects added up to a pool of "potential rebate". This rebate then is reduced by the "nonrefundable
 * rate" such that:
 * `potential_rebate(storage cost of deleted/mutated objects) = storage_rebate + non_refundable_storage_fee`
 */
export interface GasCostSummary {
	/** Cost of computation/execution */
	computationCost: string;
	/** The fee for the rebate. The portion of the storage rebate kept by the system. */
	nonRefundableStorageFee: string;
	/** Storage cost, it's the sum of all storage cost for all objects created or mutated. */
	storageCost: string;
	/**
	 * The amount of storage cost refunded to the user for all objects deleted or mutated in the
	 * transaction.
	 */
	storageRebate: string;
}
export interface SuiGasData {
	budget: string;
	owner: string;
	payment: SuiObjectRef[];
	price: string;
}
export interface GetPastObjectRequest {
	/** the ID of the queried object */
	objectId: string;
	/** the version of the queried object. */
	version: string;
}
export type InputObjectKind =
	| {
			MovePackage: string;
	  }
	| {
			ImmOrOwnedMoveObject: SuiObjectRef;
	  }
	| {
			SharedMoveObject: {
				id: string;
				initial_shared_version: string;
				mutable?: boolean;
			};
	  };
export interface MoveCallParams {
	arguments: unknown[];
	function: string;
	module: string;
	packageObjectId: string;
	typeArguments?: string[];
}
export type SuiMoveFunctionArgType =
	| 'Pure'
	| {
			Object: ObjectValueKind;
	  };
export type MoveStruct =
	| MoveValue[]
	| {
			fields: {
				[key: string]: MoveValue;
			};
			type: string;
	  }
	| {
			[key: string]: MoveValue;
	  };
export type MoveValue =
	| number
	| boolean
	| string
	| MoveValue[]
	| string
	| {
			id: string;
	  }
	| MoveStruct
	| null
	| MoveVariant;
export interface MoveVariant {
	fields: {
		[key: string]: MoveValue;
	};
	type: string;
	variant: string;
}
/** The struct that contains signatures and public keys necessary for authenticating a MultiSig. */
export interface MultiSig {
	/** A bitmap that indicates the position of which public key the signature should be authenticated with. */
	bitmap: number;
	/**
	 * The public key encoded with each public key with its signature scheme used along with the
	 * corresponding weight.
	 */
	multisig_pk: MultiSigPublicKey;
	/** The plain signature encoded with signature scheme. */
	sigs: CompressedSignature[];
}
/**
 * Deprecated, use [struct MultiSig] instead. The struct that contains signatures and public keys
 * necessary for authenticating a MultiSigLegacy.
 */
export interface MultiSigLegacy {
	/** A bitmap that indicates the position of which public key the signature should be authenticated with. */
	bitmap: string;
	/**
	 * The public key encoded with each public key with its signature scheme used along with the
	 * corresponding weight.
	 */
	multisig_pk: MultiSigPublicKeyLegacy;
	/** The plain signature encoded with signature scheme. */
	sigs: CompressedSignature[];
}
/** The struct that contains the public key used for authenticating a MultiSig. */
export interface MultiSigPublicKey {
	/** A list of public key and its corresponding weight. */
	pk_map: [PublicKey, number][];
	/**
	 * If the total weight of the public keys corresponding to verified signatures is larger than
	 * threshold, the MultiSig is verified.
	 */
	threshold: number;
}
/**
 * Deprecated, use [struct MultiSigPublicKey] instead. The struct that contains the public key used for
 * authenticating a MultiSig.
 */
export interface MultiSigPublicKeyLegacy {
	/** A list of public key and its corresponding weight. */
	pk_map: [PublicKey, number][];
	/**
	 * If the total weight of the public keys corresponding to verified signatures is larger than
	 * threshold, the MultiSig is verified.
	 */
	threshold: number;
}
/**
 * ObjectChange are derived from the object mutations in the TransactionEffect to provide richer object
 * information.
 */
export type SuiObjectChange =
	/** Module published */
	| {
			digest: string;
			modules: string[];
			packageId: string;
			type: 'published';
			version: string;
	  } /** Transfer objects to new address / wrap in another object */
	| {
			digest: string;
			objectId: string;
			objectType: string;
			recipient: ObjectOwner;
			sender: string;
			type: 'transferred';
			version: string;
	  } /** Object mutated. */
	| {
			digest: string;
			objectId: string;
			objectType: string;
			owner: ObjectOwner;
			previousVersion: string;
			sender: string;
			type: 'mutated';
			version: string;
	  } /** Delete object */
	| {
			objectId: string;
			objectType: string;
			sender: string;
			type: 'deleted';
			version: string;
	  } /** Wrapped object */
	| {
			objectId: string;
			objectType: string;
			sender: string;
			type: 'wrapped';
			version: string;
	  } /** New object creation */
	| {
			digest: string;
			objectId: string;
			objectType: string;
			owner: ObjectOwner;
			sender: string;
			type: 'created';
			version: string;
	  };
export interface SuiObjectData {
	/**
	 * Move object content or package content in BCS, default to be None unless
	 * SuiObjectDataOptions.showBcs is set to true
	 */
	bcs?: RawData | null;
	/**
	 * Move object content or package content, default to be None unless SuiObjectDataOptions.showContent
	 * is set to true
	 */
	content?: SuiParsedData | null;
	/** Base64 string representing the object digest */
	digest: string;
	/**
	 * The Display metadata for frontend UI rendering, default to be None unless
	 * SuiObjectDataOptions.showContent is set to true This can also be None if the struct type does not
	 * have Display defined See more details in <https://forums.sui.io/t/nft-object-display-proposal/4872>
	 */
	display?: DisplayFieldsResponse | null;
	objectId: string;
	/** The owner of this object. Default to be None unless SuiObjectDataOptions.showOwner is set to true */
	owner?: ObjectOwner | null;
	/**
	 * The digest of the transaction that created or last mutated this object. Default to be None unless
	 * SuiObjectDataOptions.showPreviousTransaction is set to true
	 */
	previousTransaction?: string | null;
	/**
	 * The amount of SUI we would rebate if this object gets deleted. This number is re-calculated each
	 * time the object is mutated based on the present storage gas price.
	 */
	storageRebate?: string | null;
	/** The type of the object. Default to be None unless SuiObjectDataOptions.showType is set to true */
	type?: string | null;
	/** Object version. */
	version: string;
}
export interface SuiObjectDataOptions {
	/** Whether to show the content in BCS format. Default to be False */
	showBcs?: boolean;
	/**
	 * Whether to show the content(i.e., package content or Move struct content) of the object. Default to
	 * be False
	 */
	showContent?: boolean;
	/** Whether to show the Display metadata of the object for frontend rendering. Default to be False */
	showDisplay?: boolean;
	/** Whether to show the owner of the object. Default to be False */
	showOwner?: boolean;
	/** Whether to show the previous transaction digest of the object. Default to be False */
	showPreviousTransaction?: boolean;
	/** Whether to show the storage rebate of the object. Default to be False */
	showStorageRebate?: boolean;
	/** Whether to show the type of the object. Default to be False */
	showType?: boolean;
}
export type ObjectRead =
	/** The object exists and is found with this version */
	| {
			details: SuiObjectData;
			status: 'VersionFound';
	  } /** The object does not exist */
	| {
			details: string;
			status: 'ObjectNotExists';
	  } /** The object is found to be deleted with this version */
	| {
			details: SuiObjectRef;
			status: 'ObjectDeleted';
	  } /** The object exists but not found with this version */
	| {
			details: [string, string];
			status: 'VersionNotFound';
	  } /** The asked object version is higher than the latest */
	| {
			details: {
				asked_version: string;
				latest_version: string;
				object_id: string;
			};
			status: 'VersionTooHigh';
	  };
export interface SuiObjectRef {
	/** Base64 string representing the object digest */
	digest: string;
	/** Hex code as string representing the object id */
	objectId: string;
	/** Object version. */
	version: string;
}
export type ObjectResponseError =
	| {
			code: 'notExists';
			object_id: string;
	  }
	| {
			code: 'dynamicFieldNotFound';
			parent_object_id: string;
	  }
	| {
			code: 'deleted';
			/** Base64 string representing the object digest */
			digest: string;
			object_id: string;
			/** Object version. */
			version: string;
	  }
	| {
			code: 'unknown';
	  }
	| {
			code: 'displayError';
			error: string;
	  };
export interface SuiObjectResponseQuery {
	/** If None, no filter will be applied */
	filter?: SuiObjectDataFilter | null;
	/** config which fields to include in the response, by default only digest is included */
	options?: SuiObjectDataOptions | null;
}
export type ObjectValueKind = 'ByImmutableReference' | 'ByMutableReference' | 'ByValue';
export interface OwnedObjectRef {
	owner: ObjectOwner;
	reference: SuiObjectRef;
}
export type ObjectOwner =
	/** Object is exclusively owned by a single address, and is mutable. */
	| {
			AddressOwner: string;
	  } /**
	 * Object is exclusively owned by a single object, and is mutable. The object ID is converted to
	 * SuiAddress as SuiAddress is universal.
	 */
	| {
			ObjectOwner: string;
	  } /** Object is shared, can be used by any address, and is mutable. */
	| {
			Shared: {
				/** The version at which the object became shared */
				initial_shared_version: string;
			};
	  }
	| 'Immutable' /**
	 * Object is sequenced via consensus. Ownership is managed by the configured authenticator.
	 *
	 * Note: wondering what happened to `V1`? `Shared` above was the V1 of consensus objects.
	 */
	| {
			ConsensusV2: {
				/** The authentication mode of the object */
				authenticator: Authenticator;
				/**
				 * The version at which the object most recently became a consensus object. This serves the same
				 * function as `initial_shared_version`, except it may change if the object's Owner type changes.
				 */
				start_version: string;
			};
	  };
/**
 * `next_cursor` points to the last item in the page; Reading with `next_cursor` will start from the
 * next item after `next_cursor` if `next_cursor` is `Some`, otherwise it will start from the first
 * item.
 */
export interface PaginatedCheckpoints {
	data: Checkpoint[];
	hasNextPage: boolean;
	nextCursor?: string | null;
}
/**
 * `next_cursor` points to the last item in the page; Reading with `next_cursor` will start from the
 * next item after `next_cursor` if `next_cursor` is `Some`, otherwise it will start from the first
 * item.
 */
export interface PaginatedCoins {
	data: CoinStruct[];
	hasNextPage: boolean;
	nextCursor?: string | null;
}
/**
 * `next_cursor` points to the last item in the page; Reading with `next_cursor` will start from the
 * next item after `next_cursor` if `next_cursor` is `Some`, otherwise it will start from the first
 * item.
 */
export interface PaginatedDynamicFieldInfos {
	data: DynamicFieldInfo[];
	hasNextPage: boolean;
	nextCursor?: string | null;
}
/**
 * `next_cursor` points to the last item in the page; Reading with `next_cursor` will start from the
 * next item after `next_cursor` if `next_cursor` is `Some`, otherwise it will start from the first
 * item.
 */
export interface PaginatedEvents {
	data: SuiEvent[];
	hasNextPage: boolean;
	nextCursor?: EventId | null;
}
/**
 * `next_cursor` points to the last item in the page; Reading with `next_cursor` will start from the
 * next item after `next_cursor` if `next_cursor` is `Some`, otherwise it will start from the first
 * item.
 */
export interface PaginatedStrings {
	data: string[];
	hasNextPage: boolean;
	nextCursor?: string | null;
}
/**
 * `next_cursor` points to the last item in the page; Reading with `next_cursor` will start from the
 * next item after `next_cursor` if `next_cursor` is `Some`, otherwise it will start from the first
 * item.
 */
export interface PaginatedObjectsResponse {
	data: SuiObjectResponse[];
	hasNextPage: boolean;
	nextCursor?: string | null;
}
/**
 * `next_cursor` points to the last item in the page; Reading with `next_cursor` will start from the
 * next item after `next_cursor` if `next_cursor` is `Some`, otherwise it will start from the first
 * item.
 */
export interface PaginatedTransactionResponse {
	data: SuiTransactionBlockResponse[];
	hasNextPage: boolean;
	nextCursor?: string | null;
}
/**
 * An passkey authenticator with parsed fields. See field defition below. Can be initialized from
 * [struct RawPasskeyAuthenticator].
 */
export interface PasskeyAuthenticator {
	/**
	 * `authenticatorData` is a bytearray that encodes
	 * [Authenticator Data](https://www.w3.org/TR/webauthn-2/#sctn-authenticator-data) structure returned
	 * by the authenticator attestation response as is.
	 */
	authenticator_data: number[];
	/**
	 * `clientDataJSON` contains a JSON-compatible UTF-8 encoded string of the client data which is passed
	 * to the authenticator by the client during the authentication request (see
	 * [CollectedClientData](https://www.w3.org/TR/webauthn-2/#dictdef-collectedclientdata))
	 */
	client_data_json: string;
}
export interface ProtocolConfig {
	attributes: {
		[key: string]: ProtocolConfigValue | null;
	};
	featureFlags: {
		[key: string]: boolean;
	};
	maxSupportedProtocolVersion: string;
	minSupportedProtocolVersion: string;
	protocolVersion: string;
}
export type ProtocolConfigValue =
	| {
			u16: string;
	  }
	| {
			u32: string;
	  }
	| {
			u64: string;
	  }
	| {
			f64: string;
	  }
	| {
			bool: string;
	  };
export type PublicKey =
	| {
			Ed25519: string;
	  }
	| {
			Secp256k1: string;
	  }
	| {
			Secp256r1: string;
	  }
	| {
			ZkLogin: string;
	  }
	| {
			Passkey: string;
	  };
export type RPCTransactionRequestParams =
	| {
			transferObjectRequestParams: TransferObjectParams;
	  }
	| {
			moveCallRequestParams: MoveCallParams;
	  };
export type RawData =
	| {
			bcsBytes: string;
			dataType: 'moveObject';
			hasPublicTransfer: boolean;
			type: string;
			version: string;
	  }
	| {
			dataType: 'package';
			id: string;
			linkageTable: {
				[key: string]: UpgradeInfo;
			};
			moduleMap: {
				[key: string]: string;
			};
			typeOriginTable: TypeOrigin[];
			version: string;
	  };
export type Signature =
	| {
			Ed25519SuiSignature: string;
	  }
	| {
			Secp256k1SuiSignature: string;
	  }
	| {
			Secp256r1SuiSignature: string;
	  };
export type StakeObject =
	| {
			principal: string;
			stakeActiveEpoch: string;
			stakeRequestEpoch: string;
			/** ID of the StakedSui receipt object. */
			stakedSuiId: string;
			status: 'Pending';
	  }
	| {
			principal: string;
			stakeActiveEpoch: string;
			stakeRequestEpoch: string;
			/** ID of the StakedSui receipt object. */
			stakedSuiId: string;
			estimatedReward: string;
			status: 'Active';
	  }
	| {
			principal: string;
			stakeActiveEpoch: string;
			stakeRequestEpoch: string;
			/** ID of the StakedSui receipt object. */
			stakedSuiId: string;
			status: 'Unstaked';
	  };
export interface SuiActiveJwk {
	epoch: string;
	jwk: SuiJWK;
	jwk_id: SuiJwkId;
}
/** An argument to a transaction in a programmable transaction block */
export type SuiArgument =
	| 'GasCoin' /** One of the input objects or primitive values (from `ProgrammableTransactionBlock` inputs) */
	| {
			Input: number;
	  } /** The result of another transaction (from `ProgrammableTransactionBlock` transactions) */
	| {
			Result: number;
	  } /**
	 * Like a `Result` but it accesses a nested result. Currently, the only usage of this is to access a
	 * value from a Move call with multiple return values.
	 */
	| {
			NestedResult: [number, number];
	  };
export interface SuiAuthenticatorStateExpire {
	min_epoch: string;
}
export type SuiCallArg =
	| {
			type: 'object';
			digest: string;
			objectId: string;
			objectType: 'immOrOwnedObject';
			version: string;
	  }
	| {
			type: 'object';
			initialSharedVersion: string;
			mutable: boolean;
			objectId: string;
			objectType: 'sharedObject';
	  }
	| {
			type: 'object';
			digest: string;
			objectId: string;
			objectType: 'receiving';
			version: string;
	  }
	| {
			type: 'pure';
			value: unknown;
			valueType?: string | null;
	  };
export interface SuiChangeEpoch {
	computation_charge: string;
	epoch: string;
	epoch_start_timestamp_ms: string;
	storage_charge: string;
	storage_rebate: string;
}
export interface CoinMetadata {
	/** Number of decimal places the coin uses. */
	decimals: number;
	/** Description of the token */
	description: string;
	/** URL for the token logo */
	iconUrl?: string | null;
	/** Object id for the CoinMetadata object */
	id?: string | null;
	/** Name for the token */
	name: string;
	/** Symbol for the token */
	symbol: string;
}
export type SuiEndOfEpochTransactionKind =
	| 'AuthenticatorStateCreate'
	| 'RandomnessStateCreate'
	| 'CoinDenyListStateCreate'
	| 'StoreExecutionTimeObservations'
	| {
			ChangeEpoch: SuiChangeEpoch;
	  }
	| {
			AuthenticatorStateExpire: SuiAuthenticatorStateExpire;
	  }
	| {
			BridgeStateCreate: string;
	  }
	| {
			BridgeCommitteeUpdate: string;
	  };
export interface SuiExecutionResult {
	/** The value of any arguments that were mutably borrowed. Non-mut borrowed values are not included */
	mutableReferenceOutputs?: [SuiArgument, number[], string][];
	/** The return values from the transaction */
	returnValues?: [number[], string][];
}
export interface SuiJWK {
	alg: string;
	e: string;
	kty: string;
	n: string;
}
export interface SuiJwkId {
	iss: string;
	kid: string;
}
export type SuiMoveAbility = 'Copy' | 'Drop' | 'Store' | 'Key';
export interface SuiMoveAbilitySet {
	abilities: SuiMoveAbility[];
}
export interface SuiMoveModuleId {
	address: string;
	name: string;
}
export interface SuiMoveNormalizedEnum {
	abilities: SuiMoveAbilitySet;
	typeParameters: SuiMoveStructTypeParameter[];
	variants: {
		[key: string]: SuiMoveNormalizedField[];
	};
}
export interface SuiMoveNormalizedField {
	name: string;
	type: SuiMoveNormalizedType;
}
export interface SuiMoveNormalizedFunction {
	isEntry: boolean;
	parameters: SuiMoveNormalizedType[];
	return: SuiMoveNormalizedType[];
	typeParameters: SuiMoveAbilitySet[];
	visibility: SuiMoveVisibility;
}
export interface SuiMoveNormalizedModule {
	address: string;
	enums?: {
		[key: string]: SuiMoveNormalizedEnum;
	};
	exposedFunctions: {
		[key: string]: SuiMoveNormalizedFunction;
	};
	fileFormatVersion: number;
	friends: SuiMoveModuleId[];
	name: string;
	structs: {
		[key: string]: SuiMoveNormalizedStruct;
	};
}
export interface SuiMoveNormalizedStruct {
	abilities: SuiMoveAbilitySet;
	fields: SuiMoveNormalizedField[];
	typeParameters: SuiMoveStructTypeParameter[];
}
export type SuiMoveNormalizedType =
	| 'Bool'
	| 'U8'
	| 'U16'
	| 'U32'
	| 'U64'
	| 'U128'
	| 'U256'
	| 'Address'
	| 'Signer'
	| {
			Struct: {
				address: string;
				module: string;
				name: string;
				typeArguments: SuiMoveNormalizedType[];
			};
	  }
	| {
			Vector: SuiMoveNormalizedType;
	  }
	| {
			TypeParameter: number;
	  }
	| {
			Reference: SuiMoveNormalizedType;
	  }
	| {
			MutableReference: SuiMoveNormalizedType;
	  };
export interface SuiMoveStructTypeParameter {
	constraints: SuiMoveAbilitySet;
	isPhantom: boolean;
}
export type SuiMoveVisibility = 'Private' | 'Public' | 'Friend';
export type SuiObjectDataFilter =
	| {
			MatchAll: SuiObjectDataFilter[];
	  }
	| {
			MatchAny: SuiObjectDataFilter[];
	  }
	| {
			MatchNone: SuiObjectDataFilter[];
	  } /** Query by type a specified Package. */
	| {
			Package: string;
	  } /** Query by type a specified Move module. */
	| {
			MoveModule: {
				/** the module name */
				module: string;
				/** the Move package ID */
				package: string;
			};
	  } /** Query by type */
	| {
			StructType: string;
	  }
	| {
			AddressOwner: string;
	  }
	| {
			ObjectOwner: string;
	  }
	| {
			ObjectId: string;
	  }
	| {
			ObjectIds: string[];
	  }
	| {
			Version: string;
	  };
export interface SuiObjectResponse {
	data?: SuiObjectData | null;
	error?: ObjectResponseError | null;
}
/**
 * The transaction for calling a Move function, either an entry function or a public function (which
 * cannot return references).
 */
export interface MoveCallSuiTransaction {
	/** The arguments to the function. */
	arguments?: SuiArgument[];
	/** The function to be called. */
	function: string;
	/** The specific module in the package containing the function. */
	module: string;
	/** The package containing the module and function. */
	package: string;
	/** The type arguments to the function. */
	type_arguments?: string[];
}
/**
 * This is the JSON-RPC type for the SUI system state object. It flattens all fields to make them
 * top-level fields such that it as minimum dependencies to the internal data structures of the SUI
 * system state type.
 */
export interface SuiSystemStateSummary {
	/** The list of active validators in the current epoch. */
	activeValidators: SuiValidatorSummary[];
	/** Map storing the number of epochs for which each validator has been below the low stake threshold. */
	atRiskValidators: [string, string][];
	/** The current epoch ID, starting from 0. */
	epoch: string;
	/** The duration of an epoch, in milliseconds. */
	epochDurationMs: string;
	/** Unix timestamp of the current epoch start */
	epochStartTimestampMs: string;
	/**
	 * ID of the object that maps from a staking pool ID to the inactive validator that has that pool as
	 * its staking pool.
	 */
	inactivePoolsId: string;
	/** Number of inactive staking pools. */
	inactivePoolsSize: string;
	/**
	 * Maximum number of active validators at any moment. We do not allow the number of validators in any
	 * epoch to go above this.
	 */
	maxValidatorCount: string;
	/** Lower-bound on the amount of stake required to become a validator. */
	minValidatorJoiningStake: string;
	/** ID of the object that contains the list of new validators that will join at the end of the epoch. */
	pendingActiveValidatorsId: string;
	/** Number of new validators that will join at the end of the epoch. */
	pendingActiveValidatorsSize: string;
	/** Removal requests from the validators. Each element is an index pointing to `active_validators`. */
	pendingRemovals: string[];
	/** The current protocol version, starting from 1. */
	protocolVersion: string;
	/** The reference gas price for the current epoch. */
	referenceGasPrice: string;
	/**
	 * Whether the system is running in a downgraded safe mode due to a non-recoverable bug. This is set
	 * whenever we failed to execute advance_epoch, and ended up executing advance_epoch_safe_mode. It can
	 * be reset once we are able to successfully execute advance_epoch.
	 */
	safeMode: boolean;
	/** Amount of computation rewards accumulated (and not yet distributed) during safe mode. */
	safeModeComputationRewards: string;
	/** Amount of non-refundable storage fee accumulated during safe mode. */
	safeModeNonRefundableStorageFee: string;
	/** Amount of storage rebates accumulated (and not yet burned) during safe mode. */
	safeModeStorageRebates: string;
	/** Amount of storage rewards accumulated (and not yet distributed) during safe mode. */
	safeModeStorageRewards: string;
	/** Balance of SUI set aside for stake subsidies that will be drawn down over time. */
	stakeSubsidyBalance: string;
	/** The amount of stake subsidy to be drawn down per epoch. This amount decays and decreases over time. */
	stakeSubsidyCurrentDistributionAmount: string;
	/**
	 * The rate at which the distribution amount decays at the end of each period. Expressed in basis
	 * points.
	 */
	stakeSubsidyDecreaseRate: number;
	/**
	 * This counter may be different from the current epoch number if in some epochs we decide to skip the
	 * subsidy.
	 */
	stakeSubsidyDistributionCounter: string;
	/** Number of distributions to occur before the distribution amount decays. */
	stakeSubsidyPeriodLength: string;
	/** The starting epoch in which stake subsidies start being paid out */
	stakeSubsidyStartEpoch: string;
	/** ID of the object that maps from staking pool's ID to the sui address of a validator. */
	stakingPoolMappingsId: string;
	/** Number of staking pool mappings. */
	stakingPoolMappingsSize: string;
	/**
	 * The non-refundable portion of the storage fund coming from storage reinvestment, non-refundable
	 * storage rebates and any leftover staking rewards.
	 */
	storageFundNonRefundableBalance: string;
	/** The storage rebates of all the objects on-chain stored in the storage fund. */
	storageFundTotalObjectStorageRebates: string;
	/** The current version of the system state data structure type. */
	systemStateVersion: string;
	/** Total amount of stake from all active validators at the beginning of the epoch. */
	totalStake: string;
	/**
	 * ID of the object that stores preactive validators, mapping their addresses to their `Validator`
	 * structs.
	 */
	validatorCandidatesId: string;
	/** Number of preactive validators. */
	validatorCandidatesSize: string;
	/**
	 * A validator can have stake below `validator_low_stake_threshold` for this many epochs before being
	 * kicked out.
	 */
	validatorLowStakeGracePeriod: string;
	/**
	 * Validators with stake amount below `validator_low_stake_threshold` are considered to have low stake
	 * and will be escorted out of the validator set after being below this threshold for more than
	 * `validator_low_stake_grace_period` number of epochs.
	 */
	validatorLowStakeThreshold: string;
	/** A map storing the records of validator reporting each other. */
	validatorReportRecords: [string, string[]][];
	/**
	 * Validators with stake below `validator_very_low_stake_threshold` will be removed immediately at
	 * epoch change, no grace period.
	 */
	validatorVeryLowStakeThreshold: string;
}
/** A single transaction in a programmable transaction block. */
export type SuiTransaction =
	/** A call to either an entry or a public Move function */
	| {
			MoveCall: MoveCallSuiTransaction;
	  } /**
	 * `(Vec<forall T:key+store. T>, address)` It sends n-objects to the specified address. These objects
	 * must have store (public transfer) and either the previous owner must be an address or the object
	 * must be newly created.
	 */
	| {
			TransferObjects: [SuiArgument[], SuiArgument];
	  } /**
	 * `(&mut Coin<T>, Vec<u64>)` -> `Vec<Coin<T>>` It splits off some amounts into a new coins with those
	 * amounts
	 */
	| {
			SplitCoins: [SuiArgument, SuiArgument[]];
	  } /** `(&mut Coin<T>, Vec<Coin<T>>)` It merges n-coins into the first coin */
	| {
			MergeCoins: [SuiArgument, SuiArgument[]];
	  } /**
	 * Publishes a Move package. It takes the package bytes and a list of the package's transitive
	 * dependencies to link against on-chain.
	 */
	| {
			Publish: string[];
	  } /** Upgrades a Move package */
	| {
			Upgrade: [string[], string, SuiArgument];
	  } /**
	 * `forall T: Vec<T> -> vector<T>` Given n-values of the same type, it constructs a vector. For non
	 * objects or an empty vector, the type tag must be specified.
	 */
	| {
			MakeMoveVec: [string | null, SuiArgument[]];
	  };
export type SuiTransactionBlockBuilderMode = 'Commit' | 'DevInspect';
/**
 * This is the JSON-RPC type for the SUI validator. It flattens all inner structures to top-level
 * fields so that they are decoupled from the internal definitions.
 */
export interface SuiValidatorSummary {
	commissionRate: string;
	description: string;
	/** ID of the exchange rate table object. */
	exchangeRatesId: string;
	/** Number of exchange rates in the table. */
	exchangeRatesSize: string;
	gasPrice: string;
	imageUrl: string;
	name: string;
	netAddress: string;
	networkPubkeyBytes: string;
	nextEpochCommissionRate: string;
	nextEpochGasPrice: string;
	nextEpochNetAddress?: string | null;
	nextEpochNetworkPubkeyBytes?: string | null;
	nextEpochP2pAddress?: string | null;
	nextEpochPrimaryAddress?: string | null;
	nextEpochProofOfPossession?: string | null;
	nextEpochProtocolPubkeyBytes?: string | null;
	nextEpochStake: string;
	nextEpochWorkerAddress?: string | null;
	nextEpochWorkerPubkeyBytes?: string | null;
	operationCapId: string;
	p2pAddress: string;
	/** Pending pool token withdrawn during the current epoch, emptied at epoch boundaries. */
	pendingPoolTokenWithdraw: string;
	/** Pending stake amount for this epoch. */
	pendingStake: string;
	/** Pending stake withdrawn during the current epoch, emptied at epoch boundaries. */
	pendingTotalSuiWithdraw: string;
	/** Total number of pool tokens issued by the pool. */
	poolTokenBalance: string;
	primaryAddress: string;
	projectUrl: string;
	proofOfPossessionBytes: string;
	protocolPubkeyBytes: string;
	/** The epoch stake rewards will be added here at the end of each epoch. */
	rewardsPool: string;
	/** The epoch at which this pool became active. */
	stakingPoolActivationEpoch?: string | null;
	/** The epoch at which this staking pool ceased to be active. `None` = {pre-active, active}, */
	stakingPoolDeactivationEpoch?: string | null;
	/** ID of the staking pool object. */
	stakingPoolId: string;
	/** The total number of SUI tokens in this pool. */
	stakingPoolSuiBalance: string;
	suiAddress: string;
	votingPower: string;
	workerAddress: string;
	workerPubkeyBytes: string;
}
export interface CoinSupply {
	value: string;
}
export interface SuiTransactionBlock {
	data: TransactionBlockData;
	txSignatures: string[];
}
export interface TransactionBlockBytes {
	/** the gas objects to be used */
	gas: SuiObjectRef[];
	/** objects to be used in this transaction */
	inputObjects: InputObjectKind[];
	/** BCS serialized transaction data bytes without its type tag, as base-64 encoded string. */
	txBytes: string;
}
export type TransactionBlockData = {
	gasData: SuiGasData;
	messageVersion: 'v1';
	sender: string;
	transaction: SuiTransactionBlockKind;
};
export type TransactionEffects =
	/** The response from processing a transaction or a certified transaction */
	{
		/** ObjectRef and owner of new objects created. */
		created?: OwnedObjectRef[];
		/** Object Refs of objects now deleted (the old refs). */
		deleted?: SuiObjectRef[];
		/** The set of transaction digests this transaction depends on. */
		dependencies?: string[];
		/**
		 * The digest of the events emitted during execution, can be None if the transaction does not emit any
		 * event.
		 */
		eventsDigest?: string | null;
		/** The epoch when this transaction was executed. */
		executedEpoch: string;
		/**
		 * The updated gas object reference. Have a dedicated field for convenient access. It's also included
		 * in mutated.
		 */
		gasObject: OwnedObjectRef;
		gasUsed: GasCostSummary;
		messageVersion: 'v1';
		/**
		 * The version that every modified (mutated or deleted) object had before it was modified by this
		 * transaction.
		 */
		modifiedAtVersions?: TransactionBlockEffectsModifiedAtVersions[];
		/** ObjectRef and owner of mutated objects, including gas object. */
		mutated?: OwnedObjectRef[];
		/**
		 * The object references of the shared objects used in this transaction. Empty if no shared objects
		 * were used.
		 */
		sharedObjects?: SuiObjectRef[];
		/** The status of the execution */
		status: ExecutionStatus;
		/** The transaction digest */
		transactionDigest: string;
		/**
		 * ObjectRef and owner of objects that are unwrapped in this transaction. Unwrapped objects are objects
		 * that were wrapped into other objects in the past, and just got extracted out.
		 */
		unwrapped?: OwnedObjectRef[];
		/** Object refs of objects previously wrapped in other objects but now deleted. */
		unwrappedThenDeleted?: SuiObjectRef[];
		/** Object refs of objects now wrapped in other objects. */
		wrapped?: SuiObjectRef[];
	};
export interface TransactionBlockEffectsModifiedAtVersions {
	objectId: string;
	sequenceNumber: string;
}
export type SuiTransactionBlockKind =
	/** A system transaction that will update epoch information on-chain. */
	| {
			computation_charge: string;
			epoch: string;
			epoch_start_timestamp_ms: string;
			kind: 'ChangeEpoch';
			storage_charge: string;
			storage_rebate: string;
	  } /** A system transaction used for initializing the initial state of the chain. */
	| {
			kind: 'Genesis';
			objects: string[];
	  } /** A system transaction marking the start of a series of transactions scheduled as part of a checkpoint */
	| {
			commit_timestamp_ms: string;
			epoch: string;
			kind: 'ConsensusCommitPrologue';
			round: string;
	  } /** A series of transactions where the results of one transaction can be used in future transactions */
	| {
			/** Input objects or primitive values */
			inputs: SuiCallArg[];
			kind: 'ProgrammableTransaction';
			/**
			 * The transactions to be executed sequentially. A failure in any transaction will result in the
			 * failure of the entire programmable transaction block.
			 */
			transactions: SuiTransaction[];
	  } /** A transaction which updates global authenticator state */
	| {
			epoch: string;
			kind: 'AuthenticatorStateUpdate';
			new_active_jwks: SuiActiveJwk[];
			round: string;
	  } /** A transaction which updates global randomness state */
	| {
			epoch: string;
			kind: 'RandomnessStateUpdate';
			random_bytes: number[];
			randomness_round: string;
	  } /** The transaction which occurs only at the end of the epoch */
	| {
			kind: 'EndOfEpochTransaction';
			transactions: SuiEndOfEpochTransactionKind[];
	  }
	| {
			commit_timestamp_ms: string;
			consensus_commit_digest: string;
			epoch: string;
			kind: 'ConsensusCommitPrologueV2';
			round: string;
	  }
	| {
			commit_timestamp_ms: string;
			consensus_commit_digest: string;
			consensus_determined_version_assignments: ConsensusDeterminedVersionAssignments;
			epoch: string;
			kind: 'ConsensusCommitPrologueV3';
			round: string;
			sub_dag_index?: string | null;
	  }
	| {
			additional_state_digest: string;
			commit_timestamp_ms: string;
			consensus_commit_digest: string;
			consensus_determined_version_assignments: ConsensusDeterminedVersionAssignments;
			epoch: string;
			kind: 'ConsensusCommitPrologueV4';
			round: string;
			sub_dag_index?: string | null;
	  };
export interface SuiTransactionBlockResponse {
	balanceChanges?: BalanceChange[] | null;
	/**
	 * The checkpoint number when this transaction was included and hence finalized. This is only returned
	 * in the read api, not in the transaction execution api.
	 */
	checkpoint?: string | null;
	confirmedLocalExecution?: boolean | null;
	digest: string;
	effects?: TransactionEffects | null;
	errors?: string[];
	events?: SuiEvent[] | null;
	objectChanges?: SuiObjectChange[] | null;
	rawEffects?: number[];
	/**
	 * BCS encoded [SenderSignedData] that includes input object references returns empty array if
	 * `show_raw_transaction` is false
	 */
	rawTransaction?: string;
	timestampMs?: string | null;
	/** Transaction input data */
	transaction?: SuiTransactionBlock | null;
}
export interface SuiTransactionBlockResponseOptions {
	/** Whether to show balance_changes. Default to be False */
	showBalanceChanges?: boolean;
	/** Whether to show transaction effects. Default to be False */
	showEffects?: boolean;
	/** Whether to show transaction events. Default to be False */
	showEvents?: boolean;
	/** Whether to show transaction input data. Default to be False */
	showInput?: boolean;
	/** Whether to show object_changes. Default to be False */
	showObjectChanges?: boolean;
	/** Whether to show raw transaction effects. Default to be False */
	showRawEffects?: boolean;
	/** Whether to show bcs-encoded transaction input data */
	showRawInput?: boolean;
}
export interface SuiTransactionBlockResponseQuery {
	/** If None, no filter will be applied */
	filter?: TransactionFilter | null;
	/** config which fields to include in the response, by default only digest is included */
	options?: SuiTransactionBlockResponseOptions | null;
}
export type TransactionFilter =
	/** CURRENTLY NOT SUPPORTED. Query by checkpoint. */
	| {
			Checkpoint: string;
	  } /** Query by move function. */
	| {
			MoveFunction: {
				function?: string | null;
				module?: string | null;
				package: string;
			};
	  } /** Query by input object. */
	| {
			InputObject: string;
	  } /** Query by changed object, including created, mutated and unwrapped objects. */
	| {
			ChangedObject: string;
	  } /** Query for transactions that touch this object. */
	| {
			AffectedObject: string;
	  } /** Query by sender address. */
	| {
			FromAddress: string;
	  } /** Query by recipient address. */
	| {
			ToAddress: string;
	  } /** Query by sender and recipient address. */
	| {
			FromAndToAddress: {
				from: string;
				to: string;
			};
	  } /** CURRENTLY NOT SUPPORTED. Query txs that have a given address as sender or recipient. */
	| {
			FromOrToAddress: {
				addr: string;
			};
	  } /** Query by transaction kind */
	| {
			TransactionKind: string;
	  } /** Query transactions of any given kind in the input. */
	| {
			TransactionKindIn: string[];
	  };
export interface TransferObjectParams {
	objectId: string;
	recipient: string;
}
/** Identifies a struct and the module it was defined in */
export interface TypeOrigin {
	datatype_name: string;
	module_name: string;
	package: string;
}
/** Upgraded package info for the linkage table */
export interface UpgradeInfo {
	/** ID of the upgraded packages */
	upgraded_id: string;
	/** Version of the upgraded package */
	upgraded_version: string;
}
export interface ValidatorApy {
	address: string;
	apy: number;
}
export interface ValidatorsApy {
	apys: ValidatorApy[];
	epoch: string;
}
/** An zk login authenticator with all the necessary fields. */
export interface ZkLoginAuthenticator {
	inputs: ZkLoginInputs;
	maxEpoch: string;
	userSignature: Signature;
}
/** All inputs required for the zk login proof verification and other public inputs. */
export interface ZkLoginInputs {
	addressSeed: string;
	headerBase64: string;
	issBase64Details: Claim;
	proofPoints: ZkLoginProof;
}
export type ZkLoginIntentScope = 'TransactionData' | 'PersonalMessage';
/** The struct for zk login proof. */
export interface ZkLoginProof {
	a: string[];
	b: string[][];
	c: string[];
}
export interface ZkLoginVerifyResult {
	/** The errors field captures any verification error */
	errors: string[];
	/** The boolean result of the verification. If true, errors should be empty. */
	success: boolean;
}
