@mysten/sui 2.24.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.
Files changed (77) hide show
  1. package/CHANGELOG.md +69 -0
  2. package/dist/bcs/bcs.d.mts +6 -6
  3. package/dist/client/core.d.mts.map +1 -1
  4. package/dist/client/core.mjs +4 -1
  5. package/dist/client/core.mjs.map +1 -1
  6. package/dist/client/errors.d.mts +31 -2
  7. package/dist/client/errors.d.mts.map +1 -1
  8. package/dist/client/errors.mjs +15 -13
  9. package/dist/client/errors.mjs.map +1 -1
  10. package/dist/client/index.d.mts +2 -2
  11. package/dist/client/index.mjs +2 -2
  12. package/dist/client/mvr.d.mts.map +1 -1
  13. package/dist/client/mvr.mjs +1 -0
  14. package/dist/client/mvr.mjs.map +1 -1
  15. package/dist/cryptography/signature.d.mts +6 -6
  16. package/dist/graphql/client.d.mts +5 -1
  17. package/dist/graphql/client.d.mts.map +1 -1
  18. package/dist/graphql/client.mjs +15 -2
  19. package/dist/graphql/client.mjs.map +1 -1
  20. package/dist/graphql/core.d.mts +4 -4
  21. package/dist/graphql/core.d.mts.map +1 -1
  22. package/dist/graphql/core.mjs +61 -18
  23. package/dist/graphql/core.mjs.map +1 -1
  24. package/dist/graphql/generated/tada-env.d.mts +16 -0
  25. package/dist/grpc/client.d.mts +5 -1
  26. package/dist/grpc/client.d.mts.map +1 -1
  27. package/dist/grpc/client.mjs +14 -2
  28. package/dist/grpc/client.mjs.map +1 -1
  29. package/dist/grpc/core.d.mts.map +1 -1
  30. package/dist/grpc/core.mjs +29 -12
  31. package/dist/grpc/core.mjs.map +1 -1
  32. package/dist/grpc/proto/sui/rpc/v2/ledger_service.client.d.mts +4 -4
  33. package/dist/grpc/proto/sui/rpc/v2/name_service.client.d.mts +4 -4
  34. package/dist/grpc/proto/sui/rpc/v2/signature_verification_service.client.d.mts +4 -4
  35. package/dist/grpc/proto/sui/rpc/v2/state_service.client.d.mts +4 -4
  36. package/dist/grpc/proto/sui/rpc/v2/subscription_service.client.d.mts +4 -4
  37. package/dist/grpc/proto/sui/rpc/v2/transaction_execution_service.client.d.mts +4 -4
  38. package/dist/jsonRpc/client.d.mts.map +1 -1
  39. package/dist/jsonRpc/client.mjs +60 -15
  40. package/dist/jsonRpc/client.mjs.map +1 -1
  41. package/dist/jsonRpc/core.d.mts +1 -1
  42. package/dist/jsonRpc/core.d.mts.map +1 -1
  43. package/dist/jsonRpc/core.mjs +73 -22
  44. package/dist/jsonRpc/core.mjs.map +1 -1
  45. package/dist/transactions/Transaction.d.mts +6 -6
  46. package/dist/transactions/data/v1.d.mts +220 -220
  47. package/dist/transactions/data/v1.d.mts.map +1 -1
  48. package/dist/transactions/data/v2.d.mts +16 -16
  49. package/dist/transactions/data/v2.d.mts.map +1 -1
  50. package/dist/version.mjs +1 -1
  51. package/dist/version.mjs.map +1 -1
  52. package/dist/zklogin/bcs.d.mts +14 -14
  53. package/docs/bcs.md +2 -2
  54. package/docs/clients/core.md +150 -710
  55. package/docs/clients/executing.md +113 -0
  56. package/docs/clients/graphql.md +80 -70
  57. package/docs/clients/grpc.md +223 -208
  58. package/docs/clients/index.md +56 -67
  59. package/docs/clients/querying.md +539 -0
  60. package/docs/llms-index.md +6 -5
  61. package/docs/migrations/sui-2.0/json-rpc-migration.md +3 -1
  62. package/docs/transactions/signing-and-execution.md +8 -28
  63. package/package.json +1 -1
  64. package/src/client/core.ts +1 -0
  65. package/src/client/errors.ts +39 -23
  66. package/src/client/index.ts +9 -1
  67. package/src/client/mvr.ts +6 -0
  68. package/src/graphql/client.ts +29 -2
  69. package/src/graphql/core.ts +53 -16
  70. package/src/graphql/generated/schema.graphql +11 -1
  71. package/src/graphql/generated/tada-env.ts +20 -0
  72. package/src/grpc/client.ts +28 -2
  73. package/src/grpc/core.ts +90 -65
  74. package/src/jsonRpc/client.ts +15 -0
  75. package/src/jsonRpc/core.ts +102 -24
  76. package/src/version.ts +1 -1
  77. package/docs/clients/json-rpc.md +0 -243
@@ -1 +1 @@
1
- {"version":3,"file":"core.mjs","names":["#graphqlClient","#graphqlQuery","result","GrpcTransactionType","TransactionEffectsType","BalanceChangeType"],"sources":["../../src/graphql/core.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { CoreClient } from '../client/core.js';\nimport type { SuiClientTypes } from '../client/types.js';\nimport { SUI_TYPE_ARG } from '../utils/constants.js';\nimport type { GraphQLQueryOptions, SuiGraphQLClient } from './client.js';\nimport type {\n\tObject_Owner_FieldsFragment,\n\tTransaction_FieldsFragment,\n} from './generated/queries.js';\n\ntype GraphQLExecutionError = NonNullable<\n\tNonNullable<Transaction_FieldsFragment['effects']>['executionError']\n>;\nimport {\n\tDefaultSuinsNameDocument,\n\tExecuteTransactionDocument,\n\tExecutionStatus,\n\tGetAllBalancesDocument,\n\tGetBalanceDocument,\n\tGetChainIdentifierDocument,\n\tGetCoinMetadataDocument,\n\tGetCoinsDocument,\n\tGetCurrentSystemStateDocument,\n\tGetMoveFunctionDocument,\n\tGetProtocolConfigDocument,\n\tGetOwnedObjectsDocument,\n\tGetReferenceGasPriceDocument,\n\tGetTransactionBlockDocument,\n\tListEventsDocument,\n\tListTransactionsDocument,\n\tMultiGetObjectsDocument,\n\tResolveNameServiceAddressDocument,\n\tResolveTransactionDocument,\n\tSimulateTransactionDocument,\n\tVerifyZkLoginSignatureDocument,\n\tZkLoginIntentScope,\n} from './generated/queries.js';\nimport { ObjectError, SimulationError } from '../client/errors.js';\nimport { chunk, fromBase64, toBase64 } from '@mysten/utils';\nimport { normalizeStructTag, normalizeSuiAddress } from '../utils/sui-types.js';\nimport {\n\tformatMoveAbortMessage,\n\tparseTransactionEffectsBcs,\n\ttransactionBytesHaveEmptyGasPayment,\n} from '../client/utils.js';\nimport type { OpenMoveTypeSignatureBody, OpenMoveTypeSignature } from './types.js';\nimport {\n\ttransactionDataToGrpcTransaction,\n\ttransactionToGrpcJson,\n\tgrpcTransactionToTransactionData,\n} from '../client/transaction-resolver.js';\nimport { setAddressBalanceTransactionExpirationFromSimulatedEpoch } from '../client/address-balance-transaction-expiration.js';\nimport { BalanceChange as BalanceChangeType } from '../grpc/proto/sui/rpc/v2/balance_change.js';\nimport { TransactionEffects as TransactionEffectsType } from '../grpc/proto/sui/rpc/v2/effects.js';\nimport { Transaction as GrpcTransactionType } from '../grpc/proto/sui/rpc/v2/transaction.js';\nimport { TransactionDataBuilder } from '../transactions/TransactionData.js';\nimport type { BuildTransactionOptions } from '../transactions/index.js';\nimport {\n\tresolveEventFilter,\n\tresolvePagination,\n\tresolveTransactionFilter,\n\tvalidateTransactionQuery,\n} from '../client/query-filters.js';\n\nexport class GraphQLCoreClient extends CoreClient {\n\t#graphqlClient: SuiGraphQLClient;\n\n\tconstructor({\n\t\tgraphqlClient,\n\t\tmvr,\n\t}: {\n\t\tgraphqlClient: SuiGraphQLClient;\n\t\tmvr?: SuiClientTypes.MvrOptions;\n\t}) {\n\t\tsuper({ network: graphqlClient.network, base: graphqlClient, mvr });\n\t\tthis.#graphqlClient = graphqlClient;\n\t}\n\n\tasync #graphqlQuery<\n\t\tResult = Record<string, unknown>,\n\t\tVariables = Record<string, unknown>,\n\t\tData = Result,\n\t>(\n\t\toptions: GraphQLQueryOptions<Result, Variables>,\n\t\tgetData?: (result: Result) => Data,\n\t): Promise<NonNullable<Data>> {\n\t\tconst { data, errors } = await this.#graphqlClient.query(options);\n\n\t\thandleGraphQLErrors(errors);\n\n\t\tconst extractedData = data && (getData ? getData(data) : data);\n\n\t\tif (extractedData == null) {\n\t\t\tthrow new Error('Missing response data');\n\t\t}\n\n\t\treturn extractedData as NonNullable<Data>;\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\tfor (const batch of batches) {\n\t\t\tconst page = await this.#graphqlQuery(\n\t\t\t\t{\n\t\t\t\t\tquery: MultiGetObjectsDocument,\n\t\t\t\t\tvariables: {\n\t\t\t\t\t\tobjectKeys: batch.map((address) => ({ address })),\n\t\t\t\t\t\tincludeContent: options.include?.content ?? false,\n\t\t\t\t\t\tincludePreviousTransaction: options.include?.previousTransaction ?? false,\n\t\t\t\t\t\tincludeObjectBcs: options.include?.objectBcs ?? false,\n\t\t\t\t\t\tincludeJson: options.include?.json ?? false,\n\t\t\t\t\t\tincludeDisplay: options.include?.display ?? false,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t(result) => result.multiGetObjects,\n\t\t\t);\n\t\t\tresults.push(\n\t\t\t\t...batch\n\t\t\t\t\t.map((id) => normalizeSuiAddress(id))\n\t\t\t\t\t.map(\n\t\t\t\t\t\t(id) =>\n\t\t\t\t\t\t\tpage.find((obj) => obj?.address === id) ??\n\t\t\t\t\t\t\tnew ObjectError('notFound', `Object ${id} not found`),\n\t\t\t\t\t)\n\t\t\t\t\t.map((obj) => {\n\t\t\t\t\t\tif (obj instanceof ObjectError) {\n\t\t\t\t\t\t\treturn obj;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst bcsContent = obj.asMoveObject?.contents?.bcs\n\t\t\t\t\t\t\t? fromBase64(obj.asMoveObject.contents.bcs)\n\t\t\t\t\t\t\t: undefined;\n\n\t\t\t\t\t\tconst objectBcs = obj.objectBcs ? fromBase64(obj.objectBcs) : undefined;\n\n\t\t\t\t\t\t// Determine object type: package or Move object\n\t\t\t\t\t\t// GraphQL already returns normalized struct tags\n\t\t\t\t\t\tlet type: string;\n\t\t\t\t\t\tif (obj.asMovePackage) {\n\t\t\t\t\t\t\ttype = 'package';\n\t\t\t\t\t\t} else if (obj.asMoveObject?.contents?.type?.repr) {\n\t\t\t\t\t\t\ttype = obj.asMoveObject.contents.type.repr;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttype = '';\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst jsonContent = options.include?.json\n\t\t\t\t\t\t\t? obj.asMoveObject?.contents?.json\n\t\t\t\t\t\t\t\t? (obj.asMoveObject.contents.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 = mapDisplay(\n\t\t\t\t\t\t\toptions.include?.display,\n\t\t\t\t\t\t\tobj.asMoveObject?.contents?.display,\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tobjectId: obj.address,\n\t\t\t\t\t\t\tversion: obj.version?.toString()!,\n\t\t\t\t\t\t\tdigest: obj.digest!,\n\t\t\t\t\t\t\towner: mapOwner(obj.owner!),\n\t\t\t\t\t\t\ttype,\n\t\t\t\t\t\t\tcontent: bcsContent as SuiClientTypes.Object<Include>['content'],\n\t\t\t\t\t\t\tpreviousTransaction: (obj.previousTransaction?.digest ??\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);\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 objects = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: GetOwnedObjectsDocument,\n\t\t\t\tvariables: {\n\t\t\t\t\towner: options.owner,\n\t\t\t\t\tlimit: options.limit,\n\t\t\t\t\tcursor: options.cursor,\n\t\t\t\t\tfilter: options.type\n\t\t\t\t\t\t? { type: (await this.mvr.resolveType({ type: options.type })).type }\n\t\t\t\t\t\t: undefined,\n\t\t\t\t\tincludeContent: options.include?.content ?? false,\n\t\t\t\t\tincludePreviousTransaction: options.include?.previousTransaction ?? false,\n\t\t\t\t\tincludeObjectBcs: options.include?.objectBcs ?? false,\n\t\t\t\t\tincludeJson: options.include?.json ?? false,\n\t\t\t\t\tincludeDisplay: options.include?.display ?? false,\n\t\t\t\t},\n\t\t\t},\n\t\t\t(result) => result.address?.objects,\n\t\t);\n\n\t\treturn {\n\t\t\tobjects: objects.nodes.map(\n\t\t\t\t(obj): SuiClientTypes.Object<Include> => ({\n\t\t\t\t\tobjectId: obj.address,\n\t\t\t\t\tversion: obj.version?.toString()!,\n\t\t\t\t\tdigest: obj.digest!,\n\t\t\t\t\towner: mapOwner(obj.owner!),\n\t\t\t\t\ttype: obj.contents?.type?.repr!,\n\t\t\t\t\tcontent: (obj.contents?.bcs\n\t\t\t\t\t\t? fromBase64(obj.contents.bcs)\n\t\t\t\t\t\t: undefined) as SuiClientTypes.Object<Include>['content'],\n\t\t\t\t\tpreviousTransaction: (obj.previousTransaction?.digest ??\n\t\t\t\t\t\tundefined) as SuiClientTypes.Object<Include>['previousTransaction'],\n\t\t\t\t\tobjectBcs: (obj.objectBcs\n\t\t\t\t\t\t? fromBase64(obj.objectBcs)\n\t\t\t\t\t\t: undefined) as SuiClientTypes.Object<Include>['objectBcs'],\n\t\t\t\t\tjson: (options.include?.json\n\t\t\t\t\t\t? obj.contents?.json\n\t\t\t\t\t\t\t? (obj.contents.json as Record<string, unknown>)\n\t\t\t\t\t\t\t: null\n\t\t\t\t\t\t: undefined) as SuiClientTypes.Object<Include>['json'],\n\t\t\t\t\tdisplay: mapDisplay(\n\t\t\t\t\t\toptions.include?.display,\n\t\t\t\t\t\tobj.contents?.display,\n\t\t\t\t\t) as SuiClientTypes.Object<Include>['display'],\n\t\t\t\t}),\n\t\t\t),\n\t\t\thasNextPage: objects.pageInfo.hasNextPage,\n\t\t\tcursor: objects.pageInfo.endCursor ?? null,\n\t\t};\n\t}\n\tasync listCoins(\n\t\toptions: SuiClientTypes.ListCoinsOptions,\n\t): Promise<SuiClientTypes.ListCoinsResponse> {\n\t\tconst coinType = options.coinType ?? SUI_TYPE_ARG;\n\t\tconst coins = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: GetCoinsDocument,\n\t\t\t\tvariables: {\n\t\t\t\t\towner: options.owner,\n\t\t\t\t\tcursor: options.cursor,\n\t\t\t\t\tfirst: options.limit,\n\t\t\t\t\ttype: `0x2::coin::Coin<${(await this.mvr.resolveType({ type: coinType })).type}>`,\n\t\t\t\t},\n\t\t\t},\n\t\t\t(result) => result.address?.objects,\n\t\t);\n\n\t\treturn {\n\t\t\tcursor: coins.pageInfo.endCursor ?? null,\n\t\t\thasNextPage: coins.pageInfo.hasNextPage,\n\t\t\tobjects: coins.nodes.map(\n\t\t\t\t(coin): SuiClientTypes.Coin => ({\n\t\t\t\t\tobjectId: coin.address,\n\t\t\t\t\tversion: coin.version?.toString()!,\n\t\t\t\t\tdigest: coin.digest!,\n\t\t\t\t\towner: mapOwner(coin.owner!),\n\t\t\t\t\ttype: coin.contents?.type?.repr!,\n\t\t\t\t\tbalance: (coin.contents?.json as { balance: string })?.balance,\n\t\t\t\t}),\n\t\t\t),\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.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: GetBalanceDocument,\n\t\t\t\tvariables: {\n\t\t\t\t\towner: options.owner,\n\t\t\t\t\tcoinType: (await this.mvr.resolveType({ type: coinType })).type,\n\t\t\t\t},\n\t\t\t},\n\t\t\t(result) => result.address?.balance,\n\t\t);\n\n\t\tconst addressBalance = BigInt(result.addressBalance ?? '0');\n\t\tconst coinBalance = BigInt(result.totalBalance ?? '0') - addressBalance;\n\n\t\treturn {\n\t\t\tbalance: {\n\t\t\t\tcoinType: result.coinType?.repr ?? coinType,\n\t\t\t\tbalance: result.totalBalance ?? '0',\n\t\t\t\tcoinBalance: coinBalance.toString(),\n\t\t\t\taddressBalance: addressBalance.toString(),\n\t\t\t},\n\t\t};\n\t}\n\tasync getCoinMetadata(\n\t\toptions: SuiClientTypes.GetCoinMetadataOptions,\n\t): Promise<SuiClientTypes.GetCoinMetadataResponse> {\n\t\tconst coinType = (await this.mvr.resolveType({ type: options.coinType })).type;\n\n\t\tconst { data, errors } = await this.#graphqlClient.query({\n\t\t\tquery: GetCoinMetadataDocument,\n\t\t\tvariables: {\n\t\t\t\tcoinType,\n\t\t\t},\n\t\t});\n\n\t\thandleGraphQLErrors(errors);\n\n\t\tif (!data?.coinMetadata) {\n\t\t\treturn { coinMetadata: null };\n\t\t}\n\n\t\treturn {\n\t\t\tcoinMetadata: {\n\t\t\t\tid: data.coinMetadata.address!,\n\t\t\t\tdecimals: data.coinMetadata.decimals!,\n\t\t\t\tname: data.coinMetadata.name!,\n\t\t\t\tsymbol: data.coinMetadata.symbol!,\n\t\t\t\tdescription: data.coinMetadata.description!,\n\t\t\t\ticonUrl: data.coinMetadata.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 balances = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: GetAllBalancesDocument,\n\t\t\t\tvariables: {\n\t\t\t\t\towner: options.owner,\n\t\t\t\t\tlimit: options.limit,\n\t\t\t\t\tcursor: options.cursor,\n\t\t\t\t},\n\t\t\t},\n\t\t\t(result) => result.address?.balances,\n\t\t);\n\n\t\treturn {\n\t\t\tcursor: balances.pageInfo.endCursor ?? null,\n\t\t\thasNextPage: balances.pageInfo.hasNextPage,\n\t\t\tbalances: balances.nodes.map((balance) => {\n\t\t\t\tconst addressBalance = BigInt(balance.addressBalance ?? '0');\n\t\t\t\tconst coinBalance = BigInt(balance.totalBalance ?? '0') - addressBalance;\n\t\t\t\treturn {\n\t\t\t\t\tcoinType: balance.coinType?.repr!,\n\t\t\t\t\tbalance: balance.totalBalance!,\n\t\t\t\t\tcoinBalance: coinBalance.toString(),\n\t\t\t\t\taddressBalance: addressBalance.toString(),\n\t\t\t\t};\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 result = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: GetTransactionBlockDocument,\n\t\t\t\tvariables: {\n\t\t\t\t\tdigest: options.digest,\n\t\t\t\t\tincludeTransaction: options.include?.transaction ?? false,\n\t\t\t\t\tincludeEffects: options.include?.effects ?? false,\n\t\t\t\t\tincludeEvents: options.include?.events ?? false,\n\t\t\t\t\tincludeBalanceChanges: options.include?.balanceChanges ?? false,\n\t\t\t\t\tincludeObjectTypes: options.include?.objectTypes ?? false,\n\t\t\t\t\tincludeBcs: options.include?.bcs ?? false,\n\t\t\t\t},\n\t\t\t},\n\t\t\t(result) => result.transaction,\n\t\t);\n\n\t\treturn parseTransaction(result, options.include);\n\t}\n\tasync executeTransaction<Include extends SuiClientTypes.TransactionInclude = {}>(\n\t\toptions: SuiClientTypes.ExecuteTransactionOptions<Include>,\n\t): Promise<SuiClientTypes.TransactionResult<Include>> {\n\t\tconst result = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: ExecuteTransactionDocument,\n\t\t\t\tvariables: {\n\t\t\t\t\ttransactionDataBcs: toBase64(options.transaction),\n\t\t\t\t\tsignatures: options.signatures,\n\t\t\t\t\tincludeTransaction: options.include?.transaction ?? false,\n\t\t\t\t\tincludeEffects: options.include?.effects ?? false,\n\t\t\t\t\tincludeEvents: options.include?.events ?? false,\n\t\t\t\t\tincludeBalanceChanges: options.include?.balanceChanges ?? false,\n\t\t\t\t\tincludeObjectTypes: options.include?.objectTypes ?? false,\n\t\t\t\t\tincludeBcs: options.include?.bcs ?? false,\n\t\t\t\t},\n\t\t\t},\n\t\t\t(result) => result.executeTransaction,\n\t\t);\n\n\t\treturn parseTransaction(result.effects?.transaction!, options.include);\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\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 result = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: SimulateTransactionDocument,\n\t\t\t\tvariables: {\n\t\t\t\t\ttransaction:\n\t\t\t\t\t\toptions.transaction instanceof Uint8Array\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\tbcs: {\n\t\t\t\t\t\t\t\t\t\tvalue: toBase64(options.transaction),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t: transactionToGrpcJson(options.transaction),\n\t\t\t\t\tincludeTransaction: options.include?.transaction ?? false,\n\t\t\t\t\tincludeEffects: options.include?.effects ?? false,\n\t\t\t\t\tincludeEvents: options.include?.events ?? false,\n\t\t\t\t\tincludeBalanceChanges: options.include?.balanceChanges ?? false,\n\t\t\t\t\tincludeObjectTypes: options.include?.objectTypes ?? false,\n\t\t\t\t\tincludeCommandResults: options.include?.commandResults ?? false,\n\t\t\t\t\tincludeBcs: options.include?.bcs ?? false,\n\t\t\t\t\tdoGasSelection,\n\t\t\t\t\tchecksEnabled: options.checksEnabled ?? true,\n\t\t\t\t},\n\t\t\t},\n\t\t\t(result) => result.simulateTransaction,\n\t\t);\n\n\t\tconst transactionResult = parseTransaction(result.effects?.transaction!, options.include);\n\n\t\tconst commandResults =\n\t\t\toptions.include?.commandResults && result.outputs\n\t\t\t\t? result.outputs.map((output) => ({\n\t\t\t\t\t\treturnValues: (output.returnValues ?? []).map((rv) => ({\n\t\t\t\t\t\t\tbcs: rv.value?.bcs ? fromBase64(rv.value.bcs) : null,\n\t\t\t\t\t\t})),\n\t\t\t\t\t\tmutatedReferences: (output.mutatedReferences ?? []).map((mr) => ({\n\t\t\t\t\t\t\tbcs: mr.value?.bcs ? fromBase64(mr.value.bcs) : null,\n\t\t\t\t\t\t})),\n\t\t\t\t\t}))\n\t\t\t\t: undefined;\n\n\t\tif (transactionResult.$kind === 'Transaction') {\n\t\t\treturn {\n\t\t\t\t$kind: 'Transaction',\n\t\t\t\tTransaction: transactionResult.Transaction,\n\t\t\t\tcommandResults:\n\t\t\t\t\tcommandResults as SuiClientTypes.SimulateTransactionResult<Include>['commandResults'],\n\t\t\t};\n\t\t} else {\n\t\t\treturn {\n\t\t\t\t$kind: 'FailedTransaction',\n\t\t\t\tFailedTransaction: transactionResult.FailedTransaction,\n\t\t\t\tcommandResults:\n\t\t\t\t\tcommandResults as SuiClientTypes.SimulateTransactionResult<Include>['commandResults'],\n\t\t\t};\n\t\t}\n\t}\n\tasync getReferenceGasPrice(): Promise<SuiClientTypes.GetReferenceGasPriceResponse> {\n\t\tconst result = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: GetReferenceGasPriceDocument,\n\t\t\t},\n\t\t\t(result) => result.epoch?.referenceGasPrice,\n\t\t);\n\n\t\treturn {\n\t\t\treferenceGasPrice: result ?? '',\n\t\t};\n\t}\n\n\tasync getProtocolConfig(): Promise<SuiClientTypes.GetProtocolConfigResponse> {\n\t\tconst result = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: GetProtocolConfigDocument,\n\t\t\t},\n\t\t\t(result) => result.epoch?.protocolConfigs,\n\t\t);\n\n\t\tconst featureFlags: Record<string, boolean> = {};\n\t\tfor (const flag of result?.featureFlags ?? []) {\n\t\t\tfeatureFlags[flag.key] = flag.value;\n\t\t}\n\t\tconst attributes: Record<string, string | null> = {};\n\t\tfor (const config of result?.configs ?? []) {\n\t\t\tattributes[config.key] = config.value ?? null;\n\t\t}\n\n\t\treturn {\n\t\t\tprotocolConfig: {\n\t\t\t\tprotocolVersion: result?.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(): Promise<SuiClientTypes.GetCurrentSystemStateResponse> {\n\t\tconst result = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: GetCurrentSystemStateDocument,\n\t\t\t},\n\t\t\t(result) => result.epoch,\n\t\t);\n\n\t\tif (!result) {\n\t\t\tthrow new Error('Epoch data not found in response');\n\t\t}\n\n\t\tconst startMs = result.startTimestamp\n\t\t\t? new Date(result.startTimestamp).getTime().toString()\n\t\t\t: (null as never);\n\n\t\t// Parse the system state JSON from the MoveValue\n\t\tconst systemStateJson = result.systemState?.json as\n\t\t\t| {\n\t\t\t\t\tsystem_state_version?: string | number;\n\t\t\t\t\tsafe_mode?: boolean;\n\t\t\t\t\tsafe_mode_storage_rewards?: string;\n\t\t\t\t\tsafe_mode_computation_rewards?: string;\n\t\t\t\t\tsafe_mode_storage_rebates?: string | number;\n\t\t\t\t\tsafe_mode_non_refundable_storage_fee?: string | number;\n\t\t\t\t\tparameters?: {\n\t\t\t\t\t\tepoch_duration_ms?: string | number;\n\t\t\t\t\t\tstake_subsidy_start_epoch?: string | number;\n\t\t\t\t\t\tmax_validator_count?: string | number;\n\t\t\t\t\t\tmin_validator_joining_stake?: string | number;\n\t\t\t\t\t\tvalidator_low_stake_threshold?: string | number;\n\t\t\t\t\t\tvalidator_low_stake_grace_period?: string | number;\n\t\t\t\t\t};\n\t\t\t\t\tstorage_fund?: {\n\t\t\t\t\t\ttotal_object_storage_rebates?: string;\n\t\t\t\t\t\tnon_refundable_balance?: string;\n\t\t\t\t\t};\n\t\t\t\t\tstake_subsidy?: {\n\t\t\t\t\t\tbalance?: string;\n\t\t\t\t\t\tdistribution_counter?: string | number;\n\t\t\t\t\t\tcurrent_distribution_amount?: string | number;\n\t\t\t\t\t\tstake_subsidy_period_length?: string | number;\n\t\t\t\t\t\tstake_subsidy_decrease_rate?: number;\n\t\t\t\t\t};\n\t\t\t }\n\t\t\t| undefined;\n\n\t\treturn {\n\t\t\tsystemState: {\n\t\t\t\tsystemStateVersion: systemStateJson?.system_state_version?.toString() ?? (null as never),\n\t\t\t\tepoch: result.epochId?.toString() ?? (null as never),\n\t\t\t\tprotocolVersion: result.protocolConfigs?.protocolVersion?.toString() ?? (null as never),\n\t\t\t\treferenceGasPrice: result.referenceGasPrice ?? (null as never),\n\t\t\t\tepochStartTimestampMs: startMs,\n\t\t\t\tsafeMode: systemStateJson?.safe_mode ?? false,\n\t\t\t\tsafeModeStorageRewards: systemStateJson?.safe_mode_storage_rewards ?? (null as never),\n\t\t\t\tsafeModeComputationRewards:\n\t\t\t\t\tsystemStateJson?.safe_mode_computation_rewards ?? (null as never),\n\t\t\t\tsafeModeStorageRebates:\n\t\t\t\t\tsystemStateJson?.safe_mode_storage_rebates?.toString() ?? (null as never),\n\t\t\t\tsafeModeNonRefundableStorageFee:\n\t\t\t\t\tsystemStateJson?.safe_mode_non_refundable_storage_fee?.toString() ?? (null as never),\n\t\t\t\tparameters: {\n\t\t\t\t\tepochDurationMs:\n\t\t\t\t\t\tsystemStateJson?.parameters?.epoch_duration_ms?.toString() ?? (null as never),\n\t\t\t\t\tstakeSubsidyStartEpoch:\n\t\t\t\t\t\tsystemStateJson?.parameters?.stake_subsidy_start_epoch?.toString() ?? (null as never),\n\t\t\t\t\tmaxValidatorCount:\n\t\t\t\t\t\tsystemStateJson?.parameters?.max_validator_count?.toString() ?? (null as never),\n\t\t\t\t\tminValidatorJoiningStake:\n\t\t\t\t\t\tsystemStateJson?.parameters?.min_validator_joining_stake?.toString() ?? (null as never),\n\t\t\t\t\tvalidatorLowStakeThreshold:\n\t\t\t\t\t\tsystemStateJson?.parameters?.validator_low_stake_threshold?.toString() ??\n\t\t\t\t\t\t(null as never),\n\t\t\t\t\tvalidatorLowStakeGracePeriod:\n\t\t\t\t\t\tsystemStateJson?.parameters?.validator_low_stake_grace_period?.toString() ??\n\t\t\t\t\t\t(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\tsystemStateJson?.storage_fund?.total_object_storage_rebates ?? (null as never),\n\t\t\t\t\tnonRefundableBalance:\n\t\t\t\t\t\tsystemStateJson?.storage_fund?.non_refundable_balance ?? (null as never),\n\t\t\t\t},\n\t\t\t\tstakeSubsidy: {\n\t\t\t\t\tbalance: systemStateJson?.stake_subsidy?.balance ?? (null as never),\n\t\t\t\t\tdistributionCounter:\n\t\t\t\t\t\tsystemStateJson?.stake_subsidy?.distribution_counter?.toString() ?? (null as never),\n\t\t\t\t\tcurrentDistributionAmount:\n\t\t\t\t\t\tsystemStateJson?.stake_subsidy?.current_distribution_amount?.toString() ??\n\t\t\t\t\t\t(null as never),\n\t\t\t\t\tstakeSubsidyPeriodLength:\n\t\t\t\t\t\tsystemStateJson?.stake_subsidy?.stake_subsidy_period_length?.toString() ??\n\t\t\t\t\t\t(null as never),\n\t\t\t\t\tstakeSubsidyDecreaseRate:\n\t\t\t\t\t\tsystemStateJson?.stake_subsidy?.stake_subsidy_decrease_rate ?? (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.#graphqlClient.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 pagination = resolvePagination(options);\n\t\tconst { descending, after, before, limit } = pagination;\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\tvalidateTransactionQuery(filter, pagination);\n\n\t\tconst transactions = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: ListTransactionsDocument,\n\t\t\t\tsignal: options.signal,\n\t\t\t\tvariables: {\n\t\t\t\t\tfilter: filter && {\n\t\t\t\t\t\tsentAddress: filter.$kind === 'sender' ? filter.sender : undefined,\n\t\t\t\t\t\tfunction:\n\t\t\t\t\t\t\tfilter.$kind === 'function'\n\t\t\t\t\t\t\t\t? [filter.package, filter.module, filter.function].filter(Boolean).join('::')\n\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t},\n\t\t\t\t\tfirst: descending ? undefined : limit,\n\t\t\t\t\tafter,\n\t\t\t\t\tlast: descending ? limit : undefined,\n\t\t\t\t\tbefore,\n\t\t\t\t\tincludeTransaction: options.include?.transaction ?? false,\n\t\t\t\t\tincludeEffects: options.include?.effects ?? false,\n\t\t\t\t\tincludeEvents: options.include?.events ?? false,\n\t\t\t\t\tincludeBalanceChanges: options.include?.balanceChanges ?? false,\n\t\t\t\t\tincludeObjectTypes: options.include?.objectTypes ?? false,\n\t\t\t\t\tincludeBcs: options.include?.bcs ?? false,\n\t\t\t\t},\n\t\t\t},\n\t\t\t(result) => result.transactions,\n\t\t);\n\n\t\t// Backwards pagination returns nodes in ascending order, so reverse them for descending reads\n\t\tconst nodes = descending ? [...transactions.nodes].reverse() : transactions.nodes;\n\n\t\treturn {\n\t\t\ttransactions: nodes.map((transaction) => parseTransaction(transaction, options.include)),\n\t\t\thasNextPage: descending\n\t\t\t\t? transactions.pageInfo.hasPreviousPage\n\t\t\t\t: transactions.pageInfo.hasNextPage,\n\t\t\tstartCursor:\n\t\t\t\t(descending ? transactions.pageInfo.endCursor : transactions.pageInfo.startCursor) ?? null,\n\t\t\tendCursor:\n\t\t\t\t(descending ? transactions.pageInfo.startCursor : transactions.pageInfo.endCursor) ?? null,\n\t\t};\n\t}\n\n\tasync listEvents(\n\t\toptions: SuiClientTypes.ListEventsOptions,\n\t): Promise<SuiClientTypes.ListEventsResponse> {\n\t\tconst { descending, after, before, limit } = resolvePagination(options);\n\t\tconst filter = options.filter\n\t\t\t? await resolveEventFilter(this.mvr, options.filter, options.signal)\n\t\t\t: undefined;\n\n\t\tconst events = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: ListEventsDocument,\n\t\t\t\tsignal: options.signal,\n\t\t\t\tvariables: {\n\t\t\t\t\tfilter: filter && {\n\t\t\t\t\t\tsender: filter.$kind === 'sender' ? filter.sender : undefined,\n\t\t\t\t\t\tmodule:\n\t\t\t\t\t\t\tfilter.$kind === 'emitModule' ? `${filter.package}::${filter.module}` : undefined,\n\t\t\t\t\t\ttype:\n\t\t\t\t\t\t\tfilter.$kind === 'eventTypeModule'\n\t\t\t\t\t\t\t\t? `${filter.package}::${filter.module}`\n\t\t\t\t\t\t\t\t: filter.$kind === 'eventType'\n\t\t\t\t\t\t\t\t\t? filter.eventType\n\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t},\n\t\t\t\t\tfirst: descending ? undefined : limit,\n\t\t\t\t\tafter,\n\t\t\t\t\tlast: descending ? limit : undefined,\n\t\t\t\t\tbefore,\n\t\t\t\t},\n\t\t\t},\n\t\t\t(result) => result.events,\n\t\t);\n\n\t\t// Backwards pagination returns nodes in ascending order, so reverse them for descending reads\n\t\tconst nodes = descending ? [...events.nodes].reverse() : events.nodes;\n\n\t\treturn {\n\t\t\tevents: nodes.map((event): SuiClientTypes.EventEntry => {\n\t\t\t\tconst packageId = event.transactionModule?.package?.address;\n\t\t\t\tconst module = event.transactionModule?.name;\n\t\t\t\tconst sender = event.sender?.address;\n\t\t\t\tconst eventType = event.contents?.type?.repr;\n\t\t\t\tconst transactionDigest = event.transaction?.digest;\n\n\t\t\t\tif (!packageId || !module || !sender || !eventType || !transactionDigest) {\n\t\t\t\t\tthrow new Error('listEvents response is missing expected event fields');\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\tpackageId: normalizeSuiAddress(packageId),\n\t\t\t\t\tmodule,\n\t\t\t\t\tsender: normalizeSuiAddress(sender),\n\t\t\t\t\teventType: normalizeStructTag(eventType),\n\t\t\t\t\tbcs: event.contents?.bcs ? fromBase64(event.contents.bcs) : new Uint8Array(),\n\t\t\t\t\tjson: (event.contents?.json as Record<string, unknown>) ?? null,\n\t\t\t\t\tcheckpoint: event.transaction?.effects?.checkpoint?.sequenceNumber?.toString() ?? null,\n\t\t\t\t\ttransactionDigest,\n\t\t\t\t\teventIndex: event.sequenceNumber,\n\t\t\t\t};\n\t\t\t}),\n\t\t\thasNextPage: descending ? events.pageInfo.hasPreviousPage : events.pageInfo.hasNextPage,\n\t\t\tstartCursor: (descending ? events.pageInfo.endCursor : events.pageInfo.startCursor) ?? null,\n\t\t\tendCursor: (descending ? events.pageInfo.startCursor : events.pageInfo.endCursor) ?? null,\n\t\t};\n\t}\n\n\tasync verifyZkLoginSignature(\n\t\toptions: SuiClientTypes.VerifyZkLoginSignatureOptions,\n\t): Promise<SuiClientTypes.ZkLoginVerifyResponse> {\n\t\tconst intentScope =\n\t\t\toptions.intentScope === 'TransactionData'\n\t\t\t\t? ZkLoginIntentScope.TransactionData\n\t\t\t\t: ZkLoginIntentScope.PersonalMessage;\n\n\t\tconst { data } = await this.#graphqlClient.query({\n\t\t\tquery: VerifyZkLoginSignatureDocument,\n\t\t\tvariables: {\n\t\t\t\tbytes: options.bytes,\n\t\t\t\tsignature: options.signature,\n\t\t\t\tintentScope,\n\t\t\t\tauthor: options.address,\n\t\t\t},\n\t\t});\n\n\t\treturn {\n\t\t\tsuccess: data?.verifyZkLoginSignature?.success ?? false,\n\t\t\terrors: [],\n\t\t};\n\t}\n\n\tasync defaultNameServiceName(\n\t\toptions: SuiClientTypes.DefaultNameServiceNameOptions,\n\t): Promise<SuiClientTypes.DefaultNameServiceNameResponse> {\n\t\tconst name = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: DefaultSuinsNameDocument,\n\t\t\t\tsignal: options.signal,\n\t\t\t\tvariables: {\n\t\t\t\t\taddress: options.address,\n\t\t\t\t},\n\t\t\t},\n\t\t\t(result) => result.address?.defaultNameRecord?.domain ?? null,\n\t\t);\n\n\t\treturn {\n\t\t\tdata: { name: name },\n\t\t};\n\t}\n\n\tasync resolveNameServiceAddress(\n\t\toptions: SuiClientTypes.ResolveNameServiceAddressOptions,\n\t): Promise<SuiClientTypes.ResolveNameServiceAddressResponse> {\n\t\tconst { data, errors } = await this.#graphqlClient.query({\n\t\t\tquery: ResolveNameServiceAddressDocument,\n\t\t\tsignal: options.signal,\n\t\t\tvariables: { name: options.name },\n\t\t});\n\n\t\thandleGraphQLErrors(errors);\n\n\t\treturn { address: data?.address?.address ?? null };\n\t}\n\n\tasync getMoveFunction(\n\t\toptions: SuiClientTypes.GetMoveFunctionOptions,\n\t): Promise<SuiClientTypes.GetMoveFunctionResponse> {\n\t\tconst moveFunction = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: GetMoveFunctionDocument,\n\t\t\t\tvariables: {\n\t\t\t\t\tpackage: (await this.mvr.resolvePackage({ package: options.packageId })).package,\n\t\t\t\t\tmodule: options.moduleName,\n\t\t\t\t\tfunction: options.name,\n\t\t\t\t},\n\t\t\t},\n\t\t\t(result) => result.package?.module?.function,\n\t\t);\n\n\t\tlet visibility: 'public' | 'private' | 'friend' | 'unknown' = 'unknown';\n\n\t\tswitch (moveFunction.visibility) {\n\t\t\tcase 'PUBLIC':\n\t\t\t\tvisibility = 'public';\n\t\t\t\tbreak;\n\t\t\tcase 'PRIVATE':\n\t\t\t\tvisibility = 'private';\n\t\t\t\tbreak;\n\t\t\tcase '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(options.packageId),\n\t\t\t\tmoduleName: options.moduleName,\n\t\t\t\tname: moveFunction.name,\n\t\t\t\tvisibility,\n\t\t\t\tisEntry: moveFunction.isEntry ?? false,\n\t\t\t\ttypeParameters:\n\t\t\t\t\tmoveFunction.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 'COPY':\n\t\t\t\t\t\t\t\t\t\treturn 'copy';\n\t\t\t\t\t\t\t\t\tcase 'DROP':\n\t\t\t\t\t\t\t\t\t\treturn 'drop';\n\t\t\t\t\t\t\t\t\tcase 'STORE':\n\t\t\t\t\t\t\t\t\t\treturn 'store';\n\t\t\t\t\t\t\t\t\tcase '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\tmoveFunction.parameters?.map((param) => parseNormalizedSuiMoveType(param.signature)) ??\n\t\t\t\t\t[],\n\t\t\t\treturns:\n\t\t\t\t\tmoveFunction.return?.map(({ signature }) => parseNormalizedSuiMoveType(signature)) ?? [],\n\t\t\t},\n\t\t};\n\t}\n\n\tasync getChainIdentifier(\n\t\t_options?: SuiClientTypes.GetChainIdentifierOptions,\n\t): Promise<SuiClientTypes.GetChainIdentifierResponse> {\n\t\treturn this.cache.read(['chainIdentifier'], async () => {\n\t\t\tconst checkpoint = await this.#graphqlQuery(\n\t\t\t\t{\n\t\t\t\t\tquery: GetChainIdentifierDocument,\n\t\t\t\t},\n\t\t\t\t(result) => result.checkpoint,\n\t\t\t);\n\t\t\tif (!checkpoint?.digest) {\n\t\t\t\tthrow new Error('Genesis checkpoint digest not found');\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tchainIdentifier: checkpoint.digest,\n\t\t\t};\n\t\t});\n\t}\n\n\tresolveTransactionPlugin() {\n\t\tconst graphqlClient = this.#graphqlClient;\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\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 transactionJson = GrpcTransactionType.toJson(grpcTransaction);\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\tconst { data, errors } = await graphqlClient.query({\n\t\t\t\tquery: ResolveTransactionDocument,\n\t\t\t\tvariables: {\n\t\t\t\t\ttransaction: transactionJson,\n\t\t\t\t\tdoGasSelection,\n\t\t\t\t\tchecksEnabled: !options.onlyTransactionKind,\n\t\t\t\t},\n\t\t\t});\n\n\t\t\thandleGraphQLErrors(errors);\n\n\t\t\tconst transactionEffects = data?.simulateTransaction?.effects?.transaction?.effects;\n\t\t\tif (!options.onlyTransactionKind && transactionEffects?.status === ExecutionStatus.Failure) {\n\t\t\t\tconst executionError = parseGraphQLExecutionError(transactionEffects.executionError);\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\tconst resolvedTransactionBcs =\n\t\t\t\tdata?.simulateTransaction?.effects?.transaction?.transactionBcs;\n\n\t\t\tif (!resolvedTransactionBcs) {\n\t\t\t\tthrow new Error('simulateTransaction did not return resolved transaction data');\n\t\t\t}\n\n\t\t\tconst resolvedBuilder = TransactionDataBuilder.fromBytes(fromBase64(resolvedTransactionBcs));\n\t\t\tconst resolved = resolvedBuilder.snapshot();\n\n\t\t\tif (options.onlyTransactionKind) {\n\t\t\t\ttransactionData.applyResolvedData({\n\t\t\t\t\t...resolved,\n\t\t\t\t\tsender: null,\n\t\t\t\t\tgasData: {\n\t\t\t\t\t\tbudget: null,\n\t\t\t\t\t\towner: null,\n\t\t\t\t\t\tpayment: null,\n\t\t\t\t\t\tprice: null,\n\t\t\t\t\t},\n\t\t\t\t\texpiration: null,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\ttransactionData.applyResolvedData(resolved);\n\t\t\t}\n\t\t\tawait setAddressBalanceTransactionExpirationFromSimulatedEpoch({\n\t\t\t\ttransactionData,\n\t\t\t\tclient: graphqlClient,\n\t\t\t\tepoch: transactionEffects?.epoch?.epochId,\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}\nexport type GraphQLResponseErrors = Array<{\n\tmessage: string;\n\tlocations?: { line: number; column: number }[];\n\tpath?: (string | number)[];\n}>;\n\nfunction mapDisplay(\n\tinclude: boolean | undefined,\n\tdisplay: { output?: unknown | null; errors?: unknown | null } | null | undefined,\n): SuiClientTypes.Display | null | undefined {\n\tif (!include) return undefined;\n\tif (!display) return null;\n\treturn {\n\t\toutput: (display.output as Record<string, unknown> | null) ?? null,\n\t\terrors: (display.errors as Record<string, string> | null) ?? null,\n\t};\n}\n\nfunction handleGraphQLErrors(errors: GraphQLResponseErrors | undefined): void {\n\tif (!errors || errors.length === 0) return;\n\n\tconst errorInstances = errors.map((error) => new GraphQLResponseError(error));\n\n\tif (errorInstances.length === 1) {\n\t\tthrow errorInstances[0];\n\t}\n\n\tthrow new AggregateError(errorInstances);\n}\n\nclass GraphQLResponseError extends Error {\n\tlocations?: Array<{ line: number; column: number }>;\n\n\tconstructor(error: GraphQLResponseErrors[0]) {\n\t\tsuper(error.message);\n\t\tthis.locations = error.locations;\n\t}\n}\n\nfunction mapOwner(owner: Object_Owner_FieldsFragment): SuiClientTypes.ObjectOwner {\n\tswitch (owner.__typename) {\n\t\tcase 'AddressOwner':\n\t\t\treturn { $kind: 'AddressOwner', AddressOwner: owner.address?.address! };\n\t\tcase 'ConsensusAddressOwner':\n\t\t\treturn {\n\t\t\t\t$kind: 'ConsensusAddressOwner',\n\t\t\t\tConsensusAddressOwner: {\n\t\t\t\t\towner: owner?.address?.address!,\n\t\t\t\t\tstartVersion: String(owner.startVersion),\n\t\t\t\t},\n\t\t\t};\n\t\tcase 'ObjectOwner':\n\t\t\treturn { $kind: 'ObjectOwner', ObjectOwner: owner.address?.address! };\n\t\tcase 'Immutable':\n\t\t\treturn { $kind: 'Immutable', Immutable: true };\n\t\tcase 'Shared':\n\t\t\treturn {\n\t\t\t\t$kind: 'Shared',\n\t\t\t\tShared: { initialSharedVersion: String(owner.initialSharedVersion) },\n\t\t\t};\n\t}\n}\n\nfunction parseTransaction<Include extends SuiClientTypes.TransactionInclude = {}>(\n\ttransaction: Transaction_FieldsFragment,\n\tinclude?: Include,\n): SuiClientTypes.TransactionResult<Include> {\n\tconst objectTypes: Record<string, string> = {};\n\n\tif (include?.objectTypes) {\n\t\tconst effectsJson = transaction.effects?.effectsJson;\n\t\tif (effectsJson) {\n\t\t\tconst effects = TransactionEffectsType.fromJson(\n\t\t\t\teffectsJson as Parameters<typeof TransactionEffectsType.fromJson>[0],\n\t\t\t);\n\t\t\teffects.changedObjects?.forEach((change) => {\n\t\t\t\tif (change.objectId && change.objectType) {\n\t\t\t\t\tobjectTypes[change.objectId] = change.objectType;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tconst objectChanges = transaction.effects?.objectChanges?.nodes;\n\t\tif (objectChanges) {\n\t\t\tfor (const change of objectChanges) {\n\t\t\t\tconst type = change.outputState?.asMoveObject?.contents?.type?.repr;\n\t\t\t\tif (change.address && type) {\n\t\t\t\t\tobjectTypes[change.address] = type;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tlet balanceChanges: SuiClientTypes.BalanceChange[] | undefined;\n\tif (include?.balanceChanges) {\n\t\tconst balanceChangesJson = transaction.effects?.balanceChangesJson;\n\t\tif (Array.isArray(balanceChangesJson)) {\n\t\t\tbalanceChanges = balanceChangesJson.map((json) => {\n\t\t\t\tconst change = BalanceChangeType.fromJson(\n\t\t\t\t\tjson as Parameters<typeof BalanceChangeType.fromJson>[0],\n\t\t\t\t);\n\t\t\t\treturn {\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});\n\t\t} else {\n\t\t\tbalanceChanges = [];\n\t\t}\n\t}\n\n\t// Get status from GraphQL response\n\tconst status: SuiClientTypes.ExecutionStatus =\n\t\ttransaction.effects?.status === ExecutionStatus.Success\n\t\t\t? { success: true, error: null }\n\t\t\t: {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\terror: parseGraphQLExecutionError(transaction.effects?.executionError),\n\t\t\t\t};\n\n\tlet transactionData: SuiClientTypes.TransactionData | undefined;\n\tif (include?.transaction && transaction.transactionJson) {\n\t\tconst grpcTx = GrpcTransactionType.fromJson(\n\t\t\ttransaction.transactionJson as Parameters<typeof GrpcTransactionType.fromJson>[0],\n\t\t);\n\t\tconst resolved = grpcTransactionToTransactionData(grpcTx);\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 =\n\t\tinclude?.bcs && transaction.transactionBcs ? fromBase64(transaction.transactionBcs) : undefined;\n\n\tconst result: SuiClientTypes.Transaction<Include> = {\n\t\tdigest: transaction.digest!,\n\t\tstatus,\n\t\teffects: (include?.effects\n\t\t\t? parseTransactionEffectsBcs(fromBase64(transaction.effects?.effectsBcs!))\n\t\t\t: undefined) as SuiClientTypes.Transaction<Include>['effects'],\n\t\tepoch: transaction.effects?.epoch?.epochId?.toString() ?? null,\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) => sig.signatureBytes!),\n\t\tbalanceChanges: balanceChanges as SuiClientTypes.Transaction<Include>['balanceChanges'],\n\t\tevents: (include?.events\n\t\t\t? (transaction.effects?.events?.nodes.map((event) => {\n\t\t\t\t\tconst eventType = event.contents?.type?.repr!;\n\t\t\t\t\tconst [packageId, module] = eventType.split('::');\n\t\t\t\t\treturn {\n\t\t\t\t\t\tpackageId,\n\t\t\t\t\t\tmodule,\n\t\t\t\t\t\tsender: event.sender?.address!,\n\t\t\t\t\t\teventType,\n\t\t\t\t\t\tbcs: event.contents?.bcs ? fromBase64(event.contents.bcs) : new Uint8Array(),\n\t\t\t\t\t\tjson: (event.contents?.json as Record<string, unknown>) ?? null,\n\t\t\t\t\t};\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? { $kind: 'Transaction', Transaction: result, FailedTransaction: undefined as never }\n\t\t: { $kind: 'FailedTransaction', Transaction: undefined as never, FailedTransaction: result };\n}\n\nfunction parseNormalizedSuiMoveType(type: OpenMoveTypeSignature): SuiClientTypes.OpenSignature {\n\tlet reference: 'mutable' | 'immutable' | null = null;\n\n\tif (type.ref === '&') {\n\t\treference = 'immutable';\n\t} else if (type.ref === '&mut') {\n\t\treference = 'mutable';\n\t}\n\n\treturn {\n\t\treference,\n\t\tbody: parseNormalizedSuiMoveTypeBody(type.body),\n\t};\n}\n\nfunction parseGraphQLExecutionError(\n\texecutionError: GraphQLExecutionError | null | undefined,\n): SuiClientTypes.ExecutionError {\n\tconst name = mapGraphQLExecutionErrorKind(executionError);\n\n\tif (name === 'MoveAbort' && executionError?.abortCode != null) {\n\t\tconst location = parseGraphQLMoveLocation(executionError);\n\t\tconst cleverError = parseGraphQLCleverError(executionError);\n\t\tconst commandMatch = executionError.message?.match(/in (\\d+)\\w* command/);\n\t\tconst command = commandMatch ? parseInt(commandMatch[1], 10) - 1 : undefined;\n\n\t\treturn {\n\t\t\t$kind: 'MoveAbort',\n\t\t\tmessage: formatMoveAbortMessage({\n\t\t\t\tcommand,\n\t\t\t\tlocation: location\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tpackage: location.package,\n\t\t\t\t\t\t\tmodule: location.module,\n\t\t\t\t\t\t\tfunctionName: location.functionName,\n\t\t\t\t\t\t\tinstruction: location.instruction,\n\t\t\t\t\t\t}\n\t\t\t\t\t: undefined,\n\t\t\t\tabortCode: executionError.abortCode!,\n\t\t\t\tcleverError: cleverError\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tlineNumber: cleverError.lineNumber,\n\t\t\t\t\t\t\tconstantName: cleverError.constantName,\n\t\t\t\t\t\t\tvalue: cleverError.value,\n\t\t\t\t\t\t}\n\t\t\t\t\t: undefined,\n\t\t\t}),\n\t\t\tcommand,\n\t\t\tMoveAbort: {\n\t\t\t\tabortCode: executionError.abortCode!,\n\t\t\t\tlocation,\n\t\t\t\tcleverError,\n\t\t\t},\n\t\t};\n\t}\n\n\treturn {\n\t\t$kind: 'Unknown',\n\t\tmessage: executionError?.message ?? 'Transaction failed',\n\t\tUnknown: null,\n\t};\n}\n\nfunction mapGraphQLExecutionErrorKind(\n\texecutionError: GraphQLExecutionError | null | undefined,\n): string {\n\tif (executionError?.abortCode != null) {\n\t\treturn 'MoveAbort';\n\t}\n\n\tconst match = executionError?.message?.match(/^(\\w+)/);\n\treturn match?.[1] ?? 'Unknown';\n}\n\nfunction parseGraphQLMoveLocation(\n\texecutionError: GraphQLExecutionError,\n): SuiClientTypes.MoveLocation | undefined {\n\tconst hasLocation = executionError.module?.package?.address && executionError.module?.name;\n\tif (!hasLocation) {\n\t\treturn undefined;\n\t}\n\n\treturn {\n\t\tpackage: executionError.module?.package?.address,\n\t\tmodule: executionError.module?.name,\n\t\tfunctionName: executionError.function?.name,\n\t\tinstruction: executionError.instructionOffset ?? undefined,\n\t};\n}\n\nfunction parseGraphQLCleverError(\n\texecutionError: GraphQLExecutionError,\n): SuiClientTypes.CleverError | undefined {\n\tconst hasCleverError = executionError.identifier || executionError.constant;\n\tif (!hasCleverError) {\n\t\treturn undefined;\n\t}\n\n\treturn {\n\t\tconstantName: executionError.identifier ?? undefined,\n\t\tvalue: executionError.constant ?? undefined,\n\t\tlineNumber: executionError.sourceLineNumber ?? undefined,\n\t};\n}\n\nfunction parseNormalizedSuiMoveTypeBody(\n\ttype: OpenMoveTypeSignatureBody,\n): SuiClientTypes.OpenSignatureBody {\n\tswitch (type) {\n\t\tcase 'address':\n\t\t\treturn { $kind: 'address' };\n\t\tcase 'bool':\n\t\t\treturn { $kind: 'bool' };\n\t\tcase 'u8':\n\t\t\treturn { $kind: 'u8' };\n\t\tcase 'u16':\n\t\t\treturn { $kind: 'u16' };\n\t\tcase 'u32':\n\t\t\treturn { $kind: 'u32' };\n\t\tcase 'u64':\n\t\t\treturn { $kind: 'u64' };\n\t\tcase 'u128':\n\t\t\treturn { $kind: 'u128' };\n\t\tcase 'u256':\n\t\t\treturn { $kind: 'u256' };\n\t}\n\n\tif (typeof type === 'string') {\n\t\tthrow new Error(`Unknown type: ${type}`);\n\t}\n\n\tif ('vector' in type) {\n\t\treturn {\n\t\t\t$kind: 'vector',\n\t\t\tvector: parseNormalizedSuiMoveTypeBody(type.vector),\n\t\t};\n\t}\n\n\tif ('datatype' in type) {\n\t\treturn {\n\t\t\t$kind: 'datatype',\n\t\t\tdatatype: {\n\t\t\t\ttypeName: `${normalizeSuiAddress(type.datatype.package)}::${type.datatype.module}::${type.datatype.type}`,\n\t\t\t\ttypeParameters: type.datatype.typeParameters.map((t) => parseNormalizedSuiMoveTypeBody(t)),\n\t\t\t},\n\t\t};\n\t}\n\n\tif ('typeParameter' in type) {\n\t\treturn {\n\t\t\t$kind: 'typeParameter',\n\t\t\tindex: type.typeParameter,\n\t\t};\n\t}\n\n\tthrow new Error(`Unknown type: ${JSON.stringify(type)}`);\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"core.mjs","names":["#graphqlClient","#graphqlQuery","result","GrpcTransactionType","TransactionEffectsType","BalanceChangeType"],"sources":["../../src/graphql/core.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { CoreClient } from '../client/core.js';\nimport { raceSignal } from '../client/mvr.js';\nimport type { SuiClientTypes } from '../client/types.js';\nimport { SUI_TYPE_ARG } from '../utils/constants.js';\nimport type { GraphQLQueryOptions, SuiGraphQLClient } from './client.js';\nimport type {\n\tObject_Owner_FieldsFragment,\n\tTransaction_FieldsFragment,\n} from './generated/queries.js';\n\ntype GraphQLExecutionError = NonNullable<\n\tNonNullable<Transaction_FieldsFragment['effects']>['executionError']\n>;\nimport {\n\tDefaultSuinsNameDocument,\n\tExecuteTransactionDocument,\n\tExecutionStatus,\n\tGetAllBalancesDocument,\n\tGetBalanceDocument,\n\tGetChainIdentifierDocument,\n\tGetCoinMetadataDocument,\n\tGetCoinsDocument,\n\tGetCurrentSystemStateDocument,\n\tGetMoveFunctionDocument,\n\tGetProtocolConfigDocument,\n\tGetOwnedObjectsDocument,\n\tGetReferenceGasPriceDocument,\n\tGetTransactionBlockDocument,\n\tListEventsDocument,\n\tListTransactionsDocument,\n\tMultiGetObjectsDocument,\n\tResolveNameServiceAddressDocument,\n\tResolveTransactionDocument,\n\tSimulateTransactionDocument,\n\tVerifyZkLoginSignatureDocument,\n\tZkLoginIntentScope,\n} from './generated/queries.js';\nimport { ObjectError, SimulationError, TransactionError } from '../client/errors.js';\nimport { chunk, fromBase64, toBase64 } from '@mysten/utils';\nimport { normalizeStructTag, normalizeSuiAddress } from '../utils/sui-types.js';\nimport {\n\tformatMoveAbortMessage,\n\tparseTransactionEffectsBcs,\n\ttransactionBytesHaveEmptyGasPayment,\n} from '../client/utils.js';\nimport type { OpenMoveTypeSignatureBody, OpenMoveTypeSignature } from './types.js';\nimport {\n\ttransactionDataToGrpcTransaction,\n\ttransactionToGrpcJson,\n\tgrpcTransactionToTransactionData,\n} from '../client/transaction-resolver.js';\nimport { setAddressBalanceTransactionExpirationFromSimulatedEpoch } from '../client/address-balance-transaction-expiration.js';\nimport { BalanceChange as BalanceChangeType } from '../grpc/proto/sui/rpc/v2/balance_change.js';\nimport { TransactionEffects as TransactionEffectsType } from '../grpc/proto/sui/rpc/v2/effects.js';\nimport { Transaction as GrpcTransactionType } from '../grpc/proto/sui/rpc/v2/transaction.js';\nimport { TransactionDataBuilder } from '../transactions/TransactionData.js';\nimport type { BuildTransactionOptions } from '../transactions/index.js';\nimport {\n\tresolveEventFilter,\n\tresolvePagination,\n\tresolveTransactionFilter,\n\tvalidateTransactionQuery,\n} from '../client/query-filters.js';\n\nexport class GraphQLCoreClient extends CoreClient {\n\t#graphqlClient: SuiGraphQLClient;\n\n\tconstructor({\n\t\tgraphqlClient,\n\t\tmvr,\n\t}: {\n\t\tgraphqlClient: SuiGraphQLClient;\n\t\tmvr?: SuiClientTypes.MvrOptions;\n\t}) {\n\t\tsuper({ network: graphqlClient.network, base: graphqlClient, mvr });\n\t\tthis.#graphqlClient = graphqlClient;\n\t}\n\n\tasync #graphqlQuery<\n\t\tResult = Record<string, unknown>,\n\t\tVariables = Record<string, unknown>,\n\t\tData = Result,\n\t>(\n\t\toptions: GraphQLQueryOptions<Result, Variables>,\n\t\tgetData?: (result: Result) => Data,\n\t\tcreateMissingDataError?: () => Error,\n\t): Promise<NonNullable<Data>> {\n\t\tconst { data, errors } = await this.#graphqlClient.query(options);\n\n\t\thandleGraphQLErrors(errors);\n\n\t\tconst extractedData = data && (getData ? getData(data) : data);\n\n\t\tif (extractedData == null) {\n\t\t\tthrow createMissingDataError?.() ?? new Error('Missing response data');\n\t\t}\n\n\t\treturn extractedData as NonNullable<Data>;\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\tfor (const batch of batches) {\n\t\t\tconst page = await this.#graphqlQuery(\n\t\t\t\t{\n\t\t\t\t\tquery: MultiGetObjectsDocument,\n\t\t\t\t\tsignal: options.signal,\n\t\t\t\t\tvariables: {\n\t\t\t\t\t\tobjectKeys: batch.map((address) => ({ address })),\n\t\t\t\t\t\tincludeContent: options.include?.content ?? false,\n\t\t\t\t\t\tincludePreviousTransaction: options.include?.previousTransaction ?? false,\n\t\t\t\t\t\tincludeObjectBcs: options.include?.objectBcs ?? false,\n\t\t\t\t\t\tincludeJson: options.include?.json ?? false,\n\t\t\t\t\t\tincludeDisplay: options.include?.display ?? false,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t(result) => result.multiGetObjects,\n\t\t\t);\n\t\t\tresults.push(\n\t\t\t\t...batch\n\t\t\t\t\t.map((objectId) => ({ objectId, normalized: normalizeSuiAddress(objectId) }))\n\t\t\t\t\t.map(\n\t\t\t\t\t\t({ objectId, normalized }) =>\n\t\t\t\t\t\t\tpage.find((obj) => obj?.address === normalized) ??\n\t\t\t\t\t\t\tnew ObjectError('notFound', `Object ${normalized} not found`, {\n\t\t\t\t\t\t\t\treason: 'notFound',\n\t\t\t\t\t\t\t\tobjectId,\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t)\n\t\t\t\t\t.map((obj) => {\n\t\t\t\t\t\tif (obj instanceof ObjectError) {\n\t\t\t\t\t\t\treturn obj;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst bcsContent = obj.asMoveObject?.contents?.bcs\n\t\t\t\t\t\t\t? fromBase64(obj.asMoveObject.contents.bcs)\n\t\t\t\t\t\t\t: undefined;\n\n\t\t\t\t\t\tconst objectBcs = obj.objectBcs ? fromBase64(obj.objectBcs) : undefined;\n\n\t\t\t\t\t\t// Determine object type: package or Move object\n\t\t\t\t\t\t// GraphQL already returns normalized struct tags\n\t\t\t\t\t\tlet type: string;\n\t\t\t\t\t\tif (obj.asMovePackage) {\n\t\t\t\t\t\t\ttype = 'package';\n\t\t\t\t\t\t} else if (obj.asMoveObject?.contents?.type?.repr) {\n\t\t\t\t\t\t\ttype = obj.asMoveObject.contents.type.repr;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttype = '';\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst jsonContent = options.include?.json\n\t\t\t\t\t\t\t? obj.asMoveObject?.contents?.json\n\t\t\t\t\t\t\t\t? (obj.asMoveObject.contents.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 = mapDisplay(\n\t\t\t\t\t\t\toptions.include?.display,\n\t\t\t\t\t\t\tobj.asMoveObject?.contents?.display,\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tobjectId: obj.address,\n\t\t\t\t\t\t\tversion: obj.version?.toString()!,\n\t\t\t\t\t\t\tdigest: obj.digest!,\n\t\t\t\t\t\t\towner: mapOwner(obj.owner!),\n\t\t\t\t\t\t\ttype,\n\t\t\t\t\t\t\tcontent: bcsContent as SuiClientTypes.Object<Include>['content'],\n\t\t\t\t\t\t\tpreviousTransaction: (obj.previousTransaction?.digest ??\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);\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 objects = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: GetOwnedObjectsDocument,\n\t\t\t\tsignal: options.signal,\n\t\t\t\tvariables: {\n\t\t\t\t\towner: options.owner,\n\t\t\t\t\tlimit: options.limit,\n\t\t\t\t\tcursor: options.cursor,\n\t\t\t\t\tfilter: options.type\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\ttype: (await this.mvr.resolveType({ type: options.type, signal: options.signal }))\n\t\t\t\t\t\t\t\t\t.type,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: undefined,\n\t\t\t\t\tincludeContent: options.include?.content ?? false,\n\t\t\t\t\tincludePreviousTransaction: options.include?.previousTransaction ?? false,\n\t\t\t\t\tincludeObjectBcs: options.include?.objectBcs ?? false,\n\t\t\t\t\tincludeJson: options.include?.json ?? false,\n\t\t\t\t\tincludeDisplay: options.include?.display ?? false,\n\t\t\t\t},\n\t\t\t},\n\t\t\t(result) => result.address?.objects,\n\t\t);\n\n\t\treturn {\n\t\t\tobjects: objects.nodes.map(\n\t\t\t\t(obj): SuiClientTypes.Object<Include> => ({\n\t\t\t\t\tobjectId: obj.address,\n\t\t\t\t\tversion: obj.version?.toString()!,\n\t\t\t\t\tdigest: obj.digest!,\n\t\t\t\t\towner: mapOwner(obj.owner!),\n\t\t\t\t\ttype: obj.contents?.type?.repr!,\n\t\t\t\t\tcontent: (obj.contents?.bcs\n\t\t\t\t\t\t? fromBase64(obj.contents.bcs)\n\t\t\t\t\t\t: undefined) as SuiClientTypes.Object<Include>['content'],\n\t\t\t\t\tpreviousTransaction: (obj.previousTransaction?.digest ??\n\t\t\t\t\t\tundefined) as SuiClientTypes.Object<Include>['previousTransaction'],\n\t\t\t\t\tobjectBcs: (obj.objectBcs\n\t\t\t\t\t\t? fromBase64(obj.objectBcs)\n\t\t\t\t\t\t: undefined) as SuiClientTypes.Object<Include>['objectBcs'],\n\t\t\t\t\tjson: (options.include?.json\n\t\t\t\t\t\t? obj.contents?.json\n\t\t\t\t\t\t\t? (obj.contents.json as Record<string, unknown>)\n\t\t\t\t\t\t\t: null\n\t\t\t\t\t\t: undefined) as SuiClientTypes.Object<Include>['json'],\n\t\t\t\t\tdisplay: mapDisplay(\n\t\t\t\t\t\toptions.include?.display,\n\t\t\t\t\t\tobj.contents?.display,\n\t\t\t\t\t) as SuiClientTypes.Object<Include>['display'],\n\t\t\t\t}),\n\t\t\t),\n\t\t\thasNextPage: objects.pageInfo.hasNextPage,\n\t\t\tcursor: objects.pageInfo.endCursor ?? null,\n\t\t};\n\t}\n\tasync listCoins(\n\t\toptions: SuiClientTypes.ListCoinsOptions,\n\t): Promise<SuiClientTypes.ListCoinsResponse> {\n\t\tconst coinType = options.coinType ?? SUI_TYPE_ARG;\n\t\tconst coins = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: GetCoinsDocument,\n\t\t\t\tsignal: options.signal,\n\t\t\t\tvariables: {\n\t\t\t\t\towner: options.owner,\n\t\t\t\t\tcursor: options.cursor,\n\t\t\t\t\tfirst: options.limit,\n\t\t\t\t\ttype: `0x2::coin::Coin<${(await this.mvr.resolveType({ type: coinType, signal: options.signal })).type}>`,\n\t\t\t\t},\n\t\t\t},\n\t\t\t(result) => result.address?.objects,\n\t\t);\n\n\t\treturn {\n\t\t\tcursor: coins.pageInfo.endCursor ?? null,\n\t\t\thasNextPage: coins.pageInfo.hasNextPage,\n\t\t\tobjects: coins.nodes.map(\n\t\t\t\t(coin): SuiClientTypes.Coin => ({\n\t\t\t\t\tobjectId: coin.address,\n\t\t\t\t\tversion: coin.version?.toString()!,\n\t\t\t\t\tdigest: coin.digest!,\n\t\t\t\t\towner: mapOwner(coin.owner!),\n\t\t\t\t\ttype: coin.contents?.type?.repr!,\n\t\t\t\t\tbalance: (coin.contents?.json as { balance: string })?.balance,\n\t\t\t\t}),\n\t\t\t),\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.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: GetBalanceDocument,\n\t\t\t\tsignal: options.signal,\n\t\t\t\tvariables: {\n\t\t\t\t\towner: options.owner,\n\t\t\t\t\tcoinType: (await this.mvr.resolveType({ type: coinType, signal: options.signal })).type,\n\t\t\t\t},\n\t\t\t},\n\t\t\t(result) => result.address?.balance,\n\t\t);\n\n\t\tconst addressBalance = BigInt(result.addressBalance ?? '0');\n\t\tconst coinBalance = BigInt(result.totalBalance ?? '0') - addressBalance;\n\n\t\treturn {\n\t\t\tbalance: {\n\t\t\t\tcoinType: result.coinType?.repr ?? coinType,\n\t\t\t\tbalance: result.totalBalance ?? '0',\n\t\t\t\tcoinBalance: coinBalance.toString(),\n\t\t\t\taddressBalance: addressBalance.toString(),\n\t\t\t},\n\t\t};\n\t}\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\tconst { data, errors } = await this.#graphqlClient.query({\n\t\t\tquery: GetCoinMetadataDocument,\n\t\t\tsignal: options.signal,\n\t\t\tvariables: {\n\t\t\t\tcoinType,\n\t\t\t},\n\t\t});\n\n\t\thandleGraphQLErrors(errors);\n\n\t\tif (!data?.coinMetadata) {\n\t\t\treturn { coinMetadata: null };\n\t\t}\n\n\t\treturn {\n\t\t\tcoinMetadata: {\n\t\t\t\tid: data.coinMetadata.address!,\n\t\t\t\tdecimals: data.coinMetadata.decimals!,\n\t\t\t\tname: data.coinMetadata.name!,\n\t\t\t\tsymbol: data.coinMetadata.symbol!,\n\t\t\t\tdescription: data.coinMetadata.description!,\n\t\t\t\ticonUrl: data.coinMetadata.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 balances = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: GetAllBalancesDocument,\n\t\t\t\tsignal: options.signal,\n\t\t\t\tvariables: {\n\t\t\t\t\towner: options.owner,\n\t\t\t\t\tlimit: options.limit,\n\t\t\t\t\tcursor: options.cursor,\n\t\t\t\t},\n\t\t\t},\n\t\t\t(result) => result.address?.balances,\n\t\t);\n\n\t\treturn {\n\t\t\tcursor: balances.pageInfo.endCursor ?? null,\n\t\t\thasNextPage: balances.pageInfo.hasNextPage,\n\t\t\tbalances: balances.nodes.map((balance) => {\n\t\t\t\tconst addressBalance = BigInt(balance.addressBalance ?? '0');\n\t\t\t\tconst coinBalance = BigInt(balance.totalBalance ?? '0') - addressBalance;\n\t\t\t\treturn {\n\t\t\t\t\tcoinType: balance.coinType?.repr!,\n\t\t\t\t\tbalance: balance.totalBalance!,\n\t\t\t\t\tcoinBalance: coinBalance.toString(),\n\t\t\t\t\taddressBalance: addressBalance.toString(),\n\t\t\t\t};\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 result = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: GetTransactionBlockDocument,\n\t\t\t\tsignal: options.signal,\n\t\t\t\tvariables: {\n\t\t\t\t\tdigest: options.digest,\n\t\t\t\t\tincludeTransaction: options.include?.transaction ?? false,\n\t\t\t\t\tincludeEffects: options.include?.effects ?? false,\n\t\t\t\t\tincludeEvents: options.include?.events ?? false,\n\t\t\t\t\tincludeBalanceChanges: options.include?.balanceChanges ?? false,\n\t\t\t\t\tincludeObjectTypes: options.include?.objectTypes ?? false,\n\t\t\t\t\tincludeBcs: options.include?.bcs ?? false,\n\t\t\t\t},\n\t\t\t},\n\t\t\t(result) => result.transaction,\n\t\t\t() => new TransactionError('notFound', options.digest),\n\t\t);\n\n\t\treturn parseTransaction(result, options.include);\n\t}\n\tasync executeTransaction<Include extends SuiClientTypes.TransactionInclude = {}>(\n\t\toptions: SuiClientTypes.ExecuteTransactionOptions<Include>,\n\t): Promise<SuiClientTypes.TransactionResult<Include>> {\n\t\tconst result = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: ExecuteTransactionDocument,\n\t\t\t\tsignal: options.signal,\n\t\t\t\tvariables: {\n\t\t\t\t\ttransactionDataBcs: toBase64(options.transaction),\n\t\t\t\t\tsignatures: options.signatures,\n\t\t\t\t\tincludeTransaction: options.include?.transaction ?? false,\n\t\t\t\t\tincludeEffects: options.include?.effects ?? false,\n\t\t\t\t\tincludeEvents: options.include?.events ?? false,\n\t\t\t\t\tincludeBalanceChanges: options.include?.balanceChanges ?? false,\n\t\t\t\t\tincludeObjectTypes: options.include?.objectTypes ?? false,\n\t\t\t\t\tincludeBcs: options.include?.bcs ?? false,\n\t\t\t\t},\n\t\t\t},\n\t\t\t(result) => result.executeTransaction,\n\t\t);\n\n\t\treturn parseTransaction(result.effects?.transaction!, options.include);\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\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 result = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: SimulateTransactionDocument,\n\t\t\t\tsignal: options.signal,\n\t\t\t\tvariables: {\n\t\t\t\t\ttransaction:\n\t\t\t\t\t\toptions.transaction instanceof Uint8Array\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\tbcs: {\n\t\t\t\t\t\t\t\t\t\tvalue: toBase64(options.transaction),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t: transactionToGrpcJson(options.transaction),\n\t\t\t\t\tincludeTransaction: options.include?.transaction ?? false,\n\t\t\t\t\tincludeEffects: options.include?.effects ?? false,\n\t\t\t\t\tincludeEvents: options.include?.events ?? false,\n\t\t\t\t\tincludeBalanceChanges: options.include?.balanceChanges ?? false,\n\t\t\t\t\tincludeObjectTypes: options.include?.objectTypes ?? false,\n\t\t\t\t\tincludeCommandResults: options.include?.commandResults ?? false,\n\t\t\t\t\tincludeBcs: options.include?.bcs ?? false,\n\t\t\t\t\tdoGasSelection,\n\t\t\t\t\tchecksEnabled: options.checksEnabled ?? true,\n\t\t\t\t},\n\t\t\t},\n\t\t\t(result) => result.simulateTransaction,\n\t\t);\n\n\t\tconst transactionResult = parseTransaction(result.effects?.transaction!, options.include);\n\n\t\tconst commandResults =\n\t\t\toptions.include?.commandResults && result.outputs\n\t\t\t\t? result.outputs.map((output) => ({\n\t\t\t\t\t\treturnValues: (output.returnValues ?? []).map((rv) => ({\n\t\t\t\t\t\t\tbcs: rv.value?.bcs ? fromBase64(rv.value.bcs) : null,\n\t\t\t\t\t\t})),\n\t\t\t\t\t\tmutatedReferences: (output.mutatedReferences ?? []).map((mr) => ({\n\t\t\t\t\t\t\tbcs: mr.value?.bcs ? fromBase64(mr.value.bcs) : null,\n\t\t\t\t\t\t})),\n\t\t\t\t\t}))\n\t\t\t\t: undefined;\n\n\t\tif (transactionResult.$kind === 'Transaction') {\n\t\t\treturn {\n\t\t\t\t$kind: 'Transaction',\n\t\t\t\tTransaction: transactionResult.Transaction,\n\t\t\t\tcommandResults:\n\t\t\t\t\tcommandResults as SuiClientTypes.SimulateTransactionResult<Include>['commandResults'],\n\t\t\t};\n\t\t} else {\n\t\t\treturn {\n\t\t\t\t$kind: 'FailedTransaction',\n\t\t\t\tFailedTransaction: transactionResult.FailedTransaction,\n\t\t\t\tcommandResults:\n\t\t\t\t\tcommandResults as SuiClientTypes.SimulateTransactionResult<Include>['commandResults'],\n\t\t\t};\n\t\t}\n\t}\n\tasync getReferenceGasPrice(\n\t\toptions?: SuiClientTypes.GetReferenceGasPriceOptions,\n\t): Promise<SuiClientTypes.GetReferenceGasPriceResponse> {\n\t\tconst result = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: GetReferenceGasPriceDocument,\n\t\t\t\tsignal: options?.signal,\n\t\t\t},\n\t\t\t(result) => result.epoch?.referenceGasPrice,\n\t\t);\n\n\t\treturn {\n\t\t\treferenceGasPrice: result ?? '',\n\t\t};\n\t}\n\n\tasync getProtocolConfig(\n\t\toptions?: SuiClientTypes.GetProtocolConfigOptions,\n\t): Promise<SuiClientTypes.GetProtocolConfigResponse> {\n\t\tconst result = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: GetProtocolConfigDocument,\n\t\t\t\tsignal: options?.signal,\n\t\t\t},\n\t\t\t(result) => result.epoch?.protocolConfigs,\n\t\t);\n\n\t\tconst featureFlags: Record<string, boolean> = {};\n\t\tfor (const flag of result?.featureFlags ?? []) {\n\t\t\tfeatureFlags[flag.key] = flag.value;\n\t\t}\n\t\tconst attributes: Record<string, string | null> = {};\n\t\tfor (const config of result?.configs ?? []) {\n\t\t\tattributes[config.key] = config.value ?? null;\n\t\t}\n\n\t\treturn {\n\t\t\tprotocolConfig: {\n\t\t\t\tprotocolVersion: result?.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 result = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: GetCurrentSystemStateDocument,\n\t\t\t\tsignal: options?.signal,\n\t\t\t},\n\t\t\t(result) => result.epoch,\n\t\t);\n\n\t\tif (!result) {\n\t\t\tthrow new Error('Epoch data not found in response');\n\t\t}\n\n\t\tconst startMs = result.startTimestamp\n\t\t\t? new Date(result.startTimestamp).getTime().toString()\n\t\t\t: (null as never);\n\n\t\t// Parse the system state JSON from the MoveValue\n\t\tconst systemStateJson = result.systemState?.json as\n\t\t\t| {\n\t\t\t\t\tsystem_state_version?: string | number;\n\t\t\t\t\tsafe_mode?: boolean;\n\t\t\t\t\tsafe_mode_storage_rewards?: string;\n\t\t\t\t\tsafe_mode_computation_rewards?: string;\n\t\t\t\t\tsafe_mode_storage_rebates?: string | number;\n\t\t\t\t\tsafe_mode_non_refundable_storage_fee?: string | number;\n\t\t\t\t\tparameters?: {\n\t\t\t\t\t\tepoch_duration_ms?: string | number;\n\t\t\t\t\t\tstake_subsidy_start_epoch?: string | number;\n\t\t\t\t\t\tmax_validator_count?: string | number;\n\t\t\t\t\t\tmin_validator_joining_stake?: string | number;\n\t\t\t\t\t\tvalidator_low_stake_threshold?: string | number;\n\t\t\t\t\t\tvalidator_low_stake_grace_period?: string | number;\n\t\t\t\t\t};\n\t\t\t\t\tstorage_fund?: {\n\t\t\t\t\t\ttotal_object_storage_rebates?: string;\n\t\t\t\t\t\tnon_refundable_balance?: string;\n\t\t\t\t\t};\n\t\t\t\t\tstake_subsidy?: {\n\t\t\t\t\t\tbalance?: string;\n\t\t\t\t\t\tdistribution_counter?: string | number;\n\t\t\t\t\t\tcurrent_distribution_amount?: string | number;\n\t\t\t\t\t\tstake_subsidy_period_length?: string | number;\n\t\t\t\t\t\tstake_subsidy_decrease_rate?: number;\n\t\t\t\t\t};\n\t\t\t }\n\t\t\t| undefined;\n\n\t\treturn {\n\t\t\tsystemState: {\n\t\t\t\tsystemStateVersion: systemStateJson?.system_state_version?.toString() ?? (null as never),\n\t\t\t\tepoch: result.epochId?.toString() ?? (null as never),\n\t\t\t\tprotocolVersion: result.protocolConfigs?.protocolVersion?.toString() ?? (null as never),\n\t\t\t\treferenceGasPrice: result.referenceGasPrice ?? (null as never),\n\t\t\t\tepochStartTimestampMs: startMs,\n\t\t\t\tsafeMode: systemStateJson?.safe_mode ?? false,\n\t\t\t\tsafeModeStorageRewards: systemStateJson?.safe_mode_storage_rewards ?? (null as never),\n\t\t\t\tsafeModeComputationRewards:\n\t\t\t\t\tsystemStateJson?.safe_mode_computation_rewards ?? (null as never),\n\t\t\t\tsafeModeStorageRebates:\n\t\t\t\t\tsystemStateJson?.safe_mode_storage_rebates?.toString() ?? (null as never),\n\t\t\t\tsafeModeNonRefundableStorageFee:\n\t\t\t\t\tsystemStateJson?.safe_mode_non_refundable_storage_fee?.toString() ?? (null as never),\n\t\t\t\tparameters: {\n\t\t\t\t\tepochDurationMs:\n\t\t\t\t\t\tsystemStateJson?.parameters?.epoch_duration_ms?.toString() ?? (null as never),\n\t\t\t\t\tstakeSubsidyStartEpoch:\n\t\t\t\t\t\tsystemStateJson?.parameters?.stake_subsidy_start_epoch?.toString() ?? (null as never),\n\t\t\t\t\tmaxValidatorCount:\n\t\t\t\t\t\tsystemStateJson?.parameters?.max_validator_count?.toString() ?? (null as never),\n\t\t\t\t\tminValidatorJoiningStake:\n\t\t\t\t\t\tsystemStateJson?.parameters?.min_validator_joining_stake?.toString() ?? (null as never),\n\t\t\t\t\tvalidatorLowStakeThreshold:\n\t\t\t\t\t\tsystemStateJson?.parameters?.validator_low_stake_threshold?.toString() ??\n\t\t\t\t\t\t(null as never),\n\t\t\t\t\tvalidatorLowStakeGracePeriod:\n\t\t\t\t\t\tsystemStateJson?.parameters?.validator_low_stake_grace_period?.toString() ??\n\t\t\t\t\t\t(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\tsystemStateJson?.storage_fund?.total_object_storage_rebates ?? (null as never),\n\t\t\t\t\tnonRefundableBalance:\n\t\t\t\t\t\tsystemStateJson?.storage_fund?.non_refundable_balance ?? (null as never),\n\t\t\t\t},\n\t\t\t\tstakeSubsidy: {\n\t\t\t\t\tbalance: systemStateJson?.stake_subsidy?.balance ?? (null as never),\n\t\t\t\t\tdistributionCounter:\n\t\t\t\t\t\tsystemStateJson?.stake_subsidy?.distribution_counter?.toString() ?? (null as never),\n\t\t\t\t\tcurrentDistributionAmount:\n\t\t\t\t\t\tsystemStateJson?.stake_subsidy?.current_distribution_amount?.toString() ??\n\t\t\t\t\t\t(null as never),\n\t\t\t\t\tstakeSubsidyPeriodLength:\n\t\t\t\t\t\tsystemStateJson?.stake_subsidy?.stake_subsidy_period_length?.toString() ??\n\t\t\t\t\t\t(null as never),\n\t\t\t\t\tstakeSubsidyDecreaseRate:\n\t\t\t\t\t\tsystemStateJson?.stake_subsidy?.stake_subsidy_decrease_rate ?? (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.#graphqlClient.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 pagination = resolvePagination(options);\n\t\tconst { descending, after, before, limit } = pagination;\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\tvalidateTransactionQuery(filter, pagination);\n\n\t\tconst transactions = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: ListTransactionsDocument,\n\t\t\t\tsignal: options.signal,\n\t\t\t\tvariables: {\n\t\t\t\t\tfilter: filter && {\n\t\t\t\t\t\tsentAddress: filter.$kind === 'sender' ? filter.sender : undefined,\n\t\t\t\t\t\tfunction:\n\t\t\t\t\t\t\tfilter.$kind === 'function'\n\t\t\t\t\t\t\t\t? [filter.package, filter.module, filter.function].filter(Boolean).join('::')\n\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t},\n\t\t\t\t\tfirst: descending ? undefined : limit,\n\t\t\t\t\tafter,\n\t\t\t\t\tlast: descending ? limit : undefined,\n\t\t\t\t\tbefore,\n\t\t\t\t\tincludeTransaction: options.include?.transaction ?? false,\n\t\t\t\t\tincludeEffects: options.include?.effects ?? false,\n\t\t\t\t\tincludeEvents: options.include?.events ?? false,\n\t\t\t\t\tincludeBalanceChanges: options.include?.balanceChanges ?? false,\n\t\t\t\t\tincludeObjectTypes: options.include?.objectTypes ?? false,\n\t\t\t\t\tincludeBcs: options.include?.bcs ?? false,\n\t\t\t\t},\n\t\t\t},\n\t\t\t(result) => result.transactions,\n\t\t);\n\n\t\t// Backwards pagination returns nodes in ascending order, so reverse them for descending reads\n\t\tconst nodes = descending ? [...transactions.nodes].reverse() : transactions.nodes;\n\n\t\treturn {\n\t\t\ttransactions: nodes.map((transaction) => parseTransaction(transaction, options.include)),\n\t\t\thasNextPage: descending\n\t\t\t\t? transactions.pageInfo.hasPreviousPage\n\t\t\t\t: transactions.pageInfo.hasNextPage,\n\t\t\tstartCursor:\n\t\t\t\t(descending ? transactions.pageInfo.endCursor : transactions.pageInfo.startCursor) ?? null,\n\t\t\tendCursor:\n\t\t\t\t(descending ? transactions.pageInfo.startCursor : transactions.pageInfo.endCursor) ?? null,\n\t\t};\n\t}\n\n\tasync listEvents(\n\t\toptions: SuiClientTypes.ListEventsOptions,\n\t): Promise<SuiClientTypes.ListEventsResponse> {\n\t\tconst { descending, after, before, limit } = resolvePagination(options);\n\t\tconst filter = options.filter\n\t\t\t? await resolveEventFilter(this.mvr, options.filter, options.signal)\n\t\t\t: undefined;\n\n\t\tconst events = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: ListEventsDocument,\n\t\t\t\tsignal: options.signal,\n\t\t\t\tvariables: {\n\t\t\t\t\tfilter: filter && {\n\t\t\t\t\t\tsender: filter.$kind === 'sender' ? filter.sender : undefined,\n\t\t\t\t\t\tmodule:\n\t\t\t\t\t\t\tfilter.$kind === 'emitModule' ? `${filter.package}::${filter.module}` : undefined,\n\t\t\t\t\t\ttype:\n\t\t\t\t\t\t\tfilter.$kind === 'eventTypeModule'\n\t\t\t\t\t\t\t\t? `${filter.package}::${filter.module}`\n\t\t\t\t\t\t\t\t: filter.$kind === 'eventType'\n\t\t\t\t\t\t\t\t\t? filter.eventType\n\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t},\n\t\t\t\t\tfirst: descending ? undefined : limit,\n\t\t\t\t\tafter,\n\t\t\t\t\tlast: descending ? limit : undefined,\n\t\t\t\t\tbefore,\n\t\t\t\t},\n\t\t\t},\n\t\t\t(result) => result.events,\n\t\t);\n\n\t\t// Backwards pagination returns nodes in ascending order, so reverse them for descending reads\n\t\tconst nodes = descending ? [...events.nodes].reverse() : events.nodes;\n\n\t\treturn {\n\t\t\tevents: nodes.map((event): SuiClientTypes.EventEntry => {\n\t\t\t\tconst packageId = event.transactionModule?.package?.address;\n\t\t\t\tconst module = event.transactionModule?.name;\n\t\t\t\tconst sender = event.sender?.address;\n\t\t\t\tconst eventType = event.contents?.type?.repr;\n\t\t\t\tconst transactionDigest = event.transaction?.digest;\n\n\t\t\t\tif (!packageId || !module || !sender || !eventType || !transactionDigest) {\n\t\t\t\t\tthrow new Error('listEvents response is missing expected event fields');\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\tpackageId: normalizeSuiAddress(packageId),\n\t\t\t\t\tmodule,\n\t\t\t\t\tsender: normalizeSuiAddress(sender),\n\t\t\t\t\teventType: normalizeStructTag(eventType),\n\t\t\t\t\tbcs: event.contents?.bcs ? fromBase64(event.contents.bcs) : new Uint8Array(),\n\t\t\t\t\tjson: (event.contents?.json as Record<string, unknown>) ?? null,\n\t\t\t\t\tcheckpoint: event.transaction?.effects?.checkpoint?.sequenceNumber?.toString() ?? null,\n\t\t\t\t\ttransactionDigest,\n\t\t\t\t\teventIndex: event.sequenceNumber,\n\t\t\t\t};\n\t\t\t}),\n\t\t\thasNextPage: descending ? events.pageInfo.hasPreviousPage : events.pageInfo.hasNextPage,\n\t\t\tstartCursor: (descending ? events.pageInfo.endCursor : events.pageInfo.startCursor) ?? null,\n\t\t\tendCursor: (descending ? events.pageInfo.startCursor : events.pageInfo.endCursor) ?? null,\n\t\t};\n\t}\n\n\tasync verifyZkLoginSignature(\n\t\toptions: SuiClientTypes.VerifyZkLoginSignatureOptions,\n\t): Promise<SuiClientTypes.ZkLoginVerifyResponse> {\n\t\tconst intentScope =\n\t\t\toptions.intentScope === 'TransactionData'\n\t\t\t\t? ZkLoginIntentScope.TransactionData\n\t\t\t\t: ZkLoginIntentScope.PersonalMessage;\n\n\t\tconst { data } = await this.#graphqlClient.query({\n\t\t\tquery: VerifyZkLoginSignatureDocument,\n\t\t\tsignal: options.signal,\n\t\t\tvariables: {\n\t\t\t\tbytes: options.bytes,\n\t\t\t\tsignature: options.signature,\n\t\t\t\tintentScope,\n\t\t\t\tauthor: options.address,\n\t\t\t},\n\t\t});\n\n\t\treturn {\n\t\t\tsuccess: data?.verifyZkLoginSignature?.success ?? false,\n\t\t\terrors: [],\n\t\t};\n\t}\n\n\tasync defaultNameServiceName(\n\t\toptions: SuiClientTypes.DefaultNameServiceNameOptions,\n\t): Promise<SuiClientTypes.DefaultNameServiceNameResponse> {\n\t\tconst name = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: DefaultSuinsNameDocument,\n\t\t\t\tsignal: options.signal,\n\t\t\t\tvariables: {\n\t\t\t\t\taddress: options.address,\n\t\t\t\t},\n\t\t\t},\n\t\t\t(result) => result.address?.defaultNameRecord?.domain ?? null,\n\t\t);\n\n\t\treturn {\n\t\t\tdata: { name: name },\n\t\t};\n\t}\n\n\tasync resolveNameServiceAddress(\n\t\toptions: SuiClientTypes.ResolveNameServiceAddressOptions,\n\t): Promise<SuiClientTypes.ResolveNameServiceAddressResponse> {\n\t\tconst { data, errors } = await this.#graphqlClient.query({\n\t\t\tquery: ResolveNameServiceAddressDocument,\n\t\t\tsignal: options.signal,\n\t\t\tvariables: { name: options.name },\n\t\t});\n\n\t\thandleGraphQLErrors(errors);\n\n\t\treturn { address: data?.address?.address ?? null };\n\t}\n\n\tasync getMoveFunction(\n\t\toptions: SuiClientTypes.GetMoveFunctionOptions,\n\t): Promise<SuiClientTypes.GetMoveFunctionResponse> {\n\t\tconst moveFunction = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: GetMoveFunctionDocument,\n\t\t\t\tsignal: options.signal,\n\t\t\t\tvariables: {\n\t\t\t\t\tpackage: (\n\t\t\t\t\t\tawait this.mvr.resolvePackage({ package: options.packageId, signal: options.signal })\n\t\t\t\t\t).package,\n\t\t\t\t\tmodule: options.moduleName,\n\t\t\t\t\tfunction: options.name,\n\t\t\t\t},\n\t\t\t},\n\t\t\t(result) => result.package?.module?.function,\n\t\t);\n\n\t\tlet visibility: 'public' | 'private' | 'friend' | 'unknown' = 'unknown';\n\n\t\tswitch (moveFunction.visibility) {\n\t\t\tcase 'PUBLIC':\n\t\t\t\tvisibility = 'public';\n\t\t\t\tbreak;\n\t\t\tcase 'PRIVATE':\n\t\t\t\tvisibility = 'private';\n\t\t\t\tbreak;\n\t\t\tcase '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(options.packageId),\n\t\t\t\tmoduleName: options.moduleName,\n\t\t\t\tname: moveFunction.name,\n\t\t\t\tvisibility,\n\t\t\t\tisEntry: moveFunction.isEntry ?? false,\n\t\t\t\ttypeParameters:\n\t\t\t\t\tmoveFunction.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 'COPY':\n\t\t\t\t\t\t\t\t\t\treturn 'copy';\n\t\t\t\t\t\t\t\t\tcase 'DROP':\n\t\t\t\t\t\t\t\t\t\treturn 'drop';\n\t\t\t\t\t\t\t\t\tcase 'STORE':\n\t\t\t\t\t\t\t\t\t\treturn 'store';\n\t\t\t\t\t\t\t\t\tcase '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\tmoveFunction.parameters?.map((param) => parseNormalizedSuiMoveType(param.signature)) ??\n\t\t\t\t\t[],\n\t\t\t\treturns:\n\t\t\t\t\tmoveFunction.return?.map(({ signature }) => parseNormalizedSuiMoveType(signature)) ?? [],\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\tconst cached = this.cache.read(['chainIdentifier'], async () => {\n\t\t\tconst checkpoint = await this.#graphqlQuery(\n\t\t\t\t{\n\t\t\t\t\tquery: GetChainIdentifierDocument,\n\t\t\t\t},\n\t\t\t\t(result) => result.checkpoint,\n\t\t\t);\n\t\t\tif (!checkpoint?.digest) {\n\t\t\t\tthrow new Error('Genesis checkpoint digest not found');\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tchainIdentifier: checkpoint.digest,\n\t\t\t};\n\t\t});\n\n\t\treturn raceSignal(Promise.resolve(cached), options?.signal);\n\t}\n\n\tresolveTransactionPlugin() {\n\t\tconst graphqlClient = this.#graphqlClient;\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\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 transactionJson = GrpcTransactionType.toJson(grpcTransaction);\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\tconst { data, errors } = await graphqlClient.query({\n\t\t\t\tquery: ResolveTransactionDocument,\n\t\t\t\tvariables: {\n\t\t\t\t\ttransaction: transactionJson,\n\t\t\t\t\tdoGasSelection,\n\t\t\t\t\tchecksEnabled: !options.onlyTransactionKind,\n\t\t\t\t},\n\t\t\t});\n\n\t\t\thandleGraphQLErrors(errors);\n\n\t\t\tconst transactionEffects = data?.simulateTransaction?.effects?.transaction?.effects;\n\t\t\tif (!options.onlyTransactionKind && transactionEffects?.status === ExecutionStatus.Failure) {\n\t\t\t\tconst executionError = parseGraphQLExecutionError(transactionEffects.executionError);\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\tconst resolvedTransactionBcs =\n\t\t\t\tdata?.simulateTransaction?.effects?.transaction?.transactionBcs;\n\n\t\t\tif (!resolvedTransactionBcs) {\n\t\t\t\tthrow new Error('simulateTransaction did not return resolved transaction data');\n\t\t\t}\n\n\t\t\tconst resolvedBuilder = TransactionDataBuilder.fromBytes(fromBase64(resolvedTransactionBcs));\n\t\t\tconst resolved = resolvedBuilder.snapshot();\n\n\t\t\tif (options.onlyTransactionKind) {\n\t\t\t\ttransactionData.applyResolvedData({\n\t\t\t\t\t...resolved,\n\t\t\t\t\tsender: null,\n\t\t\t\t\tgasData: {\n\t\t\t\t\t\tbudget: null,\n\t\t\t\t\t\towner: null,\n\t\t\t\t\t\tpayment: null,\n\t\t\t\t\t\tprice: null,\n\t\t\t\t\t},\n\t\t\t\t\texpiration: null,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\ttransactionData.applyResolvedData(resolved);\n\t\t\t}\n\t\t\tawait setAddressBalanceTransactionExpirationFromSimulatedEpoch({\n\t\t\t\ttransactionData,\n\t\t\t\tclient: graphqlClient,\n\t\t\t\tepoch: transactionEffects?.epoch?.epochId,\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}\nexport type GraphQLResponseErrors = Array<{\n\tmessage: string;\n\tlocations?: { line: number; column: number }[];\n\tpath?: (string | number)[];\n}>;\n\nfunction mapDisplay(\n\tinclude: boolean | undefined,\n\tdisplay: { output?: unknown | null; errors?: unknown | null } | null | undefined,\n): SuiClientTypes.Display | null | undefined {\n\tif (!include) return undefined;\n\tif (!display) return null;\n\treturn {\n\t\toutput: (display.output as Record<string, unknown> | null) ?? null,\n\t\terrors: (display.errors as Record<string, string> | null) ?? null,\n\t};\n}\n\nfunction handleGraphQLErrors(errors: GraphQLResponseErrors | undefined): void {\n\tif (!errors || errors.length === 0) return;\n\n\tconst errorInstances = errors.map((error) => new GraphQLResponseError(error));\n\n\tif (errorInstances.length === 1) {\n\t\tthrow errorInstances[0];\n\t}\n\n\tthrow new AggregateError(errorInstances);\n}\n\nclass GraphQLResponseError extends Error {\n\tlocations?: Array<{ line: number; column: number }>;\n\n\tconstructor(error: GraphQLResponseErrors[0]) {\n\t\tsuper(error.message);\n\t\tthis.locations = error.locations;\n\t}\n}\n\nfunction mapOwner(owner: Object_Owner_FieldsFragment): SuiClientTypes.ObjectOwner {\n\tswitch (owner.__typename) {\n\t\tcase 'AddressOwner':\n\t\t\treturn { $kind: 'AddressOwner', AddressOwner: owner.address?.address! };\n\t\tcase 'ConsensusAddressOwner':\n\t\t\treturn {\n\t\t\t\t$kind: 'ConsensusAddressOwner',\n\t\t\t\tConsensusAddressOwner: {\n\t\t\t\t\towner: owner?.address?.address!,\n\t\t\t\t\tstartVersion: String(owner.startVersion),\n\t\t\t\t},\n\t\t\t};\n\t\tcase 'ObjectOwner':\n\t\t\treturn { $kind: 'ObjectOwner', ObjectOwner: owner.address?.address! };\n\t\tcase 'Immutable':\n\t\t\treturn { $kind: 'Immutable', Immutable: true };\n\t\tcase 'Shared':\n\t\t\treturn {\n\t\t\t\t$kind: 'Shared',\n\t\t\t\tShared: { initialSharedVersion: String(owner.initialSharedVersion) },\n\t\t\t};\n\t}\n}\n\nfunction parseTransaction<Include extends SuiClientTypes.TransactionInclude = {}>(\n\ttransaction: Transaction_FieldsFragment,\n\tinclude?: Include,\n): SuiClientTypes.TransactionResult<Include> {\n\tconst objectTypes: Record<string, string> = {};\n\n\tif (include?.objectTypes) {\n\t\tconst effectsJson = transaction.effects?.effectsJson;\n\t\tif (effectsJson) {\n\t\t\tconst effects = TransactionEffectsType.fromJson(\n\t\t\t\teffectsJson as Parameters<typeof TransactionEffectsType.fromJson>[0],\n\t\t\t);\n\t\t\teffects.changedObjects?.forEach((change) => {\n\t\t\t\tif (change.objectId && change.objectType) {\n\t\t\t\t\tobjectTypes[change.objectId] = change.objectType;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tconst objectChanges = transaction.effects?.objectChanges?.nodes;\n\t\tif (objectChanges) {\n\t\t\tfor (const change of objectChanges) {\n\t\t\t\tconst type = change.outputState?.asMoveObject?.contents?.type?.repr;\n\t\t\t\tif (change.address && type) {\n\t\t\t\t\tobjectTypes[change.address] = type;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tlet balanceChanges: SuiClientTypes.BalanceChange[] | undefined;\n\tif (include?.balanceChanges) {\n\t\tconst balanceChangesJson = transaction.effects?.balanceChangesJson;\n\t\tif (Array.isArray(balanceChangesJson)) {\n\t\t\tbalanceChanges = balanceChangesJson.map((json) => {\n\t\t\t\tconst change = BalanceChangeType.fromJson(\n\t\t\t\t\tjson as Parameters<typeof BalanceChangeType.fromJson>[0],\n\t\t\t\t);\n\t\t\t\treturn {\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});\n\t\t} else {\n\t\t\tbalanceChanges = [];\n\t\t}\n\t}\n\n\t// Get status from GraphQL response\n\tconst status: SuiClientTypes.ExecutionStatus =\n\t\ttransaction.effects?.status === ExecutionStatus.Success\n\t\t\t? { success: true, error: null }\n\t\t\t: {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\terror: parseGraphQLExecutionError(transaction.effects?.executionError),\n\t\t\t\t};\n\n\tlet transactionData: SuiClientTypes.TransactionData | undefined;\n\tif (include?.transaction && transaction.transactionJson) {\n\t\tconst grpcTx = GrpcTransactionType.fromJson(\n\t\t\ttransaction.transactionJson as Parameters<typeof GrpcTransactionType.fromJson>[0],\n\t\t);\n\t\tconst resolved = grpcTransactionToTransactionData(grpcTx);\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 =\n\t\tinclude?.bcs && transaction.transactionBcs ? fromBase64(transaction.transactionBcs) : undefined;\n\n\tconst result: SuiClientTypes.Transaction<Include> = {\n\t\tdigest: transaction.digest!,\n\t\tstatus,\n\t\teffects: (include?.effects\n\t\t\t? parseTransactionEffectsBcs(fromBase64(transaction.effects?.effectsBcs!))\n\t\t\t: undefined) as SuiClientTypes.Transaction<Include>['effects'],\n\t\tepoch: transaction.effects?.epoch?.epochId?.toString() ?? null,\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) => sig.signatureBytes!),\n\t\tbalanceChanges: balanceChanges as SuiClientTypes.Transaction<Include>['balanceChanges'],\n\t\tevents: (include?.events\n\t\t\t? (transaction.effects?.events?.nodes.map((event) => {\n\t\t\t\t\tconst eventType = event.contents?.type?.repr!;\n\t\t\t\t\tconst [packageId, module] = eventType.split('::');\n\t\t\t\t\treturn {\n\t\t\t\t\t\tpackageId,\n\t\t\t\t\t\tmodule,\n\t\t\t\t\t\tsender: event.sender?.address!,\n\t\t\t\t\t\teventType,\n\t\t\t\t\t\tbcs: event.contents?.bcs ? fromBase64(event.contents.bcs) : new Uint8Array(),\n\t\t\t\t\t\tjson: (event.contents?.json as Record<string, unknown>) ?? null,\n\t\t\t\t\t};\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? { $kind: 'Transaction', Transaction: result, FailedTransaction: undefined as never }\n\t\t: { $kind: 'FailedTransaction', Transaction: undefined as never, FailedTransaction: result };\n}\n\nfunction parseNormalizedSuiMoveType(type: OpenMoveTypeSignature): SuiClientTypes.OpenSignature {\n\tlet reference: 'mutable' | 'immutable' | null = null;\n\n\tif (type.ref === '&') {\n\t\treference = 'immutable';\n\t} else if (type.ref === '&mut') {\n\t\treference = 'mutable';\n\t}\n\n\treturn {\n\t\treference,\n\t\tbody: parseNormalizedSuiMoveTypeBody(type.body),\n\t};\n}\n\nfunction parseGraphQLExecutionError(\n\texecutionError: GraphQLExecutionError | null | undefined,\n): SuiClientTypes.ExecutionError {\n\tconst name = mapGraphQLExecutionErrorKind(executionError);\n\n\tif (name === 'MoveAbort' && executionError?.abortCode != null) {\n\t\tconst location = parseGraphQLMoveLocation(executionError);\n\t\tconst cleverError = parseGraphQLCleverError(executionError);\n\t\tconst commandMatch = executionError.message?.match(/in (\\d+)\\w* command/);\n\t\tconst command = commandMatch ? parseInt(commandMatch[1], 10) - 1 : undefined;\n\n\t\treturn {\n\t\t\t$kind: 'MoveAbort',\n\t\t\tmessage: formatMoveAbortMessage({\n\t\t\t\tcommand,\n\t\t\t\tlocation: location\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tpackage: location.package,\n\t\t\t\t\t\t\tmodule: location.module,\n\t\t\t\t\t\t\tfunctionName: location.functionName,\n\t\t\t\t\t\t\tinstruction: location.instruction,\n\t\t\t\t\t\t}\n\t\t\t\t\t: undefined,\n\t\t\t\tabortCode: executionError.abortCode!,\n\t\t\t\tcleverError: cleverError\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tlineNumber: cleverError.lineNumber,\n\t\t\t\t\t\t\tconstantName: cleverError.constantName,\n\t\t\t\t\t\t\tvalue: cleverError.value,\n\t\t\t\t\t\t}\n\t\t\t\t\t: undefined,\n\t\t\t}),\n\t\t\tcommand,\n\t\t\tMoveAbort: {\n\t\t\t\tabortCode: executionError.abortCode!,\n\t\t\t\tlocation,\n\t\t\t\tcleverError,\n\t\t\t},\n\t\t};\n\t}\n\n\treturn {\n\t\t$kind: 'Unknown',\n\t\tmessage: executionError?.message ?? 'Transaction failed',\n\t\tUnknown: null,\n\t};\n}\n\nfunction mapGraphQLExecutionErrorKind(\n\texecutionError: GraphQLExecutionError | null | undefined,\n): string {\n\tif (executionError?.abortCode != null) {\n\t\treturn 'MoveAbort';\n\t}\n\n\tconst match = executionError?.message?.match(/^(\\w+)/);\n\treturn match?.[1] ?? 'Unknown';\n}\n\nfunction parseGraphQLMoveLocation(\n\texecutionError: GraphQLExecutionError,\n): SuiClientTypes.MoveLocation | undefined {\n\tconst hasLocation = executionError.module?.package?.address && executionError.module?.name;\n\tif (!hasLocation) {\n\t\treturn undefined;\n\t}\n\n\treturn {\n\t\tpackage: executionError.module?.package?.address,\n\t\tmodule: executionError.module?.name,\n\t\tfunctionName: executionError.function?.name,\n\t\tinstruction: executionError.instructionOffset ?? undefined,\n\t};\n}\n\nfunction parseGraphQLCleverError(\n\texecutionError: GraphQLExecutionError,\n): SuiClientTypes.CleverError | undefined {\n\tconst hasCleverError = executionError.identifier || executionError.constant;\n\tif (!hasCleverError) {\n\t\treturn undefined;\n\t}\n\n\treturn {\n\t\tconstantName: executionError.identifier ?? undefined,\n\t\tvalue: executionError.constant ?? undefined,\n\t\tlineNumber: executionError.sourceLineNumber ?? undefined,\n\t};\n}\n\nfunction parseNormalizedSuiMoveTypeBody(\n\ttype: OpenMoveTypeSignatureBody,\n): SuiClientTypes.OpenSignatureBody {\n\tswitch (type) {\n\t\tcase 'address':\n\t\t\treturn { $kind: 'address' };\n\t\tcase 'bool':\n\t\t\treturn { $kind: 'bool' };\n\t\tcase 'u8':\n\t\t\treturn { $kind: 'u8' };\n\t\tcase 'u16':\n\t\t\treturn { $kind: 'u16' };\n\t\tcase 'u32':\n\t\t\treturn { $kind: 'u32' };\n\t\tcase 'u64':\n\t\t\treturn { $kind: 'u64' };\n\t\tcase 'u128':\n\t\t\treturn { $kind: 'u128' };\n\t\tcase 'u256':\n\t\t\treturn { $kind: 'u256' };\n\t}\n\n\tif (typeof type === 'string') {\n\t\tthrow new Error(`Unknown type: ${type}`);\n\t}\n\n\tif ('vector' in type) {\n\t\treturn {\n\t\t\t$kind: 'vector',\n\t\t\tvector: parseNormalizedSuiMoveTypeBody(type.vector),\n\t\t};\n\t}\n\n\tif ('datatype' in type) {\n\t\treturn {\n\t\t\t$kind: 'datatype',\n\t\t\tdatatype: {\n\t\t\t\ttypeName: `${normalizeSuiAddress(type.datatype.package)}::${type.datatype.module}::${type.datatype.type}`,\n\t\t\t\ttypeParameters: type.datatype.typeParameters.map((t) => parseNormalizedSuiMoveTypeBody(t)),\n\t\t\t},\n\t\t};\n\t}\n\n\tif ('typeParameter' in type) {\n\t\treturn {\n\t\t\t$kind: 'typeParameter',\n\t\t\tindex: type.typeParameter,\n\t\t};\n\t}\n\n\tthrow new Error(`Unknown type: ${JSON.stringify(type)}`);\n}\n"],"mappings":"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"}
@@ -3165,6 +3165,9 @@ declare const introspection: {
3165
3165
  }, {
3166
3166
  readonly kind: "OBJECT";
3167
3167
  readonly name: "DisplayRegistryCreateTransaction";
3168
+ }, {
3169
+ readonly kind: "OBJECT";
3170
+ readonly name: "ForwardingAddressRegistryCreateTransaction";
3168
3171
  }, {
3169
3172
  readonly kind: "OBJECT";
3170
3173
  readonly name: "RandomnessStateCreateTransaction";
@@ -3907,6 +3910,19 @@ declare const introspection: {
3907
3910
  readonly isDeprecated: false;
3908
3911
  }];
3909
3912
  readonly interfaces: readonly [];
3913
+ }, {
3914
+ readonly kind: "OBJECT";
3915
+ readonly name: "ForwardingAddressRegistryCreateTransaction";
3916
+ readonly fields: readonly [{
3917
+ readonly name: "_";
3918
+ readonly type: {
3919
+ readonly kind: "SCALAR";
3920
+ readonly name: "Boolean";
3921
+ };
3922
+ readonly args: readonly [];
3923
+ readonly isDeprecated: false;
3924
+ }];
3925
+ readonly interfaces: readonly [];
3910
3926
  }, {
3911
3927
  readonly kind: "OBJECT";
3912
3928
  readonly name: "GasCoin";
@@ -114,11 +114,15 @@ declare class SuiGrpcClient extends BaseClient implements SuiClientTypes.Transpo
114
114
  signAndExecuteTransaction<Include extends GrpcTransactionInclude = {}>(input: GrpcSignAndExecuteTransactionOptions<Include>): Promise<GrpcTransactionResult<Include>>;
115
115
  waitForTransaction<Include extends GrpcTransactionInclude = {}>(input: GrpcWaitForTransactionOptions<Include>): Promise<GrpcTransactionResult<Include>>;
116
116
  simulateTransaction<Include extends GrpcSimulateTransactionInclude = {}>(input: GrpcSimulateTransactionOptions<Include>): Promise<GrpcSimulateTransactionResult<Include>>;
117
- getReferenceGasPrice(): Promise<SuiClientTypes.GetReferenceGasPriceResponse>;
117
+ getReferenceGasPrice(input?: SuiClientTypes.GetReferenceGasPriceOptions): Promise<SuiClientTypes.GetReferenceGasPriceResponse>;
118
+ getCurrentSystemState(input?: SuiClientTypes.GetCurrentSystemStateOptions): Promise<SuiClientTypes.GetCurrentSystemStateResponse>;
119
+ getProtocolConfig(input?: SuiClientTypes.GetProtocolConfigOptions): Promise<SuiClientTypes.GetProtocolConfigResponse>;
120
+ getChainIdentifier(input?: SuiClientTypes.GetChainIdentifierOptions): Promise<SuiClientTypes.GetChainIdentifierResponse>;
118
121
  listDynamicFields<Include extends DynamicFieldInclude = {}>(input: SuiClientTypes.ListDynamicFieldsOptions & {
119
122
  include?: Include & DynamicFieldInclude;
120
123
  }): Promise<ListDynamicFieldsWithValueResponse<Include>>;
121
124
  getDynamicField(input: SuiClientTypes.GetDynamicFieldOptions): Promise<SuiClientTypes.GetDynamicFieldResponse>;
125
+ getDynamicObjectField<Include extends SuiClientTypes.ObjectInclude = {}>(input: SuiClientTypes.GetDynamicObjectFieldOptions<Include>): Promise<SuiClientTypes.GetDynamicObjectFieldResponse<Include>>;
122
126
  listTransactions<Include extends SuiClientTypes.TransactionInclude = {}>(input: SuiClientTypes.ListTransactionsOptions<Include>): Promise<SuiClientTypes.ListTransactionsResponse<Include>>;
123
127
  listEvents(input: SuiClientTypes.ListEventsOptions): Promise<SuiClientTypes.ListEventsResponse>;
124
128
  getMoveFunction(input: SuiClientTypes.GetMoveFunctionOptions): Promise<SuiClientTypes.GetMoveFunctionResponse>;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.mts","names":[],"sources":["../../src/grpc/client.ts"],"mappings":"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"}
1
+ {"version":3,"file":"client.d.mts","names":[],"sources":["../../src/grpc/client.ts"],"mappings":"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"}
@@ -82,8 +82,17 @@ var SuiGrpcClient = class extends BaseClient {
82
82
  simulateTransaction(input) {
83
83
  return this.core.simulateTransaction(input);
84
84
  }
85
- getReferenceGasPrice() {
86
- return this.core.getReferenceGasPrice();
85
+ getReferenceGasPrice(input) {
86
+ return this.core.getReferenceGasPrice(input);
87
+ }
88
+ getCurrentSystemState(input) {
89
+ return this.core.getCurrentSystemState(input);
90
+ }
91
+ getProtocolConfig(input) {
92
+ return this.core.getProtocolConfig(input);
93
+ }
94
+ getChainIdentifier(input) {
95
+ return this.core.getChainIdentifier(input);
87
96
  }
88
97
  async listDynamicFields(input) {
89
98
  const includeValue = input.include?.value ?? false;
@@ -128,6 +137,9 @@ var SuiGrpcClient = class extends BaseClient {
128
137
  getDynamicField(input) {
129
138
  return this.core.getDynamicField(input);
130
139
  }
140
+ getDynamicObjectField(input) {
141
+ return this.core.getDynamicObjectField(input);
142
+ }
131
143
  listTransactions(input) {
132
144
  return this.core.listTransactions(input);
133
145
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client.mjs","names":[],"sources":["../../src/grpc/client.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { GrpcWebOptions } from '@protobuf-ts/grpcweb-transport';\nimport { GrpcWebFetchTransport } from '@protobuf-ts/grpcweb-transport';\nimport { TransactionExecutionServiceClient } from './proto/sui/rpc/v2/transaction_execution_service.client.js';\nimport { LedgerServiceClient } from './proto/sui/rpc/v2/ledger_service.client.js';\nimport { MovePackageServiceClient } from './proto/sui/rpc/v2/move_package_service.client.js';\nimport { SignatureVerificationServiceClient } from './proto/sui/rpc/v2/signature_verification_service.client.js';\nimport type { RpcTransport } from '@protobuf-ts/runtime-rpc';\nimport { StateServiceClient } from './proto/sui/rpc/v2/state_service.client.js';\nimport { SubscriptionServiceClient } from './proto/sui/rpc/v2/subscription_service.client.js';\nimport { GrpcCoreClient } from './core.js';\nimport type { SuiClientTypes } from '../client/index.js';\nimport { BaseClient } from '../client/index.js';\nimport { DynamicField_DynamicFieldKind } from './proto/sui/rpc/v2/state_service.js';\nimport { normalizeStructTag } from '../utils/sui-types.js';\nimport { fromBase64, toBase64 } from '@mysten/utils';\nimport { NameServiceClient } from './proto/sui/rpc/v2/name_service.client.js';\nimport { ForkingServiceClient } from './proto/sui/forking/v1alpha/forking_service.client.js';\nimport type { TransactionPlugin } from '../transactions/index.js';\n\ninterface SuiGrpcTransportOptions extends GrpcWebOptions {\n\ttransport?: never;\n}\n\nexport type SuiGrpcClientOptions = {\n\tnetwork: SuiClientTypes.Network;\n\tmvr?: SuiClientTypes.MvrOptions;\n} & (\n\t| {\n\t\t\ttransport: RpcTransport;\n\t }\n\t| SuiGrpcTransportOptions\n);\n\nconst SUI_CLIENT_BRAND = Symbol.for('@mysten/SuiGrpcClient') as never;\n\nexport function isSuiGrpcClient(client: unknown): client is SuiGrpcClient {\n\treturn (\n\t\ttypeof client === 'object' && client !== null && (client as any)[SUI_CLIENT_BRAND] === true\n\t);\n}\n\nexport interface DynamicFieldInclude {\n\tvalue?: boolean;\n}\n\nexport type DynamicFieldEntryWithValue<Include extends DynamicFieldInclude = {}> =\n\tSuiClientTypes.DynamicFieldEntry & {\n\t\tvalue: Include extends { value: true } ? SuiClientTypes.DynamicFieldValue : undefined;\n\t};\n\nexport interface ListDynamicFieldsWithValueResponse<Include extends DynamicFieldInclude = {}> {\n\thasNextPage: boolean;\n\tcursor: string | null;\n\tdynamicFields: DynamicFieldEntryWithValue<Include>[];\n}\n\nexport interface GrpcTransactionInclude extends SuiClientTypes.TransactionInclude {\n\t/** Include the parsed protobuf JSON value for the gRPC transaction response. */\n\tprotoJson?: boolean;\n}\n\nexport interface GrpcSimulateTransactionInclude extends SuiClientTypes.SimulateTransactionInclude {\n\t/** Include the parsed protobuf JSON value for the gRPC simulation response. */\n\tprotoJson?: boolean;\n}\n\nexport type GrpcTransactionProtoJson = ReturnType<\n\ttypeof import('./proto/sui/rpc/v2/executed_transaction.js').ExecutedTransaction.toJson\n>;\n\nexport type GrpcSimulateTransactionProtoJson = ReturnType<\n\ttypeof import('./proto/sui/rpc/v2/transaction_execution_service.js').SimulateTransactionResponse.toJson\n>;\n\ntype ProtoJson<Include extends { protoJson?: boolean }, Json> = Include['protoJson'] extends true\n\t? Json\n\t: undefined;\n\nexport type GrpcTransactionResult<Include extends GrpcTransactionInclude = {}> =\n\tSuiClientTypes.TransactionResult<Include> & {\n\t\tprotoJson: ProtoJson<Include, GrpcTransactionProtoJson>;\n\t};\n\nexport type GrpcSimulateTransactionResult<Include extends GrpcSimulateTransactionInclude = {}> =\n\tSuiClientTypes.SimulateTransactionResult<Include> & {\n\t\tprotoJson: ProtoJson<Include, GrpcSimulateTransactionProtoJson>;\n\t};\n\nexport interface GrpcGetTransactionOptions<\n\tInclude extends GrpcTransactionInclude = {},\n> extends SuiClientTypes.GetTransactionOptions<Include> {\n\tinclude?: Include & GrpcTransactionInclude;\n}\n\nexport interface GrpcWaitForTransactionByDigest<\n\tInclude extends GrpcTransactionInclude = {},\n> extends SuiClientTypes.WaitForTransactionByDigest<Include> {\n\tinclude?: Include & GrpcTransactionInclude;\n}\n\nexport interface GrpcWaitForTransactionByResult<\n\tInclude extends GrpcTransactionInclude = {},\n> extends SuiClientTypes.WaitForTransactionByResult<Include> {\n\tinclude?: Include & GrpcTransactionInclude;\n}\n\nexport type GrpcWaitForTransactionOptions<Include extends GrpcTransactionInclude = {}> =\n\t| GrpcWaitForTransactionByDigest<Include>\n\t| GrpcWaitForTransactionByResult<Include>;\n\nexport interface GrpcExecuteTransactionOptions<\n\tInclude extends GrpcTransactionInclude = {},\n> extends SuiClientTypes.ExecuteTransactionOptions<Include> {\n\tinclude?: Include & GrpcTransactionInclude;\n}\n\nexport interface GrpcSignAndExecuteTransactionOptions<\n\tInclude extends GrpcTransactionInclude = {},\n> extends SuiClientTypes.SignAndExecuteTransactionOptions<Include> {\n\tinclude?: Include & GrpcTransactionInclude;\n}\n\nexport interface GrpcSimulateTransactionOptions<\n\tInclude extends GrpcSimulateTransactionInclude = {},\n> extends SuiClientTypes.SimulateTransactionOptions<Include> {\n\tinclude?: Include & GrpcSimulateTransactionInclude;\n\t/**\n\t * Overrides whether the server selects gas payment during simulation.\n\t *\n\t * When not set, gas selection is enabled only when the transaction's gas payment is explicitly\n\t * set to an empty list (`[]`), which indicates gas is paid from the sender's address balance.\n\t * Transactions with gas coins set are simulated as-is, and transactions without a gas payment\n\t * are simulated with a mocked gas coin.\n\t */\n\tdoGasSelection?: boolean;\n}\n\nexport class SuiGrpcClient extends BaseClient implements SuiClientTypes.TransportMethods {\n\tcore: GrpcCoreClient;\n\tget mvr(): SuiClientTypes.MvrMethods {\n\t\treturn this.core.mvr;\n\t}\n\ttransactionExecutionService: TransactionExecutionServiceClient;\n\tledgerService: LedgerServiceClient;\n\tstateService: StateServiceClient;\n\tsubscriptionService: SubscriptionServiceClient;\n\tmovePackageService: MovePackageServiceClient;\n\tsignatureVerificationService: SignatureVerificationServiceClient;\n\tnameService: NameServiceClient;\n\tforkingService: ForkingServiceClient;\n\n\tget [SUI_CLIENT_BRAND]() {\n\t\treturn true;\n\t}\n\n\tconstructor(options: SuiGrpcClientOptions) {\n\t\tsuper({ network: options.network });\n\t\tconst transport =\n\t\t\toptions.transport ??\n\t\t\tnew GrpcWebFetchTransport({ baseUrl: options.baseUrl, fetchInit: options.fetchInit });\n\t\tthis.transactionExecutionService = new TransactionExecutionServiceClient(transport);\n\t\tthis.ledgerService = new LedgerServiceClient(transport);\n\t\tthis.stateService = new StateServiceClient(transport);\n\t\tthis.subscriptionService = new SubscriptionServiceClient(transport);\n\t\tthis.movePackageService = new MovePackageServiceClient(transport);\n\t\tthis.signatureVerificationService = new SignatureVerificationServiceClient(transport);\n\t\tthis.nameService = new NameServiceClient(transport);\n\t\tthis.forkingService = new ForkingServiceClient(transport);\n\n\t\tthis.core = new GrpcCoreClient({\n\t\t\tclient: this,\n\t\t\tbase: this,\n\t\t\tnetwork: options.network,\n\t\t\tmvr: options.mvr,\n\t\t});\n\t}\n\n\tgetObjects<Include extends SuiClientTypes.ObjectInclude = {}>(\n\t\tinput: SuiClientTypes.GetObjectsOptions<Include>,\n\t): Promise<SuiClientTypes.GetObjectsResponse<Include>> {\n\t\treturn this.core.getObjects(input);\n\t}\n\n\tgetObject<Include extends SuiClientTypes.ObjectInclude = {}>(\n\t\tinput: SuiClientTypes.GetObjectOptions<Include>,\n\t): Promise<SuiClientTypes.GetObjectResponse<Include>> {\n\t\treturn this.core.getObject(input);\n\t}\n\n\tlistCoins(input: SuiClientTypes.ListCoinsOptions): Promise<SuiClientTypes.ListCoinsResponse> {\n\t\treturn this.core.listCoins(input);\n\t}\n\n\tlistOwnedObjects<Include extends SuiClientTypes.ObjectInclude = {}>(\n\t\tinput: SuiClientTypes.ListOwnedObjectsOptions<Include>,\n\t): Promise<SuiClientTypes.ListOwnedObjectsResponse<Include>> {\n\t\treturn this.core.listOwnedObjects(input);\n\t}\n\n\tgetBalance(input: SuiClientTypes.GetBalanceOptions): Promise<SuiClientTypes.GetBalanceResponse> {\n\t\treturn this.core.getBalance(input);\n\t}\n\n\tlistBalances(\n\t\tinput: SuiClientTypes.ListBalancesOptions,\n\t): Promise<SuiClientTypes.ListBalancesResponse> {\n\t\treturn this.core.listBalances(input);\n\t}\n\n\tgetCoinMetadata(\n\t\tinput: SuiClientTypes.GetCoinMetadataOptions,\n\t): Promise<SuiClientTypes.GetCoinMetadataResponse> {\n\t\treturn this.core.getCoinMetadata(input);\n\t}\n\n\tgetTransaction<Include extends GrpcTransactionInclude = {}>(\n\t\tinput: GrpcGetTransactionOptions<Include>,\n\t): Promise<GrpcTransactionResult<Include>> {\n\t\treturn this.core.getTransaction(input) as Promise<GrpcTransactionResult<Include>>;\n\t}\n\n\texecuteTransaction<Include extends GrpcTransactionInclude = {}>(\n\t\tinput: GrpcExecuteTransactionOptions<Include>,\n\t): Promise<GrpcTransactionResult<Include>> {\n\t\treturn this.core.executeTransaction(input) as Promise<GrpcTransactionResult<Include>>;\n\t}\n\n\tsignAndExecuteTransaction<Include extends GrpcTransactionInclude = {}>(\n\t\tinput: GrpcSignAndExecuteTransactionOptions<Include>,\n\t): Promise<GrpcTransactionResult<Include>> {\n\t\treturn this.core.signAndExecuteTransaction(input) as Promise<GrpcTransactionResult<Include>>;\n\t}\n\n\twaitForTransaction<Include extends GrpcTransactionInclude = {}>(\n\t\tinput: GrpcWaitForTransactionOptions<Include>,\n\t): Promise<GrpcTransactionResult<Include>> {\n\t\treturn this.core.waitForTransaction(input) as Promise<GrpcTransactionResult<Include>>;\n\t}\n\n\tsimulateTransaction<Include extends GrpcSimulateTransactionInclude = {}>(\n\t\tinput: GrpcSimulateTransactionOptions<Include>,\n\t): Promise<GrpcSimulateTransactionResult<Include>> {\n\t\treturn this.core.simulateTransaction(input) as Promise<GrpcSimulateTransactionResult<Include>>;\n\t}\n\n\tgetReferenceGasPrice(): Promise<SuiClientTypes.GetReferenceGasPriceResponse> {\n\t\treturn this.core.getReferenceGasPrice();\n\t}\n\n\tasync listDynamicFields<Include extends DynamicFieldInclude = {}>(\n\t\tinput: SuiClientTypes.ListDynamicFieldsOptions & { include?: Include & DynamicFieldInclude },\n\t): Promise<ListDynamicFieldsWithValueResponse<Include>> {\n\t\tconst includeValue = input.include?.value ?? false;\n\t\tconst paths = ['field_id', 'name', 'value_type', 'kind', 'child_id'];\n\t\tif (includeValue) {\n\t\t\tpaths.push('value');\n\t\t}\n\n\t\tconst response = await this.stateService.listDynamicFields(\n\t\t\t{\n\t\t\t\tparent: input.parentId,\n\t\t\t\tpageToken: input.cursor ? fromBase64(input.cursor) : undefined,\n\t\t\t\tpageSize: input.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: input.signal },\n\t\t);\n\n\t\treturn {\n\t\t\tdynamicFields: response.response.dynamicFields.map(\n\t\t\t\t(field): DynamicFieldEntryWithValue<Include> => {\n\t\t\t\t\tconst isDynamicObject = field.kind === DynamicField_DynamicFieldKind.OBJECT;\n\t\t\t\t\tconst fieldType = isDynamicObject\n\t\t\t\t\t\t? `0x2::dynamic_field::Field<0x2::dynamic_object_field::Wrapper<${field.name?.name!}>,0x2::object::ID>`\n\t\t\t\t\t\t: `0x2::dynamic_field::Field<${field.name?.name!},${field.valueType!}>`;\n\t\t\t\t\treturn {\n\t\t\t\t\t\t$kind: isDynamicObject ? 'DynamicObject' : 'DynamicField',\n\t\t\t\t\t\tfieldId: field.fieldId!,\n\t\t\t\t\t\tname: {\n\t\t\t\t\t\t\ttype: field.name?.name!,\n\t\t\t\t\t\t\tbcs: field.name?.value!,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tvalueType: field.valueType!,\n\t\t\t\t\t\ttype: normalizeStructTag(fieldType),\n\t\t\t\t\t\tchildId: field.childId,\n\t\t\t\t\t\tvalue: (includeValue\n\t\t\t\t\t\t\t? { type: field.valueType!, bcs: field.value?.value ?? new Uint8Array() }\n\t\t\t\t\t\t\t: undefined) as DynamicFieldEntryWithValue<Include>['value'],\n\t\t\t\t\t} as DynamicFieldEntryWithValue<Include>;\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\tgetDynamicField(\n\t\tinput: SuiClientTypes.GetDynamicFieldOptions,\n\t): Promise<SuiClientTypes.GetDynamicFieldResponse> {\n\t\treturn this.core.getDynamicField(input);\n\t}\n\n\tlistTransactions<Include extends SuiClientTypes.TransactionInclude = {}>(\n\t\tinput: SuiClientTypes.ListTransactionsOptions<Include>,\n\t): Promise<SuiClientTypes.ListTransactionsResponse<Include>> {\n\t\treturn this.core.listTransactions(input);\n\t}\n\n\tlistEvents(input: SuiClientTypes.ListEventsOptions): Promise<SuiClientTypes.ListEventsResponse> {\n\t\treturn this.core.listEvents(input);\n\t}\n\n\tgetMoveFunction(\n\t\tinput: SuiClientTypes.GetMoveFunctionOptions,\n\t): Promise<SuiClientTypes.GetMoveFunctionResponse> {\n\t\treturn this.core.getMoveFunction(input);\n\t}\n\n\tresolveTransactionPlugin(): TransactionPlugin {\n\t\treturn this.core.resolveTransactionPlugin();\n\t}\n\n\tverifyZkLoginSignature(\n\t\tinput: SuiClientTypes.VerifyZkLoginSignatureOptions,\n\t): Promise<SuiClientTypes.ZkLoginVerifyResponse> {\n\t\treturn this.core.verifyZkLoginSignature(input);\n\t}\n\n\tdefaultNameServiceName(\n\t\tinput: SuiClientTypes.DefaultNameServiceNameOptions,\n\t): Promise<SuiClientTypes.DefaultNameServiceNameResponse> {\n\t\treturn this.core.defaultNameServiceName(input);\n\t}\n\n\tresolveNameServiceAddress(\n\t\tinput: SuiClientTypes.ResolveNameServiceAddressOptions,\n\t): Promise<SuiClientTypes.ResolveNameServiceAddressResponse> {\n\t\treturn this.core.resolveNameServiceAddress(input);\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"client.mjs","names":[],"sources":["../../src/grpc/client.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { GrpcWebOptions } from '@protobuf-ts/grpcweb-transport';\nimport { GrpcWebFetchTransport } from '@protobuf-ts/grpcweb-transport';\nimport { TransactionExecutionServiceClient } from './proto/sui/rpc/v2/transaction_execution_service.client.js';\nimport { LedgerServiceClient } from './proto/sui/rpc/v2/ledger_service.client.js';\nimport { MovePackageServiceClient } from './proto/sui/rpc/v2/move_package_service.client.js';\nimport { SignatureVerificationServiceClient } from './proto/sui/rpc/v2/signature_verification_service.client.js';\nimport type { RpcTransport } from '@protobuf-ts/runtime-rpc';\nimport { StateServiceClient } from './proto/sui/rpc/v2/state_service.client.js';\nimport { SubscriptionServiceClient } from './proto/sui/rpc/v2/subscription_service.client.js';\nimport { GrpcCoreClient } from './core.js';\nimport type { SuiClientTypes } from '../client/index.js';\nimport { BaseClient } from '../client/index.js';\nimport { DynamicField_DynamicFieldKind } from './proto/sui/rpc/v2/state_service.js';\nimport { normalizeStructTag } from '../utils/sui-types.js';\nimport { fromBase64, toBase64 } from '@mysten/utils';\nimport { NameServiceClient } from './proto/sui/rpc/v2/name_service.client.js';\nimport { ForkingServiceClient } from './proto/sui/forking/v1alpha/forking_service.client.js';\nimport type { TransactionPlugin } from '../transactions/index.js';\n\ninterface SuiGrpcTransportOptions extends GrpcWebOptions {\n\ttransport?: never;\n}\n\nexport type SuiGrpcClientOptions = {\n\tnetwork: SuiClientTypes.Network;\n\tmvr?: SuiClientTypes.MvrOptions;\n} & (\n\t| {\n\t\t\ttransport: RpcTransport;\n\t }\n\t| SuiGrpcTransportOptions\n);\n\nconst SUI_CLIENT_BRAND = Symbol.for('@mysten/SuiGrpcClient') as never;\n\nexport function isSuiGrpcClient(client: unknown): client is SuiGrpcClient {\n\treturn (\n\t\ttypeof client === 'object' && client !== null && (client as any)[SUI_CLIENT_BRAND] === true\n\t);\n}\n\nexport interface DynamicFieldInclude {\n\tvalue?: boolean;\n}\n\nexport type DynamicFieldEntryWithValue<Include extends DynamicFieldInclude = {}> =\n\tSuiClientTypes.DynamicFieldEntry & {\n\t\tvalue: Include extends { value: true } ? SuiClientTypes.DynamicFieldValue : undefined;\n\t};\n\nexport interface ListDynamicFieldsWithValueResponse<Include extends DynamicFieldInclude = {}> {\n\thasNextPage: boolean;\n\tcursor: string | null;\n\tdynamicFields: DynamicFieldEntryWithValue<Include>[];\n}\n\nexport interface GrpcTransactionInclude extends SuiClientTypes.TransactionInclude {\n\t/** Include the parsed protobuf JSON value for the gRPC transaction response. */\n\tprotoJson?: boolean;\n}\n\nexport interface GrpcSimulateTransactionInclude extends SuiClientTypes.SimulateTransactionInclude {\n\t/** Include the parsed protobuf JSON value for the gRPC simulation response. */\n\tprotoJson?: boolean;\n}\n\nexport type GrpcTransactionProtoJson = ReturnType<\n\ttypeof import('./proto/sui/rpc/v2/executed_transaction.js').ExecutedTransaction.toJson\n>;\n\nexport type GrpcSimulateTransactionProtoJson = ReturnType<\n\ttypeof import('./proto/sui/rpc/v2/transaction_execution_service.js').SimulateTransactionResponse.toJson\n>;\n\ntype ProtoJson<Include extends { protoJson?: boolean }, Json> = Include['protoJson'] extends true\n\t? Json\n\t: undefined;\n\nexport type GrpcTransactionResult<Include extends GrpcTransactionInclude = {}> =\n\tSuiClientTypes.TransactionResult<Include> & {\n\t\tprotoJson: ProtoJson<Include, GrpcTransactionProtoJson>;\n\t};\n\nexport type GrpcSimulateTransactionResult<Include extends GrpcSimulateTransactionInclude = {}> =\n\tSuiClientTypes.SimulateTransactionResult<Include> & {\n\t\tprotoJson: ProtoJson<Include, GrpcSimulateTransactionProtoJson>;\n\t};\n\nexport interface GrpcGetTransactionOptions<\n\tInclude extends GrpcTransactionInclude = {},\n> extends SuiClientTypes.GetTransactionOptions<Include> {\n\tinclude?: Include & GrpcTransactionInclude;\n}\n\nexport interface GrpcWaitForTransactionByDigest<\n\tInclude extends GrpcTransactionInclude = {},\n> extends SuiClientTypes.WaitForTransactionByDigest<Include> {\n\tinclude?: Include & GrpcTransactionInclude;\n}\n\nexport interface GrpcWaitForTransactionByResult<\n\tInclude extends GrpcTransactionInclude = {},\n> extends SuiClientTypes.WaitForTransactionByResult<Include> {\n\tinclude?: Include & GrpcTransactionInclude;\n}\n\nexport type GrpcWaitForTransactionOptions<Include extends GrpcTransactionInclude = {}> =\n\t| GrpcWaitForTransactionByDigest<Include>\n\t| GrpcWaitForTransactionByResult<Include>;\n\nexport interface GrpcExecuteTransactionOptions<\n\tInclude extends GrpcTransactionInclude = {},\n> extends SuiClientTypes.ExecuteTransactionOptions<Include> {\n\tinclude?: Include & GrpcTransactionInclude;\n}\n\nexport interface GrpcSignAndExecuteTransactionOptions<\n\tInclude extends GrpcTransactionInclude = {},\n> extends SuiClientTypes.SignAndExecuteTransactionOptions<Include> {\n\tinclude?: Include & GrpcTransactionInclude;\n}\n\nexport interface GrpcSimulateTransactionOptions<\n\tInclude extends GrpcSimulateTransactionInclude = {},\n> extends SuiClientTypes.SimulateTransactionOptions<Include> {\n\tinclude?: Include & GrpcSimulateTransactionInclude;\n\t/**\n\t * Overrides whether the server selects gas payment during simulation.\n\t *\n\t * When not set, gas selection is enabled only when the transaction's gas payment is explicitly\n\t * set to an empty list (`[]`), which indicates gas is paid from the sender's address balance.\n\t * Transactions with gas coins set are simulated as-is, and transactions without a gas payment\n\t * are simulated with a mocked gas coin.\n\t */\n\tdoGasSelection?: boolean;\n}\n\nexport class SuiGrpcClient extends BaseClient implements SuiClientTypes.TransportMethods {\n\tcore: GrpcCoreClient;\n\tget mvr(): SuiClientTypes.MvrMethods {\n\t\treturn this.core.mvr;\n\t}\n\ttransactionExecutionService: TransactionExecutionServiceClient;\n\tledgerService: LedgerServiceClient;\n\tstateService: StateServiceClient;\n\tsubscriptionService: SubscriptionServiceClient;\n\tmovePackageService: MovePackageServiceClient;\n\tsignatureVerificationService: SignatureVerificationServiceClient;\n\tnameService: NameServiceClient;\n\tforkingService: ForkingServiceClient;\n\n\tget [SUI_CLIENT_BRAND]() {\n\t\treturn true;\n\t}\n\n\tconstructor(options: SuiGrpcClientOptions) {\n\t\tsuper({ network: options.network });\n\t\tconst transport =\n\t\t\toptions.transport ??\n\t\t\tnew GrpcWebFetchTransport({ baseUrl: options.baseUrl, fetchInit: options.fetchInit });\n\t\tthis.transactionExecutionService = new TransactionExecutionServiceClient(transport);\n\t\tthis.ledgerService = new LedgerServiceClient(transport);\n\t\tthis.stateService = new StateServiceClient(transport);\n\t\tthis.subscriptionService = new SubscriptionServiceClient(transport);\n\t\tthis.movePackageService = new MovePackageServiceClient(transport);\n\t\tthis.signatureVerificationService = new SignatureVerificationServiceClient(transport);\n\t\tthis.nameService = new NameServiceClient(transport);\n\t\tthis.forkingService = new ForkingServiceClient(transport);\n\n\t\tthis.core = new GrpcCoreClient({\n\t\t\tclient: this,\n\t\t\tbase: this,\n\t\t\tnetwork: options.network,\n\t\t\tmvr: options.mvr,\n\t\t});\n\t}\n\n\tgetObjects<Include extends SuiClientTypes.ObjectInclude = {}>(\n\t\tinput: SuiClientTypes.GetObjectsOptions<Include>,\n\t): Promise<SuiClientTypes.GetObjectsResponse<Include>> {\n\t\treturn this.core.getObjects(input);\n\t}\n\n\tgetObject<Include extends SuiClientTypes.ObjectInclude = {}>(\n\t\tinput: SuiClientTypes.GetObjectOptions<Include>,\n\t): Promise<SuiClientTypes.GetObjectResponse<Include>> {\n\t\treturn this.core.getObject(input);\n\t}\n\n\tlistCoins(input: SuiClientTypes.ListCoinsOptions): Promise<SuiClientTypes.ListCoinsResponse> {\n\t\treturn this.core.listCoins(input);\n\t}\n\n\tlistOwnedObjects<Include extends SuiClientTypes.ObjectInclude = {}>(\n\t\tinput: SuiClientTypes.ListOwnedObjectsOptions<Include>,\n\t): Promise<SuiClientTypes.ListOwnedObjectsResponse<Include>> {\n\t\treturn this.core.listOwnedObjects(input);\n\t}\n\n\tgetBalance(input: SuiClientTypes.GetBalanceOptions): Promise<SuiClientTypes.GetBalanceResponse> {\n\t\treturn this.core.getBalance(input);\n\t}\n\n\tlistBalances(\n\t\tinput: SuiClientTypes.ListBalancesOptions,\n\t): Promise<SuiClientTypes.ListBalancesResponse> {\n\t\treturn this.core.listBalances(input);\n\t}\n\n\tgetCoinMetadata(\n\t\tinput: SuiClientTypes.GetCoinMetadataOptions,\n\t): Promise<SuiClientTypes.GetCoinMetadataResponse> {\n\t\treturn this.core.getCoinMetadata(input);\n\t}\n\n\tgetTransaction<Include extends GrpcTransactionInclude = {}>(\n\t\tinput: GrpcGetTransactionOptions<Include>,\n\t): Promise<GrpcTransactionResult<Include>> {\n\t\treturn this.core.getTransaction(input) as Promise<GrpcTransactionResult<Include>>;\n\t}\n\n\texecuteTransaction<Include extends GrpcTransactionInclude = {}>(\n\t\tinput: GrpcExecuteTransactionOptions<Include>,\n\t): Promise<GrpcTransactionResult<Include>> {\n\t\treturn this.core.executeTransaction(input) as Promise<GrpcTransactionResult<Include>>;\n\t}\n\n\tsignAndExecuteTransaction<Include extends GrpcTransactionInclude = {}>(\n\t\tinput: GrpcSignAndExecuteTransactionOptions<Include>,\n\t): Promise<GrpcTransactionResult<Include>> {\n\t\treturn this.core.signAndExecuteTransaction(input) as Promise<GrpcTransactionResult<Include>>;\n\t}\n\n\twaitForTransaction<Include extends GrpcTransactionInclude = {}>(\n\t\tinput: GrpcWaitForTransactionOptions<Include>,\n\t): Promise<GrpcTransactionResult<Include>> {\n\t\treturn this.core.waitForTransaction(input) as Promise<GrpcTransactionResult<Include>>;\n\t}\n\n\tsimulateTransaction<Include extends GrpcSimulateTransactionInclude = {}>(\n\t\tinput: GrpcSimulateTransactionOptions<Include>,\n\t): Promise<GrpcSimulateTransactionResult<Include>> {\n\t\treturn this.core.simulateTransaction(input) as Promise<GrpcSimulateTransactionResult<Include>>;\n\t}\n\n\tgetReferenceGasPrice(\n\t\tinput?: SuiClientTypes.GetReferenceGasPriceOptions,\n\t): Promise<SuiClientTypes.GetReferenceGasPriceResponse> {\n\t\treturn this.core.getReferenceGasPrice(input);\n\t}\n\n\tgetCurrentSystemState(\n\t\tinput?: SuiClientTypes.GetCurrentSystemStateOptions,\n\t): Promise<SuiClientTypes.GetCurrentSystemStateResponse> {\n\t\treturn this.core.getCurrentSystemState(input);\n\t}\n\n\tgetProtocolConfig(\n\t\tinput?: SuiClientTypes.GetProtocolConfigOptions,\n\t): Promise<SuiClientTypes.GetProtocolConfigResponse> {\n\t\treturn this.core.getProtocolConfig(input);\n\t}\n\n\tgetChainIdentifier(\n\t\tinput?: SuiClientTypes.GetChainIdentifierOptions,\n\t): Promise<SuiClientTypes.GetChainIdentifierResponse> {\n\t\treturn this.core.getChainIdentifier(input);\n\t}\n\n\tasync listDynamicFields<Include extends DynamicFieldInclude = {}>(\n\t\tinput: SuiClientTypes.ListDynamicFieldsOptions & { include?: Include & DynamicFieldInclude },\n\t): Promise<ListDynamicFieldsWithValueResponse<Include>> {\n\t\tconst includeValue = input.include?.value ?? false;\n\t\tconst paths = ['field_id', 'name', 'value_type', 'kind', 'child_id'];\n\t\tif (includeValue) {\n\t\t\tpaths.push('value');\n\t\t}\n\n\t\tconst response = await this.stateService.listDynamicFields(\n\t\t\t{\n\t\t\t\tparent: input.parentId,\n\t\t\t\tpageToken: input.cursor ? fromBase64(input.cursor) : undefined,\n\t\t\t\tpageSize: input.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: input.signal },\n\t\t);\n\n\t\treturn {\n\t\t\tdynamicFields: response.response.dynamicFields.map(\n\t\t\t\t(field): DynamicFieldEntryWithValue<Include> => {\n\t\t\t\t\tconst isDynamicObject = field.kind === DynamicField_DynamicFieldKind.OBJECT;\n\t\t\t\t\tconst fieldType = isDynamicObject\n\t\t\t\t\t\t? `0x2::dynamic_field::Field<0x2::dynamic_object_field::Wrapper<${field.name?.name!}>,0x2::object::ID>`\n\t\t\t\t\t\t: `0x2::dynamic_field::Field<${field.name?.name!},${field.valueType!}>`;\n\t\t\t\t\treturn {\n\t\t\t\t\t\t$kind: isDynamicObject ? 'DynamicObject' : 'DynamicField',\n\t\t\t\t\t\tfieldId: field.fieldId!,\n\t\t\t\t\t\tname: {\n\t\t\t\t\t\t\ttype: field.name?.name!,\n\t\t\t\t\t\t\tbcs: field.name?.value!,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tvalueType: field.valueType!,\n\t\t\t\t\t\ttype: normalizeStructTag(fieldType),\n\t\t\t\t\t\tchildId: field.childId,\n\t\t\t\t\t\tvalue: (includeValue\n\t\t\t\t\t\t\t? { type: field.valueType!, bcs: field.value?.value ?? new Uint8Array() }\n\t\t\t\t\t\t\t: undefined) as DynamicFieldEntryWithValue<Include>['value'],\n\t\t\t\t\t} as DynamicFieldEntryWithValue<Include>;\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\tgetDynamicField(\n\t\tinput: SuiClientTypes.GetDynamicFieldOptions,\n\t): Promise<SuiClientTypes.GetDynamicFieldResponse> {\n\t\treturn this.core.getDynamicField(input);\n\t}\n\n\tgetDynamicObjectField<Include extends SuiClientTypes.ObjectInclude = {}>(\n\t\tinput: SuiClientTypes.GetDynamicObjectFieldOptions<Include>,\n\t): Promise<SuiClientTypes.GetDynamicObjectFieldResponse<Include>> {\n\t\treturn this.core.getDynamicObjectField(input);\n\t}\n\n\tlistTransactions<Include extends SuiClientTypes.TransactionInclude = {}>(\n\t\tinput: SuiClientTypes.ListTransactionsOptions<Include>,\n\t): Promise<SuiClientTypes.ListTransactionsResponse<Include>> {\n\t\treturn this.core.listTransactions(input);\n\t}\n\n\tlistEvents(input: SuiClientTypes.ListEventsOptions): Promise<SuiClientTypes.ListEventsResponse> {\n\t\treturn this.core.listEvents(input);\n\t}\n\n\tgetMoveFunction(\n\t\tinput: SuiClientTypes.GetMoveFunctionOptions,\n\t): Promise<SuiClientTypes.GetMoveFunctionResponse> {\n\t\treturn this.core.getMoveFunction(input);\n\t}\n\n\tresolveTransactionPlugin(): TransactionPlugin {\n\t\treturn this.core.resolveTransactionPlugin();\n\t}\n\n\tverifyZkLoginSignature(\n\t\tinput: SuiClientTypes.VerifyZkLoginSignatureOptions,\n\t): Promise<SuiClientTypes.ZkLoginVerifyResponse> {\n\t\treturn this.core.verifyZkLoginSignature(input);\n\t}\n\n\tdefaultNameServiceName(\n\t\tinput: SuiClientTypes.DefaultNameServiceNameOptions,\n\t): Promise<SuiClientTypes.DefaultNameServiceNameResponse> {\n\t\treturn this.core.defaultNameServiceName(input);\n\t}\n\n\tresolveNameServiceAddress(\n\t\tinput: SuiClientTypes.ResolveNameServiceAddressOptions,\n\t): Promise<SuiClientTypes.ResolveNameServiceAddressResponse> {\n\t\treturn this.core.resolveNameServiceAddress(input);\n\t}\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.mts","names":[],"sources":["../../src/grpc/core.ts"],"mappings":"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"}
1
+ {"version":3,"file":"core.d.mts","names":[],"sources":["../../src/grpc/core.ts"],"mappings":"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"}
@@ -3,7 +3,7 @@ import { bcs as suiBcs } from "../bcs/index.mjs";
3
3
  import { raceSignal } from "../client/mvr.mjs";
4
4
  import { CoreClient } from "../client/core.mjs";
5
5
  import { formatMoveAbortMessage, transactionBytesHaveEmptyGasPayment } from "../client/utils.mjs";
6
- import { SimulationError } from "../client/errors.mjs";
6
+ import { ObjectError, SimulationError, TransactionError } from "../client/errors.mjs";
7
7
  import { SUI_TYPE_ARG } from "../utils/constants.mjs";
8
8
  import { Value } from "./proto/google/protobuf/struct.mjs";
9
9
  import { Ability, FunctionDescriptor_Visibility, OpenSignatureBody_Type, OpenSignature_Reference } from "./proto/sui/rpc/v2/move_package.mjs";
@@ -18,13 +18,14 @@ import { SimulateTransactionRequest_TransactionChecks, SimulateTransactionRespon
18
18
  import { Ordering, QueryEndReason } from "./proto/sui/rpc/v2/query_options.mjs";
19
19
  import { toGrpcEventFilter, toGrpcTransactionFilter } from "./filters.mjs";
20
20
  import { chunk, fromBase64, toBase64 } from "@mysten/utils";
21
+ import { GrpcStatusCode } from "@protobuf-ts/grpcweb-transport";
21
22
  import { RpcError } from "@protobuf-ts/runtime-rpc";
22
23
 
23
24
  //#region src/grpc/core.ts
24
25
  function isNameServiceResolutionMiss(error) {
25
26
  if (!(error instanceof RpcError)) return false;
26
- if (error.code === "NOT_FOUND") return true;
27
- if (error.code !== "RESOURCE_EXHAUSTED") return false;
27
+ if (error.code === GrpcStatusCode[GrpcStatusCode.NOT_FOUND]) return true;
28
+ if (error.code !== GrpcStatusCode[GrpcStatusCode.RESOURCE_EXHAUSTED]) return false;
28
29
  try {
29
30
  return decodeURIComponent(error.message) === "name has expired";
30
31
  } catch {
@@ -57,9 +58,20 @@ var GrpcCoreClient = class extends CoreClient {
57
58
  requests: batch.map((id) => ({ objectId: id })),
58
59
  readMask: { paths }
59
60
  }, { abort: options.signal });
60
- results.push(...response.response.objects.map((object) => {
61
- if (object.result.oneofKind === "error") return new Error(object.result.error.message);
62
- if (object.result.oneofKind !== "object") return /* @__PURE__ */ new Error("Unexpected result type");
61
+ results.push(...response.response.objects.map((object, index) => {
62
+ if (object.result.oneofKind === "error") {
63
+ const error = object.result.error;
64
+ const reason = error.code === GrpcStatusCode.NOT_FOUND ? "notFound" : "unknown";
65
+ return new ObjectError(String(error.code), error.message, {
66
+ cause: error,
67
+ reason,
68
+ objectId: batch[index]
69
+ });
70
+ }
71
+ if (object.result.oneofKind !== "object") return new ObjectError("unknown", "Unexpected result type", {
72
+ reason: "unknown",
73
+ objectId: batch[index]
74
+ });
63
75
  const bcsContent = object.result.object.contents?.value ?? void 0;
64
76
  const objectBcs = object.result.object.bcs?.value ?? void 0;
65
77
  const objectType = object.result.object.objectType;
@@ -211,12 +223,17 @@ var GrpcCoreClient = class extends CoreClient {
211
223
  };
212
224
  }
213
225
  async getTransaction(options) {
214
- const { response } = await this.#client.ledgerService.getTransaction({
215
- digest: options.digest,
216
- readMask: { paths: transactionReadMaskPaths(options.include) }
217
- }, { abort: options.signal });
218
- if (!response.transaction) throw new Error(`Transaction ${options.digest} not found`);
219
- return withProtoJson(parseGrpcTransactionResponse(response.transaction, { include: options.include }), options.include, () => ExecutedTransaction.toJson(response.transaction));
226
+ try {
227
+ const { response } = await this.#client.ledgerService.getTransaction({
228
+ digest: options.digest,
229
+ readMask: { paths: transactionReadMaskPaths(options.include) }
230
+ }, { abort: options.signal });
231
+ if (!response.transaction) throw new TransactionError("notFound", options.digest);
232
+ return withProtoJson(parseGrpcTransactionResponse(response.transaction, { include: options.include }), options.include, () => ExecutedTransaction.toJson(response.transaction));
233
+ } catch (error) {
234
+ if (error instanceof RpcError && error.code === GrpcStatusCode[GrpcStatusCode.NOT_FOUND]) throw new TransactionError("notFound", options.digest, { cause: error });
235
+ throw error;
236
+ }
220
237
  }
221
238
  async executeTransaction(options) {
222
239
  const { response } = await this.#client.transactionExecutionService.executeTransaction({