@mysten/sui 2.20.1 → 2.20.3

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.
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.mts","names":[],"sources":["../../src/grpc/core.ts"],"mappings":";;;;;;;;;;UAgDiB,qBAAA,SAA8B,iBAAA;EAC9C,MAAA,EAAQ,aAAA;AAAA;AAAA,cAEI,cAAA,SAAuB,UAAA;EAAA;;IAErB,MAAA;IAAA,GAAW;EAAA,GAAW,qBAAA;EAK9B,UAAA,iBAA2B,cAAA,CAAe,aAAA,MAAA,CAC/C,OAAA,EAAS,cAAA,CAAe,iBAAA,CAAkB,OAAA,IACxC,OAAA,CAAQ,cAAA,CAAe,kBAAA,CAAmB,OAAA;EAkFvC,gBAAA,iBAAiC,cAAA,CAAe,aAAA,MAAA,CACrD,OAAA,EAAS,cAAA,CAAe,uBAAA,CAAwB,OAAA,IAC9C,OAAA,CAAQ,cAAA,CAAe,wBAAA,CAAyB,OAAA;EA2D7C,SAAA,CACL,OAAA,EAAS,cAAA,CAAe,gBAAA,GACtB,OAAA,CAAQ,cAAA,CAAe,iBAAA;EA6BpB,UAAA,CACL,OAAA,EAAS,cAAA,CAAe,iBAAA,GACtB,OAAA,CAAQ,cAAA,CAAe,kBAAA;EAiBpB,eAAA,CACL,OAAA,EAAS,cAAA,CAAe,sBAAA,GACtB,OAAA,CAAQ,cAAA,CAAe,uBAAA;EA4BpB,YAAA,CACL,OAAA,EAAS,cAAA,CAAe,mBAAA,GACtB,OAAA,CAAQ,cAAA,CAAe,oBAAA;EAkBpB,cAAA,iBAA+B,cAAA,CAAe,kBAAA,MAAA,CACnD,OAAA,EAAS,cAAA,CAAe,qBAAA,CAAsB,OAAA,IAC5C,OAAA,CAAQ,cAAA,CAAe,iBAAA,CAAkB,OAAA;EAwCtC,kBAAA,iBAAmC,cAAA,CAAe,kBAAA,MAAA,CACvD,OAAA,EAAS,cAAA,CAAe,yBAAA,CAA0B,OAAA,IAChD,OAAA,CAAQ,cAAA,CAAe,iBAAA,CAAkB,OAAA;EAgDtC,mBAAA,iBAAoC,cAAA,CAAe,0BAAA,MAAA,CACxD,OAAA,EAAS,cAAA,CAAe,0BAAA,CAA2B,OAAA,IACjD,OAAA,CAAQ,cAAA,CAAe,yBAAA,CAA0B,OAAA;EA0F9C,oBAAA,CAAA,GAAwB,OAAA,CAAQ,cAAA,CAAe,4BAAA;EAY/C,iBAAA,CAAA,GAAqB,OAAA,CAAQ,cAAA,CAAe,yBAAA;EA2B5C,qBAAA,CAAA,GAAyB,OAAA,CAAQ,cAAA,CAAe,6BAAA;EAiFhD,iBAAA,CACL,OAAA,EAAS,cAAA,CAAe,wBAAA,GACtB,OAAA,CAAQ,cAAA,CAAe,yBAAA;EAIpB,sBAAA,CACL,OAAA,EAAS,cAAA,CAAe,6BAAA,GACtB,OAAA,CAAQ,cAAA,CAAe,qBAAA;EAiCpB,sBAAA,CACL,OAAA,EAAS,cAAA,CAAe,6BAAA,GACtB,OAAA,CAAQ,cAAA,CAAe,8BAAA;EAcpB,eAAA,CACL,OAAA,EAAS,cAAA,CAAe,sBAAA,GACtB,OAAA,CAAQ,cAAA,CAAe,uBAAA;EAwDpB,kBAAA,CACL,QAAA,GAAW,cAAA,CAAe,yBAAA,GACxB,OAAA,CAAQ,cAAA,CAAe,0BAAA;EAY1B,wBAAA,CAAA,IAGE,eAAA,EAAiB,sBAAA,EACjB,OAAA,EAAS,uBAAA,EACT,IAAA,QAAY,OAAA,WAAa,OAAA;AAAA"}
1
+ {"version":3,"file":"core.d.mts","names":[],"sources":["../../src/grpc/core.ts"],"mappings":";;;;;;;;;;UAgDiB,qBAAA,SAA8B,iBAAA;EAC9C,MAAA,EAAQ,aAAA;AAAA;AAAA,cAEI,cAAA,SAAuB,UAAA;EAAA;;IAErB,MAAA;IAAA,GAAW;EAAA,GAAW,qBAAA;EAK9B,UAAA,iBAA2B,cAAA,CAAe,aAAA,MAAA,CAC/C,OAAA,EAAS,cAAA,CAAe,iBAAA,CAAkB,OAAA,IACxC,OAAA,CAAQ,cAAA,CAAe,kBAAA,CAAmB,OAAA;EAkFvC,gBAAA,iBAAiC,cAAA,CAAe,aAAA,MAAA,CACrD,OAAA,EAAS,cAAA,CAAe,uBAAA,CAAwB,OAAA,IAC9C,OAAA,CAAQ,cAAA,CAAe,wBAAA,CAAyB,OAAA;EA2D7C,SAAA,CACL,OAAA,EAAS,cAAA,CAAe,gBAAA,GACtB,OAAA,CAAQ,cAAA,CAAe,iBAAA;EA8BpB,UAAA,CACL,OAAA,EAAS,cAAA,CAAe,iBAAA,GACtB,OAAA,CAAQ,cAAA,CAAe,kBAAA;EAiBpB,eAAA,CACL,OAAA,EAAS,cAAA,CAAe,sBAAA,GACtB,OAAA,CAAQ,cAAA,CAAe,uBAAA;EA4BpB,YAAA,CACL,OAAA,EAAS,cAAA,CAAe,mBAAA,GACtB,OAAA,CAAQ,cAAA,CAAe,oBAAA;EAkBpB,cAAA,iBAA+B,cAAA,CAAe,kBAAA,MAAA,CACnD,OAAA,EAAS,cAAA,CAAe,qBAAA,CAAsB,OAAA,IAC5C,OAAA,CAAQ,cAAA,CAAe,iBAAA,CAAkB,OAAA;EAwCtC,kBAAA,iBAAmC,cAAA,CAAe,kBAAA,MAAA,CACvD,OAAA,EAAS,cAAA,CAAe,yBAAA,CAA0B,OAAA,IAChD,OAAA,CAAQ,cAAA,CAAe,iBAAA,CAAkB,OAAA;EAgDtC,mBAAA,iBAAoC,cAAA,CAAe,0BAAA,MAAA,CACxD,OAAA,EAAS,cAAA,CAAe,0BAAA,CAA2B,OAAA,IACjD,OAAA,CAAQ,cAAA,CAAe,yBAAA,CAA0B,OAAA;EA0F9C,oBAAA,CAAA,GAAwB,OAAA,CAAQ,cAAA,CAAe,4BAAA;EAY/C,iBAAA,CAAA,GAAqB,OAAA,CAAQ,cAAA,CAAe,yBAAA;EA2B5C,qBAAA,CAAA,GAAyB,OAAA,CAAQ,cAAA,CAAe,6BAAA;EAiFhD,iBAAA,CACL,OAAA,EAAS,cAAA,CAAe,wBAAA,GACtB,OAAA,CAAQ,cAAA,CAAe,yBAAA;EAIpB,sBAAA,CACL,OAAA,EAAS,cAAA,CAAe,6BAAA,GACtB,OAAA,CAAQ,cAAA,CAAe,qBAAA;EAiCpB,sBAAA,CACL,OAAA,EAAS,cAAA,CAAe,6BAAA,GACtB,OAAA,CAAQ,cAAA,CAAe,8BAAA;EAcpB,eAAA,CACL,OAAA,EAAS,cAAA,CAAe,sBAAA,GACtB,OAAA,CAAQ,cAAA,CAAe,uBAAA;EAwDpB,kBAAA,CACL,QAAA,GAAW,cAAA,CAAe,yBAAA,GACxB,OAAA,CAAQ,cAAA,CAAe,0BAAA;EAY1B,wBAAA,CAAA,IAGE,eAAA,EAAiB,sBAAA,EACjB,OAAA,EAAS,uBAAA,EACT,IAAA,QAAY,OAAA,WAAa,OAAA;AAAA"}
@@ -116,6 +116,7 @@ var GrpcCoreClient = class extends CoreClient {
116
116
  owner: options.owner,
117
117
  objectType: `0x2::coin::Coin<${(await this.mvr.resolveType({ type: coinType })).type}>`,
118
118
  pageToken: options.cursor ? fromBase64(options.cursor) : void 0,
119
+ pageSize: options.limit,
119
120
  readMask: { paths }
120
121
  });
121
122
  return {
@@ -419,6 +420,7 @@ var GrpcCoreClient = class extends CoreClient {
419
420
  response = (await client.transactionExecutionService.simulateTransaction({
420
421
  transaction: grpcTransaction,
421
422
  doGasSelection: !options.onlyTransactionKind && (snapshot.gasData.budget == null || snapshot.gasData.payment == null),
423
+ checks: options.onlyTransactionKind ? SimulateTransactionRequest_TransactionChecks.DISABLED : SimulateTransactionRequest_TransactionChecks.ENABLED,
422
424
  readMask: { paths: [
423
425
  "transaction.transaction.sender",
424
426
  "transaction.transaction.gas_payment",
@@ -1 +1 @@
1
- {"version":3,"file":"core.mjs","names":["#client","bcs"],"sources":["../../src/grpc/core.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { CoreClientOptions, SuiClientTypes } from '../client/index.js';\nimport { CoreClient, formatMoveAbortMessage, SimulationError } from '../client/index.js';\nimport type { SuiGrpcClient } from './client.js';\nimport type { Owner } from './proto/sui/rpc/v2/owner.js';\nimport { Owner_OwnerKind } from './proto/sui/rpc/v2/owner.js';\nimport { chunk, fromBase64, toBase64 } from '@mysten/utils';\nimport type { ExecutedTransaction } from './proto/sui/rpc/v2/executed_transaction.js';\nimport type { TransactionEffects } from './proto/sui/rpc/v2/effects.js';\nimport {\n\tUnchangedConsensusObject_UnchangedConsensusObjectKind,\n\tChangedObject_IdOperation,\n\tChangedObject_InputObjectState,\n\tChangedObject_OutputObjectState,\n} from './proto/sui/rpc/v2/effects.js';\nimport type {\n\tExecutionError as GrpcExecutionError,\n\tMoveAbort as GrpcMoveAbort,\n} from './proto/sui/rpc/v2/execution_status.js';\nimport {\n\tExecutionError_ExecutionErrorKind,\n\tCommandArgumentError_CommandArgumentErrorKind,\n\tTypeArgumentError_TypeArgumentErrorKind,\n\tPackageUpgradeError_PackageUpgradeErrorKind,\n} from './proto/sui/rpc/v2/execution_status.js';\nimport type { BuildTransactionOptions } from '../transactions/index.js';\nimport { TransactionDataBuilder } from '../transactions/index.js';\nimport { bcs } from '../bcs/index.js';\nimport { normalizeStructTag, normalizeSuiAddress } from '../utils/sui-types.js';\nimport { SUI_TYPE_ARG } from '../utils/constants.js';\nimport type { OpenSignature, OpenSignatureBody } from './proto/sui/rpc/v2/move_package.js';\nimport {\n\tAbility,\n\tFunctionDescriptor_Visibility,\n\tOpenSignature_Reference,\n\tOpenSignatureBody_Type,\n} from './proto/sui/rpc/v2/move_package.js';\nimport {\n\tapplyGrpcResolvedTransaction,\n\ttransactionDataToGrpcTransaction,\n\ttransactionToGrpcTransaction,\n\tgrpcTransactionToTransactionData,\n} from '../client/transaction-resolver.js';\nimport { Value } from './proto/google/protobuf/struct.js';\nimport { SimulateTransactionRequest_TransactionChecks } from './proto/sui/rpc/v2/transaction_execution_service.js';\n\nexport interface GrpcCoreClientOptions extends CoreClientOptions {\n\tclient: SuiGrpcClient;\n}\nexport class GrpcCoreClient extends CoreClient {\n\t#client: SuiGrpcClient;\n\tconstructor({ client, ...options }: GrpcCoreClientOptions) {\n\t\tsuper(options);\n\t\tthis.#client = client;\n\t}\n\n\tasync getObjects<Include extends SuiClientTypes.ObjectInclude = {}>(\n\t\toptions: SuiClientTypes.GetObjectsOptions<Include>,\n\t): Promise<SuiClientTypes.GetObjectsResponse<Include>> {\n\t\tconst batches = chunk(options.objectIds, 50);\n\t\tconst results: SuiClientTypes.GetObjectsResponse<Include>['objects'] = [];\n\n\t\tconst paths = ['owner', 'object_type', 'digest', 'version', 'object_id'];\n\t\tif (options.include?.content) {\n\t\t\tpaths.push('contents');\n\t\t}\n\t\tif (options.include?.previousTransaction) {\n\t\t\tpaths.push('previous_transaction');\n\t\t}\n\t\tif (options.include?.objectBcs) {\n\t\t\tpaths.push('bcs');\n\t\t}\n\t\tif (options.include?.json) {\n\t\t\tpaths.push('json');\n\t\t}\n\t\tif (options.include?.display) {\n\t\t\tpaths.push('display');\n\t\t}\n\n\t\tfor (const batch of batches) {\n\t\t\tconst response = await this.#client.ledgerService.batchGetObjects({\n\t\t\t\trequests: batch.map((id) => ({ objectId: id })),\n\t\t\t\treadMask: {\n\t\t\t\t\tpaths,\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tresults.push(\n\t\t\t\t...response.response.objects.map((object): SuiClientTypes.Object<Include> | Error => {\n\t\t\t\t\tif (object.result.oneofKind === 'error') {\n\t\t\t\t\t\t// TODO: improve error handling\n\t\t\t\t\t\treturn new Error(object.result.error.message);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (object.result.oneofKind !== 'object') {\n\t\t\t\t\t\treturn new Error('Unexpected result type');\n\t\t\t\t\t}\n\n\t\t\t\t\tconst bcsContent = object.result.object.contents?.value ?? undefined;\n\t\t\t\t\tconst objectBcs = object.result.object.bcs?.value ?? undefined;\n\n\t\t\t\t\t// Package objects have type \"package\" which is not a struct tag, so don't normalize it\n\t\t\t\t\tconst objectType = object.result.object.objectType;\n\t\t\t\t\tconst type =\n\t\t\t\t\t\tobjectType && objectType.includes('::')\n\t\t\t\t\t\t\t? normalizeStructTag(objectType)\n\t\t\t\t\t\t\t: (objectType ?? '');\n\n\t\t\t\t\tconst jsonContent = options.include?.json\n\t\t\t\t\t\t? object.result.object.json\n\t\t\t\t\t\t\t? (Value.toJson(object.result.object.json) as Record<string, unknown>)\n\t\t\t\t\t\t\t: null\n\t\t\t\t\t\t: undefined;\n\n\t\t\t\t\tconst displayData = mapDisplayProto(\n\t\t\t\t\t\toptions.include?.display,\n\t\t\t\t\t\tobject.result.object.display,\n\t\t\t\t\t);\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tobjectId: object.result.object.objectId!,\n\t\t\t\t\t\tversion: object.result.object.version?.toString()!,\n\t\t\t\t\t\tdigest: object.result.object.digest!,\n\t\t\t\t\t\tcontent: bcsContent as SuiClientTypes.Object<Include>['content'],\n\t\t\t\t\t\towner: mapOwner(object.result.object.owner)!,\n\t\t\t\t\t\ttype,\n\t\t\t\t\t\tpreviousTransaction: (object.result.object.previousTransaction ??\n\t\t\t\t\t\t\tundefined) as SuiClientTypes.Object<Include>['previousTransaction'],\n\t\t\t\t\t\tobjectBcs: objectBcs as SuiClientTypes.Object<Include>['objectBcs'],\n\t\t\t\t\t\tjson: jsonContent as SuiClientTypes.Object<Include>['json'],\n\t\t\t\t\t\tdisplay: displayData as SuiClientTypes.Object<Include>['display'],\n\t\t\t\t\t};\n\t\t\t\t}),\n\t\t\t);\n\t\t}\n\n\t\treturn {\n\t\t\tobjects: results,\n\t\t};\n\t}\n\tasync listOwnedObjects<Include extends SuiClientTypes.ObjectInclude = {}>(\n\t\toptions: SuiClientTypes.ListOwnedObjectsOptions<Include>,\n\t): Promise<SuiClientTypes.ListOwnedObjectsResponse<Include>> {\n\t\tconst paths = ['owner', 'object_type', 'digest', 'version', 'object_id'];\n\t\tif (options.include?.content) {\n\t\t\tpaths.push('contents');\n\t\t}\n\t\tif (options.include?.previousTransaction) {\n\t\t\tpaths.push('previous_transaction');\n\t\t}\n\t\tif (options.include?.objectBcs) {\n\t\t\tpaths.push('bcs');\n\t\t}\n\t\tif (options.include?.json) {\n\t\t\tpaths.push('json');\n\t\t}\n\t\tif (options.include?.display) {\n\t\t\tpaths.push('display');\n\t\t}\n\n\t\tconst response = await this.#client.stateService.listOwnedObjects({\n\t\t\towner: options.owner,\n\t\t\tobjectType: options.type\n\t\t\t\t? (await this.mvr.resolveType({ type: options.type })).type\n\t\t\t\t: undefined,\n\t\t\tpageToken: options.cursor ? fromBase64(options.cursor) : undefined,\n\t\t\tpageSize: options.limit,\n\t\t\treadMask: {\n\t\t\t\tpaths,\n\t\t\t},\n\t\t});\n\n\t\tconst objects = response.response.objects.map(\n\t\t\t(object): SuiClientTypes.Object<Include> => ({\n\t\t\t\tobjectId: object.objectId!,\n\t\t\t\tversion: object.version?.toString()!,\n\t\t\t\tdigest: object.digest!,\n\t\t\t\tcontent: object.contents?.value as SuiClientTypes.Object<Include>['content'],\n\t\t\t\towner: mapOwner(object.owner)!,\n\t\t\t\ttype: object.objectType!,\n\t\t\t\tpreviousTransaction: (object.previousTransaction ??\n\t\t\t\t\tundefined) as SuiClientTypes.Object<Include>['previousTransaction'],\n\t\t\t\tobjectBcs: object.bcs?.value as SuiClientTypes.Object<Include>['objectBcs'],\n\t\t\t\tjson: (options.include?.json\n\t\t\t\t\t? object.json\n\t\t\t\t\t\t? (Value.toJson(object.json) as Record<string, unknown>)\n\t\t\t\t\t\t: null\n\t\t\t\t\t: undefined) as SuiClientTypes.Object<Include>['json'],\n\t\t\t\tdisplay: mapDisplayProto(\n\t\t\t\t\toptions.include?.display,\n\t\t\t\t\tobject.display,\n\t\t\t\t) as SuiClientTypes.Object<Include>['display'],\n\t\t\t}),\n\t\t);\n\n\t\treturn {\n\t\t\tobjects,\n\t\t\tcursor: response.response.nextPageToken ? toBase64(response.response.nextPageToken) : null,\n\t\t\thasNextPage: response.response.nextPageToken !== undefined,\n\t\t};\n\t}\n\tasync listCoins(\n\t\toptions: SuiClientTypes.ListCoinsOptions,\n\t): Promise<SuiClientTypes.ListCoinsResponse> {\n\t\tconst paths = ['owner', 'object_type', 'digest', 'version', 'object_id', 'balance'];\n\t\tconst coinType = options.coinType ?? SUI_TYPE_ARG;\n\n\t\tconst response = await this.#client.stateService.listOwnedObjects({\n\t\t\towner: options.owner,\n\t\t\tobjectType: `0x2::coin::Coin<${(await this.mvr.resolveType({ type: coinType })).type}>`,\n\t\t\tpageToken: options.cursor ? fromBase64(options.cursor) : undefined,\n\t\t\treadMask: {\n\t\t\t\tpaths,\n\t\t\t},\n\t\t});\n\n\t\treturn {\n\t\t\tobjects: response.response.objects.map(\n\t\t\t\t(object): SuiClientTypes.Coin => ({\n\t\t\t\t\tobjectId: object.objectId!,\n\t\t\t\t\tversion: object.version?.toString()!,\n\t\t\t\t\tdigest: object.digest!,\n\t\t\t\t\towner: mapOwner(object.owner)!,\n\t\t\t\t\ttype: object.objectType!,\n\t\t\t\t\tbalance: object.balance?.toString()!,\n\t\t\t\t}),\n\t\t\t),\n\t\t\tcursor: response.response.nextPageToken ? toBase64(response.response.nextPageToken) : null,\n\t\t\thasNextPage: response.response.nextPageToken !== undefined,\n\t\t};\n\t}\n\n\tasync getBalance(\n\t\toptions: SuiClientTypes.GetBalanceOptions,\n\t): Promise<SuiClientTypes.GetBalanceResponse> {\n\t\tconst coinType = options.coinType ?? SUI_TYPE_ARG;\n\t\tconst result = await this.#client.stateService.getBalance({\n\t\t\towner: options.owner,\n\t\t\tcoinType: (await this.mvr.resolveType({ type: coinType })).type,\n\t\t});\n\n\t\treturn {\n\t\t\tbalance: {\n\t\t\t\tbalance: result.response.balance?.balance?.toString() ?? '0',\n\t\t\t\tcoinType: result.response.balance?.coinType ?? coinType,\n\t\t\t\tcoinBalance: result.response.balance?.coinBalance?.toString() ?? '0',\n\t\t\t\taddressBalance: result.response.balance?.addressBalance?.toString() ?? '0',\n\t\t\t},\n\t\t};\n\t}\n\n\tasync getCoinMetadata(\n\t\toptions: SuiClientTypes.GetCoinMetadataOptions,\n\t): Promise<SuiClientTypes.GetCoinMetadataResponse> {\n\t\tconst coinType = (await this.mvr.resolveType({ type: options.coinType })).type;\n\n\t\tlet response;\n\t\ttry {\n\t\t\t({ response } = await this.#client.stateService.getCoinInfo({\n\t\t\t\tcoinType,\n\t\t\t}));\n\t\t} catch {\n\t\t\treturn { coinMetadata: null };\n\t\t}\n\n\t\tif (!response.metadata) {\n\t\t\treturn { coinMetadata: null };\n\t\t}\n\n\t\treturn {\n\t\t\tcoinMetadata: {\n\t\t\t\tid: response.metadata.id ?? null,\n\t\t\t\tdecimals: response.metadata.decimals ?? 0,\n\t\t\t\tname: response.metadata.name ?? '',\n\t\t\t\tsymbol: response.metadata.symbol ?? '',\n\t\t\t\tdescription: response.metadata.description ?? '',\n\t\t\t\ticonUrl: response.metadata.iconUrl ?? null,\n\t\t\t},\n\t\t};\n\t}\n\n\tasync listBalances(\n\t\toptions: SuiClientTypes.ListBalancesOptions,\n\t): Promise<SuiClientTypes.ListBalancesResponse> {\n\t\tconst result = await this.#client.stateService.listBalances({\n\t\t\towner: options.owner,\n\t\t\tpageToken: options.cursor ? fromBase64(options.cursor) : undefined,\n\t\t\tpageSize: options.limit,\n\t\t});\n\n\t\treturn {\n\t\t\thasNextPage: !!result.response.nextPageToken,\n\t\t\tcursor: result.response.nextPageToken ? toBase64(result.response.nextPageToken) : null,\n\t\t\tbalances: result.response.balances.map((balance) => ({\n\t\t\t\tbalance: balance.balance?.toString() ?? '0',\n\t\t\t\tcoinType: balance.coinType!,\n\t\t\t\tcoinBalance: balance.coinBalance?.toString() ?? '0',\n\t\t\t\taddressBalance: balance.addressBalance?.toString() ?? '0',\n\t\t\t})),\n\t\t};\n\t}\n\tasync getTransaction<Include extends SuiClientTypes.TransactionInclude = {}>(\n\t\toptions: SuiClientTypes.GetTransactionOptions<Include>,\n\t): Promise<SuiClientTypes.TransactionResult<Include>> {\n\t\tconst paths = ['digest', 'transaction.digest', 'signatures', 'effects.status'];\n\t\tif (options.include?.transaction) {\n\t\t\tpaths.push(\n\t\t\t\t'transaction.sender',\n\t\t\t\t'transaction.gas_payment',\n\t\t\t\t'transaction.expiration',\n\t\t\t\t'transaction.kind',\n\t\t\t);\n\t\t}\n\t\tif (options.include?.bcs) {\n\t\t\tpaths.push('transaction.bcs');\n\t\t}\n\t\tif (options.include?.balanceChanges) {\n\t\t\tpaths.push('balance_changes');\n\t\t}\n\t\tif (options.include?.effects) {\n\t\t\tpaths.push('effects');\n\t\t}\n\t\tif (options.include?.events) {\n\t\t\tpaths.push('events');\n\t\t}\n\t\tif (options.include?.objectTypes) {\n\t\t\tpaths.push('effects.changed_objects.object_type');\n\t\t\tpaths.push('effects.changed_objects.object_id');\n\t\t}\n\n\t\tconst { response } = await this.#client.ledgerService.getTransaction({\n\t\t\tdigest: options.digest,\n\t\t\treadMask: {\n\t\t\t\tpaths,\n\t\t\t},\n\t\t});\n\n\t\tif (!response.transaction) {\n\t\t\tthrow new Error(`Transaction ${options.digest} not found`);\n\t\t}\n\n\t\treturn parseTransaction(response.transaction, 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 paths = ['digest', 'transaction.digest', 'signatures', 'effects.status'];\n\t\tif (options.include?.transaction) {\n\t\t\tpaths.push(\n\t\t\t\t'transaction.sender',\n\t\t\t\t'transaction.gas_payment',\n\t\t\t\t'transaction.expiration',\n\t\t\t\t'transaction.kind',\n\t\t\t);\n\t\t}\n\t\tif (options.include?.bcs) {\n\t\t\tpaths.push('transaction.bcs');\n\t\t}\n\t\tif (options.include?.balanceChanges) {\n\t\t\tpaths.push('balance_changes');\n\t\t}\n\t\tif (options.include?.effects) {\n\t\t\tpaths.push('effects');\n\t\t}\n\t\tif (options.include?.events) {\n\t\t\tpaths.push('events');\n\t\t}\n\t\tif (options.include?.objectTypes) {\n\t\t\tpaths.push('effects.changed_objects.object_type');\n\t\t\tpaths.push('effects.changed_objects.object_id');\n\t\t}\n\n\t\tconst { response } = await this.#client.transactionExecutionService.executeTransaction({\n\t\t\ttransaction: {\n\t\t\t\tbcs: {\n\t\t\t\t\tvalue: options.transaction,\n\t\t\t\t},\n\t\t\t},\n\t\t\tsignatures: options.signatures.map((signature) => ({\n\t\t\t\tbcs: {\n\t\t\t\t\tvalue: fromBase64(signature),\n\t\t\t\t},\n\t\t\t\tsignature: {\n\t\t\t\t\toneofKind: undefined,\n\t\t\t\t},\n\t\t\t})),\n\t\t\treadMask: {\n\t\t\t\tpaths,\n\t\t\t},\n\t\t});\n\n\t\treturn parseTransaction(response.transaction!, options.include);\n\t}\n\tasync simulateTransaction<Include extends SuiClientTypes.SimulateTransactionInclude = {}>(\n\t\toptions: SuiClientTypes.SimulateTransactionOptions<Include>,\n\t): Promise<SuiClientTypes.SimulateTransactionResult<Include>> {\n\t\tconst paths = [\n\t\t\t'transaction.digest',\n\t\t\t'transaction.transaction.digest',\n\t\t\t'transaction.signatures',\n\t\t\t'transaction.effects.status',\n\t\t];\n\t\tif (options.include?.transaction) {\n\t\t\tpaths.push(\n\t\t\t\t'transaction.transaction.sender',\n\t\t\t\t'transaction.transaction.gas_payment',\n\t\t\t\t'transaction.transaction.expiration',\n\t\t\t\t'transaction.transaction.kind',\n\t\t\t);\n\t\t}\n\t\tif (options.include?.bcs) {\n\t\t\tpaths.push('transaction.transaction.bcs');\n\t\t}\n\t\tif (options.include?.balanceChanges) {\n\t\t\tpaths.push('transaction.balance_changes');\n\t\t}\n\t\tif (options.include?.effects) {\n\t\t\tpaths.push('transaction.effects');\n\t\t}\n\t\tif (options.include?.events) {\n\t\t\tpaths.push('transaction.events');\n\t\t}\n\t\tif (options.include?.objectTypes) {\n\t\t\t// Use effects.changed_objects to match JSON-RPC behavior (which uses objectChanges)\n\t\t\tpaths.push('transaction.effects.changed_objects.object_type');\n\t\t\tpaths.push('transaction.effects.changed_objects.object_id');\n\t\t}\n\t\tif (options.include?.commandResults) {\n\t\t\tpaths.push('command_outputs');\n\t\t}\n\n\t\tif (!(options.transaction instanceof Uint8Array)) {\n\t\t\tawait options.transaction.prepareForSerialization({ client: this });\n\t\t}\n\n\t\tconst { response } = await this.#client.transactionExecutionService.simulateTransaction({\n\t\t\ttransaction:\n\t\t\t\toptions.transaction instanceof Uint8Array\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tbcs: {\n\t\t\t\t\t\t\t\tvalue: options.transaction,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}\n\t\t\t\t\t: transactionToGrpcTransaction(options.transaction),\n\t\t\treadMask: {\n\t\t\t\tpaths,\n\t\t\t},\n\t\t\tdoGasSelection: false,\n\t\t\tchecks:\n\t\t\t\toptions.checksEnabled === false\n\t\t\t\t\t? SimulateTransactionRequest_TransactionChecks.DISABLED\n\t\t\t\t\t: SimulateTransactionRequest_TransactionChecks.ENABLED,\n\t\t});\n\n\t\tconst transactionResult = parseTransaction(response.transaction!, options.include);\n\n\t\t// Add command results if requested\n\t\tconst commandResults =\n\t\t\toptions.include?.commandResults && response.commandOutputs\n\t\t\t\t? response.commandOutputs.map((output) => ({\n\t\t\t\t\t\treturnValues: (output.returnValues ?? []).map((rv) => ({\n\t\t\t\t\t\t\tbcs: rv.value?.value ?? null,\n\t\t\t\t\t\t})),\n\t\t\t\t\t\tmutatedReferences: (output.mutatedByRef ?? []).map((mr) => ({\n\t\t\t\t\t\t\tbcs: mr.value?.value ?? 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 response = await this.#client.ledgerService.getEpoch({\n\t\t\treadMask: {\n\t\t\t\tpaths: ['reference_gas_price'],\n\t\t\t},\n\t\t});\n\n\t\treturn {\n\t\t\treferenceGasPrice: response.response.epoch?.referenceGasPrice?.toString() ?? '',\n\t\t};\n\t}\n\n\tasync getProtocolConfig(): Promise<SuiClientTypes.GetProtocolConfigResponse> {\n\t\tconst response = await this.#client.ledgerService.getEpoch({\n\t\t\treadMask: { paths: ['protocol_config'] },\n\t\t});\n\n\t\tconst protocolConfig = response.response.epoch?.protocolConfig;\n\t\tif (!protocolConfig) {\n\t\t\tthrow new Error('Protocol config not found in response');\n\t\t}\n\n\t\tconst featureFlags: Record<string, boolean> = { ...protocolConfig.featureFlags };\n\t\tconst attributes: Record<string, string | null> = {};\n\t\tif (protocolConfig.attributes) {\n\t\t\tfor (const [key, value] of Object.entries(protocolConfig.attributes)) {\n\t\t\t\tattributes[key] = value ?? null;\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tprotocolConfig: {\n\t\t\t\tprotocolVersion: protocolConfig.protocolVersion?.toString() ?? (null as never),\n\t\t\t\tfeatureFlags,\n\t\t\t\tattributes,\n\t\t\t},\n\t\t};\n\t}\n\n\tasync getCurrentSystemState(): Promise<SuiClientTypes.GetCurrentSystemStateResponse> {\n\t\tconst response = await this.#client.ledgerService.getEpoch({\n\t\t\treadMask: {\n\t\t\t\tpaths: [\n\t\t\t\t\t'system_state.version',\n\t\t\t\t\t'system_state.epoch',\n\t\t\t\t\t'system_state.protocol_version',\n\t\t\t\t\t'system_state.reference_gas_price',\n\t\t\t\t\t'system_state.epoch_start_timestamp_ms',\n\t\t\t\t\t'system_state.safe_mode',\n\t\t\t\t\t'system_state.safe_mode_storage_rewards',\n\t\t\t\t\t'system_state.safe_mode_computation_rewards',\n\t\t\t\t\t'system_state.safe_mode_storage_rebates',\n\t\t\t\t\t'system_state.safe_mode_non_refundable_storage_fee',\n\t\t\t\t\t'system_state.parameters',\n\t\t\t\t\t'system_state.storage_fund',\n\t\t\t\t\t'system_state.stake_subsidy',\n\t\t\t\t],\n\t\t\t},\n\t\t});\n\n\t\tconst epoch = response.response.epoch;\n\t\tconst systemState = epoch?.systemState;\n\t\tif (!systemState) {\n\t\t\tthrow new Error('System state not found in response');\n\t\t}\n\n\t\tconst startMs = epoch?.start?.seconds\n\t\t\t? Number(epoch.start.seconds) * 1000 + Math.floor((epoch.start.nanos || 0) / 1_000_000)\n\t\t\t: systemState.epochStartTimestampMs\n\t\t\t\t? Number(systemState.epochStartTimestampMs)\n\t\t\t\t: (null as never);\n\n\t\treturn {\n\t\t\tsystemState: {\n\t\t\t\tsystemStateVersion: systemState.version?.toString() ?? (null as never),\n\t\t\t\tepoch: systemState.epoch?.toString() ?? (null as never),\n\t\t\t\tprotocolVersion: systemState.protocolVersion?.toString() ?? (null as never),\n\t\t\t\treferenceGasPrice: systemState.referenceGasPrice?.toString() ?? (null as never),\n\t\t\t\tepochStartTimestampMs: startMs.toString(),\n\t\t\t\tsafeMode: systemState.safeMode ?? false,\n\t\t\t\tsafeModeStorageRewards: systemState.safeModeStorageRewards?.toString() ?? (null as never),\n\t\t\t\tsafeModeComputationRewards:\n\t\t\t\t\tsystemState.safeModeComputationRewards?.toString() ?? (null as never),\n\t\t\t\tsafeModeStorageRebates: systemState.safeModeStorageRebates?.toString() ?? (null as never),\n\t\t\t\tsafeModeNonRefundableStorageFee:\n\t\t\t\t\tsystemState.safeModeNonRefundableStorageFee?.toString() ?? (null as never),\n\t\t\t\tparameters: {\n\t\t\t\t\tepochDurationMs: systemState.parameters?.epochDurationMs?.toString() ?? (null as never),\n\t\t\t\t\tstakeSubsidyStartEpoch:\n\t\t\t\t\t\tsystemState.parameters?.stakeSubsidyStartEpoch?.toString() ?? (null as never),\n\t\t\t\t\tmaxValidatorCount:\n\t\t\t\t\t\tsystemState.parameters?.maxValidatorCount?.toString() ?? (null as never),\n\t\t\t\t\tminValidatorJoiningStake:\n\t\t\t\t\t\tsystemState.parameters?.minValidatorJoiningStake?.toString() ?? (null as never),\n\t\t\t\t\tvalidatorLowStakeThreshold:\n\t\t\t\t\t\tsystemState.parameters?.validatorLowStakeThreshold?.toString() ?? (null as never),\n\t\t\t\t\tvalidatorLowStakeGracePeriod:\n\t\t\t\t\t\tsystemState.parameters?.validatorLowStakeGracePeriod?.toString() ?? (null as never),\n\t\t\t\t},\n\t\t\t\tstorageFund: {\n\t\t\t\t\ttotalObjectStorageRebates:\n\t\t\t\t\t\tsystemState.storageFund?.totalObjectStorageRebates?.toString() ?? (null as never),\n\t\t\t\t\tnonRefundableBalance:\n\t\t\t\t\t\tsystemState.storageFund?.nonRefundableBalance?.toString() ?? (null as never),\n\t\t\t\t},\n\t\t\t\tstakeSubsidy: {\n\t\t\t\t\tbalance: systemState.stakeSubsidy?.balance?.toString() ?? (null as never),\n\t\t\t\t\tdistributionCounter:\n\t\t\t\t\t\tsystemState.stakeSubsidy?.distributionCounter?.toString() ?? (null as never),\n\t\t\t\t\tcurrentDistributionAmount:\n\t\t\t\t\t\tsystemState.stakeSubsidy?.currentDistributionAmount?.toString() ?? (null as never),\n\t\t\t\t\tstakeSubsidyPeriodLength:\n\t\t\t\t\t\tsystemState.stakeSubsidy?.stakeSubsidyPeriodLength?.toString() ?? (null as never),\n\t\t\t\t\tstakeSubsidyDecreaseRate:\n\t\t\t\t\t\tsystemState.stakeSubsidy?.stakeSubsidyDecreaseRate ?? (null as never),\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n\n\tasync listDynamicFields(\n\t\toptions: SuiClientTypes.ListDynamicFieldsOptions,\n\t): Promise<SuiClientTypes.ListDynamicFieldsResponse> {\n\t\treturn this.#client.listDynamicFields(options);\n\t}\n\n\tasync verifyZkLoginSignature(\n\t\toptions: SuiClientTypes.VerifyZkLoginSignatureOptions,\n\t): Promise<SuiClientTypes.ZkLoginVerifyResponse> {\n\t\tconst messageBytes = fromBase64(options.bytes);\n\n\t\t// For PersonalMessage, the server expects BCS-encoded vector<u8>\n\t\t// For TransactionData, the server expects the raw BCS-encoded TransactionData as-is\n\t\tconst messageValue =\n\t\t\toptions.intentScope === 'PersonalMessage'\n\t\t\t\t? bcs.byteVector().serialize(messageBytes).toBytes()\n\t\t\t\t: messageBytes;\n\n\t\tconst { response } = await this.#client.signatureVerificationService.verifySignature({\n\t\t\tmessage: {\n\t\t\t\tname: options.intentScope,\n\t\t\t\tvalue: messageValue,\n\t\t\t},\n\t\t\tsignature: {\n\t\t\t\tbcs: {\n\t\t\t\t\tvalue: fromBase64(options.signature),\n\t\t\t\t},\n\t\t\t\tsignature: {\n\t\t\t\t\toneofKind: undefined,\n\t\t\t\t},\n\t\t\t},\n\t\t\taddress: options.address,\n\t\t\tjwks: [],\n\t\t});\n\n\t\treturn {\n\t\t\tsuccess: response.isValid ?? false,\n\t\t\terrors: response.reason ? [response.reason] : [],\n\t\t};\n\t}\n\n\tasync defaultNameServiceName(\n\t\toptions: SuiClientTypes.DefaultNameServiceNameOptions,\n\t): Promise<SuiClientTypes.DefaultNameServiceNameResponse> {\n\t\tconst name =\n\t\t\t(\n\t\t\t\tawait this.#client.nameService.reverseLookupName({\n\t\t\t\t\taddress: options.address,\n\t\t\t\t})\n\t\t\t).response.record?.name ?? null;\n\t\treturn {\n\t\t\tdata: {\n\t\t\t\tname,\n\t\t\t},\n\t\t};\n\t}\n\n\tasync getMoveFunction(\n\t\toptions: SuiClientTypes.GetMoveFunctionOptions,\n\t): Promise<SuiClientTypes.GetMoveFunctionResponse> {\n\t\tconst resolvedPackageId = (await this.mvr.resolvePackage({ package: options.packageId }))\n\t\t\t.package;\n\t\tconst { response } = await this.#client.movePackageService.getFunction({\n\t\t\tpackageId: resolvedPackageId,\n\t\t\tmoduleName: options.moduleName,\n\t\t\tname: options.name,\n\t\t});\n\n\t\tlet visibility: 'public' | 'private' | 'friend' | 'unknown' = 'unknown';\n\n\t\tswitch (response.function?.visibility) {\n\t\t\tcase FunctionDescriptor_Visibility.PUBLIC:\n\t\t\t\tvisibility = 'public';\n\t\t\t\tbreak;\n\t\t\tcase FunctionDescriptor_Visibility.PRIVATE:\n\t\t\t\tvisibility = 'private';\n\t\t\t\tbreak;\n\t\t\tcase FunctionDescriptor_Visibility.FRIEND:\n\t\t\t\tvisibility = 'friend';\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn {\n\t\t\tfunction: {\n\t\t\t\tpackageId: normalizeSuiAddress(resolvedPackageId),\n\t\t\t\tmoduleName: options.moduleName,\n\t\t\t\tname: response.function?.name!,\n\t\t\t\tvisibility,\n\t\t\t\tisEntry: response.function?.isEntry ?? false,\n\t\t\t\ttypeParameters:\n\t\t\t\t\tresponse.function?.typeParameters?.map(({ constraints }) => ({\n\t\t\t\t\t\tisPhantom: false,\n\t\t\t\t\t\tconstraints:\n\t\t\t\t\t\t\tconstraints.map((constraint) => {\n\t\t\t\t\t\t\t\tswitch (constraint) {\n\t\t\t\t\t\t\t\t\tcase Ability.COPY:\n\t\t\t\t\t\t\t\t\t\treturn 'copy';\n\t\t\t\t\t\t\t\t\tcase Ability.DROP:\n\t\t\t\t\t\t\t\t\t\treturn 'drop';\n\t\t\t\t\t\t\t\t\tcase Ability.STORE:\n\t\t\t\t\t\t\t\t\t\treturn 'store';\n\t\t\t\t\t\t\t\t\tcase Ability.KEY:\n\t\t\t\t\t\t\t\t\t\treturn 'key';\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\treturn 'unknown';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}) ?? [],\n\t\t\t\t\t})) ?? [],\n\t\t\t\tparameters:\n\t\t\t\t\tresponse.function?.parameters?.map((param) => parseNormalizedSuiMoveType(param)) ?? [],\n\t\t\t\treturns: response.function?.returns?.map((ret) => parseNormalizedSuiMoveType(ret)) ?? [],\n\t\t\t},\n\t\t};\n\t}\n\n\tasync getChainIdentifier(\n\t\t_options?: SuiClientTypes.GetChainIdentifierOptions,\n\t): Promise<SuiClientTypes.GetChainIdentifierResponse> {\n\t\treturn this.cache.read(['chainIdentifier'], async () => {\n\t\t\tconst { response } = await this.#client.ledgerService.getServiceInfo({});\n\t\t\tif (!response.chainId) {\n\t\t\t\tthrow new Error('Chain identifier not found in service info');\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tchainIdentifier: response.chainId,\n\t\t\t};\n\t\t});\n\t}\n\n\tresolveTransactionPlugin() {\n\t\tconst client = this.#client;\n\t\treturn async function resolveTransactionData(\n\t\t\ttransactionData: TransactionDataBuilder,\n\t\t\toptions: BuildTransactionOptions,\n\t\t\tnext: () => Promise<void>,\n\t\t) {\n\t\t\tconst snapshot = transactionData.snapshot();\n\t\t\t// If sender is not set, use a dummy address for resolution purposes\n\t\t\t// The resolved transaction will not include the sender if it wasn't set originally\n\t\t\tif (!snapshot.sender) {\n\t\t\t\tsnapshot.sender = '0x0000000000000000000000000000000000000000000000000000000000000000';\n\t\t\t}\n\t\t\tconst grpcTransaction = transactionDataToGrpcTransaction(snapshot);\n\n\t\t\tlet response;\n\t\t\ttry {\n\t\t\t\tconst result = await client.transactionExecutionService.simulateTransaction({\n\t\t\t\t\ttransaction: grpcTransaction,\n\t\t\t\t\tdoGasSelection:\n\t\t\t\t\t\t!options.onlyTransactionKind &&\n\t\t\t\t\t\t(snapshot.gasData.budget == null || snapshot.gasData.payment == null),\n\t\t\t\t\treadMask: {\n\t\t\t\t\t\tpaths: [\n\t\t\t\t\t\t\t'transaction.transaction.sender',\n\t\t\t\t\t\t\t'transaction.transaction.gas_payment',\n\t\t\t\t\t\t\t'transaction.transaction.expiration',\n\t\t\t\t\t\t\t'transaction.transaction.kind',\n\t\t\t\t\t\t\t'transaction.effects.status',\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t\tresponse = result.response;\n\t\t\t} catch (error) {\n\t\t\t\t// https://github.com/timostamm/protobuf-ts/pull/739\n\t\t\t\tif (error instanceof Error && error.message) {\n\t\t\t\t\tthrow new SimulationError(decodeURIComponent(error.message), { cause: error });\n\t\t\t\t}\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t!options.onlyTransactionKind &&\n\t\t\t\tresponse.transaction?.effects?.status &&\n\t\t\t\t!response.transaction.effects.status.success\n\t\t\t) {\n\t\t\t\tconst executionError = response.transaction.effects.status.error\n\t\t\t\t\t? parseGrpcExecutionError(response.transaction.effects.status.error)\n\t\t\t\t\t: undefined;\n\t\t\t\tconst errorMessage = executionError?.message ?? 'Transaction failed';\n\t\t\t\tthrow new SimulationError(`Transaction resolution failed: ${errorMessage}`, {\n\t\t\t\t\texecutionError,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (!response.transaction?.transaction) {\n\t\t\t\tthrow new Error('simulateTransaction did not return resolved transaction data');\n\t\t\t}\n\n\t\t\tapplyGrpcResolvedTransaction(transactionData, response.transaction.transaction, options);\n\n\t\t\treturn await next();\n\t\t};\n\t}\n}\n\nfunction mapDisplayProto(\n\tinclude: boolean | undefined,\n\tdisplay: { output?: Value; errors?: Value } | undefined,\n): SuiClientTypes.Display | null | undefined {\n\tif (!include) return undefined;\n\tif (display === undefined) return null;\n\treturn {\n\t\toutput:\n\t\t\tdisplay.output !== undefined\n\t\t\t\t? (Value.toJson(display.output) as Record<string, unknown> | null)\n\t\t\t\t: null,\n\t\terrors:\n\t\t\tdisplay.errors !== undefined\n\t\t\t\t? (Value.toJson(display.errors) as Record<string, string> | null)\n\t\t\t\t: null,\n\t};\n}\n\nfunction mapOwner(owner: Owner | null | undefined): SuiClientTypes.ObjectOwner | null {\n\tif (!owner) {\n\t\treturn null;\n\t}\n\tif (owner.kind === Owner_OwnerKind.IMMUTABLE) {\n\t\treturn {\n\t\t\t$kind: 'Immutable',\n\t\t\tImmutable: true,\n\t\t};\n\t}\n\tif (owner.kind === Owner_OwnerKind.ADDRESS) {\n\t\treturn {\n\t\t\tAddressOwner: owner.address!,\n\t\t\t$kind: 'AddressOwner',\n\t\t};\n\t}\n\tif (owner.kind === Owner_OwnerKind.OBJECT) {\n\t\treturn {\n\t\t\t$kind: 'ObjectOwner',\n\t\t\tObjectOwner: owner.address!,\n\t\t};\n\t}\n\n\tif (owner.kind === Owner_OwnerKind.SHARED) {\n\t\treturn {\n\t\t\t$kind: 'Shared',\n\t\t\tShared: {\n\t\t\t\tinitialSharedVersion: owner.version?.toString()!,\n\t\t\t},\n\t\t};\n\t}\n\n\tif (owner.kind === Owner_OwnerKind.CONSENSUS_ADDRESS) {\n\t\treturn {\n\t\t\t$kind: 'ConsensusAddressOwner',\n\t\t\tConsensusAddressOwner: {\n\t\t\t\tstartVersion: owner.version?.toString()!,\n\t\t\t\towner: owner.address!,\n\t\t\t},\n\t\t};\n\t}\n\n\tthrow new Error(\n\t\t`Unknown owner kind ${JSON.stringify(owner, (_k, v) => (typeof v === 'bigint' ? v.toString() : v))}`,\n\t);\n}\n\nfunction parseGrpcExecutionError(error: GrpcExecutionError): SuiClientTypes.ExecutionError {\n\tconst message = error.description ?? 'Unknown error';\n\tconst command = error.command != null ? Number(error.command) : undefined;\n\tconst details = error.errorDetails;\n\n\tswitch (details?.oneofKind) {\n\t\tcase 'abort': {\n\t\t\tconst abort = details.abort;\n\t\t\tconst cleverError = abort.cleverError;\n\t\t\treturn {\n\t\t\t\t$kind: 'MoveAbort',\n\t\t\t\tmessage: formatMoveAbortMessage({\n\t\t\t\t\tcommand,\n\t\t\t\t\tlocation: abort.location,\n\t\t\t\t\tabortCode: String(abort.abortCode ?? 0n),\n\t\t\t\t\tcleverError: cleverError\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tlineNumber:\n\t\t\t\t\t\t\t\t\tcleverError.lineNumber != null ? Number(cleverError.lineNumber) : undefined,\n\t\t\t\t\t\t\t\tconstantName: cleverError.constantName,\n\t\t\t\t\t\t\t\tvalue:\n\t\t\t\t\t\t\t\t\tcleverError.value?.oneofKind === 'rendered'\n\t\t\t\t\t\t\t\t\t\t? cleverError.value.rendered\n\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: undefined,\n\t\t\t\t}),\n\t\t\t\tcommand,\n\t\t\t\tMoveAbort: parseMoveAbort(abort),\n\t\t\t};\n\t\t}\n\n\t\tcase 'sizeError':\n\t\t\treturn {\n\t\t\t\t$kind: 'SizeError',\n\t\t\t\tmessage,\n\t\t\t\tcommand,\n\t\t\t\tSizeError: {\n\t\t\t\t\tname: mapErrorName(error.kind),\n\t\t\t\t\tsize: Number(details.sizeError.size ?? 0n),\n\t\t\t\t\tmaxSize: Number(details.sizeError.maxSize ?? 0n),\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'commandArgumentError':\n\t\t\treturn {\n\t\t\t\t$kind: 'CommandArgumentError',\n\t\t\t\tmessage,\n\t\t\t\tcommand,\n\t\t\t\tCommandArgumentError: {\n\t\t\t\t\targument: details.commandArgumentError.argument ?? 0,\n\t\t\t\t\tname: mapErrorName(details.commandArgumentError.kind),\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'typeArgumentError':\n\t\t\treturn {\n\t\t\t\t$kind: 'TypeArgumentError',\n\t\t\t\tmessage,\n\t\t\t\tcommand,\n\t\t\t\tTypeArgumentError: {\n\t\t\t\t\ttypeArgument: details.typeArgumentError.typeArgument ?? 0,\n\t\t\t\t\tname: mapErrorName(details.typeArgumentError.kind),\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'packageUpgradeError':\n\t\t\treturn {\n\t\t\t\t$kind: 'PackageUpgradeError',\n\t\t\t\tmessage,\n\t\t\t\tcommand,\n\t\t\t\tPackageUpgradeError: {\n\t\t\t\t\tname: mapErrorName(details.packageUpgradeError.kind),\n\t\t\t\t\tpackageId: details.packageUpgradeError.packageId,\n\t\t\t\t\tdigest: details.packageUpgradeError.digest,\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'indexError':\n\t\t\treturn {\n\t\t\t\t$kind: 'IndexError',\n\t\t\t\tmessage,\n\t\t\t\tcommand,\n\t\t\t\tIndexError: {\n\t\t\t\t\tindex: details.indexError.index,\n\t\t\t\t\tsubresult: details.indexError.subresult,\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'coinDenyListError':\n\t\t\treturn {\n\t\t\t\t$kind: 'CoinDenyListError',\n\t\t\t\tmessage,\n\t\t\t\tcommand,\n\t\t\t\tCoinDenyListError: {\n\t\t\t\t\tname: mapErrorName(error.kind),\n\t\t\t\t\tcoinType: details.coinDenyListError.coinType!,\n\t\t\t\t\taddress: details.coinDenyListError.address,\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'congestedObjects':\n\t\t\treturn {\n\t\t\t\t$kind: 'CongestedObjects',\n\t\t\t\tmessage,\n\t\t\t\tcommand,\n\t\t\t\tCongestedObjects: {\n\t\t\t\t\tname: mapErrorName(error.kind),\n\t\t\t\t\tobjects: details.congestedObjects.objects,\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'objectId':\n\t\t\treturn {\n\t\t\t\t$kind: 'ObjectIdError',\n\t\t\t\tmessage,\n\t\t\t\tcommand,\n\t\t\t\tObjectIdError: {\n\t\t\t\t\tname: mapErrorName(error.kind),\n\t\t\t\t\tobjectId: details.objectId,\n\t\t\t\t},\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn {\n\t\t\t\t$kind: 'Unknown',\n\t\t\t\tmessage,\n\t\t\t\tcommand,\n\t\t\t\tUnknown: null,\n\t\t\t};\n\t}\n}\n\nfunction parseMoveAbort(abort: GrpcMoveAbort): SuiClientTypes.MoveAbort {\n\treturn {\n\t\tabortCode: String(abort.abortCode ?? 0n),\n\t\tlocation: { ...abort.location },\n\t\tcleverError: abort.cleverError\n\t\t\t? {\n\t\t\t\t\terrorCode:\n\t\t\t\t\t\tabort.cleverError.errorCode != null ? Number(abort.cleverError.errorCode) : undefined,\n\t\t\t\t\tlineNumber:\n\t\t\t\t\t\tabort.cleverError.lineNumber != null ? Number(abort.cleverError.lineNumber) : undefined,\n\t\t\t\t\tconstantName: abort.cleverError.constantName,\n\t\t\t\t\tconstantType: abort.cleverError.constantType,\n\t\t\t\t\tvalue:\n\t\t\t\t\t\tabort.cleverError.value?.oneofKind === 'rendered'\n\t\t\t\t\t\t\t? abort.cleverError.value.rendered\n\t\t\t\t\t\t\t: abort.cleverError.value?.oneofKind === 'raw'\n\t\t\t\t\t\t\t\t? toBase64(abort.cleverError.value.raw)\n\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t}\n\t\t\t: undefined,\n\t};\n}\n\nfunction mapErrorName(\n\tkind:\n\t\t| ExecutionError_ExecutionErrorKind\n\t\t| CommandArgumentError_CommandArgumentErrorKind\n\t\t| TypeArgumentError_TypeArgumentErrorKind\n\t\t| PackageUpgradeError_PackageUpgradeErrorKind\n\t\t| undefined,\n): string {\n\tif (kind == null) {\n\t\treturn 'Unknown';\n\t}\n\tconst name = CommandArgumentError_CommandArgumentErrorKind[kind];\n\tif (!name || name.endsWith('_UNKNOWN')) {\n\t\treturn 'Unknown';\n\t}\n\treturn name\n\t\t.split('_')\n\t\t.map((word) => word.charAt(0) + word.slice(1).toLowerCase())\n\t\t.join('');\n}\n\nfunction mapIdOperation(\n\toperation: ChangedObject_IdOperation | undefined,\n): null | 'Created' | 'Deleted' | 'Unknown' | 'None' {\n\tif (operation == null) {\n\t\treturn null;\n\t}\n\tswitch (operation) {\n\t\tcase ChangedObject_IdOperation.CREATED:\n\t\t\treturn 'Created';\n\t\tcase ChangedObject_IdOperation.DELETED:\n\t\t\treturn 'Deleted';\n\t\tcase ChangedObject_IdOperation.NONE:\n\t\tcase ChangedObject_IdOperation.ID_OPERATION_UNKNOWN:\n\t\t\treturn 'None';\n\t\tdefault:\n\t\t\toperation satisfies never;\n\t\t\treturn 'Unknown';\n\t}\n}\n\nfunction mapInputObjectState(\n\tstate: ChangedObject_InputObjectState | undefined,\n): null | 'Exists' | 'DoesNotExist' | 'Unknown' {\n\tif (state == null) {\n\t\treturn null;\n\t}\n\tswitch (state) {\n\t\tcase ChangedObject_InputObjectState.EXISTS:\n\t\t\treturn 'Exists';\n\t\tcase ChangedObject_InputObjectState.DOES_NOT_EXIST:\n\t\t\treturn 'DoesNotExist';\n\t\tcase ChangedObject_InputObjectState.UNKNOWN:\n\t\t\treturn 'Unknown';\n\t\tdefault:\n\t\t\tstate satisfies never;\n\t\t\treturn 'Unknown';\n\t}\n}\n\nfunction mapOutputObjectState(\n\tstate: ChangedObject_OutputObjectState | undefined,\n): null | 'ObjectWrite' | 'PackageWrite' | 'DoesNotExist' | 'AccumulatorWriteV1' | 'Unknown' {\n\tif (state == null) {\n\t\treturn null;\n\t}\n\tswitch (state) {\n\t\tcase ChangedObject_OutputObjectState.OBJECT_WRITE:\n\t\t\treturn 'ObjectWrite';\n\t\tcase ChangedObject_OutputObjectState.PACKAGE_WRITE:\n\t\t\treturn 'PackageWrite';\n\t\tcase ChangedObject_OutputObjectState.DOES_NOT_EXIST:\n\t\t\treturn 'DoesNotExist';\n\t\tcase ChangedObject_OutputObjectState.ACCUMULATOR_WRITE:\n\t\t\treturn 'AccumulatorWriteV1';\n\t\tcase ChangedObject_OutputObjectState.UNKNOWN:\n\t\t\treturn 'Unknown';\n\t\tdefault:\n\t\t\tstate satisfies never;\n\t\t\treturn 'Unknown';\n\t}\n}\n\nfunction mapUnchangedConsensusObjectKind(\n\tkind: UnchangedConsensusObject_UnchangedConsensusObjectKind | undefined,\n): null | SuiClientTypes.UnchangedConsensusObject['kind'] {\n\tif (kind == null) {\n\t\treturn null;\n\t}\n\tswitch (kind) {\n\t\tcase UnchangedConsensusObject_UnchangedConsensusObjectKind.UNCHANGED_CONSENSUS_OBJECT_KIND_UNKNOWN:\n\t\t\treturn 'Unknown';\n\t\tcase UnchangedConsensusObject_UnchangedConsensusObjectKind.READ_ONLY_ROOT:\n\t\t\treturn 'ReadOnlyRoot';\n\t\tcase UnchangedConsensusObject_UnchangedConsensusObjectKind.MUTATE_CONSENSUS_STREAM_ENDED:\n\t\t\treturn 'MutateConsensusStreamEnded';\n\t\tcase UnchangedConsensusObject_UnchangedConsensusObjectKind.READ_CONSENSUS_STREAM_ENDED:\n\t\t\treturn 'ReadConsensusStreamEnded';\n\t\tcase UnchangedConsensusObject_UnchangedConsensusObjectKind.CANCELED:\n\t\t\treturn 'Cancelled';\n\t\tcase UnchangedConsensusObject_UnchangedConsensusObjectKind.PER_EPOCH_CONFIG:\n\t\t\treturn 'PerEpochConfig';\n\t\tdefault:\n\t\t\tkind satisfies never;\n\t\t\treturn 'Unknown';\n\t}\n}\n\nexport function parseTransactionEffects({\n\teffects,\n}: {\n\teffects: TransactionEffects | undefined;\n}): SuiClientTypes.TransactionEffects | null {\n\tif (!effects) {\n\t\treturn null;\n\t}\n\n\tconst changedObjects = effects.changedObjects.map((change): SuiClientTypes.ChangedObject => {\n\t\treturn {\n\t\t\tobjectId: change.objectId!,\n\t\t\tinputState: mapInputObjectState(change.inputState)!,\n\t\t\tinputVersion: change.inputVersion?.toString() ?? null,\n\t\t\tinputDigest: change.inputDigest ?? null,\n\t\t\tinputOwner: mapOwner(change.inputOwner),\n\t\t\toutputState: mapOutputObjectState(change.outputState)!,\n\t\t\toutputVersion: change.outputVersion?.toString() ?? null,\n\t\t\toutputDigest: change.outputDigest ?? null,\n\t\t\toutputOwner: mapOwner(change.outputOwner),\n\t\t\tidOperation: mapIdOperation(change.idOperation)!,\n\t\t};\n\t});\n\n\treturn {\n\t\tbcs: effects.bcs?.value!,\n\n\t\tversion: 2,\n\t\tstatus: effects.status?.success\n\t\t\t? {\n\t\t\t\t\tsuccess: true,\n\t\t\t\t\terror: null,\n\t\t\t\t}\n\t\t\t: {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\terror: parseGrpcExecutionError(effects.status!.error!),\n\t\t\t\t},\n\t\tgasUsed: {\n\t\t\tcomputationCost: effects.gasUsed?.computationCost?.toString()!,\n\t\t\tstorageCost: effects.gasUsed?.storageCost?.toString()!,\n\t\t\tstorageRebate: effects.gasUsed?.storageRebate?.toString()!,\n\t\t\tnonRefundableStorageFee: effects.gasUsed?.nonRefundableStorageFee?.toString()!,\n\t\t},\n\t\ttransactionDigest: effects.transactionDigest!,\n\t\tgasObject: {\n\t\t\tobjectId: effects.gasObject?.objectId!,\n\t\t\tinputState: mapInputObjectState(effects.gasObject?.inputState)!,\n\t\t\tinputVersion: effects.gasObject?.inputVersion?.toString() ?? null,\n\t\t\tinputDigest: effects.gasObject?.inputDigest ?? null,\n\t\t\tinputOwner: mapOwner(effects.gasObject?.inputOwner),\n\t\t\toutputState: mapOutputObjectState(effects.gasObject?.outputState)!,\n\t\t\toutputVersion: effects.gasObject?.outputVersion?.toString() ?? null,\n\t\t\toutputDigest: effects.gasObject?.outputDigest ?? null,\n\t\t\toutputOwner: mapOwner(effects.gasObject?.outputOwner),\n\t\t\tidOperation: mapIdOperation(effects.gasObject?.idOperation)!,\n\t\t},\n\t\teventsDigest: effects.eventsDigest ?? null,\n\t\tdependencies: effects.dependencies,\n\t\tlamportVersion: effects.lamportVersion?.toString() ?? null,\n\t\tchangedObjects,\n\t\tunchangedConsensusObjects: effects.unchangedConsensusObjects.map(\n\t\t\t(object): SuiClientTypes.UnchangedConsensusObject => {\n\t\t\t\treturn {\n\t\t\t\t\tkind: mapUnchangedConsensusObjectKind(object.kind)!,\n\t\t\t\t\t// TODO: we are inconsistent about id vs objectId\n\t\t\t\t\tobjectId: object.objectId!,\n\t\t\t\t\tversion: object.version?.toString() ?? null,\n\t\t\t\t\tdigest: object.digest ?? null,\n\t\t\t\t};\n\t\t\t},\n\t\t),\n\t\tauxiliaryDataDigest: effects.auxiliaryDataDigest ?? null,\n\t};\n}\n\nfunction parseTransaction<Include extends SuiClientTypes.TransactionInclude = {}>(\n\ttransaction: ExecutedTransaction,\n\tinclude?: Include,\n): SuiClientTypes.TransactionResult<Include> {\n\tconst objectTypes: Record<string, string> = {};\n\tif (include?.objectTypes) {\n\t\ttransaction.effects?.changedObjects?.forEach((change) => {\n\t\t\tif (change.objectId && change.objectType) {\n\t\t\t\tobjectTypes[change.objectId] = change.objectType;\n\t\t\t}\n\t\t});\n\t}\n\n\tlet transactionData: SuiClientTypes.TransactionData | undefined;\n\tif (include?.transaction) {\n\t\tconst tx = transaction.transaction;\n\n\t\tif (!tx) {\n\t\t\tthrow new Error('Transaction data is required but missing from gRPC response');\n\t\t}\n\n\t\tconst resolved = grpcTransactionToTransactionData(tx);\n\t\ttransactionData = {\n\t\t\tgasData: resolved.gasData,\n\t\t\tsender: resolved.sender,\n\t\t\texpiration: resolved.expiration,\n\t\t\tcommands: resolved.commands,\n\t\t\tinputs: resolved.inputs,\n\t\t\tversion: resolved.version,\n\t\t};\n\t}\n\n\tconst bcsBytes = include?.bcs ? transaction.transaction?.bcs?.value : undefined;\n\n\tconst effects = include?.effects\n\t\t? parseTransactionEffects({\n\t\t\t\teffects: transaction.effects,\n\t\t\t})\n\t\t: undefined;\n\n\tconst status: SuiClientTypes.ExecutionStatus = transaction.effects?.status?.success\n\t\t? { success: true, error: null }\n\t\t: {\n\t\t\t\tsuccess: false,\n\t\t\t\terror: transaction.effects?.status?.error\n\t\t\t\t\t? parseGrpcExecutionError(transaction.effects.status.error)\n\t\t\t\t\t: {\n\t\t\t\t\t\t\t$kind: 'Unknown',\n\t\t\t\t\t\t\tmessage: 'Transaction failed',\n\t\t\t\t\t\t\tUnknown: null,\n\t\t\t\t\t\t},\n\t\t\t};\n\n\tconst result: SuiClientTypes.Transaction<Include> = {\n\t\tdigest: transaction.digest!,\n\t\tepoch: transaction.effects?.epoch?.toString() ?? null,\n\t\tstatus,\n\t\teffects: effects as SuiClientTypes.Transaction<Include>['effects'],\n\t\tobjectTypes: (include?.objectTypes\n\t\t\t? objectTypes\n\t\t\t: undefined) as SuiClientTypes.Transaction<Include>['objectTypes'],\n\t\ttransaction: transactionData as SuiClientTypes.Transaction<Include>['transaction'],\n\t\tbcs: bcsBytes as SuiClientTypes.Transaction<Include>['bcs'],\n\t\tsignatures: transaction.signatures?.map((sig) => toBase64(sig.bcs?.value!)) ?? [],\n\t\tbalanceChanges: (include?.balanceChanges\n\t\t\t? (transaction.balanceChanges?.map((change) => ({\n\t\t\t\t\tcoinType: change.coinType!,\n\t\t\t\t\taddress: change.address!,\n\t\t\t\t\tamount: change.amount!,\n\t\t\t\t})) ?? [])\n\t\t\t: undefined) as SuiClientTypes.Transaction<Include>['balanceChanges'],\n\t\tevents: (include?.events\n\t\t\t? (transaction.events?.events.map((event) => ({\n\t\t\t\t\tpackageId: normalizeSuiAddress(event.packageId!),\n\t\t\t\t\tmodule: event.module!,\n\t\t\t\t\tsender: normalizeSuiAddress(event.sender!),\n\t\t\t\t\teventType: event.eventType!,\n\t\t\t\t\tbcs: event.contents?.value ?? new Uint8Array(),\n\t\t\t\t\tjson: event.json ? (Value.toJson(event.json) as Record<string, unknown>) : null,\n\t\t\t\t})) ?? [])\n\t\t\t: undefined) as SuiClientTypes.Transaction<Include>['events'],\n\t};\n\n\treturn status.success\n\t\t? {\n\t\t\t\t$kind: 'Transaction',\n\t\t\t\tTransaction: result,\n\t\t\t}\n\t\t: {\n\t\t\t\t$kind: 'FailedTransaction',\n\t\t\t\tFailedTransaction: result,\n\t\t\t};\n}\n\nfunction parseNormalizedSuiMoveType(type: OpenSignature): SuiClientTypes.OpenSignature {\n\tlet reference: 'mutable' | 'immutable' | null = null;\n\n\tif (type.reference === OpenSignature_Reference.IMMUTABLE) {\n\t\treference = 'immutable';\n\t} else if (type.reference === OpenSignature_Reference.MUTABLE) {\n\t\treference = 'mutable';\n\t}\n\n\treturn {\n\t\treference,\n\t\tbody: parseNormalizedSuiMoveTypeBody(type.body!),\n\t};\n}\n\nfunction parseNormalizedSuiMoveTypeBody(type: OpenSignatureBody): SuiClientTypes.OpenSignatureBody {\n\tswitch (type.type) {\n\t\tcase OpenSignatureBody_Type.TYPE_UNKNOWN:\n\t\t\treturn { $kind: 'unknown' };\n\t\tcase OpenSignatureBody_Type.ADDRESS:\n\t\t\treturn { $kind: 'address' };\n\t\tcase OpenSignatureBody_Type.BOOL:\n\t\t\treturn { $kind: 'bool' };\n\t\tcase OpenSignatureBody_Type.U8:\n\t\t\treturn { $kind: 'u8' };\n\t\tcase OpenSignatureBody_Type.U16:\n\t\t\treturn { $kind: 'u16' };\n\t\tcase OpenSignatureBody_Type.U32:\n\t\t\treturn { $kind: 'u32' };\n\t\tcase OpenSignatureBody_Type.U64:\n\t\t\treturn { $kind: 'u64' };\n\t\tcase OpenSignatureBody_Type.U128:\n\t\t\treturn { $kind: 'u128' };\n\t\tcase OpenSignatureBody_Type.U256:\n\t\t\treturn { $kind: 'u256' };\n\t\tcase OpenSignatureBody_Type.VECTOR:\n\t\t\treturn {\n\t\t\t\t$kind: 'vector',\n\t\t\t\tvector: parseNormalizedSuiMoveTypeBody(type.typeParameterInstantiation[0]),\n\t\t\t};\n\t\tcase OpenSignatureBody_Type.DATATYPE:\n\t\t\treturn {\n\t\t\t\t$kind: 'datatype',\n\t\t\t\tdatatype: {\n\t\t\t\t\ttypeName: type.typeName!,\n\t\t\t\t\ttypeParameters: type.typeParameterInstantiation.map((t) =>\n\t\t\t\t\t\tparseNormalizedSuiMoveTypeBody(t),\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t};\n\t\tcase OpenSignatureBody_Type.TYPE_PARAMETER:\n\t\t\treturn {\n\t\t\t\t$kind: 'typeParameter',\n\t\t\t\tindex: type.typeParameter!,\n\t\t\t};\n\t\tdefault:\n\t\t\treturn { $kind: 'unknown' };\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"core.mjs","names":["#client","bcs"],"sources":["../../src/grpc/core.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { CoreClientOptions, SuiClientTypes } from '../client/index.js';\nimport { CoreClient, formatMoveAbortMessage, SimulationError } from '../client/index.js';\nimport type { SuiGrpcClient } from './client.js';\nimport type { Owner } from './proto/sui/rpc/v2/owner.js';\nimport { Owner_OwnerKind } from './proto/sui/rpc/v2/owner.js';\nimport { chunk, fromBase64, toBase64 } from '@mysten/utils';\nimport type { ExecutedTransaction } from './proto/sui/rpc/v2/executed_transaction.js';\nimport type { TransactionEffects } from './proto/sui/rpc/v2/effects.js';\nimport {\n\tUnchangedConsensusObject_UnchangedConsensusObjectKind,\n\tChangedObject_IdOperation,\n\tChangedObject_InputObjectState,\n\tChangedObject_OutputObjectState,\n} from './proto/sui/rpc/v2/effects.js';\nimport type {\n\tExecutionError as GrpcExecutionError,\n\tMoveAbort as GrpcMoveAbort,\n} from './proto/sui/rpc/v2/execution_status.js';\nimport {\n\tExecutionError_ExecutionErrorKind,\n\tCommandArgumentError_CommandArgumentErrorKind,\n\tTypeArgumentError_TypeArgumentErrorKind,\n\tPackageUpgradeError_PackageUpgradeErrorKind,\n} from './proto/sui/rpc/v2/execution_status.js';\nimport type { BuildTransactionOptions } from '../transactions/index.js';\nimport { TransactionDataBuilder } from '../transactions/index.js';\nimport { bcs } from '../bcs/index.js';\nimport { normalizeStructTag, normalizeSuiAddress } from '../utils/sui-types.js';\nimport { SUI_TYPE_ARG } from '../utils/constants.js';\nimport type { OpenSignature, OpenSignatureBody } from './proto/sui/rpc/v2/move_package.js';\nimport {\n\tAbility,\n\tFunctionDescriptor_Visibility,\n\tOpenSignature_Reference,\n\tOpenSignatureBody_Type,\n} from './proto/sui/rpc/v2/move_package.js';\nimport {\n\tapplyGrpcResolvedTransaction,\n\ttransactionDataToGrpcTransaction,\n\ttransactionToGrpcTransaction,\n\tgrpcTransactionToTransactionData,\n} from '../client/transaction-resolver.js';\nimport { Value } from './proto/google/protobuf/struct.js';\nimport { SimulateTransactionRequest_TransactionChecks } from './proto/sui/rpc/v2/transaction_execution_service.js';\n\nexport interface GrpcCoreClientOptions extends CoreClientOptions {\n\tclient: SuiGrpcClient;\n}\nexport class GrpcCoreClient extends CoreClient {\n\t#client: SuiGrpcClient;\n\tconstructor({ client, ...options }: GrpcCoreClientOptions) {\n\t\tsuper(options);\n\t\tthis.#client = client;\n\t}\n\n\tasync getObjects<Include extends SuiClientTypes.ObjectInclude = {}>(\n\t\toptions: SuiClientTypes.GetObjectsOptions<Include>,\n\t): Promise<SuiClientTypes.GetObjectsResponse<Include>> {\n\t\tconst batches = chunk(options.objectIds, 50);\n\t\tconst results: SuiClientTypes.GetObjectsResponse<Include>['objects'] = [];\n\n\t\tconst paths = ['owner', 'object_type', 'digest', 'version', 'object_id'];\n\t\tif (options.include?.content) {\n\t\t\tpaths.push('contents');\n\t\t}\n\t\tif (options.include?.previousTransaction) {\n\t\t\tpaths.push('previous_transaction');\n\t\t}\n\t\tif (options.include?.objectBcs) {\n\t\t\tpaths.push('bcs');\n\t\t}\n\t\tif (options.include?.json) {\n\t\t\tpaths.push('json');\n\t\t}\n\t\tif (options.include?.display) {\n\t\t\tpaths.push('display');\n\t\t}\n\n\t\tfor (const batch of batches) {\n\t\t\tconst response = await this.#client.ledgerService.batchGetObjects({\n\t\t\t\trequests: batch.map((id) => ({ objectId: id })),\n\t\t\t\treadMask: {\n\t\t\t\t\tpaths,\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tresults.push(\n\t\t\t\t...response.response.objects.map((object): SuiClientTypes.Object<Include> | Error => {\n\t\t\t\t\tif (object.result.oneofKind === 'error') {\n\t\t\t\t\t\t// TODO: improve error handling\n\t\t\t\t\t\treturn new Error(object.result.error.message);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (object.result.oneofKind !== 'object') {\n\t\t\t\t\t\treturn new Error('Unexpected result type');\n\t\t\t\t\t}\n\n\t\t\t\t\tconst bcsContent = object.result.object.contents?.value ?? undefined;\n\t\t\t\t\tconst objectBcs = object.result.object.bcs?.value ?? undefined;\n\n\t\t\t\t\t// Package objects have type \"package\" which is not a struct tag, so don't normalize it\n\t\t\t\t\tconst objectType = object.result.object.objectType;\n\t\t\t\t\tconst type =\n\t\t\t\t\t\tobjectType && objectType.includes('::')\n\t\t\t\t\t\t\t? normalizeStructTag(objectType)\n\t\t\t\t\t\t\t: (objectType ?? '');\n\n\t\t\t\t\tconst jsonContent = options.include?.json\n\t\t\t\t\t\t? object.result.object.json\n\t\t\t\t\t\t\t? (Value.toJson(object.result.object.json) as Record<string, unknown>)\n\t\t\t\t\t\t\t: null\n\t\t\t\t\t\t: undefined;\n\n\t\t\t\t\tconst displayData = mapDisplayProto(\n\t\t\t\t\t\toptions.include?.display,\n\t\t\t\t\t\tobject.result.object.display,\n\t\t\t\t\t);\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tobjectId: object.result.object.objectId!,\n\t\t\t\t\t\tversion: object.result.object.version?.toString()!,\n\t\t\t\t\t\tdigest: object.result.object.digest!,\n\t\t\t\t\t\tcontent: bcsContent as SuiClientTypes.Object<Include>['content'],\n\t\t\t\t\t\towner: mapOwner(object.result.object.owner)!,\n\t\t\t\t\t\ttype,\n\t\t\t\t\t\tpreviousTransaction: (object.result.object.previousTransaction ??\n\t\t\t\t\t\t\tundefined) as SuiClientTypes.Object<Include>['previousTransaction'],\n\t\t\t\t\t\tobjectBcs: objectBcs as SuiClientTypes.Object<Include>['objectBcs'],\n\t\t\t\t\t\tjson: jsonContent as SuiClientTypes.Object<Include>['json'],\n\t\t\t\t\t\tdisplay: displayData as SuiClientTypes.Object<Include>['display'],\n\t\t\t\t\t};\n\t\t\t\t}),\n\t\t\t);\n\t\t}\n\n\t\treturn {\n\t\t\tobjects: results,\n\t\t};\n\t}\n\tasync listOwnedObjects<Include extends SuiClientTypes.ObjectInclude = {}>(\n\t\toptions: SuiClientTypes.ListOwnedObjectsOptions<Include>,\n\t): Promise<SuiClientTypes.ListOwnedObjectsResponse<Include>> {\n\t\tconst paths = ['owner', 'object_type', 'digest', 'version', 'object_id'];\n\t\tif (options.include?.content) {\n\t\t\tpaths.push('contents');\n\t\t}\n\t\tif (options.include?.previousTransaction) {\n\t\t\tpaths.push('previous_transaction');\n\t\t}\n\t\tif (options.include?.objectBcs) {\n\t\t\tpaths.push('bcs');\n\t\t}\n\t\tif (options.include?.json) {\n\t\t\tpaths.push('json');\n\t\t}\n\t\tif (options.include?.display) {\n\t\t\tpaths.push('display');\n\t\t}\n\n\t\tconst response = await this.#client.stateService.listOwnedObjects({\n\t\t\towner: options.owner,\n\t\t\tobjectType: options.type\n\t\t\t\t? (await this.mvr.resolveType({ type: options.type })).type\n\t\t\t\t: undefined,\n\t\t\tpageToken: options.cursor ? fromBase64(options.cursor) : undefined,\n\t\t\tpageSize: options.limit,\n\t\t\treadMask: {\n\t\t\t\tpaths,\n\t\t\t},\n\t\t});\n\n\t\tconst objects = response.response.objects.map(\n\t\t\t(object): SuiClientTypes.Object<Include> => ({\n\t\t\t\tobjectId: object.objectId!,\n\t\t\t\tversion: object.version?.toString()!,\n\t\t\t\tdigest: object.digest!,\n\t\t\t\tcontent: object.contents?.value as SuiClientTypes.Object<Include>['content'],\n\t\t\t\towner: mapOwner(object.owner)!,\n\t\t\t\ttype: object.objectType!,\n\t\t\t\tpreviousTransaction: (object.previousTransaction ??\n\t\t\t\t\tundefined) as SuiClientTypes.Object<Include>['previousTransaction'],\n\t\t\t\tobjectBcs: object.bcs?.value as SuiClientTypes.Object<Include>['objectBcs'],\n\t\t\t\tjson: (options.include?.json\n\t\t\t\t\t? object.json\n\t\t\t\t\t\t? (Value.toJson(object.json) as Record<string, unknown>)\n\t\t\t\t\t\t: null\n\t\t\t\t\t: undefined) as SuiClientTypes.Object<Include>['json'],\n\t\t\t\tdisplay: mapDisplayProto(\n\t\t\t\t\toptions.include?.display,\n\t\t\t\t\tobject.display,\n\t\t\t\t) as SuiClientTypes.Object<Include>['display'],\n\t\t\t}),\n\t\t);\n\n\t\treturn {\n\t\t\tobjects,\n\t\t\tcursor: response.response.nextPageToken ? toBase64(response.response.nextPageToken) : null,\n\t\t\thasNextPage: response.response.nextPageToken !== undefined,\n\t\t};\n\t}\n\tasync listCoins(\n\t\toptions: SuiClientTypes.ListCoinsOptions,\n\t): Promise<SuiClientTypes.ListCoinsResponse> {\n\t\tconst paths = ['owner', 'object_type', 'digest', 'version', 'object_id', 'balance'];\n\t\tconst coinType = options.coinType ?? SUI_TYPE_ARG;\n\n\t\tconst response = await this.#client.stateService.listOwnedObjects({\n\t\t\towner: options.owner,\n\t\t\tobjectType: `0x2::coin::Coin<${(await this.mvr.resolveType({ type: coinType })).type}>`,\n\t\t\tpageToken: options.cursor ? fromBase64(options.cursor) : undefined,\n\t\t\tpageSize: options.limit,\n\t\t\treadMask: {\n\t\t\t\tpaths,\n\t\t\t},\n\t\t});\n\n\t\treturn {\n\t\t\tobjects: response.response.objects.map(\n\t\t\t\t(object): SuiClientTypes.Coin => ({\n\t\t\t\t\tobjectId: object.objectId!,\n\t\t\t\t\tversion: object.version?.toString()!,\n\t\t\t\t\tdigest: object.digest!,\n\t\t\t\t\towner: mapOwner(object.owner)!,\n\t\t\t\t\ttype: object.objectType!,\n\t\t\t\t\tbalance: object.balance?.toString()!,\n\t\t\t\t}),\n\t\t\t),\n\t\t\tcursor: response.response.nextPageToken ? toBase64(response.response.nextPageToken) : null,\n\t\t\thasNextPage: response.response.nextPageToken !== undefined,\n\t\t};\n\t}\n\n\tasync getBalance(\n\t\toptions: SuiClientTypes.GetBalanceOptions,\n\t): Promise<SuiClientTypes.GetBalanceResponse> {\n\t\tconst coinType = options.coinType ?? SUI_TYPE_ARG;\n\t\tconst result = await this.#client.stateService.getBalance({\n\t\t\towner: options.owner,\n\t\t\tcoinType: (await this.mvr.resolveType({ type: coinType })).type,\n\t\t});\n\n\t\treturn {\n\t\t\tbalance: {\n\t\t\t\tbalance: result.response.balance?.balance?.toString() ?? '0',\n\t\t\t\tcoinType: result.response.balance?.coinType ?? coinType,\n\t\t\t\tcoinBalance: result.response.balance?.coinBalance?.toString() ?? '0',\n\t\t\t\taddressBalance: result.response.balance?.addressBalance?.toString() ?? '0',\n\t\t\t},\n\t\t};\n\t}\n\n\tasync getCoinMetadata(\n\t\toptions: SuiClientTypes.GetCoinMetadataOptions,\n\t): Promise<SuiClientTypes.GetCoinMetadataResponse> {\n\t\tconst coinType = (await this.mvr.resolveType({ type: options.coinType })).type;\n\n\t\tlet response;\n\t\ttry {\n\t\t\t({ response } = await this.#client.stateService.getCoinInfo({\n\t\t\t\tcoinType,\n\t\t\t}));\n\t\t} catch {\n\t\t\treturn { coinMetadata: null };\n\t\t}\n\n\t\tif (!response.metadata) {\n\t\t\treturn { coinMetadata: null };\n\t\t}\n\n\t\treturn {\n\t\t\tcoinMetadata: {\n\t\t\t\tid: response.metadata.id ?? null,\n\t\t\t\tdecimals: response.metadata.decimals ?? 0,\n\t\t\t\tname: response.metadata.name ?? '',\n\t\t\t\tsymbol: response.metadata.symbol ?? '',\n\t\t\t\tdescription: response.metadata.description ?? '',\n\t\t\t\ticonUrl: response.metadata.iconUrl ?? null,\n\t\t\t},\n\t\t};\n\t}\n\n\tasync listBalances(\n\t\toptions: SuiClientTypes.ListBalancesOptions,\n\t): Promise<SuiClientTypes.ListBalancesResponse> {\n\t\tconst result = await this.#client.stateService.listBalances({\n\t\t\towner: options.owner,\n\t\t\tpageToken: options.cursor ? fromBase64(options.cursor) : undefined,\n\t\t\tpageSize: options.limit,\n\t\t});\n\n\t\treturn {\n\t\t\thasNextPage: !!result.response.nextPageToken,\n\t\t\tcursor: result.response.nextPageToken ? toBase64(result.response.nextPageToken) : null,\n\t\t\tbalances: result.response.balances.map((balance) => ({\n\t\t\t\tbalance: balance.balance?.toString() ?? '0',\n\t\t\t\tcoinType: balance.coinType!,\n\t\t\t\tcoinBalance: balance.coinBalance?.toString() ?? '0',\n\t\t\t\taddressBalance: balance.addressBalance?.toString() ?? '0',\n\t\t\t})),\n\t\t};\n\t}\n\tasync getTransaction<Include extends SuiClientTypes.TransactionInclude = {}>(\n\t\toptions: SuiClientTypes.GetTransactionOptions<Include>,\n\t): Promise<SuiClientTypes.TransactionResult<Include>> {\n\t\tconst paths = ['digest', 'transaction.digest', 'signatures', 'effects.status'];\n\t\tif (options.include?.transaction) {\n\t\t\tpaths.push(\n\t\t\t\t'transaction.sender',\n\t\t\t\t'transaction.gas_payment',\n\t\t\t\t'transaction.expiration',\n\t\t\t\t'transaction.kind',\n\t\t\t);\n\t\t}\n\t\tif (options.include?.bcs) {\n\t\t\tpaths.push('transaction.bcs');\n\t\t}\n\t\tif (options.include?.balanceChanges) {\n\t\t\tpaths.push('balance_changes');\n\t\t}\n\t\tif (options.include?.effects) {\n\t\t\tpaths.push('effects');\n\t\t}\n\t\tif (options.include?.events) {\n\t\t\tpaths.push('events');\n\t\t}\n\t\tif (options.include?.objectTypes) {\n\t\t\tpaths.push('effects.changed_objects.object_type');\n\t\t\tpaths.push('effects.changed_objects.object_id');\n\t\t}\n\n\t\tconst { response } = await this.#client.ledgerService.getTransaction({\n\t\t\tdigest: options.digest,\n\t\t\treadMask: {\n\t\t\t\tpaths,\n\t\t\t},\n\t\t});\n\n\t\tif (!response.transaction) {\n\t\t\tthrow new Error(`Transaction ${options.digest} not found`);\n\t\t}\n\n\t\treturn parseTransaction(response.transaction, 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 paths = ['digest', 'transaction.digest', 'signatures', 'effects.status'];\n\t\tif (options.include?.transaction) {\n\t\t\tpaths.push(\n\t\t\t\t'transaction.sender',\n\t\t\t\t'transaction.gas_payment',\n\t\t\t\t'transaction.expiration',\n\t\t\t\t'transaction.kind',\n\t\t\t);\n\t\t}\n\t\tif (options.include?.bcs) {\n\t\t\tpaths.push('transaction.bcs');\n\t\t}\n\t\tif (options.include?.balanceChanges) {\n\t\t\tpaths.push('balance_changes');\n\t\t}\n\t\tif (options.include?.effects) {\n\t\t\tpaths.push('effects');\n\t\t}\n\t\tif (options.include?.events) {\n\t\t\tpaths.push('events');\n\t\t}\n\t\tif (options.include?.objectTypes) {\n\t\t\tpaths.push('effects.changed_objects.object_type');\n\t\t\tpaths.push('effects.changed_objects.object_id');\n\t\t}\n\n\t\tconst { response } = await this.#client.transactionExecutionService.executeTransaction({\n\t\t\ttransaction: {\n\t\t\t\tbcs: {\n\t\t\t\t\tvalue: options.transaction,\n\t\t\t\t},\n\t\t\t},\n\t\t\tsignatures: options.signatures.map((signature) => ({\n\t\t\t\tbcs: {\n\t\t\t\t\tvalue: fromBase64(signature),\n\t\t\t\t},\n\t\t\t\tsignature: {\n\t\t\t\t\toneofKind: undefined,\n\t\t\t\t},\n\t\t\t})),\n\t\t\treadMask: {\n\t\t\t\tpaths,\n\t\t\t},\n\t\t});\n\n\t\treturn parseTransaction(response.transaction!, options.include);\n\t}\n\tasync simulateTransaction<Include extends SuiClientTypes.SimulateTransactionInclude = {}>(\n\t\toptions: SuiClientTypes.SimulateTransactionOptions<Include>,\n\t): Promise<SuiClientTypes.SimulateTransactionResult<Include>> {\n\t\tconst paths = [\n\t\t\t'transaction.digest',\n\t\t\t'transaction.transaction.digest',\n\t\t\t'transaction.signatures',\n\t\t\t'transaction.effects.status',\n\t\t];\n\t\tif (options.include?.transaction) {\n\t\t\tpaths.push(\n\t\t\t\t'transaction.transaction.sender',\n\t\t\t\t'transaction.transaction.gas_payment',\n\t\t\t\t'transaction.transaction.expiration',\n\t\t\t\t'transaction.transaction.kind',\n\t\t\t);\n\t\t}\n\t\tif (options.include?.bcs) {\n\t\t\tpaths.push('transaction.transaction.bcs');\n\t\t}\n\t\tif (options.include?.balanceChanges) {\n\t\t\tpaths.push('transaction.balance_changes');\n\t\t}\n\t\tif (options.include?.effects) {\n\t\t\tpaths.push('transaction.effects');\n\t\t}\n\t\tif (options.include?.events) {\n\t\t\tpaths.push('transaction.events');\n\t\t}\n\t\tif (options.include?.objectTypes) {\n\t\t\t// Use effects.changed_objects to match JSON-RPC behavior (which uses objectChanges)\n\t\t\tpaths.push('transaction.effects.changed_objects.object_type');\n\t\t\tpaths.push('transaction.effects.changed_objects.object_id');\n\t\t}\n\t\tif (options.include?.commandResults) {\n\t\t\tpaths.push('command_outputs');\n\t\t}\n\n\t\tif (!(options.transaction instanceof Uint8Array)) {\n\t\t\tawait options.transaction.prepareForSerialization({ client: this });\n\t\t}\n\n\t\tconst { response } = await this.#client.transactionExecutionService.simulateTransaction({\n\t\t\ttransaction:\n\t\t\t\toptions.transaction instanceof Uint8Array\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tbcs: {\n\t\t\t\t\t\t\t\tvalue: options.transaction,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}\n\t\t\t\t\t: transactionToGrpcTransaction(options.transaction),\n\t\t\treadMask: {\n\t\t\t\tpaths,\n\t\t\t},\n\t\t\tdoGasSelection: false,\n\t\t\tchecks:\n\t\t\t\toptions.checksEnabled === false\n\t\t\t\t\t? SimulateTransactionRequest_TransactionChecks.DISABLED\n\t\t\t\t\t: SimulateTransactionRequest_TransactionChecks.ENABLED,\n\t\t});\n\n\t\tconst transactionResult = parseTransaction(response.transaction!, options.include);\n\n\t\t// Add command results if requested\n\t\tconst commandResults =\n\t\t\toptions.include?.commandResults && response.commandOutputs\n\t\t\t\t? response.commandOutputs.map((output) => ({\n\t\t\t\t\t\treturnValues: (output.returnValues ?? []).map((rv) => ({\n\t\t\t\t\t\t\tbcs: rv.value?.value ?? null,\n\t\t\t\t\t\t})),\n\t\t\t\t\t\tmutatedReferences: (output.mutatedByRef ?? []).map((mr) => ({\n\t\t\t\t\t\t\tbcs: mr.value?.value ?? 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 response = await this.#client.ledgerService.getEpoch({\n\t\t\treadMask: {\n\t\t\t\tpaths: ['reference_gas_price'],\n\t\t\t},\n\t\t});\n\n\t\treturn {\n\t\t\treferenceGasPrice: response.response.epoch?.referenceGasPrice?.toString() ?? '',\n\t\t};\n\t}\n\n\tasync getProtocolConfig(): Promise<SuiClientTypes.GetProtocolConfigResponse> {\n\t\tconst response = await this.#client.ledgerService.getEpoch({\n\t\t\treadMask: { paths: ['protocol_config'] },\n\t\t});\n\n\t\tconst protocolConfig = response.response.epoch?.protocolConfig;\n\t\tif (!protocolConfig) {\n\t\t\tthrow new Error('Protocol config not found in response');\n\t\t}\n\n\t\tconst featureFlags: Record<string, boolean> = { ...protocolConfig.featureFlags };\n\t\tconst attributes: Record<string, string | null> = {};\n\t\tif (protocolConfig.attributes) {\n\t\t\tfor (const [key, value] of Object.entries(protocolConfig.attributes)) {\n\t\t\t\tattributes[key] = value ?? null;\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tprotocolConfig: {\n\t\t\t\tprotocolVersion: protocolConfig.protocolVersion?.toString() ?? (null as never),\n\t\t\t\tfeatureFlags,\n\t\t\t\tattributes,\n\t\t\t},\n\t\t};\n\t}\n\n\tasync getCurrentSystemState(): Promise<SuiClientTypes.GetCurrentSystemStateResponse> {\n\t\tconst response = await this.#client.ledgerService.getEpoch({\n\t\t\treadMask: {\n\t\t\t\tpaths: [\n\t\t\t\t\t'system_state.version',\n\t\t\t\t\t'system_state.epoch',\n\t\t\t\t\t'system_state.protocol_version',\n\t\t\t\t\t'system_state.reference_gas_price',\n\t\t\t\t\t'system_state.epoch_start_timestamp_ms',\n\t\t\t\t\t'system_state.safe_mode',\n\t\t\t\t\t'system_state.safe_mode_storage_rewards',\n\t\t\t\t\t'system_state.safe_mode_computation_rewards',\n\t\t\t\t\t'system_state.safe_mode_storage_rebates',\n\t\t\t\t\t'system_state.safe_mode_non_refundable_storage_fee',\n\t\t\t\t\t'system_state.parameters',\n\t\t\t\t\t'system_state.storage_fund',\n\t\t\t\t\t'system_state.stake_subsidy',\n\t\t\t\t],\n\t\t\t},\n\t\t});\n\n\t\tconst epoch = response.response.epoch;\n\t\tconst systemState = epoch?.systemState;\n\t\tif (!systemState) {\n\t\t\tthrow new Error('System state not found in response');\n\t\t}\n\n\t\tconst startMs = epoch?.start?.seconds\n\t\t\t? Number(epoch.start.seconds) * 1000 + Math.floor((epoch.start.nanos || 0) / 1_000_000)\n\t\t\t: systemState.epochStartTimestampMs\n\t\t\t\t? Number(systemState.epochStartTimestampMs)\n\t\t\t\t: (null as never);\n\n\t\treturn {\n\t\t\tsystemState: {\n\t\t\t\tsystemStateVersion: systemState.version?.toString() ?? (null as never),\n\t\t\t\tepoch: systemState.epoch?.toString() ?? (null as never),\n\t\t\t\tprotocolVersion: systemState.protocolVersion?.toString() ?? (null as never),\n\t\t\t\treferenceGasPrice: systemState.referenceGasPrice?.toString() ?? (null as never),\n\t\t\t\tepochStartTimestampMs: startMs.toString(),\n\t\t\t\tsafeMode: systemState.safeMode ?? false,\n\t\t\t\tsafeModeStorageRewards: systemState.safeModeStorageRewards?.toString() ?? (null as never),\n\t\t\t\tsafeModeComputationRewards:\n\t\t\t\t\tsystemState.safeModeComputationRewards?.toString() ?? (null as never),\n\t\t\t\tsafeModeStorageRebates: systemState.safeModeStorageRebates?.toString() ?? (null as never),\n\t\t\t\tsafeModeNonRefundableStorageFee:\n\t\t\t\t\tsystemState.safeModeNonRefundableStorageFee?.toString() ?? (null as never),\n\t\t\t\tparameters: {\n\t\t\t\t\tepochDurationMs: systemState.parameters?.epochDurationMs?.toString() ?? (null as never),\n\t\t\t\t\tstakeSubsidyStartEpoch:\n\t\t\t\t\t\tsystemState.parameters?.stakeSubsidyStartEpoch?.toString() ?? (null as never),\n\t\t\t\t\tmaxValidatorCount:\n\t\t\t\t\t\tsystemState.parameters?.maxValidatorCount?.toString() ?? (null as never),\n\t\t\t\t\tminValidatorJoiningStake:\n\t\t\t\t\t\tsystemState.parameters?.minValidatorJoiningStake?.toString() ?? (null as never),\n\t\t\t\t\tvalidatorLowStakeThreshold:\n\t\t\t\t\t\tsystemState.parameters?.validatorLowStakeThreshold?.toString() ?? (null as never),\n\t\t\t\t\tvalidatorLowStakeGracePeriod:\n\t\t\t\t\t\tsystemState.parameters?.validatorLowStakeGracePeriod?.toString() ?? (null as never),\n\t\t\t\t},\n\t\t\t\tstorageFund: {\n\t\t\t\t\ttotalObjectStorageRebates:\n\t\t\t\t\t\tsystemState.storageFund?.totalObjectStorageRebates?.toString() ?? (null as never),\n\t\t\t\t\tnonRefundableBalance:\n\t\t\t\t\t\tsystemState.storageFund?.nonRefundableBalance?.toString() ?? (null as never),\n\t\t\t\t},\n\t\t\t\tstakeSubsidy: {\n\t\t\t\t\tbalance: systemState.stakeSubsidy?.balance?.toString() ?? (null as never),\n\t\t\t\t\tdistributionCounter:\n\t\t\t\t\t\tsystemState.stakeSubsidy?.distributionCounter?.toString() ?? (null as never),\n\t\t\t\t\tcurrentDistributionAmount:\n\t\t\t\t\t\tsystemState.stakeSubsidy?.currentDistributionAmount?.toString() ?? (null as never),\n\t\t\t\t\tstakeSubsidyPeriodLength:\n\t\t\t\t\t\tsystemState.stakeSubsidy?.stakeSubsidyPeriodLength?.toString() ?? (null as never),\n\t\t\t\t\tstakeSubsidyDecreaseRate:\n\t\t\t\t\t\tsystemState.stakeSubsidy?.stakeSubsidyDecreaseRate ?? (null as never),\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n\n\tasync listDynamicFields(\n\t\toptions: SuiClientTypes.ListDynamicFieldsOptions,\n\t): Promise<SuiClientTypes.ListDynamicFieldsResponse> {\n\t\treturn this.#client.listDynamicFields(options);\n\t}\n\n\tasync verifyZkLoginSignature(\n\t\toptions: SuiClientTypes.VerifyZkLoginSignatureOptions,\n\t): Promise<SuiClientTypes.ZkLoginVerifyResponse> {\n\t\tconst messageBytes = fromBase64(options.bytes);\n\n\t\t// For PersonalMessage, the server expects BCS-encoded vector<u8>\n\t\t// For TransactionData, the server expects the raw BCS-encoded TransactionData as-is\n\t\tconst messageValue =\n\t\t\toptions.intentScope === 'PersonalMessage'\n\t\t\t\t? bcs.byteVector().serialize(messageBytes).toBytes()\n\t\t\t\t: messageBytes;\n\n\t\tconst { response } = await this.#client.signatureVerificationService.verifySignature({\n\t\t\tmessage: {\n\t\t\t\tname: options.intentScope,\n\t\t\t\tvalue: messageValue,\n\t\t\t},\n\t\t\tsignature: {\n\t\t\t\tbcs: {\n\t\t\t\t\tvalue: fromBase64(options.signature),\n\t\t\t\t},\n\t\t\t\tsignature: {\n\t\t\t\t\toneofKind: undefined,\n\t\t\t\t},\n\t\t\t},\n\t\t\taddress: options.address,\n\t\t\tjwks: [],\n\t\t});\n\n\t\treturn {\n\t\t\tsuccess: response.isValid ?? false,\n\t\t\terrors: response.reason ? [response.reason] : [],\n\t\t};\n\t}\n\n\tasync defaultNameServiceName(\n\t\toptions: SuiClientTypes.DefaultNameServiceNameOptions,\n\t): Promise<SuiClientTypes.DefaultNameServiceNameResponse> {\n\t\tconst name =\n\t\t\t(\n\t\t\t\tawait this.#client.nameService.reverseLookupName({\n\t\t\t\t\taddress: options.address,\n\t\t\t\t})\n\t\t\t).response.record?.name ?? null;\n\t\treturn {\n\t\t\tdata: {\n\t\t\t\tname,\n\t\t\t},\n\t\t};\n\t}\n\n\tasync getMoveFunction(\n\t\toptions: SuiClientTypes.GetMoveFunctionOptions,\n\t): Promise<SuiClientTypes.GetMoveFunctionResponse> {\n\t\tconst resolvedPackageId = (await this.mvr.resolvePackage({ package: options.packageId }))\n\t\t\t.package;\n\t\tconst { response } = await this.#client.movePackageService.getFunction({\n\t\t\tpackageId: resolvedPackageId,\n\t\t\tmoduleName: options.moduleName,\n\t\t\tname: options.name,\n\t\t});\n\n\t\tlet visibility: 'public' | 'private' | 'friend' | 'unknown' = 'unknown';\n\n\t\tswitch (response.function?.visibility) {\n\t\t\tcase FunctionDescriptor_Visibility.PUBLIC:\n\t\t\t\tvisibility = 'public';\n\t\t\t\tbreak;\n\t\t\tcase FunctionDescriptor_Visibility.PRIVATE:\n\t\t\t\tvisibility = 'private';\n\t\t\t\tbreak;\n\t\t\tcase FunctionDescriptor_Visibility.FRIEND:\n\t\t\t\tvisibility = 'friend';\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn {\n\t\t\tfunction: {\n\t\t\t\tpackageId: normalizeSuiAddress(resolvedPackageId),\n\t\t\t\tmoduleName: options.moduleName,\n\t\t\t\tname: response.function?.name!,\n\t\t\t\tvisibility,\n\t\t\t\tisEntry: response.function?.isEntry ?? false,\n\t\t\t\ttypeParameters:\n\t\t\t\t\tresponse.function?.typeParameters?.map(({ constraints }) => ({\n\t\t\t\t\t\tisPhantom: false,\n\t\t\t\t\t\tconstraints:\n\t\t\t\t\t\t\tconstraints.map((constraint) => {\n\t\t\t\t\t\t\t\tswitch (constraint) {\n\t\t\t\t\t\t\t\t\tcase Ability.COPY:\n\t\t\t\t\t\t\t\t\t\treturn 'copy';\n\t\t\t\t\t\t\t\t\tcase Ability.DROP:\n\t\t\t\t\t\t\t\t\t\treturn 'drop';\n\t\t\t\t\t\t\t\t\tcase Ability.STORE:\n\t\t\t\t\t\t\t\t\t\treturn 'store';\n\t\t\t\t\t\t\t\t\tcase Ability.KEY:\n\t\t\t\t\t\t\t\t\t\treturn 'key';\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\treturn 'unknown';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}) ?? [],\n\t\t\t\t\t})) ?? [],\n\t\t\t\tparameters:\n\t\t\t\t\tresponse.function?.parameters?.map((param) => parseNormalizedSuiMoveType(param)) ?? [],\n\t\t\t\treturns: response.function?.returns?.map((ret) => parseNormalizedSuiMoveType(ret)) ?? [],\n\t\t\t},\n\t\t};\n\t}\n\n\tasync getChainIdentifier(\n\t\t_options?: SuiClientTypes.GetChainIdentifierOptions,\n\t): Promise<SuiClientTypes.GetChainIdentifierResponse> {\n\t\treturn this.cache.read(['chainIdentifier'], async () => {\n\t\t\tconst { response } = await this.#client.ledgerService.getServiceInfo({});\n\t\t\tif (!response.chainId) {\n\t\t\t\tthrow new Error('Chain identifier not found in service info');\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tchainIdentifier: response.chainId,\n\t\t\t};\n\t\t});\n\t}\n\n\tresolveTransactionPlugin() {\n\t\tconst client = this.#client;\n\t\treturn async function resolveTransactionData(\n\t\t\ttransactionData: TransactionDataBuilder,\n\t\t\toptions: BuildTransactionOptions,\n\t\t\tnext: () => Promise<void>,\n\t\t) {\n\t\t\tconst snapshot = transactionData.snapshot();\n\t\t\t// If sender is not set, use a dummy address for resolution purposes\n\t\t\t// The resolved transaction will not include the sender if it wasn't set originally\n\t\t\tif (!snapshot.sender) {\n\t\t\t\tsnapshot.sender = '0x0000000000000000000000000000000000000000000000000000000000000000';\n\t\t\t}\n\t\t\tconst grpcTransaction = transactionDataToGrpcTransaction(snapshot);\n\n\t\t\tlet response;\n\t\t\ttry {\n\t\t\t\tconst result = await client.transactionExecutionService.simulateTransaction({\n\t\t\t\t\ttransaction: grpcTransaction,\n\t\t\t\t\tdoGasSelection:\n\t\t\t\t\t\t!options.onlyTransactionKind &&\n\t\t\t\t\t\t(snapshot.gasData.budget == null || snapshot.gasData.payment == null),\n\t\t\t\t\t// Kind-only txns are never executed directly and do not have sender, so skip validation checks.\n\t\t\t\t\tchecks: options.onlyTransactionKind\n\t\t\t\t\t\t? SimulateTransactionRequest_TransactionChecks.DISABLED\n\t\t\t\t\t\t: SimulateTransactionRequest_TransactionChecks.ENABLED,\n\t\t\t\t\treadMask: {\n\t\t\t\t\t\tpaths: [\n\t\t\t\t\t\t\t'transaction.transaction.sender',\n\t\t\t\t\t\t\t'transaction.transaction.gas_payment',\n\t\t\t\t\t\t\t'transaction.transaction.expiration',\n\t\t\t\t\t\t\t'transaction.transaction.kind',\n\t\t\t\t\t\t\t'transaction.effects.status',\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t\tresponse = result.response;\n\t\t\t} catch (error) {\n\t\t\t\t// https://github.com/timostamm/protobuf-ts/pull/739\n\t\t\t\tif (error instanceof Error && error.message) {\n\t\t\t\t\tthrow new SimulationError(decodeURIComponent(error.message), { cause: error });\n\t\t\t\t}\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t!options.onlyTransactionKind &&\n\t\t\t\tresponse.transaction?.effects?.status &&\n\t\t\t\t!response.transaction.effects.status.success\n\t\t\t) {\n\t\t\t\tconst executionError = response.transaction.effects.status.error\n\t\t\t\t\t? parseGrpcExecutionError(response.transaction.effects.status.error)\n\t\t\t\t\t: undefined;\n\t\t\t\tconst errorMessage = executionError?.message ?? 'Transaction failed';\n\t\t\t\tthrow new SimulationError(`Transaction resolution failed: ${errorMessage}`, {\n\t\t\t\t\texecutionError,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (!response.transaction?.transaction) {\n\t\t\t\tthrow new Error('simulateTransaction did not return resolved transaction data');\n\t\t\t}\n\n\t\t\tapplyGrpcResolvedTransaction(transactionData, response.transaction.transaction, options);\n\n\t\t\treturn await next();\n\t\t};\n\t}\n}\n\nfunction mapDisplayProto(\n\tinclude: boolean | undefined,\n\tdisplay: { output?: Value; errors?: Value } | undefined,\n): SuiClientTypes.Display | null | undefined {\n\tif (!include) return undefined;\n\tif (display === undefined) return null;\n\treturn {\n\t\toutput:\n\t\t\tdisplay.output !== undefined\n\t\t\t\t? (Value.toJson(display.output) as Record<string, unknown> | null)\n\t\t\t\t: null,\n\t\terrors:\n\t\t\tdisplay.errors !== undefined\n\t\t\t\t? (Value.toJson(display.errors) as Record<string, string> | null)\n\t\t\t\t: null,\n\t};\n}\n\nfunction mapOwner(owner: Owner | null | undefined): SuiClientTypes.ObjectOwner | null {\n\tif (!owner) {\n\t\treturn null;\n\t}\n\tif (owner.kind === Owner_OwnerKind.IMMUTABLE) {\n\t\treturn {\n\t\t\t$kind: 'Immutable',\n\t\t\tImmutable: true,\n\t\t};\n\t}\n\tif (owner.kind === Owner_OwnerKind.ADDRESS) {\n\t\treturn {\n\t\t\tAddressOwner: owner.address!,\n\t\t\t$kind: 'AddressOwner',\n\t\t};\n\t}\n\tif (owner.kind === Owner_OwnerKind.OBJECT) {\n\t\treturn {\n\t\t\t$kind: 'ObjectOwner',\n\t\t\tObjectOwner: owner.address!,\n\t\t};\n\t}\n\n\tif (owner.kind === Owner_OwnerKind.SHARED) {\n\t\treturn {\n\t\t\t$kind: 'Shared',\n\t\t\tShared: {\n\t\t\t\tinitialSharedVersion: owner.version?.toString()!,\n\t\t\t},\n\t\t};\n\t}\n\n\tif (owner.kind === Owner_OwnerKind.CONSENSUS_ADDRESS) {\n\t\treturn {\n\t\t\t$kind: 'ConsensusAddressOwner',\n\t\t\tConsensusAddressOwner: {\n\t\t\t\tstartVersion: owner.version?.toString()!,\n\t\t\t\towner: owner.address!,\n\t\t\t},\n\t\t};\n\t}\n\n\tthrow new Error(\n\t\t`Unknown owner kind ${JSON.stringify(owner, (_k, v) => (typeof v === 'bigint' ? v.toString() : v))}`,\n\t);\n}\n\nfunction parseGrpcExecutionError(error: GrpcExecutionError): SuiClientTypes.ExecutionError {\n\tconst message = error.description ?? 'Unknown error';\n\tconst command = error.command != null ? Number(error.command) : undefined;\n\tconst details = error.errorDetails;\n\n\tswitch (details?.oneofKind) {\n\t\tcase 'abort': {\n\t\t\tconst abort = details.abort;\n\t\t\tconst cleverError = abort.cleverError;\n\t\t\treturn {\n\t\t\t\t$kind: 'MoveAbort',\n\t\t\t\tmessage: formatMoveAbortMessage({\n\t\t\t\t\tcommand,\n\t\t\t\t\tlocation: abort.location,\n\t\t\t\t\tabortCode: String(abort.abortCode ?? 0n),\n\t\t\t\t\tcleverError: cleverError\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tlineNumber:\n\t\t\t\t\t\t\t\t\tcleverError.lineNumber != null ? Number(cleverError.lineNumber) : undefined,\n\t\t\t\t\t\t\t\tconstantName: cleverError.constantName,\n\t\t\t\t\t\t\t\tvalue:\n\t\t\t\t\t\t\t\t\tcleverError.value?.oneofKind === 'rendered'\n\t\t\t\t\t\t\t\t\t\t? cleverError.value.rendered\n\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: undefined,\n\t\t\t\t}),\n\t\t\t\tcommand,\n\t\t\t\tMoveAbort: parseMoveAbort(abort),\n\t\t\t};\n\t\t}\n\n\t\tcase 'sizeError':\n\t\t\treturn {\n\t\t\t\t$kind: 'SizeError',\n\t\t\t\tmessage,\n\t\t\t\tcommand,\n\t\t\t\tSizeError: {\n\t\t\t\t\tname: mapErrorName(error.kind),\n\t\t\t\t\tsize: Number(details.sizeError.size ?? 0n),\n\t\t\t\t\tmaxSize: Number(details.sizeError.maxSize ?? 0n),\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'commandArgumentError':\n\t\t\treturn {\n\t\t\t\t$kind: 'CommandArgumentError',\n\t\t\t\tmessage,\n\t\t\t\tcommand,\n\t\t\t\tCommandArgumentError: {\n\t\t\t\t\targument: details.commandArgumentError.argument ?? 0,\n\t\t\t\t\tname: mapErrorName(details.commandArgumentError.kind),\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'typeArgumentError':\n\t\t\treturn {\n\t\t\t\t$kind: 'TypeArgumentError',\n\t\t\t\tmessage,\n\t\t\t\tcommand,\n\t\t\t\tTypeArgumentError: {\n\t\t\t\t\ttypeArgument: details.typeArgumentError.typeArgument ?? 0,\n\t\t\t\t\tname: mapErrorName(details.typeArgumentError.kind),\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'packageUpgradeError':\n\t\t\treturn {\n\t\t\t\t$kind: 'PackageUpgradeError',\n\t\t\t\tmessage,\n\t\t\t\tcommand,\n\t\t\t\tPackageUpgradeError: {\n\t\t\t\t\tname: mapErrorName(details.packageUpgradeError.kind),\n\t\t\t\t\tpackageId: details.packageUpgradeError.packageId,\n\t\t\t\t\tdigest: details.packageUpgradeError.digest,\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'indexError':\n\t\t\treturn {\n\t\t\t\t$kind: 'IndexError',\n\t\t\t\tmessage,\n\t\t\t\tcommand,\n\t\t\t\tIndexError: {\n\t\t\t\t\tindex: details.indexError.index,\n\t\t\t\t\tsubresult: details.indexError.subresult,\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'coinDenyListError':\n\t\t\treturn {\n\t\t\t\t$kind: 'CoinDenyListError',\n\t\t\t\tmessage,\n\t\t\t\tcommand,\n\t\t\t\tCoinDenyListError: {\n\t\t\t\t\tname: mapErrorName(error.kind),\n\t\t\t\t\tcoinType: details.coinDenyListError.coinType!,\n\t\t\t\t\taddress: details.coinDenyListError.address,\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'congestedObjects':\n\t\t\treturn {\n\t\t\t\t$kind: 'CongestedObjects',\n\t\t\t\tmessage,\n\t\t\t\tcommand,\n\t\t\t\tCongestedObjects: {\n\t\t\t\t\tname: mapErrorName(error.kind),\n\t\t\t\t\tobjects: details.congestedObjects.objects,\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'objectId':\n\t\t\treturn {\n\t\t\t\t$kind: 'ObjectIdError',\n\t\t\t\tmessage,\n\t\t\t\tcommand,\n\t\t\t\tObjectIdError: {\n\t\t\t\t\tname: mapErrorName(error.kind),\n\t\t\t\t\tobjectId: details.objectId,\n\t\t\t\t},\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn {\n\t\t\t\t$kind: 'Unknown',\n\t\t\t\tmessage,\n\t\t\t\tcommand,\n\t\t\t\tUnknown: null,\n\t\t\t};\n\t}\n}\n\nfunction parseMoveAbort(abort: GrpcMoveAbort): SuiClientTypes.MoveAbort {\n\treturn {\n\t\tabortCode: String(abort.abortCode ?? 0n),\n\t\tlocation: { ...abort.location },\n\t\tcleverError: abort.cleverError\n\t\t\t? {\n\t\t\t\t\terrorCode:\n\t\t\t\t\t\tabort.cleverError.errorCode != null ? Number(abort.cleverError.errorCode) : undefined,\n\t\t\t\t\tlineNumber:\n\t\t\t\t\t\tabort.cleverError.lineNumber != null ? Number(abort.cleverError.lineNumber) : undefined,\n\t\t\t\t\tconstantName: abort.cleverError.constantName,\n\t\t\t\t\tconstantType: abort.cleverError.constantType,\n\t\t\t\t\tvalue:\n\t\t\t\t\t\tabort.cleverError.value?.oneofKind === 'rendered'\n\t\t\t\t\t\t\t? abort.cleverError.value.rendered\n\t\t\t\t\t\t\t: abort.cleverError.value?.oneofKind === 'raw'\n\t\t\t\t\t\t\t\t? toBase64(abort.cleverError.value.raw)\n\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t}\n\t\t\t: undefined,\n\t};\n}\n\nfunction mapErrorName(\n\tkind:\n\t\t| ExecutionError_ExecutionErrorKind\n\t\t| CommandArgumentError_CommandArgumentErrorKind\n\t\t| TypeArgumentError_TypeArgumentErrorKind\n\t\t| PackageUpgradeError_PackageUpgradeErrorKind\n\t\t| undefined,\n): string {\n\tif (kind == null) {\n\t\treturn 'Unknown';\n\t}\n\tconst name = CommandArgumentError_CommandArgumentErrorKind[kind];\n\tif (!name || name.endsWith('_UNKNOWN')) {\n\t\treturn 'Unknown';\n\t}\n\treturn name\n\t\t.split('_')\n\t\t.map((word) => word.charAt(0) + word.slice(1).toLowerCase())\n\t\t.join('');\n}\n\nfunction mapIdOperation(\n\toperation: ChangedObject_IdOperation | undefined,\n): null | 'Created' | 'Deleted' | 'Unknown' | 'None' {\n\tif (operation == null) {\n\t\treturn null;\n\t}\n\tswitch (operation) {\n\t\tcase ChangedObject_IdOperation.CREATED:\n\t\t\treturn 'Created';\n\t\tcase ChangedObject_IdOperation.DELETED:\n\t\t\treturn 'Deleted';\n\t\tcase ChangedObject_IdOperation.NONE:\n\t\tcase ChangedObject_IdOperation.ID_OPERATION_UNKNOWN:\n\t\t\treturn 'None';\n\t\tdefault:\n\t\t\toperation satisfies never;\n\t\t\treturn 'Unknown';\n\t}\n}\n\nfunction mapInputObjectState(\n\tstate: ChangedObject_InputObjectState | undefined,\n): null | 'Exists' | 'DoesNotExist' | 'Unknown' {\n\tif (state == null) {\n\t\treturn null;\n\t}\n\tswitch (state) {\n\t\tcase ChangedObject_InputObjectState.EXISTS:\n\t\t\treturn 'Exists';\n\t\tcase ChangedObject_InputObjectState.DOES_NOT_EXIST:\n\t\t\treturn 'DoesNotExist';\n\t\tcase ChangedObject_InputObjectState.UNKNOWN:\n\t\t\treturn 'Unknown';\n\t\tdefault:\n\t\t\tstate satisfies never;\n\t\t\treturn 'Unknown';\n\t}\n}\n\nfunction mapOutputObjectState(\n\tstate: ChangedObject_OutputObjectState | undefined,\n): null | 'ObjectWrite' | 'PackageWrite' | 'DoesNotExist' | 'AccumulatorWriteV1' | 'Unknown' {\n\tif (state == null) {\n\t\treturn null;\n\t}\n\tswitch (state) {\n\t\tcase ChangedObject_OutputObjectState.OBJECT_WRITE:\n\t\t\treturn 'ObjectWrite';\n\t\tcase ChangedObject_OutputObjectState.PACKAGE_WRITE:\n\t\t\treturn 'PackageWrite';\n\t\tcase ChangedObject_OutputObjectState.DOES_NOT_EXIST:\n\t\t\treturn 'DoesNotExist';\n\t\tcase ChangedObject_OutputObjectState.ACCUMULATOR_WRITE:\n\t\t\treturn 'AccumulatorWriteV1';\n\t\tcase ChangedObject_OutputObjectState.UNKNOWN:\n\t\t\treturn 'Unknown';\n\t\tdefault:\n\t\t\tstate satisfies never;\n\t\t\treturn 'Unknown';\n\t}\n}\n\nfunction mapUnchangedConsensusObjectKind(\n\tkind: UnchangedConsensusObject_UnchangedConsensusObjectKind | undefined,\n): null | SuiClientTypes.UnchangedConsensusObject['kind'] {\n\tif (kind == null) {\n\t\treturn null;\n\t}\n\tswitch (kind) {\n\t\tcase UnchangedConsensusObject_UnchangedConsensusObjectKind.UNCHANGED_CONSENSUS_OBJECT_KIND_UNKNOWN:\n\t\t\treturn 'Unknown';\n\t\tcase UnchangedConsensusObject_UnchangedConsensusObjectKind.READ_ONLY_ROOT:\n\t\t\treturn 'ReadOnlyRoot';\n\t\tcase UnchangedConsensusObject_UnchangedConsensusObjectKind.MUTATE_CONSENSUS_STREAM_ENDED:\n\t\t\treturn 'MutateConsensusStreamEnded';\n\t\tcase UnchangedConsensusObject_UnchangedConsensusObjectKind.READ_CONSENSUS_STREAM_ENDED:\n\t\t\treturn 'ReadConsensusStreamEnded';\n\t\tcase UnchangedConsensusObject_UnchangedConsensusObjectKind.CANCELED:\n\t\t\treturn 'Cancelled';\n\t\tcase UnchangedConsensusObject_UnchangedConsensusObjectKind.PER_EPOCH_CONFIG:\n\t\t\treturn 'PerEpochConfig';\n\t\tdefault:\n\t\t\tkind satisfies never;\n\t\t\treturn 'Unknown';\n\t}\n}\n\nexport function parseTransactionEffects({\n\teffects,\n}: {\n\teffects: TransactionEffects | undefined;\n}): SuiClientTypes.TransactionEffects | null {\n\tif (!effects) {\n\t\treturn null;\n\t}\n\n\tconst changedObjects = effects.changedObjects.map((change): SuiClientTypes.ChangedObject => {\n\t\treturn {\n\t\t\tobjectId: change.objectId!,\n\t\t\tinputState: mapInputObjectState(change.inputState)!,\n\t\t\tinputVersion: change.inputVersion?.toString() ?? null,\n\t\t\tinputDigest: change.inputDigest ?? null,\n\t\t\tinputOwner: mapOwner(change.inputOwner),\n\t\t\toutputState: mapOutputObjectState(change.outputState)!,\n\t\t\toutputVersion: change.outputVersion?.toString() ?? null,\n\t\t\toutputDigest: change.outputDigest ?? null,\n\t\t\toutputOwner: mapOwner(change.outputOwner),\n\t\t\tidOperation: mapIdOperation(change.idOperation)!,\n\t\t};\n\t});\n\n\treturn {\n\t\tbcs: effects.bcs?.value!,\n\n\t\tversion: 2,\n\t\tstatus: effects.status?.success\n\t\t\t? {\n\t\t\t\t\tsuccess: true,\n\t\t\t\t\terror: null,\n\t\t\t\t}\n\t\t\t: {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\terror: parseGrpcExecutionError(effects.status!.error!),\n\t\t\t\t},\n\t\tgasUsed: {\n\t\t\tcomputationCost: effects.gasUsed?.computationCost?.toString()!,\n\t\t\tstorageCost: effects.gasUsed?.storageCost?.toString()!,\n\t\t\tstorageRebate: effects.gasUsed?.storageRebate?.toString()!,\n\t\t\tnonRefundableStorageFee: effects.gasUsed?.nonRefundableStorageFee?.toString()!,\n\t\t},\n\t\ttransactionDigest: effects.transactionDigest!,\n\t\tgasObject: {\n\t\t\tobjectId: effects.gasObject?.objectId!,\n\t\t\tinputState: mapInputObjectState(effects.gasObject?.inputState)!,\n\t\t\tinputVersion: effects.gasObject?.inputVersion?.toString() ?? null,\n\t\t\tinputDigest: effects.gasObject?.inputDigest ?? null,\n\t\t\tinputOwner: mapOwner(effects.gasObject?.inputOwner),\n\t\t\toutputState: mapOutputObjectState(effects.gasObject?.outputState)!,\n\t\t\toutputVersion: effects.gasObject?.outputVersion?.toString() ?? null,\n\t\t\toutputDigest: effects.gasObject?.outputDigest ?? null,\n\t\t\toutputOwner: mapOwner(effects.gasObject?.outputOwner),\n\t\t\tidOperation: mapIdOperation(effects.gasObject?.idOperation)!,\n\t\t},\n\t\teventsDigest: effects.eventsDigest ?? null,\n\t\tdependencies: effects.dependencies,\n\t\tlamportVersion: effects.lamportVersion?.toString() ?? null,\n\t\tchangedObjects,\n\t\tunchangedConsensusObjects: effects.unchangedConsensusObjects.map(\n\t\t\t(object): SuiClientTypes.UnchangedConsensusObject => {\n\t\t\t\treturn {\n\t\t\t\t\tkind: mapUnchangedConsensusObjectKind(object.kind)!,\n\t\t\t\t\t// TODO: we are inconsistent about id vs objectId\n\t\t\t\t\tobjectId: object.objectId!,\n\t\t\t\t\tversion: object.version?.toString() ?? null,\n\t\t\t\t\tdigest: object.digest ?? null,\n\t\t\t\t};\n\t\t\t},\n\t\t),\n\t\tauxiliaryDataDigest: effects.auxiliaryDataDigest ?? null,\n\t};\n}\n\nfunction parseTransaction<Include extends SuiClientTypes.TransactionInclude = {}>(\n\ttransaction: ExecutedTransaction,\n\tinclude?: Include,\n): SuiClientTypes.TransactionResult<Include> {\n\tconst objectTypes: Record<string, string> = {};\n\tif (include?.objectTypes) {\n\t\ttransaction.effects?.changedObjects?.forEach((change) => {\n\t\t\tif (change.objectId && change.objectType) {\n\t\t\t\tobjectTypes[change.objectId] = change.objectType;\n\t\t\t}\n\t\t});\n\t}\n\n\tlet transactionData: SuiClientTypes.TransactionData | undefined;\n\tif (include?.transaction) {\n\t\tconst tx = transaction.transaction;\n\n\t\tif (!tx) {\n\t\t\tthrow new Error('Transaction data is required but missing from gRPC response');\n\t\t}\n\n\t\tconst resolved = grpcTransactionToTransactionData(tx);\n\t\ttransactionData = {\n\t\t\tgasData: resolved.gasData,\n\t\t\tsender: resolved.sender,\n\t\t\texpiration: resolved.expiration,\n\t\t\tcommands: resolved.commands,\n\t\t\tinputs: resolved.inputs,\n\t\t\tversion: resolved.version,\n\t\t};\n\t}\n\n\tconst bcsBytes = include?.bcs ? transaction.transaction?.bcs?.value : undefined;\n\n\tconst effects = include?.effects\n\t\t? parseTransactionEffects({\n\t\t\t\teffects: transaction.effects,\n\t\t\t})\n\t\t: undefined;\n\n\tconst status: SuiClientTypes.ExecutionStatus = transaction.effects?.status?.success\n\t\t? { success: true, error: null }\n\t\t: {\n\t\t\t\tsuccess: false,\n\t\t\t\terror: transaction.effects?.status?.error\n\t\t\t\t\t? parseGrpcExecutionError(transaction.effects.status.error)\n\t\t\t\t\t: {\n\t\t\t\t\t\t\t$kind: 'Unknown',\n\t\t\t\t\t\t\tmessage: 'Transaction failed',\n\t\t\t\t\t\t\tUnknown: null,\n\t\t\t\t\t\t},\n\t\t\t};\n\n\tconst result: SuiClientTypes.Transaction<Include> = {\n\t\tdigest: transaction.digest!,\n\t\tepoch: transaction.effects?.epoch?.toString() ?? null,\n\t\tstatus,\n\t\teffects: effects as SuiClientTypes.Transaction<Include>['effects'],\n\t\tobjectTypes: (include?.objectTypes\n\t\t\t? objectTypes\n\t\t\t: undefined) as SuiClientTypes.Transaction<Include>['objectTypes'],\n\t\ttransaction: transactionData as SuiClientTypes.Transaction<Include>['transaction'],\n\t\tbcs: bcsBytes as SuiClientTypes.Transaction<Include>['bcs'],\n\t\tsignatures: transaction.signatures?.map((sig) => toBase64(sig.bcs?.value!)) ?? [],\n\t\tbalanceChanges: (include?.balanceChanges\n\t\t\t? (transaction.balanceChanges?.map((change) => ({\n\t\t\t\t\tcoinType: change.coinType!,\n\t\t\t\t\taddress: change.address!,\n\t\t\t\t\tamount: change.amount!,\n\t\t\t\t})) ?? [])\n\t\t\t: undefined) as SuiClientTypes.Transaction<Include>['balanceChanges'],\n\t\tevents: (include?.events\n\t\t\t? (transaction.events?.events.map((event) => ({\n\t\t\t\t\tpackageId: normalizeSuiAddress(event.packageId!),\n\t\t\t\t\tmodule: event.module!,\n\t\t\t\t\tsender: normalizeSuiAddress(event.sender!),\n\t\t\t\t\teventType: event.eventType!,\n\t\t\t\t\tbcs: event.contents?.value ?? new Uint8Array(),\n\t\t\t\t\tjson: event.json ? (Value.toJson(event.json) as Record<string, unknown>) : null,\n\t\t\t\t})) ?? [])\n\t\t\t: undefined) as SuiClientTypes.Transaction<Include>['events'],\n\t};\n\n\treturn status.success\n\t\t? {\n\t\t\t\t$kind: 'Transaction',\n\t\t\t\tTransaction: result,\n\t\t\t}\n\t\t: {\n\t\t\t\t$kind: 'FailedTransaction',\n\t\t\t\tFailedTransaction: result,\n\t\t\t};\n}\n\nfunction parseNormalizedSuiMoveType(type: OpenSignature): SuiClientTypes.OpenSignature {\n\tlet reference: 'mutable' | 'immutable' | null = null;\n\n\tif (type.reference === OpenSignature_Reference.IMMUTABLE) {\n\t\treference = 'immutable';\n\t} else if (type.reference === OpenSignature_Reference.MUTABLE) {\n\t\treference = 'mutable';\n\t}\n\n\treturn {\n\t\treference,\n\t\tbody: parseNormalizedSuiMoveTypeBody(type.body!),\n\t};\n}\n\nfunction parseNormalizedSuiMoveTypeBody(type: OpenSignatureBody): SuiClientTypes.OpenSignatureBody {\n\tswitch (type.type) {\n\t\tcase OpenSignatureBody_Type.TYPE_UNKNOWN:\n\t\t\treturn { $kind: 'unknown' };\n\t\tcase OpenSignatureBody_Type.ADDRESS:\n\t\t\treturn { $kind: 'address' };\n\t\tcase OpenSignatureBody_Type.BOOL:\n\t\t\treturn { $kind: 'bool' };\n\t\tcase OpenSignatureBody_Type.U8:\n\t\t\treturn { $kind: 'u8' };\n\t\tcase OpenSignatureBody_Type.U16:\n\t\t\treturn { $kind: 'u16' };\n\t\tcase OpenSignatureBody_Type.U32:\n\t\t\treturn { $kind: 'u32' };\n\t\tcase OpenSignatureBody_Type.U64:\n\t\t\treturn { $kind: 'u64' };\n\t\tcase OpenSignatureBody_Type.U128:\n\t\t\treturn { $kind: 'u128' };\n\t\tcase OpenSignatureBody_Type.U256:\n\t\t\treturn { $kind: 'u256' };\n\t\tcase OpenSignatureBody_Type.VECTOR:\n\t\t\treturn {\n\t\t\t\t$kind: 'vector',\n\t\t\t\tvector: parseNormalizedSuiMoveTypeBody(type.typeParameterInstantiation[0]),\n\t\t\t};\n\t\tcase OpenSignatureBody_Type.DATATYPE:\n\t\t\treturn {\n\t\t\t\t$kind: 'datatype',\n\t\t\t\tdatatype: {\n\t\t\t\t\ttypeName: type.typeName!,\n\t\t\t\t\ttypeParameters: type.typeParameterInstantiation.map((t) =>\n\t\t\t\t\t\tparseNormalizedSuiMoveTypeBody(t),\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t};\n\t\tcase OpenSignatureBody_Type.TYPE_PARAMETER:\n\t\t\treturn {\n\t\t\t\t$kind: 'typeParameter',\n\t\t\t\tindex: type.typeParameter!,\n\t\t\t};\n\t\tdefault:\n\t\t\treturn { $kind: 'unknown' };\n\t}\n}\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { AdvanceCheckpointRequest, AdvanceCheckpointResponse, AdvanceClockRequest, AdvanceClockResponse, GetStatusRequest, GetStatusResponse } from "./forking_service.mjs";
2
- import * as _protobuf_ts_runtime2 from "@protobuf-ts/runtime";
3
- import * as _protobuf_ts_runtime_rpc2 from "@protobuf-ts/runtime-rpc";
2
+ import * as _protobuf_ts_runtime3 from "@protobuf-ts/runtime";
3
+ import * as _protobuf_ts_runtime_rpc3 from "@protobuf-ts/runtime-rpc";
4
4
  import { RpcOptions, RpcTransport, ServiceInfo, UnaryCall } from "@protobuf-ts/runtime-rpc";
5
5
 
6
6
  //#region src/grpc/proto/sui/forking/v1alpha/forking_service.client.d.ts
@@ -37,9 +37,9 @@ interface IForkingServiceClient {
37
37
  declare class ForkingServiceClient implements IForkingServiceClient, ServiceInfo {
38
38
  private readonly _transport;
39
39
  typeName: string;
40
- methods: _protobuf_ts_runtime_rpc2.MethodInfo<any, any>[];
40
+ methods: _protobuf_ts_runtime_rpc3.MethodInfo<any, any>[];
41
41
  options: {
42
- [extensionName: string]: _protobuf_ts_runtime2.JsonValue;
42
+ [extensionName: string]: _protobuf_ts_runtime3.JsonValue;
43
43
  };
44
44
  constructor(_transport: RpcTransport);
45
45
  /**
@@ -1,6 +1,6 @@
1
1
  import { GetDatatypeRequest, GetDatatypeResponse, GetFunctionRequest, GetFunctionResponse, GetPackageRequest, GetPackageResponse, ListPackageVersionsRequest, ListPackageVersionsResponse } from "./move_package_service.mjs";
2
- import * as _protobuf_ts_runtime3 from "@protobuf-ts/runtime";
3
- import * as _protobuf_ts_runtime_rpc3 from "@protobuf-ts/runtime-rpc";
2
+ import * as _protobuf_ts_runtime2 from "@protobuf-ts/runtime";
3
+ import * as _protobuf_ts_runtime_rpc2 from "@protobuf-ts/runtime-rpc";
4
4
  import { RpcOptions, RpcTransport, ServiceInfo, UnaryCall } from "@protobuf-ts/runtime-rpc";
5
5
 
6
6
  //#region src/grpc/proto/sui/rpc/v2/move_package_service.client.d.ts
@@ -31,9 +31,9 @@ interface IMovePackageServiceClient {
31
31
  declare class MovePackageServiceClient implements IMovePackageServiceClient, ServiceInfo {
32
32
  private readonly _transport;
33
33
  typeName: string;
34
- methods: _protobuf_ts_runtime_rpc3.MethodInfo<any, any>[];
34
+ methods: _protobuf_ts_runtime_rpc2.MethodInfo<any, any>[];
35
35
  options: {
36
- [extensionName: string]: _protobuf_ts_runtime3.JsonValue;
36
+ [extensionName: string]: _protobuf_ts_runtime2.JsonValue;
37
37
  };
38
38
  constructor(_transport: RpcTransport);
39
39
  /**
@@ -1,6 +1,6 @@
1
1
  import { GetBalanceRequest, GetBalanceResponse, GetCoinInfoRequest, GetCoinInfoResponse, ListBalancesRequest, ListBalancesResponse, ListDynamicFieldsRequest, ListDynamicFieldsResponse, ListOwnedObjectsRequest, ListOwnedObjectsResponse } from "./state_service.mjs";
2
- import * as _protobuf_ts_runtime4 from "@protobuf-ts/runtime";
3
- import * as _protobuf_ts_runtime_rpc4 from "@protobuf-ts/runtime-rpc";
2
+ import * as _protobuf_ts_runtime5 from "@protobuf-ts/runtime";
3
+ import * as _protobuf_ts_runtime_rpc5 from "@protobuf-ts/runtime-rpc";
4
4
  import { RpcOptions, RpcTransport, ServiceInfo, UnaryCall } from "@protobuf-ts/runtime-rpc";
5
5
 
6
6
  //#region src/grpc/proto/sui/rpc/v2/state_service.client.d.ts
@@ -35,9 +35,9 @@ interface IStateServiceClient {
35
35
  declare class StateServiceClient implements IStateServiceClient, ServiceInfo {
36
36
  private readonly _transport;
37
37
  typeName: string;
38
- methods: _protobuf_ts_runtime_rpc4.MethodInfo<any, any>[];
38
+ methods: _protobuf_ts_runtime_rpc5.MethodInfo<any, any>[];
39
39
  options: {
40
- [extensionName: string]: _protobuf_ts_runtime4.JsonValue;
40
+ [extensionName: string]: _protobuf_ts_runtime5.JsonValue;
41
41
  };
42
42
  constructor(_transport: RpcTransport);
43
43
  /**
@@ -1,6 +1,6 @@
1
1
  import { SubscribeCheckpointsRequest, SubscribeCheckpointsResponse } from "./subscription_service.mjs";
2
- import * as _protobuf_ts_runtime5 from "@protobuf-ts/runtime";
3
- import * as _protobuf_ts_runtime_rpc5 from "@protobuf-ts/runtime-rpc";
2
+ import * as _protobuf_ts_runtime4 from "@protobuf-ts/runtime";
3
+ import * as _protobuf_ts_runtime_rpc4 from "@protobuf-ts/runtime-rpc";
4
4
  import { RpcOptions, RpcTransport, ServerStreamingCall, ServiceInfo } from "@protobuf-ts/runtime-rpc";
5
5
 
6
6
  //#region src/grpc/proto/sui/rpc/v2/subscription_service.client.d.ts
@@ -31,9 +31,9 @@ interface ISubscriptionServiceClient {
31
31
  declare class SubscriptionServiceClient implements ISubscriptionServiceClient, ServiceInfo {
32
32
  private readonly _transport;
33
33
  typeName: string;
34
- methods: _protobuf_ts_runtime_rpc5.MethodInfo<any, any>[];
34
+ methods: _protobuf_ts_runtime_rpc4.MethodInfo<any, any>[];
35
35
  options: {
36
- [extensionName: string]: _protobuf_ts_runtime5.JsonValue;
36
+ [extensionName: string]: _protobuf_ts_runtime4.JsonValue;
37
37
  };
38
38
  constructor(_transport: RpcTransport);
39
39
  /**
@@ -8,7 +8,7 @@ import { createPure } from "./pure.mjs";
8
8
  import { SignatureWithBytes, Signer } from "../cryptography/keypair.mjs";
9
9
  import "../cryptography/index.mjs";
10
10
  import { ClientWithCoreApi } from "../client/core.mjs";
11
- import * as _mysten_bcs1124 from "@mysten/bcs";
11
+ import * as _mysten_bcs1111 from "@mysten/bcs";
12
12
  import { SerializedBcs } from "@mysten/bcs";
13
13
  import { InferInput } from "valibot";
14
14
 
@@ -91,7 +91,7 @@ declare class Transaction {
91
91
  getData(): {
92
92
  version: 2;
93
93
  sender?: string | null | undefined;
94
- expiration?: _mysten_bcs1124.EnumOutputShapeWithKeys<{
94
+ expiration?: _mysten_bcs1111.EnumOutputShapeWithKeys<{
95
95
  None: true;
96
96
  Epoch: string | number;
97
97
  ValidDuring: {
@@ -113,8 +113,8 @@ declare class Transaction {
113
113
  digest: string;
114
114
  }[] | null;
115
115
  };
116
- inputs: _mysten_bcs1124.EnumOutputShapeWithKeys<{
117
- Object: _mysten_bcs1124.EnumOutputShapeWithKeys<{
116
+ inputs: _mysten_bcs1111.EnumOutputShapeWithKeys<{
117
+ Object: _mysten_bcs1111.EnumOutputShapeWithKeys<{
118
118
  ImmOrOwnedObject: {
119
119
  objectId: string;
120
120
  version: string | number;
@@ -153,13 +153,13 @@ declare class Transaction {
153
153
  Balance: string;
154
154
  $kind: "Balance";
155
155
  };
156
- withdrawFrom: _mysten_bcs1124.EnumOutputShapeWithKeys<{
156
+ withdrawFrom: _mysten_bcs1111.EnumOutputShapeWithKeys<{
157
157
  Sender: true;
158
158
  Sponsor: true;
159
159
  }, "Sender" | "Sponsor">;
160
160
  };
161
161
  }, "Pure" | "Object" | "FundsWithdrawal" | "UnresolvedPure" | "UnresolvedObject">[];
162
- commands: _mysten_bcs1124.EnumOutputShapeWithKeys<{
162
+ commands: _mysten_bcs1111.EnumOutputShapeWithKeys<{
163
163
  MoveCall: {
164
164
  package: string;
165
165
  module: string;
package/dist/version.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  //#region src/version.ts
2
- const PACKAGE_VERSION = "2.20.1";
2
+ const PACKAGE_VERSION = "2.20.3";
3
3
 
4
4
  //#endregion
5
5
  export { PACKAGE_VERSION };
@@ -1 +1 @@
1
- {"version":3,"file":"version.mjs","names":[],"sources":["../src/version.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n// This file is generated by genversion.mjs. Do not edit it directly.\n\nexport const PACKAGE_VERSION = '2.20.1';\n"],"mappings":";AAKA,MAAa,kBAAkB"}
1
+ {"version":3,"file":"version.mjs","names":[],"sources":["../src/version.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n// This file is generated by genversion.mjs. Do not edit it directly.\n\nexport const PACKAGE_VERSION = '2.20.3';\n"],"mappings":";AAKA,MAAa,kBAAkB"}
@@ -1,31 +1,31 @@
1
- import * as _mysten_bcs1111 from "@mysten/bcs";
1
+ import * as _mysten_bcs1118 from "@mysten/bcs";
2
2
  import { InferBcsInput } from "@mysten/bcs";
3
3
 
4
4
  //#region src/zklogin/bcs.d.ts
5
- declare const zkLoginSignature: _mysten_bcs1111.BcsStruct<{
6
- inputs: _mysten_bcs1111.BcsStruct<{
7
- proofPoints: _mysten_bcs1111.BcsStruct<{
8
- a: _mysten_bcs1111.BcsType<string[], Iterable<string> & {
5
+ declare const zkLoginSignature: _mysten_bcs1118.BcsStruct<{
6
+ inputs: _mysten_bcs1118.BcsStruct<{
7
+ proofPoints: _mysten_bcs1118.BcsStruct<{
8
+ a: _mysten_bcs1118.BcsType<string[], Iterable<string> & {
9
9
  length: number;
10
10
  }, string>;
11
- b: _mysten_bcs1111.BcsType<string[][], Iterable<Iterable<string> & {
11
+ b: _mysten_bcs1118.BcsType<string[][], Iterable<Iterable<string> & {
12
12
  length: number;
13
13
  }> & {
14
14
  length: number;
15
15
  }, string>;
16
- c: _mysten_bcs1111.BcsType<string[], Iterable<string> & {
16
+ c: _mysten_bcs1118.BcsType<string[], Iterable<string> & {
17
17
  length: number;
18
18
  }, string>;
19
19
  }, string>;
20
- issBase64Details: _mysten_bcs1111.BcsStruct<{
21
- value: _mysten_bcs1111.BcsType<string, string, "string">;
22
- indexMod4: _mysten_bcs1111.BcsType<number, number, "u8">;
20
+ issBase64Details: _mysten_bcs1118.BcsStruct<{
21
+ value: _mysten_bcs1118.BcsType<string, string, "string">;
22
+ indexMod4: _mysten_bcs1118.BcsType<number, number, "u8">;
23
23
  }, string>;
24
- headerBase64: _mysten_bcs1111.BcsType<string, string, "string">;
25
- addressSeed: _mysten_bcs1111.BcsType<string, string, "string">;
24
+ headerBase64: _mysten_bcs1118.BcsType<string, string, "string">;
25
+ addressSeed: _mysten_bcs1118.BcsType<string, string, "string">;
26
26
  }, string>;
27
- maxEpoch: _mysten_bcs1111.BcsType<string, string | number | bigint, "u64">;
28
- userSignature: _mysten_bcs1111.BcsType<Uint8Array<ArrayBufferLike>, Iterable<number>, "vector<u8>">;
27
+ maxEpoch: _mysten_bcs1118.BcsType<string, string | number | bigint, "u64">;
28
+ userSignature: _mysten_bcs1118.BcsType<Uint8Array<ArrayBufferLike>, Iterable<number>, "vector<u8>">;
29
29
  }, string>;
30
30
  type ZkLoginSignature = InferBcsInput<typeof zkLoginSignature>;
31
31
  type ZkLoginSignatureInputs = ZkLoginSignature['inputs'];
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "author": "Mysten Labs <build@mystenlabs.com>",
4
4
  "description": "Sui TypeScript API",
5
5
  "homepage": "https://sdk.mystenlabs.com",
6
- "version": "2.20.1",
6
+ "version": "2.20.3",
7
7
  "license": "Apache-2.0",
8
8
  "sideEffects": false,
9
9
  "files": [
@@ -288,6 +288,7 @@ export function applyGrpcResolvedTransaction(
288
288
  if (options?.onlyTransactionKind) {
289
289
  transactionData.applyResolvedData({
290
290
  ...resolved,
291
+ sender: null,
291
292
  gasData: {
292
293
  budget: null,
293
294
  owner: null,
@@ -317,7 +317,11 @@ export class GraphQLCoreClient extends CoreClient {
317
317
  const balances = await this.#graphqlQuery(
318
318
  {
319
319
  query: GetAllBalancesDocument,
320
- variables: { owner: options.owner },
320
+ variables: {
321
+ owner: options.owner,
322
+ limit: options.limit,
323
+ cursor: options.cursor,
324
+ },
321
325
  },
322
326
  (result) => result.address?.balances,
323
327
  );
@@ -736,6 +740,7 @@ export class GraphQLCoreClient extends CoreClient {
736
740
  doGasSelection:
737
741
  !options.onlyTransactionKind &&
738
742
  (snapshot.gasData.budget == null || snapshot.gasData.payment == null),
743
+ checksEnabled: !options.onlyTransactionKind,
739
744
  },
740
745
  });
741
746
 
@@ -763,6 +768,7 @@ export class GraphQLCoreClient extends CoreClient {
763
768
  if (options.onlyTransactionKind) {
764
769
  transactionData.applyResolvedData({
765
770
  ...resolved,
771
+ sender: null,
766
772
  gasData: {
767
773
  budget: null,
768
774
  owner: null,