@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.
- package/CHANGELOG.md +13 -0
- package/dist/cjs/experimental/core.d.ts +1 -0
- package/dist/cjs/experimental/core.js.map +2 -2
- package/dist/cjs/experimental/types.d.ts +6 -8
- package/dist/cjs/experimental/types.js.map +1 -1
- package/dist/cjs/graphql/core.d.ts +1 -1
- package/dist/cjs/graphql/core.js +81 -78
- package/dist/cjs/graphql/core.js.map +2 -2
- package/dist/cjs/graphql/generated/latest/tada-env.d.ts +3870 -5429
- package/dist/cjs/graphql/generated/latest/tada-env.js +3958 -5702
- package/dist/cjs/graphql/generated/latest/tada-env.js.map +2 -2
- package/dist/cjs/graphql/generated/queries.d.ts +2485 -3397
- package/dist/cjs/graphql/generated/queries.js +137 -172
- package/dist/cjs/graphql/generated/queries.js.map +3 -3
- package/dist/cjs/graphql/types.d.ts +1 -0
- package/dist/cjs/graphql/types.js.map +1 -1
- package/dist/cjs/grpc/client.d.ts +2 -0
- package/dist/cjs/grpc/client.js +2 -0
- package/dist/cjs/grpc/client.js.map +2 -2
- package/dist/cjs/grpc/core.d.ts +1 -0
- package/dist/cjs/grpc/core.js +10 -0
- package/dist/cjs/grpc/core.js.map +2 -2
- package/dist/cjs/jsonRpc/core.d.ts +1 -1
- package/dist/cjs/jsonRpc/core.js +7 -2
- package/dist/cjs/jsonRpc/core.js.map +2 -2
- package/dist/cjs/transactions/Transaction.js +2 -2
- package/dist/cjs/transactions/Transaction.js.map +1 -1
- package/dist/cjs/version.d.ts +2 -2
- package/dist/cjs/version.js +2 -2
- package/dist/cjs/version.js.map +1 -1
- package/dist/cjs/zklogin/publickey.js +1 -1
- package/dist/cjs/zklogin/publickey.js.map +1 -1
- package/dist/esm/experimental/core.d.ts +1 -0
- package/dist/esm/experimental/core.js.map +2 -2
- package/dist/esm/experimental/types.d.ts +6 -8
- package/dist/esm/graphql/core.d.ts +1 -1
- package/dist/esm/graphql/core.js +85 -82
- package/dist/esm/graphql/core.js.map +2 -2
- package/dist/esm/graphql/generated/latest/tada-env.d.ts +3870 -5429
- package/dist/esm/graphql/generated/latest/tada-env.js +3958 -5702
- package/dist/esm/graphql/generated/latest/tada-env.js.map +2 -2
- package/dist/esm/graphql/generated/queries.d.ts +2485 -3397
- package/dist/esm/graphql/generated/queries.js +137 -172
- package/dist/esm/graphql/generated/queries.js.map +3 -3
- package/dist/esm/graphql/types.d.ts +1 -0
- package/dist/esm/grpc/client.d.ts +2 -0
- package/dist/esm/grpc/client.js +2 -0
- package/dist/esm/grpc/client.js.map +2 -2
- package/dist/esm/grpc/core.d.ts +1 -0
- package/dist/esm/grpc/core.js +10 -0
- package/dist/esm/grpc/core.js.map +2 -2
- package/dist/esm/jsonRpc/core.d.ts +1 -1
- package/dist/esm/jsonRpc/core.js +7 -2
- package/dist/esm/jsonRpc/core.js.map +2 -2
- package/dist/esm/transactions/Transaction.js +2 -2
- package/dist/esm/transactions/Transaction.js.map +1 -1
- package/dist/esm/version.d.ts +2 -2
- package/dist/esm/version.js +2 -2
- package/dist/esm/version.js.map +1 -1
- package/dist/esm/zklogin/publickey.js +1 -1
- package/dist/esm/zklogin/publickey.js.map +1 -1
- package/dist/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/src/experimental/core.ts +4 -0
- package/src/experimental/types.ts +8 -10
- package/src/graphql/core.ts +95 -95
- package/src/graphql/generated/latest/schema.graphql +2139 -2671
- package/src/graphql/generated/latest/tada-env.ts +3958 -5702
- package/src/graphql/generated/queries.ts +2344 -3281
- package/src/graphql/queries/getAllBalances.graphql +0 -1
- package/src/graphql/queries/getBalance.graphql +2 -3
- package/src/graphql/queries/getCoins.graphql +9 -4
- package/src/graphql/queries/getDynamicFields.graphql +1 -1
- package/src/graphql/queries/nameService.graphql +2 -10
- package/src/graphql/queries/objects.graphql +11 -22
- package/src/graphql/queries/transactions.graphql +16 -12
- package/src/graphql/queries/verifyZkLoginSignature.graphql +2 -2
- package/src/graphql/types.ts +1 -0
- package/src/grpc/client.ts +3 -0
- package/src/grpc/core.ts +16 -0
- package/src/jsonRpc/core.ts +9 -4
- package/src/transactions/Transaction.ts +2 -2
- package/src/version.ts +2 -2
- package/src/zklogin/publickey.ts +1 -1
package/dist/esm/graphql/core.js
CHANGED
|
@@ -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
|
-
|
|
13
|
-
|
|
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
|
-
|
|
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
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
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
|
-
|
|
54
|
-
cursor
|
|
52
|
+
objectKeys: batch.map((address) => ({ address }))
|
|
55
53
|
}
|
|
56
|
-
}, (result) => result.
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
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:
|
|
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
|
|
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.
|
|
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?.
|
|
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
|
|
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.
|
|
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.
|
|
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
|
|
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
|
|
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.
|
|
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:
|
|
176
|
-
variables: {
|
|
177
|
-
|
|
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
|
|
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:
|
|
191
|
-
variables: {
|
|
192
|
-
|
|
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.
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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.
|
|
253
|
+
}, (result2) => result2.verifyZkLoginSignature);
|
|
247
254
|
return {
|
|
248
|
-
success: result.success,
|
|
249
|
-
errors: result.
|
|
255
|
+
success: result.success ?? false,
|
|
256
|
+
errors: result.error ? [result.error] : []
|
|
250
257
|
};
|
|
251
258
|
}
|
|
252
|
-
async
|
|
253
|
-
const
|
|
254
|
-
query:
|
|
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?.
|
|
266
|
+
}, (result) => result.address?.defaultSuinsName ?? null);
|
|
262
267
|
return {
|
|
263
|
-
|
|
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.
|
|
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
|
|
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
|
|
375
|
+
transaction.effects?.unchangedConsensusObjects?.nodes.forEach((node) => {
|
|
373
376
|
if (node.__typename === "ConsensusObjectRead") {
|
|
374
|
-
const type = node.object?.asMoveObject?.contents?.type
|
|
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
|
|
384
|
+
transaction.effects?.objectChanges?.nodes.forEach((node) => {
|
|
382
385
|
const address = node.address;
|
|
383
|
-
const type = node.inputState?.asMoveObject?.contents?.type
|
|
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
|
|
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?.
|
|
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.
|
|
397
|
-
signatures: transaction.signatures,
|
|
398
|
-
balanceChanges: transaction.effects?.balanceChanges
|
|
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
|
}
|