@mysten/sui 1.28.2 → 1.29.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 (117) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/README.md +5 -4
  3. package/dist/cjs/client/client.d.ts +2 -1
  4. package/dist/cjs/client/client.js +7 -0
  5. package/dist/cjs/client/client.js.map +2 -2
  6. package/dist/cjs/experimental/core.d.ts +1 -1
  7. package/dist/cjs/experimental/core.js +3 -2
  8. package/dist/cjs/experimental/core.js.map +2 -2
  9. package/dist/cjs/experimental/transports/graphql.d.ts +26 -0
  10. package/dist/cjs/experimental/transports/graphql.js +310 -0
  11. package/dist/cjs/experimental/transports/graphql.js.map +7 -0
  12. package/dist/cjs/experimental/transports/jsonRPC.d.ts +5 -3
  13. package/dist/cjs/experimental/transports/jsonRPC.js +53 -105
  14. package/dist/cjs/experimental/transports/jsonRPC.js.map +3 -3
  15. package/dist/cjs/experimental/transports/utils.d.ts +6 -0
  16. package/dist/cjs/experimental/transports/utils.js +102 -0
  17. package/dist/cjs/experimental/transports/utils.js.map +7 -0
  18. package/dist/cjs/experimental/types.d.ts +21 -6
  19. package/dist/cjs/experimental/types.js.map +1 -1
  20. package/dist/cjs/faucet/faucet.d.ts +1 -1
  21. package/dist/cjs/faucet/faucet.js.map +1 -1
  22. package/dist/cjs/graphql/client.d.ts +10 -3
  23. package/dist/cjs/graphql/client.js +12 -4
  24. package/dist/cjs/graphql/client.js.map +3 -3
  25. package/dist/cjs/graphql/generated/queries.d.ts +5653 -0
  26. package/dist/cjs/graphql/generated/queries.js +722 -0
  27. package/dist/cjs/graphql/generated/queries.js.map +7 -0
  28. package/dist/cjs/multisig/publickey.d.ts +3 -3
  29. package/dist/cjs/multisig/publickey.js.map +2 -2
  30. package/dist/cjs/transactions/Commands.d.ts +2 -2
  31. package/dist/cjs/transactions/Commands.js.map +2 -2
  32. package/dist/cjs/transactions/Transaction.d.ts +10 -2
  33. package/dist/cjs/transactions/Transaction.js +165 -21
  34. package/dist/cjs/transactions/Transaction.js.map +3 -3
  35. package/dist/cjs/transactions/TransactionData.d.ts +4 -2
  36. package/dist/cjs/transactions/TransactionData.js +72 -41
  37. package/dist/cjs/transactions/TransactionData.js.map +2 -2
  38. package/dist/cjs/transactions/intents/CoinWithBalance.js.map +1 -1
  39. package/dist/cjs/verify/verify.d.ts +5 -5
  40. package/dist/cjs/verify/verify.js.map +2 -2
  41. package/dist/cjs/version.d.ts +2 -2
  42. package/dist/cjs/version.js +2 -2
  43. package/dist/cjs/version.js.map +1 -1
  44. package/dist/cjs/zklogin/publickey.d.ts +9 -3
  45. package/dist/cjs/zklogin/publickey.js +8 -30
  46. package/dist/cjs/zklogin/publickey.js.map +2 -2
  47. package/dist/esm/client/client.d.ts +2 -1
  48. package/dist/esm/client/client.js +7 -0
  49. package/dist/esm/client/client.js.map +2 -2
  50. package/dist/esm/experimental/core.d.ts +1 -1
  51. package/dist/esm/experimental/core.js +3 -2
  52. package/dist/esm/experimental/core.js.map +2 -2
  53. package/dist/esm/experimental/transports/graphql.d.ts +26 -0
  54. package/dist/esm/experimental/transports/graphql.js +303 -0
  55. package/dist/esm/experimental/transports/graphql.js.map +7 -0
  56. package/dist/esm/experimental/transports/jsonRPC.d.ts +5 -3
  57. package/dist/esm/experimental/transports/jsonRPC.js +52 -104
  58. package/dist/esm/experimental/transports/jsonRPC.js.map +2 -2
  59. package/dist/esm/experimental/transports/utils.d.ts +6 -0
  60. package/dist/esm/experimental/transports/utils.js +82 -0
  61. package/dist/esm/experimental/transports/utils.js.map +7 -0
  62. package/dist/esm/experimental/types.d.ts +21 -6
  63. package/dist/esm/faucet/faucet.d.ts +1 -1
  64. package/dist/esm/faucet/faucet.js.map +1 -1
  65. package/dist/esm/graphql/client.d.ts +10 -3
  66. package/dist/esm/graphql/client.js +12 -4
  67. package/dist/esm/graphql/client.js.map +2 -2
  68. package/dist/esm/graphql/generated/queries.d.ts +5653 -0
  69. package/dist/esm/graphql/generated/queries.js +702 -0
  70. package/dist/esm/graphql/generated/queries.js.map +7 -0
  71. package/dist/esm/multisig/publickey.d.ts +3 -3
  72. package/dist/esm/multisig/publickey.js.map +2 -2
  73. package/dist/esm/transactions/Commands.d.ts +2 -2
  74. package/dist/esm/transactions/Commands.js.map +2 -2
  75. package/dist/esm/transactions/Transaction.d.ts +10 -2
  76. package/dist/esm/transactions/Transaction.js +165 -21
  77. package/dist/esm/transactions/Transaction.js.map +3 -3
  78. package/dist/esm/transactions/TransactionData.d.ts +4 -2
  79. package/dist/esm/transactions/TransactionData.js +72 -41
  80. package/dist/esm/transactions/TransactionData.js.map +2 -2
  81. package/dist/esm/transactions/intents/CoinWithBalance.js.map +1 -1
  82. package/dist/esm/verify/verify.d.ts +5 -5
  83. package/dist/esm/verify/verify.js.map +2 -2
  84. package/dist/esm/version.d.ts +2 -2
  85. package/dist/esm/version.js +2 -2
  86. package/dist/esm/version.js.map +1 -1
  87. package/dist/esm/zklogin/publickey.d.ts +9 -3
  88. package/dist/esm/zklogin/publickey.js +8 -30
  89. package/dist/esm/zklogin/publickey.js.map +2 -2
  90. package/dist/tsconfig.esm.tsbuildinfo +1 -1
  91. package/dist/tsconfig.tsbuildinfo +1 -1
  92. package/package.json +4 -1
  93. package/src/client/client.ts +10 -0
  94. package/src/experimental/core.ts +5 -2
  95. package/src/experimental/transports/graphql.ts +421 -0
  96. package/src/experimental/transports/jsonRPC.ts +47 -132
  97. package/src/experimental/transports/utils.ts +117 -0
  98. package/src/experimental/types.ts +30 -7
  99. package/src/faucet/faucet.ts +1 -1
  100. package/src/graphql/client.ts +21 -3
  101. package/src/graphql/generated/queries.ts +6061 -0
  102. package/src/graphql/queries/getAllBalances.graphql +20 -0
  103. package/src/graphql/queries/getBalance.graphql +14 -0
  104. package/src/graphql/queries/getCoins.graphql +29 -0
  105. package/src/graphql/queries/getDynamicFields.graphql +36 -0
  106. package/src/graphql/queries/getReferenceGasPrice.graphql +8 -0
  107. package/src/graphql/queries/objects.graphql +89 -0
  108. package/src/graphql/queries/transactions.graphql +80 -0
  109. package/src/graphql/queries/verifyZkLoginSignature.graphql +16 -0
  110. package/src/multisig/publickey.ts +3 -3
  111. package/src/transactions/Commands.ts +3 -2
  112. package/src/transactions/Transaction.ts +215 -12
  113. package/src/transactions/TransactionData.ts +86 -46
  114. package/src/transactions/intents/CoinWithBalance.ts +1 -1
  115. package/src/verify/verify.ts +6 -6
  116. package/src/version.ts +2 -2
  117. package/src/zklogin/publickey.ts +23 -39
@@ -0,0 +1,310 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __typeError = (msg) => {
7
+ throw TypeError(msg);
8
+ };
9
+ var __export = (target, all) => {
10
+ for (var name in all)
11
+ __defProp(target, name, { get: all[name], enumerable: true });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from))
16
+ if (!__hasOwnProp.call(to, key) && key !== except)
17
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
18
+ }
19
+ return to;
20
+ };
21
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
22
+ var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
23
+ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
24
+ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
25
+ var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
26
+ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
27
+ var graphql_exports = {};
28
+ __export(graphql_exports, {
29
+ GraphQLTransport: () => GraphQLTransport
30
+ });
31
+ module.exports = __toCommonJS(graphql_exports);
32
+ var import_core = require("../core.js");
33
+ var import_queries = require("../../graphql/generated/queries.js");
34
+ var import_errors = require("../errors.js");
35
+ var import_utils = require("@mysten/utils");
36
+ var import_sui_types = require("../../utils/sui-types.js");
37
+ var import_dynamic_fields = require("../../utils/dynamic-fields.js");
38
+ var import_utils2 = require("./utils.js");
39
+ var _graphqlClient, _GraphQLTransport_instances, graphqlQuery_fn;
40
+ class GraphQLTransport extends import_core.Experimental_CoreClient {
41
+ constructor(graphqlClient) {
42
+ super({ network: graphqlClient.network });
43
+ __privateAdd(this, _GraphQLTransport_instances);
44
+ __privateAdd(this, _graphqlClient);
45
+ __privateSet(this, _graphqlClient, graphqlClient);
46
+ }
47
+ async getObjects(options) {
48
+ const objects = [];
49
+ let hasNextPage = true;
50
+ let cursor = null;
51
+ while (hasNextPage) {
52
+ const objectsPage = await __privateMethod(this, _GraphQLTransport_instances, graphqlQuery_fn).call(this, {
53
+ query: import_queries.MultiGetObjectsDocument,
54
+ variables: {
55
+ objectIds: options.objectIds,
56
+ cursor
57
+ }
58
+ }, (result) => result.objects);
59
+ objects.push(...objectsPage.nodes);
60
+ hasNextPage = objectsPage.pageInfo.hasNextPage;
61
+ cursor = objectsPage.pageInfo.endCursor ?? null;
62
+ }
63
+ return {
64
+ objects: options.objectIds.map((id) => (0, import_sui_types.normalizeSuiAddress)(id)).map(
65
+ (id) => objects.find((obj) => obj.address === id) ?? new import_errors.ObjectError("notFound", `Object ${id} not found`)
66
+ ).map((obj) => {
67
+ if (obj instanceof import_errors.ObjectError) {
68
+ return obj;
69
+ }
70
+ return {
71
+ id: obj.address,
72
+ version: obj.version,
73
+ digest: obj.digest,
74
+ owner: mapOwner(obj.owner),
75
+ type: obj.asMoveObject?.contents?.type?.repr,
76
+ content: (0, import_utils.fromBase64)(obj.asMoveObject?.contents?.bcs)
77
+ };
78
+ })
79
+ };
80
+ }
81
+ async getOwnedObjects(options) {
82
+ const objects = await __privateMethod(this, _GraphQLTransport_instances, graphqlQuery_fn).call(this, {
83
+ query: import_queries.GetOwnedObjectsDocument,
84
+ variables: {
85
+ owner: options.address,
86
+ limit: options.limit,
87
+ cursor: options.cursor,
88
+ filter: options.type ? { type: options.type } : void 0
89
+ }
90
+ }, (result) => result.address?.objects);
91
+ return {
92
+ objects: objects.nodes.map((obj) => ({
93
+ id: obj.address,
94
+ version: obj.version,
95
+ digest: obj.digest,
96
+ owner: mapOwner(obj.owner),
97
+ type: obj.contents?.type?.repr,
98
+ content: (0, import_utils.fromBase64)(obj.contents?.bcs)
99
+ })),
100
+ hasNextPage: objects.pageInfo.hasNextPage,
101
+ cursor: objects.pageInfo.endCursor ?? null
102
+ };
103
+ }
104
+ async getCoins(options) {
105
+ const coins = await __privateMethod(this, _GraphQLTransport_instances, graphqlQuery_fn).call(this, {
106
+ query: import_queries.GetCoinsDocument,
107
+ variables: {
108
+ owner: options.address,
109
+ cursor: options.cursor,
110
+ first: options.limit,
111
+ type: options.coinType
112
+ }
113
+ }, (result) => result.address?.coins);
114
+ return {
115
+ cursor: coins.pageInfo.endCursor ?? null,
116
+ hasNextPage: coins.pageInfo.hasNextPage,
117
+ objects: coins.nodes.map((coin) => ({
118
+ id: coin.address,
119
+ version: coin.version,
120
+ digest: coin.digest,
121
+ owner: mapOwner(coin.owner),
122
+ type: coin.contents?.type?.repr,
123
+ balance: coin.coinBalance,
124
+ content: (0, import_utils.fromBase64)(coin.contents?.bcs)
125
+ }))
126
+ };
127
+ }
128
+ async getBalance(options) {
129
+ const result = await __privateMethod(this, _GraphQLTransport_instances, graphqlQuery_fn).call(this, {
130
+ query: import_queries.GetBalanceDocument,
131
+ variables: { owner: options.address, type: options.coinType }
132
+ }, (result2) => result2.address?.balance);
133
+ return {
134
+ balance: {
135
+ coinType: result.coinType.repr,
136
+ balance: result.totalBalance
137
+ }
138
+ };
139
+ }
140
+ async getAllBalances(options) {
141
+ const balances = await __privateMethod(this, _GraphQLTransport_instances, graphqlQuery_fn).call(this, {
142
+ query: import_queries.GetAllBalancesDocument,
143
+ variables: { owner: options.address }
144
+ }, (result) => result.address?.balances);
145
+ return {
146
+ cursor: balances.pageInfo.endCursor ?? null,
147
+ hasNextPage: balances.pageInfo.hasNextPage,
148
+ balances: balances.nodes.map((balance) => ({
149
+ coinType: balance.coinType.repr,
150
+ balance: balance.totalBalance
151
+ }))
152
+ };
153
+ }
154
+ async getTransaction(options) {
155
+ const result = await __privateMethod(this, _GraphQLTransport_instances, graphqlQuery_fn).call(this, {
156
+ query: import_queries.GetTransactionBlockDocument,
157
+ variables: { digest: options.digest }
158
+ }, (result2) => result2.transactionBlock);
159
+ return {
160
+ transaction: parseTransaction(result)
161
+ };
162
+ }
163
+ async executeTransaction(options) {
164
+ const result = await __privateMethod(this, _GraphQLTransport_instances, graphqlQuery_fn).call(this, {
165
+ query: import_queries.ExecuteTransactionBlockDocument,
166
+ variables: { txBytes: (0, import_utils.toBase64)(options.transaction), signatures: options.signatures }
167
+ }, (result2) => result2.executeTransactionBlock);
168
+ if (result.errors) {
169
+ if (result.errors.length === 1) {
170
+ throw new Error(result.errors[0]);
171
+ }
172
+ throw new AggregateError(result.errors.map((error) => new Error(error)));
173
+ }
174
+ return {
175
+ transaction: parseTransaction(result.effects.transactionBlock)
176
+ };
177
+ }
178
+ async dryRunTransaction(options) {
179
+ const result = await __privateMethod(this, _GraphQLTransport_instances, graphqlQuery_fn).call(this, {
180
+ query: import_queries.DryRunTransactionBlockDocument,
181
+ variables: { txBytes: (0, import_utils.toBase64)(options.transaction) }
182
+ }, (result2) => result2.dryRunTransactionBlock);
183
+ if (result.error) {
184
+ throw new Error(result.error);
185
+ }
186
+ return {
187
+ transaction: parseTransaction(result.transaction)
188
+ };
189
+ }
190
+ async getReferenceGasPrice() {
191
+ const result = await __privateMethod(this, _GraphQLTransport_instances, graphqlQuery_fn).call(this, {
192
+ query: import_queries.GetReferenceGasPriceDocument
193
+ }, (result2) => result2.epoch?.referenceGasPrice);
194
+ return {
195
+ referenceGasPrice: result.referenceGasPrice
196
+ };
197
+ }
198
+ async getDynamicFields(options) {
199
+ const result = await __privateMethod(this, _GraphQLTransport_instances, graphqlQuery_fn).call(this, {
200
+ query: import_queries.GetDynamicFieldsDocument,
201
+ variables: { parentId: options.parentId }
202
+ }, (result2) => result2.owner?.dynamicFields);
203
+ return {
204
+ dynamicFields: result.nodes.map((dynamicField) => {
205
+ const valueType = dynamicField.value?.__typename === "MoveObject" ? dynamicField.value.contents?.type?.repr : dynamicField.value?.type.repr;
206
+ return {
207
+ id: (0, import_dynamic_fields.deriveDynamicFieldID)(
208
+ options.parentId,
209
+ dynamicField.name?.type.repr,
210
+ dynamicField.name?.bcs
211
+ ),
212
+ type: (0, import_sui_types.normalizeStructTag)(
213
+ 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}>`
214
+ ),
215
+ name: {
216
+ type: dynamicField.name?.type.repr,
217
+ bcs: (0, import_utils.fromBase64)(dynamicField.name?.bcs)
218
+ },
219
+ valueType
220
+ };
221
+ }),
222
+ cursor: result.pageInfo.endCursor ?? null,
223
+ hasNextPage: result.pageInfo.hasNextPage
224
+ };
225
+ }
226
+ async verifyZkLoginSignature(options) {
227
+ const intentScope = options.intentScope === "TransactionData" ? import_queries.ZkLoginIntentScope.TransactionData : import_queries.ZkLoginIntentScope.PersonalMessage;
228
+ const result = await __privateMethod(this, _GraphQLTransport_instances, graphqlQuery_fn).call(this, {
229
+ query: import_queries.VerifyZkLoginSignatureDocument,
230
+ variables: {
231
+ bytes: options.bytes,
232
+ signature: options.signature,
233
+ intentScope,
234
+ author: options.author
235
+ }
236
+ }, (result2) => result2.verifyZkloginSignature);
237
+ return {
238
+ success: result.success,
239
+ errors: result.errors
240
+ };
241
+ }
242
+ }
243
+ _graphqlClient = new WeakMap();
244
+ _GraphQLTransport_instances = new WeakSet();
245
+ graphqlQuery_fn = async function(options, getData) {
246
+ const { data, errors } = await __privateGet(this, _graphqlClient).query(options);
247
+ handleGraphQLErrors(errors);
248
+ const extractedData = data && (getData ? getData(data) : data);
249
+ if (extractedData == null) {
250
+ throw new Error("Missing response data");
251
+ }
252
+ return extractedData;
253
+ };
254
+ function handleGraphQLErrors(errors) {
255
+ if (!errors || errors.length === 0) return;
256
+ const errorInstances = errors.map((error) => new GraphQLResponseError(error));
257
+ if (errorInstances.length === 1) {
258
+ throw errorInstances[0];
259
+ }
260
+ throw new AggregateError(errorInstances);
261
+ }
262
+ class GraphQLResponseError extends Error {
263
+ constructor(error) {
264
+ super(error.message);
265
+ this.locations = error.locations;
266
+ }
267
+ }
268
+ function mapOwner(owner) {
269
+ switch (owner.__typename) {
270
+ case "AddressOwner":
271
+ return { $kind: "AddressOwner", AddressOwner: owner.owner?.asAddress?.address };
272
+ case "ConsensusV2":
273
+ return { $kind: "ConsensusV2", ConsensusV2: owner.authenticator.address };
274
+ case "Immutable":
275
+ return { $kind: "Immutable", Immutable: true };
276
+ case "Parent":
277
+ return { $kind: "ObjectOwner", ObjectOwner: owner.parent?.address };
278
+ case "Shared":
279
+ return { $kind: "Shared", Shared: owner.initialSharedVersion };
280
+ }
281
+ }
282
+ function parseTransaction(transaction) {
283
+ const objectTypes = {};
284
+ transaction.effects?.unchangedSharedObjects.nodes.forEach((node) => {
285
+ if (node.__typename === "SharedObjectRead") {
286
+ const type = node.object?.asMoveObject?.contents?.type.repr;
287
+ const address = node.object?.asMoveObject?.address;
288
+ if (type && address) {
289
+ objectTypes[address] = type;
290
+ }
291
+ }
292
+ });
293
+ transaction.effects?.objectChanges.nodes.forEach((node) => {
294
+ const address = node.address;
295
+ const type = node.inputState?.asMoveObject?.contents?.type.repr ?? node.outputState?.asMoveObject?.contents?.type.repr;
296
+ if (address && type) {
297
+ objectTypes[address] = type;
298
+ }
299
+ });
300
+ return {
301
+ digest: transaction.digest,
302
+ effects: (0, import_utils2.parseTransactionEffects)({
303
+ effects: new Uint8Array(transaction.effects?.bcs),
304
+ objectTypes
305
+ }),
306
+ bcs: transaction.bcs,
307
+ signatures: transaction.signatures
308
+ };
309
+ }
310
+ //# sourceMappingURL=graphql.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/experimental/transports/graphql.ts"],
4
+ "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Experimental_CoreClient } from '../core.js';\nimport type { Experimental_SuiClientTypes } from '../types.js';\nimport type { GraphQLQueryOptions, SuiGraphQLClient } from '../../graphql/client.js';\nimport type {\n\tObject_Owner_FieldsFragment,\n\tObject_FieldsFragment,\n\tTransaction_FieldsFragment,\n} from '../../graphql/generated/queries.js';\nimport {\n\tDryRunTransactionBlockDocument,\n\tExecuteTransactionBlockDocument,\n\tGetAllBalancesDocument,\n\tGetBalanceDocument,\n\tGetCoinsDocument,\n\tGetDynamicFieldsDocument,\n\tGetOwnedObjectsDocument,\n\tGetReferenceGasPriceDocument,\n\tGetTransactionBlockDocument,\n\tMultiGetObjectsDocument,\n\tVerifyZkLoginSignatureDocument,\n\tZkLoginIntentScope,\n} from '../../graphql/generated/queries.js';\nimport { ObjectError } from '../errors.js';\nimport { fromBase64, toBase64 } from '@mysten/utils';\nimport { normalizeStructTag, normalizeSuiAddress } from '../../utils/sui-types.js';\nimport { deriveDynamicFieldID } from '../../utils/dynamic-fields.js';\nimport { parseTransactionEffects } from './utils.js';\n\nexport class GraphQLTransport extends Experimental_CoreClient {\n\t#graphqlClient: SuiGraphQLClient;\n\n\tconstructor(graphqlClient: SuiGraphQLClient) {\n\t\tsuper({ network: graphqlClient.network });\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,\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: fromBase64(obj.asMoveObject?.contents?.bcs!),\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 ? { type: options.type } : 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,\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: fromBase64(obj.contents?.bcs!),\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: options.coinType,\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,\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: fromBase64(coin.contents?.bcs!),\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: { owner: options.address, type: options.coinType },\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.referenceGasPrice,\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\tdynamicField.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}\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 'ConsensusV2':\n\t\t\treturn { $kind: 'ConsensusV2', ConsensusV2: owner.authenticator!.address };\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 { $kind: 'Shared', Shared: owner.initialSharedVersion };\n\t}\n}\n\nfunction parseTransaction(\n\ttransaction: Transaction_FieldsFragment,\n): Experimental_SuiClientTypes.TransactionResponse {\n\tconst objectTypes: Record<string, string> = {};\n\n\ttransaction.effects?.unchangedSharedObjects.nodes.forEach((node) => {\n\t\tif (node.__typename === 'SharedObjectRead') {\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\treturn {\n\t\tdigest: transaction.digest!,\n\t\teffects: parseTransactionEffects({\n\t\t\teffects: new Uint8Array(transaction.effects?.bcs!),\n\t\t\tobjectTypes,\n\t\t}),\n\t\tbcs: transaction.bcs!,\n\t\tsignatures: transaction.signatures!,\n\t};\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["import_utils", "result"]
7
+ }
@@ -56,14 +56,12 @@ export declare class JSONRpcTransport extends Experimental_CoreClient {
56
56
  bcs: Uint8Array<ArrayBufferLike>;
57
57
  };
58
58
  }>;
59
- getReferenceGasPrice(): Promise<{
59
+ getReferenceGasPrice(options?: Experimental_SuiClientTypes.GetReferenceGasPriceOptions): Promise<{
60
60
  referenceGasPrice: string;
61
61
  }>;
62
62
  getDynamicFields(options: Experimental_SuiClientTypes.GetDynamicFieldsOptions): Promise<{
63
63
  dynamicFields: {
64
64
  id: string;
65
- version: string;
66
- digest: string;
67
65
  type: string;
68
66
  name: {
69
67
  type: string;
@@ -73,4 +71,8 @@ export declare class JSONRpcTransport extends Experimental_CoreClient {
73
71
  hasNextPage: boolean;
74
72
  cursor: string | null;
75
73
  }>;
74
+ verifyZkLoginSignature(options: Experimental_SuiClientTypes.VerifyZkLoginSignatureOptions): Promise<{
75
+ success: boolean;
76
+ errors: string[];
77
+ }>;
76
78
  }
@@ -35,6 +35,7 @@ var import_Transaction = require("../../transactions/Transaction.js");
35
35
  var import_sui_types = require("../../utils/sui-types.js");
36
36
  var import_core = require("../core.js");
37
37
  var import_errors = require("../errors.js");
38
+ var import_utils2 = require("./utils.js");
38
39
  var _jsonRpcClient;
39
40
  class JSONRpcTransport extends import_core.Experimental_CoreClient {
40
41
  constructor(jsonRpcClient) {
@@ -52,7 +53,8 @@ class JSONRpcTransport extends import_core.Experimental_CoreClient {
52
53
  showOwner: true,
53
54
  showType: true,
54
55
  showBcs: true
55
- }
56
+ },
57
+ signal: options.signal
56
58
  });
57
59
  for (const [idx, object] of objects.entries()) {
58
60
  if (object.error) {
@@ -75,7 +77,8 @@ class JSONRpcTransport extends import_core.Experimental_CoreClient {
75
77
  showOwner: true,
76
78
  showType: true,
77
79
  showBcs: true
78
- }
80
+ },
81
+ signal: options.signal
79
82
  });
80
83
  return {
81
84
  objects: objects.data.map((result) => {
@@ -91,7 +94,10 @@ class JSONRpcTransport extends import_core.Experimental_CoreClient {
91
94
  async getCoins(options) {
92
95
  const coins = await __privateGet(this, _jsonRpcClient).getCoins({
93
96
  owner: options.address,
94
- coinType: options.coinType
97
+ coinType: options.coinType,
98
+ limit: options.limit,
99
+ cursor: options.cursor,
100
+ signal: options.signal
95
101
  });
96
102
  return {
97
103
  objects: coins.data.map((coin) => {
@@ -120,7 +126,8 @@ class JSONRpcTransport extends import_core.Experimental_CoreClient {
120
126
  async getBalance(options) {
121
127
  const balance = await __privateGet(this, _jsonRpcClient).getBalance({
122
128
  owner: options.address,
123
- coinType: options.coinType
129
+ coinType: options.coinType,
130
+ signal: options.signal
124
131
  });
125
132
  return {
126
133
  balance: {
@@ -131,7 +138,8 @@ class JSONRpcTransport extends import_core.Experimental_CoreClient {
131
138
  }
132
139
  async getAllBalances(options) {
133
140
  const balances = await __privateGet(this, _jsonRpcClient).getAllBalances({
134
- owner: options.address
141
+ owner: options.address,
142
+ signal: options.signal
135
143
  });
136
144
  return {
137
145
  balances: balances.map((balance) => ({
@@ -150,7 +158,8 @@ class JSONRpcTransport extends import_core.Experimental_CoreClient {
150
158
  showObjectChanges: true,
151
159
  showRawEffects: true,
152
160
  showEvents: true
153
- }
161
+ },
162
+ signal: options.signal
154
163
  });
155
164
  return {
156
165
  transaction: parseTransaction(transaction)
@@ -165,7 +174,8 @@ class JSONRpcTransport extends import_core.Experimental_CoreClient {
165
174
  showEvents: true,
166
175
  showObjectChanges: true,
167
176
  showRawInput: true
168
- }
177
+ },
178
+ signal: options.signal
169
179
  });
170
180
  return {
171
181
  transaction: parseTransaction(transaction)
@@ -174,7 +184,8 @@ class JSONRpcTransport extends import_core.Experimental_CoreClient {
174
184
  async dryRunTransaction(options) {
175
185
  const tx = import_Transaction.Transaction.from(options.transaction);
176
186
  const result = await __privateGet(this, _jsonRpcClient).dryRunTransactionBlock({
177
- transactionBlock: options.transaction
187
+ transactionBlock: options.transaction,
188
+ signal: options.signal
178
189
  });
179
190
  return {
180
191
  transaction: {
@@ -188,8 +199,10 @@ class JSONRpcTransport extends import_core.Experimental_CoreClient {
188
199
  }
189
200
  };
190
201
  }
191
- async getReferenceGasPrice() {
192
- const referenceGasPrice = await __privateGet(this, _jsonRpcClient).getReferenceGasPrice();
202
+ async getReferenceGasPrice(options) {
203
+ const referenceGasPrice = await __privateGet(this, _jsonRpcClient).getReferenceGasPrice({
204
+ signal: options?.signal
205
+ });
193
206
  return {
194
207
  referenceGasPrice: String(referenceGasPrice)
195
208
  };
@@ -201,20 +214,32 @@ class JSONRpcTransport extends import_core.Experimental_CoreClient {
201
214
  cursor: options.cursor
202
215
  });
203
216
  return {
204
- dynamicFields: dynamicFields.data.map((dynamicField) => ({
205
- id: dynamicField.objectId,
206
- version: dynamicField.version,
207
- digest: dynamicField.digest,
208
- type: dynamicField.objectType,
209
- name: {
210
- type: dynamicField.name.type,
211
- bcs: (0, import_bcs.fromBase64)(dynamicField.bcsName)
212
- }
213
- })),
217
+ dynamicFields: dynamicFields.data.map((dynamicField) => {
218
+ return {
219
+ id: dynamicField.objectId,
220
+ type: dynamicField.objectType,
221
+ name: {
222
+ type: dynamicField.name.type,
223
+ bcs: (0, import_bcs.fromBase64)(dynamicField.bcsName)
224
+ }
225
+ };
226
+ }),
214
227
  hasNextPage: dynamicFields.hasNextPage,
215
228
  cursor: dynamicFields.nextCursor
216
229
  };
217
230
  }
231
+ async verifyZkLoginSignature(options) {
232
+ const result = await __privateGet(this, _jsonRpcClient).verifyZkLoginSignature({
233
+ bytes: options.bytes,
234
+ signature: options.signature,
235
+ intentScope: options.intentScope,
236
+ author: options.author
237
+ });
238
+ return {
239
+ success: result.success,
240
+ errors: result.errors
241
+ };
242
+ }
218
243
  }
219
244
  _jsonRpcClient = new WeakMap();
220
245
  function parseObject(object) {
@@ -270,97 +295,20 @@ function parseOwner(owner) {
270
295
  }
271
296
  function parseTransaction(transaction) {
272
297
  const parsedTx = import_bcs2.bcs.SenderSignedData.parse((0, import_bcs.fromBase64)(transaction.rawTransaction))[0];
273
- return {
274
- digest: transaction.digest,
275
- effects: parseTransactionEffects({
276
- effects: new Uint8Array(transaction.rawEffects),
277
- objectChanges: transaction.objectChanges ?? null
278
- }),
279
- bcs: import_bcs2.bcs.TransactionData.serialize(parsedTx.intentMessage.value).toBytes(),
280
- signatures: parsedTx.txSignatures
281
- };
282
- }
283
- function parseTransactionEffects({
284
- effects,
285
- epoch,
286
- objectChanges
287
- }) {
288
- const parsed = import_bcs2.bcs.TransactionEffects.parse(effects);
289
298
  const objectTypes = {};
290
- objectChanges?.forEach((change) => {
299
+ transaction.objectChanges?.forEach((change) => {
291
300
  if (change.type !== "published") {
292
301
  objectTypes[change.objectId] = change.objectType;
293
302
  }
294
303
  });
295
- switch (parsed.$kind) {
296
- case "V1":
297
- return parseTransactionEffectsV1({ bytes: effects, effects: parsed.V1, epoch, objectTypes });
298
- case "V2":
299
- return parseTransactionEffectsV2({ bytes: effects, effects: parsed.V2, epoch, objectTypes });
300
- default:
301
- throw new Error(
302
- `Unknown transaction effects version: ${parsed.$kind}`
303
- );
304
- }
305
- }
306
- function parseTransactionEffectsV1(_) {
307
- throw new Error("V1 effects are not supported yet");
308
- }
309
- function parseTransactionEffectsV2({
310
- bytes,
311
- effects,
312
- epoch,
313
- objectTypes
314
- }) {
315
- const changedObjects = effects.changedObjects.map(
316
- ([id, change]) => {
317
- return {
318
- id,
319
- inputState: change.inputState.$kind === "Exist" ? "Exists" : "DoesNotExist",
320
- inputVersion: change.inputState.Exist?.[0][0] ?? null,
321
- inputDigest: change.inputState.Exist?.[0][1] ?? null,
322
- inputOwner: change.inputState.Exist?.[1] ?? null,
323
- outputState: change.outputState.$kind === "NotExist" ? "DoesNotExist" : change.outputState.$kind,
324
- outputVersion: change.outputState.$kind === "PackageWrite" ? change.outputState.PackageWrite?.[0] : change.outputState.ObjectWrite ? effects.lamportVersion : null,
325
- outputDigest: change.outputState.$kind === "PackageWrite" ? change.outputState.PackageWrite?.[1] : change.outputState.ObjectWrite?.[0] ?? null,
326
- outputOwner: change.outputState.ObjectWrite ? change.outputState.ObjectWrite[1] : null,
327
- idOperation: change.idOperation.$kind,
328
- objectType: objectTypes[id] ?? null
329
- };
330
- }
331
- );
332
304
  return {
333
- bcs: bytes,
334
- digest: effects.transactionDigest,
335
- version: 2,
336
- status: effects.status.$kind === "Success" ? {
337
- success: true,
338
- error: null
339
- } : {
340
- success: false,
341
- // TODO: add command
342
- error: effects.status.Failed.error.$kind
343
- },
344
- epoch: epoch ?? null,
345
- gasUsed: effects.gasUsed,
346
- transactionDigest: effects.transactionDigest,
347
- gasObject: effects.gasObjectIndex === null ? null : changedObjects[effects.gasObjectIndex] ?? null,
348
- eventsDigest: effects.eventsDigest,
349
- dependencies: effects.dependencies,
350
- lamportVersion: effects.lamportVersion,
351
- changedObjects,
352
- unchangedSharedObjects: effects.unchangedSharedObjects.map(
353
- ([objectId, object]) => {
354
- return {
355
- kind: object.$kind,
356
- objectId,
357
- version: object.$kind === "ReadOnlyRoot" ? object.ReadOnlyRoot[0] : object[object.$kind],
358
- digest: object.$kind === "ReadOnlyRoot" ? object.ReadOnlyRoot[1] : null,
359
- objectType: objectTypes[objectId] ?? null
360
- };
361
- }
362
- ),
363
- auxiliaryDataDigest: effects.auxDataDigest
305
+ digest: transaction.digest,
306
+ effects: (0, import_utils2.parseTransactionEffects)({
307
+ effects: new Uint8Array(transaction.rawEffects),
308
+ objectTypes
309
+ }),
310
+ bcs: import_bcs2.bcs.TransactionData.serialize(parsedTx.intentMessage.value).toBytes(),
311
+ signatures: parsedTx.txSignatures
364
312
  };
365
313
  }
366
314
  function parseTransactionEffectsJson({