@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.
- package/CHANGELOG.md +8 -0
- package/README.md +5 -4
- package/dist/cjs/client/client.d.ts +2 -1
- package/dist/cjs/client/client.js +7 -0
- package/dist/cjs/client/client.js.map +2 -2
- package/dist/cjs/experimental/core.d.ts +1 -1
- package/dist/cjs/experimental/core.js +3 -2
- package/dist/cjs/experimental/core.js.map +2 -2
- package/dist/cjs/experimental/transports/graphql.d.ts +26 -0
- package/dist/cjs/experimental/transports/graphql.js +310 -0
- package/dist/cjs/experimental/transports/graphql.js.map +7 -0
- package/dist/cjs/experimental/transports/jsonRPC.d.ts +5 -3
- package/dist/cjs/experimental/transports/jsonRPC.js +53 -105
- package/dist/cjs/experimental/transports/jsonRPC.js.map +3 -3
- package/dist/cjs/experimental/transports/utils.d.ts +6 -0
- package/dist/cjs/experimental/transports/utils.js +102 -0
- package/dist/cjs/experimental/transports/utils.js.map +7 -0
- package/dist/cjs/experimental/types.d.ts +21 -6
- package/dist/cjs/experimental/types.js.map +1 -1
- package/dist/cjs/faucet/faucet.d.ts +1 -1
- package/dist/cjs/faucet/faucet.js.map +1 -1
- package/dist/cjs/graphql/client.d.ts +10 -3
- package/dist/cjs/graphql/client.js +12 -4
- package/dist/cjs/graphql/client.js.map +3 -3
- package/dist/cjs/graphql/generated/queries.d.ts +5653 -0
- package/dist/cjs/graphql/generated/queries.js +722 -0
- package/dist/cjs/graphql/generated/queries.js.map +7 -0
- package/dist/cjs/multisig/publickey.d.ts +3 -3
- package/dist/cjs/multisig/publickey.js.map +2 -2
- package/dist/cjs/transactions/Commands.d.ts +2 -2
- package/dist/cjs/transactions/Commands.js.map +2 -2
- package/dist/cjs/transactions/Transaction.d.ts +10 -2
- package/dist/cjs/transactions/Transaction.js +165 -21
- package/dist/cjs/transactions/Transaction.js.map +3 -3
- package/dist/cjs/transactions/TransactionData.d.ts +4 -2
- package/dist/cjs/transactions/TransactionData.js +72 -41
- package/dist/cjs/transactions/TransactionData.js.map +2 -2
- package/dist/cjs/transactions/intents/CoinWithBalance.js.map +1 -1
- package/dist/cjs/verify/verify.d.ts +5 -5
- package/dist/cjs/verify/verify.js.map +2 -2
- 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.d.ts +9 -3
- package/dist/cjs/zklogin/publickey.js +8 -30
- package/dist/cjs/zklogin/publickey.js.map +2 -2
- package/dist/esm/client/client.d.ts +2 -1
- package/dist/esm/client/client.js +7 -0
- package/dist/esm/client/client.js.map +2 -2
- package/dist/esm/experimental/core.d.ts +1 -1
- package/dist/esm/experimental/core.js +3 -2
- package/dist/esm/experimental/core.js.map +2 -2
- package/dist/esm/experimental/transports/graphql.d.ts +26 -0
- package/dist/esm/experimental/transports/graphql.js +303 -0
- package/dist/esm/experimental/transports/graphql.js.map +7 -0
- package/dist/esm/experimental/transports/jsonRPC.d.ts +5 -3
- package/dist/esm/experimental/transports/jsonRPC.js +52 -104
- package/dist/esm/experimental/transports/jsonRPC.js.map +2 -2
- package/dist/esm/experimental/transports/utils.d.ts +6 -0
- package/dist/esm/experimental/transports/utils.js +82 -0
- package/dist/esm/experimental/transports/utils.js.map +7 -0
- package/dist/esm/experimental/types.d.ts +21 -6
- package/dist/esm/faucet/faucet.d.ts +1 -1
- package/dist/esm/faucet/faucet.js.map +1 -1
- package/dist/esm/graphql/client.d.ts +10 -3
- package/dist/esm/graphql/client.js +12 -4
- package/dist/esm/graphql/client.js.map +2 -2
- package/dist/esm/graphql/generated/queries.d.ts +5653 -0
- package/dist/esm/graphql/generated/queries.js +702 -0
- package/dist/esm/graphql/generated/queries.js.map +7 -0
- package/dist/esm/multisig/publickey.d.ts +3 -3
- package/dist/esm/multisig/publickey.js.map +2 -2
- package/dist/esm/transactions/Commands.d.ts +2 -2
- package/dist/esm/transactions/Commands.js.map +2 -2
- package/dist/esm/transactions/Transaction.d.ts +10 -2
- package/dist/esm/transactions/Transaction.js +165 -21
- package/dist/esm/transactions/Transaction.js.map +3 -3
- package/dist/esm/transactions/TransactionData.d.ts +4 -2
- package/dist/esm/transactions/TransactionData.js +72 -41
- package/dist/esm/transactions/TransactionData.js.map +2 -2
- package/dist/esm/transactions/intents/CoinWithBalance.js.map +1 -1
- package/dist/esm/verify/verify.d.ts +5 -5
- package/dist/esm/verify/verify.js.map +2 -2
- 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.d.ts +9 -3
- package/dist/esm/zklogin/publickey.js +8 -30
- package/dist/esm/zklogin/publickey.js.map +2 -2
- package/dist/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -1
- package/src/client/client.ts +10 -0
- package/src/experimental/core.ts +5 -2
- package/src/experimental/transports/graphql.ts +421 -0
- package/src/experimental/transports/jsonRPC.ts +47 -132
- package/src/experimental/transports/utils.ts +117 -0
- package/src/experimental/types.ts +30 -7
- package/src/faucet/faucet.ts +1 -1
- package/src/graphql/client.ts +21 -3
- package/src/graphql/generated/queries.ts +6061 -0
- package/src/graphql/queries/getAllBalances.graphql +20 -0
- package/src/graphql/queries/getBalance.graphql +14 -0
- package/src/graphql/queries/getCoins.graphql +29 -0
- package/src/graphql/queries/getDynamicFields.graphql +36 -0
- package/src/graphql/queries/getReferenceGasPrice.graphql +8 -0
- package/src/graphql/queries/objects.graphql +89 -0
- package/src/graphql/queries/transactions.graphql +80 -0
- package/src/graphql/queries/verifyZkLoginSignature.graphql +16 -0
- package/src/multisig/publickey.ts +3 -3
- package/src/transactions/Commands.ts +3 -2
- package/src/transactions/Transaction.ts +215 -12
- package/src/transactions/TransactionData.ts +86 -46
- package/src/transactions/intents/CoinWithBalance.ts +1 -1
- package/src/verify/verify.ts +6 -6
- package/src/version.ts +2 -2
- 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
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
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
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
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({
|