@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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,27 @@
1
1
  # @mysten/sui.js
2
2
 
3
+ ## 2.20.3
4
+
5
+ ### Patch Changes
6
+
7
+ - 5028c01: Fix kind-only transaction builds (`onlyTransactionKind: true`) that reference an owned
8
+ object without a sender set (e.g. the seal use-case). The gRPC and GraphQL clients now disable
9
+ simulation validation checks when resolving kind-only builds, so a transaction that would fail to
10
+ simulate can still be serialized. Kind-only builds also no longer leak the dummy `0x0` sender used
11
+ for resolution back into the transaction data, matching the JSON-RPC client's behavior.
12
+
13
+ ## 2.20.2
14
+
15
+ ### Patch Changes
16
+
17
+ - 36ab719: Fix pagination options being dropped on the unified core client.
18
+
19
+ `GraphQLCoreClient.listBalances` now forwards the `limit` and `cursor` options to the underlying
20
+ query (previously both were ignored, so it always returned the full, unpaginated list).
21
+ `GrpcCoreClient.listCoins` now forwards `limit` as the request `pageSize` (previously only
22
+ `cursor` was passed, so `limit` had no effect). This brings both methods in line with the other
23
+ transports and list methods.
24
+
3
25
  ## 2.20.1
4
26
 
5
27
  ### Patch Changes
@@ -184,6 +184,7 @@ function applyGrpcResolvedTransaction(transactionData, resolvedTransaction, opti
184
184
  const resolved = grpcTransactionToTransactionData(resolvedTransaction);
185
185
  if (options?.onlyTransactionKind) transactionData.applyResolvedData({
186
186
  ...resolved,
187
+ sender: null,
187
188
  gasData: {
188
189
  budget: null,
189
190
  owner: null,
@@ -1 +1 @@
1
- {"version":3,"file":"transaction-resolver.mjs","names":["GrpcTransactionType"],"sources":["../../src/client/transaction-resolver.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { fromBase64, toBase64 } from '@mysten/bcs';\n\nimport type { bcs } from '../bcs/index.js';\nimport { TransactionDataBuilder } from '../transactions/TransactionData.js';\nimport type {\n\tCallArg,\n\tCommand as BcsCommand,\n\tTransactionData,\n} from '../transactions/data/internal.js';\nimport type { Transaction as GrpcTransaction } from '../grpc/proto/sui/rpc/v2/transaction.js';\nimport {\n\tTransaction as GrpcTransactionType,\n\tTransactionExpiration_TransactionExpirationKind,\n} from '../grpc/proto/sui/rpc/v2/transaction.js';\nimport type { ObjectReference } from '../grpc/proto/sui/rpc/v2/object_reference.js';\nimport type { Input } from '../grpc/proto/sui/rpc/v2/input.js';\nimport { FundsWithdrawal_Source, Input_InputKind } from '../grpc/proto/sui/rpc/v2/input.js';\nimport type { Command } from '../grpc/proto/sui/rpc/v2/transaction.js';\nimport type { Argument } from '../grpc/proto/sui/rpc/v2/argument.js';\nimport { Argument_ArgumentKind } from '../grpc/proto/sui/rpc/v2/argument.js';\nimport { Transaction } from '../transactions/Transaction.js';\n\n/**\n * Converts CallArg (TypeScript internal format) to gRPC Input format\n */\nfunction callArgToGrpcInput(arg: CallArg): Input {\n\tswitch (arg.$kind) {\n\t\tcase 'Pure':\n\t\t\t// Pure.bytes is a base64-encoded string that needs to be decoded\n\t\t\treturn {\n\t\t\t\tkind: Input_InputKind.PURE,\n\t\t\t\tpure: fromBase64(arg.Pure.bytes),\n\t\t\t};\n\n\t\tcase 'Object':\n\t\t\tif (arg.Object.$kind === 'ImmOrOwnedObject') {\n\t\t\t\treturn {\n\t\t\t\t\tkind: Input_InputKind.IMMUTABLE_OR_OWNED,\n\t\t\t\t\tobjectId: arg.Object.ImmOrOwnedObject.objectId,\n\t\t\t\t\tversion: BigInt(arg.Object.ImmOrOwnedObject.version),\n\t\t\t\t\tdigest: arg.Object.ImmOrOwnedObject.digest,\n\t\t\t\t};\n\t\t\t} else if (arg.Object.$kind === 'SharedObject') {\n\t\t\t\treturn {\n\t\t\t\t\tkind: Input_InputKind.SHARED,\n\t\t\t\t\tobjectId: arg.Object.SharedObject.objectId,\n\t\t\t\t\tversion: BigInt(arg.Object.SharedObject.initialSharedVersion),\n\t\t\t\t\tmutable: arg.Object.SharedObject.mutable,\n\t\t\t\t};\n\t\t\t} else if (arg.Object.$kind === 'Receiving') {\n\t\t\t\treturn {\n\t\t\t\t\tkind: Input_InputKind.RECEIVING,\n\t\t\t\t\tobjectId: arg.Object.Receiving.objectId,\n\t\t\t\t\tversion: BigInt(arg.Object.Receiving.version),\n\t\t\t\t\tdigest: arg.Object.Receiving.digest,\n\t\t\t\t};\n\t\t\t}\n\t\t\tthrow new Error(`Unknown Object kind: ${JSON.stringify(arg.Object)}`);\n\n\t\tcase 'UnresolvedObject':\n\t\t\tconst unresolved = arg.UnresolvedObject;\n\t\t\treturn {\n\t\t\t\tobjectId: unresolved.objectId,\n\t\t\t\tversion: unresolved.version\n\t\t\t\t\t? BigInt(unresolved.version)\n\t\t\t\t\t: unresolved.initialSharedVersion\n\t\t\t\t\t\t? BigInt(unresolved.initialSharedVersion)\n\t\t\t\t\t\t: undefined,\n\t\t\t\tdigest: unresolved.digest ?? undefined,\n\t\t\t\tmutable: unresolved.mutable ?? undefined,\n\t\t\t};\n\n\t\tcase 'UnresolvedPure':\n\t\t\tthrow new Error('UnresolvedPure arguments must be resolved before converting to gRPC format');\n\n\t\tcase 'FundsWithdrawal': {\n\t\t\tconst withdrawal = arg.FundsWithdrawal;\n\t\t\treturn {\n\t\t\t\tkind: Input_InputKind.FUNDS_WITHDRAWAL,\n\t\t\t\tfundsWithdrawal: {\n\t\t\t\t\tamount:\n\t\t\t\t\t\twithdrawal.reservation.$kind === 'MaxAmountU64'\n\t\t\t\t\t\t\t? BigInt(withdrawal.reservation.MaxAmountU64)\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\tcoinType: withdrawal.typeArg.$kind === 'Balance' ? withdrawal.typeArg.Balance : undefined,\n\t\t\t\t\tsource:\n\t\t\t\t\t\twithdrawal.withdrawFrom.$kind === 'Sponsor'\n\t\t\t\t\t\t\t? FundsWithdrawal_Source.SPONSOR\n\t\t\t\t\t\t\t: FundsWithdrawal_Source.SENDER,\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\tdefault:\n\t\t\tthrow new Error(`Unknown CallArg kind: ${JSON.stringify(arg)}`);\n\t}\n}\n\n/**\n * Converts a TypeScript Argument to gRPC Argument\n */\nfunction tsArgumentToGrpcArgument(arg: typeof bcs.Argument.$inferInput): Argument {\n\tif ('GasCoin' in arg) {\n\t\treturn { kind: Argument_ArgumentKind.GAS };\n\t} else if ('Input' in arg) {\n\t\treturn { kind: Argument_ArgumentKind.INPUT, input: arg.Input };\n\t} else if ('Result' in arg) {\n\t\treturn { kind: Argument_ArgumentKind.RESULT, result: arg.Result };\n\t} else if ('NestedResult' in arg) {\n\t\treturn {\n\t\t\tkind: Argument_ArgumentKind.RESULT,\n\t\t\tresult: arg.NestedResult[0],\n\t\t\tsubresult: arg.NestedResult[1],\n\t\t};\n\t}\n\tthrow new Error(`Unknown Argument: ${JSON.stringify(arg)}`);\n}\n\n/**\n * Converts TypeScript Command to gRPC Command\n */\nfunction tsCommandToGrpcCommand(cmd: BcsCommand): Command {\n\tswitch (cmd.$kind) {\n\t\tcase 'MoveCall':\n\t\t\treturn {\n\t\t\t\tcommand: {\n\t\t\t\t\toneofKind: 'moveCall',\n\t\t\t\t\tmoveCall: {\n\t\t\t\t\t\tpackage: cmd.MoveCall.package,\n\t\t\t\t\t\tmodule: cmd.MoveCall.module,\n\t\t\t\t\t\tfunction: cmd.MoveCall.function,\n\t\t\t\t\t\ttypeArguments: cmd.MoveCall.typeArguments,\n\t\t\t\t\t\targuments: cmd.MoveCall.arguments.map(tsArgumentToGrpcArgument),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'TransferObjects':\n\t\t\treturn {\n\t\t\t\tcommand: {\n\t\t\t\t\toneofKind: 'transferObjects',\n\t\t\t\t\ttransferObjects: {\n\t\t\t\t\t\tobjects: cmd.TransferObjects.objects.map(tsArgumentToGrpcArgument),\n\t\t\t\t\t\taddress: tsArgumentToGrpcArgument(cmd.TransferObjects.address),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'SplitCoins':\n\t\t\treturn {\n\t\t\t\tcommand: {\n\t\t\t\t\toneofKind: 'splitCoins',\n\t\t\t\t\tsplitCoins: {\n\t\t\t\t\t\tcoin: tsArgumentToGrpcArgument(cmd.SplitCoins.coin),\n\t\t\t\t\t\tamounts: cmd.SplitCoins.amounts.map(tsArgumentToGrpcArgument),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'MergeCoins':\n\t\t\treturn {\n\t\t\t\tcommand: {\n\t\t\t\t\toneofKind: 'mergeCoins',\n\t\t\t\t\tmergeCoins: {\n\t\t\t\t\t\tcoin: tsArgumentToGrpcArgument(cmd.MergeCoins.destination),\n\t\t\t\t\t\tcoinsToMerge: cmd.MergeCoins.sources.map(tsArgumentToGrpcArgument),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'Publish':\n\t\t\treturn {\n\t\t\t\tcommand: {\n\t\t\t\t\toneofKind: 'publish',\n\t\t\t\t\tpublish: {\n\t\t\t\t\t\t// modules are base64-encoded strings in internal format\n\t\t\t\t\t\tmodules: cmd.Publish.modules.map((m) => fromBase64(m)),\n\t\t\t\t\t\tdependencies: cmd.Publish.dependencies,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'MakeMoveVec':\n\t\t\treturn {\n\t\t\t\tcommand: {\n\t\t\t\t\toneofKind: 'makeMoveVector',\n\t\t\t\t\tmakeMoveVector: {\n\t\t\t\t\t\telementType: cmd.MakeMoveVec.type ?? undefined,\n\t\t\t\t\t\telements: cmd.MakeMoveVec.elements.map(tsArgumentToGrpcArgument),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'Upgrade':\n\t\t\treturn {\n\t\t\t\tcommand: {\n\t\t\t\t\toneofKind: 'upgrade',\n\t\t\t\t\tupgrade: {\n\t\t\t\t\t\t// modules are base64-encoded strings in internal format\n\t\t\t\t\t\tmodules: cmd.Upgrade.modules.map((m) => fromBase64(m)),\n\t\t\t\t\t\tdependencies: cmd.Upgrade.dependencies,\n\t\t\t\t\t\tpackage: cmd.Upgrade.package,\n\t\t\t\t\t\tticket: tsArgumentToGrpcArgument(cmd.Upgrade.ticket),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t};\n\n\t\tdefault:\n\t\t\tthrow new Error(`Unknown Command kind: ${JSON.stringify(cmd)}`);\n\t}\n}\n\nexport function transactionDataToGrpcTransaction(data: TransactionData): GrpcTransaction {\n\tconst grpcInputs = data.inputs.map(callArgToGrpcInput);\n\n\tconst grpcCommands = data.commands.map(tsCommandToGrpcCommand);\n\n\tconst transaction: GrpcTransaction = {\n\t\tversion: 1,\n\t\tkind: {\n\t\t\tdata: {\n\t\t\t\toneofKind: 'programmableTransaction',\n\t\t\t\tprogrammableTransaction: {\n\t\t\t\t\tinputs: grpcInputs,\n\t\t\t\t\tcommands: grpcCommands,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t};\n\n\tif (data.sender) {\n\t\ttransaction.sender = data.sender;\n\t}\n\n\tconst gasOwner = data.gasData.owner ?? data.sender;\n\n\ttransaction.gasPayment = {\n\t\tobjects: data.gasData.payment\n\t\t\t? data.gasData.payment.map((ref) => ({\n\t\t\t\t\tobjectId: ref.objectId,\n\t\t\t\t\tversion: BigInt(ref.version),\n\t\t\t\t\tdigest: ref.digest,\n\t\t\t\t}))\n\t\t\t: [],\n\t\tprice: data.gasData.price ? BigInt(data.gasData.price) : undefined,\n\t\tbudget: data.gasData.budget ? BigInt(data.gasData.budget) : undefined,\n\t};\n\n\tif (gasOwner) {\n\t\ttransaction.gasPayment.owner = gasOwner;\n\t}\n\n\tif (data.expiration) {\n\t\tif ('None' in data.expiration) {\n\t\t\ttransaction.expiration = {\n\t\t\t\tkind: TransactionExpiration_TransactionExpirationKind.NONE,\n\t\t\t};\n\t\t} else if (data.expiration.$kind === 'Epoch') {\n\t\t\ttransaction.expiration = {\n\t\t\t\tkind: TransactionExpiration_TransactionExpirationKind.EPOCH,\n\t\t\t\tepoch: BigInt(data.expiration.Epoch),\n\t\t\t};\n\t\t} else if (data.expiration.$kind === 'ValidDuring') {\n\t\t\tconst validDuring = data.expiration.ValidDuring;\n\t\t\ttransaction.expiration = {\n\t\t\t\tkind: TransactionExpiration_TransactionExpirationKind.VALID_DURING,\n\t\t\t\tminEpoch: validDuring.minEpoch != null ? BigInt(validDuring.minEpoch) : undefined,\n\t\t\t\tepoch: validDuring.maxEpoch != null ? BigInt(validDuring.maxEpoch) : undefined,\n\t\t\t\tchain: validDuring.chain,\n\t\t\t\tnonce: validDuring.nonce,\n\t\t\t};\n\t\t}\n\t}\n\n\treturn transaction;\n}\n\nexport function applyGrpcResolvedTransaction(\n\ttransactionData: TransactionDataBuilder,\n\tresolvedTransaction: GrpcTransaction,\n\toptions?: { onlyTransactionKind?: boolean },\n): void {\n\tconst resolved = grpcTransactionToTransactionData(resolvedTransaction);\n\n\tif (options?.onlyTransactionKind) {\n\t\ttransactionData.applyResolvedData({\n\t\t\t...resolved,\n\t\t\tgasData: {\n\t\t\t\tbudget: null,\n\t\t\t\towner: null,\n\t\t\t\tpayment: null,\n\t\t\t\tprice: null,\n\t\t\t},\n\t\t\texpiration: null,\n\t\t});\n\t} else {\n\t\ttransactionData.applyResolvedData(resolved);\n\t}\n}\n\n/**\n * Converts an array of ObjectReferences from gRPC format to TypeScript SuiObjectRef format\n */\nexport function grpcObjectReferencesToBcs(refs: ObjectReference[]): {\n\tobjectId: string;\n\tversion: string;\n\tdigest: string;\n}[] {\n\treturn refs.map((ref) => ({\n\t\tobjectId: ref.objectId!,\n\t\tversion: ref.version?.toString()!,\n\t\tdigest: ref.digest!,\n\t}));\n}\n\nexport function transactionToGrpcTransaction(transaction: Transaction) {\n\tconst snapshot = transaction.getData();\n\n\tif (!snapshot.sender) {\n\t\tsnapshot.sender = '0x0000000000000000000000000000000000000000000000000000000000000000';\n\t}\n\n\treturn transactionDataToGrpcTransaction(snapshot);\n}\n\nexport function transactionToGrpcJson(transaction: Transaction): unknown {\n\tconst grpcTransaction = transactionToGrpcTransaction(transaction);\n\treturn GrpcTransactionType.toJson(grpcTransaction);\n}\n\nfunction grpcInputToCallArg(input: Input): CallArg {\n\tswitch (input.kind) {\n\t\tcase Input_InputKind.PURE:\n\t\t\treturn {\n\t\t\t\t$kind: 'Pure',\n\t\t\t\tPure: { bytes: toBase64(input.pure!) },\n\t\t\t};\n\n\t\tcase Input_InputKind.IMMUTABLE_OR_OWNED:\n\t\t\treturn {\n\t\t\t\t$kind: 'Object',\n\t\t\t\tObject: {\n\t\t\t\t\t$kind: 'ImmOrOwnedObject',\n\t\t\t\t\tImmOrOwnedObject: {\n\t\t\t\t\t\tobjectId: input.objectId!,\n\t\t\t\t\t\tversion: input.version!.toString(),\n\t\t\t\t\t\tdigest: input.digest!,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase Input_InputKind.SHARED:\n\t\t\treturn {\n\t\t\t\t$kind: 'Object',\n\t\t\t\tObject: {\n\t\t\t\t\t$kind: 'SharedObject',\n\t\t\t\t\tSharedObject: {\n\t\t\t\t\t\tobjectId: input.objectId!,\n\t\t\t\t\t\tinitialSharedVersion: input.version!.toString(),\n\t\t\t\t\t\tmutable: input.mutable ?? false,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase Input_InputKind.RECEIVING:\n\t\t\treturn {\n\t\t\t\t$kind: 'Object',\n\t\t\t\tObject: {\n\t\t\t\t\t$kind: 'Receiving',\n\t\t\t\t\tReceiving: {\n\t\t\t\t\t\tobjectId: input.objectId!,\n\t\t\t\t\t\tversion: input.version!.toString(),\n\t\t\t\t\t\tdigest: input.digest!,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase Input_InputKind.FUNDS_WITHDRAWAL:\n\t\t\treturn {\n\t\t\t\t$kind: 'FundsWithdrawal',\n\t\t\t\tFundsWithdrawal: {\n\t\t\t\t\treservation: {\n\t\t\t\t\t\t$kind: 'MaxAmountU64' as const,\n\t\t\t\t\t\tMaxAmountU64: input.fundsWithdrawal?.amount?.toString() ?? '0',\n\t\t\t\t\t},\n\t\t\t\t\ttypeArg: {\n\t\t\t\t\t\t$kind: 'Balance' as const,\n\t\t\t\t\t\tBalance: input.fundsWithdrawal?.coinType ?? '0x2::sui::SUI',\n\t\t\t\t\t},\n\t\t\t\t\twithdrawFrom:\n\t\t\t\t\t\tinput.fundsWithdrawal?.source === FundsWithdrawal_Source.SPONSOR\n\t\t\t\t\t\t\t? { $kind: 'Sponsor' as const, Sponsor: true as const }\n\t\t\t\t\t\t\t: { $kind: 'Sender' as const, Sender: true as const },\n\t\t\t\t},\n\t\t\t};\n\n\t\tdefault:\n\t\t\tthrow new Error(`Unknown Input kind: ${JSON.stringify(input)}`);\n\t}\n}\n\nfunction grpcArgumentToTsArgument(\n\targ: Argument,\n):\n\t| { $kind: 'GasCoin'; GasCoin: true }\n\t| { $kind: 'Input'; Input: number }\n\t| { $kind: 'Result'; Result: number }\n\t| { $kind: 'NestedResult'; NestedResult: [number, number] } {\n\tswitch (arg.kind) {\n\t\tcase Argument_ArgumentKind.GAS:\n\t\t\treturn { $kind: 'GasCoin', GasCoin: true };\n\t\tcase Argument_ArgumentKind.INPUT:\n\t\t\treturn { $kind: 'Input', Input: arg.input! };\n\t\tcase Argument_ArgumentKind.RESULT:\n\t\t\tif (arg.subresult != null) {\n\t\t\t\treturn { $kind: 'NestedResult', NestedResult: [arg.result!, arg.subresult] };\n\t\t\t}\n\t\t\treturn { $kind: 'Result', Result: arg.result! };\n\t\tdefault:\n\t\t\tthrow new Error(`Unknown Argument kind: ${JSON.stringify(arg)}`);\n\t}\n}\n\nfunction grpcCommandToTsCommand(cmd: Command): BcsCommand {\n\tconst command = cmd.command;\n\tif (!command) {\n\t\tthrow new Error('Command is missing');\n\t}\n\n\tswitch (command.oneofKind) {\n\t\tcase 'moveCall':\n\t\t\treturn {\n\t\t\t\t$kind: 'MoveCall',\n\t\t\t\tMoveCall: {\n\t\t\t\t\tpackage: command.moveCall.package!,\n\t\t\t\t\tmodule: command.moveCall.module!,\n\t\t\t\t\tfunction: command.moveCall.function!,\n\t\t\t\t\ttypeArguments: command.moveCall.typeArguments ?? [],\n\t\t\t\t\targuments: command.moveCall.arguments.map(grpcArgumentToTsArgument),\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'transferObjects':\n\t\t\treturn {\n\t\t\t\t$kind: 'TransferObjects',\n\t\t\t\tTransferObjects: {\n\t\t\t\t\tobjects: command.transferObjects.objects.map(grpcArgumentToTsArgument),\n\t\t\t\t\taddress: grpcArgumentToTsArgument(command.transferObjects.address!),\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'splitCoins':\n\t\t\treturn {\n\t\t\t\t$kind: 'SplitCoins',\n\t\t\t\tSplitCoins: {\n\t\t\t\t\tcoin: grpcArgumentToTsArgument(command.splitCoins.coin!),\n\t\t\t\t\tamounts: command.splitCoins.amounts.map(grpcArgumentToTsArgument),\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'mergeCoins':\n\t\t\treturn {\n\t\t\t\t$kind: 'MergeCoins',\n\t\t\t\tMergeCoins: {\n\t\t\t\t\tdestination: grpcArgumentToTsArgument(command.mergeCoins.coin!),\n\t\t\t\t\tsources: command.mergeCoins.coinsToMerge.map(grpcArgumentToTsArgument),\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'publish':\n\t\t\treturn {\n\t\t\t\t$kind: 'Publish',\n\t\t\t\tPublish: {\n\t\t\t\t\tmodules: command.publish.modules.map((m) => toBase64(m)),\n\t\t\t\t\tdependencies: command.publish.dependencies ?? [],\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'makeMoveVector':\n\t\t\treturn {\n\t\t\t\t$kind: 'MakeMoveVec',\n\t\t\t\tMakeMoveVec: {\n\t\t\t\t\ttype: command.makeMoveVector.elementType ?? null,\n\t\t\t\t\telements: command.makeMoveVector.elements.map(grpcArgumentToTsArgument),\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'upgrade':\n\t\t\treturn {\n\t\t\t\t$kind: 'Upgrade',\n\t\t\t\tUpgrade: {\n\t\t\t\t\tmodules: command.upgrade.modules.map((m) => toBase64(m)),\n\t\t\t\t\tdependencies: command.upgrade.dependencies ?? [],\n\t\t\t\t\tpackage: command.upgrade.package!,\n\t\t\t\t\tticket: grpcArgumentToTsArgument(command.upgrade.ticket!),\n\t\t\t\t},\n\t\t\t};\n\n\t\tdefault:\n\t\t\tthrow new Error(`Unknown Command kind: ${JSON.stringify(command)}`);\n\t}\n}\n\nexport function grpcTransactionToTransactionData(grpcTx: GrpcTransaction): TransactionData {\n\tconst programmableTx = grpcTx.kind?.data;\n\tif (programmableTx?.oneofKind !== 'programmableTransaction') {\n\t\tthrow new Error('Only programmable transactions are supported');\n\t}\n\n\tconst inputs = programmableTx.programmableTransaction.inputs.map(grpcInputToCallArg);\n\tconst commands = programmableTx.programmableTransaction.commands.map(grpcCommandToTsCommand);\n\n\tlet expiration: TransactionData['expiration'] = null;\n\tif (grpcTx.expiration) {\n\t\tswitch (grpcTx.expiration.kind) {\n\t\t\tcase TransactionExpiration_TransactionExpirationKind.NONE:\n\t\t\t\texpiration = { $kind: 'None', None: true };\n\t\t\t\tbreak;\n\t\t\tcase TransactionExpiration_TransactionExpirationKind.EPOCH:\n\t\t\t\texpiration = { $kind: 'Epoch', Epoch: grpcTx.expiration.epoch!.toString() };\n\t\t\t\tbreak;\n\t\t\tcase TransactionExpiration_TransactionExpirationKind.VALID_DURING:\n\t\t\t\texpiration = {\n\t\t\t\t\t$kind: 'ValidDuring',\n\t\t\t\t\tValidDuring: {\n\t\t\t\t\t\tminEpoch: grpcTx.expiration.minEpoch?.toString() ?? null,\n\t\t\t\t\t\tmaxEpoch: grpcTx.expiration.epoch?.toString() ?? null,\n\t\t\t\t\t\tminTimestamp: null,\n\t\t\t\t\t\tmaxTimestamp: null,\n\t\t\t\t\t\tchain: grpcTx.expiration.chain ?? '',\n\t\t\t\t\t\tnonce: grpcTx.expiration.nonce ?? 0,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn {\n\t\tversion: 2 as const,\n\t\tsender: grpcTx.sender ?? null,\n\t\texpiration,\n\t\tgasData: {\n\t\t\tbudget: grpcTx.gasPayment?.budget?.toString() ?? null,\n\t\t\towner: grpcTx.gasPayment?.owner ?? null,\n\t\t\tpayment:\n\t\t\t\tgrpcTx.gasPayment?.objects?.map((obj) => ({\n\t\t\t\t\tobjectId: obj.objectId!,\n\t\t\t\t\tversion: obj.version!.toString(),\n\t\t\t\t\tdigest: obj.digest!,\n\t\t\t\t})) ?? null,\n\t\t\tprice: grpcTx.gasPayment?.price?.toString() ?? null,\n\t\t},\n\t\tinputs,\n\t\tcommands,\n\t};\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"transaction-resolver.mjs","names":["GrpcTransactionType"],"sources":["../../src/client/transaction-resolver.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { fromBase64, toBase64 } from '@mysten/bcs';\n\nimport type { bcs } from '../bcs/index.js';\nimport { TransactionDataBuilder } from '../transactions/TransactionData.js';\nimport type {\n\tCallArg,\n\tCommand as BcsCommand,\n\tTransactionData,\n} from '../transactions/data/internal.js';\nimport type { Transaction as GrpcTransaction } from '../grpc/proto/sui/rpc/v2/transaction.js';\nimport {\n\tTransaction as GrpcTransactionType,\n\tTransactionExpiration_TransactionExpirationKind,\n} from '../grpc/proto/sui/rpc/v2/transaction.js';\nimport type { ObjectReference } from '../grpc/proto/sui/rpc/v2/object_reference.js';\nimport type { Input } from '../grpc/proto/sui/rpc/v2/input.js';\nimport { FundsWithdrawal_Source, Input_InputKind } from '../grpc/proto/sui/rpc/v2/input.js';\nimport type { Command } from '../grpc/proto/sui/rpc/v2/transaction.js';\nimport type { Argument } from '../grpc/proto/sui/rpc/v2/argument.js';\nimport { Argument_ArgumentKind } from '../grpc/proto/sui/rpc/v2/argument.js';\nimport { Transaction } from '../transactions/Transaction.js';\n\n/**\n * Converts CallArg (TypeScript internal format) to gRPC Input format\n */\nfunction callArgToGrpcInput(arg: CallArg): Input {\n\tswitch (arg.$kind) {\n\t\tcase 'Pure':\n\t\t\t// Pure.bytes is a base64-encoded string that needs to be decoded\n\t\t\treturn {\n\t\t\t\tkind: Input_InputKind.PURE,\n\t\t\t\tpure: fromBase64(arg.Pure.bytes),\n\t\t\t};\n\n\t\tcase 'Object':\n\t\t\tif (arg.Object.$kind === 'ImmOrOwnedObject') {\n\t\t\t\treturn {\n\t\t\t\t\tkind: Input_InputKind.IMMUTABLE_OR_OWNED,\n\t\t\t\t\tobjectId: arg.Object.ImmOrOwnedObject.objectId,\n\t\t\t\t\tversion: BigInt(arg.Object.ImmOrOwnedObject.version),\n\t\t\t\t\tdigest: arg.Object.ImmOrOwnedObject.digest,\n\t\t\t\t};\n\t\t\t} else if (arg.Object.$kind === 'SharedObject') {\n\t\t\t\treturn {\n\t\t\t\t\tkind: Input_InputKind.SHARED,\n\t\t\t\t\tobjectId: arg.Object.SharedObject.objectId,\n\t\t\t\t\tversion: BigInt(arg.Object.SharedObject.initialSharedVersion),\n\t\t\t\t\tmutable: arg.Object.SharedObject.mutable,\n\t\t\t\t};\n\t\t\t} else if (arg.Object.$kind === 'Receiving') {\n\t\t\t\treturn {\n\t\t\t\t\tkind: Input_InputKind.RECEIVING,\n\t\t\t\t\tobjectId: arg.Object.Receiving.objectId,\n\t\t\t\t\tversion: BigInt(arg.Object.Receiving.version),\n\t\t\t\t\tdigest: arg.Object.Receiving.digest,\n\t\t\t\t};\n\t\t\t}\n\t\t\tthrow new Error(`Unknown Object kind: ${JSON.stringify(arg.Object)}`);\n\n\t\tcase 'UnresolvedObject':\n\t\t\tconst unresolved = arg.UnresolvedObject;\n\t\t\treturn {\n\t\t\t\tobjectId: unresolved.objectId,\n\t\t\t\tversion: unresolved.version\n\t\t\t\t\t? BigInt(unresolved.version)\n\t\t\t\t\t: unresolved.initialSharedVersion\n\t\t\t\t\t\t? BigInt(unresolved.initialSharedVersion)\n\t\t\t\t\t\t: undefined,\n\t\t\t\tdigest: unresolved.digest ?? undefined,\n\t\t\t\tmutable: unresolved.mutable ?? undefined,\n\t\t\t};\n\n\t\tcase 'UnresolvedPure':\n\t\t\tthrow new Error('UnresolvedPure arguments must be resolved before converting to gRPC format');\n\n\t\tcase 'FundsWithdrawal': {\n\t\t\tconst withdrawal = arg.FundsWithdrawal;\n\t\t\treturn {\n\t\t\t\tkind: Input_InputKind.FUNDS_WITHDRAWAL,\n\t\t\t\tfundsWithdrawal: {\n\t\t\t\t\tamount:\n\t\t\t\t\t\twithdrawal.reservation.$kind === 'MaxAmountU64'\n\t\t\t\t\t\t\t? BigInt(withdrawal.reservation.MaxAmountU64)\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\tcoinType: withdrawal.typeArg.$kind === 'Balance' ? withdrawal.typeArg.Balance : undefined,\n\t\t\t\t\tsource:\n\t\t\t\t\t\twithdrawal.withdrawFrom.$kind === 'Sponsor'\n\t\t\t\t\t\t\t? FundsWithdrawal_Source.SPONSOR\n\t\t\t\t\t\t\t: FundsWithdrawal_Source.SENDER,\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\tdefault:\n\t\t\tthrow new Error(`Unknown CallArg kind: ${JSON.stringify(arg)}`);\n\t}\n}\n\n/**\n * Converts a TypeScript Argument to gRPC Argument\n */\nfunction tsArgumentToGrpcArgument(arg: typeof bcs.Argument.$inferInput): Argument {\n\tif ('GasCoin' in arg) {\n\t\treturn { kind: Argument_ArgumentKind.GAS };\n\t} else if ('Input' in arg) {\n\t\treturn { kind: Argument_ArgumentKind.INPUT, input: arg.Input };\n\t} else if ('Result' in arg) {\n\t\treturn { kind: Argument_ArgumentKind.RESULT, result: arg.Result };\n\t} else if ('NestedResult' in arg) {\n\t\treturn {\n\t\t\tkind: Argument_ArgumentKind.RESULT,\n\t\t\tresult: arg.NestedResult[0],\n\t\t\tsubresult: arg.NestedResult[1],\n\t\t};\n\t}\n\tthrow new Error(`Unknown Argument: ${JSON.stringify(arg)}`);\n}\n\n/**\n * Converts TypeScript Command to gRPC Command\n */\nfunction tsCommandToGrpcCommand(cmd: BcsCommand): Command {\n\tswitch (cmd.$kind) {\n\t\tcase 'MoveCall':\n\t\t\treturn {\n\t\t\t\tcommand: {\n\t\t\t\t\toneofKind: 'moveCall',\n\t\t\t\t\tmoveCall: {\n\t\t\t\t\t\tpackage: cmd.MoveCall.package,\n\t\t\t\t\t\tmodule: cmd.MoveCall.module,\n\t\t\t\t\t\tfunction: cmd.MoveCall.function,\n\t\t\t\t\t\ttypeArguments: cmd.MoveCall.typeArguments,\n\t\t\t\t\t\targuments: cmd.MoveCall.arguments.map(tsArgumentToGrpcArgument),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'TransferObjects':\n\t\t\treturn {\n\t\t\t\tcommand: {\n\t\t\t\t\toneofKind: 'transferObjects',\n\t\t\t\t\ttransferObjects: {\n\t\t\t\t\t\tobjects: cmd.TransferObjects.objects.map(tsArgumentToGrpcArgument),\n\t\t\t\t\t\taddress: tsArgumentToGrpcArgument(cmd.TransferObjects.address),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'SplitCoins':\n\t\t\treturn {\n\t\t\t\tcommand: {\n\t\t\t\t\toneofKind: 'splitCoins',\n\t\t\t\t\tsplitCoins: {\n\t\t\t\t\t\tcoin: tsArgumentToGrpcArgument(cmd.SplitCoins.coin),\n\t\t\t\t\t\tamounts: cmd.SplitCoins.amounts.map(tsArgumentToGrpcArgument),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'MergeCoins':\n\t\t\treturn {\n\t\t\t\tcommand: {\n\t\t\t\t\toneofKind: 'mergeCoins',\n\t\t\t\t\tmergeCoins: {\n\t\t\t\t\t\tcoin: tsArgumentToGrpcArgument(cmd.MergeCoins.destination),\n\t\t\t\t\t\tcoinsToMerge: cmd.MergeCoins.sources.map(tsArgumentToGrpcArgument),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'Publish':\n\t\t\treturn {\n\t\t\t\tcommand: {\n\t\t\t\t\toneofKind: 'publish',\n\t\t\t\t\tpublish: {\n\t\t\t\t\t\t// modules are base64-encoded strings in internal format\n\t\t\t\t\t\tmodules: cmd.Publish.modules.map((m) => fromBase64(m)),\n\t\t\t\t\t\tdependencies: cmd.Publish.dependencies,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'MakeMoveVec':\n\t\t\treturn {\n\t\t\t\tcommand: {\n\t\t\t\t\toneofKind: 'makeMoveVector',\n\t\t\t\t\tmakeMoveVector: {\n\t\t\t\t\t\telementType: cmd.MakeMoveVec.type ?? undefined,\n\t\t\t\t\t\telements: cmd.MakeMoveVec.elements.map(tsArgumentToGrpcArgument),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'Upgrade':\n\t\t\treturn {\n\t\t\t\tcommand: {\n\t\t\t\t\toneofKind: 'upgrade',\n\t\t\t\t\tupgrade: {\n\t\t\t\t\t\t// modules are base64-encoded strings in internal format\n\t\t\t\t\t\tmodules: cmd.Upgrade.modules.map((m) => fromBase64(m)),\n\t\t\t\t\t\tdependencies: cmd.Upgrade.dependencies,\n\t\t\t\t\t\tpackage: cmd.Upgrade.package,\n\t\t\t\t\t\tticket: tsArgumentToGrpcArgument(cmd.Upgrade.ticket),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t};\n\n\t\tdefault:\n\t\t\tthrow new Error(`Unknown Command kind: ${JSON.stringify(cmd)}`);\n\t}\n}\n\nexport function transactionDataToGrpcTransaction(data: TransactionData): GrpcTransaction {\n\tconst grpcInputs = data.inputs.map(callArgToGrpcInput);\n\n\tconst grpcCommands = data.commands.map(tsCommandToGrpcCommand);\n\n\tconst transaction: GrpcTransaction = {\n\t\tversion: 1,\n\t\tkind: {\n\t\t\tdata: {\n\t\t\t\toneofKind: 'programmableTransaction',\n\t\t\t\tprogrammableTransaction: {\n\t\t\t\t\tinputs: grpcInputs,\n\t\t\t\t\tcommands: grpcCommands,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t};\n\n\tif (data.sender) {\n\t\ttransaction.sender = data.sender;\n\t}\n\n\tconst gasOwner = data.gasData.owner ?? data.sender;\n\n\ttransaction.gasPayment = {\n\t\tobjects: data.gasData.payment\n\t\t\t? data.gasData.payment.map((ref) => ({\n\t\t\t\t\tobjectId: ref.objectId,\n\t\t\t\t\tversion: BigInt(ref.version),\n\t\t\t\t\tdigest: ref.digest,\n\t\t\t\t}))\n\t\t\t: [],\n\t\tprice: data.gasData.price ? BigInt(data.gasData.price) : undefined,\n\t\tbudget: data.gasData.budget ? BigInt(data.gasData.budget) : undefined,\n\t};\n\n\tif (gasOwner) {\n\t\ttransaction.gasPayment.owner = gasOwner;\n\t}\n\n\tif (data.expiration) {\n\t\tif ('None' in data.expiration) {\n\t\t\ttransaction.expiration = {\n\t\t\t\tkind: TransactionExpiration_TransactionExpirationKind.NONE,\n\t\t\t};\n\t\t} else if (data.expiration.$kind === 'Epoch') {\n\t\t\ttransaction.expiration = {\n\t\t\t\tkind: TransactionExpiration_TransactionExpirationKind.EPOCH,\n\t\t\t\tepoch: BigInt(data.expiration.Epoch),\n\t\t\t};\n\t\t} else if (data.expiration.$kind === 'ValidDuring') {\n\t\t\tconst validDuring = data.expiration.ValidDuring;\n\t\t\ttransaction.expiration = {\n\t\t\t\tkind: TransactionExpiration_TransactionExpirationKind.VALID_DURING,\n\t\t\t\tminEpoch: validDuring.minEpoch != null ? BigInt(validDuring.minEpoch) : undefined,\n\t\t\t\tepoch: validDuring.maxEpoch != null ? BigInt(validDuring.maxEpoch) : undefined,\n\t\t\t\tchain: validDuring.chain,\n\t\t\t\tnonce: validDuring.nonce,\n\t\t\t};\n\t\t}\n\t}\n\n\treturn transaction;\n}\n\nexport function applyGrpcResolvedTransaction(\n\ttransactionData: TransactionDataBuilder,\n\tresolvedTransaction: GrpcTransaction,\n\toptions?: { onlyTransactionKind?: boolean },\n): void {\n\tconst resolved = grpcTransactionToTransactionData(resolvedTransaction);\n\n\tif (options?.onlyTransactionKind) {\n\t\ttransactionData.applyResolvedData({\n\t\t\t...resolved,\n\t\t\tsender: null,\n\t\t\tgasData: {\n\t\t\t\tbudget: null,\n\t\t\t\towner: null,\n\t\t\t\tpayment: null,\n\t\t\t\tprice: null,\n\t\t\t},\n\t\t\texpiration: null,\n\t\t});\n\t} else {\n\t\ttransactionData.applyResolvedData(resolved);\n\t}\n}\n\n/**\n * Converts an array of ObjectReferences from gRPC format to TypeScript SuiObjectRef format\n */\nexport function grpcObjectReferencesToBcs(refs: ObjectReference[]): {\n\tobjectId: string;\n\tversion: string;\n\tdigest: string;\n}[] {\n\treturn refs.map((ref) => ({\n\t\tobjectId: ref.objectId!,\n\t\tversion: ref.version?.toString()!,\n\t\tdigest: ref.digest!,\n\t}));\n}\n\nexport function transactionToGrpcTransaction(transaction: Transaction) {\n\tconst snapshot = transaction.getData();\n\n\tif (!snapshot.sender) {\n\t\tsnapshot.sender = '0x0000000000000000000000000000000000000000000000000000000000000000';\n\t}\n\n\treturn transactionDataToGrpcTransaction(snapshot);\n}\n\nexport function transactionToGrpcJson(transaction: Transaction): unknown {\n\tconst grpcTransaction = transactionToGrpcTransaction(transaction);\n\treturn GrpcTransactionType.toJson(grpcTransaction);\n}\n\nfunction grpcInputToCallArg(input: Input): CallArg {\n\tswitch (input.kind) {\n\t\tcase Input_InputKind.PURE:\n\t\t\treturn {\n\t\t\t\t$kind: 'Pure',\n\t\t\t\tPure: { bytes: toBase64(input.pure!) },\n\t\t\t};\n\n\t\tcase Input_InputKind.IMMUTABLE_OR_OWNED:\n\t\t\treturn {\n\t\t\t\t$kind: 'Object',\n\t\t\t\tObject: {\n\t\t\t\t\t$kind: 'ImmOrOwnedObject',\n\t\t\t\t\tImmOrOwnedObject: {\n\t\t\t\t\t\tobjectId: input.objectId!,\n\t\t\t\t\t\tversion: input.version!.toString(),\n\t\t\t\t\t\tdigest: input.digest!,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase Input_InputKind.SHARED:\n\t\t\treturn {\n\t\t\t\t$kind: 'Object',\n\t\t\t\tObject: {\n\t\t\t\t\t$kind: 'SharedObject',\n\t\t\t\t\tSharedObject: {\n\t\t\t\t\t\tobjectId: input.objectId!,\n\t\t\t\t\t\tinitialSharedVersion: input.version!.toString(),\n\t\t\t\t\t\tmutable: input.mutable ?? false,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase Input_InputKind.RECEIVING:\n\t\t\treturn {\n\t\t\t\t$kind: 'Object',\n\t\t\t\tObject: {\n\t\t\t\t\t$kind: 'Receiving',\n\t\t\t\t\tReceiving: {\n\t\t\t\t\t\tobjectId: input.objectId!,\n\t\t\t\t\t\tversion: input.version!.toString(),\n\t\t\t\t\t\tdigest: input.digest!,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase Input_InputKind.FUNDS_WITHDRAWAL:\n\t\t\treturn {\n\t\t\t\t$kind: 'FundsWithdrawal',\n\t\t\t\tFundsWithdrawal: {\n\t\t\t\t\treservation: {\n\t\t\t\t\t\t$kind: 'MaxAmountU64' as const,\n\t\t\t\t\t\tMaxAmountU64: input.fundsWithdrawal?.amount?.toString() ?? '0',\n\t\t\t\t\t},\n\t\t\t\t\ttypeArg: {\n\t\t\t\t\t\t$kind: 'Balance' as const,\n\t\t\t\t\t\tBalance: input.fundsWithdrawal?.coinType ?? '0x2::sui::SUI',\n\t\t\t\t\t},\n\t\t\t\t\twithdrawFrom:\n\t\t\t\t\t\tinput.fundsWithdrawal?.source === FundsWithdrawal_Source.SPONSOR\n\t\t\t\t\t\t\t? { $kind: 'Sponsor' as const, Sponsor: true as const }\n\t\t\t\t\t\t\t: { $kind: 'Sender' as const, Sender: true as const },\n\t\t\t\t},\n\t\t\t};\n\n\t\tdefault:\n\t\t\tthrow new Error(`Unknown Input kind: ${JSON.stringify(input)}`);\n\t}\n}\n\nfunction grpcArgumentToTsArgument(\n\targ: Argument,\n):\n\t| { $kind: 'GasCoin'; GasCoin: true }\n\t| { $kind: 'Input'; Input: number }\n\t| { $kind: 'Result'; Result: number }\n\t| { $kind: 'NestedResult'; NestedResult: [number, number] } {\n\tswitch (arg.kind) {\n\t\tcase Argument_ArgumentKind.GAS:\n\t\t\treturn { $kind: 'GasCoin', GasCoin: true };\n\t\tcase Argument_ArgumentKind.INPUT:\n\t\t\treturn { $kind: 'Input', Input: arg.input! };\n\t\tcase Argument_ArgumentKind.RESULT:\n\t\t\tif (arg.subresult != null) {\n\t\t\t\treturn { $kind: 'NestedResult', NestedResult: [arg.result!, arg.subresult] };\n\t\t\t}\n\t\t\treturn { $kind: 'Result', Result: arg.result! };\n\t\tdefault:\n\t\t\tthrow new Error(`Unknown Argument kind: ${JSON.stringify(arg)}`);\n\t}\n}\n\nfunction grpcCommandToTsCommand(cmd: Command): BcsCommand {\n\tconst command = cmd.command;\n\tif (!command) {\n\t\tthrow new Error('Command is missing');\n\t}\n\n\tswitch (command.oneofKind) {\n\t\tcase 'moveCall':\n\t\t\treturn {\n\t\t\t\t$kind: 'MoveCall',\n\t\t\t\tMoveCall: {\n\t\t\t\t\tpackage: command.moveCall.package!,\n\t\t\t\t\tmodule: command.moveCall.module!,\n\t\t\t\t\tfunction: command.moveCall.function!,\n\t\t\t\t\ttypeArguments: command.moveCall.typeArguments ?? [],\n\t\t\t\t\targuments: command.moveCall.arguments.map(grpcArgumentToTsArgument),\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'transferObjects':\n\t\t\treturn {\n\t\t\t\t$kind: 'TransferObjects',\n\t\t\t\tTransferObjects: {\n\t\t\t\t\tobjects: command.transferObjects.objects.map(grpcArgumentToTsArgument),\n\t\t\t\t\taddress: grpcArgumentToTsArgument(command.transferObjects.address!),\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'splitCoins':\n\t\t\treturn {\n\t\t\t\t$kind: 'SplitCoins',\n\t\t\t\tSplitCoins: {\n\t\t\t\t\tcoin: grpcArgumentToTsArgument(command.splitCoins.coin!),\n\t\t\t\t\tamounts: command.splitCoins.amounts.map(grpcArgumentToTsArgument),\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'mergeCoins':\n\t\t\treturn {\n\t\t\t\t$kind: 'MergeCoins',\n\t\t\t\tMergeCoins: {\n\t\t\t\t\tdestination: grpcArgumentToTsArgument(command.mergeCoins.coin!),\n\t\t\t\t\tsources: command.mergeCoins.coinsToMerge.map(grpcArgumentToTsArgument),\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'publish':\n\t\t\treturn {\n\t\t\t\t$kind: 'Publish',\n\t\t\t\tPublish: {\n\t\t\t\t\tmodules: command.publish.modules.map((m) => toBase64(m)),\n\t\t\t\t\tdependencies: command.publish.dependencies ?? [],\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'makeMoveVector':\n\t\t\treturn {\n\t\t\t\t$kind: 'MakeMoveVec',\n\t\t\t\tMakeMoveVec: {\n\t\t\t\t\ttype: command.makeMoveVector.elementType ?? null,\n\t\t\t\t\telements: command.makeMoveVector.elements.map(grpcArgumentToTsArgument),\n\t\t\t\t},\n\t\t\t};\n\n\t\tcase 'upgrade':\n\t\t\treturn {\n\t\t\t\t$kind: 'Upgrade',\n\t\t\t\tUpgrade: {\n\t\t\t\t\tmodules: command.upgrade.modules.map((m) => toBase64(m)),\n\t\t\t\t\tdependencies: command.upgrade.dependencies ?? [],\n\t\t\t\t\tpackage: command.upgrade.package!,\n\t\t\t\t\tticket: grpcArgumentToTsArgument(command.upgrade.ticket!),\n\t\t\t\t},\n\t\t\t};\n\n\t\tdefault:\n\t\t\tthrow new Error(`Unknown Command kind: ${JSON.stringify(command)}`);\n\t}\n}\n\nexport function grpcTransactionToTransactionData(grpcTx: GrpcTransaction): TransactionData {\n\tconst programmableTx = grpcTx.kind?.data;\n\tif (programmableTx?.oneofKind !== 'programmableTransaction') {\n\t\tthrow new Error('Only programmable transactions are supported');\n\t}\n\n\tconst inputs = programmableTx.programmableTransaction.inputs.map(grpcInputToCallArg);\n\tconst commands = programmableTx.programmableTransaction.commands.map(grpcCommandToTsCommand);\n\n\tlet expiration: TransactionData['expiration'] = null;\n\tif (grpcTx.expiration) {\n\t\tswitch (grpcTx.expiration.kind) {\n\t\t\tcase TransactionExpiration_TransactionExpirationKind.NONE:\n\t\t\t\texpiration = { $kind: 'None', None: true };\n\t\t\t\tbreak;\n\t\t\tcase TransactionExpiration_TransactionExpirationKind.EPOCH:\n\t\t\t\texpiration = { $kind: 'Epoch', Epoch: grpcTx.expiration.epoch!.toString() };\n\t\t\t\tbreak;\n\t\t\tcase TransactionExpiration_TransactionExpirationKind.VALID_DURING:\n\t\t\t\texpiration = {\n\t\t\t\t\t$kind: 'ValidDuring',\n\t\t\t\t\tValidDuring: {\n\t\t\t\t\t\tminEpoch: grpcTx.expiration.minEpoch?.toString() ?? null,\n\t\t\t\t\t\tmaxEpoch: grpcTx.expiration.epoch?.toString() ?? null,\n\t\t\t\t\t\tminTimestamp: null,\n\t\t\t\t\t\tmaxTimestamp: null,\n\t\t\t\t\t\tchain: grpcTx.expiration.chain ?? '',\n\t\t\t\t\t\tnonce: grpcTx.expiration.nonce ?? 0,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn {\n\t\tversion: 2 as const,\n\t\tsender: grpcTx.sender ?? null,\n\t\texpiration,\n\t\tgasData: {\n\t\t\tbudget: grpcTx.gasPayment?.budget?.toString() ?? null,\n\t\t\towner: grpcTx.gasPayment?.owner ?? null,\n\t\t\tpayment:\n\t\t\t\tgrpcTx.gasPayment?.objects?.map((obj) => ({\n\t\t\t\t\tobjectId: obj.objectId!,\n\t\t\t\t\tversion: obj.version!.toString(),\n\t\t\t\t\tdigest: obj.digest!,\n\t\t\t\t})) ?? null,\n\t\t\tprice: grpcTx.gasPayment?.price?.toString() ?? null,\n\t\t},\n\t\tinputs,\n\t\tcommands,\n\t};\n}\n"],"mappings":"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"}
@@ -23,6 +23,12 @@ declare function toSerializedSignature({
23
23
  * Decodes a serialized signature into its constituent components: the signature scheme, the actual signature, and the public key
24
24
  */
25
25
  declare function parseSerializedSignature(serializedSignature: string): {
26
+ serializedSignature: string;
27
+ signatureScheme: "ED25519" | "Secp256k1" | "Secp256r1";
28
+ signature: Uint8Array<ArrayBuffer>;
29
+ publicKey: Uint8Array<ArrayBuffer>;
30
+ bytes: Uint8Array<ArrayBuffer>;
31
+ } | {
26
32
  signatureScheme: "Passkey";
27
33
  serializedSignature: string;
28
34
  signature: Uint8Array<ArrayBufferLike>;
@@ -30,12 +36,6 @@ declare function parseSerializedSignature(serializedSignature: string): {
30
36
  clientDataJson: string;
31
37
  userSignature: Uint8Array<ArrayBuffer>;
32
38
  publicKey: Uint8Array<ArrayBuffer>;
33
- } | {
34
- serializedSignature: string;
35
- signatureScheme: "ED25519" | "Secp256k1" | "Secp256r1";
36
- signature: Uint8Array<ArrayBuffer>;
37
- publicKey: Uint8Array<ArrayBuffer>;
38
- bytes: Uint8Array<ArrayBuffer>;
39
39
  } | {
40
40
  serializedSignature: string;
41
41
  signatureScheme: "ZkLogin";
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.mts","names":[],"sources":["../../src/graphql/core.ts"],"mappings":";;;;;;;;cAoDa,iBAAA,SAA0B,UAAA;EAAA;;IAIrC,aAAA;IACA;EAAA;IAEA,aAAA,EAAe,gBAAA;IACf,GAAA,GAAM,cAAA,CAAe,UAAA;EAAA;EA2BhB,UAAA,iBAA2B,cAAA,CAAe,aAAA,MAAA,CAC/C,OAAA,EAAS,cAAA,CAAe,iBAAA,CAAkB,OAAA,IACxC,OAAA,CAAQ,cAAA,CAAe,kBAAA,CAAmB,OAAA;EAgFvC,gBAAA,iBAAiC,cAAA,CAAe,aAAA,MAAA,CACrD,OAAA,EAAS,cAAA,CAAe,uBAAA,CAAwB,OAAA,IAC9C,OAAA,CAAQ,cAAA,CAAe,wBAAA,CAAyB,OAAA;EAoD7C,SAAA,CACL,OAAA,EAAS,cAAA,CAAe,gBAAA,GACtB,OAAA,CAAQ,cAAA,CAAe,iBAAA;EA+BpB,UAAA,CACL,OAAA,EAAS,cAAA,CAAe,iBAAA,GACtB,OAAA,CAAQ,cAAA,CAAe,kBAAA;EAyBpB,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;EAwBpB,cAAA,iBAA+B,cAAA,CAAe,kBAAA,MAAA,CACnD,OAAA,EAAS,cAAA,CAAe,qBAAA,CAAsB,OAAA,IAC5C,OAAA,CAAQ,cAAA,CAAe,iBAAA,CAAkB,OAAA;EAmBtC,kBAAA,iBAAmC,cAAA,CAAe,kBAAA,MAAA,CACvD,OAAA,EAAS,cAAA,CAAe,yBAAA,CAA0B,OAAA,IAChD,OAAA,CAAQ,cAAA,CAAe,iBAAA,CAAkB,OAAA;EAoBtC,mBAAA,iBAAoC,cAAA,CAAe,0BAAA,MAAA,CACxD,OAAA,EAAS,cAAA,CAAe,0BAAA,CAA2B,OAAA,IACjD,OAAA,CAAQ,cAAA,CAAe,yBAAA,CAA0B,OAAA;EA4D9C,oBAAA,CAAA,GAAwB,OAAA,CAAQ,cAAA,CAAe,4BAAA;EAa/C,iBAAA,CAAA,GAAqB,OAAA,CAAQ,cAAA,CAAe,yBAAA;EA0B5C,qBAAA,CAAA,GAAyB,OAAA,CAAQ,cAAA,CAAe,6BAAA;EAqGhD,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;EAsBpB,sBAAA,CACL,OAAA,EAAS,cAAA,CAAe,6BAAA,GACtB,OAAA,CAAQ,cAAA,CAAe,8BAAA;EAiBpB,eAAA,CACL,OAAA,EAAS,cAAA,CAAe,sBAAA,GACtB,OAAA,CAAQ,cAAA,CAAe,uBAAA;EA8DpB,kBAAA,CACL,QAAA,GAAW,cAAA,CAAe,yBAAA,GACxB,OAAA,CAAQ,cAAA,CAAe,0BAAA;EAiB1B,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/graphql/core.ts"],"mappings":";;;;;;;;cAoDa,iBAAA,SAA0B,UAAA;EAAA;;IAIrC,aAAA;IACA;EAAA;IAEA,aAAA,EAAe,gBAAA;IACf,GAAA,GAAM,cAAA,CAAe,UAAA;EAAA;EA2BhB,UAAA,iBAA2B,cAAA,CAAe,aAAA,MAAA,CAC/C,OAAA,EAAS,cAAA,CAAe,iBAAA,CAAkB,OAAA,IACxC,OAAA,CAAQ,cAAA,CAAe,kBAAA,CAAmB,OAAA;EAgFvC,gBAAA,iBAAiC,cAAA,CAAe,aAAA,MAAA,CACrD,OAAA,EAAS,cAAA,CAAe,uBAAA,CAAwB,OAAA,IAC9C,OAAA,CAAQ,cAAA,CAAe,wBAAA,CAAyB,OAAA;EAoD7C,SAAA,CACL,OAAA,EAAS,cAAA,CAAe,gBAAA,GACtB,OAAA,CAAQ,cAAA,CAAe,iBAAA;EA+BpB,UAAA,CACL,OAAA,EAAS,cAAA,CAAe,iBAAA,GACtB,OAAA,CAAQ,cAAA,CAAe,kBAAA;EAyBpB,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;EA4BpB,cAAA,iBAA+B,cAAA,CAAe,kBAAA,MAAA,CACnD,OAAA,EAAS,cAAA,CAAe,qBAAA,CAAsB,OAAA,IAC5C,OAAA,CAAQ,cAAA,CAAe,iBAAA,CAAkB,OAAA;EAmBtC,kBAAA,iBAAmC,cAAA,CAAe,kBAAA,MAAA,CACvD,OAAA,EAAS,cAAA,CAAe,yBAAA,CAA0B,OAAA,IAChD,OAAA,CAAQ,cAAA,CAAe,iBAAA,CAAkB,OAAA;EAoBtC,mBAAA,iBAAoC,cAAA,CAAe,0BAAA,MAAA,CACxD,OAAA,EAAS,cAAA,CAAe,0BAAA,CAA2B,OAAA,IACjD,OAAA,CAAQ,cAAA,CAAe,yBAAA,CAA0B,OAAA;EA4D9C,oBAAA,CAAA,GAAwB,OAAA,CAAQ,cAAA,CAAe,4BAAA;EAa/C,iBAAA,CAAA,GAAqB,OAAA,CAAQ,cAAA,CAAe,yBAAA;EA0B5C,qBAAA,CAAA,GAAyB,OAAA,CAAQ,cAAA,CAAe,6BAAA;EAqGhD,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;EAsBpB,sBAAA,CACL,OAAA,EAAS,cAAA,CAAe,6BAAA,GACtB,OAAA,CAAQ,cAAA,CAAe,8BAAA;EAiBpB,eAAA,CACL,OAAA,EAAS,cAAA,CAAe,sBAAA,GACtB,OAAA,CAAQ,cAAA,CAAe,uBAAA;EA8DpB,kBAAA,CACL,QAAA,GAAW,cAAA,CAAe,yBAAA,GACxB,OAAA,CAAQ,cAAA,CAAe,0BAAA;EAiB1B,wBAAA,CAAA,IAGE,eAAA,EAAiB,sBAAA,EACjB,OAAA,EAAS,uBAAA,EACT,IAAA,QAAY,OAAA,WAAa,OAAA;AAAA"}
@@ -164,7 +164,11 @@ var GraphQLCoreClient = class extends CoreClient {
164
164
  async listBalances(options) {
165
165
  const balances = await this.#graphqlQuery({
166
166
  query: GetAllBalancesDocument,
167
- variables: { owner: options.owner }
167
+ variables: {
168
+ owner: options.owner,
169
+ limit: options.limit,
170
+ cursor: options.cursor
171
+ }
168
172
  }, (result) => result.address?.balances);
169
173
  return {
170
174
  cursor: balances.pageInfo.endCursor ?? null,
@@ -381,7 +385,8 @@ var GraphQLCoreClient = class extends CoreClient {
381
385
  query: ResolveTransactionDocument,
382
386
  variables: {
383
387
  transaction: transactionJson,
384
- doGasSelection: !options.onlyTransactionKind && (snapshot.gasData.budget == null || snapshot.gasData.payment == null)
388
+ doGasSelection: !options.onlyTransactionKind && (snapshot.gasData.budget == null || snapshot.gasData.payment == null),
389
+ checksEnabled: !options.onlyTransactionKind
385
390
  }
386
391
  });
387
392
  handleGraphQLErrors(errors);
@@ -395,6 +400,7 @@ var GraphQLCoreClient = class extends CoreClient {
395
400
  const resolved = TransactionDataBuilder.fromBytes(fromBase64(resolvedTransactionBcs)).snapshot();
396
401
  if (options.onlyTransactionKind) transactionData.applyResolvedData({
397
402
  ...resolved,
403
+ sender: null,
398
404
  gasData: {
399
405
  budget: null,
400
406
  owner: null,
@@ -1 +1 @@
1
- {"version":3,"file":"core.mjs","names":["#graphqlClient","#graphqlQuery","result","GrpcTransactionType","TransactionEffectsType","BalanceChangeType"],"sources":["../../src/graphql/core.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { CoreClient } from '../client/core.js';\nimport type { SuiClientTypes } from '../client/types.js';\nimport { SUI_TYPE_ARG } from '../utils/constants.js';\nimport type { GraphQLQueryOptions, SuiGraphQLClient } from './client.js';\nimport type {\n\tObject_Owner_FieldsFragment,\n\tTransaction_FieldsFragment,\n} from './generated/queries.js';\n\ntype GraphQLExecutionError = NonNullable<\n\tNonNullable<Transaction_FieldsFragment['effects']>['executionError']\n>;\nimport {\n\tDefaultSuinsNameDocument,\n\tExecuteTransactionDocument,\n\tExecutionStatus,\n\tGetAllBalancesDocument,\n\tGetBalanceDocument,\n\tGetChainIdentifierDocument,\n\tGetCoinMetadataDocument,\n\tGetCoinsDocument,\n\tGetCurrentSystemStateDocument,\n\tGetMoveFunctionDocument,\n\tGetProtocolConfigDocument,\n\tGetOwnedObjectsDocument,\n\tGetReferenceGasPriceDocument,\n\tGetTransactionBlockDocument,\n\tMultiGetObjectsDocument,\n\tResolveTransactionDocument,\n\tSimulateTransactionDocument,\n\tVerifyZkLoginSignatureDocument,\n\tZkLoginIntentScope,\n} from './generated/queries.js';\nimport { ObjectError, SimulationError } from '../client/errors.js';\nimport { chunk, fromBase64, toBase64 } from '@mysten/utils';\nimport { normalizeSuiAddress } from '../utils/sui-types.js';\nimport { formatMoveAbortMessage, parseTransactionEffectsBcs } from '../client/utils.js';\nimport type { OpenMoveTypeSignatureBody, OpenMoveTypeSignature } from './types.js';\nimport {\n\ttransactionDataToGrpcTransaction,\n\ttransactionToGrpcJson,\n\tgrpcTransactionToTransactionData,\n} from '../client/transaction-resolver.js';\nimport { BalanceChange as BalanceChangeType } from '../grpc/proto/sui/rpc/v2/balance_change.js';\nimport { TransactionEffects as TransactionEffectsType } from '../grpc/proto/sui/rpc/v2/effects.js';\nimport { Transaction as GrpcTransactionType } from '../grpc/proto/sui/rpc/v2/transaction.js';\nimport { TransactionDataBuilder } from '../transactions/TransactionData.js';\nimport type { BuildTransactionOptions } from '../transactions/index.js';\n\nexport class GraphQLCoreClient extends CoreClient {\n\t#graphqlClient: SuiGraphQLClient;\n\n\tconstructor({\n\t\tgraphqlClient,\n\t\tmvr,\n\t}: {\n\t\tgraphqlClient: SuiGraphQLClient;\n\t\tmvr?: SuiClientTypes.MvrOptions;\n\t}) {\n\t\tsuper({ network: graphqlClient.network, base: graphqlClient, mvr });\n\t\tthis.#graphqlClient = graphqlClient;\n\t}\n\n\tasync #graphqlQuery<\n\t\tResult = Record<string, unknown>,\n\t\tVariables = Record<string, unknown>,\n\t\tData = Result,\n\t>(\n\t\toptions: GraphQLQueryOptions<Result, Variables>,\n\t\tgetData?: (result: Result) => Data,\n\t): Promise<NonNullable<Data>> {\n\t\tconst { data, errors } = await this.#graphqlClient.query(options);\n\n\t\thandleGraphQLErrors(errors);\n\n\t\tconst extractedData = data && (getData ? getData(data) : data);\n\n\t\tif (extractedData == null) {\n\t\t\tthrow new Error('Missing response data');\n\t\t}\n\n\t\treturn extractedData as NonNullable<Data>;\n\t}\n\n\tasync getObjects<Include extends SuiClientTypes.ObjectInclude = {}>(\n\t\toptions: SuiClientTypes.GetObjectsOptions<Include>,\n\t): Promise<SuiClientTypes.GetObjectsResponse<Include>> {\n\t\tconst batches = chunk(options.objectIds, 50);\n\t\tconst results: SuiClientTypes.GetObjectsResponse<Include>['objects'] = [];\n\n\t\tfor (const batch of batches) {\n\t\t\tconst page = await this.#graphqlQuery(\n\t\t\t\t{\n\t\t\t\t\tquery: MultiGetObjectsDocument,\n\t\t\t\t\tvariables: {\n\t\t\t\t\t\tobjectKeys: batch.map((address) => ({ address })),\n\t\t\t\t\t\tincludeContent: options.include?.content ?? false,\n\t\t\t\t\t\tincludePreviousTransaction: options.include?.previousTransaction ?? false,\n\t\t\t\t\t\tincludeObjectBcs: options.include?.objectBcs ?? false,\n\t\t\t\t\t\tincludeJson: options.include?.json ?? false,\n\t\t\t\t\t\tincludeDisplay: options.include?.display ?? false,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t(result) => result.multiGetObjects,\n\t\t\t);\n\t\t\tresults.push(\n\t\t\t\t...batch\n\t\t\t\t\t.map((id) => normalizeSuiAddress(id))\n\t\t\t\t\t.map(\n\t\t\t\t\t\t(id) =>\n\t\t\t\t\t\t\tpage.find((obj) => obj?.address === id) ??\n\t\t\t\t\t\t\tnew ObjectError('notFound', `Object ${id} not found`),\n\t\t\t\t\t)\n\t\t\t\t\t.map((obj) => {\n\t\t\t\t\t\tif (obj instanceof ObjectError) {\n\t\t\t\t\t\t\treturn obj;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst bcsContent = obj.asMoveObject?.contents?.bcs\n\t\t\t\t\t\t\t? fromBase64(obj.asMoveObject.contents.bcs)\n\t\t\t\t\t\t\t: undefined;\n\n\t\t\t\t\t\tconst objectBcs = obj.objectBcs ? fromBase64(obj.objectBcs) : undefined;\n\n\t\t\t\t\t\t// Determine object type: package or Move object\n\t\t\t\t\t\t// GraphQL already returns normalized struct tags\n\t\t\t\t\t\tlet type: string;\n\t\t\t\t\t\tif (obj.asMovePackage) {\n\t\t\t\t\t\t\ttype = 'package';\n\t\t\t\t\t\t} else if (obj.asMoveObject?.contents?.type?.repr) {\n\t\t\t\t\t\t\ttype = obj.asMoveObject.contents.type.repr;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttype = '';\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst jsonContent = options.include?.json\n\t\t\t\t\t\t\t? obj.asMoveObject?.contents?.json\n\t\t\t\t\t\t\t\t? (obj.asMoveObject.contents.json as Record<string, unknown>)\n\t\t\t\t\t\t\t\t: null\n\t\t\t\t\t\t\t: undefined;\n\n\t\t\t\t\t\tconst displayData = mapDisplay(\n\t\t\t\t\t\t\toptions.include?.display,\n\t\t\t\t\t\t\tobj.asMoveObject?.contents?.display,\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tobjectId: obj.address,\n\t\t\t\t\t\t\tversion: obj.version?.toString()!,\n\t\t\t\t\t\t\tdigest: obj.digest!,\n\t\t\t\t\t\t\towner: mapOwner(obj.owner!),\n\t\t\t\t\t\t\ttype,\n\t\t\t\t\t\t\tcontent: bcsContent as SuiClientTypes.Object<Include>['content'],\n\t\t\t\t\t\t\tpreviousTransaction: (obj.previousTransaction?.digest ??\n\t\t\t\t\t\t\t\tundefined) as SuiClientTypes.Object<Include>['previousTransaction'],\n\t\t\t\t\t\t\tobjectBcs: objectBcs as SuiClientTypes.Object<Include>['objectBcs'],\n\t\t\t\t\t\t\tjson: jsonContent as SuiClientTypes.Object<Include>['json'],\n\t\t\t\t\t\t\tdisplay: displayData as SuiClientTypes.Object<Include>['display'],\n\t\t\t\t\t\t};\n\t\t\t\t\t}),\n\t\t\t);\n\t\t}\n\n\t\treturn {\n\t\t\tobjects: results,\n\t\t};\n\t}\n\tasync listOwnedObjects<Include extends SuiClientTypes.ObjectInclude = {}>(\n\t\toptions: SuiClientTypes.ListOwnedObjectsOptions<Include>,\n\t): Promise<SuiClientTypes.ListOwnedObjectsResponse<Include>> {\n\t\tconst objects = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: GetOwnedObjectsDocument,\n\t\t\t\tvariables: {\n\t\t\t\t\towner: options.owner,\n\t\t\t\t\tlimit: options.limit,\n\t\t\t\t\tcursor: options.cursor,\n\t\t\t\t\tfilter: options.type\n\t\t\t\t\t\t? { type: (await this.mvr.resolveType({ type: options.type })).type }\n\t\t\t\t\t\t: undefined,\n\t\t\t\t\tincludeContent: options.include?.content ?? false,\n\t\t\t\t\tincludePreviousTransaction: options.include?.previousTransaction ?? false,\n\t\t\t\t\tincludeObjectBcs: options.include?.objectBcs ?? false,\n\t\t\t\t\tincludeJson: options.include?.json ?? false,\n\t\t\t\t\tincludeDisplay: options.include?.display ?? false,\n\t\t\t\t},\n\t\t\t},\n\t\t\t(result) => result.address?.objects,\n\t\t);\n\n\t\treturn {\n\t\t\tobjects: objects.nodes.map(\n\t\t\t\t(obj): SuiClientTypes.Object<Include> => ({\n\t\t\t\t\tobjectId: obj.address,\n\t\t\t\t\tversion: obj.version?.toString()!,\n\t\t\t\t\tdigest: obj.digest!,\n\t\t\t\t\towner: mapOwner(obj.owner!),\n\t\t\t\t\ttype: obj.contents?.type?.repr!,\n\t\t\t\t\tcontent: (obj.contents?.bcs\n\t\t\t\t\t\t? fromBase64(obj.contents.bcs)\n\t\t\t\t\t\t: undefined) as SuiClientTypes.Object<Include>['content'],\n\t\t\t\t\tpreviousTransaction: (obj.previousTransaction?.digest ??\n\t\t\t\t\t\tundefined) as SuiClientTypes.Object<Include>['previousTransaction'],\n\t\t\t\t\tobjectBcs: (obj.objectBcs\n\t\t\t\t\t\t? fromBase64(obj.objectBcs)\n\t\t\t\t\t\t: undefined) as SuiClientTypes.Object<Include>['objectBcs'],\n\t\t\t\t\tjson: (options.include?.json\n\t\t\t\t\t\t? obj.contents?.json\n\t\t\t\t\t\t\t? (obj.contents.json as Record<string, unknown>)\n\t\t\t\t\t\t\t: null\n\t\t\t\t\t\t: undefined) as SuiClientTypes.Object<Include>['json'],\n\t\t\t\t\tdisplay: mapDisplay(\n\t\t\t\t\t\toptions.include?.display,\n\t\t\t\t\t\tobj.contents?.display,\n\t\t\t\t\t) as SuiClientTypes.Object<Include>['display'],\n\t\t\t\t}),\n\t\t\t),\n\t\t\thasNextPage: objects.pageInfo.hasNextPage,\n\t\t\tcursor: objects.pageInfo.endCursor ?? null,\n\t\t};\n\t}\n\tasync listCoins(\n\t\toptions: SuiClientTypes.ListCoinsOptions,\n\t): Promise<SuiClientTypes.ListCoinsResponse> {\n\t\tconst coinType = options.coinType ?? SUI_TYPE_ARG;\n\t\tconst coins = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: GetCoinsDocument,\n\t\t\t\tvariables: {\n\t\t\t\t\towner: options.owner,\n\t\t\t\t\tcursor: options.cursor,\n\t\t\t\t\tfirst: options.limit,\n\t\t\t\t\ttype: `0x2::coin::Coin<${(await this.mvr.resolveType({ type: coinType })).type}>`,\n\t\t\t\t},\n\t\t\t},\n\t\t\t(result) => result.address?.objects,\n\t\t);\n\n\t\treturn {\n\t\t\tcursor: coins.pageInfo.endCursor ?? null,\n\t\t\thasNextPage: coins.pageInfo.hasNextPage,\n\t\t\tobjects: coins.nodes.map(\n\t\t\t\t(coin): SuiClientTypes.Coin => ({\n\t\t\t\t\tobjectId: coin.address,\n\t\t\t\t\tversion: coin.version?.toString()!,\n\t\t\t\t\tdigest: coin.digest!,\n\t\t\t\t\towner: mapOwner(coin.owner!),\n\t\t\t\t\ttype: coin.contents?.type?.repr!,\n\t\t\t\t\tbalance: (coin.contents?.json as { balance: string })?.balance,\n\t\t\t\t}),\n\t\t\t),\n\t\t};\n\t}\n\n\tasync getBalance(\n\t\toptions: SuiClientTypes.GetBalanceOptions,\n\t): Promise<SuiClientTypes.GetBalanceResponse> {\n\t\tconst coinType = options.coinType ?? SUI_TYPE_ARG;\n\t\tconst result = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: GetBalanceDocument,\n\t\t\t\tvariables: {\n\t\t\t\t\towner: options.owner,\n\t\t\t\t\tcoinType: (await this.mvr.resolveType({ type: coinType })).type,\n\t\t\t\t},\n\t\t\t},\n\t\t\t(result) => result.address?.balance,\n\t\t);\n\n\t\tconst addressBalance = BigInt(result.addressBalance ?? '0');\n\t\tconst coinBalance = BigInt(result.totalBalance ?? '0') - addressBalance;\n\n\t\treturn {\n\t\t\tbalance: {\n\t\t\t\tcoinType: result.coinType?.repr ?? coinType,\n\t\t\t\tbalance: result.totalBalance ?? '0',\n\t\t\t\tcoinBalance: coinBalance.toString(),\n\t\t\t\taddressBalance: addressBalance.toString(),\n\t\t\t},\n\t\t};\n\t}\n\tasync getCoinMetadata(\n\t\toptions: SuiClientTypes.GetCoinMetadataOptions,\n\t): Promise<SuiClientTypes.GetCoinMetadataResponse> {\n\t\tconst coinType = (await this.mvr.resolveType({ type: options.coinType })).type;\n\n\t\tconst { data, errors } = await this.#graphqlClient.query({\n\t\t\tquery: GetCoinMetadataDocument,\n\t\t\tvariables: {\n\t\t\t\tcoinType,\n\t\t\t},\n\t\t});\n\n\t\thandleGraphQLErrors(errors);\n\n\t\tif (!data?.coinMetadata) {\n\t\t\treturn { coinMetadata: null };\n\t\t}\n\n\t\treturn {\n\t\t\tcoinMetadata: {\n\t\t\t\tid: data.coinMetadata.address!,\n\t\t\t\tdecimals: data.coinMetadata.decimals!,\n\t\t\t\tname: data.coinMetadata.name!,\n\t\t\t\tsymbol: data.coinMetadata.symbol!,\n\t\t\t\tdescription: data.coinMetadata.description!,\n\t\t\t\ticonUrl: data.coinMetadata.iconUrl ?? null,\n\t\t\t},\n\t\t};\n\t}\n\n\tasync listBalances(\n\t\toptions: SuiClientTypes.ListBalancesOptions,\n\t): Promise<SuiClientTypes.ListBalancesResponse> {\n\t\tconst balances = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: GetAllBalancesDocument,\n\t\t\t\tvariables: { owner: options.owner },\n\t\t\t},\n\t\t\t(result) => result.address?.balances,\n\t\t);\n\n\t\treturn {\n\t\t\tcursor: balances.pageInfo.endCursor ?? null,\n\t\t\thasNextPage: balances.pageInfo.hasNextPage,\n\t\t\tbalances: balances.nodes.map((balance) => {\n\t\t\t\tconst addressBalance = BigInt(balance.addressBalance ?? '0');\n\t\t\t\tconst coinBalance = BigInt(balance.totalBalance ?? '0') - addressBalance;\n\t\t\t\treturn {\n\t\t\t\t\tcoinType: balance.coinType?.repr!,\n\t\t\t\t\tbalance: balance.totalBalance!,\n\t\t\t\t\tcoinBalance: coinBalance.toString(),\n\t\t\t\t\taddressBalance: addressBalance.toString(),\n\t\t\t\t};\n\t\t\t}),\n\t\t};\n\t}\n\tasync getTransaction<Include extends SuiClientTypes.TransactionInclude = {}>(\n\t\toptions: SuiClientTypes.GetTransactionOptions<Include>,\n\t): Promise<SuiClientTypes.TransactionResult<Include>> {\n\t\tconst result = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: GetTransactionBlockDocument,\n\t\t\t\tvariables: {\n\t\t\t\t\tdigest: options.digest,\n\t\t\t\t\tincludeTransaction: options.include?.transaction ?? false,\n\t\t\t\t\tincludeEffects: options.include?.effects ?? false,\n\t\t\t\t\tincludeEvents: options.include?.events ?? false,\n\t\t\t\t\tincludeBalanceChanges: options.include?.balanceChanges ?? false,\n\t\t\t\t\tincludeObjectTypes: options.include?.objectTypes ?? false,\n\t\t\t\t\tincludeBcs: options.include?.bcs ?? false,\n\t\t\t\t},\n\t\t\t},\n\t\t\t(result) => result.transaction,\n\t\t);\n\n\t\treturn parseTransaction(result, options.include);\n\t}\n\tasync executeTransaction<Include extends SuiClientTypes.TransactionInclude = {}>(\n\t\toptions: SuiClientTypes.ExecuteTransactionOptions<Include>,\n\t): Promise<SuiClientTypes.TransactionResult<Include>> {\n\t\tconst result = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: ExecuteTransactionDocument,\n\t\t\t\tvariables: {\n\t\t\t\t\ttransactionDataBcs: toBase64(options.transaction),\n\t\t\t\t\tsignatures: options.signatures,\n\t\t\t\t\tincludeTransaction: options.include?.transaction ?? false,\n\t\t\t\t\tincludeEffects: options.include?.effects ?? false,\n\t\t\t\t\tincludeEvents: options.include?.events ?? false,\n\t\t\t\t\tincludeBalanceChanges: options.include?.balanceChanges ?? false,\n\t\t\t\t\tincludeObjectTypes: options.include?.objectTypes ?? false,\n\t\t\t\t\tincludeBcs: options.include?.bcs ?? false,\n\t\t\t\t},\n\t\t\t},\n\t\t\t(result) => result.executeTransaction,\n\t\t);\n\n\t\treturn parseTransaction(result.effects?.transaction!, options.include);\n\t}\n\tasync simulateTransaction<Include extends SuiClientTypes.SimulateTransactionInclude = {}>(\n\t\toptions: SuiClientTypes.SimulateTransactionOptions<Include>,\n\t): Promise<SuiClientTypes.SimulateTransactionResult<Include>> {\n\t\tif (!(options.transaction instanceof Uint8Array)) {\n\t\t\tawait options.transaction.prepareForSerialization({ client: this });\n\t\t}\n\n\t\tconst result = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: SimulateTransactionDocument,\n\t\t\t\tvariables: {\n\t\t\t\t\ttransaction:\n\t\t\t\t\t\toptions.transaction instanceof Uint8Array\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\tbcs: {\n\t\t\t\t\t\t\t\t\t\tvalue: toBase64(options.transaction),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t: transactionToGrpcJson(options.transaction),\n\t\t\t\t\tincludeTransaction: options.include?.transaction ?? false,\n\t\t\t\t\tincludeEffects: options.include?.effects ?? false,\n\t\t\t\t\tincludeEvents: options.include?.events ?? false,\n\t\t\t\t\tincludeBalanceChanges: options.include?.balanceChanges ?? false,\n\t\t\t\t\tincludeObjectTypes: options.include?.objectTypes ?? false,\n\t\t\t\t\tincludeCommandResults: options.include?.commandResults ?? false,\n\t\t\t\t\tincludeBcs: options.include?.bcs ?? false,\n\t\t\t\t\tchecksEnabled: options.checksEnabled ?? true,\n\t\t\t\t},\n\t\t\t},\n\t\t\t(result) => result.simulateTransaction,\n\t\t);\n\n\t\tconst transactionResult = parseTransaction(result.effects?.transaction!, options.include);\n\n\t\tconst commandResults =\n\t\t\toptions.include?.commandResults && result.outputs\n\t\t\t\t? result.outputs.map((output) => ({\n\t\t\t\t\t\treturnValues: (output.returnValues ?? []).map((rv) => ({\n\t\t\t\t\t\t\tbcs: rv.value?.bcs ? fromBase64(rv.value.bcs) : null,\n\t\t\t\t\t\t})),\n\t\t\t\t\t\tmutatedReferences: (output.mutatedReferences ?? []).map((mr) => ({\n\t\t\t\t\t\t\tbcs: mr.value?.bcs ? fromBase64(mr.value.bcs) : null,\n\t\t\t\t\t\t})),\n\t\t\t\t\t}))\n\t\t\t\t: undefined;\n\n\t\tif (transactionResult.$kind === 'Transaction') {\n\t\t\treturn {\n\t\t\t\t$kind: 'Transaction',\n\t\t\t\tTransaction: transactionResult.Transaction,\n\t\t\t\tcommandResults:\n\t\t\t\t\tcommandResults as SuiClientTypes.SimulateTransactionResult<Include>['commandResults'],\n\t\t\t};\n\t\t} else {\n\t\t\treturn {\n\t\t\t\t$kind: 'FailedTransaction',\n\t\t\t\tFailedTransaction: transactionResult.FailedTransaction,\n\t\t\t\tcommandResults:\n\t\t\t\t\tcommandResults as SuiClientTypes.SimulateTransactionResult<Include>['commandResults'],\n\t\t\t};\n\t\t}\n\t}\n\tasync getReferenceGasPrice(): Promise<SuiClientTypes.GetReferenceGasPriceResponse> {\n\t\tconst result = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: GetReferenceGasPriceDocument,\n\t\t\t},\n\t\t\t(result) => result.epoch?.referenceGasPrice,\n\t\t);\n\n\t\treturn {\n\t\t\treferenceGasPrice: result ?? '',\n\t\t};\n\t}\n\n\tasync getProtocolConfig(): Promise<SuiClientTypes.GetProtocolConfigResponse> {\n\t\tconst result = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: GetProtocolConfigDocument,\n\t\t\t},\n\t\t\t(result) => result.epoch?.protocolConfigs,\n\t\t);\n\n\t\tconst featureFlags: Record<string, boolean> = {};\n\t\tfor (const flag of result?.featureFlags ?? []) {\n\t\t\tfeatureFlags[flag.key] = flag.value;\n\t\t}\n\t\tconst attributes: Record<string, string | null> = {};\n\t\tfor (const config of result?.configs ?? []) {\n\t\t\tattributes[config.key] = config.value ?? null;\n\t\t}\n\n\t\treturn {\n\t\t\tprotocolConfig: {\n\t\t\t\tprotocolVersion: result?.protocolVersion?.toString() ?? (null as never),\n\t\t\t\tfeatureFlags,\n\t\t\t\tattributes,\n\t\t\t},\n\t\t};\n\t}\n\n\tasync getCurrentSystemState(): Promise<SuiClientTypes.GetCurrentSystemStateResponse> {\n\t\tconst result = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: GetCurrentSystemStateDocument,\n\t\t\t},\n\t\t\t(result) => result.epoch,\n\t\t);\n\n\t\tif (!result) {\n\t\t\tthrow new Error('Epoch data not found in response');\n\t\t}\n\n\t\tconst startMs = result.startTimestamp\n\t\t\t? new Date(result.startTimestamp).getTime().toString()\n\t\t\t: (null as never);\n\n\t\t// Parse the system state JSON from the MoveValue\n\t\tconst systemStateJson = result.systemState?.json as\n\t\t\t| {\n\t\t\t\t\tsystem_state_version?: string | number;\n\t\t\t\t\tsafe_mode?: boolean;\n\t\t\t\t\tsafe_mode_storage_rewards?: string;\n\t\t\t\t\tsafe_mode_computation_rewards?: string;\n\t\t\t\t\tsafe_mode_storage_rebates?: string | number;\n\t\t\t\t\tsafe_mode_non_refundable_storage_fee?: string | number;\n\t\t\t\t\tparameters?: {\n\t\t\t\t\t\tepoch_duration_ms?: string | number;\n\t\t\t\t\t\tstake_subsidy_start_epoch?: string | number;\n\t\t\t\t\t\tmax_validator_count?: string | number;\n\t\t\t\t\t\tmin_validator_joining_stake?: string | number;\n\t\t\t\t\t\tvalidator_low_stake_threshold?: string | number;\n\t\t\t\t\t\tvalidator_low_stake_grace_period?: string | number;\n\t\t\t\t\t};\n\t\t\t\t\tstorage_fund?: {\n\t\t\t\t\t\ttotal_object_storage_rebates?: string;\n\t\t\t\t\t\tnon_refundable_balance?: string;\n\t\t\t\t\t};\n\t\t\t\t\tstake_subsidy?: {\n\t\t\t\t\t\tbalance?: string;\n\t\t\t\t\t\tdistribution_counter?: string | number;\n\t\t\t\t\t\tcurrent_distribution_amount?: string | number;\n\t\t\t\t\t\tstake_subsidy_period_length?: string | number;\n\t\t\t\t\t\tstake_subsidy_decrease_rate?: number;\n\t\t\t\t\t};\n\t\t\t }\n\t\t\t| undefined;\n\n\t\treturn {\n\t\t\tsystemState: {\n\t\t\t\tsystemStateVersion: systemStateJson?.system_state_version?.toString() ?? (null as never),\n\t\t\t\tepoch: result.epochId?.toString() ?? (null as never),\n\t\t\t\tprotocolVersion: result.protocolConfigs?.protocolVersion?.toString() ?? (null as never),\n\t\t\t\treferenceGasPrice: result.referenceGasPrice ?? (null as never),\n\t\t\t\tepochStartTimestampMs: startMs,\n\t\t\t\tsafeMode: systemStateJson?.safe_mode ?? false,\n\t\t\t\tsafeModeStorageRewards: systemStateJson?.safe_mode_storage_rewards ?? (null as never),\n\t\t\t\tsafeModeComputationRewards:\n\t\t\t\t\tsystemStateJson?.safe_mode_computation_rewards ?? (null as never),\n\t\t\t\tsafeModeStorageRebates:\n\t\t\t\t\tsystemStateJson?.safe_mode_storage_rebates?.toString() ?? (null as never),\n\t\t\t\tsafeModeNonRefundableStorageFee:\n\t\t\t\t\tsystemStateJson?.safe_mode_non_refundable_storage_fee?.toString() ?? (null as never),\n\t\t\t\tparameters: {\n\t\t\t\t\tepochDurationMs:\n\t\t\t\t\t\tsystemStateJson?.parameters?.epoch_duration_ms?.toString() ?? (null as never),\n\t\t\t\t\tstakeSubsidyStartEpoch:\n\t\t\t\t\t\tsystemStateJson?.parameters?.stake_subsidy_start_epoch?.toString() ?? (null as never),\n\t\t\t\t\tmaxValidatorCount:\n\t\t\t\t\t\tsystemStateJson?.parameters?.max_validator_count?.toString() ?? (null as never),\n\t\t\t\t\tminValidatorJoiningStake:\n\t\t\t\t\t\tsystemStateJson?.parameters?.min_validator_joining_stake?.toString() ?? (null as never),\n\t\t\t\t\tvalidatorLowStakeThreshold:\n\t\t\t\t\t\tsystemStateJson?.parameters?.validator_low_stake_threshold?.toString() ??\n\t\t\t\t\t\t(null as never),\n\t\t\t\t\tvalidatorLowStakeGracePeriod:\n\t\t\t\t\t\tsystemStateJson?.parameters?.validator_low_stake_grace_period?.toString() ??\n\t\t\t\t\t\t(null as never),\n\t\t\t\t},\n\t\t\t\tstorageFund: {\n\t\t\t\t\ttotalObjectStorageRebates:\n\t\t\t\t\t\tsystemStateJson?.storage_fund?.total_object_storage_rebates ?? (null as never),\n\t\t\t\t\tnonRefundableBalance:\n\t\t\t\t\t\tsystemStateJson?.storage_fund?.non_refundable_balance ?? (null as never),\n\t\t\t\t},\n\t\t\t\tstakeSubsidy: {\n\t\t\t\t\tbalance: systemStateJson?.stake_subsidy?.balance ?? (null as never),\n\t\t\t\t\tdistributionCounter:\n\t\t\t\t\t\tsystemStateJson?.stake_subsidy?.distribution_counter?.toString() ?? (null as never),\n\t\t\t\t\tcurrentDistributionAmount:\n\t\t\t\t\t\tsystemStateJson?.stake_subsidy?.current_distribution_amount?.toString() ??\n\t\t\t\t\t\t(null as never),\n\t\t\t\t\tstakeSubsidyPeriodLength:\n\t\t\t\t\t\tsystemStateJson?.stake_subsidy?.stake_subsidy_period_length?.toString() ??\n\t\t\t\t\t\t(null as never),\n\t\t\t\t\tstakeSubsidyDecreaseRate:\n\t\t\t\t\t\tsystemStateJson?.stake_subsidy?.stake_subsidy_decrease_rate ?? (null as never),\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n\n\tasync listDynamicFields(\n\t\toptions: SuiClientTypes.ListDynamicFieldsOptions,\n\t): Promise<SuiClientTypes.ListDynamicFieldsResponse> {\n\t\treturn this.#graphqlClient.listDynamicFields(options);\n\t}\n\n\tasync verifyZkLoginSignature(\n\t\toptions: SuiClientTypes.VerifyZkLoginSignatureOptions,\n\t): Promise<SuiClientTypes.ZkLoginVerifyResponse> {\n\t\tconst intentScope =\n\t\t\toptions.intentScope === 'TransactionData'\n\t\t\t\t? ZkLoginIntentScope.TransactionData\n\t\t\t\t: ZkLoginIntentScope.PersonalMessage;\n\n\t\tconst { data } = await this.#graphqlClient.query({\n\t\t\tquery: VerifyZkLoginSignatureDocument,\n\t\t\tvariables: {\n\t\t\t\tbytes: options.bytes,\n\t\t\t\tsignature: options.signature,\n\t\t\t\tintentScope,\n\t\t\t\tauthor: options.address,\n\t\t\t},\n\t\t});\n\n\t\treturn {\n\t\t\tsuccess: data?.verifyZkLoginSignature?.success ?? false,\n\t\t\terrors: [],\n\t\t};\n\t}\n\n\tasync defaultNameServiceName(\n\t\toptions: SuiClientTypes.DefaultNameServiceNameOptions,\n\t): Promise<SuiClientTypes.DefaultNameServiceNameResponse> {\n\t\tconst name = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: DefaultSuinsNameDocument,\n\t\t\t\tsignal: options.signal,\n\t\t\t\tvariables: {\n\t\t\t\t\taddress: options.address,\n\t\t\t\t},\n\t\t\t},\n\t\t\t(result) => result.address?.defaultNameRecord?.domain ?? null,\n\t\t);\n\n\t\treturn {\n\t\t\tdata: { name: name },\n\t\t};\n\t}\n\n\tasync getMoveFunction(\n\t\toptions: SuiClientTypes.GetMoveFunctionOptions,\n\t): Promise<SuiClientTypes.GetMoveFunctionResponse> {\n\t\tconst moveFunction = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: GetMoveFunctionDocument,\n\t\t\t\tvariables: {\n\t\t\t\t\tpackage: (await this.mvr.resolvePackage({ package: options.packageId })).package,\n\t\t\t\t\tmodule: options.moduleName,\n\t\t\t\t\tfunction: options.name,\n\t\t\t\t},\n\t\t\t},\n\t\t\t(result) => result.package?.module?.function,\n\t\t);\n\n\t\tlet visibility: 'public' | 'private' | 'friend' | 'unknown' = 'unknown';\n\n\t\tswitch (moveFunction.visibility) {\n\t\t\tcase 'PUBLIC':\n\t\t\t\tvisibility = 'public';\n\t\t\t\tbreak;\n\t\t\tcase 'PRIVATE':\n\t\t\t\tvisibility = 'private';\n\t\t\t\tbreak;\n\t\t\tcase 'FRIEND':\n\t\t\t\tvisibility = 'friend';\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn {\n\t\t\tfunction: {\n\t\t\t\tpackageId: normalizeSuiAddress(options.packageId),\n\t\t\t\tmoduleName: options.moduleName,\n\t\t\t\tname: moveFunction.name,\n\t\t\t\tvisibility,\n\t\t\t\tisEntry: moveFunction.isEntry ?? false,\n\t\t\t\ttypeParameters:\n\t\t\t\t\tmoveFunction.typeParameters?.map(({ constraints }) => ({\n\t\t\t\t\t\tisPhantom: false,\n\t\t\t\t\t\tconstraints:\n\t\t\t\t\t\t\tconstraints.map((constraint) => {\n\t\t\t\t\t\t\t\tswitch (constraint) {\n\t\t\t\t\t\t\t\t\tcase 'COPY':\n\t\t\t\t\t\t\t\t\t\treturn 'copy';\n\t\t\t\t\t\t\t\t\tcase 'DROP':\n\t\t\t\t\t\t\t\t\t\treturn 'drop';\n\t\t\t\t\t\t\t\t\tcase 'STORE':\n\t\t\t\t\t\t\t\t\t\treturn 'store';\n\t\t\t\t\t\t\t\t\tcase 'KEY':\n\t\t\t\t\t\t\t\t\t\treturn 'key';\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\treturn 'unknown';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}) ?? [],\n\t\t\t\t\t})) ?? [],\n\t\t\t\tparameters:\n\t\t\t\t\tmoveFunction.parameters?.map((param) => parseNormalizedSuiMoveType(param.signature)) ??\n\t\t\t\t\t[],\n\t\t\t\treturns:\n\t\t\t\t\tmoveFunction.return?.map(({ signature }) => parseNormalizedSuiMoveType(signature)) ?? [],\n\t\t\t},\n\t\t};\n\t}\n\n\tasync getChainIdentifier(\n\t\t_options?: SuiClientTypes.GetChainIdentifierOptions,\n\t): Promise<SuiClientTypes.GetChainIdentifierResponse> {\n\t\treturn this.cache.read(['chainIdentifier'], async () => {\n\t\t\tconst checkpoint = await this.#graphqlQuery(\n\t\t\t\t{\n\t\t\t\t\tquery: GetChainIdentifierDocument,\n\t\t\t\t},\n\t\t\t\t(result) => result.checkpoint,\n\t\t\t);\n\t\t\tif (!checkpoint?.digest) {\n\t\t\t\tthrow new Error('Genesis checkpoint digest not found');\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tchainIdentifier: checkpoint.digest,\n\t\t\t};\n\t\t});\n\t}\n\n\tresolveTransactionPlugin() {\n\t\tconst graphqlClient = this.#graphqlClient;\n\t\treturn async function resolveTransactionData(\n\t\t\ttransactionData: TransactionDataBuilder,\n\t\t\toptions: BuildTransactionOptions,\n\t\t\tnext: () => Promise<void>,\n\t\t) {\n\t\t\tconst snapshot = transactionData.snapshot();\n\t\t\t// If sender is not set, use a dummy address for resolution purposes\n\t\t\tif (!snapshot.sender) {\n\t\t\t\tsnapshot.sender = '0x0000000000000000000000000000000000000000000000000000000000000000';\n\t\t\t}\n\t\t\tconst grpcTransaction = transactionDataToGrpcTransaction(snapshot);\n\t\t\tconst transactionJson = GrpcTransactionType.toJson(grpcTransaction);\n\n\t\t\tconst { data, errors } = await graphqlClient.query({\n\t\t\t\tquery: ResolveTransactionDocument,\n\t\t\t\tvariables: {\n\t\t\t\t\ttransaction: transactionJson,\n\t\t\t\t\tdoGasSelection:\n\t\t\t\t\t\t!options.onlyTransactionKind &&\n\t\t\t\t\t\t(snapshot.gasData.budget == null || snapshot.gasData.payment == null),\n\t\t\t\t},\n\t\t\t});\n\n\t\t\thandleGraphQLErrors(errors);\n\n\t\t\tconst transactionEffects = data?.simulateTransaction?.effects?.transaction?.effects;\n\t\t\tif (!options.onlyTransactionKind && transactionEffects?.status === ExecutionStatus.Failure) {\n\t\t\t\tconst executionError = parseGraphQLExecutionError(transactionEffects.executionError);\n\t\t\t\tconst errorMessage = executionError?.message ?? 'Transaction failed';\n\t\t\t\tthrow new SimulationError(`Transaction resolution failed: ${errorMessage}`, {\n\t\t\t\t\texecutionError,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst resolvedTransactionBcs =\n\t\t\t\tdata?.simulateTransaction?.effects?.transaction?.transactionBcs;\n\n\t\t\tif (!resolvedTransactionBcs) {\n\t\t\t\tthrow new Error('simulateTransaction did not return resolved transaction data');\n\t\t\t}\n\n\t\t\tconst resolvedBuilder = TransactionDataBuilder.fromBytes(fromBase64(resolvedTransactionBcs));\n\t\t\tconst resolved = resolvedBuilder.snapshot();\n\n\t\t\tif (options.onlyTransactionKind) {\n\t\t\t\ttransactionData.applyResolvedData({\n\t\t\t\t\t...resolved,\n\t\t\t\t\tgasData: {\n\t\t\t\t\t\tbudget: null,\n\t\t\t\t\t\towner: null,\n\t\t\t\t\t\tpayment: null,\n\t\t\t\t\t\tprice: null,\n\t\t\t\t\t},\n\t\t\t\t\texpiration: null,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\ttransactionData.applyResolvedData(resolved);\n\t\t\t}\n\n\t\t\treturn await next();\n\t\t};\n\t}\n}\nexport type GraphQLResponseErrors = Array<{\n\tmessage: string;\n\tlocations?: { line: number; column: number }[];\n\tpath?: (string | number)[];\n}>;\n\nfunction mapDisplay(\n\tinclude: boolean | undefined,\n\tdisplay: { output?: unknown | null; errors?: unknown | null } | null | undefined,\n): SuiClientTypes.Display | null | undefined {\n\tif (!include) return undefined;\n\tif (!display) return null;\n\treturn {\n\t\toutput: (display.output as Record<string, unknown> | null) ?? null,\n\t\terrors: (display.errors as Record<string, string> | null) ?? null,\n\t};\n}\n\nfunction handleGraphQLErrors(errors: GraphQLResponseErrors | undefined): void {\n\tif (!errors || errors.length === 0) return;\n\n\tconst errorInstances = errors.map((error) => new GraphQLResponseError(error));\n\n\tif (errorInstances.length === 1) {\n\t\tthrow errorInstances[0];\n\t}\n\n\tthrow new AggregateError(errorInstances);\n}\n\nclass GraphQLResponseError extends Error {\n\tlocations?: Array<{ line: number; column: number }>;\n\n\tconstructor(error: GraphQLResponseErrors[0]) {\n\t\tsuper(error.message);\n\t\tthis.locations = error.locations;\n\t}\n}\n\nfunction mapOwner(owner: Object_Owner_FieldsFragment): SuiClientTypes.ObjectOwner {\n\tswitch (owner.__typename) {\n\t\tcase 'AddressOwner':\n\t\t\treturn { $kind: 'AddressOwner', AddressOwner: owner.address?.address! };\n\t\tcase 'ConsensusAddressOwner':\n\t\t\treturn {\n\t\t\t\t$kind: 'ConsensusAddressOwner',\n\t\t\t\tConsensusAddressOwner: {\n\t\t\t\t\towner: owner?.address?.address!,\n\t\t\t\t\tstartVersion: String(owner.startVersion),\n\t\t\t\t},\n\t\t\t};\n\t\tcase 'ObjectOwner':\n\t\t\treturn { $kind: 'ObjectOwner', ObjectOwner: owner.address?.address! };\n\t\tcase 'Immutable':\n\t\t\treturn { $kind: 'Immutable', Immutable: true };\n\t\tcase 'Shared':\n\t\t\treturn {\n\t\t\t\t$kind: 'Shared',\n\t\t\t\tShared: { initialSharedVersion: String(owner.initialSharedVersion) },\n\t\t\t};\n\t}\n}\n\nfunction parseTransaction<Include extends SuiClientTypes.TransactionInclude = {}>(\n\ttransaction: Transaction_FieldsFragment,\n\tinclude?: Include,\n): SuiClientTypes.TransactionResult<Include> {\n\tconst objectTypes: Record<string, string> = {};\n\n\tif (include?.objectTypes) {\n\t\tconst effectsJson = transaction.effects?.effectsJson;\n\t\tif (effectsJson) {\n\t\t\tconst effects = TransactionEffectsType.fromJson(\n\t\t\t\teffectsJson as Parameters<typeof TransactionEffectsType.fromJson>[0],\n\t\t\t);\n\t\t\teffects.changedObjects?.forEach((change) => {\n\t\t\t\tif (change.objectId && change.objectType) {\n\t\t\t\t\tobjectTypes[change.objectId] = change.objectType;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tconst objectChanges = transaction.effects?.objectChanges?.nodes;\n\t\tif (objectChanges) {\n\t\t\tfor (const change of objectChanges) {\n\t\t\t\tconst type = change.outputState?.asMoveObject?.contents?.type?.repr;\n\t\t\t\tif (change.address && type) {\n\t\t\t\t\tobjectTypes[change.address] = type;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tlet balanceChanges: SuiClientTypes.BalanceChange[] | undefined;\n\tif (include?.balanceChanges) {\n\t\tconst balanceChangesJson = transaction.effects?.balanceChangesJson;\n\t\tif (Array.isArray(balanceChangesJson)) {\n\t\t\tbalanceChanges = balanceChangesJson.map((json) => {\n\t\t\t\tconst change = BalanceChangeType.fromJson(\n\t\t\t\t\tjson as Parameters<typeof BalanceChangeType.fromJson>[0],\n\t\t\t\t);\n\t\t\t\treturn {\n\t\t\t\t\tcoinType: change.coinType!,\n\t\t\t\t\taddress: change.address!,\n\t\t\t\t\tamount: change.amount!,\n\t\t\t\t};\n\t\t\t});\n\t\t} else {\n\t\t\tbalanceChanges = [];\n\t\t}\n\t}\n\n\t// Get status from GraphQL response\n\tconst status: SuiClientTypes.ExecutionStatus =\n\t\ttransaction.effects?.status === ExecutionStatus.Success\n\t\t\t? { success: true, error: null }\n\t\t\t: {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\terror: parseGraphQLExecutionError(transaction.effects?.executionError),\n\t\t\t\t};\n\n\tlet transactionData: SuiClientTypes.TransactionData | undefined;\n\tif (include?.transaction && transaction.transactionJson) {\n\t\tconst grpcTx = GrpcTransactionType.fromJson(\n\t\t\ttransaction.transactionJson as Parameters<typeof GrpcTransactionType.fromJson>[0],\n\t\t);\n\t\tconst resolved = grpcTransactionToTransactionData(grpcTx);\n\t\ttransactionData = {\n\t\t\tgasData: resolved.gasData,\n\t\t\tsender: resolved.sender,\n\t\t\texpiration: resolved.expiration,\n\t\t\tcommands: resolved.commands,\n\t\t\tinputs: resolved.inputs,\n\t\t\tversion: resolved.version,\n\t\t};\n\t}\n\n\tconst bcsBytes =\n\t\tinclude?.bcs && transaction.transactionBcs ? fromBase64(transaction.transactionBcs) : undefined;\n\n\tconst result: SuiClientTypes.Transaction<Include> = {\n\t\tdigest: transaction.digest!,\n\t\tstatus,\n\t\teffects: (include?.effects\n\t\t\t? parseTransactionEffectsBcs(fromBase64(transaction.effects?.effectsBcs!))\n\t\t\t: undefined) as SuiClientTypes.Transaction<Include>['effects'],\n\t\tepoch: transaction.effects?.epoch?.epochId?.toString() ?? null,\n\t\tobjectTypes: (include?.objectTypes\n\t\t\t? objectTypes\n\t\t\t: undefined) as SuiClientTypes.Transaction<Include>['objectTypes'],\n\t\ttransaction: transactionData as SuiClientTypes.Transaction<Include>['transaction'],\n\t\tbcs: bcsBytes as SuiClientTypes.Transaction<Include>['bcs'],\n\t\tsignatures: transaction.signatures.map((sig) => sig.signatureBytes!),\n\t\tbalanceChanges: balanceChanges as SuiClientTypes.Transaction<Include>['balanceChanges'],\n\t\tevents: (include?.events\n\t\t\t? (transaction.effects?.events?.nodes.map((event) => {\n\t\t\t\t\tconst eventType = event.contents?.type?.repr!;\n\t\t\t\t\tconst [packageId, module] = eventType.split('::');\n\t\t\t\t\treturn {\n\t\t\t\t\t\tpackageId,\n\t\t\t\t\t\tmodule,\n\t\t\t\t\t\tsender: event.sender?.address!,\n\t\t\t\t\t\teventType,\n\t\t\t\t\t\tbcs: event.contents?.bcs ? fromBase64(event.contents.bcs) : new Uint8Array(),\n\t\t\t\t\t\tjson: (event.contents?.json as Record<string, unknown>) ?? null,\n\t\t\t\t\t};\n\t\t\t\t}) ?? [])\n\t\t\t: undefined) as SuiClientTypes.Transaction<Include>['events'],\n\t};\n\n\treturn status.success\n\t\t? { $kind: 'Transaction', Transaction: result, FailedTransaction: undefined as never }\n\t\t: { $kind: 'FailedTransaction', Transaction: undefined as never, FailedTransaction: result };\n}\n\nfunction parseNormalizedSuiMoveType(type: OpenMoveTypeSignature): SuiClientTypes.OpenSignature {\n\tlet reference: 'mutable' | 'immutable' | null = null;\n\n\tif (type.ref === '&') {\n\t\treference = 'immutable';\n\t} else if (type.ref === '&mut') {\n\t\treference = 'mutable';\n\t}\n\n\treturn {\n\t\treference,\n\t\tbody: parseNormalizedSuiMoveTypeBody(type.body),\n\t};\n}\n\nfunction parseGraphQLExecutionError(\n\texecutionError: GraphQLExecutionError | null | undefined,\n): SuiClientTypes.ExecutionError {\n\tconst name = mapGraphQLExecutionErrorKind(executionError);\n\n\tif (name === 'MoveAbort' && executionError?.abortCode != null) {\n\t\tconst location = parseGraphQLMoveLocation(executionError);\n\t\tconst cleverError = parseGraphQLCleverError(executionError);\n\t\tconst commandMatch = executionError.message?.match(/in (\\d+)\\w* command/);\n\t\tconst command = commandMatch ? parseInt(commandMatch[1], 10) - 1 : undefined;\n\n\t\treturn {\n\t\t\t$kind: 'MoveAbort',\n\t\t\tmessage: formatMoveAbortMessage({\n\t\t\t\tcommand,\n\t\t\t\tlocation: location\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tpackage: location.package,\n\t\t\t\t\t\t\tmodule: location.module,\n\t\t\t\t\t\t\tfunctionName: location.functionName,\n\t\t\t\t\t\t\tinstruction: location.instruction,\n\t\t\t\t\t\t}\n\t\t\t\t\t: undefined,\n\t\t\t\tabortCode: executionError.abortCode!,\n\t\t\t\tcleverError: cleverError\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tlineNumber: cleverError.lineNumber,\n\t\t\t\t\t\t\tconstantName: cleverError.constantName,\n\t\t\t\t\t\t\tvalue: cleverError.value,\n\t\t\t\t\t\t}\n\t\t\t\t\t: undefined,\n\t\t\t}),\n\t\t\tcommand,\n\t\t\tMoveAbort: {\n\t\t\t\tabortCode: executionError.abortCode!,\n\t\t\t\tlocation,\n\t\t\t\tcleverError,\n\t\t\t},\n\t\t};\n\t}\n\n\treturn {\n\t\t$kind: 'Unknown',\n\t\tmessage: executionError?.message ?? 'Transaction failed',\n\t\tUnknown: null,\n\t};\n}\n\nfunction mapGraphQLExecutionErrorKind(\n\texecutionError: GraphQLExecutionError | null | undefined,\n): string {\n\tif (executionError?.abortCode != null) {\n\t\treturn 'MoveAbort';\n\t}\n\n\tconst match = executionError?.message?.match(/^(\\w+)/);\n\treturn match?.[1] ?? 'Unknown';\n}\n\nfunction parseGraphQLMoveLocation(\n\texecutionError: GraphQLExecutionError,\n): SuiClientTypes.MoveLocation | undefined {\n\tconst hasLocation = executionError.module?.package?.address && executionError.module?.name;\n\tif (!hasLocation) {\n\t\treturn undefined;\n\t}\n\n\treturn {\n\t\tpackage: executionError.module?.package?.address,\n\t\tmodule: executionError.module?.name,\n\t\tfunctionName: executionError.function?.name,\n\t\tinstruction: executionError.instructionOffset ?? undefined,\n\t};\n}\n\nfunction parseGraphQLCleverError(\n\texecutionError: GraphQLExecutionError,\n): SuiClientTypes.CleverError | undefined {\n\tconst hasCleverError = executionError.identifier || executionError.constant;\n\tif (!hasCleverError) {\n\t\treturn undefined;\n\t}\n\n\treturn {\n\t\tconstantName: executionError.identifier ?? undefined,\n\t\tvalue: executionError.constant ?? undefined,\n\t\tlineNumber: executionError.sourceLineNumber ?? undefined,\n\t};\n}\n\nfunction parseNormalizedSuiMoveTypeBody(\n\ttype: OpenMoveTypeSignatureBody,\n): SuiClientTypes.OpenSignatureBody {\n\tswitch (type) {\n\t\tcase 'address':\n\t\t\treturn { $kind: 'address' };\n\t\tcase 'bool':\n\t\t\treturn { $kind: 'bool' };\n\t\tcase 'u8':\n\t\t\treturn { $kind: 'u8' };\n\t\tcase 'u16':\n\t\t\treturn { $kind: 'u16' };\n\t\tcase 'u32':\n\t\t\treturn { $kind: 'u32' };\n\t\tcase 'u64':\n\t\t\treturn { $kind: 'u64' };\n\t\tcase 'u128':\n\t\t\treturn { $kind: 'u128' };\n\t\tcase 'u256':\n\t\t\treturn { $kind: 'u256' };\n\t}\n\n\tif (typeof type === 'string') {\n\t\tthrow new Error(`Unknown type: ${type}`);\n\t}\n\n\tif ('vector' in type) {\n\t\treturn {\n\t\t\t$kind: 'vector',\n\t\t\tvector: parseNormalizedSuiMoveTypeBody(type.vector),\n\t\t};\n\t}\n\n\tif ('datatype' in type) {\n\t\treturn {\n\t\t\t$kind: 'datatype',\n\t\t\tdatatype: {\n\t\t\t\ttypeName: `${normalizeSuiAddress(type.datatype.package)}::${type.datatype.module}::${type.datatype.type}`,\n\t\t\t\ttypeParameters: type.datatype.typeParameters.map((t) => parseNormalizedSuiMoveTypeBody(t)),\n\t\t\t},\n\t\t};\n\t}\n\n\tif ('typeParameter' in type) {\n\t\treturn {\n\t\t\t$kind: 'typeParameter',\n\t\t\tindex: type.typeParameter,\n\t\t};\n\t}\n\n\tthrow new Error(`Unknown type: ${JSON.stringify(type)}`);\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"core.mjs","names":["#graphqlClient","#graphqlQuery","result","GrpcTransactionType","TransactionEffectsType","BalanceChangeType"],"sources":["../../src/graphql/core.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { CoreClient } from '../client/core.js';\nimport type { SuiClientTypes } from '../client/types.js';\nimport { SUI_TYPE_ARG } from '../utils/constants.js';\nimport type { GraphQLQueryOptions, SuiGraphQLClient } from './client.js';\nimport type {\n\tObject_Owner_FieldsFragment,\n\tTransaction_FieldsFragment,\n} from './generated/queries.js';\n\ntype GraphQLExecutionError = NonNullable<\n\tNonNullable<Transaction_FieldsFragment['effects']>['executionError']\n>;\nimport {\n\tDefaultSuinsNameDocument,\n\tExecuteTransactionDocument,\n\tExecutionStatus,\n\tGetAllBalancesDocument,\n\tGetBalanceDocument,\n\tGetChainIdentifierDocument,\n\tGetCoinMetadataDocument,\n\tGetCoinsDocument,\n\tGetCurrentSystemStateDocument,\n\tGetMoveFunctionDocument,\n\tGetProtocolConfigDocument,\n\tGetOwnedObjectsDocument,\n\tGetReferenceGasPriceDocument,\n\tGetTransactionBlockDocument,\n\tMultiGetObjectsDocument,\n\tResolveTransactionDocument,\n\tSimulateTransactionDocument,\n\tVerifyZkLoginSignatureDocument,\n\tZkLoginIntentScope,\n} from './generated/queries.js';\nimport { ObjectError, SimulationError } from '../client/errors.js';\nimport { chunk, fromBase64, toBase64 } from '@mysten/utils';\nimport { normalizeSuiAddress } from '../utils/sui-types.js';\nimport { formatMoveAbortMessage, parseTransactionEffectsBcs } from '../client/utils.js';\nimport type { OpenMoveTypeSignatureBody, OpenMoveTypeSignature } from './types.js';\nimport {\n\ttransactionDataToGrpcTransaction,\n\ttransactionToGrpcJson,\n\tgrpcTransactionToTransactionData,\n} from '../client/transaction-resolver.js';\nimport { BalanceChange as BalanceChangeType } from '../grpc/proto/sui/rpc/v2/balance_change.js';\nimport { TransactionEffects as TransactionEffectsType } from '../grpc/proto/sui/rpc/v2/effects.js';\nimport { Transaction as GrpcTransactionType } from '../grpc/proto/sui/rpc/v2/transaction.js';\nimport { TransactionDataBuilder } from '../transactions/TransactionData.js';\nimport type { BuildTransactionOptions } from '../transactions/index.js';\n\nexport class GraphQLCoreClient extends CoreClient {\n\t#graphqlClient: SuiGraphQLClient;\n\n\tconstructor({\n\t\tgraphqlClient,\n\t\tmvr,\n\t}: {\n\t\tgraphqlClient: SuiGraphQLClient;\n\t\tmvr?: SuiClientTypes.MvrOptions;\n\t}) {\n\t\tsuper({ network: graphqlClient.network, base: graphqlClient, mvr });\n\t\tthis.#graphqlClient = graphqlClient;\n\t}\n\n\tasync #graphqlQuery<\n\t\tResult = Record<string, unknown>,\n\t\tVariables = Record<string, unknown>,\n\t\tData = Result,\n\t>(\n\t\toptions: GraphQLQueryOptions<Result, Variables>,\n\t\tgetData?: (result: Result) => Data,\n\t): Promise<NonNullable<Data>> {\n\t\tconst { data, errors } = await this.#graphqlClient.query(options);\n\n\t\thandleGraphQLErrors(errors);\n\n\t\tconst extractedData = data && (getData ? getData(data) : data);\n\n\t\tif (extractedData == null) {\n\t\t\tthrow new Error('Missing response data');\n\t\t}\n\n\t\treturn extractedData as NonNullable<Data>;\n\t}\n\n\tasync getObjects<Include extends SuiClientTypes.ObjectInclude = {}>(\n\t\toptions: SuiClientTypes.GetObjectsOptions<Include>,\n\t): Promise<SuiClientTypes.GetObjectsResponse<Include>> {\n\t\tconst batches = chunk(options.objectIds, 50);\n\t\tconst results: SuiClientTypes.GetObjectsResponse<Include>['objects'] = [];\n\n\t\tfor (const batch of batches) {\n\t\t\tconst page = await this.#graphqlQuery(\n\t\t\t\t{\n\t\t\t\t\tquery: MultiGetObjectsDocument,\n\t\t\t\t\tvariables: {\n\t\t\t\t\t\tobjectKeys: batch.map((address) => ({ address })),\n\t\t\t\t\t\tincludeContent: options.include?.content ?? false,\n\t\t\t\t\t\tincludePreviousTransaction: options.include?.previousTransaction ?? false,\n\t\t\t\t\t\tincludeObjectBcs: options.include?.objectBcs ?? false,\n\t\t\t\t\t\tincludeJson: options.include?.json ?? false,\n\t\t\t\t\t\tincludeDisplay: options.include?.display ?? false,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t(result) => result.multiGetObjects,\n\t\t\t);\n\t\t\tresults.push(\n\t\t\t\t...batch\n\t\t\t\t\t.map((id) => normalizeSuiAddress(id))\n\t\t\t\t\t.map(\n\t\t\t\t\t\t(id) =>\n\t\t\t\t\t\t\tpage.find((obj) => obj?.address === id) ??\n\t\t\t\t\t\t\tnew ObjectError('notFound', `Object ${id} not found`),\n\t\t\t\t\t)\n\t\t\t\t\t.map((obj) => {\n\t\t\t\t\t\tif (obj instanceof ObjectError) {\n\t\t\t\t\t\t\treturn obj;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst bcsContent = obj.asMoveObject?.contents?.bcs\n\t\t\t\t\t\t\t? fromBase64(obj.asMoveObject.contents.bcs)\n\t\t\t\t\t\t\t: undefined;\n\n\t\t\t\t\t\tconst objectBcs = obj.objectBcs ? fromBase64(obj.objectBcs) : undefined;\n\n\t\t\t\t\t\t// Determine object type: package or Move object\n\t\t\t\t\t\t// GraphQL already returns normalized struct tags\n\t\t\t\t\t\tlet type: string;\n\t\t\t\t\t\tif (obj.asMovePackage) {\n\t\t\t\t\t\t\ttype = 'package';\n\t\t\t\t\t\t} else if (obj.asMoveObject?.contents?.type?.repr) {\n\t\t\t\t\t\t\ttype = obj.asMoveObject.contents.type.repr;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttype = '';\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst jsonContent = options.include?.json\n\t\t\t\t\t\t\t? obj.asMoveObject?.contents?.json\n\t\t\t\t\t\t\t\t? (obj.asMoveObject.contents.json as Record<string, unknown>)\n\t\t\t\t\t\t\t\t: null\n\t\t\t\t\t\t\t: undefined;\n\n\t\t\t\t\t\tconst displayData = mapDisplay(\n\t\t\t\t\t\t\toptions.include?.display,\n\t\t\t\t\t\t\tobj.asMoveObject?.contents?.display,\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tobjectId: obj.address,\n\t\t\t\t\t\t\tversion: obj.version?.toString()!,\n\t\t\t\t\t\t\tdigest: obj.digest!,\n\t\t\t\t\t\t\towner: mapOwner(obj.owner!),\n\t\t\t\t\t\t\ttype,\n\t\t\t\t\t\t\tcontent: bcsContent as SuiClientTypes.Object<Include>['content'],\n\t\t\t\t\t\t\tpreviousTransaction: (obj.previousTransaction?.digest ??\n\t\t\t\t\t\t\t\tundefined) as SuiClientTypes.Object<Include>['previousTransaction'],\n\t\t\t\t\t\t\tobjectBcs: objectBcs as SuiClientTypes.Object<Include>['objectBcs'],\n\t\t\t\t\t\t\tjson: jsonContent as SuiClientTypes.Object<Include>['json'],\n\t\t\t\t\t\t\tdisplay: displayData as SuiClientTypes.Object<Include>['display'],\n\t\t\t\t\t\t};\n\t\t\t\t\t}),\n\t\t\t);\n\t\t}\n\n\t\treturn {\n\t\t\tobjects: results,\n\t\t};\n\t}\n\tasync listOwnedObjects<Include extends SuiClientTypes.ObjectInclude = {}>(\n\t\toptions: SuiClientTypes.ListOwnedObjectsOptions<Include>,\n\t): Promise<SuiClientTypes.ListOwnedObjectsResponse<Include>> {\n\t\tconst objects = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: GetOwnedObjectsDocument,\n\t\t\t\tvariables: {\n\t\t\t\t\towner: options.owner,\n\t\t\t\t\tlimit: options.limit,\n\t\t\t\t\tcursor: options.cursor,\n\t\t\t\t\tfilter: options.type\n\t\t\t\t\t\t? { type: (await this.mvr.resolveType({ type: options.type })).type }\n\t\t\t\t\t\t: undefined,\n\t\t\t\t\tincludeContent: options.include?.content ?? false,\n\t\t\t\t\tincludePreviousTransaction: options.include?.previousTransaction ?? false,\n\t\t\t\t\tincludeObjectBcs: options.include?.objectBcs ?? false,\n\t\t\t\t\tincludeJson: options.include?.json ?? false,\n\t\t\t\t\tincludeDisplay: options.include?.display ?? false,\n\t\t\t\t},\n\t\t\t},\n\t\t\t(result) => result.address?.objects,\n\t\t);\n\n\t\treturn {\n\t\t\tobjects: objects.nodes.map(\n\t\t\t\t(obj): SuiClientTypes.Object<Include> => ({\n\t\t\t\t\tobjectId: obj.address,\n\t\t\t\t\tversion: obj.version?.toString()!,\n\t\t\t\t\tdigest: obj.digest!,\n\t\t\t\t\towner: mapOwner(obj.owner!),\n\t\t\t\t\ttype: obj.contents?.type?.repr!,\n\t\t\t\t\tcontent: (obj.contents?.bcs\n\t\t\t\t\t\t? fromBase64(obj.contents.bcs)\n\t\t\t\t\t\t: undefined) as SuiClientTypes.Object<Include>['content'],\n\t\t\t\t\tpreviousTransaction: (obj.previousTransaction?.digest ??\n\t\t\t\t\t\tundefined) as SuiClientTypes.Object<Include>['previousTransaction'],\n\t\t\t\t\tobjectBcs: (obj.objectBcs\n\t\t\t\t\t\t? fromBase64(obj.objectBcs)\n\t\t\t\t\t\t: undefined) as SuiClientTypes.Object<Include>['objectBcs'],\n\t\t\t\t\tjson: (options.include?.json\n\t\t\t\t\t\t? obj.contents?.json\n\t\t\t\t\t\t\t? (obj.contents.json as Record<string, unknown>)\n\t\t\t\t\t\t\t: null\n\t\t\t\t\t\t: undefined) as SuiClientTypes.Object<Include>['json'],\n\t\t\t\t\tdisplay: mapDisplay(\n\t\t\t\t\t\toptions.include?.display,\n\t\t\t\t\t\tobj.contents?.display,\n\t\t\t\t\t) as SuiClientTypes.Object<Include>['display'],\n\t\t\t\t}),\n\t\t\t),\n\t\t\thasNextPage: objects.pageInfo.hasNextPage,\n\t\t\tcursor: objects.pageInfo.endCursor ?? null,\n\t\t};\n\t}\n\tasync listCoins(\n\t\toptions: SuiClientTypes.ListCoinsOptions,\n\t): Promise<SuiClientTypes.ListCoinsResponse> {\n\t\tconst coinType = options.coinType ?? SUI_TYPE_ARG;\n\t\tconst coins = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: GetCoinsDocument,\n\t\t\t\tvariables: {\n\t\t\t\t\towner: options.owner,\n\t\t\t\t\tcursor: options.cursor,\n\t\t\t\t\tfirst: options.limit,\n\t\t\t\t\ttype: `0x2::coin::Coin<${(await this.mvr.resolveType({ type: coinType })).type}>`,\n\t\t\t\t},\n\t\t\t},\n\t\t\t(result) => result.address?.objects,\n\t\t);\n\n\t\treturn {\n\t\t\tcursor: coins.pageInfo.endCursor ?? null,\n\t\t\thasNextPage: coins.pageInfo.hasNextPage,\n\t\t\tobjects: coins.nodes.map(\n\t\t\t\t(coin): SuiClientTypes.Coin => ({\n\t\t\t\t\tobjectId: coin.address,\n\t\t\t\t\tversion: coin.version?.toString()!,\n\t\t\t\t\tdigest: coin.digest!,\n\t\t\t\t\towner: mapOwner(coin.owner!),\n\t\t\t\t\ttype: coin.contents?.type?.repr!,\n\t\t\t\t\tbalance: (coin.contents?.json as { balance: string })?.balance,\n\t\t\t\t}),\n\t\t\t),\n\t\t};\n\t}\n\n\tasync getBalance(\n\t\toptions: SuiClientTypes.GetBalanceOptions,\n\t): Promise<SuiClientTypes.GetBalanceResponse> {\n\t\tconst coinType = options.coinType ?? SUI_TYPE_ARG;\n\t\tconst result = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: GetBalanceDocument,\n\t\t\t\tvariables: {\n\t\t\t\t\towner: options.owner,\n\t\t\t\t\tcoinType: (await this.mvr.resolveType({ type: coinType })).type,\n\t\t\t\t},\n\t\t\t},\n\t\t\t(result) => result.address?.balance,\n\t\t);\n\n\t\tconst addressBalance = BigInt(result.addressBalance ?? '0');\n\t\tconst coinBalance = BigInt(result.totalBalance ?? '0') - addressBalance;\n\n\t\treturn {\n\t\t\tbalance: {\n\t\t\t\tcoinType: result.coinType?.repr ?? coinType,\n\t\t\t\tbalance: result.totalBalance ?? '0',\n\t\t\t\tcoinBalance: coinBalance.toString(),\n\t\t\t\taddressBalance: addressBalance.toString(),\n\t\t\t},\n\t\t};\n\t}\n\tasync getCoinMetadata(\n\t\toptions: SuiClientTypes.GetCoinMetadataOptions,\n\t): Promise<SuiClientTypes.GetCoinMetadataResponse> {\n\t\tconst coinType = (await this.mvr.resolveType({ type: options.coinType })).type;\n\n\t\tconst { data, errors } = await this.#graphqlClient.query({\n\t\t\tquery: GetCoinMetadataDocument,\n\t\t\tvariables: {\n\t\t\t\tcoinType,\n\t\t\t},\n\t\t});\n\n\t\thandleGraphQLErrors(errors);\n\n\t\tif (!data?.coinMetadata) {\n\t\t\treturn { coinMetadata: null };\n\t\t}\n\n\t\treturn {\n\t\t\tcoinMetadata: {\n\t\t\t\tid: data.coinMetadata.address!,\n\t\t\t\tdecimals: data.coinMetadata.decimals!,\n\t\t\t\tname: data.coinMetadata.name!,\n\t\t\t\tsymbol: data.coinMetadata.symbol!,\n\t\t\t\tdescription: data.coinMetadata.description!,\n\t\t\t\ticonUrl: data.coinMetadata.iconUrl ?? null,\n\t\t\t},\n\t\t};\n\t}\n\n\tasync listBalances(\n\t\toptions: SuiClientTypes.ListBalancesOptions,\n\t): Promise<SuiClientTypes.ListBalancesResponse> {\n\t\tconst balances = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: GetAllBalancesDocument,\n\t\t\t\tvariables: {\n\t\t\t\t\towner: options.owner,\n\t\t\t\t\tlimit: options.limit,\n\t\t\t\t\tcursor: options.cursor,\n\t\t\t\t},\n\t\t\t},\n\t\t\t(result) => result.address?.balances,\n\t\t);\n\n\t\treturn {\n\t\t\tcursor: balances.pageInfo.endCursor ?? null,\n\t\t\thasNextPage: balances.pageInfo.hasNextPage,\n\t\t\tbalances: balances.nodes.map((balance) => {\n\t\t\t\tconst addressBalance = BigInt(balance.addressBalance ?? '0');\n\t\t\t\tconst coinBalance = BigInt(balance.totalBalance ?? '0') - addressBalance;\n\t\t\t\treturn {\n\t\t\t\t\tcoinType: balance.coinType?.repr!,\n\t\t\t\t\tbalance: balance.totalBalance!,\n\t\t\t\t\tcoinBalance: coinBalance.toString(),\n\t\t\t\t\taddressBalance: addressBalance.toString(),\n\t\t\t\t};\n\t\t\t}),\n\t\t};\n\t}\n\tasync getTransaction<Include extends SuiClientTypes.TransactionInclude = {}>(\n\t\toptions: SuiClientTypes.GetTransactionOptions<Include>,\n\t): Promise<SuiClientTypes.TransactionResult<Include>> {\n\t\tconst result = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: GetTransactionBlockDocument,\n\t\t\t\tvariables: {\n\t\t\t\t\tdigest: options.digest,\n\t\t\t\t\tincludeTransaction: options.include?.transaction ?? false,\n\t\t\t\t\tincludeEffects: options.include?.effects ?? false,\n\t\t\t\t\tincludeEvents: options.include?.events ?? false,\n\t\t\t\t\tincludeBalanceChanges: options.include?.balanceChanges ?? false,\n\t\t\t\t\tincludeObjectTypes: options.include?.objectTypes ?? false,\n\t\t\t\t\tincludeBcs: options.include?.bcs ?? false,\n\t\t\t\t},\n\t\t\t},\n\t\t\t(result) => result.transaction,\n\t\t);\n\n\t\treturn parseTransaction(result, options.include);\n\t}\n\tasync executeTransaction<Include extends SuiClientTypes.TransactionInclude = {}>(\n\t\toptions: SuiClientTypes.ExecuteTransactionOptions<Include>,\n\t): Promise<SuiClientTypes.TransactionResult<Include>> {\n\t\tconst result = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: ExecuteTransactionDocument,\n\t\t\t\tvariables: {\n\t\t\t\t\ttransactionDataBcs: toBase64(options.transaction),\n\t\t\t\t\tsignatures: options.signatures,\n\t\t\t\t\tincludeTransaction: options.include?.transaction ?? false,\n\t\t\t\t\tincludeEffects: options.include?.effects ?? false,\n\t\t\t\t\tincludeEvents: options.include?.events ?? false,\n\t\t\t\t\tincludeBalanceChanges: options.include?.balanceChanges ?? false,\n\t\t\t\t\tincludeObjectTypes: options.include?.objectTypes ?? false,\n\t\t\t\t\tincludeBcs: options.include?.bcs ?? false,\n\t\t\t\t},\n\t\t\t},\n\t\t\t(result) => result.executeTransaction,\n\t\t);\n\n\t\treturn parseTransaction(result.effects?.transaction!, options.include);\n\t}\n\tasync simulateTransaction<Include extends SuiClientTypes.SimulateTransactionInclude = {}>(\n\t\toptions: SuiClientTypes.SimulateTransactionOptions<Include>,\n\t): Promise<SuiClientTypes.SimulateTransactionResult<Include>> {\n\t\tif (!(options.transaction instanceof Uint8Array)) {\n\t\t\tawait options.transaction.prepareForSerialization({ client: this });\n\t\t}\n\n\t\tconst result = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: SimulateTransactionDocument,\n\t\t\t\tvariables: {\n\t\t\t\t\ttransaction:\n\t\t\t\t\t\toptions.transaction instanceof Uint8Array\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\tbcs: {\n\t\t\t\t\t\t\t\t\t\tvalue: toBase64(options.transaction),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t: transactionToGrpcJson(options.transaction),\n\t\t\t\t\tincludeTransaction: options.include?.transaction ?? false,\n\t\t\t\t\tincludeEffects: options.include?.effects ?? false,\n\t\t\t\t\tincludeEvents: options.include?.events ?? false,\n\t\t\t\t\tincludeBalanceChanges: options.include?.balanceChanges ?? false,\n\t\t\t\t\tincludeObjectTypes: options.include?.objectTypes ?? false,\n\t\t\t\t\tincludeCommandResults: options.include?.commandResults ?? false,\n\t\t\t\t\tincludeBcs: options.include?.bcs ?? false,\n\t\t\t\t\tchecksEnabled: options.checksEnabled ?? true,\n\t\t\t\t},\n\t\t\t},\n\t\t\t(result) => result.simulateTransaction,\n\t\t);\n\n\t\tconst transactionResult = parseTransaction(result.effects?.transaction!, options.include);\n\n\t\tconst commandResults =\n\t\t\toptions.include?.commandResults && result.outputs\n\t\t\t\t? result.outputs.map((output) => ({\n\t\t\t\t\t\treturnValues: (output.returnValues ?? []).map((rv) => ({\n\t\t\t\t\t\t\tbcs: rv.value?.bcs ? fromBase64(rv.value.bcs) : null,\n\t\t\t\t\t\t})),\n\t\t\t\t\t\tmutatedReferences: (output.mutatedReferences ?? []).map((mr) => ({\n\t\t\t\t\t\t\tbcs: mr.value?.bcs ? fromBase64(mr.value.bcs) : null,\n\t\t\t\t\t\t})),\n\t\t\t\t\t}))\n\t\t\t\t: undefined;\n\n\t\tif (transactionResult.$kind === 'Transaction') {\n\t\t\treturn {\n\t\t\t\t$kind: 'Transaction',\n\t\t\t\tTransaction: transactionResult.Transaction,\n\t\t\t\tcommandResults:\n\t\t\t\t\tcommandResults as SuiClientTypes.SimulateTransactionResult<Include>['commandResults'],\n\t\t\t};\n\t\t} else {\n\t\t\treturn {\n\t\t\t\t$kind: 'FailedTransaction',\n\t\t\t\tFailedTransaction: transactionResult.FailedTransaction,\n\t\t\t\tcommandResults:\n\t\t\t\t\tcommandResults as SuiClientTypes.SimulateTransactionResult<Include>['commandResults'],\n\t\t\t};\n\t\t}\n\t}\n\tasync getReferenceGasPrice(): Promise<SuiClientTypes.GetReferenceGasPriceResponse> {\n\t\tconst result = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: GetReferenceGasPriceDocument,\n\t\t\t},\n\t\t\t(result) => result.epoch?.referenceGasPrice,\n\t\t);\n\n\t\treturn {\n\t\t\treferenceGasPrice: result ?? '',\n\t\t};\n\t}\n\n\tasync getProtocolConfig(): Promise<SuiClientTypes.GetProtocolConfigResponse> {\n\t\tconst result = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: GetProtocolConfigDocument,\n\t\t\t},\n\t\t\t(result) => result.epoch?.protocolConfigs,\n\t\t);\n\n\t\tconst featureFlags: Record<string, boolean> = {};\n\t\tfor (const flag of result?.featureFlags ?? []) {\n\t\t\tfeatureFlags[flag.key] = flag.value;\n\t\t}\n\t\tconst attributes: Record<string, string | null> = {};\n\t\tfor (const config of result?.configs ?? []) {\n\t\t\tattributes[config.key] = config.value ?? null;\n\t\t}\n\n\t\treturn {\n\t\t\tprotocolConfig: {\n\t\t\t\tprotocolVersion: result?.protocolVersion?.toString() ?? (null as never),\n\t\t\t\tfeatureFlags,\n\t\t\t\tattributes,\n\t\t\t},\n\t\t};\n\t}\n\n\tasync getCurrentSystemState(): Promise<SuiClientTypes.GetCurrentSystemStateResponse> {\n\t\tconst result = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: GetCurrentSystemStateDocument,\n\t\t\t},\n\t\t\t(result) => result.epoch,\n\t\t);\n\n\t\tif (!result) {\n\t\t\tthrow new Error('Epoch data not found in response');\n\t\t}\n\n\t\tconst startMs = result.startTimestamp\n\t\t\t? new Date(result.startTimestamp).getTime().toString()\n\t\t\t: (null as never);\n\n\t\t// Parse the system state JSON from the MoveValue\n\t\tconst systemStateJson = result.systemState?.json as\n\t\t\t| {\n\t\t\t\t\tsystem_state_version?: string | number;\n\t\t\t\t\tsafe_mode?: boolean;\n\t\t\t\t\tsafe_mode_storage_rewards?: string;\n\t\t\t\t\tsafe_mode_computation_rewards?: string;\n\t\t\t\t\tsafe_mode_storage_rebates?: string | number;\n\t\t\t\t\tsafe_mode_non_refundable_storage_fee?: string | number;\n\t\t\t\t\tparameters?: {\n\t\t\t\t\t\tepoch_duration_ms?: string | number;\n\t\t\t\t\t\tstake_subsidy_start_epoch?: string | number;\n\t\t\t\t\t\tmax_validator_count?: string | number;\n\t\t\t\t\t\tmin_validator_joining_stake?: string | number;\n\t\t\t\t\t\tvalidator_low_stake_threshold?: string | number;\n\t\t\t\t\t\tvalidator_low_stake_grace_period?: string | number;\n\t\t\t\t\t};\n\t\t\t\t\tstorage_fund?: {\n\t\t\t\t\t\ttotal_object_storage_rebates?: string;\n\t\t\t\t\t\tnon_refundable_balance?: string;\n\t\t\t\t\t};\n\t\t\t\t\tstake_subsidy?: {\n\t\t\t\t\t\tbalance?: string;\n\t\t\t\t\t\tdistribution_counter?: string | number;\n\t\t\t\t\t\tcurrent_distribution_amount?: string | number;\n\t\t\t\t\t\tstake_subsidy_period_length?: string | number;\n\t\t\t\t\t\tstake_subsidy_decrease_rate?: number;\n\t\t\t\t\t};\n\t\t\t }\n\t\t\t| undefined;\n\n\t\treturn {\n\t\t\tsystemState: {\n\t\t\t\tsystemStateVersion: systemStateJson?.system_state_version?.toString() ?? (null as never),\n\t\t\t\tepoch: result.epochId?.toString() ?? (null as never),\n\t\t\t\tprotocolVersion: result.protocolConfigs?.protocolVersion?.toString() ?? (null as never),\n\t\t\t\treferenceGasPrice: result.referenceGasPrice ?? (null as never),\n\t\t\t\tepochStartTimestampMs: startMs,\n\t\t\t\tsafeMode: systemStateJson?.safe_mode ?? false,\n\t\t\t\tsafeModeStorageRewards: systemStateJson?.safe_mode_storage_rewards ?? (null as never),\n\t\t\t\tsafeModeComputationRewards:\n\t\t\t\t\tsystemStateJson?.safe_mode_computation_rewards ?? (null as never),\n\t\t\t\tsafeModeStorageRebates:\n\t\t\t\t\tsystemStateJson?.safe_mode_storage_rebates?.toString() ?? (null as never),\n\t\t\t\tsafeModeNonRefundableStorageFee:\n\t\t\t\t\tsystemStateJson?.safe_mode_non_refundable_storage_fee?.toString() ?? (null as never),\n\t\t\t\tparameters: {\n\t\t\t\t\tepochDurationMs:\n\t\t\t\t\t\tsystemStateJson?.parameters?.epoch_duration_ms?.toString() ?? (null as never),\n\t\t\t\t\tstakeSubsidyStartEpoch:\n\t\t\t\t\t\tsystemStateJson?.parameters?.stake_subsidy_start_epoch?.toString() ?? (null as never),\n\t\t\t\t\tmaxValidatorCount:\n\t\t\t\t\t\tsystemStateJson?.parameters?.max_validator_count?.toString() ?? (null as never),\n\t\t\t\t\tminValidatorJoiningStake:\n\t\t\t\t\t\tsystemStateJson?.parameters?.min_validator_joining_stake?.toString() ?? (null as never),\n\t\t\t\t\tvalidatorLowStakeThreshold:\n\t\t\t\t\t\tsystemStateJson?.parameters?.validator_low_stake_threshold?.toString() ??\n\t\t\t\t\t\t(null as never),\n\t\t\t\t\tvalidatorLowStakeGracePeriod:\n\t\t\t\t\t\tsystemStateJson?.parameters?.validator_low_stake_grace_period?.toString() ??\n\t\t\t\t\t\t(null as never),\n\t\t\t\t},\n\t\t\t\tstorageFund: {\n\t\t\t\t\ttotalObjectStorageRebates:\n\t\t\t\t\t\tsystemStateJson?.storage_fund?.total_object_storage_rebates ?? (null as never),\n\t\t\t\t\tnonRefundableBalance:\n\t\t\t\t\t\tsystemStateJson?.storage_fund?.non_refundable_balance ?? (null as never),\n\t\t\t\t},\n\t\t\t\tstakeSubsidy: {\n\t\t\t\t\tbalance: systemStateJson?.stake_subsidy?.balance ?? (null as never),\n\t\t\t\t\tdistributionCounter:\n\t\t\t\t\t\tsystemStateJson?.stake_subsidy?.distribution_counter?.toString() ?? (null as never),\n\t\t\t\t\tcurrentDistributionAmount:\n\t\t\t\t\t\tsystemStateJson?.stake_subsidy?.current_distribution_amount?.toString() ??\n\t\t\t\t\t\t(null as never),\n\t\t\t\t\tstakeSubsidyPeriodLength:\n\t\t\t\t\t\tsystemStateJson?.stake_subsidy?.stake_subsidy_period_length?.toString() ??\n\t\t\t\t\t\t(null as never),\n\t\t\t\t\tstakeSubsidyDecreaseRate:\n\t\t\t\t\t\tsystemStateJson?.stake_subsidy?.stake_subsidy_decrease_rate ?? (null as never),\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n\n\tasync listDynamicFields(\n\t\toptions: SuiClientTypes.ListDynamicFieldsOptions,\n\t): Promise<SuiClientTypes.ListDynamicFieldsResponse> {\n\t\treturn this.#graphqlClient.listDynamicFields(options);\n\t}\n\n\tasync verifyZkLoginSignature(\n\t\toptions: SuiClientTypes.VerifyZkLoginSignatureOptions,\n\t): Promise<SuiClientTypes.ZkLoginVerifyResponse> {\n\t\tconst intentScope =\n\t\t\toptions.intentScope === 'TransactionData'\n\t\t\t\t? ZkLoginIntentScope.TransactionData\n\t\t\t\t: ZkLoginIntentScope.PersonalMessage;\n\n\t\tconst { data } = await this.#graphqlClient.query({\n\t\t\tquery: VerifyZkLoginSignatureDocument,\n\t\t\tvariables: {\n\t\t\t\tbytes: options.bytes,\n\t\t\t\tsignature: options.signature,\n\t\t\t\tintentScope,\n\t\t\t\tauthor: options.address,\n\t\t\t},\n\t\t});\n\n\t\treturn {\n\t\t\tsuccess: data?.verifyZkLoginSignature?.success ?? false,\n\t\t\terrors: [],\n\t\t};\n\t}\n\n\tasync defaultNameServiceName(\n\t\toptions: SuiClientTypes.DefaultNameServiceNameOptions,\n\t): Promise<SuiClientTypes.DefaultNameServiceNameResponse> {\n\t\tconst name = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: DefaultSuinsNameDocument,\n\t\t\t\tsignal: options.signal,\n\t\t\t\tvariables: {\n\t\t\t\t\taddress: options.address,\n\t\t\t\t},\n\t\t\t},\n\t\t\t(result) => result.address?.defaultNameRecord?.domain ?? null,\n\t\t);\n\n\t\treturn {\n\t\t\tdata: { name: name },\n\t\t};\n\t}\n\n\tasync getMoveFunction(\n\t\toptions: SuiClientTypes.GetMoveFunctionOptions,\n\t): Promise<SuiClientTypes.GetMoveFunctionResponse> {\n\t\tconst moveFunction = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: GetMoveFunctionDocument,\n\t\t\t\tvariables: {\n\t\t\t\t\tpackage: (await this.mvr.resolvePackage({ package: options.packageId })).package,\n\t\t\t\t\tmodule: options.moduleName,\n\t\t\t\t\tfunction: options.name,\n\t\t\t\t},\n\t\t\t},\n\t\t\t(result) => result.package?.module?.function,\n\t\t);\n\n\t\tlet visibility: 'public' | 'private' | 'friend' | 'unknown' = 'unknown';\n\n\t\tswitch (moveFunction.visibility) {\n\t\t\tcase 'PUBLIC':\n\t\t\t\tvisibility = 'public';\n\t\t\t\tbreak;\n\t\t\tcase 'PRIVATE':\n\t\t\t\tvisibility = 'private';\n\t\t\t\tbreak;\n\t\t\tcase 'FRIEND':\n\t\t\t\tvisibility = 'friend';\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn {\n\t\t\tfunction: {\n\t\t\t\tpackageId: normalizeSuiAddress(options.packageId),\n\t\t\t\tmoduleName: options.moduleName,\n\t\t\t\tname: moveFunction.name,\n\t\t\t\tvisibility,\n\t\t\t\tisEntry: moveFunction.isEntry ?? false,\n\t\t\t\ttypeParameters:\n\t\t\t\t\tmoveFunction.typeParameters?.map(({ constraints }) => ({\n\t\t\t\t\t\tisPhantom: false,\n\t\t\t\t\t\tconstraints:\n\t\t\t\t\t\t\tconstraints.map((constraint) => {\n\t\t\t\t\t\t\t\tswitch (constraint) {\n\t\t\t\t\t\t\t\t\tcase 'COPY':\n\t\t\t\t\t\t\t\t\t\treturn 'copy';\n\t\t\t\t\t\t\t\t\tcase 'DROP':\n\t\t\t\t\t\t\t\t\t\treturn 'drop';\n\t\t\t\t\t\t\t\t\tcase 'STORE':\n\t\t\t\t\t\t\t\t\t\treturn 'store';\n\t\t\t\t\t\t\t\t\tcase 'KEY':\n\t\t\t\t\t\t\t\t\t\treturn 'key';\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\treturn 'unknown';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}) ?? [],\n\t\t\t\t\t})) ?? [],\n\t\t\t\tparameters:\n\t\t\t\t\tmoveFunction.parameters?.map((param) => parseNormalizedSuiMoveType(param.signature)) ??\n\t\t\t\t\t[],\n\t\t\t\treturns:\n\t\t\t\t\tmoveFunction.return?.map(({ signature }) => parseNormalizedSuiMoveType(signature)) ?? [],\n\t\t\t},\n\t\t};\n\t}\n\n\tasync getChainIdentifier(\n\t\t_options?: SuiClientTypes.GetChainIdentifierOptions,\n\t): Promise<SuiClientTypes.GetChainIdentifierResponse> {\n\t\treturn this.cache.read(['chainIdentifier'], async () => {\n\t\t\tconst checkpoint = await this.#graphqlQuery(\n\t\t\t\t{\n\t\t\t\t\tquery: GetChainIdentifierDocument,\n\t\t\t\t},\n\t\t\t\t(result) => result.checkpoint,\n\t\t\t);\n\t\t\tif (!checkpoint?.digest) {\n\t\t\t\tthrow new Error('Genesis checkpoint digest not found');\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tchainIdentifier: checkpoint.digest,\n\t\t\t};\n\t\t});\n\t}\n\n\tresolveTransactionPlugin() {\n\t\tconst graphqlClient = this.#graphqlClient;\n\t\treturn async function resolveTransactionData(\n\t\t\ttransactionData: TransactionDataBuilder,\n\t\t\toptions: BuildTransactionOptions,\n\t\t\tnext: () => Promise<void>,\n\t\t) {\n\t\t\tconst snapshot = transactionData.snapshot();\n\t\t\t// If sender is not set, use a dummy address for resolution purposes\n\t\t\tif (!snapshot.sender) {\n\t\t\t\tsnapshot.sender = '0x0000000000000000000000000000000000000000000000000000000000000000';\n\t\t\t}\n\t\t\tconst grpcTransaction = transactionDataToGrpcTransaction(snapshot);\n\t\t\tconst transactionJson = GrpcTransactionType.toJson(grpcTransaction);\n\n\t\t\tconst { data, errors } = await graphqlClient.query({\n\t\t\t\tquery: ResolveTransactionDocument,\n\t\t\t\tvariables: {\n\t\t\t\t\ttransaction: transactionJson,\n\t\t\t\t\tdoGasSelection:\n\t\t\t\t\t\t!options.onlyTransactionKind &&\n\t\t\t\t\t\t(snapshot.gasData.budget == null || snapshot.gasData.payment == null),\n\t\t\t\t\tchecksEnabled: !options.onlyTransactionKind,\n\t\t\t\t},\n\t\t\t});\n\n\t\t\thandleGraphQLErrors(errors);\n\n\t\t\tconst transactionEffects = data?.simulateTransaction?.effects?.transaction?.effects;\n\t\t\tif (!options.onlyTransactionKind && transactionEffects?.status === ExecutionStatus.Failure) {\n\t\t\t\tconst executionError = parseGraphQLExecutionError(transactionEffects.executionError);\n\t\t\t\tconst errorMessage = executionError?.message ?? 'Transaction failed';\n\t\t\t\tthrow new SimulationError(`Transaction resolution failed: ${errorMessage}`, {\n\t\t\t\t\texecutionError,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst resolvedTransactionBcs =\n\t\t\t\tdata?.simulateTransaction?.effects?.transaction?.transactionBcs;\n\n\t\t\tif (!resolvedTransactionBcs) {\n\t\t\t\tthrow new Error('simulateTransaction did not return resolved transaction data');\n\t\t\t}\n\n\t\t\tconst resolvedBuilder = TransactionDataBuilder.fromBytes(fromBase64(resolvedTransactionBcs));\n\t\t\tconst resolved = resolvedBuilder.snapshot();\n\n\t\t\tif (options.onlyTransactionKind) {\n\t\t\t\ttransactionData.applyResolvedData({\n\t\t\t\t\t...resolved,\n\t\t\t\t\tsender: null,\n\t\t\t\t\tgasData: {\n\t\t\t\t\t\tbudget: null,\n\t\t\t\t\t\towner: null,\n\t\t\t\t\t\tpayment: null,\n\t\t\t\t\t\tprice: null,\n\t\t\t\t\t},\n\t\t\t\t\texpiration: null,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\ttransactionData.applyResolvedData(resolved);\n\t\t\t}\n\n\t\t\treturn await next();\n\t\t};\n\t}\n}\nexport type GraphQLResponseErrors = Array<{\n\tmessage: string;\n\tlocations?: { line: number; column: number }[];\n\tpath?: (string | number)[];\n}>;\n\nfunction mapDisplay(\n\tinclude: boolean | undefined,\n\tdisplay: { output?: unknown | null; errors?: unknown | null } | null | undefined,\n): SuiClientTypes.Display | null | undefined {\n\tif (!include) return undefined;\n\tif (!display) return null;\n\treturn {\n\t\toutput: (display.output as Record<string, unknown> | null) ?? null,\n\t\terrors: (display.errors as Record<string, string> | null) ?? null,\n\t};\n}\n\nfunction handleGraphQLErrors(errors: GraphQLResponseErrors | undefined): void {\n\tif (!errors || errors.length === 0) return;\n\n\tconst errorInstances = errors.map((error) => new GraphQLResponseError(error));\n\n\tif (errorInstances.length === 1) {\n\t\tthrow errorInstances[0];\n\t}\n\n\tthrow new AggregateError(errorInstances);\n}\n\nclass GraphQLResponseError extends Error {\n\tlocations?: Array<{ line: number; column: number }>;\n\n\tconstructor(error: GraphQLResponseErrors[0]) {\n\t\tsuper(error.message);\n\t\tthis.locations = error.locations;\n\t}\n}\n\nfunction mapOwner(owner: Object_Owner_FieldsFragment): SuiClientTypes.ObjectOwner {\n\tswitch (owner.__typename) {\n\t\tcase 'AddressOwner':\n\t\t\treturn { $kind: 'AddressOwner', AddressOwner: owner.address?.address! };\n\t\tcase 'ConsensusAddressOwner':\n\t\t\treturn {\n\t\t\t\t$kind: 'ConsensusAddressOwner',\n\t\t\t\tConsensusAddressOwner: {\n\t\t\t\t\towner: owner?.address?.address!,\n\t\t\t\t\tstartVersion: String(owner.startVersion),\n\t\t\t\t},\n\t\t\t};\n\t\tcase 'ObjectOwner':\n\t\t\treturn { $kind: 'ObjectOwner', ObjectOwner: owner.address?.address! };\n\t\tcase 'Immutable':\n\t\t\treturn { $kind: 'Immutable', Immutable: true };\n\t\tcase 'Shared':\n\t\t\treturn {\n\t\t\t\t$kind: 'Shared',\n\t\t\t\tShared: { initialSharedVersion: String(owner.initialSharedVersion) },\n\t\t\t};\n\t}\n}\n\nfunction parseTransaction<Include extends SuiClientTypes.TransactionInclude = {}>(\n\ttransaction: Transaction_FieldsFragment,\n\tinclude?: Include,\n): SuiClientTypes.TransactionResult<Include> {\n\tconst objectTypes: Record<string, string> = {};\n\n\tif (include?.objectTypes) {\n\t\tconst effectsJson = transaction.effects?.effectsJson;\n\t\tif (effectsJson) {\n\t\t\tconst effects = TransactionEffectsType.fromJson(\n\t\t\t\teffectsJson as Parameters<typeof TransactionEffectsType.fromJson>[0],\n\t\t\t);\n\t\t\teffects.changedObjects?.forEach((change) => {\n\t\t\t\tif (change.objectId && change.objectType) {\n\t\t\t\t\tobjectTypes[change.objectId] = change.objectType;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tconst objectChanges = transaction.effects?.objectChanges?.nodes;\n\t\tif (objectChanges) {\n\t\t\tfor (const change of objectChanges) {\n\t\t\t\tconst type = change.outputState?.asMoveObject?.contents?.type?.repr;\n\t\t\t\tif (change.address && type) {\n\t\t\t\t\tobjectTypes[change.address] = type;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tlet balanceChanges: SuiClientTypes.BalanceChange[] | undefined;\n\tif (include?.balanceChanges) {\n\t\tconst balanceChangesJson = transaction.effects?.balanceChangesJson;\n\t\tif (Array.isArray(balanceChangesJson)) {\n\t\t\tbalanceChanges = balanceChangesJson.map((json) => {\n\t\t\t\tconst change = BalanceChangeType.fromJson(\n\t\t\t\t\tjson as Parameters<typeof BalanceChangeType.fromJson>[0],\n\t\t\t\t);\n\t\t\t\treturn {\n\t\t\t\t\tcoinType: change.coinType!,\n\t\t\t\t\taddress: change.address!,\n\t\t\t\t\tamount: change.amount!,\n\t\t\t\t};\n\t\t\t});\n\t\t} else {\n\t\t\tbalanceChanges = [];\n\t\t}\n\t}\n\n\t// Get status from GraphQL response\n\tconst status: SuiClientTypes.ExecutionStatus =\n\t\ttransaction.effects?.status === ExecutionStatus.Success\n\t\t\t? { success: true, error: null }\n\t\t\t: {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\terror: parseGraphQLExecutionError(transaction.effects?.executionError),\n\t\t\t\t};\n\n\tlet transactionData: SuiClientTypes.TransactionData | undefined;\n\tif (include?.transaction && transaction.transactionJson) {\n\t\tconst grpcTx = GrpcTransactionType.fromJson(\n\t\t\ttransaction.transactionJson as Parameters<typeof GrpcTransactionType.fromJson>[0],\n\t\t);\n\t\tconst resolved = grpcTransactionToTransactionData(grpcTx);\n\t\ttransactionData = {\n\t\t\tgasData: resolved.gasData,\n\t\t\tsender: resolved.sender,\n\t\t\texpiration: resolved.expiration,\n\t\t\tcommands: resolved.commands,\n\t\t\tinputs: resolved.inputs,\n\t\t\tversion: resolved.version,\n\t\t};\n\t}\n\n\tconst bcsBytes =\n\t\tinclude?.bcs && transaction.transactionBcs ? fromBase64(transaction.transactionBcs) : undefined;\n\n\tconst result: SuiClientTypes.Transaction<Include> = {\n\t\tdigest: transaction.digest!,\n\t\tstatus,\n\t\teffects: (include?.effects\n\t\t\t? parseTransactionEffectsBcs(fromBase64(transaction.effects?.effectsBcs!))\n\t\t\t: undefined) as SuiClientTypes.Transaction<Include>['effects'],\n\t\tepoch: transaction.effects?.epoch?.epochId?.toString() ?? null,\n\t\tobjectTypes: (include?.objectTypes\n\t\t\t? objectTypes\n\t\t\t: undefined) as SuiClientTypes.Transaction<Include>['objectTypes'],\n\t\ttransaction: transactionData as SuiClientTypes.Transaction<Include>['transaction'],\n\t\tbcs: bcsBytes as SuiClientTypes.Transaction<Include>['bcs'],\n\t\tsignatures: transaction.signatures.map((sig) => sig.signatureBytes!),\n\t\tbalanceChanges: balanceChanges as SuiClientTypes.Transaction<Include>['balanceChanges'],\n\t\tevents: (include?.events\n\t\t\t? (transaction.effects?.events?.nodes.map((event) => {\n\t\t\t\t\tconst eventType = event.contents?.type?.repr!;\n\t\t\t\t\tconst [packageId, module] = eventType.split('::');\n\t\t\t\t\treturn {\n\t\t\t\t\t\tpackageId,\n\t\t\t\t\t\tmodule,\n\t\t\t\t\t\tsender: event.sender?.address!,\n\t\t\t\t\t\teventType,\n\t\t\t\t\t\tbcs: event.contents?.bcs ? fromBase64(event.contents.bcs) : new Uint8Array(),\n\t\t\t\t\t\tjson: (event.contents?.json as Record<string, unknown>) ?? null,\n\t\t\t\t\t};\n\t\t\t\t}) ?? [])\n\t\t\t: undefined) as SuiClientTypes.Transaction<Include>['events'],\n\t};\n\n\treturn status.success\n\t\t? { $kind: 'Transaction', Transaction: result, FailedTransaction: undefined as never }\n\t\t: { $kind: 'FailedTransaction', Transaction: undefined as never, FailedTransaction: result };\n}\n\nfunction parseNormalizedSuiMoveType(type: OpenMoveTypeSignature): SuiClientTypes.OpenSignature {\n\tlet reference: 'mutable' | 'immutable' | null = null;\n\n\tif (type.ref === '&') {\n\t\treference = 'immutable';\n\t} else if (type.ref === '&mut') {\n\t\treference = 'mutable';\n\t}\n\n\treturn {\n\t\treference,\n\t\tbody: parseNormalizedSuiMoveTypeBody(type.body),\n\t};\n}\n\nfunction parseGraphQLExecutionError(\n\texecutionError: GraphQLExecutionError | null | undefined,\n): SuiClientTypes.ExecutionError {\n\tconst name = mapGraphQLExecutionErrorKind(executionError);\n\n\tif (name === 'MoveAbort' && executionError?.abortCode != null) {\n\t\tconst location = parseGraphQLMoveLocation(executionError);\n\t\tconst cleverError = parseGraphQLCleverError(executionError);\n\t\tconst commandMatch = executionError.message?.match(/in (\\d+)\\w* command/);\n\t\tconst command = commandMatch ? parseInt(commandMatch[1], 10) - 1 : undefined;\n\n\t\treturn {\n\t\t\t$kind: 'MoveAbort',\n\t\t\tmessage: formatMoveAbortMessage({\n\t\t\t\tcommand,\n\t\t\t\tlocation: location\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tpackage: location.package,\n\t\t\t\t\t\t\tmodule: location.module,\n\t\t\t\t\t\t\tfunctionName: location.functionName,\n\t\t\t\t\t\t\tinstruction: location.instruction,\n\t\t\t\t\t\t}\n\t\t\t\t\t: undefined,\n\t\t\t\tabortCode: executionError.abortCode!,\n\t\t\t\tcleverError: cleverError\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tlineNumber: cleverError.lineNumber,\n\t\t\t\t\t\t\tconstantName: cleverError.constantName,\n\t\t\t\t\t\t\tvalue: cleverError.value,\n\t\t\t\t\t\t}\n\t\t\t\t\t: undefined,\n\t\t\t}),\n\t\t\tcommand,\n\t\t\tMoveAbort: {\n\t\t\t\tabortCode: executionError.abortCode!,\n\t\t\t\tlocation,\n\t\t\t\tcleverError,\n\t\t\t},\n\t\t};\n\t}\n\n\treturn {\n\t\t$kind: 'Unknown',\n\t\tmessage: executionError?.message ?? 'Transaction failed',\n\t\tUnknown: null,\n\t};\n}\n\nfunction mapGraphQLExecutionErrorKind(\n\texecutionError: GraphQLExecutionError | null | undefined,\n): string {\n\tif (executionError?.abortCode != null) {\n\t\treturn 'MoveAbort';\n\t}\n\n\tconst match = executionError?.message?.match(/^(\\w+)/);\n\treturn match?.[1] ?? 'Unknown';\n}\n\nfunction parseGraphQLMoveLocation(\n\texecutionError: GraphQLExecutionError,\n): SuiClientTypes.MoveLocation | undefined {\n\tconst hasLocation = executionError.module?.package?.address && executionError.module?.name;\n\tif (!hasLocation) {\n\t\treturn undefined;\n\t}\n\n\treturn {\n\t\tpackage: executionError.module?.package?.address,\n\t\tmodule: executionError.module?.name,\n\t\tfunctionName: executionError.function?.name,\n\t\tinstruction: executionError.instructionOffset ?? undefined,\n\t};\n}\n\nfunction parseGraphQLCleverError(\n\texecutionError: GraphQLExecutionError,\n): SuiClientTypes.CleverError | undefined {\n\tconst hasCleverError = executionError.identifier || executionError.constant;\n\tif (!hasCleverError) {\n\t\treturn undefined;\n\t}\n\n\treturn {\n\t\tconstantName: executionError.identifier ?? undefined,\n\t\tvalue: executionError.constant ?? undefined,\n\t\tlineNumber: executionError.sourceLineNumber ?? undefined,\n\t};\n}\n\nfunction parseNormalizedSuiMoveTypeBody(\n\ttype: OpenMoveTypeSignatureBody,\n): SuiClientTypes.OpenSignatureBody {\n\tswitch (type) {\n\t\tcase 'address':\n\t\t\treturn { $kind: 'address' };\n\t\tcase 'bool':\n\t\t\treturn { $kind: 'bool' };\n\t\tcase 'u8':\n\t\t\treturn { $kind: 'u8' };\n\t\tcase 'u16':\n\t\t\treturn { $kind: 'u16' };\n\t\tcase 'u32':\n\t\t\treturn { $kind: 'u32' };\n\t\tcase 'u64':\n\t\t\treturn { $kind: 'u64' };\n\t\tcase 'u128':\n\t\t\treturn { $kind: 'u128' };\n\t\tcase 'u256':\n\t\t\treturn { $kind: 'u256' };\n\t}\n\n\tif (typeof type === 'string') {\n\t\tthrow new Error(`Unknown type: ${type}`);\n\t}\n\n\tif ('vector' in type) {\n\t\treturn {\n\t\t\t$kind: 'vector',\n\t\t\tvector: parseNormalizedSuiMoveTypeBody(type.vector),\n\t\t};\n\t}\n\n\tif ('datatype' in type) {\n\t\treturn {\n\t\t\t$kind: 'datatype',\n\t\t\tdatatype: {\n\t\t\t\ttypeName: `${normalizeSuiAddress(type.datatype.package)}::${type.datatype.module}::${type.datatype.type}`,\n\t\t\t\ttypeParameters: type.datatype.typeParameters.map((t) => parseNormalizedSuiMoveTypeBody(t)),\n\t\t\t},\n\t\t};\n\t}\n\n\tif ('typeParameter' in type) {\n\t\treturn {\n\t\t\t$kind: 'typeParameter',\n\t\t\tindex: type.typeParameter,\n\t\t};\n\t}\n\n\tthrow new Error(`Unknown type: ${JSON.stringify(type)}`);\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"queries.d.mts","names":[],"sources":["../../../src/graphql/generated/queries.ts"],"mappings":";;;cA48Ja,mBAAA,8BACH,MAAA,YACG,sBAAA,CAAuB,OAAA,EAAS,UAAA;EAE3C,SAAA,GAAY,WAAA,CAAY,sBAAA,CAAuB,OAAA,EAAS,UAAA;EAAA,QAChD,KAAA;EACD,QAAA,GAAW,MAAA;cAEN,KAAA,UAAe,QAAA,GAAW,MAAA;EAM7B,QAAA,CAAA,YAAqB,sBAAA,CAAuB,OAAA,EAAS,UAAA;AAAA"}
1
+ {"version":3,"file":"queries.d.mts","names":[],"sources":["../../../src/graphql/generated/queries.ts"],"mappings":";;;cAgWa,mBAAA,8BACH,MAAA,YACG,sBAAA,CAAuB,OAAA,EAAS,UAAA;EAE3C,SAAA,GAAY,WAAA,CAAY,sBAAA,CAAuB,OAAA,EAAS,UAAA;EAAA,QAChD,KAAA;EACD,QAAA,GAAW,MAAA;cAEN,KAAA,UAAe,QAAA,GAAW,MAAA;EAM7B,QAAA,CAAA,YAAqB,sBAAA,CAAuB,OAAA,EAAS,UAAA;AAAA"}
@@ -800,8 +800,12 @@ const GetTransactionBlockDocument = new TypedDocumentString(`
800
800
  }
801
801
  }`);
802
802
  const ResolveTransactionDocument = new TypedDocumentString(`
803
- query resolveTransaction($transaction: JSON!, $doGasSelection: Boolean = true) {
804
- simulateTransaction(transaction: $transaction, doGasSelection: $doGasSelection) {
803
+ query resolveTransaction($transaction: JSON!, $doGasSelection: Boolean = true, $checksEnabled: Boolean = true) {
804
+ simulateTransaction(
805
+ transaction: $transaction
806
+ doGasSelection: $doGasSelection
807
+ checksEnabled: $checksEnabled
808
+ ) {
805
809
  effects {
806
810
  transaction {
807
811
  transactionBcs