@mysten/sui 2.25.0 → 2.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +9 -0
- package/dist/bcs/bcs.d.mts +6 -6
- package/dist/bcs/index.d.mts +36 -36
- package/dist/client/errors.d.mts +31 -2
- package/dist/client/errors.d.mts.map +1 -1
- package/dist/client/errors.mjs +15 -13
- package/dist/client/errors.mjs.map +1 -1
- package/dist/client/index.d.mts +2 -2
- package/dist/client/index.mjs +2 -2
- package/dist/graphql/core.d.mts.map +1 -1
- package/dist/graphql/core.mjs +11 -5
- package/dist/graphql/core.mjs.map +1 -1
- package/dist/grpc/core.d.mts.map +1 -1
- package/dist/grpc/core.mjs +29 -12
- package/dist/grpc/core.mjs.map +1 -1
- package/dist/grpc/proto/sui/rpc/v2/ledger_service.client.d.mts +4 -4
- package/dist/grpc/proto/sui/rpc/v2/move_package_service.client.d.mts +4 -4
- package/dist/grpc/proto/sui/rpc/v2/name_service.client.d.mts +4 -4
- package/dist/grpc/proto/sui/rpc/v2/signature_verification_service.client.d.mts +4 -4
- package/dist/grpc/proto/sui/rpc/v2/state_service.client.d.mts +4 -4
- package/dist/grpc/proto/sui/rpc/v2/subscription_service.client.d.mts +4 -4
- package/dist/grpc/proto/sui/rpc/v2/transaction_execution_service.client.d.mts +4 -4
- package/dist/jsonRpc/core.d.mts.map +1 -1
- package/dist/jsonRpc/core.mjs +55 -15
- package/dist/jsonRpc/core.mjs.map +1 -1
- package/dist/transactions/Transaction.d.mts +9 -9
- package/dist/version.mjs +1 -1
- package/dist/version.mjs.map +1 -1
- package/package.json +1 -1
- package/src/client/errors.ts +39 -23
- package/src/client/index.ts +9 -1
- package/src/graphql/core.ts +11 -6
- package/src/grpc/core.ts +90 -65
- package/src/jsonRpc/core.ts +83 -18
- package/src/version.ts +1 -1
package/dist/grpc/core.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.mjs","names":["#client","bcs"],"sources":["../../src/grpc/core.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { CoreClientOptions, SuiClientTypes } from '../client/index.js';\nimport { CoreClient, formatMoveAbortMessage, SimulationError } from '../client/index.js';\nimport { raceSignal } from '../client/mvr.js';\nimport type { SuiGrpcClient } from './client.js';\nimport type { Owner } from './proto/sui/rpc/v2/owner.js';\nimport { Owner_OwnerKind } from './proto/sui/rpc/v2/owner.js';\nimport { chunk, fromBase64, toBase64 } from '@mysten/utils';\nimport type { TransactionEffects } from './proto/sui/rpc/v2/effects.js';\nimport {\n\tUnchangedConsensusObject_UnchangedConsensusObjectKind,\n\tChangedObject_IdOperation,\n\tChangedObject_InputObjectState,\n\tChangedObject_OutputObjectState,\n} from './proto/sui/rpc/v2/effects.js';\nimport type {\n\tExecutionError as GrpcExecutionError,\n\tMoveAbort as GrpcMoveAbort,\n} from './proto/sui/rpc/v2/execution_status.js';\nimport {\n\tExecutionError_ExecutionErrorKind,\n\tCommandArgumentError_CommandArgumentErrorKind,\n\tTypeArgumentError_TypeArgumentErrorKind,\n\tPackageUpgradeError_PackageUpgradeErrorKind,\n} from './proto/sui/rpc/v2/execution_status.js';\nimport type { BuildTransactionOptions } from '../transactions/index.js';\nimport { TransactionDataBuilder } from '../transactions/index.js';\nimport { bcs } from '../bcs/index.js';\nimport { normalizeStructTag, normalizeSuiAddress } from '../utils/sui-types.js';\nimport { SUI_TYPE_ARG } from '../utils/constants.js';\nimport type { OpenSignature, OpenSignatureBody } from './proto/sui/rpc/v2/move_package.js';\nimport {\n\tAbility,\n\tFunctionDescriptor_Visibility,\n\tOpenSignature_Reference,\n\tOpenSignatureBody_Type,\n} from './proto/sui/rpc/v2/move_package.js';\nimport {\n\tapplyGrpcResolvedTransaction,\n\ttransactionDataToGrpcTransaction,\n\ttransactionToGrpcTransaction,\n\tgrpcTransactionToTransactionData,\n} from '../client/transaction-resolver.js';\nimport { setAddressBalanceTransactionExpirationFromSimulatedEpoch } from '../client/address-balance-transaction-expiration.js';\nimport { transactionBytesHaveEmptyGasPayment } from '../client/utils.js';\nimport { Value } from './proto/google/protobuf/struct.js';\nimport { ExecutedTransaction } from './proto/sui/rpc/v2/executed_transaction.js';\nimport {\n\tSimulateTransactionRequest_TransactionChecks,\n\tSimulateTransactionResponse,\n} from './proto/sui/rpc/v2/transaction_execution_service.js';\nimport type { QueryEnd, QueryOptions } from './proto/sui/rpc/v2/query_options.js';\nimport { Ordering, QueryEndReason } from './proto/sui/rpc/v2/query_options.js';\nimport type { ResolvedPagination } from '../client/query-filters.js';\nimport { RpcError } from '@protobuf-ts/runtime-rpc';\nimport {\n\tresolveEventFilter,\n\tresolvePagination,\n\tresolveTransactionFilter,\n\tvalidateTransactionQuery,\n} from '../client/query-filters.js';\nimport { toGrpcEventFilter, toGrpcTransactionFilter } from './filters.js';\n\nexport interface GrpcCoreClientOptions extends CoreClientOptions {\n\tclient: SuiGrpcClient;\n}\n\nfunction isNameServiceResolutionMiss(error: unknown): boolean {\n\tif (!(error instanceof RpcError)) return false;\n\tif (error.code === 'NOT_FOUND') return true;\n\tif (error.code !== 'RESOURCE_EXHAUSTED') return false;\n\n\ttry {\n\t\t// The gRPC service currently reports expired names as RESOURCE_EXHAUSTED without a\n\t\t// structured reason. grpc-web URI-encodes status messages, so decode before matching while\n\t\t// preserving unrelated RESOURCE_EXHAUSTED failures such as capacity limits.\n\t\treturn decodeURIComponent(error.message) === 'name has expired';\n\t} catch {\n\t\treturn false;\n\t}\n}\n\nexport class GrpcCoreClient extends CoreClient {\n\t#client: SuiGrpcClient;\n\tconstructor({ client, ...options }: GrpcCoreClientOptions) {\n\t\tsuper(options);\n\t\tthis.#client = client;\n\t}\n\n\tasync getObjects<Include extends SuiClientTypes.ObjectInclude = {}>(\n\t\toptions: SuiClientTypes.GetObjectsOptions<Include>,\n\t): Promise<SuiClientTypes.GetObjectsResponse<Include>> {\n\t\tconst batches = chunk(options.objectIds, 50);\n\t\tconst results: SuiClientTypes.GetObjectsResponse<Include>['objects'] = [];\n\n\t\tconst paths = ['owner', 'object_type', 'digest', 'version', 'object_id'];\n\t\tif (options.include?.content) {\n\t\t\tpaths.push('contents');\n\t\t}\n\t\tif (options.include?.previousTransaction) {\n\t\t\tpaths.push('previous_transaction');\n\t\t}\n\t\tif (options.include?.objectBcs) {\n\t\t\tpaths.push('bcs');\n\t\t}\n\t\tif (options.include?.json) {\n\t\t\tpaths.push('json');\n\t\t}\n\t\tif (options.include?.display) {\n\t\t\tpaths.push('display');\n\t\t}\n\n\t\tfor (const batch of batches) {\n\t\t\tconst response = await this.#client.ledgerService.batchGetObjects(\n\t\t\t\t{\n\t\t\t\t\trequests: batch.map((id) => ({ objectId: id })),\n\t\t\t\t\treadMask: {\n\t\t\t\t\t\tpaths,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{ abort: options.signal },\n\t\t\t);\n\n\t\t\tresults.push(\n\t\t\t\t...response.response.objects.map((object): SuiClientTypes.Object<Include> | Error => {\n\t\t\t\t\tif (object.result.oneofKind === 'error') {\n\t\t\t\t\t\t// TODO: improve error handling\n\t\t\t\t\t\treturn new Error(object.result.error.message);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (object.result.oneofKind !== 'object') {\n\t\t\t\t\t\treturn new Error('Unexpected result type');\n\t\t\t\t\t}\n\n\t\t\t\t\tconst bcsContent = object.result.object.contents?.value ?? undefined;\n\t\t\t\t\tconst objectBcs = object.result.object.bcs?.value ?? undefined;\n\n\t\t\t\t\t// Package objects have type \"package\" which is not a struct tag, so don't normalize it\n\t\t\t\t\tconst objectType = object.result.object.objectType;\n\t\t\t\t\tconst type =\n\t\t\t\t\t\tobjectType && objectType.includes('::')\n\t\t\t\t\t\t\t? normalizeStructTag(objectType)\n\t\t\t\t\t\t\t: (objectType ?? '');\n\n\t\t\t\t\tconst jsonContent = options.include?.json\n\t\t\t\t\t\t? object.result.object.json\n\t\t\t\t\t\t\t? (Value.toJson(object.result.object.json) as Record<string, unknown>)\n\t\t\t\t\t\t\t: null\n\t\t\t\t\t\t: undefined;\n\n\t\t\t\t\tconst displayData = mapDisplayProto(\n\t\t\t\t\t\toptions.include?.display,\n\t\t\t\t\t\tobject.result.object.display,\n\t\t\t\t\t);\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tobjectId: object.result.object.objectId!,\n\t\t\t\t\t\tversion: object.result.object.version?.toString()!,\n\t\t\t\t\t\tdigest: object.result.object.digest!,\n\t\t\t\t\t\tcontent: bcsContent as SuiClientTypes.Object<Include>['content'],\n\t\t\t\t\t\towner: mapOwner(object.result.object.owner)!,\n\t\t\t\t\t\ttype,\n\t\t\t\t\t\tpreviousTransaction: (object.result.object.previousTransaction ??\n\t\t\t\t\t\t\tundefined) as SuiClientTypes.Object<Include>['previousTransaction'],\n\t\t\t\t\t\tobjectBcs: objectBcs as SuiClientTypes.Object<Include>['objectBcs'],\n\t\t\t\t\t\tjson: jsonContent as SuiClientTypes.Object<Include>['json'],\n\t\t\t\t\t\tdisplay: displayData as SuiClientTypes.Object<Include>['display'],\n\t\t\t\t\t};\n\t\t\t\t}),\n\t\t\t);\n\t\t}\n\n\t\treturn {\n\t\t\tobjects: results,\n\t\t};\n\t}\n\tasync listOwnedObjects<Include extends SuiClientTypes.ObjectInclude = {}>(\n\t\toptions: SuiClientTypes.ListOwnedObjectsOptions<Include>,\n\t): Promise<SuiClientTypes.ListOwnedObjectsResponse<Include>> {\n\t\tconst paths = ['owner', 'object_type', 'digest', 'version', 'object_id'];\n\t\tif (options.include?.content) {\n\t\t\tpaths.push('contents');\n\t\t}\n\t\tif (options.include?.previousTransaction) {\n\t\t\tpaths.push('previous_transaction');\n\t\t}\n\t\tif (options.include?.objectBcs) {\n\t\t\tpaths.push('bcs');\n\t\t}\n\t\tif (options.include?.json) {\n\t\t\tpaths.push('json');\n\t\t}\n\t\tif (options.include?.display) {\n\t\t\tpaths.push('display');\n\t\t}\n\n\t\tconst response = await this.#client.stateService.listOwnedObjects(\n\t\t\t{\n\t\t\t\towner: options.owner,\n\t\t\t\tobjectType: options.type\n\t\t\t\t\t? (await this.mvr.resolveType({ type: options.type, signal: options.signal })).type\n\t\t\t\t\t: undefined,\n\t\t\t\tpageToken: options.cursor ? fromBase64(options.cursor) : undefined,\n\t\t\t\tpageSize: options.limit,\n\t\t\t\treadMask: {\n\t\t\t\t\tpaths,\n\t\t\t\t},\n\t\t\t},\n\t\t\t{ abort: options.signal },\n\t\t);\n\n\t\tconst objects = response.response.objects.map(\n\t\t\t(object): SuiClientTypes.Object<Include> => ({\n\t\t\t\tobjectId: object.objectId!,\n\t\t\t\tversion: object.version?.toString()!,\n\t\t\t\tdigest: object.digest!,\n\t\t\t\tcontent: object.contents?.value as SuiClientTypes.Object<Include>['content'],\n\t\t\t\towner: mapOwner(object.owner)!,\n\t\t\t\ttype: object.objectType!,\n\t\t\t\tpreviousTransaction: (object.previousTransaction ??\n\t\t\t\t\tundefined) as SuiClientTypes.Object<Include>['previousTransaction'],\n\t\t\t\tobjectBcs: object.bcs?.value as SuiClientTypes.Object<Include>['objectBcs'],\n\t\t\t\tjson: (options.include?.json\n\t\t\t\t\t? object.json\n\t\t\t\t\t\t? (Value.toJson(object.json) as Record<string, unknown>)\n\t\t\t\t\t\t: null\n\t\t\t\t\t: undefined) as SuiClientTypes.Object<Include>['json'],\n\t\t\t\tdisplay: mapDisplayProto(\n\t\t\t\t\toptions.include?.display,\n\t\t\t\t\tobject.display,\n\t\t\t\t) as SuiClientTypes.Object<Include>['display'],\n\t\t\t}),\n\t\t);\n\n\t\treturn {\n\t\t\tobjects,\n\t\t\tcursor: response.response.nextPageToken ? toBase64(response.response.nextPageToken) : null,\n\t\t\thasNextPage: response.response.nextPageToken !== undefined,\n\t\t};\n\t}\n\tasync listCoins(\n\t\toptions: SuiClientTypes.ListCoinsOptions,\n\t): Promise<SuiClientTypes.ListCoinsResponse> {\n\t\tconst paths = ['owner', 'object_type', 'digest', 'version', 'object_id', 'balance'];\n\t\tconst coinType = options.coinType ?? SUI_TYPE_ARG;\n\n\t\tconst response = await this.#client.stateService.listOwnedObjects(\n\t\t\t{\n\t\t\t\towner: options.owner,\n\t\t\t\tobjectType: `0x2::coin::Coin<${(await this.mvr.resolveType({ type: coinType, signal: options.signal })).type}>`,\n\t\t\t\tpageToken: options.cursor ? fromBase64(options.cursor) : undefined,\n\t\t\t\tpageSize: options.limit,\n\t\t\t\treadMask: {\n\t\t\t\t\tpaths,\n\t\t\t\t},\n\t\t\t},\n\t\t\t{ abort: options.signal },\n\t\t);\n\n\t\treturn {\n\t\t\tobjects: response.response.objects.map(\n\t\t\t\t(object): SuiClientTypes.Coin => ({\n\t\t\t\t\tobjectId: object.objectId!,\n\t\t\t\t\tversion: object.version?.toString()!,\n\t\t\t\t\tdigest: object.digest!,\n\t\t\t\t\towner: mapOwner(object.owner)!,\n\t\t\t\t\ttype: object.objectType!,\n\t\t\t\t\tbalance: object.balance?.toString()!,\n\t\t\t\t}),\n\t\t\t),\n\t\t\tcursor: response.response.nextPageToken ? toBase64(response.response.nextPageToken) : null,\n\t\t\thasNextPage: response.response.nextPageToken !== undefined,\n\t\t};\n\t}\n\n\tasync getBalance(\n\t\toptions: SuiClientTypes.GetBalanceOptions,\n\t): Promise<SuiClientTypes.GetBalanceResponse> {\n\t\tconst coinType = options.coinType ?? SUI_TYPE_ARG;\n\t\tconst result = await this.#client.stateService.getBalance(\n\t\t\t{\n\t\t\t\towner: options.owner,\n\t\t\t\tcoinType: (await this.mvr.resolveType({ type: coinType, signal: options.signal })).type,\n\t\t\t},\n\t\t\t{ abort: options.signal },\n\t\t);\n\n\t\treturn {\n\t\t\tbalance: {\n\t\t\t\tbalance: result.response.balance?.balance?.toString() ?? '0',\n\t\t\t\tcoinType: result.response.balance?.coinType ?? coinType,\n\t\t\t\tcoinBalance: result.response.balance?.coinBalance?.toString() ?? '0',\n\t\t\t\taddressBalance: result.response.balance?.addressBalance?.toString() ?? '0',\n\t\t\t},\n\t\t};\n\t}\n\n\tasync getCoinMetadata(\n\t\toptions: SuiClientTypes.GetCoinMetadataOptions,\n\t): Promise<SuiClientTypes.GetCoinMetadataResponse> {\n\t\tconst coinType = (\n\t\t\tawait this.mvr.resolveType({ type: options.coinType, signal: options.signal })\n\t\t).type;\n\n\t\tlet response;\n\t\ttry {\n\t\t\t({ response } = await this.#client.stateService.getCoinInfo(\n\t\t\t\t{\n\t\t\t\t\tcoinType,\n\t\t\t\t},\n\t\t\t\t{ abort: options.signal },\n\t\t\t));\n\t\t} catch (error) {\n\t\t\t// Don't swallow cancellation — only treat the coin as missing on real errors.\n\t\t\tif (options.signal?.aborted) {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t\treturn { coinMetadata: null };\n\t\t}\n\n\t\tif (!response.metadata) {\n\t\t\treturn { coinMetadata: null };\n\t\t}\n\n\t\treturn {\n\t\t\tcoinMetadata: {\n\t\t\t\tid: response.metadata.id ?? null,\n\t\t\t\tdecimals: response.metadata.decimals ?? 0,\n\t\t\t\tname: response.metadata.name ?? '',\n\t\t\t\tsymbol: response.metadata.symbol ?? '',\n\t\t\t\tdescription: response.metadata.description ?? '',\n\t\t\t\ticonUrl: response.metadata.iconUrl ?? null,\n\t\t\t},\n\t\t};\n\t}\n\n\tasync listBalances(\n\t\toptions: SuiClientTypes.ListBalancesOptions,\n\t): Promise<SuiClientTypes.ListBalancesResponse> {\n\t\tconst result = await this.#client.stateService.listBalances(\n\t\t\t{\n\t\t\t\towner: options.owner,\n\t\t\t\tpageToken: options.cursor ? fromBase64(options.cursor) : undefined,\n\t\t\t\tpageSize: options.limit,\n\t\t\t},\n\t\t\t{ abort: options.signal },\n\t\t);\n\n\t\treturn {\n\t\t\thasNextPage: !!result.response.nextPageToken,\n\t\t\tcursor: result.response.nextPageToken ? toBase64(result.response.nextPageToken) : null,\n\t\t\tbalances: result.response.balances.map((balance) => ({\n\t\t\t\tbalance: balance.balance?.toString() ?? '0',\n\t\t\t\tcoinType: balance.coinType!,\n\t\t\t\tcoinBalance: balance.coinBalance?.toString() ?? '0',\n\t\t\t\taddressBalance: balance.addressBalance?.toString() ?? '0',\n\t\t\t})),\n\t\t};\n\t}\n\tasync getTransaction<Include extends SuiClientTypes.TransactionInclude = {}>(\n\t\toptions: SuiClientTypes.GetTransactionOptions<Include>,\n\t): Promise<SuiClientTypes.TransactionResult<Include>> {\n\t\tconst { response } = await this.#client.ledgerService.getTransaction(\n\t\t\t{\n\t\t\t\tdigest: options.digest,\n\t\t\t\treadMask: {\n\t\t\t\t\tpaths: transactionReadMaskPaths(options.include),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{ abort: options.signal },\n\t\t);\n\n\t\tif (!response.transaction) {\n\t\t\tthrow new Error(`Transaction ${options.digest} not found`);\n\t\t}\n\n\t\treturn withProtoJson(\n\t\t\tparseGrpcTransactionResponse(response.transaction, { include: options.include }),\n\t\t\toptions.include,\n\t\t\t() => ExecutedTransaction.toJson(response.transaction!),\n\t\t);\n\t}\n\tasync executeTransaction<Include extends SuiClientTypes.TransactionInclude = {}>(\n\t\toptions: SuiClientTypes.ExecuteTransactionOptions<Include>,\n\t): Promise<SuiClientTypes.TransactionResult<Include>> {\n\t\tconst { response } = await this.#client.transactionExecutionService.executeTransaction(\n\t\t\t{\n\t\t\t\ttransaction: {\n\t\t\t\t\tbcs: {\n\t\t\t\t\t\tvalue: options.transaction,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tsignatures: options.signatures.map((signature) => ({\n\t\t\t\t\tbcs: {\n\t\t\t\t\t\tvalue: fromBase64(signature),\n\t\t\t\t\t},\n\t\t\t\t\tsignature: {\n\t\t\t\t\t\toneofKind: undefined,\n\t\t\t\t\t},\n\t\t\t\t})),\n\t\t\t\treadMask: {\n\t\t\t\t\tpaths: transactionReadMaskPaths(options.include),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{ abort: options.signal },\n\t\t);\n\n\t\treturn withProtoJson(\n\t\t\tparseGrpcTransactionResponse(response.transaction!, { include: options.include }),\n\t\t\toptions.include,\n\t\t\t() => ExecutedTransaction.toJson(response.transaction!),\n\t\t);\n\t}\n\tasync simulateTransaction<Include extends SuiClientTypes.SimulateTransactionInclude = {}>(\n\t\toptions: SuiClientTypes.SimulateTransactionOptions<Include> & { doGasSelection?: boolean },\n\t): Promise<SuiClientTypes.SimulateTransactionResult<Include>> {\n\t\t// The simulated transaction is nested one level deeper in the response\n\t\tconst paths = transactionReadMaskPaths(options.include, 'transaction.');\n\t\tif (options.include?.commandResults) {\n\t\t\tpaths.push('command_outputs');\n\t\t}\n\n\t\tif (!(options.transaction instanceof Uint8Array)) {\n\t\t\tawait options.transaction.prepareForSerialization({ client: this });\n\t\t}\n\n\t\t// A gas payment explicitly set to an empty list means gas is paid from the sender's\n\t\t// address balance, so the server needs to perform gas selection rather than simulating\n\t\t// with a mocked gas coin.\n\t\tconst doGasSelection =\n\t\t\toptions.doGasSelection ??\n\t\t\t(options.transaction instanceof Uint8Array\n\t\t\t\t? transactionBytesHaveEmptyGasPayment(options.transaction)\n\t\t\t\t: options.transaction.getData().gasData.payment?.length === 0);\n\n\t\tconst { response } = await this.#client.transactionExecutionService.simulateTransaction(\n\t\t\t{\n\t\t\t\ttransaction:\n\t\t\t\t\toptions.transaction instanceof Uint8Array\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tbcs: {\n\t\t\t\t\t\t\t\t\tvalue: options.transaction,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: transactionToGrpcTransaction(options.transaction),\n\t\t\t\treadMask: {\n\t\t\t\t\tpaths,\n\t\t\t\t},\n\t\t\t\tdoGasSelection,\n\t\t\t\tchecks:\n\t\t\t\t\toptions.checksEnabled === false\n\t\t\t\t\t\t? SimulateTransactionRequest_TransactionChecks.DISABLED\n\t\t\t\t\t\t: SimulateTransactionRequest_TransactionChecks.ENABLED,\n\t\t\t},\n\t\t\t{ abort: options.signal },\n\t\t);\n\n\t\treturn withProtoJson(\n\t\t\tparseGrpcSimulateTransactionResponse(response, { include: options.include }),\n\t\t\toptions.include,\n\t\t\t() => SimulateTransactionResponse.toJson(response),\n\t\t);\n\t}\n\tasync getReferenceGasPrice(\n\t\toptions?: SuiClientTypes.GetReferenceGasPriceOptions,\n\t): Promise<SuiClientTypes.GetReferenceGasPriceResponse> {\n\t\tconst response = await this.#client.ledgerService.getEpoch(\n\t\t\t{\n\t\t\t\treadMask: {\n\t\t\t\t\tpaths: ['reference_gas_price'],\n\t\t\t\t},\n\t\t\t},\n\t\t\t{ abort: options?.signal },\n\t\t);\n\n\t\treturn {\n\t\t\treferenceGasPrice: response.response.epoch?.referenceGasPrice?.toString() ?? '',\n\t\t};\n\t}\n\n\tasync getProtocolConfig(\n\t\toptions?: SuiClientTypes.GetProtocolConfigOptions,\n\t): Promise<SuiClientTypes.GetProtocolConfigResponse> {\n\t\tconst response = await this.#client.ledgerService.getEpoch(\n\t\t\t{\n\t\t\t\treadMask: { paths: ['protocol_config'] },\n\t\t\t},\n\t\t\t{ abort: options?.signal },\n\t\t);\n\n\t\tconst protocolConfig = response.response.epoch?.protocolConfig;\n\t\tif (!protocolConfig) {\n\t\t\tthrow new Error('Protocol config not found in response');\n\t\t}\n\n\t\tconst featureFlags: Record<string, boolean> = { ...protocolConfig.featureFlags };\n\t\tconst attributes: Record<string, string | null> = {};\n\t\tif (protocolConfig.attributes) {\n\t\t\tfor (const [key, value] of Object.entries(protocolConfig.attributes)) {\n\t\t\t\tattributes[key] = value ?? null;\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tprotocolConfig: {\n\t\t\t\tprotocolVersion: protocolConfig.protocolVersion?.toString() ?? (null as never),\n\t\t\t\tfeatureFlags,\n\t\t\t\tattributes,\n\t\t\t},\n\t\t};\n\t}\n\n\tasync getCurrentSystemState(\n\t\toptions?: SuiClientTypes.GetCurrentSystemStateOptions,\n\t): Promise<SuiClientTypes.GetCurrentSystemStateResponse> {\n\t\tconst response = await this.#client.ledgerService.getEpoch(\n\t\t\t{\n\t\t\t\treadMask: {\n\t\t\t\t\tpaths: [\n\t\t\t\t\t\t'system_state.version',\n\t\t\t\t\t\t'system_state.epoch',\n\t\t\t\t\t\t'system_state.protocol_version',\n\t\t\t\t\t\t'system_state.reference_gas_price',\n\t\t\t\t\t\t'system_state.epoch_start_timestamp_ms',\n\t\t\t\t\t\t'system_state.safe_mode',\n\t\t\t\t\t\t'system_state.safe_mode_storage_rewards',\n\t\t\t\t\t\t'system_state.safe_mode_computation_rewards',\n\t\t\t\t\t\t'system_state.safe_mode_storage_rebates',\n\t\t\t\t\t\t'system_state.safe_mode_non_refundable_storage_fee',\n\t\t\t\t\t\t'system_state.parameters',\n\t\t\t\t\t\t'system_state.storage_fund',\n\t\t\t\t\t\t'system_state.stake_subsidy',\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t},\n\t\t\t{ abort: options?.signal },\n\t\t);\n\n\t\tconst epoch = response.response.epoch;\n\t\tconst systemState = epoch?.systemState;\n\t\tif (!systemState) {\n\t\t\tthrow new Error('System state not found in response');\n\t\t}\n\n\t\tconst startMs = epoch?.start?.seconds\n\t\t\t? Number(epoch.start.seconds) * 1000 + Math.floor((epoch.start.nanos || 0) / 1_000_000)\n\t\t\t: systemState.epochStartTimestampMs\n\t\t\t\t? Number(systemState.epochStartTimestampMs)\n\t\t\t\t: (null as never);\n\n\t\treturn {\n\t\t\tsystemState: {\n\t\t\t\tsystemStateVersion: systemState.version?.toString() ?? (null as never),\n\t\t\t\tepoch: systemState.epoch?.toString() ?? (null as never),\n\t\t\t\tprotocolVersion: systemState.protocolVersion?.toString() ?? (null as never),\n\t\t\t\treferenceGasPrice: systemState.referenceGasPrice?.toString() ?? (null as never),\n\t\t\t\tepochStartTimestampMs: startMs.toString(),\n\t\t\t\tsafeMode: systemState.safeMode ?? false,\n\t\t\t\tsafeModeStorageRewards: systemState.safeModeStorageRewards?.toString() ?? (null as never),\n\t\t\t\tsafeModeComputationRewards:\n\t\t\t\t\tsystemState.safeModeComputationRewards?.toString() ?? (null as never),\n\t\t\t\tsafeModeStorageRebates: systemState.safeModeStorageRebates?.toString() ?? (null as never),\n\t\t\t\tsafeModeNonRefundableStorageFee:\n\t\t\t\t\tsystemState.safeModeNonRefundableStorageFee?.toString() ?? (null as never),\n\t\t\t\tparameters: {\n\t\t\t\t\tepochDurationMs: systemState.parameters?.epochDurationMs?.toString() ?? (null as never),\n\t\t\t\t\tstakeSubsidyStartEpoch:\n\t\t\t\t\t\tsystemState.parameters?.stakeSubsidyStartEpoch?.toString() ?? (null as never),\n\t\t\t\t\tmaxValidatorCount:\n\t\t\t\t\t\tsystemState.parameters?.maxValidatorCount?.toString() ?? (null as never),\n\t\t\t\t\tminValidatorJoiningStake:\n\t\t\t\t\t\tsystemState.parameters?.minValidatorJoiningStake?.toString() ?? (null as never),\n\t\t\t\t\tvalidatorLowStakeThreshold:\n\t\t\t\t\t\tsystemState.parameters?.validatorLowStakeThreshold?.toString() ?? (null as never),\n\t\t\t\t\tvalidatorLowStakeGracePeriod:\n\t\t\t\t\t\tsystemState.parameters?.validatorLowStakeGracePeriod?.toString() ?? (null as never),\n\t\t\t\t},\n\t\t\t\tstorageFund: {\n\t\t\t\t\ttotalObjectStorageRebates:\n\t\t\t\t\t\tsystemState.storageFund?.totalObjectStorageRebates?.toString() ?? (null as never),\n\t\t\t\t\tnonRefundableBalance:\n\t\t\t\t\t\tsystemState.storageFund?.nonRefundableBalance?.toString() ?? (null as never),\n\t\t\t\t},\n\t\t\t\tstakeSubsidy: {\n\t\t\t\t\tbalance: systemState.stakeSubsidy?.balance?.toString() ?? (null as never),\n\t\t\t\t\tdistributionCounter:\n\t\t\t\t\t\tsystemState.stakeSubsidy?.distributionCounter?.toString() ?? (null as never),\n\t\t\t\t\tcurrentDistributionAmount:\n\t\t\t\t\t\tsystemState.stakeSubsidy?.currentDistributionAmount?.toString() ?? (null as never),\n\t\t\t\t\tstakeSubsidyPeriodLength:\n\t\t\t\t\t\tsystemState.stakeSubsidy?.stakeSubsidyPeriodLength?.toString() ?? (null as never),\n\t\t\t\t\tstakeSubsidyDecreaseRate:\n\t\t\t\t\t\tsystemState.stakeSubsidy?.stakeSubsidyDecreaseRate ?? (null as never),\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n\n\tasync listDynamicFields(\n\t\toptions: SuiClientTypes.ListDynamicFieldsOptions,\n\t): Promise<SuiClientTypes.ListDynamicFieldsResponse> {\n\t\treturn this.#client.listDynamicFields(options);\n\t}\n\n\tasync listTransactions<Include extends SuiClientTypes.TransactionInclude = {}>(\n\t\toptions: SuiClientTypes.ListTransactionsOptions<Include>,\n\t): Promise<SuiClientTypes.ListTransactionsResponse<Include>> {\n\t\tconst paths = transactionReadMaskPaths(options.include);\n\n\t\tconst filter = options.filter\n\t\t\t? await resolveTransactionFilter(this.mvr, options.filter, options.signal)\n\t\t\t: undefined;\n\t\tconst pagination = resolvePagination(options);\n\t\tvalidateTransactionQuery(filter, pagination);\n\n\t\tconst call = this.#client.ledgerService.listTransactions(\n\t\t\t{\n\t\t\t\treadMask: { paths },\n\t\t\t\tfilter: filter && toGrpcTransactionFilter(filter),\n\t\t\t\t// Request one extra item as lookahead: the server reports its item limit as reached\n\t\t\t\t// without scanning past it, so an exact-limit final page is otherwise\n\t\t\t\t// indistinguishable from one with more results\n\t\t\t\toptions: toGrpcQueryOptions(pagination, pagination.limit + 1),\n\t\t\t},\n\t\t\t{ abort: options.signal },\n\t\t);\n\n\t\tconst transactions: SuiClientTypes.TransactionResult<Include>[] = [];\n\t\tlet startCursor: string | null = null;\n\t\tlet endCursor: string | null = null;\n\t\tlet frontier: string | null = null;\n\t\tlet end: QueryEnd | undefined;\n\t\tlet sawLookaheadItem = false;\n\n\t\tfor await (const frame of call.responses) {\n\t\t\tif (frame.watermark?.cursor) {\n\t\t\t\tfrontier = toBase64(frame.watermark.cursor);\n\t\t\t}\n\t\t\tif (frame.transaction) {\n\t\t\t\tif (transactions.length >= pagination.limit) {\n\t\t\t\t\tsawLookaheadItem = true;\n\t\t\t\t} else {\n\t\t\t\t\tstartCursor ??= frontier;\n\t\t\t\t\tendCursor = frontier;\n\t\t\t\t\ttransactions.push(\n\t\t\t\t\t\tparseGrpcTransactionResponse(frame.transaction, { include: options.include }),\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (frame.end) {\n\t\t\t\tend = frame.end;\n\t\t\t}\n\t\t}\n\n\t\t// ITEM_LIMIT without the lookahead item means the server clamped the requested limit to\n\t\t// its own maximum, so the filled page is still evidence of a possible next page\n\t\tconst hasNextPage =\n\t\t\tsawLookaheadItem ||\n\t\t\tend?.reason === QueryEndReason.SCAN_LIMIT ||\n\t\t\tend?.reason === QueryEndReason.ITEM_LIMIT;\n\n\t\treturn {\n\t\t\ttransactions,\n\t\t\thasNextPage,\n\t\t\tstartCursor,\n\t\t\t// Scans that stopped early without filling the page continue from the scan frontier\n\t\t\t// (so already-scanned positions are not revisited), full pages continue after the last\n\t\t\t// returned item, and terminal pages have no positions to continue from\n\t\t\tendCursor: sawLookaheadItem ? endCursor : hasNextPage ? (frontier ?? endCursor) : endCursor,\n\t\t};\n\t}\n\n\tasync listEvents(\n\t\toptions: SuiClientTypes.ListEventsOptions,\n\t): Promise<SuiClientTypes.ListEventsResponse> {\n\t\tconst pagination = resolvePagination(options);\n\t\tconst call = this.#client.ledgerService.listEvents(\n\t\t\t{\n\t\t\t\treadMask: {\n\t\t\t\t\tpaths: [\n\t\t\t\t\t\t'package_id',\n\t\t\t\t\t\t'module',\n\t\t\t\t\t\t'sender',\n\t\t\t\t\t\t'event_type',\n\t\t\t\t\t\t'contents',\n\t\t\t\t\t\t'json',\n\t\t\t\t\t\t'checkpoint',\n\t\t\t\t\t\t'transaction_digest',\n\t\t\t\t\t\t'event_index',\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t\tfilter: options.filter\n\t\t\t\t\t? toGrpcEventFilter(await resolveEventFilter(this.mvr, options.filter, options.signal))\n\t\t\t\t\t: undefined,\n\t\t\t\t// Request one extra item as lookahead: the server reports its item limit as reached\n\t\t\t\t// without scanning past it, so an exact-limit final page is otherwise\n\t\t\t\t// indistinguishable from one with more results\n\t\t\t\toptions: toGrpcQueryOptions(pagination, pagination.limit + 1),\n\t\t\t},\n\t\t\t{ abort: options.signal },\n\t\t);\n\n\t\tconst events: SuiClientTypes.EventEntry[] = [];\n\t\tlet startCursor: string | null = null;\n\t\tlet endCursor: string | null = null;\n\t\tlet frontier: string | null = null;\n\t\tlet end: QueryEnd | undefined;\n\t\tlet sawLookaheadItem = false;\n\n\t\tfor await (const frame of call.responses) {\n\t\t\tif (frame.watermark?.cursor) {\n\t\t\t\tfrontier = toBase64(frame.watermark.cursor);\n\t\t\t}\n\t\t\tif (frame.event) {\n\t\t\t\tif (events.length >= pagination.limit) {\n\t\t\t\t\tsawLookaheadItem = true;\n\t\t\t\t} else {\n\t\t\t\t\tstartCursor ??= frontier;\n\t\t\t\t\tendCursor = frontier;\n\t\t\t\t\tconst event = frame.event;\n\t\t\t\t\tevents.push({\n\t\t\t\t\t\tpackageId: normalizeSuiAddress(event.packageId!),\n\t\t\t\t\t\tmodule: event.module!,\n\t\t\t\t\t\tsender: normalizeSuiAddress(event.sender!),\n\t\t\t\t\t\teventType: normalizeStructTag(event.eventType!),\n\t\t\t\t\t\tbcs: event.contents?.value ?? new Uint8Array(),\n\t\t\t\t\t\tjson: event.json ? (Value.toJson(event.json) as Record<string, unknown>) : null,\n\t\t\t\t\t\tcheckpoint: event.checkpoint?.toString() ?? null,\n\t\t\t\t\t\ttransactionDigest: event.transactionDigest!,\n\t\t\t\t\t\teventIndex: event.eventIndex!,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (frame.end) {\n\t\t\t\tend = frame.end;\n\t\t\t}\n\t\t}\n\n\t\t// ITEM_LIMIT without the lookahead item means the server clamped the requested limit to\n\t\t// its own maximum, so the filled page is still evidence of a possible next page\n\t\tconst hasNextPage =\n\t\t\tsawLookaheadItem ||\n\t\t\tend?.reason === QueryEndReason.SCAN_LIMIT ||\n\t\t\tend?.reason === QueryEndReason.ITEM_LIMIT;\n\n\t\treturn {\n\t\t\tevents,\n\t\t\thasNextPage,\n\t\t\tstartCursor,\n\t\t\t// Scans that stopped early without filling the page continue from the scan frontier\n\t\t\t// (so already-scanned positions are not revisited), full pages continue after the last\n\t\t\t// returned item, and terminal pages have no positions to continue from\n\t\t\tendCursor: sawLookaheadItem ? endCursor : hasNextPage ? (frontier ?? endCursor) : endCursor,\n\t\t};\n\t}\n\n\tasync verifyZkLoginSignature(\n\t\toptions: SuiClientTypes.VerifyZkLoginSignatureOptions,\n\t): Promise<SuiClientTypes.ZkLoginVerifyResponse> {\n\t\tconst messageBytes = fromBase64(options.bytes);\n\n\t\t// For PersonalMessage, the server expects BCS-encoded vector<u8>\n\t\t// For TransactionData, the server expects the raw BCS-encoded TransactionData as-is\n\t\tconst messageValue =\n\t\t\toptions.intentScope === 'PersonalMessage'\n\t\t\t\t? bcs.byteVector().serialize(messageBytes).toBytes()\n\t\t\t\t: messageBytes;\n\n\t\tconst { response } = await this.#client.signatureVerificationService.verifySignature(\n\t\t\t{\n\t\t\t\tmessage: {\n\t\t\t\t\tname: options.intentScope,\n\t\t\t\t\tvalue: messageValue,\n\t\t\t\t},\n\t\t\t\tsignature: {\n\t\t\t\t\tbcs: {\n\t\t\t\t\t\tvalue: fromBase64(options.signature),\n\t\t\t\t\t},\n\t\t\t\t\tsignature: {\n\t\t\t\t\t\toneofKind: undefined,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\taddress: options.address,\n\t\t\t\tjwks: [],\n\t\t\t},\n\t\t\t{ abort: options.signal },\n\t\t);\n\n\t\treturn {\n\t\t\tsuccess: response.isValid ?? false,\n\t\t\terrors: response.reason ? [response.reason] : [],\n\t\t};\n\t}\n\n\tasync defaultNameServiceName(\n\t\toptions: SuiClientTypes.DefaultNameServiceNameOptions,\n\t): Promise<SuiClientTypes.DefaultNameServiceNameResponse> {\n\t\tconst name =\n\t\t\t(\n\t\t\t\tawait this.#client.nameService.reverseLookupName(\n\t\t\t\t\t{\n\t\t\t\t\t\taddress: options.address,\n\t\t\t\t\t},\n\t\t\t\t\t{ abort: options.signal },\n\t\t\t\t)\n\t\t\t).response.record?.name ?? null;\n\t\treturn {\n\t\t\tdata: {\n\t\t\t\tname,\n\t\t\t},\n\t\t};\n\t}\n\n\tasync resolveNameServiceAddress(\n\t\toptions: SuiClientTypes.ResolveNameServiceAddressOptions,\n\t): Promise<SuiClientTypes.ResolveNameServiceAddressResponse> {\n\t\ttry {\n\t\t\tconst { response } = await this.#client.nameService.lookupName(\n\t\t\t\t{ name: options.name },\n\t\t\t\t{ abort: options.signal },\n\t\t\t);\n\n\t\t\treturn { address: response.record?.targetAddress ?? null };\n\t\t} catch (error) {\n\t\t\tif (isNameServiceResolutionMiss(error)) {\n\t\t\t\treturn { address: null };\n\t\t\t}\n\n\t\t\tthrow error;\n\t\t}\n\t}\n\n\tasync getMoveFunction(\n\t\toptions: SuiClientTypes.GetMoveFunctionOptions,\n\t): Promise<SuiClientTypes.GetMoveFunctionResponse> {\n\t\tconst resolvedPackageId = (\n\t\t\tawait this.mvr.resolvePackage({ package: options.packageId, signal: options.signal })\n\t\t).package;\n\t\tconst { response } = await this.#client.movePackageService.getFunction(\n\t\t\t{\n\t\t\t\tpackageId: resolvedPackageId,\n\t\t\t\tmoduleName: options.moduleName,\n\t\t\t\tname: options.name,\n\t\t\t},\n\t\t\t{ abort: options.signal },\n\t\t);\n\n\t\tlet visibility: 'public' | 'private' | 'friend' | 'unknown' = 'unknown';\n\n\t\tswitch (response.function?.visibility) {\n\t\t\tcase FunctionDescriptor_Visibility.PUBLIC:\n\t\t\t\tvisibility = 'public';\n\t\t\t\tbreak;\n\t\t\tcase FunctionDescriptor_Visibility.PRIVATE:\n\t\t\t\tvisibility = 'private';\n\t\t\t\tbreak;\n\t\t\tcase FunctionDescriptor_Visibility.FRIEND:\n\t\t\t\tvisibility = 'friend';\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn {\n\t\t\tfunction: {\n\t\t\t\tpackageId: normalizeSuiAddress(resolvedPackageId),\n\t\t\t\tmoduleName: options.moduleName,\n\t\t\t\tname: response.function?.name!,\n\t\t\t\tvisibility,\n\t\t\t\tisEntry: response.function?.isEntry ?? false,\n\t\t\t\ttypeParameters:\n\t\t\t\t\tresponse.function?.typeParameters?.map(({ constraints }) => ({\n\t\t\t\t\t\tisPhantom: false,\n\t\t\t\t\t\tconstraints:\n\t\t\t\t\t\t\tconstraints.map((constraint) => {\n\t\t\t\t\t\t\t\tswitch (constraint) {\n\t\t\t\t\t\t\t\t\tcase Ability.COPY:\n\t\t\t\t\t\t\t\t\t\treturn 'copy';\n\t\t\t\t\t\t\t\t\tcase Ability.DROP:\n\t\t\t\t\t\t\t\t\t\treturn 'drop';\n\t\t\t\t\t\t\t\t\tcase Ability.STORE:\n\t\t\t\t\t\t\t\t\t\treturn 'store';\n\t\t\t\t\t\t\t\t\tcase Ability.KEY:\n\t\t\t\t\t\t\t\t\t\treturn 'key';\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\treturn 'unknown';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}) ?? [],\n\t\t\t\t\t})) ?? [],\n\t\t\t\tparameters:\n\t\t\t\t\tresponse.function?.parameters?.map((param) => parseNormalizedSuiMoveType(param)) ?? [],\n\t\t\t\treturns: response.function?.returns?.map((ret) => parseNormalizedSuiMoveType(ret)) ?? [],\n\t\t\t},\n\t\t};\n\t}\n\n\tasync getChainIdentifier(\n\t\toptions?: SuiClientTypes.GetChainIdentifierOptions,\n\t): Promise<SuiClientTypes.GetChainIdentifierResponse> {\n\t\t// The result is cached and shared across callers, so the underlying request must\n\t\t// not carry any single caller's signal. Isolate cancellation per-caller instead.\n\t\treturn raceSignal(\n\t\t\tPromise.resolve(\n\t\t\t\tthis.cache.read(['chainIdentifier'], async () => {\n\t\t\t\t\tconst { response } = await this.#client.ledgerService.getServiceInfo({});\n\t\t\t\t\tif (!response.chainId) {\n\t\t\t\t\t\tthrow new Error('Chain identifier not found in service info');\n\t\t\t\t\t}\n\t\t\t\t\treturn {\n\t\t\t\t\t\tchainIdentifier: response.chainId,\n\t\t\t\t\t};\n\t\t\t\t}),\n\t\t\t),\n\t\t\toptions?.signal,\n\t\t);\n\t}\n\n\tresolveTransactionPlugin() {\n\t\tconst client = this.#client;\n\t\treturn async function resolveTransactionData(\n\t\t\ttransactionData: TransactionDataBuilder,\n\t\t\toptions: BuildTransactionOptions,\n\t\t\tnext: () => Promise<void>,\n\t\t) {\n\t\t\tconst snapshot = transactionData.snapshot();\n\t\t\t// If sender is not set, use a dummy address for resolution purposes\n\t\t\t// The resolved transaction will not include the sender if it wasn't set originally\n\t\t\tif (!snapshot.sender) {\n\t\t\t\tsnapshot.sender = '0x0000000000000000000000000000000000000000000000000000000000000000';\n\t\t\t}\n\t\t\tconst grpcTransaction = transactionDataToGrpcTransaction(snapshot);\n\t\t\tconst doGasSelection =\n\t\t\t\t!options.onlyTransactionKind &&\n\t\t\t\t(snapshot.gasData.budget == null || snapshot.gasData.payment == null);\n\n\t\t\tlet response;\n\t\t\ttry {\n\t\t\t\tconst result = await client.transactionExecutionService.simulateTransaction({\n\t\t\t\t\ttransaction: grpcTransaction,\n\t\t\t\t\tdoGasSelection,\n\t\t\t\t\t// Kind-only txns are never executed directly and do not have sender, so skip validation checks.\n\t\t\t\t\tchecks: options.onlyTransactionKind\n\t\t\t\t\t\t? SimulateTransactionRequest_TransactionChecks.DISABLED\n\t\t\t\t\t\t: SimulateTransactionRequest_TransactionChecks.ENABLED,\n\t\t\t\t\treadMask: {\n\t\t\t\t\t\tpaths: [\n\t\t\t\t\t\t\t'transaction.transaction.sender',\n\t\t\t\t\t\t\t'transaction.transaction.gas_payment',\n\t\t\t\t\t\t\t'transaction.transaction.expiration',\n\t\t\t\t\t\t\t'transaction.transaction.kind',\n\t\t\t\t\t\t\t'transaction.effects.status',\n\t\t\t\t\t\t\t'transaction.effects.epoch',\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t\tresponse = result.response;\n\t\t\t} catch (error) {\n\t\t\t\t// https://github.com/timostamm/protobuf-ts/pull/739\n\t\t\t\tif (error instanceof Error && error.message) {\n\t\t\t\t\tthrow new SimulationError(decodeURIComponent(error.message), { cause: error });\n\t\t\t\t}\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t!options.onlyTransactionKind &&\n\t\t\t\tresponse.transaction?.effects?.status &&\n\t\t\t\t!response.transaction.effects.status.success\n\t\t\t) {\n\t\t\t\tconst executionError = response.transaction.effects.status.error\n\t\t\t\t\t? parseGrpcExecutionError(response.transaction.effects.status.error)\n\t\t\t\t\t: undefined;\n\t\t\t\tconst errorMessage = executionError?.message ?? 'Transaction failed';\n\t\t\t\tthrow new SimulationError(`Transaction resolution failed: ${errorMessage}`, {\n\t\t\t\t\texecutionError,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (!response.transaction?.transaction) {\n\t\t\t\tthrow new Error('simulateTransaction did not return resolved transaction data');\n\t\t\t}\n\n\t\t\tapplyGrpcResolvedTransaction(transactionData, response.transaction.transaction, options);\n\t\t\tawait setAddressBalanceTransactionExpirationFromSimulatedEpoch({\n\t\t\t\ttransactionData,\n\t\t\t\tclient,\n\t\t\t\tepoch: response.transaction.effects?.epoch,\n\t\t\t\toriginalTransactionData: snapshot,\n\t\t\t\tisTransactionKindOnly: !!options.onlyTransactionKind,\n\t\t\t\tdoGasSelection,\n\t\t\t});\n\n\t\t\treturn await next();\n\t\t};\n\t}\n}\n\nfunction toGrpcQueryOptions(pagination: ResolvedPagination, limit: number): QueryOptions {\n\treturn {\n\t\tlimit,\n\t\tordering: pagination.descending ? Ordering.DESCENDING : Ordering.ASCENDING,\n\t\tafter: pagination.after ? fromBase64(pagination.after) : undefined,\n\t\tbefore: pagination.before ? fromBase64(pagination.before) : undefined,\n\t};\n}\n\nfunction transactionReadMaskPaths(\n\tinclude: SuiClientTypes.TransactionInclude | undefined,\n\tprefix = '',\n): string[] {\n\tconst paths = ['digest', 'transaction.digest', 'signatures', 'effects.status'];\n\n\tif (include?.transaction) {\n\t\tpaths.push(\n\t\t\t'transaction.sender',\n\t\t\t'transaction.gas_payment',\n\t\t\t'transaction.expiration',\n\t\t\t'transaction.kind',\n\t\t);\n\t}\n\tif (include?.bcs) {\n\t\tpaths.push('transaction.bcs');\n\t}\n\tif (include?.balanceChanges) {\n\t\tpaths.push('balance_changes');\n\t}\n\tif (include?.effects) {\n\t\tpaths.push('effects');\n\t}\n\tif (include?.events) {\n\t\tpaths.push('events');\n\t}\n\tif (include?.objectTypes) {\n\t\t// Use effects.changed_objects to match JSON-RPC behavior (which uses objectChanges)\n\t\tpaths.push('effects.changed_objects.object_type');\n\t\tpaths.push('effects.changed_objects.object_id');\n\t}\n\n\treturn prefix ? paths.map((path) => prefix + path) : paths;\n}\n\nfunction withProtoJson<Result>(\n\tresult: Result,\n\tinclude: ({ protoJson?: boolean } & object) | undefined,\n\tgetProtoJson: () => unknown,\n): Result {\n\tif (!include?.protoJson) {\n\t\treturn result;\n\t}\n\n\treturn {\n\t\t...result,\n\t\tprotoJson: getProtoJson(),\n\t};\n}\n\nfunction mapDisplayProto(\n\tinclude: boolean | undefined,\n\tdisplay: { output?: Value; errors?: Value } | undefined,\n): SuiClientTypes.Display | null | undefined {\n\tif (!include) return undefined;\n\tif (display === undefined) return null;\n\treturn {\n\t\toutput:\n\t\t\tdisplay.output !== undefined\n\t\t\t\t? (Value.toJson(display.output) as Record<string, unknown> | null)\n\t\t\t\t: null,\n\t\terrors:\n\t\t\tdisplay.errors !== undefined\n\t\t\t\t? (Value.toJson(display.errors) as Record<string, string> | null)\n\t\t\t\t: null,\n\t};\n}\n\nfunction mapOwner(owner: Owner | null | undefined): SuiClientTypes.ObjectOwner | null {\n\tif (!owner) {\n\t\treturn null;\n\t}\n\tif (owner.kind === Owner_OwnerKind.IMMUTABLE) {\n\t\treturn {\n\t\t\t$kind: 'Immutable',\n\t\t\tImmutable: true,\n\t\t};\n\t}\n\tif (owner.kind === Owner_OwnerKind.ADDRESS) {\n\t\treturn {\n\t\t\tAddressOwner: owner.address!,\n\t\t\t$kind: 'AddressOwner',\n\t\t};\n\t}\n\tif (owner.kind === Owner_OwnerKind.OBJECT) {\n\t\treturn {\n\t\t\t$kind: 'ObjectOwner',\n\t\t\tObjectOwner: owner.address!,\n\t\t};\n\t}\n\n\tif (owner.kind === Owner_OwnerKind.SHARED) {\n\t\treturn {\n\t\t\t$kind: 'Shared',\n\t\t\tShared: {\n\t\t\t\tinitialSharedVersion: owner.version?.toString()!,\n\t\t\t},\n\t\t};\n\t}\n\n\tif (owner.kind === Owner_OwnerKind.CONSENSUS_ADDRESS) {\n\t\treturn {\n\t\t\t$kind: 'ConsensusAddressOwner',\n\t\t\tConsensusAddressOwner: {\n\t\t\t\tstartVersion: owner.version?.toString()!,\n\t\t\t\towner: owner.address!,\n\t\t\t},\n\t\t};\n\t}\n\n\tthrow new Error(\n\t\t`Unknown owner kind ${JSON.stringify(owner, (_k, v) => (typeof v === 'bigint' ? v.toString() : v))}`,\n\t);\n}\n\nfunction parseGrpcExecutionError(error: GrpcExecutionError): SuiClientTypes.ExecutionError {\n\tconst message = error.description ?? 'Unknown error';\n\tconst command = error.command != null ? Number(error.command) : undefined;\n\tconst details = error.errorDetails;\n\n\tswitch (details?.oneofKind) {\n\t\tcase 'abort': {\n\t\t\tconst abort = details.abort;\n\t\t\tconst cleverError = abort.cleverError;\n\t\t\treturn {\n\t\t\t\t$kind: 'MoveAbort',\n\t\t\t\tmessage: formatMoveAbortMessage({\n\t\t\t\t\tcommand,\n\t\t\t\t\tlocation: abort.location,\n\t\t\t\t\tabortCode: String(abort.abortCode ?? 0n),\n\t\t\t\t\tcleverError: cleverError\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tlineNumber:\n\t\t\t\t\t\t\t\t\tcleverError.lineNumber != null ? Number(cleverError.lineNumber) : undefined,\n\t\t\t\t\t\t\t\tconstantName: cleverError.constantName,\n\t\t\t\t\t\t\t\tvalue:\n\t\t\t\t\t\t\t\t\tcleverError.value?.oneofKind === 'rendered'\n\t\t\t\t\t\t\t\t\t\t? cleverError.value.rendered\n\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: undefined,\n\t\t\t\t}),\n\t\t\t\tcommand,\n\t\t\t\tMoveAbort: parseMoveAbort(abort),\n\t\t\t};\n\t\t}\n\n\t\tcase 'sizeError':\n\t\t\treturn {\n\t\t\t\t$kind: 'SizeError',\n\t\t\t\tmessage,\n\t\t\t\tcommand,\n\t\t\t\tSizeError: {\n\t\t\t\t\tname: mapErrorName(error.kind),\n\t\t\t\t\tsize: Number(details.sizeError.size ?? 0n),\n\t\t\t\t\tmaxSize: Number(details.sizeError.maxSize ?? 0n),\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'commandArgumentError':\n\t\t\treturn {\n\t\t\t\t$kind: 'CommandArgumentError',\n\t\t\t\tmessage,\n\t\t\t\tcommand,\n\t\t\t\tCommandArgumentError: {\n\t\t\t\t\targument: details.commandArgumentError.argument ?? 0,\n\t\t\t\t\tname: mapErrorName(details.commandArgumentError.kind),\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'typeArgumentError':\n\t\t\treturn {\n\t\t\t\t$kind: 'TypeArgumentError',\n\t\t\t\tmessage,\n\t\t\t\tcommand,\n\t\t\t\tTypeArgumentError: {\n\t\t\t\t\ttypeArgument: details.typeArgumentError.typeArgument ?? 0,\n\t\t\t\t\tname: mapErrorName(details.typeArgumentError.kind),\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'packageUpgradeError':\n\t\t\treturn {\n\t\t\t\t$kind: 'PackageUpgradeError',\n\t\t\t\tmessage,\n\t\t\t\tcommand,\n\t\t\t\tPackageUpgradeError: {\n\t\t\t\t\tname: mapErrorName(details.packageUpgradeError.kind),\n\t\t\t\t\tpackageId: details.packageUpgradeError.packageId,\n\t\t\t\t\tdigest: details.packageUpgradeError.digest,\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'indexError':\n\t\t\treturn {\n\t\t\t\t$kind: 'IndexError',\n\t\t\t\tmessage,\n\t\t\t\tcommand,\n\t\t\t\tIndexError: {\n\t\t\t\t\tindex: details.indexError.index,\n\t\t\t\t\tsubresult: details.indexError.subresult,\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'coinDenyListError':\n\t\t\treturn {\n\t\t\t\t$kind: 'CoinDenyListError',\n\t\t\t\tmessage,\n\t\t\t\tcommand,\n\t\t\t\tCoinDenyListError: {\n\t\t\t\t\tname: mapErrorName(error.kind),\n\t\t\t\t\tcoinType: details.coinDenyListError.coinType!,\n\t\t\t\t\taddress: details.coinDenyListError.address,\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'congestedObjects':\n\t\t\treturn {\n\t\t\t\t$kind: 'CongestedObjects',\n\t\t\t\tmessage,\n\t\t\t\tcommand,\n\t\t\t\tCongestedObjects: {\n\t\t\t\t\tname: mapErrorName(error.kind),\n\t\t\t\t\tobjects: details.congestedObjects.objects,\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'objectId':\n\t\t\treturn {\n\t\t\t\t$kind: 'ObjectIdError',\n\t\t\t\tmessage,\n\t\t\t\tcommand,\n\t\t\t\tObjectIdError: {\n\t\t\t\t\tname: mapErrorName(error.kind),\n\t\t\t\t\tobjectId: details.objectId,\n\t\t\t\t},\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn {\n\t\t\t\t$kind: 'Unknown',\n\t\t\t\tmessage,\n\t\t\t\tcommand,\n\t\t\t\tUnknown: null,\n\t\t\t};\n\t}\n}\n\nfunction parseMoveAbort(abort: GrpcMoveAbort): SuiClientTypes.MoveAbort {\n\treturn {\n\t\tabortCode: String(abort.abortCode ?? 0n),\n\t\tlocation: { ...abort.location },\n\t\tcleverError: abort.cleverError\n\t\t\t? {\n\t\t\t\t\terrorCode:\n\t\t\t\t\t\tabort.cleverError.errorCode != null ? Number(abort.cleverError.errorCode) : undefined,\n\t\t\t\t\tlineNumber:\n\t\t\t\t\t\tabort.cleverError.lineNumber != null ? Number(abort.cleverError.lineNumber) : undefined,\n\t\t\t\t\tconstantName: abort.cleverError.constantName,\n\t\t\t\t\tconstantType: abort.cleverError.constantType,\n\t\t\t\t\tvalue:\n\t\t\t\t\t\tabort.cleverError.value?.oneofKind === 'rendered'\n\t\t\t\t\t\t\t? abort.cleverError.value.rendered\n\t\t\t\t\t\t\t: abort.cleverError.value?.oneofKind === 'raw'\n\t\t\t\t\t\t\t\t? toBase64(abort.cleverError.value.raw)\n\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t}\n\t\t\t: undefined,\n\t};\n}\n\nfunction mapErrorName(\n\tkind:\n\t\t| ExecutionError_ExecutionErrorKind\n\t\t| CommandArgumentError_CommandArgumentErrorKind\n\t\t| TypeArgumentError_TypeArgumentErrorKind\n\t\t| PackageUpgradeError_PackageUpgradeErrorKind\n\t\t| undefined,\n): string {\n\tif (kind == null) {\n\t\treturn 'Unknown';\n\t}\n\tconst name = CommandArgumentError_CommandArgumentErrorKind[kind];\n\tif (!name || name.endsWith('_UNKNOWN')) {\n\t\treturn 'Unknown';\n\t}\n\treturn name\n\t\t.split('_')\n\t\t.map((word) => word.charAt(0) + word.slice(1).toLowerCase())\n\t\t.join('');\n}\n\nfunction mapIdOperation(\n\toperation: ChangedObject_IdOperation | undefined,\n): null | 'Created' | 'Deleted' | 'Unknown' | 'None' {\n\tif (operation == null) {\n\t\treturn null;\n\t}\n\tswitch (operation) {\n\t\tcase ChangedObject_IdOperation.CREATED:\n\t\t\treturn 'Created';\n\t\tcase ChangedObject_IdOperation.DELETED:\n\t\t\treturn 'Deleted';\n\t\tcase ChangedObject_IdOperation.NONE:\n\t\tcase ChangedObject_IdOperation.ID_OPERATION_UNKNOWN:\n\t\t\treturn 'None';\n\t\tdefault:\n\t\t\toperation satisfies never;\n\t\t\treturn 'Unknown';\n\t}\n}\n\nfunction mapInputObjectState(\n\tstate: ChangedObject_InputObjectState | undefined,\n): null | 'Exists' | 'DoesNotExist' | 'Unknown' {\n\tif (state == null) {\n\t\treturn null;\n\t}\n\tswitch (state) {\n\t\tcase ChangedObject_InputObjectState.EXISTS:\n\t\t\treturn 'Exists';\n\t\tcase ChangedObject_InputObjectState.DOES_NOT_EXIST:\n\t\t\treturn 'DoesNotExist';\n\t\tcase ChangedObject_InputObjectState.UNKNOWN:\n\t\t\treturn 'Unknown';\n\t\tdefault:\n\t\t\tstate satisfies never;\n\t\t\treturn 'Unknown';\n\t}\n}\n\nfunction mapOutputObjectState(\n\tstate: ChangedObject_OutputObjectState | undefined,\n): null | 'ObjectWrite' | 'PackageWrite' | 'DoesNotExist' | 'AccumulatorWriteV1' | 'Unknown' {\n\tif (state == null) {\n\t\treturn null;\n\t}\n\tswitch (state) {\n\t\tcase ChangedObject_OutputObjectState.OBJECT_WRITE:\n\t\t\treturn 'ObjectWrite';\n\t\tcase ChangedObject_OutputObjectState.PACKAGE_WRITE:\n\t\t\treturn 'PackageWrite';\n\t\tcase ChangedObject_OutputObjectState.DOES_NOT_EXIST:\n\t\t\treturn 'DoesNotExist';\n\t\tcase ChangedObject_OutputObjectState.ACCUMULATOR_WRITE:\n\t\t\treturn 'AccumulatorWriteV1';\n\t\tcase ChangedObject_OutputObjectState.UNKNOWN:\n\t\t\treturn 'Unknown';\n\t\tdefault:\n\t\t\tstate satisfies never;\n\t\t\treturn 'Unknown';\n\t}\n}\n\nfunction mapUnchangedConsensusObjectKind(\n\tkind: UnchangedConsensusObject_UnchangedConsensusObjectKind | undefined,\n): null | SuiClientTypes.UnchangedConsensusObject['kind'] {\n\tif (kind == null) {\n\t\treturn null;\n\t}\n\tswitch (kind) {\n\t\tcase UnchangedConsensusObject_UnchangedConsensusObjectKind.UNCHANGED_CONSENSUS_OBJECT_KIND_UNKNOWN:\n\t\t\treturn 'Unknown';\n\t\tcase UnchangedConsensusObject_UnchangedConsensusObjectKind.READ_ONLY_ROOT:\n\t\t\treturn 'ReadOnlyRoot';\n\t\tcase UnchangedConsensusObject_UnchangedConsensusObjectKind.MUTATE_CONSENSUS_STREAM_ENDED:\n\t\t\treturn 'MutateConsensusStreamEnded';\n\t\tcase UnchangedConsensusObject_UnchangedConsensusObjectKind.READ_CONSENSUS_STREAM_ENDED:\n\t\t\treturn 'ReadConsensusStreamEnded';\n\t\tcase UnchangedConsensusObject_UnchangedConsensusObjectKind.CANCELED:\n\t\t\treturn 'Cancelled';\n\t\tcase UnchangedConsensusObject_UnchangedConsensusObjectKind.PER_EPOCH_CONFIG:\n\t\t\treturn 'PerEpochConfig';\n\t\tdefault:\n\t\t\tkind satisfies never;\n\t\t\treturn 'Unknown';\n\t}\n}\n\nexport function parseTransactionEffects({\n\teffects,\n}: {\n\teffects: TransactionEffects | undefined;\n}): SuiClientTypes.TransactionEffects | null {\n\tif (!effects) {\n\t\treturn null;\n\t}\n\n\tconst changedObjects = effects.changedObjects.map((change): SuiClientTypes.ChangedObject => {\n\t\treturn {\n\t\t\tobjectId: change.objectId!,\n\t\t\tinputState: mapInputObjectState(change.inputState)!,\n\t\t\tinputVersion: change.inputVersion?.toString() ?? null,\n\t\t\tinputDigest: change.inputDigest ?? null,\n\t\t\tinputOwner: mapOwner(change.inputOwner),\n\t\t\toutputState: mapOutputObjectState(change.outputState)!,\n\t\t\toutputVersion: change.outputVersion?.toString() ?? null,\n\t\t\toutputDigest: change.outputDigest ?? null,\n\t\t\toutputOwner: mapOwner(change.outputOwner),\n\t\t\tidOperation: mapIdOperation(change.idOperation)!,\n\t\t};\n\t});\n\n\treturn {\n\t\tbcs: effects.bcs?.value!,\n\n\t\tversion: 2,\n\t\tstatus: effects.status?.success\n\t\t\t? {\n\t\t\t\t\tsuccess: true,\n\t\t\t\t\terror: null,\n\t\t\t\t}\n\t\t\t: {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\terror: parseGrpcExecutionError(effects.status!.error!),\n\t\t\t\t},\n\t\tgasUsed: {\n\t\t\tcomputationCost: effects.gasUsed?.computationCost?.toString()!,\n\t\t\tstorageCost: effects.gasUsed?.storageCost?.toString()!,\n\t\t\tstorageRebate: effects.gasUsed?.storageRebate?.toString()!,\n\t\t\tnonRefundableStorageFee: effects.gasUsed?.nonRefundableStorageFee?.toString()!,\n\t\t},\n\t\ttransactionDigest: effects.transactionDigest!,\n\t\t// gas_object is unset when the transaction has no gas object (system\n\t\t// transactions, or gas paid from an address balance)\n\t\tgasObject: effects.gasObject\n\t\t\t? {\n\t\t\t\t\tobjectId: effects.gasObject.objectId!,\n\t\t\t\t\tinputState: mapInputObjectState(effects.gasObject.inputState)!,\n\t\t\t\t\tinputVersion: effects.gasObject.inputVersion?.toString() ?? null,\n\t\t\t\t\tinputDigest: effects.gasObject.inputDigest ?? null,\n\t\t\t\t\tinputOwner: mapOwner(effects.gasObject.inputOwner),\n\t\t\t\t\toutputState: mapOutputObjectState(effects.gasObject.outputState)!,\n\t\t\t\t\toutputVersion: effects.gasObject.outputVersion?.toString() ?? null,\n\t\t\t\t\toutputDigest: effects.gasObject.outputDigest ?? null,\n\t\t\t\t\toutputOwner: mapOwner(effects.gasObject.outputOwner),\n\t\t\t\t\tidOperation: mapIdOperation(effects.gasObject.idOperation)!,\n\t\t\t\t}\n\t\t\t: null,\n\t\teventsDigest: effects.eventsDigest ?? null,\n\t\tdependencies: effects.dependencies,\n\t\tlamportVersion: effects.lamportVersion?.toString() ?? null,\n\t\tchangedObjects,\n\t\tunchangedConsensusObjects: effects.unchangedConsensusObjects.map(\n\t\t\t(object): SuiClientTypes.UnchangedConsensusObject => {\n\t\t\t\treturn {\n\t\t\t\t\tkind: mapUnchangedConsensusObjectKind(object.kind)!,\n\t\t\t\t\t// TODO: we are inconsistent about id vs objectId\n\t\t\t\t\tobjectId: object.objectId!,\n\t\t\t\t\tversion: object.version?.toString() ?? null,\n\t\t\t\t\tdigest: object.digest ?? null,\n\t\t\t\t};\n\t\t\t},\n\t\t),\n\t\tauxiliaryDataDigest: effects.auxiliaryDataDigest ?? null,\n\t};\n}\n\nexport function parseGrpcTransactionResponse<\n\tInclude extends SuiClientTypes.TransactionInclude = {},\n>(\n\ttransaction: ExecutedTransaction,\n\toptions?: {\n\t\tinclude?: Include & SuiClientTypes.TransactionInclude;\n\t},\n): SuiClientTypes.TransactionResult<Include> {\n\tconst include = options?.include;\n\tconst objectTypes: Record<string, string> = {};\n\tif (include?.objectTypes) {\n\t\ttransaction.effects?.changedObjects?.forEach((change) => {\n\t\t\tif (change.objectId && change.objectType) {\n\t\t\t\tobjectTypes[change.objectId] = change.objectType;\n\t\t\t}\n\t\t});\n\t}\n\n\tlet transactionData: SuiClientTypes.TransactionData | undefined;\n\tif (include?.transaction) {\n\t\tconst tx = transaction.transaction;\n\n\t\tif (!tx) {\n\t\t\tthrow new Error('Transaction data is required but missing from gRPC response');\n\t\t}\n\n\t\tconst resolved = grpcTransactionToTransactionData(tx);\n\t\ttransactionData = {\n\t\t\tgasData: resolved.gasData,\n\t\t\tsender: resolved.sender,\n\t\t\texpiration: resolved.expiration,\n\t\t\tcommands: resolved.commands,\n\t\t\tinputs: resolved.inputs,\n\t\t\tversion: resolved.version,\n\t\t};\n\t}\n\n\tconst bcsBytes = include?.bcs ? transaction.transaction?.bcs?.value : undefined;\n\n\tconst effects = include?.effects\n\t\t? parseTransactionEffects({\n\t\t\t\teffects: transaction.effects,\n\t\t\t})\n\t\t: undefined;\n\n\tconst status: SuiClientTypes.ExecutionStatus = transaction.effects?.status?.success\n\t\t? { success: true, error: null }\n\t\t: {\n\t\t\t\tsuccess: false,\n\t\t\t\terror: transaction.effects?.status?.error\n\t\t\t\t\t? parseGrpcExecutionError(transaction.effects.status.error)\n\t\t\t\t\t: {\n\t\t\t\t\t\t\t$kind: 'Unknown',\n\t\t\t\t\t\t\tmessage: 'Transaction failed',\n\t\t\t\t\t\t\tUnknown: null,\n\t\t\t\t\t\t},\n\t\t\t};\n\n\tconst result: SuiClientTypes.Transaction<Include> = {\n\t\tdigest: transaction.digest!,\n\t\tepoch: transaction.effects?.epoch?.toString() ?? null,\n\t\tstatus,\n\t\teffects: effects as SuiClientTypes.Transaction<Include>['effects'],\n\t\tobjectTypes: (include?.objectTypes\n\t\t\t? objectTypes\n\t\t\t: undefined) as SuiClientTypes.Transaction<Include>['objectTypes'],\n\t\ttransaction: transactionData as SuiClientTypes.Transaction<Include>['transaction'],\n\t\tbcs: bcsBytes as SuiClientTypes.Transaction<Include>['bcs'],\n\t\tsignatures: transaction.signatures?.map((sig) => toBase64(sig.bcs?.value!)) ?? [],\n\t\tbalanceChanges: (include?.balanceChanges\n\t\t\t? (transaction.balanceChanges?.map((change) => ({\n\t\t\t\t\tcoinType: change.coinType!,\n\t\t\t\t\taddress: change.address!,\n\t\t\t\t\tamount: change.amount!,\n\t\t\t\t})) ?? [])\n\t\t\t: undefined) as SuiClientTypes.Transaction<Include>['balanceChanges'],\n\t\tevents: (include?.events\n\t\t\t? (transaction.events?.events.map((event) => ({\n\t\t\t\t\tpackageId: normalizeSuiAddress(event.packageId!),\n\t\t\t\t\tmodule: event.module!,\n\t\t\t\t\tsender: normalizeSuiAddress(event.sender!),\n\t\t\t\t\teventType: event.eventType!,\n\t\t\t\t\tbcs: event.contents?.value ?? new Uint8Array(),\n\t\t\t\t\tjson: event.json ? (Value.toJson(event.json) as Record<string, unknown>) : null,\n\t\t\t\t})) ?? [])\n\t\t\t: undefined) as SuiClientTypes.Transaction<Include>['events'],\n\t};\n\n\treturn status.success\n\t\t? {\n\t\t\t\t$kind: 'Transaction',\n\t\t\t\tTransaction: result,\n\t\t\t}\n\t\t: {\n\t\t\t\t$kind: 'FailedTransaction',\n\t\t\t\tFailedTransaction: result,\n\t\t\t};\n}\n\nexport function parseGrpcSimulateTransactionResponse<\n\tInclude extends SuiClientTypes.SimulateTransactionInclude = {},\n>(\n\tresponse: SimulateTransactionResponse,\n\toptions?: {\n\t\tinclude?: Include & SuiClientTypes.SimulateTransactionInclude;\n\t},\n): SuiClientTypes.SimulateTransactionResult<Include> {\n\tconst include = options?.include;\n\tconst transactionResult = parseGrpcTransactionResponse(response.transaction!, { include });\n\n\tconst commandResults =\n\t\tinclude?.commandResults && response.commandOutputs\n\t\t\t? response.commandOutputs.map((output) => ({\n\t\t\t\t\treturnValues: (output.returnValues ?? []).map((rv) => ({\n\t\t\t\t\t\tbcs: rv.value?.value ?? null,\n\t\t\t\t\t})),\n\t\t\t\t\tmutatedReferences: (output.mutatedByRef ?? []).map((mr) => ({\n\t\t\t\t\t\tbcs: mr.value?.value ?? null,\n\t\t\t\t\t})),\n\t\t\t\t}))\n\t\t\t: undefined;\n\n\tif (transactionResult.$kind === 'Transaction') {\n\t\treturn {\n\t\t\t$kind: 'Transaction',\n\t\t\tTransaction: transactionResult.Transaction,\n\t\t\tcommandResults:\n\t\t\t\tcommandResults as SuiClientTypes.SimulateTransactionResult<Include>['commandResults'],\n\t\t};\n\t}\n\n\treturn {\n\t\t$kind: 'FailedTransaction',\n\t\tFailedTransaction: transactionResult.FailedTransaction,\n\t\tcommandResults:\n\t\t\tcommandResults as SuiClientTypes.SimulateTransactionResult<Include>['commandResults'],\n\t};\n}\n\nfunction parseNormalizedSuiMoveType(type: OpenSignature): SuiClientTypes.OpenSignature {\n\tlet reference: 'mutable' | 'immutable' | null = null;\n\n\tif (type.reference === OpenSignature_Reference.IMMUTABLE) {\n\t\treference = 'immutable';\n\t} else if (type.reference === OpenSignature_Reference.MUTABLE) {\n\t\treference = 'mutable';\n\t}\n\n\treturn {\n\t\treference,\n\t\tbody: parseNormalizedSuiMoveTypeBody(type.body!),\n\t};\n}\n\nfunction parseNormalizedSuiMoveTypeBody(type: OpenSignatureBody): SuiClientTypes.OpenSignatureBody {\n\tswitch (type.type) {\n\t\tcase OpenSignatureBody_Type.TYPE_UNKNOWN:\n\t\t\treturn { $kind: 'unknown' };\n\t\tcase OpenSignatureBody_Type.ADDRESS:\n\t\t\treturn { $kind: 'address' };\n\t\tcase OpenSignatureBody_Type.BOOL:\n\t\t\treturn { $kind: 'bool' };\n\t\tcase OpenSignatureBody_Type.U8:\n\t\t\treturn { $kind: 'u8' };\n\t\tcase OpenSignatureBody_Type.U16:\n\t\t\treturn { $kind: 'u16' };\n\t\tcase OpenSignatureBody_Type.U32:\n\t\t\treturn { $kind: 'u32' };\n\t\tcase OpenSignatureBody_Type.U64:\n\t\t\treturn { $kind: 'u64' };\n\t\tcase OpenSignatureBody_Type.U128:\n\t\t\treturn { $kind: 'u128' };\n\t\tcase OpenSignatureBody_Type.U256:\n\t\t\treturn { $kind: 'u256' };\n\t\tcase OpenSignatureBody_Type.VECTOR:\n\t\t\treturn {\n\t\t\t\t$kind: 'vector',\n\t\t\t\tvector: parseNormalizedSuiMoveTypeBody(type.typeParameterInstantiation[0]),\n\t\t\t};\n\t\tcase OpenSignatureBody_Type.DATATYPE:\n\t\t\treturn {\n\t\t\t\t$kind: 'datatype',\n\t\t\t\tdatatype: {\n\t\t\t\t\ttypeName: type.typeName!,\n\t\t\t\t\ttypeParameters: type.typeParameterInstantiation.map((t) =>\n\t\t\t\t\t\tparseNormalizedSuiMoveTypeBody(t),\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t};\n\t\tcase OpenSignatureBody_Type.TYPE_PARAMETER:\n\t\t\treturn {\n\t\t\t\t$kind: 'typeParameter',\n\t\t\t\tindex: type.typeParameter!,\n\t\t\t};\n\t\tdefault:\n\t\t\treturn { $kind: 'unknown' };\n\t}\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"core.mjs","names":["#client","bcs"],"sources":["../../src/grpc/core.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { CoreClientOptions, ObjectErrorReason, SuiClientTypes } from '../client/index.js';\nimport {\n\tCoreClient,\n\tformatMoveAbortMessage,\n\tObjectError,\n\tSimulationError,\n\tTransactionError,\n} from '../client/index.js';\nimport { raceSignal } from '../client/mvr.js';\nimport type { SuiGrpcClient } from './client.js';\nimport type { Owner } from './proto/sui/rpc/v2/owner.js';\nimport { Owner_OwnerKind } from './proto/sui/rpc/v2/owner.js';\nimport { chunk, fromBase64, toBase64 } from '@mysten/utils';\nimport type { TransactionEffects } from './proto/sui/rpc/v2/effects.js';\nimport {\n\tUnchangedConsensusObject_UnchangedConsensusObjectKind,\n\tChangedObject_IdOperation,\n\tChangedObject_InputObjectState,\n\tChangedObject_OutputObjectState,\n} from './proto/sui/rpc/v2/effects.js';\nimport type {\n\tExecutionError as GrpcExecutionError,\n\tMoveAbort as GrpcMoveAbort,\n} from './proto/sui/rpc/v2/execution_status.js';\nimport {\n\tExecutionError_ExecutionErrorKind,\n\tCommandArgumentError_CommandArgumentErrorKind,\n\tTypeArgumentError_TypeArgumentErrorKind,\n\tPackageUpgradeError_PackageUpgradeErrorKind,\n} from './proto/sui/rpc/v2/execution_status.js';\nimport type { BuildTransactionOptions } from '../transactions/index.js';\nimport { TransactionDataBuilder } from '../transactions/index.js';\nimport { bcs } from '../bcs/index.js';\nimport { normalizeStructTag, normalizeSuiAddress } from '../utils/sui-types.js';\nimport { SUI_TYPE_ARG } from '../utils/constants.js';\nimport type { OpenSignature, OpenSignatureBody } from './proto/sui/rpc/v2/move_package.js';\nimport {\n\tAbility,\n\tFunctionDescriptor_Visibility,\n\tOpenSignature_Reference,\n\tOpenSignatureBody_Type,\n} from './proto/sui/rpc/v2/move_package.js';\nimport {\n\tapplyGrpcResolvedTransaction,\n\ttransactionDataToGrpcTransaction,\n\ttransactionToGrpcTransaction,\n\tgrpcTransactionToTransactionData,\n} from '../client/transaction-resolver.js';\nimport { setAddressBalanceTransactionExpirationFromSimulatedEpoch } from '../client/address-balance-transaction-expiration.js';\nimport { transactionBytesHaveEmptyGasPayment } from '../client/utils.js';\nimport { Value } from './proto/google/protobuf/struct.js';\nimport { ExecutedTransaction } from './proto/sui/rpc/v2/executed_transaction.js';\nimport {\n\tSimulateTransactionRequest_TransactionChecks,\n\tSimulateTransactionResponse,\n} from './proto/sui/rpc/v2/transaction_execution_service.js';\nimport type { QueryEnd, QueryOptions } from './proto/sui/rpc/v2/query_options.js';\nimport { Ordering, QueryEndReason } from './proto/sui/rpc/v2/query_options.js';\nimport type { ResolvedPagination } from '../client/query-filters.js';\nimport { RpcError } from '@protobuf-ts/runtime-rpc';\nimport { GrpcStatusCode } from '@protobuf-ts/grpcweb-transport';\nimport {\n\tresolveEventFilter,\n\tresolvePagination,\n\tresolveTransactionFilter,\n\tvalidateTransactionQuery,\n} from '../client/query-filters.js';\nimport { toGrpcEventFilter, toGrpcTransactionFilter } from './filters.js';\n\nexport interface GrpcCoreClientOptions extends CoreClientOptions {\n\tclient: SuiGrpcClient;\n}\n\nfunction isNameServiceResolutionMiss(error: unknown): boolean {\n\tif (!(error instanceof RpcError)) return false;\n\tif (error.code === GrpcStatusCode[GrpcStatusCode.NOT_FOUND]) return true;\n\tif (error.code !== GrpcStatusCode[GrpcStatusCode.RESOURCE_EXHAUSTED]) return false;\n\n\ttry {\n\t\t// The gRPC service currently reports expired names as RESOURCE_EXHAUSTED without a\n\t\t// structured reason. grpc-web URI-encodes status messages, so decode before matching while\n\t\t// preserving unrelated RESOURCE_EXHAUSTED failures such as capacity limits.\n\t\treturn decodeURIComponent(error.message) === 'name has expired';\n\t} catch {\n\t\treturn false;\n\t}\n}\n\nexport class GrpcCoreClient extends CoreClient {\n\t#client: SuiGrpcClient;\n\tconstructor({ client, ...options }: GrpcCoreClientOptions) {\n\t\tsuper(options);\n\t\tthis.#client = client;\n\t}\n\n\tasync getObjects<Include extends SuiClientTypes.ObjectInclude = {}>(\n\t\toptions: SuiClientTypes.GetObjectsOptions<Include>,\n\t): Promise<SuiClientTypes.GetObjectsResponse<Include>> {\n\t\tconst batches = chunk(options.objectIds, 50);\n\t\tconst results: SuiClientTypes.GetObjectsResponse<Include>['objects'] = [];\n\n\t\tconst paths = ['owner', 'object_type', 'digest', 'version', 'object_id'];\n\t\tif (options.include?.content) {\n\t\t\tpaths.push('contents');\n\t\t}\n\t\tif (options.include?.previousTransaction) {\n\t\t\tpaths.push('previous_transaction');\n\t\t}\n\t\tif (options.include?.objectBcs) {\n\t\t\tpaths.push('bcs');\n\t\t}\n\t\tif (options.include?.json) {\n\t\t\tpaths.push('json');\n\t\t}\n\t\tif (options.include?.display) {\n\t\t\tpaths.push('display');\n\t\t}\n\n\t\tfor (const batch of batches) {\n\t\t\tconst response = await this.#client.ledgerService.batchGetObjects(\n\t\t\t\t{\n\t\t\t\t\trequests: batch.map((id) => ({ objectId: id })),\n\t\t\t\t\treadMask: {\n\t\t\t\t\t\tpaths,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{ abort: options.signal },\n\t\t\t);\n\n\t\t\tresults.push(\n\t\t\t\t...response.response.objects.map(\n\t\t\t\t\t(object, index): SuiClientTypes.Object<Include> | ObjectError => {\n\t\t\t\t\t\tif (object.result.oneofKind === 'error') {\n\t\t\t\t\t\t\tconst error = object.result.error;\n\t\t\t\t\t\t\tconst reason: ObjectErrorReason =\n\t\t\t\t\t\t\t\terror.code === GrpcStatusCode.NOT_FOUND ? 'notFound' : 'unknown';\n\t\t\t\t\t\t\treturn new ObjectError(String(error.code), error.message, {\n\t\t\t\t\t\t\t\tcause: error,\n\t\t\t\t\t\t\t\treason,\n\t\t\t\t\t\t\t\tobjectId: batch[index],\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (object.result.oneofKind !== 'object') {\n\t\t\t\t\t\t\treturn new ObjectError('unknown', 'Unexpected result type', {\n\t\t\t\t\t\t\t\treason: 'unknown',\n\t\t\t\t\t\t\t\tobjectId: batch[index],\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst bcsContent = object.result.object.contents?.value ?? undefined;\n\t\t\t\t\t\tconst objectBcs = object.result.object.bcs?.value ?? undefined;\n\n\t\t\t\t\t\t// Package objects have type \"package\" which is not a struct tag, so don't normalize it\n\t\t\t\t\t\tconst objectType = object.result.object.objectType;\n\t\t\t\t\t\tconst type =\n\t\t\t\t\t\t\tobjectType && objectType.includes('::')\n\t\t\t\t\t\t\t\t? normalizeStructTag(objectType)\n\t\t\t\t\t\t\t\t: (objectType ?? '');\n\n\t\t\t\t\t\tconst jsonContent = options.include?.json\n\t\t\t\t\t\t\t? object.result.object.json\n\t\t\t\t\t\t\t\t? (Value.toJson(object.result.object.json) as Record<string, unknown>)\n\t\t\t\t\t\t\t\t: null\n\t\t\t\t\t\t\t: undefined;\n\n\t\t\t\t\t\tconst displayData = mapDisplayProto(\n\t\t\t\t\t\t\toptions.include?.display,\n\t\t\t\t\t\t\tobject.result.object.display,\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tobjectId: object.result.object.objectId!,\n\t\t\t\t\t\t\tversion: object.result.object.version?.toString()!,\n\t\t\t\t\t\t\tdigest: object.result.object.digest!,\n\t\t\t\t\t\t\tcontent: bcsContent as SuiClientTypes.Object<Include>['content'],\n\t\t\t\t\t\t\towner: mapOwner(object.result.object.owner)!,\n\t\t\t\t\t\t\ttype,\n\t\t\t\t\t\t\tpreviousTransaction: (object.result.object.previousTransaction ??\n\t\t\t\t\t\t\t\tundefined) as SuiClientTypes.Object<Include>['previousTransaction'],\n\t\t\t\t\t\t\tobjectBcs: objectBcs as SuiClientTypes.Object<Include>['objectBcs'],\n\t\t\t\t\t\t\tjson: jsonContent as SuiClientTypes.Object<Include>['json'],\n\t\t\t\t\t\t\tdisplay: displayData as SuiClientTypes.Object<Include>['display'],\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\n\t\treturn {\n\t\t\tobjects: results,\n\t\t};\n\t}\n\tasync listOwnedObjects<Include extends SuiClientTypes.ObjectInclude = {}>(\n\t\toptions: SuiClientTypes.ListOwnedObjectsOptions<Include>,\n\t): Promise<SuiClientTypes.ListOwnedObjectsResponse<Include>> {\n\t\tconst paths = ['owner', 'object_type', 'digest', 'version', 'object_id'];\n\t\tif (options.include?.content) {\n\t\t\tpaths.push('contents');\n\t\t}\n\t\tif (options.include?.previousTransaction) {\n\t\t\tpaths.push('previous_transaction');\n\t\t}\n\t\tif (options.include?.objectBcs) {\n\t\t\tpaths.push('bcs');\n\t\t}\n\t\tif (options.include?.json) {\n\t\t\tpaths.push('json');\n\t\t}\n\t\tif (options.include?.display) {\n\t\t\tpaths.push('display');\n\t\t}\n\n\t\tconst response = await this.#client.stateService.listOwnedObjects(\n\t\t\t{\n\t\t\t\towner: options.owner,\n\t\t\t\tobjectType: options.type\n\t\t\t\t\t? (await this.mvr.resolveType({ type: options.type, signal: options.signal })).type\n\t\t\t\t\t: undefined,\n\t\t\t\tpageToken: options.cursor ? fromBase64(options.cursor) : undefined,\n\t\t\t\tpageSize: options.limit,\n\t\t\t\treadMask: {\n\t\t\t\t\tpaths,\n\t\t\t\t},\n\t\t\t},\n\t\t\t{ abort: options.signal },\n\t\t);\n\n\t\tconst objects = response.response.objects.map(\n\t\t\t(object): SuiClientTypes.Object<Include> => ({\n\t\t\t\tobjectId: object.objectId!,\n\t\t\t\tversion: object.version?.toString()!,\n\t\t\t\tdigest: object.digest!,\n\t\t\t\tcontent: object.contents?.value as SuiClientTypes.Object<Include>['content'],\n\t\t\t\towner: mapOwner(object.owner)!,\n\t\t\t\ttype: object.objectType!,\n\t\t\t\tpreviousTransaction: (object.previousTransaction ??\n\t\t\t\t\tundefined) as SuiClientTypes.Object<Include>['previousTransaction'],\n\t\t\t\tobjectBcs: object.bcs?.value as SuiClientTypes.Object<Include>['objectBcs'],\n\t\t\t\tjson: (options.include?.json\n\t\t\t\t\t? object.json\n\t\t\t\t\t\t? (Value.toJson(object.json) as Record<string, unknown>)\n\t\t\t\t\t\t: null\n\t\t\t\t\t: undefined) as SuiClientTypes.Object<Include>['json'],\n\t\t\t\tdisplay: mapDisplayProto(\n\t\t\t\t\toptions.include?.display,\n\t\t\t\t\tobject.display,\n\t\t\t\t) as SuiClientTypes.Object<Include>['display'],\n\t\t\t}),\n\t\t);\n\n\t\treturn {\n\t\t\tobjects,\n\t\t\tcursor: response.response.nextPageToken ? toBase64(response.response.nextPageToken) : null,\n\t\t\thasNextPage: response.response.nextPageToken !== undefined,\n\t\t};\n\t}\n\tasync listCoins(\n\t\toptions: SuiClientTypes.ListCoinsOptions,\n\t): Promise<SuiClientTypes.ListCoinsResponse> {\n\t\tconst paths = ['owner', 'object_type', 'digest', 'version', 'object_id', 'balance'];\n\t\tconst coinType = options.coinType ?? SUI_TYPE_ARG;\n\n\t\tconst response = await this.#client.stateService.listOwnedObjects(\n\t\t\t{\n\t\t\t\towner: options.owner,\n\t\t\t\tobjectType: `0x2::coin::Coin<${(await this.mvr.resolveType({ type: coinType, signal: options.signal })).type}>`,\n\t\t\t\tpageToken: options.cursor ? fromBase64(options.cursor) : undefined,\n\t\t\t\tpageSize: options.limit,\n\t\t\t\treadMask: {\n\t\t\t\t\tpaths,\n\t\t\t\t},\n\t\t\t},\n\t\t\t{ abort: options.signal },\n\t\t);\n\n\t\treturn {\n\t\t\tobjects: response.response.objects.map(\n\t\t\t\t(object): SuiClientTypes.Coin => ({\n\t\t\t\t\tobjectId: object.objectId!,\n\t\t\t\t\tversion: object.version?.toString()!,\n\t\t\t\t\tdigest: object.digest!,\n\t\t\t\t\towner: mapOwner(object.owner)!,\n\t\t\t\t\ttype: object.objectType!,\n\t\t\t\t\tbalance: object.balance?.toString()!,\n\t\t\t\t}),\n\t\t\t),\n\t\t\tcursor: response.response.nextPageToken ? toBase64(response.response.nextPageToken) : null,\n\t\t\thasNextPage: response.response.nextPageToken !== undefined,\n\t\t};\n\t}\n\n\tasync getBalance(\n\t\toptions: SuiClientTypes.GetBalanceOptions,\n\t): Promise<SuiClientTypes.GetBalanceResponse> {\n\t\tconst coinType = options.coinType ?? SUI_TYPE_ARG;\n\t\tconst result = await this.#client.stateService.getBalance(\n\t\t\t{\n\t\t\t\towner: options.owner,\n\t\t\t\tcoinType: (await this.mvr.resolveType({ type: coinType, signal: options.signal })).type,\n\t\t\t},\n\t\t\t{ abort: options.signal },\n\t\t);\n\n\t\treturn {\n\t\t\tbalance: {\n\t\t\t\tbalance: result.response.balance?.balance?.toString() ?? '0',\n\t\t\t\tcoinType: result.response.balance?.coinType ?? coinType,\n\t\t\t\tcoinBalance: result.response.balance?.coinBalance?.toString() ?? '0',\n\t\t\t\taddressBalance: result.response.balance?.addressBalance?.toString() ?? '0',\n\t\t\t},\n\t\t};\n\t}\n\n\tasync getCoinMetadata(\n\t\toptions: SuiClientTypes.GetCoinMetadataOptions,\n\t): Promise<SuiClientTypes.GetCoinMetadataResponse> {\n\t\tconst coinType = (\n\t\t\tawait this.mvr.resolveType({ type: options.coinType, signal: options.signal })\n\t\t).type;\n\n\t\tlet response;\n\t\ttry {\n\t\t\t({ response } = await this.#client.stateService.getCoinInfo(\n\t\t\t\t{\n\t\t\t\t\tcoinType,\n\t\t\t\t},\n\t\t\t\t{ abort: options.signal },\n\t\t\t));\n\t\t} catch (error) {\n\t\t\t// Don't swallow cancellation — only treat the coin as missing on real errors.\n\t\t\tif (options.signal?.aborted) {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t\treturn { coinMetadata: null };\n\t\t}\n\n\t\tif (!response.metadata) {\n\t\t\treturn { coinMetadata: null };\n\t\t}\n\n\t\treturn {\n\t\t\tcoinMetadata: {\n\t\t\t\tid: response.metadata.id ?? null,\n\t\t\t\tdecimals: response.metadata.decimals ?? 0,\n\t\t\t\tname: response.metadata.name ?? '',\n\t\t\t\tsymbol: response.metadata.symbol ?? '',\n\t\t\t\tdescription: response.metadata.description ?? '',\n\t\t\t\ticonUrl: response.metadata.iconUrl ?? null,\n\t\t\t},\n\t\t};\n\t}\n\n\tasync listBalances(\n\t\toptions: SuiClientTypes.ListBalancesOptions,\n\t): Promise<SuiClientTypes.ListBalancesResponse> {\n\t\tconst result = await this.#client.stateService.listBalances(\n\t\t\t{\n\t\t\t\towner: options.owner,\n\t\t\t\tpageToken: options.cursor ? fromBase64(options.cursor) : undefined,\n\t\t\t\tpageSize: options.limit,\n\t\t\t},\n\t\t\t{ abort: options.signal },\n\t\t);\n\n\t\treturn {\n\t\t\thasNextPage: !!result.response.nextPageToken,\n\t\t\tcursor: result.response.nextPageToken ? toBase64(result.response.nextPageToken) : null,\n\t\t\tbalances: result.response.balances.map((balance) => ({\n\t\t\t\tbalance: balance.balance?.toString() ?? '0',\n\t\t\t\tcoinType: balance.coinType!,\n\t\t\t\tcoinBalance: balance.coinBalance?.toString() ?? '0',\n\t\t\t\taddressBalance: balance.addressBalance?.toString() ?? '0',\n\t\t\t})),\n\t\t};\n\t}\n\tasync getTransaction<Include extends SuiClientTypes.TransactionInclude = {}>(\n\t\toptions: SuiClientTypes.GetTransactionOptions<Include>,\n\t): Promise<SuiClientTypes.TransactionResult<Include>> {\n\t\ttry {\n\t\t\tconst { response } = await this.#client.ledgerService.getTransaction(\n\t\t\t\t{\n\t\t\t\t\tdigest: options.digest,\n\t\t\t\t\treadMask: {\n\t\t\t\t\t\tpaths: transactionReadMaskPaths(options.include),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{ abort: options.signal },\n\t\t\t);\n\n\t\t\tif (!response.transaction) {\n\t\t\t\tthrow new TransactionError('notFound', options.digest);\n\t\t\t}\n\n\t\t\treturn withProtoJson(\n\t\t\t\tparseGrpcTransactionResponse(response.transaction, { include: options.include }),\n\t\t\t\toptions.include,\n\t\t\t\t() => ExecutedTransaction.toJson(response.transaction!),\n\t\t\t);\n\t\t} catch (error) {\n\t\t\tif (error instanceof RpcError && error.code === GrpcStatusCode[GrpcStatusCode.NOT_FOUND]) {\n\t\t\t\tthrow new TransactionError('notFound', options.digest, { cause: error });\n\t\t\t}\n\t\t\tthrow error;\n\t\t}\n\t}\n\tasync executeTransaction<Include extends SuiClientTypes.TransactionInclude = {}>(\n\t\toptions: SuiClientTypes.ExecuteTransactionOptions<Include>,\n\t): Promise<SuiClientTypes.TransactionResult<Include>> {\n\t\tconst { response } = await this.#client.transactionExecutionService.executeTransaction(\n\t\t\t{\n\t\t\t\ttransaction: {\n\t\t\t\t\tbcs: {\n\t\t\t\t\t\tvalue: options.transaction,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tsignatures: options.signatures.map((signature) => ({\n\t\t\t\t\tbcs: {\n\t\t\t\t\t\tvalue: fromBase64(signature),\n\t\t\t\t\t},\n\t\t\t\t\tsignature: {\n\t\t\t\t\t\toneofKind: undefined,\n\t\t\t\t\t},\n\t\t\t\t})),\n\t\t\t\treadMask: {\n\t\t\t\t\tpaths: transactionReadMaskPaths(options.include),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{ abort: options.signal },\n\t\t);\n\n\t\treturn withProtoJson(\n\t\t\tparseGrpcTransactionResponse(response.transaction!, { include: options.include }),\n\t\t\toptions.include,\n\t\t\t() => ExecutedTransaction.toJson(response.transaction!),\n\t\t);\n\t}\n\tasync simulateTransaction<Include extends SuiClientTypes.SimulateTransactionInclude = {}>(\n\t\toptions: SuiClientTypes.SimulateTransactionOptions<Include> & { doGasSelection?: boolean },\n\t): Promise<SuiClientTypes.SimulateTransactionResult<Include>> {\n\t\t// The simulated transaction is nested one level deeper in the response\n\t\tconst paths = transactionReadMaskPaths(options.include, 'transaction.');\n\t\tif (options.include?.commandResults) {\n\t\t\tpaths.push('command_outputs');\n\t\t}\n\n\t\tif (!(options.transaction instanceof Uint8Array)) {\n\t\t\tawait options.transaction.prepareForSerialization({ client: this });\n\t\t}\n\n\t\t// A gas payment explicitly set to an empty list means gas is paid from the sender's\n\t\t// address balance, so the server needs to perform gas selection rather than simulating\n\t\t// with a mocked gas coin.\n\t\tconst doGasSelection =\n\t\t\toptions.doGasSelection ??\n\t\t\t(options.transaction instanceof Uint8Array\n\t\t\t\t? transactionBytesHaveEmptyGasPayment(options.transaction)\n\t\t\t\t: options.transaction.getData().gasData.payment?.length === 0);\n\n\t\tconst { response } = await this.#client.transactionExecutionService.simulateTransaction(\n\t\t\t{\n\t\t\t\ttransaction:\n\t\t\t\t\toptions.transaction instanceof Uint8Array\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tbcs: {\n\t\t\t\t\t\t\t\t\tvalue: options.transaction,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: transactionToGrpcTransaction(options.transaction),\n\t\t\t\treadMask: {\n\t\t\t\t\tpaths,\n\t\t\t\t},\n\t\t\t\tdoGasSelection,\n\t\t\t\tchecks:\n\t\t\t\t\toptions.checksEnabled === false\n\t\t\t\t\t\t? SimulateTransactionRequest_TransactionChecks.DISABLED\n\t\t\t\t\t\t: SimulateTransactionRequest_TransactionChecks.ENABLED,\n\t\t\t},\n\t\t\t{ abort: options.signal },\n\t\t);\n\n\t\treturn withProtoJson(\n\t\t\tparseGrpcSimulateTransactionResponse(response, { include: options.include }),\n\t\t\toptions.include,\n\t\t\t() => SimulateTransactionResponse.toJson(response),\n\t\t);\n\t}\n\tasync getReferenceGasPrice(\n\t\toptions?: SuiClientTypes.GetReferenceGasPriceOptions,\n\t): Promise<SuiClientTypes.GetReferenceGasPriceResponse> {\n\t\tconst response = await this.#client.ledgerService.getEpoch(\n\t\t\t{\n\t\t\t\treadMask: {\n\t\t\t\t\tpaths: ['reference_gas_price'],\n\t\t\t\t},\n\t\t\t},\n\t\t\t{ abort: options?.signal },\n\t\t);\n\n\t\treturn {\n\t\t\treferenceGasPrice: response.response.epoch?.referenceGasPrice?.toString() ?? '',\n\t\t};\n\t}\n\n\tasync getProtocolConfig(\n\t\toptions?: SuiClientTypes.GetProtocolConfigOptions,\n\t): Promise<SuiClientTypes.GetProtocolConfigResponse> {\n\t\tconst response = await this.#client.ledgerService.getEpoch(\n\t\t\t{\n\t\t\t\treadMask: { paths: ['protocol_config'] },\n\t\t\t},\n\t\t\t{ abort: options?.signal },\n\t\t);\n\n\t\tconst protocolConfig = response.response.epoch?.protocolConfig;\n\t\tif (!protocolConfig) {\n\t\t\tthrow new Error('Protocol config not found in response');\n\t\t}\n\n\t\tconst featureFlags: Record<string, boolean> = { ...protocolConfig.featureFlags };\n\t\tconst attributes: Record<string, string | null> = {};\n\t\tif (protocolConfig.attributes) {\n\t\t\tfor (const [key, value] of Object.entries(protocolConfig.attributes)) {\n\t\t\t\tattributes[key] = value ?? null;\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tprotocolConfig: {\n\t\t\t\tprotocolVersion: protocolConfig.protocolVersion?.toString() ?? (null as never),\n\t\t\t\tfeatureFlags,\n\t\t\t\tattributes,\n\t\t\t},\n\t\t};\n\t}\n\n\tasync getCurrentSystemState(\n\t\toptions?: SuiClientTypes.GetCurrentSystemStateOptions,\n\t): Promise<SuiClientTypes.GetCurrentSystemStateResponse> {\n\t\tconst response = await this.#client.ledgerService.getEpoch(\n\t\t\t{\n\t\t\t\treadMask: {\n\t\t\t\t\tpaths: [\n\t\t\t\t\t\t'system_state.version',\n\t\t\t\t\t\t'system_state.epoch',\n\t\t\t\t\t\t'system_state.protocol_version',\n\t\t\t\t\t\t'system_state.reference_gas_price',\n\t\t\t\t\t\t'system_state.epoch_start_timestamp_ms',\n\t\t\t\t\t\t'system_state.safe_mode',\n\t\t\t\t\t\t'system_state.safe_mode_storage_rewards',\n\t\t\t\t\t\t'system_state.safe_mode_computation_rewards',\n\t\t\t\t\t\t'system_state.safe_mode_storage_rebates',\n\t\t\t\t\t\t'system_state.safe_mode_non_refundable_storage_fee',\n\t\t\t\t\t\t'system_state.parameters',\n\t\t\t\t\t\t'system_state.storage_fund',\n\t\t\t\t\t\t'system_state.stake_subsidy',\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t},\n\t\t\t{ abort: options?.signal },\n\t\t);\n\n\t\tconst epoch = response.response.epoch;\n\t\tconst systemState = epoch?.systemState;\n\t\tif (!systemState) {\n\t\t\tthrow new Error('System state not found in response');\n\t\t}\n\n\t\tconst startMs = epoch?.start?.seconds\n\t\t\t? Number(epoch.start.seconds) * 1000 + Math.floor((epoch.start.nanos || 0) / 1_000_000)\n\t\t\t: systemState.epochStartTimestampMs\n\t\t\t\t? Number(systemState.epochStartTimestampMs)\n\t\t\t\t: (null as never);\n\n\t\treturn {\n\t\t\tsystemState: {\n\t\t\t\tsystemStateVersion: systemState.version?.toString() ?? (null as never),\n\t\t\t\tepoch: systemState.epoch?.toString() ?? (null as never),\n\t\t\t\tprotocolVersion: systemState.protocolVersion?.toString() ?? (null as never),\n\t\t\t\treferenceGasPrice: systemState.referenceGasPrice?.toString() ?? (null as never),\n\t\t\t\tepochStartTimestampMs: startMs.toString(),\n\t\t\t\tsafeMode: systemState.safeMode ?? false,\n\t\t\t\tsafeModeStorageRewards: systemState.safeModeStorageRewards?.toString() ?? (null as never),\n\t\t\t\tsafeModeComputationRewards:\n\t\t\t\t\tsystemState.safeModeComputationRewards?.toString() ?? (null as never),\n\t\t\t\tsafeModeStorageRebates: systemState.safeModeStorageRebates?.toString() ?? (null as never),\n\t\t\t\tsafeModeNonRefundableStorageFee:\n\t\t\t\t\tsystemState.safeModeNonRefundableStorageFee?.toString() ?? (null as never),\n\t\t\t\tparameters: {\n\t\t\t\t\tepochDurationMs: systemState.parameters?.epochDurationMs?.toString() ?? (null as never),\n\t\t\t\t\tstakeSubsidyStartEpoch:\n\t\t\t\t\t\tsystemState.parameters?.stakeSubsidyStartEpoch?.toString() ?? (null as never),\n\t\t\t\t\tmaxValidatorCount:\n\t\t\t\t\t\tsystemState.parameters?.maxValidatorCount?.toString() ?? (null as never),\n\t\t\t\t\tminValidatorJoiningStake:\n\t\t\t\t\t\tsystemState.parameters?.minValidatorJoiningStake?.toString() ?? (null as never),\n\t\t\t\t\tvalidatorLowStakeThreshold:\n\t\t\t\t\t\tsystemState.parameters?.validatorLowStakeThreshold?.toString() ?? (null as never),\n\t\t\t\t\tvalidatorLowStakeGracePeriod:\n\t\t\t\t\t\tsystemState.parameters?.validatorLowStakeGracePeriod?.toString() ?? (null as never),\n\t\t\t\t},\n\t\t\t\tstorageFund: {\n\t\t\t\t\ttotalObjectStorageRebates:\n\t\t\t\t\t\tsystemState.storageFund?.totalObjectStorageRebates?.toString() ?? (null as never),\n\t\t\t\t\tnonRefundableBalance:\n\t\t\t\t\t\tsystemState.storageFund?.nonRefundableBalance?.toString() ?? (null as never),\n\t\t\t\t},\n\t\t\t\tstakeSubsidy: {\n\t\t\t\t\tbalance: systemState.stakeSubsidy?.balance?.toString() ?? (null as never),\n\t\t\t\t\tdistributionCounter:\n\t\t\t\t\t\tsystemState.stakeSubsidy?.distributionCounter?.toString() ?? (null as never),\n\t\t\t\t\tcurrentDistributionAmount:\n\t\t\t\t\t\tsystemState.stakeSubsidy?.currentDistributionAmount?.toString() ?? (null as never),\n\t\t\t\t\tstakeSubsidyPeriodLength:\n\t\t\t\t\t\tsystemState.stakeSubsidy?.stakeSubsidyPeriodLength?.toString() ?? (null as never),\n\t\t\t\t\tstakeSubsidyDecreaseRate:\n\t\t\t\t\t\tsystemState.stakeSubsidy?.stakeSubsidyDecreaseRate ?? (null as never),\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n\n\tasync listDynamicFields(\n\t\toptions: SuiClientTypes.ListDynamicFieldsOptions,\n\t): Promise<SuiClientTypes.ListDynamicFieldsResponse> {\n\t\treturn this.#client.listDynamicFields(options);\n\t}\n\n\tasync listTransactions<Include extends SuiClientTypes.TransactionInclude = {}>(\n\t\toptions: SuiClientTypes.ListTransactionsOptions<Include>,\n\t): Promise<SuiClientTypes.ListTransactionsResponse<Include>> {\n\t\tconst paths = transactionReadMaskPaths(options.include);\n\n\t\tconst filter = options.filter\n\t\t\t? await resolveTransactionFilter(this.mvr, options.filter, options.signal)\n\t\t\t: undefined;\n\t\tconst pagination = resolvePagination(options);\n\t\tvalidateTransactionQuery(filter, pagination);\n\n\t\tconst call = this.#client.ledgerService.listTransactions(\n\t\t\t{\n\t\t\t\treadMask: { paths },\n\t\t\t\tfilter: filter && toGrpcTransactionFilter(filter),\n\t\t\t\t// Request one extra item as lookahead: the server reports its item limit as reached\n\t\t\t\t// without scanning past it, so an exact-limit final page is otherwise\n\t\t\t\t// indistinguishable from one with more results\n\t\t\t\toptions: toGrpcQueryOptions(pagination, pagination.limit + 1),\n\t\t\t},\n\t\t\t{ abort: options.signal },\n\t\t);\n\n\t\tconst transactions: SuiClientTypes.TransactionResult<Include>[] = [];\n\t\tlet startCursor: string | null = null;\n\t\tlet endCursor: string | null = null;\n\t\tlet frontier: string | null = null;\n\t\tlet end: QueryEnd | undefined;\n\t\tlet sawLookaheadItem = false;\n\n\t\tfor await (const frame of call.responses) {\n\t\t\tif (frame.watermark?.cursor) {\n\t\t\t\tfrontier = toBase64(frame.watermark.cursor);\n\t\t\t}\n\t\t\tif (frame.transaction) {\n\t\t\t\tif (transactions.length >= pagination.limit) {\n\t\t\t\t\tsawLookaheadItem = true;\n\t\t\t\t} else {\n\t\t\t\t\tstartCursor ??= frontier;\n\t\t\t\t\tendCursor = frontier;\n\t\t\t\t\ttransactions.push(\n\t\t\t\t\t\tparseGrpcTransactionResponse(frame.transaction, { include: options.include }),\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (frame.end) {\n\t\t\t\tend = frame.end;\n\t\t\t}\n\t\t}\n\n\t\t// ITEM_LIMIT without the lookahead item means the server clamped the requested limit to\n\t\t// its own maximum, so the filled page is still evidence of a possible next page\n\t\tconst hasNextPage =\n\t\t\tsawLookaheadItem ||\n\t\t\tend?.reason === QueryEndReason.SCAN_LIMIT ||\n\t\t\tend?.reason === QueryEndReason.ITEM_LIMIT;\n\n\t\treturn {\n\t\t\ttransactions,\n\t\t\thasNextPage,\n\t\t\tstartCursor,\n\t\t\t// Scans that stopped early without filling the page continue from the scan frontier\n\t\t\t// (so already-scanned positions are not revisited), full pages continue after the last\n\t\t\t// returned item, and terminal pages have no positions to continue from\n\t\t\tendCursor: sawLookaheadItem ? endCursor : hasNextPage ? (frontier ?? endCursor) : endCursor,\n\t\t};\n\t}\n\n\tasync listEvents(\n\t\toptions: SuiClientTypes.ListEventsOptions,\n\t): Promise<SuiClientTypes.ListEventsResponse> {\n\t\tconst pagination = resolvePagination(options);\n\t\tconst call = this.#client.ledgerService.listEvents(\n\t\t\t{\n\t\t\t\treadMask: {\n\t\t\t\t\tpaths: [\n\t\t\t\t\t\t'package_id',\n\t\t\t\t\t\t'module',\n\t\t\t\t\t\t'sender',\n\t\t\t\t\t\t'event_type',\n\t\t\t\t\t\t'contents',\n\t\t\t\t\t\t'json',\n\t\t\t\t\t\t'checkpoint',\n\t\t\t\t\t\t'transaction_digest',\n\t\t\t\t\t\t'event_index',\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t\tfilter: options.filter\n\t\t\t\t\t? toGrpcEventFilter(await resolveEventFilter(this.mvr, options.filter, options.signal))\n\t\t\t\t\t: undefined,\n\t\t\t\t// Request one extra item as lookahead: the server reports its item limit as reached\n\t\t\t\t// without scanning past it, so an exact-limit final page is otherwise\n\t\t\t\t// indistinguishable from one with more results\n\t\t\t\toptions: toGrpcQueryOptions(pagination, pagination.limit + 1),\n\t\t\t},\n\t\t\t{ abort: options.signal },\n\t\t);\n\n\t\tconst events: SuiClientTypes.EventEntry[] = [];\n\t\tlet startCursor: string | null = null;\n\t\tlet endCursor: string | null = null;\n\t\tlet frontier: string | null = null;\n\t\tlet end: QueryEnd | undefined;\n\t\tlet sawLookaheadItem = false;\n\n\t\tfor await (const frame of call.responses) {\n\t\t\tif (frame.watermark?.cursor) {\n\t\t\t\tfrontier = toBase64(frame.watermark.cursor);\n\t\t\t}\n\t\t\tif (frame.event) {\n\t\t\t\tif (events.length >= pagination.limit) {\n\t\t\t\t\tsawLookaheadItem = true;\n\t\t\t\t} else {\n\t\t\t\t\tstartCursor ??= frontier;\n\t\t\t\t\tendCursor = frontier;\n\t\t\t\t\tconst event = frame.event;\n\t\t\t\t\tevents.push({\n\t\t\t\t\t\tpackageId: normalizeSuiAddress(event.packageId!),\n\t\t\t\t\t\tmodule: event.module!,\n\t\t\t\t\t\tsender: normalizeSuiAddress(event.sender!),\n\t\t\t\t\t\teventType: normalizeStructTag(event.eventType!),\n\t\t\t\t\t\tbcs: event.contents?.value ?? new Uint8Array(),\n\t\t\t\t\t\tjson: event.json ? (Value.toJson(event.json) as Record<string, unknown>) : null,\n\t\t\t\t\t\tcheckpoint: event.checkpoint?.toString() ?? null,\n\t\t\t\t\t\ttransactionDigest: event.transactionDigest!,\n\t\t\t\t\t\teventIndex: event.eventIndex!,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (frame.end) {\n\t\t\t\tend = frame.end;\n\t\t\t}\n\t\t}\n\n\t\t// ITEM_LIMIT without the lookahead item means the server clamped the requested limit to\n\t\t// its own maximum, so the filled page is still evidence of a possible next page\n\t\tconst hasNextPage =\n\t\t\tsawLookaheadItem ||\n\t\t\tend?.reason === QueryEndReason.SCAN_LIMIT ||\n\t\t\tend?.reason === QueryEndReason.ITEM_LIMIT;\n\n\t\treturn {\n\t\t\tevents,\n\t\t\thasNextPage,\n\t\t\tstartCursor,\n\t\t\t// Scans that stopped early without filling the page continue from the scan frontier\n\t\t\t// (so already-scanned positions are not revisited), full pages continue after the last\n\t\t\t// returned item, and terminal pages have no positions to continue from\n\t\t\tendCursor: sawLookaheadItem ? endCursor : hasNextPage ? (frontier ?? endCursor) : endCursor,\n\t\t};\n\t}\n\n\tasync verifyZkLoginSignature(\n\t\toptions: SuiClientTypes.VerifyZkLoginSignatureOptions,\n\t): Promise<SuiClientTypes.ZkLoginVerifyResponse> {\n\t\tconst messageBytes = fromBase64(options.bytes);\n\n\t\t// For PersonalMessage, the server expects BCS-encoded vector<u8>\n\t\t// For TransactionData, the server expects the raw BCS-encoded TransactionData as-is\n\t\tconst messageValue =\n\t\t\toptions.intentScope === 'PersonalMessage'\n\t\t\t\t? bcs.byteVector().serialize(messageBytes).toBytes()\n\t\t\t\t: messageBytes;\n\n\t\tconst { response } = await this.#client.signatureVerificationService.verifySignature(\n\t\t\t{\n\t\t\t\tmessage: {\n\t\t\t\t\tname: options.intentScope,\n\t\t\t\t\tvalue: messageValue,\n\t\t\t\t},\n\t\t\t\tsignature: {\n\t\t\t\t\tbcs: {\n\t\t\t\t\t\tvalue: fromBase64(options.signature),\n\t\t\t\t\t},\n\t\t\t\t\tsignature: {\n\t\t\t\t\t\toneofKind: undefined,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\taddress: options.address,\n\t\t\t\tjwks: [],\n\t\t\t},\n\t\t\t{ abort: options.signal },\n\t\t);\n\n\t\treturn {\n\t\t\tsuccess: response.isValid ?? false,\n\t\t\terrors: response.reason ? [response.reason] : [],\n\t\t};\n\t}\n\n\tasync defaultNameServiceName(\n\t\toptions: SuiClientTypes.DefaultNameServiceNameOptions,\n\t): Promise<SuiClientTypes.DefaultNameServiceNameResponse> {\n\t\tconst name =\n\t\t\t(\n\t\t\t\tawait this.#client.nameService.reverseLookupName(\n\t\t\t\t\t{\n\t\t\t\t\t\taddress: options.address,\n\t\t\t\t\t},\n\t\t\t\t\t{ abort: options.signal },\n\t\t\t\t)\n\t\t\t).response.record?.name ?? null;\n\t\treturn {\n\t\t\tdata: {\n\t\t\t\tname,\n\t\t\t},\n\t\t};\n\t}\n\n\tasync resolveNameServiceAddress(\n\t\toptions: SuiClientTypes.ResolveNameServiceAddressOptions,\n\t): Promise<SuiClientTypes.ResolveNameServiceAddressResponse> {\n\t\ttry {\n\t\t\tconst { response } = await this.#client.nameService.lookupName(\n\t\t\t\t{ name: options.name },\n\t\t\t\t{ abort: options.signal },\n\t\t\t);\n\n\t\t\treturn { address: response.record?.targetAddress ?? null };\n\t\t} catch (error) {\n\t\t\tif (isNameServiceResolutionMiss(error)) {\n\t\t\t\treturn { address: null };\n\t\t\t}\n\n\t\t\tthrow error;\n\t\t}\n\t}\n\n\tasync getMoveFunction(\n\t\toptions: SuiClientTypes.GetMoveFunctionOptions,\n\t): Promise<SuiClientTypes.GetMoveFunctionResponse> {\n\t\tconst resolvedPackageId = (\n\t\t\tawait this.mvr.resolvePackage({ package: options.packageId, signal: options.signal })\n\t\t).package;\n\t\tconst { response } = await this.#client.movePackageService.getFunction(\n\t\t\t{\n\t\t\t\tpackageId: resolvedPackageId,\n\t\t\t\tmoduleName: options.moduleName,\n\t\t\t\tname: options.name,\n\t\t\t},\n\t\t\t{ abort: options.signal },\n\t\t);\n\n\t\tlet visibility: 'public' | 'private' | 'friend' | 'unknown' = 'unknown';\n\n\t\tswitch (response.function?.visibility) {\n\t\t\tcase FunctionDescriptor_Visibility.PUBLIC:\n\t\t\t\tvisibility = 'public';\n\t\t\t\tbreak;\n\t\t\tcase FunctionDescriptor_Visibility.PRIVATE:\n\t\t\t\tvisibility = 'private';\n\t\t\t\tbreak;\n\t\t\tcase FunctionDescriptor_Visibility.FRIEND:\n\t\t\t\tvisibility = 'friend';\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn {\n\t\t\tfunction: {\n\t\t\t\tpackageId: normalizeSuiAddress(resolvedPackageId),\n\t\t\t\tmoduleName: options.moduleName,\n\t\t\t\tname: response.function?.name!,\n\t\t\t\tvisibility,\n\t\t\t\tisEntry: response.function?.isEntry ?? false,\n\t\t\t\ttypeParameters:\n\t\t\t\t\tresponse.function?.typeParameters?.map(({ constraints }) => ({\n\t\t\t\t\t\tisPhantom: false,\n\t\t\t\t\t\tconstraints:\n\t\t\t\t\t\t\tconstraints.map((constraint) => {\n\t\t\t\t\t\t\t\tswitch (constraint) {\n\t\t\t\t\t\t\t\t\tcase Ability.COPY:\n\t\t\t\t\t\t\t\t\t\treturn 'copy';\n\t\t\t\t\t\t\t\t\tcase Ability.DROP:\n\t\t\t\t\t\t\t\t\t\treturn 'drop';\n\t\t\t\t\t\t\t\t\tcase Ability.STORE:\n\t\t\t\t\t\t\t\t\t\treturn 'store';\n\t\t\t\t\t\t\t\t\tcase Ability.KEY:\n\t\t\t\t\t\t\t\t\t\treturn 'key';\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\treturn 'unknown';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}) ?? [],\n\t\t\t\t\t})) ?? [],\n\t\t\t\tparameters:\n\t\t\t\t\tresponse.function?.parameters?.map((param) => parseNormalizedSuiMoveType(param)) ?? [],\n\t\t\t\treturns: response.function?.returns?.map((ret) => parseNormalizedSuiMoveType(ret)) ?? [],\n\t\t\t},\n\t\t};\n\t}\n\n\tasync getChainIdentifier(\n\t\toptions?: SuiClientTypes.GetChainIdentifierOptions,\n\t): Promise<SuiClientTypes.GetChainIdentifierResponse> {\n\t\t// The result is cached and shared across callers, so the underlying request must\n\t\t// not carry any single caller's signal. Isolate cancellation per-caller instead.\n\t\treturn raceSignal(\n\t\t\tPromise.resolve(\n\t\t\t\tthis.cache.read(['chainIdentifier'], async () => {\n\t\t\t\t\tconst { response } = await this.#client.ledgerService.getServiceInfo({});\n\t\t\t\t\tif (!response.chainId) {\n\t\t\t\t\t\tthrow new Error('Chain identifier not found in service info');\n\t\t\t\t\t}\n\t\t\t\t\treturn {\n\t\t\t\t\t\tchainIdentifier: response.chainId,\n\t\t\t\t\t};\n\t\t\t\t}),\n\t\t\t),\n\t\t\toptions?.signal,\n\t\t);\n\t}\n\n\tresolveTransactionPlugin() {\n\t\tconst client = this.#client;\n\t\treturn async function resolveTransactionData(\n\t\t\ttransactionData: TransactionDataBuilder,\n\t\t\toptions: BuildTransactionOptions,\n\t\t\tnext: () => Promise<void>,\n\t\t) {\n\t\t\tconst snapshot = transactionData.snapshot();\n\t\t\t// If sender is not set, use a dummy address for resolution purposes\n\t\t\t// The resolved transaction will not include the sender if it wasn't set originally\n\t\t\tif (!snapshot.sender) {\n\t\t\t\tsnapshot.sender = '0x0000000000000000000000000000000000000000000000000000000000000000';\n\t\t\t}\n\t\t\tconst grpcTransaction = transactionDataToGrpcTransaction(snapshot);\n\t\t\tconst doGasSelection =\n\t\t\t\t!options.onlyTransactionKind &&\n\t\t\t\t(snapshot.gasData.budget == null || snapshot.gasData.payment == null);\n\n\t\t\tlet response;\n\t\t\ttry {\n\t\t\t\tconst result = await client.transactionExecutionService.simulateTransaction({\n\t\t\t\t\ttransaction: grpcTransaction,\n\t\t\t\t\tdoGasSelection,\n\t\t\t\t\t// Kind-only txns are never executed directly and do not have sender, so skip validation checks.\n\t\t\t\t\tchecks: options.onlyTransactionKind\n\t\t\t\t\t\t? SimulateTransactionRequest_TransactionChecks.DISABLED\n\t\t\t\t\t\t: SimulateTransactionRequest_TransactionChecks.ENABLED,\n\t\t\t\t\treadMask: {\n\t\t\t\t\t\tpaths: [\n\t\t\t\t\t\t\t'transaction.transaction.sender',\n\t\t\t\t\t\t\t'transaction.transaction.gas_payment',\n\t\t\t\t\t\t\t'transaction.transaction.expiration',\n\t\t\t\t\t\t\t'transaction.transaction.kind',\n\t\t\t\t\t\t\t'transaction.effects.status',\n\t\t\t\t\t\t\t'transaction.effects.epoch',\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t\tresponse = result.response;\n\t\t\t} catch (error) {\n\t\t\t\t// https://github.com/timostamm/protobuf-ts/pull/739\n\t\t\t\tif (error instanceof Error && error.message) {\n\t\t\t\t\tthrow new SimulationError(decodeURIComponent(error.message), { cause: error });\n\t\t\t\t}\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t!options.onlyTransactionKind &&\n\t\t\t\tresponse.transaction?.effects?.status &&\n\t\t\t\t!response.transaction.effects.status.success\n\t\t\t) {\n\t\t\t\tconst executionError = response.transaction.effects.status.error\n\t\t\t\t\t? parseGrpcExecutionError(response.transaction.effects.status.error)\n\t\t\t\t\t: undefined;\n\t\t\t\tconst errorMessage = executionError?.message ?? 'Transaction failed';\n\t\t\t\tthrow new SimulationError(`Transaction resolution failed: ${errorMessage}`, {\n\t\t\t\t\texecutionError,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (!response.transaction?.transaction) {\n\t\t\t\tthrow new Error('simulateTransaction did not return resolved transaction data');\n\t\t\t}\n\n\t\t\tapplyGrpcResolvedTransaction(transactionData, response.transaction.transaction, options);\n\t\t\tawait setAddressBalanceTransactionExpirationFromSimulatedEpoch({\n\t\t\t\ttransactionData,\n\t\t\t\tclient,\n\t\t\t\tepoch: response.transaction.effects?.epoch,\n\t\t\t\toriginalTransactionData: snapshot,\n\t\t\t\tisTransactionKindOnly: !!options.onlyTransactionKind,\n\t\t\t\tdoGasSelection,\n\t\t\t});\n\n\t\t\treturn await next();\n\t\t};\n\t}\n}\n\nfunction toGrpcQueryOptions(pagination: ResolvedPagination, limit: number): QueryOptions {\n\treturn {\n\t\tlimit,\n\t\tordering: pagination.descending ? Ordering.DESCENDING : Ordering.ASCENDING,\n\t\tafter: pagination.after ? fromBase64(pagination.after) : undefined,\n\t\tbefore: pagination.before ? fromBase64(pagination.before) : undefined,\n\t};\n}\n\nfunction transactionReadMaskPaths(\n\tinclude: SuiClientTypes.TransactionInclude | undefined,\n\tprefix = '',\n): string[] {\n\tconst paths = ['digest', 'transaction.digest', 'signatures', 'effects.status'];\n\n\tif (include?.transaction) {\n\t\tpaths.push(\n\t\t\t'transaction.sender',\n\t\t\t'transaction.gas_payment',\n\t\t\t'transaction.expiration',\n\t\t\t'transaction.kind',\n\t\t);\n\t}\n\tif (include?.bcs) {\n\t\tpaths.push('transaction.bcs');\n\t}\n\tif (include?.balanceChanges) {\n\t\tpaths.push('balance_changes');\n\t}\n\tif (include?.effects) {\n\t\tpaths.push('effects');\n\t}\n\tif (include?.events) {\n\t\tpaths.push('events');\n\t}\n\tif (include?.objectTypes) {\n\t\t// Use effects.changed_objects to match JSON-RPC behavior (which uses objectChanges)\n\t\tpaths.push('effects.changed_objects.object_type');\n\t\tpaths.push('effects.changed_objects.object_id');\n\t}\n\n\treturn prefix ? paths.map((path) => prefix + path) : paths;\n}\n\nfunction withProtoJson<Result>(\n\tresult: Result,\n\tinclude: ({ protoJson?: boolean } & object) | undefined,\n\tgetProtoJson: () => unknown,\n): Result {\n\tif (!include?.protoJson) {\n\t\treturn result;\n\t}\n\n\treturn {\n\t\t...result,\n\t\tprotoJson: getProtoJson(),\n\t};\n}\n\nfunction mapDisplayProto(\n\tinclude: boolean | undefined,\n\tdisplay: { output?: Value; errors?: Value } | undefined,\n): SuiClientTypes.Display | null | undefined {\n\tif (!include) return undefined;\n\tif (display === undefined) return null;\n\treturn {\n\t\toutput:\n\t\t\tdisplay.output !== undefined\n\t\t\t\t? (Value.toJson(display.output) as Record<string, unknown> | null)\n\t\t\t\t: null,\n\t\terrors:\n\t\t\tdisplay.errors !== undefined\n\t\t\t\t? (Value.toJson(display.errors) as Record<string, string> | null)\n\t\t\t\t: null,\n\t};\n}\n\nfunction mapOwner(owner: Owner | null | undefined): SuiClientTypes.ObjectOwner | null {\n\tif (!owner) {\n\t\treturn null;\n\t}\n\tif (owner.kind === Owner_OwnerKind.IMMUTABLE) {\n\t\treturn {\n\t\t\t$kind: 'Immutable',\n\t\t\tImmutable: true,\n\t\t};\n\t}\n\tif (owner.kind === Owner_OwnerKind.ADDRESS) {\n\t\treturn {\n\t\t\tAddressOwner: owner.address!,\n\t\t\t$kind: 'AddressOwner',\n\t\t};\n\t}\n\tif (owner.kind === Owner_OwnerKind.OBJECT) {\n\t\treturn {\n\t\t\t$kind: 'ObjectOwner',\n\t\t\tObjectOwner: owner.address!,\n\t\t};\n\t}\n\n\tif (owner.kind === Owner_OwnerKind.SHARED) {\n\t\treturn {\n\t\t\t$kind: 'Shared',\n\t\t\tShared: {\n\t\t\t\tinitialSharedVersion: owner.version?.toString()!,\n\t\t\t},\n\t\t};\n\t}\n\n\tif (owner.kind === Owner_OwnerKind.CONSENSUS_ADDRESS) {\n\t\treturn {\n\t\t\t$kind: 'ConsensusAddressOwner',\n\t\t\tConsensusAddressOwner: {\n\t\t\t\tstartVersion: owner.version?.toString()!,\n\t\t\t\towner: owner.address!,\n\t\t\t},\n\t\t};\n\t}\n\n\tthrow new Error(\n\t\t`Unknown owner kind ${JSON.stringify(owner, (_k, v) => (typeof v === 'bigint' ? v.toString() : v))}`,\n\t);\n}\n\nfunction parseGrpcExecutionError(error: GrpcExecutionError): SuiClientTypes.ExecutionError {\n\tconst message = error.description ?? 'Unknown error';\n\tconst command = error.command != null ? Number(error.command) : undefined;\n\tconst details = error.errorDetails;\n\n\tswitch (details?.oneofKind) {\n\t\tcase 'abort': {\n\t\t\tconst abort = details.abort;\n\t\t\tconst cleverError = abort.cleverError;\n\t\t\treturn {\n\t\t\t\t$kind: 'MoveAbort',\n\t\t\t\tmessage: formatMoveAbortMessage({\n\t\t\t\t\tcommand,\n\t\t\t\t\tlocation: abort.location,\n\t\t\t\t\tabortCode: String(abort.abortCode ?? 0n),\n\t\t\t\t\tcleverError: cleverError\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tlineNumber:\n\t\t\t\t\t\t\t\t\tcleverError.lineNumber != null ? Number(cleverError.lineNumber) : undefined,\n\t\t\t\t\t\t\t\tconstantName: cleverError.constantName,\n\t\t\t\t\t\t\t\tvalue:\n\t\t\t\t\t\t\t\t\tcleverError.value?.oneofKind === 'rendered'\n\t\t\t\t\t\t\t\t\t\t? cleverError.value.rendered\n\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: undefined,\n\t\t\t\t}),\n\t\t\t\tcommand,\n\t\t\t\tMoveAbort: parseMoveAbort(abort),\n\t\t\t};\n\t\t}\n\n\t\tcase 'sizeError':\n\t\t\treturn {\n\t\t\t\t$kind: 'SizeError',\n\t\t\t\tmessage,\n\t\t\t\tcommand,\n\t\t\t\tSizeError: {\n\t\t\t\t\tname: mapErrorName(error.kind),\n\t\t\t\t\tsize: Number(details.sizeError.size ?? 0n),\n\t\t\t\t\tmaxSize: Number(details.sizeError.maxSize ?? 0n),\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'commandArgumentError':\n\t\t\treturn {\n\t\t\t\t$kind: 'CommandArgumentError',\n\t\t\t\tmessage,\n\t\t\t\tcommand,\n\t\t\t\tCommandArgumentError: {\n\t\t\t\t\targument: details.commandArgumentError.argument ?? 0,\n\t\t\t\t\tname: mapErrorName(details.commandArgumentError.kind),\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'typeArgumentError':\n\t\t\treturn {\n\t\t\t\t$kind: 'TypeArgumentError',\n\t\t\t\tmessage,\n\t\t\t\tcommand,\n\t\t\t\tTypeArgumentError: {\n\t\t\t\t\ttypeArgument: details.typeArgumentError.typeArgument ?? 0,\n\t\t\t\t\tname: mapErrorName(details.typeArgumentError.kind),\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'packageUpgradeError':\n\t\t\treturn {\n\t\t\t\t$kind: 'PackageUpgradeError',\n\t\t\t\tmessage,\n\t\t\t\tcommand,\n\t\t\t\tPackageUpgradeError: {\n\t\t\t\t\tname: mapErrorName(details.packageUpgradeError.kind),\n\t\t\t\t\tpackageId: details.packageUpgradeError.packageId,\n\t\t\t\t\tdigest: details.packageUpgradeError.digest,\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'indexError':\n\t\t\treturn {\n\t\t\t\t$kind: 'IndexError',\n\t\t\t\tmessage,\n\t\t\t\tcommand,\n\t\t\t\tIndexError: {\n\t\t\t\t\tindex: details.indexError.index,\n\t\t\t\t\tsubresult: details.indexError.subresult,\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'coinDenyListError':\n\t\t\treturn {\n\t\t\t\t$kind: 'CoinDenyListError',\n\t\t\t\tmessage,\n\t\t\t\tcommand,\n\t\t\t\tCoinDenyListError: {\n\t\t\t\t\tname: mapErrorName(error.kind),\n\t\t\t\t\tcoinType: details.coinDenyListError.coinType!,\n\t\t\t\t\taddress: details.coinDenyListError.address,\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'congestedObjects':\n\t\t\treturn {\n\t\t\t\t$kind: 'CongestedObjects',\n\t\t\t\tmessage,\n\t\t\t\tcommand,\n\t\t\t\tCongestedObjects: {\n\t\t\t\t\tname: mapErrorName(error.kind),\n\t\t\t\t\tobjects: details.congestedObjects.objects,\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'objectId':\n\t\t\treturn {\n\t\t\t\t$kind: 'ObjectIdError',\n\t\t\t\tmessage,\n\t\t\t\tcommand,\n\t\t\t\tObjectIdError: {\n\t\t\t\t\tname: mapErrorName(error.kind),\n\t\t\t\t\tobjectId: details.objectId,\n\t\t\t\t},\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn {\n\t\t\t\t$kind: 'Unknown',\n\t\t\t\tmessage,\n\t\t\t\tcommand,\n\t\t\t\tUnknown: null,\n\t\t\t};\n\t}\n}\n\nfunction parseMoveAbort(abort: GrpcMoveAbort): SuiClientTypes.MoveAbort {\n\treturn {\n\t\tabortCode: String(abort.abortCode ?? 0n),\n\t\tlocation: { ...abort.location },\n\t\tcleverError: abort.cleverError\n\t\t\t? {\n\t\t\t\t\terrorCode:\n\t\t\t\t\t\tabort.cleverError.errorCode != null ? Number(abort.cleverError.errorCode) : undefined,\n\t\t\t\t\tlineNumber:\n\t\t\t\t\t\tabort.cleverError.lineNumber != null ? Number(abort.cleverError.lineNumber) : undefined,\n\t\t\t\t\tconstantName: abort.cleverError.constantName,\n\t\t\t\t\tconstantType: abort.cleverError.constantType,\n\t\t\t\t\tvalue:\n\t\t\t\t\t\tabort.cleverError.value?.oneofKind === 'rendered'\n\t\t\t\t\t\t\t? abort.cleverError.value.rendered\n\t\t\t\t\t\t\t: abort.cleverError.value?.oneofKind === 'raw'\n\t\t\t\t\t\t\t\t? toBase64(abort.cleverError.value.raw)\n\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t}\n\t\t\t: undefined,\n\t};\n}\n\nfunction mapErrorName(\n\tkind:\n\t\t| ExecutionError_ExecutionErrorKind\n\t\t| CommandArgumentError_CommandArgumentErrorKind\n\t\t| TypeArgumentError_TypeArgumentErrorKind\n\t\t| PackageUpgradeError_PackageUpgradeErrorKind\n\t\t| undefined,\n): string {\n\tif (kind == null) {\n\t\treturn 'Unknown';\n\t}\n\tconst name = CommandArgumentError_CommandArgumentErrorKind[kind];\n\tif (!name || name.endsWith('_UNKNOWN')) {\n\t\treturn 'Unknown';\n\t}\n\treturn name\n\t\t.split('_')\n\t\t.map((word) => word.charAt(0) + word.slice(1).toLowerCase())\n\t\t.join('');\n}\n\nfunction mapIdOperation(\n\toperation: ChangedObject_IdOperation | undefined,\n): null | 'Created' | 'Deleted' | 'Unknown' | 'None' {\n\tif (operation == null) {\n\t\treturn null;\n\t}\n\tswitch (operation) {\n\t\tcase ChangedObject_IdOperation.CREATED:\n\t\t\treturn 'Created';\n\t\tcase ChangedObject_IdOperation.DELETED:\n\t\t\treturn 'Deleted';\n\t\tcase ChangedObject_IdOperation.NONE:\n\t\tcase ChangedObject_IdOperation.ID_OPERATION_UNKNOWN:\n\t\t\treturn 'None';\n\t\tdefault:\n\t\t\toperation satisfies never;\n\t\t\treturn 'Unknown';\n\t}\n}\n\nfunction mapInputObjectState(\n\tstate: ChangedObject_InputObjectState | undefined,\n): null | 'Exists' | 'DoesNotExist' | 'Unknown' {\n\tif (state == null) {\n\t\treturn null;\n\t}\n\tswitch (state) {\n\t\tcase ChangedObject_InputObjectState.EXISTS:\n\t\t\treturn 'Exists';\n\t\tcase ChangedObject_InputObjectState.DOES_NOT_EXIST:\n\t\t\treturn 'DoesNotExist';\n\t\tcase ChangedObject_InputObjectState.UNKNOWN:\n\t\t\treturn 'Unknown';\n\t\tdefault:\n\t\t\tstate satisfies never;\n\t\t\treturn 'Unknown';\n\t}\n}\n\nfunction mapOutputObjectState(\n\tstate: ChangedObject_OutputObjectState | undefined,\n): null | 'ObjectWrite' | 'PackageWrite' | 'DoesNotExist' | 'AccumulatorWriteV1' | 'Unknown' {\n\tif (state == null) {\n\t\treturn null;\n\t}\n\tswitch (state) {\n\t\tcase ChangedObject_OutputObjectState.OBJECT_WRITE:\n\t\t\treturn 'ObjectWrite';\n\t\tcase ChangedObject_OutputObjectState.PACKAGE_WRITE:\n\t\t\treturn 'PackageWrite';\n\t\tcase ChangedObject_OutputObjectState.DOES_NOT_EXIST:\n\t\t\treturn 'DoesNotExist';\n\t\tcase ChangedObject_OutputObjectState.ACCUMULATOR_WRITE:\n\t\t\treturn 'AccumulatorWriteV1';\n\t\tcase ChangedObject_OutputObjectState.UNKNOWN:\n\t\t\treturn 'Unknown';\n\t\tdefault:\n\t\t\tstate satisfies never;\n\t\t\treturn 'Unknown';\n\t}\n}\n\nfunction mapUnchangedConsensusObjectKind(\n\tkind: UnchangedConsensusObject_UnchangedConsensusObjectKind | undefined,\n): null | SuiClientTypes.UnchangedConsensusObject['kind'] {\n\tif (kind == null) {\n\t\treturn null;\n\t}\n\tswitch (kind) {\n\t\tcase UnchangedConsensusObject_UnchangedConsensusObjectKind.UNCHANGED_CONSENSUS_OBJECT_KIND_UNKNOWN:\n\t\t\treturn 'Unknown';\n\t\tcase UnchangedConsensusObject_UnchangedConsensusObjectKind.READ_ONLY_ROOT:\n\t\t\treturn 'ReadOnlyRoot';\n\t\tcase UnchangedConsensusObject_UnchangedConsensusObjectKind.MUTATE_CONSENSUS_STREAM_ENDED:\n\t\t\treturn 'MutateConsensusStreamEnded';\n\t\tcase UnchangedConsensusObject_UnchangedConsensusObjectKind.READ_CONSENSUS_STREAM_ENDED:\n\t\t\treturn 'ReadConsensusStreamEnded';\n\t\tcase UnchangedConsensusObject_UnchangedConsensusObjectKind.CANCELED:\n\t\t\treturn 'Cancelled';\n\t\tcase UnchangedConsensusObject_UnchangedConsensusObjectKind.PER_EPOCH_CONFIG:\n\t\t\treturn 'PerEpochConfig';\n\t\tdefault:\n\t\t\tkind satisfies never;\n\t\t\treturn 'Unknown';\n\t}\n}\n\nexport function parseTransactionEffects({\n\teffects,\n}: {\n\teffects: TransactionEffects | undefined;\n}): SuiClientTypes.TransactionEffects | null {\n\tif (!effects) {\n\t\treturn null;\n\t}\n\n\tconst changedObjects = effects.changedObjects.map((change): SuiClientTypes.ChangedObject => {\n\t\treturn {\n\t\t\tobjectId: change.objectId!,\n\t\t\tinputState: mapInputObjectState(change.inputState)!,\n\t\t\tinputVersion: change.inputVersion?.toString() ?? null,\n\t\t\tinputDigest: change.inputDigest ?? null,\n\t\t\tinputOwner: mapOwner(change.inputOwner),\n\t\t\toutputState: mapOutputObjectState(change.outputState)!,\n\t\t\toutputVersion: change.outputVersion?.toString() ?? null,\n\t\t\toutputDigest: change.outputDigest ?? null,\n\t\t\toutputOwner: mapOwner(change.outputOwner),\n\t\t\tidOperation: mapIdOperation(change.idOperation)!,\n\t\t};\n\t});\n\n\treturn {\n\t\tbcs: effects.bcs?.value!,\n\n\t\tversion: 2,\n\t\tstatus: effects.status?.success\n\t\t\t? {\n\t\t\t\t\tsuccess: true,\n\t\t\t\t\terror: null,\n\t\t\t\t}\n\t\t\t: {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\terror: parseGrpcExecutionError(effects.status!.error!),\n\t\t\t\t},\n\t\tgasUsed: {\n\t\t\tcomputationCost: effects.gasUsed?.computationCost?.toString()!,\n\t\t\tstorageCost: effects.gasUsed?.storageCost?.toString()!,\n\t\t\tstorageRebate: effects.gasUsed?.storageRebate?.toString()!,\n\t\t\tnonRefundableStorageFee: effects.gasUsed?.nonRefundableStorageFee?.toString()!,\n\t\t},\n\t\ttransactionDigest: effects.transactionDigest!,\n\t\t// gas_object is unset when the transaction has no gas object (system\n\t\t// transactions, or gas paid from an address balance)\n\t\tgasObject: effects.gasObject\n\t\t\t? {\n\t\t\t\t\tobjectId: effects.gasObject.objectId!,\n\t\t\t\t\tinputState: mapInputObjectState(effects.gasObject.inputState)!,\n\t\t\t\t\tinputVersion: effects.gasObject.inputVersion?.toString() ?? null,\n\t\t\t\t\tinputDigest: effects.gasObject.inputDigest ?? null,\n\t\t\t\t\tinputOwner: mapOwner(effects.gasObject.inputOwner),\n\t\t\t\t\toutputState: mapOutputObjectState(effects.gasObject.outputState)!,\n\t\t\t\t\toutputVersion: effects.gasObject.outputVersion?.toString() ?? null,\n\t\t\t\t\toutputDigest: effects.gasObject.outputDigest ?? null,\n\t\t\t\t\toutputOwner: mapOwner(effects.gasObject.outputOwner),\n\t\t\t\t\tidOperation: mapIdOperation(effects.gasObject.idOperation)!,\n\t\t\t\t}\n\t\t\t: null,\n\t\teventsDigest: effects.eventsDigest ?? null,\n\t\tdependencies: effects.dependencies,\n\t\tlamportVersion: effects.lamportVersion?.toString() ?? null,\n\t\tchangedObjects,\n\t\tunchangedConsensusObjects: effects.unchangedConsensusObjects.map(\n\t\t\t(object): SuiClientTypes.UnchangedConsensusObject => {\n\t\t\t\treturn {\n\t\t\t\t\tkind: mapUnchangedConsensusObjectKind(object.kind)!,\n\t\t\t\t\t// TODO: we are inconsistent about id vs objectId\n\t\t\t\t\tobjectId: object.objectId!,\n\t\t\t\t\tversion: object.version?.toString() ?? null,\n\t\t\t\t\tdigest: object.digest ?? null,\n\t\t\t\t};\n\t\t\t},\n\t\t),\n\t\tauxiliaryDataDigest: effects.auxiliaryDataDigest ?? null,\n\t};\n}\n\nexport function parseGrpcTransactionResponse<\n\tInclude extends SuiClientTypes.TransactionInclude = {},\n>(\n\ttransaction: ExecutedTransaction,\n\toptions?: {\n\t\tinclude?: Include & SuiClientTypes.TransactionInclude;\n\t},\n): SuiClientTypes.TransactionResult<Include> {\n\tconst include = options?.include;\n\tconst objectTypes: Record<string, string> = {};\n\tif (include?.objectTypes) {\n\t\ttransaction.effects?.changedObjects?.forEach((change) => {\n\t\t\tif (change.objectId && change.objectType) {\n\t\t\t\tobjectTypes[change.objectId] = change.objectType;\n\t\t\t}\n\t\t});\n\t}\n\n\tlet transactionData: SuiClientTypes.TransactionData | undefined;\n\tif (include?.transaction) {\n\t\tconst tx = transaction.transaction;\n\n\t\tif (!tx) {\n\t\t\tthrow new Error('Transaction data is required but missing from gRPC response');\n\t\t}\n\n\t\tconst resolved = grpcTransactionToTransactionData(tx);\n\t\ttransactionData = {\n\t\t\tgasData: resolved.gasData,\n\t\t\tsender: resolved.sender,\n\t\t\texpiration: resolved.expiration,\n\t\t\tcommands: resolved.commands,\n\t\t\tinputs: resolved.inputs,\n\t\t\tversion: resolved.version,\n\t\t};\n\t}\n\n\tconst bcsBytes = include?.bcs ? transaction.transaction?.bcs?.value : undefined;\n\n\tconst effects = include?.effects\n\t\t? parseTransactionEffects({\n\t\t\t\teffects: transaction.effects,\n\t\t\t})\n\t\t: undefined;\n\n\tconst status: SuiClientTypes.ExecutionStatus = transaction.effects?.status?.success\n\t\t? { success: true, error: null }\n\t\t: {\n\t\t\t\tsuccess: false,\n\t\t\t\terror: transaction.effects?.status?.error\n\t\t\t\t\t? parseGrpcExecutionError(transaction.effects.status.error)\n\t\t\t\t\t: {\n\t\t\t\t\t\t\t$kind: 'Unknown',\n\t\t\t\t\t\t\tmessage: 'Transaction failed',\n\t\t\t\t\t\t\tUnknown: null,\n\t\t\t\t\t\t},\n\t\t\t};\n\n\tconst result: SuiClientTypes.Transaction<Include> = {\n\t\tdigest: transaction.digest!,\n\t\tepoch: transaction.effects?.epoch?.toString() ?? null,\n\t\tstatus,\n\t\teffects: effects as SuiClientTypes.Transaction<Include>['effects'],\n\t\tobjectTypes: (include?.objectTypes\n\t\t\t? objectTypes\n\t\t\t: undefined) as SuiClientTypes.Transaction<Include>['objectTypes'],\n\t\ttransaction: transactionData as SuiClientTypes.Transaction<Include>['transaction'],\n\t\tbcs: bcsBytes as SuiClientTypes.Transaction<Include>['bcs'],\n\t\tsignatures: transaction.signatures?.map((sig) => toBase64(sig.bcs?.value!)) ?? [],\n\t\tbalanceChanges: (include?.balanceChanges\n\t\t\t? (transaction.balanceChanges?.map((change) => ({\n\t\t\t\t\tcoinType: change.coinType!,\n\t\t\t\t\taddress: change.address!,\n\t\t\t\t\tamount: change.amount!,\n\t\t\t\t})) ?? [])\n\t\t\t: undefined) as SuiClientTypes.Transaction<Include>['balanceChanges'],\n\t\tevents: (include?.events\n\t\t\t? (transaction.events?.events.map((event) => ({\n\t\t\t\t\tpackageId: normalizeSuiAddress(event.packageId!),\n\t\t\t\t\tmodule: event.module!,\n\t\t\t\t\tsender: normalizeSuiAddress(event.sender!),\n\t\t\t\t\teventType: event.eventType!,\n\t\t\t\t\tbcs: event.contents?.value ?? new Uint8Array(),\n\t\t\t\t\tjson: event.json ? (Value.toJson(event.json) as Record<string, unknown>) : null,\n\t\t\t\t})) ?? [])\n\t\t\t: undefined) as SuiClientTypes.Transaction<Include>['events'],\n\t};\n\n\treturn status.success\n\t\t? {\n\t\t\t\t$kind: 'Transaction',\n\t\t\t\tTransaction: result,\n\t\t\t}\n\t\t: {\n\t\t\t\t$kind: 'FailedTransaction',\n\t\t\t\tFailedTransaction: result,\n\t\t\t};\n}\n\nexport function parseGrpcSimulateTransactionResponse<\n\tInclude extends SuiClientTypes.SimulateTransactionInclude = {},\n>(\n\tresponse: SimulateTransactionResponse,\n\toptions?: {\n\t\tinclude?: Include & SuiClientTypes.SimulateTransactionInclude;\n\t},\n): SuiClientTypes.SimulateTransactionResult<Include> {\n\tconst include = options?.include;\n\tconst transactionResult = parseGrpcTransactionResponse(response.transaction!, { include });\n\n\tconst commandResults =\n\t\tinclude?.commandResults && response.commandOutputs\n\t\t\t? response.commandOutputs.map((output) => ({\n\t\t\t\t\treturnValues: (output.returnValues ?? []).map((rv) => ({\n\t\t\t\t\t\tbcs: rv.value?.value ?? null,\n\t\t\t\t\t})),\n\t\t\t\t\tmutatedReferences: (output.mutatedByRef ?? []).map((mr) => ({\n\t\t\t\t\t\tbcs: mr.value?.value ?? null,\n\t\t\t\t\t})),\n\t\t\t\t}))\n\t\t\t: undefined;\n\n\tif (transactionResult.$kind === 'Transaction') {\n\t\treturn {\n\t\t\t$kind: 'Transaction',\n\t\t\tTransaction: transactionResult.Transaction,\n\t\t\tcommandResults:\n\t\t\t\tcommandResults as SuiClientTypes.SimulateTransactionResult<Include>['commandResults'],\n\t\t};\n\t}\n\n\treturn {\n\t\t$kind: 'FailedTransaction',\n\t\tFailedTransaction: transactionResult.FailedTransaction,\n\t\tcommandResults:\n\t\t\tcommandResults as SuiClientTypes.SimulateTransactionResult<Include>['commandResults'],\n\t};\n}\n\nfunction parseNormalizedSuiMoveType(type: OpenSignature): SuiClientTypes.OpenSignature {\n\tlet reference: 'mutable' | 'immutable' | null = null;\n\n\tif (type.reference === OpenSignature_Reference.IMMUTABLE) {\n\t\treference = 'immutable';\n\t} else if (type.reference === OpenSignature_Reference.MUTABLE) {\n\t\treference = 'mutable';\n\t}\n\n\treturn {\n\t\treference,\n\t\tbody: parseNormalizedSuiMoveTypeBody(type.body!),\n\t};\n}\n\nfunction parseNormalizedSuiMoveTypeBody(type: OpenSignatureBody): SuiClientTypes.OpenSignatureBody {\n\tswitch (type.type) {\n\t\tcase OpenSignatureBody_Type.TYPE_UNKNOWN:\n\t\t\treturn { $kind: 'unknown' };\n\t\tcase OpenSignatureBody_Type.ADDRESS:\n\t\t\treturn { $kind: 'address' };\n\t\tcase OpenSignatureBody_Type.BOOL:\n\t\t\treturn { $kind: 'bool' };\n\t\tcase OpenSignatureBody_Type.U8:\n\t\t\treturn { $kind: 'u8' };\n\t\tcase OpenSignatureBody_Type.U16:\n\t\t\treturn { $kind: 'u16' };\n\t\tcase OpenSignatureBody_Type.U32:\n\t\t\treturn { $kind: 'u32' };\n\t\tcase OpenSignatureBody_Type.U64:\n\t\t\treturn { $kind: 'u64' };\n\t\tcase OpenSignatureBody_Type.U128:\n\t\t\treturn { $kind: 'u128' };\n\t\tcase OpenSignatureBody_Type.U256:\n\t\t\treturn { $kind: 'u256' };\n\t\tcase OpenSignatureBody_Type.VECTOR:\n\t\t\treturn {\n\t\t\t\t$kind: 'vector',\n\t\t\t\tvector: parseNormalizedSuiMoveTypeBody(type.typeParameterInstantiation[0]),\n\t\t\t};\n\t\tcase OpenSignatureBody_Type.DATATYPE:\n\t\t\treturn {\n\t\t\t\t$kind: 'datatype',\n\t\t\t\tdatatype: {\n\t\t\t\t\ttypeName: type.typeName!,\n\t\t\t\t\ttypeParameters: type.typeParameterInstantiation.map((t) =>\n\t\t\t\t\t\tparseNormalizedSuiMoveTypeBody(t),\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t};\n\t\tcase OpenSignatureBody_Type.TYPE_PARAMETER:\n\t\t\treturn {\n\t\t\t\t$kind: 'typeParameter',\n\t\t\t\tindex: type.typeParameter!,\n\t\t\t};\n\t\tdefault:\n\t\t\treturn { $kind: 'unknown' };\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BatchGetObjectsRequest, BatchGetObjectsResponse, BatchGetTransactionsRequest, BatchGetTransactionsResponse, GetCheckpointRequest, GetCheckpointResponse, GetEpochRequest, GetEpochResponse, GetObjectRequest, GetObjectResponse, GetServiceInfoRequest, GetServiceInfoResponse, GetTransactionRequest, GetTransactionResponse, ListCheckpointsRequest, ListCheckpointsResponse, ListEventsRequest, ListEventsResponse, ListTransactionsRequest, ListTransactionsResponse } from "./ledger_service.mjs";
|
|
2
|
-
import * as
|
|
3
|
-
import * as
|
|
2
|
+
import * as _protobuf_ts_runtime4 from "@protobuf-ts/runtime";
|
|
3
|
+
import * as _protobuf_ts_runtime_rpc4 from "@protobuf-ts/runtime-rpc";
|
|
4
4
|
import { RpcOptions, RpcTransport, ServerStreamingCall, ServiceInfo, UnaryCall } from "@protobuf-ts/runtime-rpc";
|
|
5
5
|
|
|
6
6
|
//#region src/grpc/proto/sui/rpc/v2/ledger_service.client.d.ts
|
|
@@ -73,9 +73,9 @@ interface ILedgerServiceClient {
|
|
|
73
73
|
declare class LedgerServiceClient implements ILedgerServiceClient, ServiceInfo {
|
|
74
74
|
private readonly _transport;
|
|
75
75
|
typeName: string;
|
|
76
|
-
methods:
|
|
76
|
+
methods: _protobuf_ts_runtime_rpc4.MethodInfo<any, any>[];
|
|
77
77
|
options: {
|
|
78
|
-
[extensionName: string]:
|
|
78
|
+
[extensionName: string]: _protobuf_ts_runtime4.JsonValue;
|
|
79
79
|
};
|
|
80
80
|
constructor(_transport: RpcTransport);
|
|
81
81
|
/**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { GetDatatypeRequest, GetDatatypeResponse, GetFunctionRequest, GetFunctionResponse, GetPackageRequest, GetPackageResponse, ListPackageVersionsRequest, ListPackageVersionsResponse } from "./move_package_service.mjs";
|
|
2
|
-
import * as
|
|
3
|
-
import * as
|
|
2
|
+
import * as _protobuf_ts_runtime0 from "@protobuf-ts/runtime";
|
|
3
|
+
import * as _protobuf_ts_runtime_rpc0 from "@protobuf-ts/runtime-rpc";
|
|
4
4
|
import { RpcOptions, RpcTransport, ServiceInfo, UnaryCall } from "@protobuf-ts/runtime-rpc";
|
|
5
5
|
|
|
6
6
|
//#region src/grpc/proto/sui/rpc/v2/move_package_service.client.d.ts
|
|
@@ -31,9 +31,9 @@ interface IMovePackageServiceClient {
|
|
|
31
31
|
declare class MovePackageServiceClient implements IMovePackageServiceClient, ServiceInfo {
|
|
32
32
|
private readonly _transport;
|
|
33
33
|
typeName: string;
|
|
34
|
-
methods:
|
|
34
|
+
methods: _protobuf_ts_runtime_rpc0.MethodInfo<any, any>[];
|
|
35
35
|
options: {
|
|
36
|
-
[extensionName: string]:
|
|
36
|
+
[extensionName: string]: _protobuf_ts_runtime0.JsonValue;
|
|
37
37
|
};
|
|
38
38
|
constructor(_transport: RpcTransport);
|
|
39
39
|
/**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { LookupNameRequest, LookupNameResponse, ReverseLookupNameRequest, ReverseLookupNameResponse } from "./name_service.mjs";
|
|
2
|
-
import * as
|
|
3
|
-
import * as
|
|
2
|
+
import * as _protobuf_ts_runtime5 from "@protobuf-ts/runtime";
|
|
3
|
+
import * as _protobuf_ts_runtime_rpc5 from "@protobuf-ts/runtime-rpc";
|
|
4
4
|
import { RpcOptions, RpcTransport, ServiceInfo, UnaryCall } from "@protobuf-ts/runtime-rpc";
|
|
5
5
|
|
|
6
6
|
//#region src/grpc/proto/sui/rpc/v2/name_service.client.d.ts
|
|
@@ -23,9 +23,9 @@ interface INameServiceClient {
|
|
|
23
23
|
declare class NameServiceClient implements INameServiceClient, ServiceInfo {
|
|
24
24
|
private readonly _transport;
|
|
25
25
|
typeName: string;
|
|
26
|
-
methods:
|
|
26
|
+
methods: _protobuf_ts_runtime_rpc5.MethodInfo<any, any>[];
|
|
27
27
|
options: {
|
|
28
|
-
[extensionName: string]:
|
|
28
|
+
[extensionName: string]: _protobuf_ts_runtime5.JsonValue;
|
|
29
29
|
};
|
|
30
30
|
constructor(_transport: RpcTransport);
|
|
31
31
|
/**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { VerifySignatureRequest, VerifySignatureResponse } from "./signature_verification_service.mjs";
|
|
2
|
-
import * as
|
|
3
|
-
import * as
|
|
2
|
+
import * as _protobuf_ts_runtime1 from "@protobuf-ts/runtime";
|
|
3
|
+
import * as _protobuf_ts_runtime_rpc1 from "@protobuf-ts/runtime-rpc";
|
|
4
4
|
import { RpcOptions, RpcTransport, ServiceInfo, UnaryCall } from "@protobuf-ts/runtime-rpc";
|
|
5
5
|
|
|
6
6
|
//#region src/grpc/proto/sui/rpc/v2/signature_verification_service.client.d.ts
|
|
@@ -21,9 +21,9 @@ interface ISignatureVerificationServiceClient {
|
|
|
21
21
|
declare class SignatureVerificationServiceClient implements ISignatureVerificationServiceClient, ServiceInfo {
|
|
22
22
|
private readonly _transport;
|
|
23
23
|
typeName: string;
|
|
24
|
-
methods:
|
|
24
|
+
methods: _protobuf_ts_runtime_rpc1.MethodInfo<any, any>[];
|
|
25
25
|
options: {
|
|
26
|
-
[extensionName: string]:
|
|
26
|
+
[extensionName: string]: _protobuf_ts_runtime1.JsonValue;
|
|
27
27
|
};
|
|
28
28
|
constructor(_transport: RpcTransport);
|
|
29
29
|
/**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { GetBalanceRequest, GetBalanceResponse, GetCoinInfoRequest, GetCoinInfoResponse, ListBalancesRequest, ListBalancesResponse, ListDynamicFieldsRequest, ListDynamicFieldsResponse, ListOwnedObjectsRequest, ListOwnedObjectsResponse } from "./state_service.mjs";
|
|
2
|
-
import * as
|
|
3
|
-
import * as
|
|
2
|
+
import * as _protobuf_ts_runtime2 from "@protobuf-ts/runtime";
|
|
3
|
+
import * as _protobuf_ts_runtime_rpc2 from "@protobuf-ts/runtime-rpc";
|
|
4
4
|
import { RpcOptions, RpcTransport, ServiceInfo, UnaryCall } from "@protobuf-ts/runtime-rpc";
|
|
5
5
|
|
|
6
6
|
//#region src/grpc/proto/sui/rpc/v2/state_service.client.d.ts
|
|
@@ -35,9 +35,9 @@ interface IStateServiceClient {
|
|
|
35
35
|
declare class StateServiceClient implements IStateServiceClient, ServiceInfo {
|
|
36
36
|
private readonly _transport;
|
|
37
37
|
typeName: string;
|
|
38
|
-
methods:
|
|
38
|
+
methods: _protobuf_ts_runtime_rpc2.MethodInfo<any, any>[];
|
|
39
39
|
options: {
|
|
40
|
-
[extensionName: string]:
|
|
40
|
+
[extensionName: string]: _protobuf_ts_runtime2.JsonValue;
|
|
41
41
|
};
|
|
42
42
|
constructor(_transport: RpcTransport);
|
|
43
43
|
/**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { SubscribeCheckpointsRequest, SubscribeCheckpointsResponse, SubscribeEventsRequest, SubscribeEventsResponse, SubscribeTransactionsRequest, SubscribeTransactionsResponse } from "./subscription_service.mjs";
|
|
2
|
-
import * as
|
|
3
|
-
import * as
|
|
2
|
+
import * as _protobuf_ts_runtime3 from "@protobuf-ts/runtime";
|
|
3
|
+
import * as _protobuf_ts_runtime_rpc3 from "@protobuf-ts/runtime-rpc";
|
|
4
4
|
import { RpcOptions, RpcTransport, ServerStreamingCall, ServiceInfo } from "@protobuf-ts/runtime-rpc";
|
|
5
5
|
|
|
6
6
|
//#region src/grpc/proto/sui/rpc/v2/subscription_service.client.d.ts
|
|
@@ -100,9 +100,9 @@ interface ISubscriptionServiceClient {
|
|
|
100
100
|
declare class SubscriptionServiceClient implements ISubscriptionServiceClient, ServiceInfo {
|
|
101
101
|
private readonly _transport;
|
|
102
102
|
typeName: string;
|
|
103
|
-
methods:
|
|
103
|
+
methods: _protobuf_ts_runtime_rpc3.MethodInfo<any, any>[];
|
|
104
104
|
options: {
|
|
105
|
-
[extensionName: string]:
|
|
105
|
+
[extensionName: string]: _protobuf_ts_runtime3.JsonValue;
|
|
106
106
|
};
|
|
107
107
|
constructor(_transport: RpcTransport);
|
|
108
108
|
/**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ExecuteTransactionRequest, ExecuteTransactionResponse, SimulateTransactionRequest, SimulateTransactionResponse } from "./transaction_execution_service.mjs";
|
|
2
|
-
import * as
|
|
3
|
-
import * as
|
|
2
|
+
import * as _protobuf_ts_runtime6 from "@protobuf-ts/runtime";
|
|
3
|
+
import * as _protobuf_ts_runtime_rpc6 from "@protobuf-ts/runtime-rpc";
|
|
4
4
|
import { RpcOptions, RpcTransport, ServiceInfo, UnaryCall } from "@protobuf-ts/runtime-rpc";
|
|
5
5
|
|
|
6
6
|
//#region src/grpc/proto/sui/rpc/v2/transaction_execution_service.client.d.ts
|
|
@@ -23,9 +23,9 @@ interface ITransactionExecutionServiceClient {
|
|
|
23
23
|
declare class TransactionExecutionServiceClient implements ITransactionExecutionServiceClient, ServiceInfo {
|
|
24
24
|
private readonly _transport;
|
|
25
25
|
typeName: string;
|
|
26
|
-
methods:
|
|
26
|
+
methods: _protobuf_ts_runtime_rpc6.MethodInfo<any, any>[];
|
|
27
27
|
options: {
|
|
28
|
-
[extensionName: string]:
|
|
28
|
+
[extensionName: string]: _protobuf_ts_runtime6.JsonValue;
|
|
29
29
|
};
|
|
30
30
|
constructor(_transport: RpcTransport);
|
|
31
31
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.d.mts","names":[],"sources":["../../src/jsonRpc/core.ts"],"mappings":";;;;;;;;;
|
|
1
|
+
{"version":3,"file":"core.d.mts","names":[],"sources":["../../src/jsonRpc/core.ts"],"mappings":";;;;;;;;;AA+KA;;cAAa,iBAAA,SAA0B,UAAA;EAAA;EASrC;;;;;IADA,aAAA;IACA;EAAA;IAEA,aAAA,EAAe,gBAAA;IACf,GAAA,GAAM,cAAA,CAAe,UAAA;EAAA;;;;;EAUhB,UAAA,iBAA2B,cAAA,CAAe,aAAA,MAAA,CAC/C,OAAA,EAAS,cAAA,CAAe,iBAAA,CAAkB,OAAA,IAAQ,OAAA;;;;;;;EAqC7C,gBAAA,iBAAiC,cAAA,CAAe,aAAA,MAAA,CACrD,OAAA,EAAS,cAAA,CAAe,uBAAA,CAAwB,OAAA,IAAQ,OAAA;;;;;EA0GtD;;;;EAzDG,SAAA,CAAU,OAAA,EAAS,cAAA,CAAe,gBAAA,GAAgB,OAAA;;;;;EA+If;;;;EA/GnC,UAAA,CAAW,OAAA,EAAS,cAAA,CAAe,iBAAA,GAAiB,OAAA;;;;;;;;EAuRrB;;;;EAhQ/B,eAAA,CACL,OAAA,EAAS,cAAA,CAAe,sBAAA,GACtB,OAAA,CAAQ,cAAA,CAAe,uBAAA;EAmTf;;;;EArRL,YAAA,CAAa,OAAA,EAAS,cAAA,CAAe,mBAAA,GAAmB,OAAA;;;;;;;;;;EAma3D;;;;EA1YG,cAAA,iBAA+B,cAAA,CAAe,kBAAA,MAAA,CACnD,OAAA,EAAS,cAAA,CAAe,qBAAA,CAAsB,OAAA,IAC5C,OAAA,CAAQ,cAAA,CAAe,iBAAA,CAAkB,OAAA;EAodzC;;;;EAvbG,kBAAA,iBAAmC,cAAA,CAAe,kBAAA,MAAA,CACvD,OAAA,EAAS,cAAA,CAAe,yBAAA,CAA0B,OAAA,IAChD,OAAA,CAAQ,cAAA,CAAe,iBAAA,CAAkB,OAAA;EAudlC;;;;EAhcJ,mBAAA,iBAAoC,cAAA,CAAe,0BAAA,MAAA,CACxD,OAAA,EAAS,cAAA,CAAe,0BAAA,CAA2B,OAAA,IACjD,OAAA,CAAQ,cAAA,CAAe,yBAAA,CAA0B,OAAA;EAiejD;;;;EApVG,oBAAA,CAAqB,OAAA,GAAU,cAAA,CAAe,2BAAA,GAA2B,OAAA;;;EA7Z9E;;;;EA2aK,iBAAA,CACL,OAAA,GAAU,cAAA,CAAe,wBAAA,GACvB,OAAA,CAAQ,cAAA,CAAe,yBAAA;EA1aV;;;;EA8cV,qBAAA,CACL,OAAA,GAAU,cAAA,CAAe,4BAAA,GACvB,OAAA,CAAQ,cAAA,CAAe,6BAAA;EArcT;;;;EAifX,iBAAA,CAAkB,OAAA,EAAS,cAAA,CAAe,wBAAA,GAAwB,OAAA;;;;;;;;;EAwClE,gBAAA,iBAAiC,cAAA,CAAe,kBAAA,MAAA,CACrD,OAAA,EAAS,cAAA,CAAe,uBAAA,CAAwB,OAAA,IAC9C,OAAA,CAAQ,cAAA,CAAe,wBAAA,CAAyB,OAAA;EArf5B;;;;EA0iBjB,UAAA,CACL,OAAA,EAAS,cAAA,CAAe,iBAAA,GACtB,OAAA,CAAQ,cAAA,CAAe,kBAAA;EA3iBuB;;;;EAkmB3C,sBAAA,CAAuB,OAAA,EAAS,cAAA,CAAe,6BAAA,GAA6B,OAAA;;;;;;;;EAmB5E,sBAAA,CACL,OAAA,EAAS,cAAA,CAAe,6BAAA,GACtB,OAAA,CAAQ,cAAA,CAAe,8BAAA;EAtkBc;;;;EAmlBlC,yBAAA,CACL,OAAA,EAAS,cAAA,CAAe,gCAAA,GACtB,OAAA,CAAQ,cAAA,CAAe,iCAAA;;;;;EAU1B,wBAAA,CAAA,UAAwB,kCAAA;EA/jBiB;;;;EAukBnC,eAAA,CACL,OAAA,EAAS,cAAA,CAAe,sBAAA,GACtB,OAAA,CAAQ,cAAA,CAAe,uBAAA;;;;;EAgCpB,kBAAA,CACL,OAAA,GAAU,cAAA,CAAe,yBAAA,GACvB,OAAA,CAAQ,cAAA,CAAe,0BAAA;AAAA"}
|