@mysten/sui 1.43.1 → 1.44.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/cjs/experimental/core.d.ts +1 -0
  3. package/dist/cjs/experimental/core.js.map +2 -2
  4. package/dist/cjs/experimental/types.d.ts +6 -8
  5. package/dist/cjs/experimental/types.js.map +1 -1
  6. package/dist/cjs/graphql/core.d.ts +1 -1
  7. package/dist/cjs/graphql/core.js +81 -78
  8. package/dist/cjs/graphql/core.js.map +2 -2
  9. package/dist/cjs/graphql/generated/latest/tada-env.d.ts +3870 -5429
  10. package/dist/cjs/graphql/generated/latest/tada-env.js +3958 -5702
  11. package/dist/cjs/graphql/generated/latest/tada-env.js.map +2 -2
  12. package/dist/cjs/graphql/generated/queries.d.ts +2485 -3397
  13. package/dist/cjs/graphql/generated/queries.js +137 -172
  14. package/dist/cjs/graphql/generated/queries.js.map +3 -3
  15. package/dist/cjs/graphql/types.d.ts +1 -0
  16. package/dist/cjs/graphql/types.js.map +1 -1
  17. package/dist/cjs/grpc/client.d.ts +2 -0
  18. package/dist/cjs/grpc/client.js +2 -0
  19. package/dist/cjs/grpc/client.js.map +2 -2
  20. package/dist/cjs/grpc/core.d.ts +1 -0
  21. package/dist/cjs/grpc/core.js +10 -0
  22. package/dist/cjs/grpc/core.js.map +2 -2
  23. package/dist/cjs/jsonRpc/core.d.ts +1 -1
  24. package/dist/cjs/jsonRpc/core.js +7 -2
  25. package/dist/cjs/jsonRpc/core.js.map +2 -2
  26. package/dist/cjs/transactions/Transaction.js +2 -2
  27. package/dist/cjs/transactions/Transaction.js.map +1 -1
  28. package/dist/cjs/version.d.ts +2 -2
  29. package/dist/cjs/version.js +2 -2
  30. package/dist/cjs/version.js.map +1 -1
  31. package/dist/cjs/zklogin/publickey.js +1 -1
  32. package/dist/cjs/zklogin/publickey.js.map +1 -1
  33. package/dist/esm/experimental/core.d.ts +1 -0
  34. package/dist/esm/experimental/core.js.map +2 -2
  35. package/dist/esm/experimental/types.d.ts +6 -8
  36. package/dist/esm/graphql/core.d.ts +1 -1
  37. package/dist/esm/graphql/core.js +85 -82
  38. package/dist/esm/graphql/core.js.map +2 -2
  39. package/dist/esm/graphql/generated/latest/tada-env.d.ts +3870 -5429
  40. package/dist/esm/graphql/generated/latest/tada-env.js +3958 -5702
  41. package/dist/esm/graphql/generated/latest/tada-env.js.map +2 -2
  42. package/dist/esm/graphql/generated/queries.d.ts +2485 -3397
  43. package/dist/esm/graphql/generated/queries.js +137 -172
  44. package/dist/esm/graphql/generated/queries.js.map +3 -3
  45. package/dist/esm/graphql/types.d.ts +1 -0
  46. package/dist/esm/grpc/client.d.ts +2 -0
  47. package/dist/esm/grpc/client.js +2 -0
  48. package/dist/esm/grpc/client.js.map +2 -2
  49. package/dist/esm/grpc/core.d.ts +1 -0
  50. package/dist/esm/grpc/core.js +10 -0
  51. package/dist/esm/grpc/core.js.map +2 -2
  52. package/dist/esm/jsonRpc/core.d.ts +1 -1
  53. package/dist/esm/jsonRpc/core.js +7 -2
  54. package/dist/esm/jsonRpc/core.js.map +2 -2
  55. package/dist/esm/transactions/Transaction.js +2 -2
  56. package/dist/esm/transactions/Transaction.js.map +1 -1
  57. package/dist/esm/version.d.ts +2 -2
  58. package/dist/esm/version.js +2 -2
  59. package/dist/esm/version.js.map +1 -1
  60. package/dist/esm/zklogin/publickey.js +1 -1
  61. package/dist/esm/zklogin/publickey.js.map +1 -1
  62. package/dist/tsconfig.esm.tsbuildinfo +1 -1
  63. package/dist/tsconfig.tsbuildinfo +1 -1
  64. package/package.json +2 -2
  65. package/src/experimental/core.ts +4 -0
  66. package/src/experimental/types.ts +8 -10
  67. package/src/graphql/core.ts +95 -95
  68. package/src/graphql/generated/latest/schema.graphql +2139 -2671
  69. package/src/graphql/generated/latest/tada-env.ts +3958 -5702
  70. package/src/graphql/generated/queries.ts +2344 -3281
  71. package/src/graphql/queries/getAllBalances.graphql +0 -1
  72. package/src/graphql/queries/getBalance.graphql +2 -3
  73. package/src/graphql/queries/getCoins.graphql +9 -4
  74. package/src/graphql/queries/getDynamicFields.graphql +1 -1
  75. package/src/graphql/queries/nameService.graphql +2 -10
  76. package/src/graphql/queries/objects.graphql +11 -22
  77. package/src/graphql/queries/transactions.graphql +16 -12
  78. package/src/graphql/queries/verifyZkLoginSignature.graphql +2 -2
  79. package/src/graphql/types.ts +1 -0
  80. package/src/grpc/client.ts +3 -0
  81. package/src/grpc/core.ts +16 -0
  82. package/src/jsonRpc/core.ts +9 -4
  83. package/src/transactions/Transaction.ts +2 -2
  84. package/src/version.ts +2 -2
  85. package/src/zklogin/publickey.ts +1 -1
@@ -9,8 +9,8 @@ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "acce
9
9
  var _graphqlClient, _GraphQLCoreClient_instances, graphqlQuery_fn;
10
10
  import { Experimental_CoreClient } from "../experimental/core.js";
11
11
  import {
12
- DryRunTransactionBlockDocument,
13
- ExecuteTransactionBlockDocument,
12
+ DefaultSuinsNameDocument,
13
+ ExecuteTransactionDocument,
14
14
  GetAllBalancesDocument,
15
15
  GetBalanceDocument,
16
16
  GetCoinsDocument,
@@ -20,12 +20,12 @@ import {
20
20
  GetReferenceGasPriceDocument,
21
21
  GetTransactionBlockDocument,
22
22
  MultiGetObjectsDocument,
23
- ResolveNameServiceNamesDocument,
23
+ SimulateTransactionDocument,
24
24
  VerifyZkLoginSignatureDocument,
25
25
  ZkLoginIntentScope
26
26
  } from "./generated/queries.js";
27
27
  import { ObjectError } from "../experimental/errors.js";
28
- import { fromBase64, toBase64 } from "@mysten/utils";
28
+ import { chunk, fromBase64, toBase64 } from "@mysten/utils";
29
29
  import { normalizeStructTag, normalizeSuiAddress } from "../utils/sui-types.js";
30
30
  import { deriveDynamicFieldID } from "../utils/dynamic-fields.js";
31
31
  import {
@@ -43,40 +43,38 @@ class GraphQLCoreClient extends Experimental_CoreClient {
43
43
  __privateSet(this, _graphqlClient, graphqlClient);
44
44
  }
45
45
  async getObjects(options) {
46
- const objects = [];
47
- let hasNextPage = true;
48
- let cursor = null;
49
- while (hasNextPage) {
50
- const objectsPage = await __privateMethod(this, _GraphQLCoreClient_instances, graphqlQuery_fn).call(this, {
46
+ const batches = chunk(options.objectIds, 50);
47
+ const results = [];
48
+ for (const batch of batches) {
49
+ const page = await __privateMethod(this, _GraphQLCoreClient_instances, graphqlQuery_fn).call(this, {
51
50
  query: MultiGetObjectsDocument,
52
51
  variables: {
53
- objectIds: options.objectIds,
54
- cursor
52
+ objectKeys: batch.map((address) => ({ address }))
55
53
  }
56
- }, (result) => result.objects);
57
- objects.push(...objectsPage.nodes);
58
- hasNextPage = objectsPage.pageInfo.hasNextPage;
59
- cursor = objectsPage.pageInfo.endCursor ?? null;
54
+ }, (result) => result.multiGetObjects);
55
+ results.push(
56
+ ...batch.map((id) => normalizeSuiAddress(id)).map(
57
+ (id) => page.find((obj) => obj?.address === id) ?? new ObjectError("notFound", `Object ${id} not found`)
58
+ ).map((obj) => {
59
+ if (obj instanceof ObjectError) {
60
+ return obj;
61
+ }
62
+ return {
63
+ id: obj.address,
64
+ version: obj.version?.toString(),
65
+ digest: obj.digest,
66
+ owner: mapOwner(obj.owner),
67
+ type: obj.asMoveObject?.contents?.type?.repr,
68
+ content: Promise.resolve(
69
+ obj.asMoveObject?.contents?.bcs ? fromBase64(obj.asMoveObject.contents.bcs) : new Uint8Array()
70
+ ),
71
+ previousTransaction: obj.previousTransaction?.digest ?? null
72
+ };
73
+ })
74
+ );
60
75
  }
61
76
  return {
62
- objects: options.objectIds.map((id) => normalizeSuiAddress(id)).map(
63
- (id) => objects.find((obj) => obj.address === id) ?? new ObjectError("notFound", `Object ${id} not found`)
64
- ).map((obj) => {
65
- if (obj instanceof ObjectError) {
66
- return obj;
67
- }
68
- return {
69
- id: obj.address,
70
- version: obj.version.toString(),
71
- digest: obj.digest,
72
- owner: mapOwner(obj.owner),
73
- type: obj.asMoveObject?.contents?.type?.repr,
74
- content: Promise.resolve(
75
- obj.asMoveObject?.contents?.bcs ? fromBase64(obj.asMoveObject.contents.bcs) : new Uint8Array()
76
- ),
77
- previousTransaction: obj.previousTransactionBlock?.digest ?? null
78
- };
79
- })
77
+ objects: results
80
78
  };
81
79
  }
82
80
  async getOwnedObjects(options) {
@@ -92,14 +90,14 @@ class GraphQLCoreClient extends Experimental_CoreClient {
92
90
  return {
93
91
  objects: objects.nodes.map((obj) => ({
94
92
  id: obj.address,
95
- version: obj.version.toString(),
93
+ version: obj.version?.toString(),
96
94
  digest: obj.digest,
97
95
  owner: mapOwner(obj.owner),
98
96
  type: obj.contents?.type?.repr,
99
97
  content: Promise.resolve(
100
98
  obj.contents?.bcs ? fromBase64(obj.contents.bcs) : new Uint8Array()
101
99
  ),
102
- previousTransaction: obj.previousTransactionBlock?.digest ?? null
100
+ previousTransaction: obj.previousTransaction?.digest ?? null
103
101
  })),
104
102
  hasNextPage: objects.pageInfo.hasNextPage,
105
103
  cursor: objects.pageInfo.endCursor ?? null
@@ -112,23 +110,23 @@ class GraphQLCoreClient extends Experimental_CoreClient {
112
110
  owner: options.address,
113
111
  cursor: options.cursor,
114
112
  first: options.limit,
115
- type: (await this.mvr.resolveType({ type: options.coinType })).type
113
+ type: `0x2::coin::Coin<${(await this.mvr.resolveType({ type: options.coinType })).type}>`
116
114
  }
117
- }, (result) => result.address?.coins);
115
+ }, (result) => result.address?.objects);
118
116
  return {
119
117
  cursor: coins.pageInfo.endCursor ?? null,
120
118
  hasNextPage: coins.pageInfo.hasNextPage,
121
119
  objects: coins.nodes.map((coin) => ({
122
120
  id: coin.address,
123
- version: coin.version.toString(),
121
+ version: coin.version?.toString(),
124
122
  digest: coin.digest,
125
123
  owner: mapOwner(coin.owner),
126
124
  type: coin.contents?.type?.repr,
127
- balance: coin.coinBalance,
125
+ balance: coin.contents?.json?.balance,
128
126
  content: Promise.resolve(
129
127
  coin.contents?.bcs ? fromBase64(coin.contents.bcs) : new Uint8Array()
130
128
  ),
131
- previousTransaction: coin.previousTransactionBlock?.digest ?? null
129
+ previousTransaction: coin.previousTransaction?.digest ?? null
132
130
  }))
133
131
  };
134
132
  }
@@ -142,7 +140,7 @@ class GraphQLCoreClient extends Experimental_CoreClient {
142
140
  }, (result2) => result2.address?.balance);
143
141
  return {
144
142
  balance: {
145
- coinType: result.coinType.repr,
143
+ coinType: result.coinType?.repr,
146
144
  balance: result.totalBalance
147
145
  }
148
146
  };
@@ -156,7 +154,7 @@ class GraphQLCoreClient extends Experimental_CoreClient {
156
154
  cursor: balances.pageInfo.endCursor ?? null,
157
155
  hasNextPage: balances.pageInfo.hasNextPage,
158
156
  balances: balances.nodes.map((balance) => ({
159
- coinType: balance.coinType.repr,
157
+ coinType: balance.coinType?.repr,
160
158
  balance: balance.totalBalance
161
159
  }))
162
160
  };
@@ -165,16 +163,19 @@ class GraphQLCoreClient extends Experimental_CoreClient {
165
163
  const result = await __privateMethod(this, _GraphQLCoreClient_instances, graphqlQuery_fn).call(this, {
166
164
  query: GetTransactionBlockDocument,
167
165
  variables: { digest: options.digest }
168
- }, (result2) => result2.transactionBlock);
166
+ }, (result2) => result2.transaction);
169
167
  return {
170
168
  transaction: parseTransaction(result)
171
169
  };
172
170
  }
173
171
  async executeTransaction(options) {
174
172
  const result = await __privateMethod(this, _GraphQLCoreClient_instances, graphqlQuery_fn).call(this, {
175
- query: ExecuteTransactionBlockDocument,
176
- variables: { txBytes: toBase64(options.transaction), signatures: options.signatures }
177
- }, (result2) => result2.executeTransactionBlock);
173
+ query: ExecuteTransactionDocument,
174
+ variables: {
175
+ transactionDataBcs: toBase64(options.transaction),
176
+ signatures: options.signatures
177
+ }
178
+ }, (result2) => result2.executeTransaction);
178
179
  if (result.errors) {
179
180
  if (result.errors.length === 1) {
180
181
  throw new Error(result.errors[0]);
@@ -182,19 +183,25 @@ class GraphQLCoreClient extends Experimental_CoreClient {
182
183
  throw new AggregateError(result.errors.map((error) => new Error(error)));
183
184
  }
184
185
  return {
185
- transaction: parseTransaction(result.effects.transactionBlock)
186
+ transaction: parseTransaction(result.effects?.transaction)
186
187
  };
187
188
  }
188
189
  async dryRunTransaction(options) {
189
190
  const result = await __privateMethod(this, _GraphQLCoreClient_instances, graphqlQuery_fn).call(this, {
190
- query: DryRunTransactionBlockDocument,
191
- variables: { txBytes: toBase64(options.transaction) }
192
- }, (result2) => result2.dryRunTransactionBlock);
191
+ query: SimulateTransactionDocument,
192
+ variables: {
193
+ transaction: {
194
+ bcs: {
195
+ value: toBase64(options.transaction)
196
+ }
197
+ }
198
+ }
199
+ }, (result2) => result2.simulateTransaction);
193
200
  if (result.error) {
194
201
  throw new Error(result.error);
195
202
  }
196
203
  return {
197
- transaction: parseTransaction(result.transaction)
204
+ transaction: parseTransaction(result.effects?.transaction)
198
205
  };
199
206
  }
200
207
  async getReferenceGasPrice() {
@@ -209,21 +216,21 @@ class GraphQLCoreClient extends Experimental_CoreClient {
209
216
  const result = await __privateMethod(this, _GraphQLCoreClient_instances, graphqlQuery_fn).call(this, {
210
217
  query: GetDynamicFieldsDocument,
211
218
  variables: { parentId: options.parentId }
212
- }, (result2) => result2.owner?.dynamicFields);
219
+ }, (result2) => result2.address?.dynamicFields);
213
220
  return {
214
221
  dynamicFields: result.nodes.map((dynamicField) => {
215
- const valueType = dynamicField.value?.__typename === "MoveObject" ? dynamicField.value.contents?.type?.repr : dynamicField.value?.type.repr;
222
+ const valueType = dynamicField.value?.__typename === "MoveObject" ? dynamicField.value.contents?.type?.repr : dynamicField.value?.type?.repr;
216
223
  return {
217
224
  id: deriveDynamicFieldID(
218
225
  options.parentId,
219
- dynamicField.name?.type.repr,
226
+ dynamicField.name?.type?.repr,
220
227
  fromBase64(dynamicField.name?.bcs)
221
228
  ),
222
229
  type: normalizeStructTag(
223
- dynamicField.value?.__typename === "MoveObject" ? `0x2::dynamic_field::Field<0x2::dynamic_object_field::Wrapper<${dynamicField.name?.type.repr}>,0x2::object::ID>` : `0x2::dynamic_field::Field<${dynamicField.name?.type.repr},${valueType}>`
230
+ dynamicField.value?.__typename === "MoveObject" ? `0x2::dynamic_field::Field<0x2::dynamic_object_field::Wrapper<${dynamicField.name?.type?.repr}>,0x2::object::ID>` : `0x2::dynamic_field::Field<${dynamicField.name?.type?.repr},${valueType}>`
224
231
  ),
225
232
  name: {
226
- type: dynamicField.name?.type.repr,
233
+ type: dynamicField.name?.type?.repr,
227
234
  bcs: fromBase64(dynamicField.name?.bcs)
228
235
  },
229
236
  valueType
@@ -243,26 +250,22 @@ class GraphQLCoreClient extends Experimental_CoreClient {
243
250
  intentScope,
244
251
  author: options.author
245
252
  }
246
- }, (result2) => result2.verifyZkloginSignature);
253
+ }, (result2) => result2.verifyZkLoginSignature);
247
254
  return {
248
- success: result.success,
249
- errors: result.errors
255
+ success: result.success ?? false,
256
+ errors: result.error ? [result.error] : []
250
257
  };
251
258
  }
252
- async resolveNameServiceNames(options) {
253
- const suinsRegistrations = await __privateMethod(this, _GraphQLCoreClient_instances, graphqlQuery_fn).call(this, {
254
- query: ResolveNameServiceNamesDocument,
259
+ async defaultNameServiceName(options) {
260
+ const name = await __privateMethod(this, _GraphQLCoreClient_instances, graphqlQuery_fn).call(this, {
261
+ query: DefaultSuinsNameDocument,
255
262
  signal: options.signal,
256
263
  variables: {
257
- address: options.address,
258
- cursor: options.cursor,
259
- limit: options.limit
264
+ address: options.address
260
265
  }
261
- }, (result) => result.address?.suinsRegistrations);
266
+ }, (result) => result.address?.defaultSuinsName ?? null);
262
267
  return {
263
- hasNextPage: suinsRegistrations.pageInfo.hasNextPage,
264
- nextCursor: suinsRegistrations.pageInfo.endCursor ?? null,
265
- data: suinsRegistrations.nodes.map((node) => node.domain) ?? []
268
+ data: { name }
266
269
  };
267
270
  }
268
271
  async getMoveFunction(options) {
@@ -347,19 +350,19 @@ class GraphQLResponseError extends Error {
347
350
  function mapOwner(owner) {
348
351
  switch (owner.__typename) {
349
352
  case "AddressOwner":
350
- return { $kind: "AddressOwner", AddressOwner: owner.owner?.asAddress?.address };
353
+ return { $kind: "AddressOwner", AddressOwner: owner.address?.address };
351
354
  case "ConsensusAddressOwner":
352
355
  return {
353
356
  $kind: "ConsensusAddressOwner",
354
357
  ConsensusAddressOwner: {
355
- owner: owner.owner?.address,
358
+ owner: owner?.address?.address,
356
359
  startVersion: String(owner.startVersion)
357
360
  }
358
361
  };
362
+ case "ObjectOwner":
363
+ return { $kind: "ObjectOwner", ObjectOwner: owner.address?.address };
359
364
  case "Immutable":
360
365
  return { $kind: "Immutable", Immutable: true };
361
- case "Parent":
362
- return { $kind: "ObjectOwner", ObjectOwner: owner.parent?.address };
363
366
  case "Shared":
364
367
  return {
365
368
  $kind: "Shared",
@@ -369,33 +372,33 @@ function mapOwner(owner) {
369
372
  }
370
373
  function parseTransaction(transaction) {
371
374
  const objectTypes = {};
372
- transaction.effects?.unchangedConsensusObjects.nodes.forEach((node) => {
375
+ transaction.effects?.unchangedConsensusObjects?.nodes.forEach((node) => {
373
376
  if (node.__typename === "ConsensusObjectRead") {
374
- const type = node.object?.asMoveObject?.contents?.type.repr;
377
+ const type = node.object?.asMoveObject?.contents?.type?.repr;
375
378
  const address = node.object?.asMoveObject?.address;
376
379
  if (type && address) {
377
380
  objectTypes[address] = type;
378
381
  }
379
382
  }
380
383
  });
381
- transaction.effects?.objectChanges.nodes.forEach((node) => {
384
+ transaction.effects?.objectChanges?.nodes.forEach((node) => {
382
385
  const address = node.address;
383
- const type = node.inputState?.asMoveObject?.contents?.type.repr ?? node.outputState?.asMoveObject?.contents?.type.repr;
386
+ const type = node.inputState?.asMoveObject?.contents?.type?.repr ?? node.outputState?.asMoveObject?.contents?.type?.repr;
384
387
  if (address && type) {
385
388
  objectTypes[address] = type;
386
389
  }
387
390
  });
388
- if (transaction.effects?.balanceChanges.pageInfo.hasNextPage) {
391
+ if (transaction.effects?.balanceChanges?.pageInfo.hasNextPage) {
389
392
  throw new Error("Pagination for balance changes is not supported");
390
393
  }
391
394
  return {
392
395
  digest: transaction.digest,
393
- effects: parseTransactionEffectsBcs(fromBase64(transaction.effects?.bcs)),
396
+ effects: parseTransactionEffectsBcs(fromBase64(transaction.effects?.effectsBcs)),
394
397
  epoch: transaction.effects?.epoch?.epochId?.toString() ?? null,
395
398
  objectTypes: Promise.resolve(objectTypes),
396
- transaction: parseTransactionBcs(fromBase64(transaction.bcs)),
397
- signatures: transaction.signatures,
398
- balanceChanges: transaction.effects?.balanceChanges.nodes.map((change) => ({
399
+ transaction: parseTransactionBcs(fromBase64(transaction.transactionBcs)),
400
+ signatures: transaction.signatures.map((sig) => sig.signatureBytes),
401
+ balanceChanges: transaction.effects?.balanceChanges?.nodes.map((change) => ({
399
402
  coinType: change?.coinType?.repr,
400
403
  address: change.owner?.address,
401
404
  amount: change.amount
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/graphql/core.ts"],
4
- "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Experimental_CoreClient } from '../experimental/core.js';\nimport type { Experimental_SuiClientTypes } from '../experimental/types.js';\nimport type { GraphQLQueryOptions, SuiGraphQLClient } from './client.js';\nimport type {\n\tObject_Owner_FieldsFragment,\n\tObject_FieldsFragment,\n\tTransaction_FieldsFragment,\n} from './generated/queries.js';\nimport {\n\tDryRunTransactionBlockDocument,\n\tExecuteTransactionBlockDocument,\n\tGetAllBalancesDocument,\n\tGetBalanceDocument,\n\tGetCoinsDocument,\n\tGetDynamicFieldsDocument,\n\tGetMoveFunctionDocument,\n\tGetOwnedObjectsDocument,\n\tGetReferenceGasPriceDocument,\n\tGetTransactionBlockDocument,\n\tMultiGetObjectsDocument,\n\tResolveNameServiceNamesDocument,\n\tVerifyZkLoginSignatureDocument,\n\tZkLoginIntentScope,\n} from './generated/queries.js';\nimport { ObjectError } from '../experimental/errors.js';\nimport { fromBase64, toBase64 } from '@mysten/utils';\nimport { normalizeStructTag, normalizeSuiAddress } from '../utils/sui-types.js';\nimport { deriveDynamicFieldID } from '../utils/dynamic-fields.js';\nimport {\n\tparseTransactionBcs,\n\tparseTransactionEffectsBcs,\n} from '../experimental/transports/utils.js';\nimport type { OpenMoveTypeSignatureBody, OpenMoveTypeSignature } from './types.js';\n\nexport class GraphQLCoreClient extends Experimental_CoreClient {\n\t#graphqlClient: SuiGraphQLClient;\n\n\tconstructor({\n\t\tgraphqlClient,\n\t\tmvr,\n\t}: {\n\t\tgraphqlClient: SuiGraphQLClient;\n\t\tmvr?: Experimental_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(\n\t\toptions: Experimental_SuiClientTypes.GetObjectsOptions,\n\t): Promise<Experimental_SuiClientTypes.GetObjectsResponse> {\n\t\tconst objects: Object_FieldsFragment[] = [];\n\n\t\tlet hasNextPage = true;\n\t\tlet cursor: string | null = null;\n\n\t\twhile (hasNextPage) {\n\t\t\tconst objectsPage = 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\tobjectIds: options.objectIds,\n\t\t\t\t\t\tcursor,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t(result) => result.objects,\n\t\t\t);\n\n\t\t\tobjects.push(...objectsPage.nodes);\n\t\t\thasNextPage = objectsPage.pageInfo.hasNextPage;\n\t\t\tcursor = (objectsPage.pageInfo.endCursor ?? null) as string | null;\n\t\t}\n\n\t\treturn {\n\t\t\tobjects: options.objectIds\n\t\t\t\t.map((id) => normalizeSuiAddress(id))\n\t\t\t\t.map(\n\t\t\t\t\t(id) =>\n\t\t\t\t\t\tobjects.find((obj) => obj.address === id) ??\n\t\t\t\t\t\tnew ObjectError('notFound', `Object ${id} not found`),\n\t\t\t\t)\n\t\t\t\t.map((obj) => {\n\t\t\t\t\tif (obj instanceof ObjectError) {\n\t\t\t\t\t\treturn obj;\n\t\t\t\t\t}\n\t\t\t\t\treturn {\n\t\t\t\t\t\tid: obj.address,\n\t\t\t\t\t\tversion: obj.version.toString(),\n\t\t\t\t\t\tdigest: obj.digest!,\n\t\t\t\t\t\towner: mapOwner(obj.owner!),\n\t\t\t\t\t\ttype: obj.asMoveObject?.contents?.type?.repr!,\n\t\t\t\t\t\tcontent: Promise.resolve(\n\t\t\t\t\t\t\tobj.asMoveObject?.contents?.bcs\n\t\t\t\t\t\t\t\t? fromBase64(obj.asMoveObject.contents.bcs)\n\t\t\t\t\t\t\t\t: new Uint8Array(),\n\t\t\t\t\t\t),\n\t\t\t\t\t\tpreviousTransaction: obj.previousTransactionBlock?.digest ?? null,\n\t\t\t\t\t};\n\t\t\t\t}),\n\t\t};\n\t}\n\tasync getOwnedObjects(\n\t\toptions: Experimental_SuiClientTypes.GetOwnedObjectsOptions,\n\t): Promise<Experimental_SuiClientTypes.GetOwnedObjectsResponse> {\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.address,\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},\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((obj) => ({\n\t\t\t\tid: obj.address,\n\t\t\t\tversion: obj.version.toString(),\n\t\t\t\tdigest: obj.digest!,\n\t\t\t\towner: mapOwner(obj.owner!),\n\t\t\t\ttype: obj.contents?.type?.repr!,\n\t\t\t\tcontent: Promise.resolve(\n\t\t\t\t\tobj.contents?.bcs ? fromBase64(obj.contents.bcs) : new Uint8Array(),\n\t\t\t\t),\n\t\t\t\tpreviousTransaction: obj.previousTransactionBlock?.digest ?? null,\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 getCoins(\n\t\toptions: Experimental_SuiClientTypes.GetCoinsOptions,\n\t): Promise<Experimental_SuiClientTypes.GetCoinsResponse> {\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.address,\n\t\t\t\t\tcursor: options.cursor,\n\t\t\t\t\tfirst: options.limit,\n\t\t\t\t\ttype: (await this.mvr.resolveType({ type: options.coinType })).type,\n\t\t\t\t},\n\t\t\t},\n\t\t\t(result) => result.address?.coins,\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((coin) => ({\n\t\t\t\tid: coin.address,\n\t\t\t\tversion: coin.version.toString(),\n\t\t\t\tdigest: coin.digest!,\n\t\t\t\towner: mapOwner(coin.owner!),\n\t\t\t\ttype: coin.contents?.type?.repr!,\n\t\t\t\tbalance: coin.coinBalance!,\n\t\t\t\tcontent: Promise.resolve(\n\t\t\t\t\tcoin.contents?.bcs ? fromBase64(coin.contents.bcs) : new Uint8Array(),\n\t\t\t\t),\n\t\t\t\tpreviousTransaction: coin.previousTransactionBlock?.digest ?? null,\n\t\t\t})),\n\t\t};\n\t}\n\n\tasync getBalance(\n\t\toptions: Experimental_SuiClientTypes.GetBalanceOptions,\n\t): Promise<Experimental_SuiClientTypes.GetBalanceResponse> {\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.address,\n\t\t\t\t\ttype: (await this.mvr.resolveType({ type: options.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\treturn {\n\t\t\tbalance: {\n\t\t\t\tcoinType: result.coinType.repr,\n\t\t\t\tbalance: result.totalBalance!,\n\t\t\t},\n\t\t};\n\t}\n\tasync getAllBalances(\n\t\toptions: Experimental_SuiClientTypes.GetAllBalancesOptions,\n\t): Promise<Experimental_SuiClientTypes.GetAllBalancesResponse> {\n\t\tconst balances = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: GetAllBalancesDocument,\n\t\t\t\tvariables: { owner: options.address },\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\tcoinType: balance.coinType.repr,\n\t\t\t\tbalance: balance.totalBalance!,\n\t\t\t})),\n\t\t};\n\t}\n\tasync getTransaction(\n\t\toptions: Experimental_SuiClientTypes.GetTransactionOptions,\n\t): Promise<Experimental_SuiClientTypes.GetTransactionResponse> {\n\t\tconst result = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: GetTransactionBlockDocument,\n\t\t\t\tvariables: { digest: options.digest },\n\t\t\t},\n\t\t\t(result) => result.transactionBlock,\n\t\t);\n\n\t\treturn {\n\t\t\ttransaction: parseTransaction(result),\n\t\t};\n\t}\n\tasync executeTransaction(\n\t\toptions: Experimental_SuiClientTypes.ExecuteTransactionOptions,\n\t): Promise<Experimental_SuiClientTypes.ExecuteTransactionResponse> {\n\t\tconst result = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: ExecuteTransactionBlockDocument,\n\t\t\t\tvariables: { txBytes: toBase64(options.transaction), signatures: options.signatures },\n\t\t\t},\n\t\t\t(result) => result.executeTransactionBlock,\n\t\t);\n\n\t\tif (result.errors) {\n\t\t\tif (result.errors.length === 1) {\n\t\t\t\tthrow new Error(result.errors[0]);\n\t\t\t}\n\t\t\tthrow new AggregateError(result.errors.map((error) => new Error(error)));\n\t\t}\n\n\t\treturn {\n\t\t\ttransaction: parseTransaction(result.effects.transactionBlock!),\n\t\t};\n\t}\n\tasync dryRunTransaction(\n\t\toptions: Experimental_SuiClientTypes.DryRunTransactionOptions,\n\t): Promise<Experimental_SuiClientTypes.DryRunTransactionResponse> {\n\t\tconst result = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: DryRunTransactionBlockDocument,\n\t\t\t\tvariables: { txBytes: toBase64(options.transaction) },\n\t\t\t},\n\t\t\t(result) => result.dryRunTransactionBlock,\n\t\t);\n\n\t\tif (result.error) {\n\t\t\tthrow new Error(result.error);\n\t\t}\n\n\t\treturn {\n\t\t\ttransaction: parseTransaction(result.transaction!),\n\t\t};\n\t}\n\tasync getReferenceGasPrice(): Promise<Experimental_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 getDynamicFields(\n\t\toptions: Experimental_SuiClientTypes.GetDynamicFieldsOptions,\n\t): Promise<Experimental_SuiClientTypes.GetDynamicFieldsResponse> {\n\t\tconst result = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: GetDynamicFieldsDocument,\n\t\t\t\tvariables: { parentId: options.parentId },\n\t\t\t},\n\t\t\t(result) => result.owner?.dynamicFields,\n\t\t);\n\n\t\treturn {\n\t\t\tdynamicFields: result.nodes.map((dynamicField) => {\n\t\t\t\tconst valueType =\n\t\t\t\t\tdynamicField.value?.__typename === 'MoveObject'\n\t\t\t\t\t\t? dynamicField.value.contents?.type?.repr!\n\t\t\t\t\t\t: dynamicField.value?.type.repr!;\n\t\t\t\treturn {\n\t\t\t\t\tid: deriveDynamicFieldID(\n\t\t\t\t\t\toptions.parentId,\n\t\t\t\t\t\tdynamicField.name?.type.repr!,\n\t\t\t\t\t\tfromBase64(dynamicField.name?.bcs!),\n\t\t\t\t\t),\n\t\t\t\t\ttype: normalizeStructTag(\n\t\t\t\t\t\tdynamicField.value?.__typename === 'MoveObject'\n\t\t\t\t\t\t\t? `0x2::dynamic_field::Field<0x2::dynamic_object_field::Wrapper<${dynamicField.name?.type.repr}>,0x2::object::ID>`\n\t\t\t\t\t\t\t: `0x2::dynamic_field::Field<${dynamicField.name?.type.repr},${valueType}>`,\n\t\t\t\t\t),\n\t\t\t\t\tname: {\n\t\t\t\t\t\ttype: dynamicField.name?.type.repr!,\n\t\t\t\t\t\tbcs: fromBase64(dynamicField.name?.bcs!),\n\t\t\t\t\t},\n\t\t\t\t\tvalueType,\n\t\t\t\t};\n\t\t\t}),\n\t\t\tcursor: result.pageInfo.endCursor ?? null,\n\t\t\thasNextPage: result.pageInfo.hasNextPage,\n\t\t};\n\t}\n\n\tasync verifyZkLoginSignature(\n\t\toptions: Experimental_SuiClientTypes.VerifyZkLoginSignatureOptions,\n\t): Promise<Experimental_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 result = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: VerifyZkLoginSignatureDocument,\n\t\t\t\tvariables: {\n\t\t\t\t\tbytes: options.bytes,\n\t\t\t\t\tsignature: options.signature,\n\t\t\t\t\tintentScope,\n\t\t\t\t\tauthor: options.author,\n\t\t\t\t},\n\t\t\t},\n\t\t\t(result) => result.verifyZkloginSignature,\n\t\t);\n\n\t\treturn {\n\t\t\tsuccess: result.success,\n\t\t\terrors: result.errors,\n\t\t};\n\t}\n\n\tasync resolveNameServiceNames(\n\t\toptions: Experimental_SuiClientTypes.ResolveNameServiceNamesOptions,\n\t): Promise<Experimental_SuiClientTypes.ResolveNameServiceNamesResponse> {\n\t\tconst suinsRegistrations = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: ResolveNameServiceNamesDocument,\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\tcursor: options.cursor,\n\t\t\t\t\tlimit: options.limit,\n\t\t\t\t},\n\t\t\t},\n\t\t\t(result) => result.address?.suinsRegistrations,\n\t\t);\n\n\t\treturn {\n\t\t\thasNextPage: suinsRegistrations.pageInfo.hasNextPage,\n\t\t\tnextCursor: suinsRegistrations.pageInfo.endCursor ?? null,\n\t\t\tdata: suinsRegistrations.nodes.map((node) => node.domain) ?? [],\n\t\t};\n\t}\n\n\tasync getMoveFunction(\n\t\toptions: Experimental_SuiClientTypes.GetMoveFunctionOptions,\n\t): Promise<Experimental_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\tresolveTransactionPlugin(): never {\n\t\tthrow new Error('GraphQL client does not support transaction resolution yet');\n\t}\n}\nexport type GraphQLResponseErrors = Array<{\n\tmessage: string;\n\tlocations?: { line: number; column: number }[];\n\tpath?: (string | number)[];\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): Experimental_SuiClientTypes.ObjectOwner {\n\tswitch (owner.__typename) {\n\t\tcase 'AddressOwner':\n\t\t\treturn { $kind: 'AddressOwner', AddressOwner: owner.owner?.asAddress?.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.owner?.address,\n\t\t\t\t\tstartVersion: String(owner.startVersion),\n\t\t\t\t},\n\t\t\t};\n\t\tcase 'Immutable':\n\t\t\treturn { $kind: 'Immutable', Immutable: true };\n\t\tcase 'Parent':\n\t\t\treturn { $kind: 'ObjectOwner', ObjectOwner: owner.parent?.address };\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(\n\ttransaction: Transaction_FieldsFragment,\n): Experimental_SuiClientTypes.TransactionResponse {\n\tconst objectTypes: Record<string, string> = {};\n\n\ttransaction.effects?.unchangedConsensusObjects.nodes.forEach((node) => {\n\t\tif (node.__typename === 'ConsensusObjectRead') {\n\t\t\tconst type = node.object?.asMoveObject?.contents?.type.repr;\n\t\t\tconst address = node.object?.asMoveObject?.address;\n\n\t\t\tif (type && address) {\n\t\t\t\tobjectTypes[address] = type;\n\t\t\t}\n\t\t}\n\t});\n\n\ttransaction.effects?.objectChanges.nodes.forEach((node) => {\n\t\tconst address = node.address;\n\t\tconst type =\n\t\t\tnode.inputState?.asMoveObject?.contents?.type.repr ??\n\t\t\tnode.outputState?.asMoveObject?.contents?.type.repr;\n\n\t\tif (address && type) {\n\t\t\tobjectTypes[address] = type;\n\t\t}\n\t});\n\n\tif (transaction.effects?.balanceChanges.pageInfo.hasNextPage) {\n\t\tthrow new Error('Pagination for balance changes is not supported');\n\t}\n\n\treturn {\n\t\tdigest: transaction.digest!,\n\t\teffects: parseTransactionEffectsBcs(fromBase64(transaction.effects?.bcs!)),\n\t\tepoch: transaction.effects?.epoch?.epochId?.toString() ?? null,\n\t\tobjectTypes: Promise.resolve(objectTypes),\n\t\ttransaction: parseTransactionBcs(fromBase64(transaction.bcs!)),\n\t\tsignatures: transaction.signatures!,\n\t\tbalanceChanges:\n\t\t\ttransaction.effects?.balanceChanges.nodes.map((change) => ({\n\t\t\t\tcoinType: change?.coinType?.repr!,\n\t\t\t\taddress: change.owner?.address!,\n\t\t\t\tamount: change.amount!,\n\t\t\t})) ?? [],\n\t\t// events: transaction.events?.pageInfo.hasNextPage\n\t};\n}\n\nfunction parseNormalizedSuiMoveType(\n\ttype: OpenMoveTypeSignature,\n): Experimental_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 parseNormalizedSuiMoveTypeBody(\n\ttype: OpenMoveTypeSignatureBody,\n): Experimental_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"],
5
- "mappings": "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",
4
+ "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Experimental_CoreClient } from '../experimental/core.js';\nimport type { Experimental_SuiClientTypes } from '../experimental/types.js';\nimport type { GraphQLQueryOptions, SuiGraphQLClient } from './client.js';\nimport type {\n\tObject_Owner_FieldsFragment,\n\tTransaction_FieldsFragment,\n} from './generated/queries.js';\nimport {\n\tDefaultSuinsNameDocument,\n\tExecuteTransactionDocument,\n\tGetAllBalancesDocument,\n\tGetBalanceDocument,\n\tGetCoinsDocument,\n\tGetDynamicFieldsDocument,\n\tGetMoveFunctionDocument,\n\tGetOwnedObjectsDocument,\n\tGetReferenceGasPriceDocument,\n\tGetTransactionBlockDocument,\n\tMultiGetObjectsDocument,\n\tSimulateTransactionDocument,\n\tVerifyZkLoginSignatureDocument,\n\tZkLoginIntentScope,\n} from './generated/queries.js';\nimport { ObjectError } from '../experimental/errors.js';\nimport { chunk, fromBase64, toBase64 } from '@mysten/utils';\nimport { normalizeStructTag, normalizeSuiAddress } from '../utils/sui-types.js';\nimport { deriveDynamicFieldID } from '../utils/dynamic-fields.js';\nimport {\n\tparseTransactionBcs,\n\tparseTransactionEffectsBcs,\n} from '../experimental/transports/utils.js';\nimport type { OpenMoveTypeSignatureBody, OpenMoveTypeSignature } from './types.js';\n\nexport class GraphQLCoreClient extends Experimental_CoreClient {\n\t#graphqlClient: SuiGraphQLClient;\n\n\tconstructor({\n\t\tgraphqlClient,\n\t\tmvr,\n\t}: {\n\t\tgraphqlClient: SuiGraphQLClient;\n\t\tmvr?: Experimental_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(\n\t\toptions: Experimental_SuiClientTypes.GetObjectsOptions,\n\t): Promise<Experimental_SuiClientTypes.GetObjectsResponse> {\n\t\tconst batches = chunk(options.objectIds, 50);\n\t\tconst results: Experimental_SuiClientTypes.GetObjectsResponse['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},\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\treturn {\n\t\t\t\t\t\t\tid: 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: obj.asMoveObject?.contents?.type?.repr!,\n\t\t\t\t\t\t\tcontent: Promise.resolve(\n\t\t\t\t\t\t\t\tobj.asMoveObject?.contents?.bcs\n\t\t\t\t\t\t\t\t\t? fromBase64(obj.asMoveObject.contents.bcs)\n\t\t\t\t\t\t\t\t\t: new Uint8Array(),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tpreviousTransaction: obj.previousTransaction?.digest ?? null,\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 getOwnedObjects(\n\t\toptions: Experimental_SuiClientTypes.GetOwnedObjectsOptions,\n\t): Promise<Experimental_SuiClientTypes.GetOwnedObjectsResponse> {\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.address,\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},\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((obj) => ({\n\t\t\t\tid: obj.address,\n\t\t\t\tversion: obj.version?.toString()!,\n\t\t\t\tdigest: obj.digest!,\n\t\t\t\towner: mapOwner(obj.owner!),\n\t\t\t\ttype: obj.contents?.type?.repr!,\n\t\t\t\tcontent: Promise.resolve(\n\t\t\t\t\tobj.contents?.bcs ? fromBase64(obj.contents.bcs) : new Uint8Array(),\n\t\t\t\t),\n\t\t\t\tpreviousTransaction: obj.previousTransaction?.digest ?? null,\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 getCoins(\n\t\toptions: Experimental_SuiClientTypes.GetCoinsOptions,\n\t): Promise<Experimental_SuiClientTypes.GetCoinsResponse> {\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.address,\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: options.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((coin) => ({\n\t\t\t\tid: coin.address,\n\t\t\t\tversion: coin.version?.toString()!,\n\t\t\t\tdigest: coin.digest!,\n\t\t\t\towner: mapOwner(coin.owner!),\n\t\t\t\ttype: coin.contents?.type?.repr!,\n\t\t\t\tbalance: (coin.contents?.json as { balance: string })?.balance,\n\t\t\t\tcontent: Promise.resolve(\n\t\t\t\t\tcoin.contents?.bcs ? fromBase64(coin.contents.bcs) : new Uint8Array(),\n\t\t\t\t),\n\t\t\t\tpreviousTransaction: coin.previousTransaction?.digest ?? null,\n\t\t\t})),\n\t\t};\n\t}\n\n\tasync getBalance(\n\t\toptions: Experimental_SuiClientTypes.GetBalanceOptions,\n\t): Promise<Experimental_SuiClientTypes.GetBalanceResponse> {\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.address,\n\t\t\t\t\ttype: (await this.mvr.resolveType({ type: options.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\treturn {\n\t\t\tbalance: {\n\t\t\t\tcoinType: result.coinType?.repr!,\n\t\t\t\tbalance: result.totalBalance!,\n\t\t\t},\n\t\t};\n\t}\n\tasync getAllBalances(\n\t\toptions: Experimental_SuiClientTypes.GetAllBalancesOptions,\n\t): Promise<Experimental_SuiClientTypes.GetAllBalancesResponse> {\n\t\tconst balances = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: GetAllBalancesDocument,\n\t\t\t\tvariables: { owner: options.address },\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\tcoinType: balance.coinType?.repr!,\n\t\t\t\tbalance: balance.totalBalance!,\n\t\t\t})),\n\t\t};\n\t}\n\tasync getTransaction(\n\t\toptions: Experimental_SuiClientTypes.GetTransactionOptions,\n\t): Promise<Experimental_SuiClientTypes.GetTransactionResponse> {\n\t\tconst result = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: GetTransactionBlockDocument,\n\t\t\t\tvariables: { digest: options.digest },\n\t\t\t},\n\t\t\t(result) => result.transaction,\n\t\t);\n\n\t\treturn {\n\t\t\ttransaction: parseTransaction(result),\n\t\t};\n\t}\n\tasync executeTransaction(\n\t\toptions: Experimental_SuiClientTypes.ExecuteTransactionOptions,\n\t): Promise<Experimental_SuiClientTypes.ExecuteTransactionResponse> {\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},\n\t\t\t},\n\t\t\t(result) => result.executeTransaction,\n\t\t);\n\n\t\tif (result.errors) {\n\t\t\tif (result.errors.length === 1) {\n\t\t\t\tthrow new Error(result.errors[0]);\n\t\t\t}\n\t\t\tthrow new AggregateError(result.errors.map((error) => new Error(error)));\n\t\t}\n\n\t\treturn {\n\t\t\ttransaction: parseTransaction(result.effects?.transaction!),\n\t\t};\n\t}\n\tasync dryRunTransaction(\n\t\toptions: Experimental_SuiClientTypes.DryRunTransactionOptions,\n\t): Promise<Experimental_SuiClientTypes.DryRunTransactionResponse> {\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\tbcs: {\n\t\t\t\t\t\t\tvalue: toBase64(options.transaction),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\t(result) => result.simulateTransaction,\n\t\t);\n\n\t\tif (result.error) {\n\t\t\tthrow new Error(result.error);\n\t\t}\n\n\t\treturn {\n\t\t\ttransaction: parseTransaction(result.effects?.transaction!),\n\t\t};\n\t}\n\tasync getReferenceGasPrice(): Promise<Experimental_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 getDynamicFields(\n\t\toptions: Experimental_SuiClientTypes.GetDynamicFieldsOptions,\n\t): Promise<Experimental_SuiClientTypes.GetDynamicFieldsResponse> {\n\t\tconst result = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: GetDynamicFieldsDocument,\n\t\t\t\tvariables: { parentId: options.parentId },\n\t\t\t},\n\t\t\t(result) => result.address?.dynamicFields,\n\t\t);\n\n\t\treturn {\n\t\t\tdynamicFields: result.nodes.map((dynamicField) => {\n\t\t\t\tconst valueType =\n\t\t\t\t\tdynamicField.value?.__typename === 'MoveObject'\n\t\t\t\t\t\t? dynamicField.value.contents?.type?.repr!\n\t\t\t\t\t\t: dynamicField.value?.type?.repr!;\n\t\t\t\treturn {\n\t\t\t\t\tid: deriveDynamicFieldID(\n\t\t\t\t\t\toptions.parentId,\n\t\t\t\t\t\tdynamicField.name?.type?.repr!,\n\t\t\t\t\t\tfromBase64(dynamicField.name?.bcs!),\n\t\t\t\t\t),\n\t\t\t\t\ttype: normalizeStructTag(\n\t\t\t\t\t\tdynamicField.value?.__typename === 'MoveObject'\n\t\t\t\t\t\t\t? `0x2::dynamic_field::Field<0x2::dynamic_object_field::Wrapper<${dynamicField.name?.type?.repr}>,0x2::object::ID>`\n\t\t\t\t\t\t\t: `0x2::dynamic_field::Field<${dynamicField.name?.type?.repr},${valueType}>`,\n\t\t\t\t\t),\n\t\t\t\t\tname: {\n\t\t\t\t\t\ttype: dynamicField.name?.type?.repr!,\n\t\t\t\t\t\tbcs: fromBase64(dynamicField.name?.bcs!),\n\t\t\t\t\t},\n\t\t\t\t\tvalueType,\n\t\t\t\t};\n\t\t\t}),\n\t\t\tcursor: result.pageInfo.endCursor ?? null,\n\t\t\thasNextPage: result.pageInfo.hasNextPage,\n\t\t};\n\t}\n\n\tasync verifyZkLoginSignature(\n\t\toptions: Experimental_SuiClientTypes.VerifyZkLoginSignatureOptions,\n\t): Promise<Experimental_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 result = await this.#graphqlQuery(\n\t\t\t{\n\t\t\t\tquery: VerifyZkLoginSignatureDocument,\n\t\t\t\tvariables: {\n\t\t\t\t\tbytes: options.bytes,\n\t\t\t\t\tsignature: options.signature,\n\t\t\t\t\tintentScope,\n\t\t\t\t\tauthor: options.author,\n\t\t\t\t},\n\t\t\t},\n\t\t\t(result) => result.verifyZkLoginSignature,\n\t\t);\n\n\t\treturn {\n\t\t\tsuccess: result.success ?? false,\n\t\t\terrors: result.error ? [result.error] : [],\n\t\t};\n\t}\n\n\tasync defaultNameServiceName(\n\t\toptions: Experimental_SuiClientTypes.DefaultNameServiceNameOptions,\n\t): Promise<Experimental_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?.defaultSuinsName ?? 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: Experimental_SuiClientTypes.GetMoveFunctionOptions,\n\t): Promise<Experimental_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\tresolveTransactionPlugin(): never {\n\t\tthrow new Error('GraphQL client does not support transaction resolution yet');\n\t}\n}\nexport type GraphQLResponseErrors = Array<{\n\tmessage: string;\n\tlocations?: { line: number; column: number }[];\n\tpath?: (string | number)[];\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): Experimental_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(\n\ttransaction: Transaction_FieldsFragment,\n): Experimental_SuiClientTypes.TransactionResponse {\n\tconst objectTypes: Record<string, string> = {};\n\n\ttransaction.effects?.unchangedConsensusObjects?.nodes.forEach((node) => {\n\t\tif (node.__typename === 'ConsensusObjectRead') {\n\t\t\tconst type = node.object?.asMoveObject?.contents?.type?.repr;\n\t\t\tconst address = node.object?.asMoveObject?.address;\n\n\t\t\tif (type && address) {\n\t\t\t\tobjectTypes[address] = type;\n\t\t\t}\n\t\t}\n\t});\n\n\ttransaction.effects?.objectChanges?.nodes.forEach((node) => {\n\t\tconst address = node.address;\n\t\tconst type =\n\t\t\tnode.inputState?.asMoveObject?.contents?.type?.repr ??\n\t\t\tnode.outputState?.asMoveObject?.contents?.type?.repr;\n\n\t\tif (address && type) {\n\t\t\tobjectTypes[address] = type;\n\t\t}\n\t});\n\n\tif (transaction.effects?.balanceChanges?.pageInfo.hasNextPage) {\n\t\tthrow new Error('Pagination for balance changes is not supported');\n\t}\n\n\treturn {\n\t\tdigest: transaction.digest!,\n\t\teffects: parseTransactionEffectsBcs(fromBase64(transaction.effects?.effectsBcs!)),\n\t\tepoch: transaction.effects?.epoch?.epochId?.toString() ?? null,\n\t\tobjectTypes: Promise.resolve(objectTypes),\n\t\ttransaction: parseTransactionBcs(fromBase64(transaction.transactionBcs!)),\n\t\tsignatures: transaction.signatures.map((sig) => sig.signatureBytes!),\n\t\tbalanceChanges:\n\t\t\ttransaction.effects?.balanceChanges?.nodes.map((change) => ({\n\t\t\t\tcoinType: change?.coinType?.repr!,\n\t\t\t\taddress: change.owner?.address!,\n\t\t\t\tamount: change.amount!,\n\t\t\t})) ?? [],\n\t\t// events: transaction.events?.pageInfo.hasNextPage\n\t};\n}\n\nfunction parseNormalizedSuiMoveType(\n\ttype: OpenMoveTypeSignature,\n): Experimental_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 parseNormalizedSuiMoveTypeBody(\n\ttype: OpenMoveTypeSignatureBody,\n): Experimental_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"],
5
+ "mappings": "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",
6
6
  "names": ["result"]
7
7
  }