@mysten/sui 1.26.1 → 1.27.1
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/bcs/bcs.d.ts +3 -2
- package/dist/cjs/bcs/bcs.js +3 -3
- package/dist/cjs/bcs/bcs.js.map +2 -2
- package/dist/cjs/bcs/effects.d.ts +18 -12
- package/dist/cjs/bcs/index.d.ts +460 -453
- package/dist/cjs/bcs/index.js +4 -4
- package/dist/cjs/bcs/index.js.map +1 -1
- package/dist/cjs/client/client.d.ts +38 -16
- package/dist/cjs/client/client.js +142 -62
- package/dist/cjs/client/client.js.map +2 -2
- package/dist/cjs/client/http-transport.d.ts +2 -0
- package/dist/cjs/client/http-transport.js +7 -0
- package/dist/cjs/client/http-transport.js.map +2 -2
- package/dist/cjs/client/rpc-websocket-client.d.ts +2 -1
- package/dist/cjs/client/rpc-websocket-client.js +7 -2
- package/dist/cjs/client/rpc-websocket-client.js.map +2 -2
- package/dist/cjs/client/types/generated.d.ts +1 -0
- package/dist/cjs/client/types/generated.js.map +1 -1
- package/dist/cjs/client/types/params.d.ts +56 -0
- package/dist/cjs/client/types/params.js.map +1 -1
- package/dist/cjs/experimental/cache.d.ts +11 -0
- package/dist/cjs/experimental/cache.js +79 -0
- package/dist/cjs/experimental/cache.js.map +7 -0
- package/dist/cjs/experimental/client.d.ts +4 -2
- package/dist/cjs/experimental/client.js +4 -2
- package/dist/cjs/experimental/client.js.map +2 -2
- package/dist/cjs/experimental/core.d.ts +10 -2
- package/dist/cjs/experimental/core.js +59 -1
- package/dist/cjs/experimental/core.js.map +2 -2
- package/dist/cjs/experimental/index.d.ts +5 -0
- package/dist/cjs/experimental/index.js +29 -0
- package/dist/cjs/experimental/index.js.map +7 -0
- package/dist/cjs/experimental/transports/jsonRPC.d.ts +19 -5
- package/dist/cjs/experimental/transports/jsonRPC.js +270 -12
- package/dist/cjs/experimental/transports/jsonRPC.js.map +2 -2
- package/dist/cjs/experimental/types.d.ts +84 -41
- package/dist/cjs/experimental/types.js.map +1 -1
- package/dist/cjs/keypairs/secp256k1/keypair.js +1 -1
- package/dist/cjs/keypairs/secp256k1/keypair.js.map +2 -2
- package/dist/cjs/keypairs/secp256r1/keypair.js +1 -1
- package/dist/cjs/keypairs/secp256r1/keypair.js.map +2 -2
- package/dist/cjs/multisig/publickey.js +5 -5
- package/dist/cjs/multisig/publickey.js.map +2 -2
- package/dist/cjs/multisig/signer.js +2 -2
- package/dist/cjs/multisig/signer.js.map +2 -2
- package/dist/cjs/transactions/intents/CoinWithBalance.d.ts +2 -2
- package/dist/cjs/transactions/intents/CoinWithBalance.js +6 -1
- package/dist/cjs/transactions/intents/CoinWithBalance.js.map +2 -2
- package/dist/cjs/transactions/plugins/utils.js +2 -2
- package/dist/cjs/transactions/plugins/utils.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/esm/bcs/bcs.d.ts +3 -2
- package/dist/esm/bcs/bcs.js +3 -3
- package/dist/esm/bcs/bcs.js.map +2 -2
- package/dist/esm/bcs/effects.d.ts +18 -12
- package/dist/esm/bcs/index.d.ts +460 -453
- package/dist/esm/bcs/index.js +4 -4
- package/dist/esm/bcs/index.js.map +1 -1
- package/dist/esm/client/client.d.ts +38 -16
- package/dist/esm/client/client.js +143 -63
- package/dist/esm/client/client.js.map +2 -2
- package/dist/esm/client/http-transport.d.ts +2 -0
- package/dist/esm/client/http-transport.js +7 -0
- package/dist/esm/client/http-transport.js.map +2 -2
- package/dist/esm/client/rpc-websocket-client.d.ts +2 -1
- package/dist/esm/client/rpc-websocket-client.js +7 -2
- package/dist/esm/client/rpc-websocket-client.js.map +2 -2
- package/dist/esm/client/types/generated.d.ts +1 -0
- package/dist/esm/client/types/params.d.ts +56 -0
- package/dist/esm/experimental/cache.d.ts +11 -0
- package/dist/esm/experimental/cache.js +59 -0
- package/dist/esm/experimental/cache.js.map +7 -0
- package/dist/esm/experimental/client.d.ts +4 -2
- package/dist/esm/experimental/client.js +4 -2
- package/dist/esm/experimental/client.js.map +2 -2
- package/dist/esm/experimental/core.d.ts +10 -2
- package/dist/esm/experimental/core.js +60 -2
- package/dist/esm/experimental/core.js.map +2 -2
- package/dist/esm/experimental/index.d.ts +5 -0
- package/dist/esm/experimental/index.js +9 -0
- package/dist/esm/experimental/index.js.map +7 -0
- package/dist/esm/experimental/transports/jsonRPC.d.ts +19 -5
- package/dist/esm/experimental/transports/jsonRPC.js +270 -12
- package/dist/esm/experimental/transports/jsonRPC.js.map +2 -2
- package/dist/esm/experimental/types.d.ts +84 -41
- package/dist/esm/keypairs/secp256k1/keypair.js +1 -1
- package/dist/esm/keypairs/secp256k1/keypair.js.map +2 -2
- package/dist/esm/keypairs/secp256r1/keypair.js +1 -1
- package/dist/esm/keypairs/secp256r1/keypair.js.map +2 -2
- package/dist/esm/multisig/publickey.js +5 -5
- package/dist/esm/multisig/publickey.js.map +2 -2
- package/dist/esm/multisig/signer.js +2 -2
- package/dist/esm/multisig/signer.js.map +2 -2
- package/dist/esm/transactions/intents/CoinWithBalance.d.ts +2 -2
- package/dist/esm/transactions/intents/CoinWithBalance.js +6 -1
- package/dist/esm/transactions/intents/CoinWithBalance.js.map +2 -2
- package/dist/esm/transactions/plugins/utils.js +2 -2
- package/dist/esm/transactions/plugins/utils.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/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/experimental/package.json +6 -0
- package/package.json +7 -2
- package/src/bcs/bcs.ts +3 -3
- package/src/bcs/index.ts +3 -3
- package/src/client/client.ts +119 -26
- package/src/client/http-transport.ts +10 -0
- package/src/client/rpc-websocket-client.ts +8 -1
- package/src/client/types/generated.ts +1 -0
- package/src/client/types/params.ts +68 -6
- package/src/experimental/cache.ts +64 -0
- package/src/experimental/client.ts +4 -2
- package/src/experimental/core.ts +89 -2
- package/src/experimental/index.ts +20 -0
- package/src/experimental/transports/jsonRPC.ts +319 -9
- package/src/experimental/types.ts +92 -48
- package/src/keypairs/secp256k1/keypair.ts +1 -1
- package/src/keypairs/secp256r1/keypair.ts +1 -1
- package/src/multisig/publickey.ts +5 -5
- package/src/multisig/signer.ts +2 -2
- package/src/transactions/__tests__/bcs.test.ts +2 -2
- package/src/transactions/intents/CoinWithBalance.ts +11 -3
- package/src/transactions/plugins/utils.ts +2 -2
- package/src/version.ts +2 -2
|
@@ -17,7 +17,7 @@ export declare class JSONRpcTransport extends Experimental_CoreClient {
|
|
|
17
17
|
id: string;
|
|
18
18
|
version: string;
|
|
19
19
|
digest: string;
|
|
20
|
-
balance:
|
|
20
|
+
balance: string;
|
|
21
21
|
type: string;
|
|
22
22
|
content: Uint8Array<ArrayBufferLike>;
|
|
23
23
|
owner: {
|
|
@@ -31,13 +31,13 @@ export declare class JSONRpcTransport extends Experimental_CoreClient {
|
|
|
31
31
|
getBalance(options: Experimental_SuiClientTypes.GetBalanceOptions): Promise<{
|
|
32
32
|
balance: {
|
|
33
33
|
coinType: string;
|
|
34
|
-
balance:
|
|
34
|
+
balance: string;
|
|
35
35
|
};
|
|
36
36
|
}>;
|
|
37
37
|
getAllBalances(options: Experimental_SuiClientTypes.GetAllBalancesOptions): Promise<{
|
|
38
38
|
balances: {
|
|
39
39
|
coinType: string;
|
|
40
|
-
balance:
|
|
40
|
+
balance: string;
|
|
41
41
|
}[];
|
|
42
42
|
hasNextPage: boolean;
|
|
43
43
|
cursor: null;
|
|
@@ -51,12 +51,26 @@ export declare class JSONRpcTransport extends Experimental_CoreClient {
|
|
|
51
51
|
dryRunTransaction(options: Experimental_SuiClientTypes.DryRunTransactionOptions): Promise<{
|
|
52
52
|
transaction: {
|
|
53
53
|
digest: string;
|
|
54
|
-
effects:
|
|
54
|
+
effects: Experimental_SuiClientTypes.TransactionEffects;
|
|
55
55
|
signatures: never[];
|
|
56
56
|
bcs: Uint8Array<ArrayBufferLike>;
|
|
57
57
|
};
|
|
58
58
|
}>;
|
|
59
59
|
getReferenceGasPrice(): Promise<{
|
|
60
|
-
referenceGasPrice:
|
|
60
|
+
referenceGasPrice: string;
|
|
61
|
+
}>;
|
|
62
|
+
getDynamicFields(options: Experimental_SuiClientTypes.GetDynamicFieldsOptions): Promise<{
|
|
63
|
+
dynamicFields: {
|
|
64
|
+
id: string;
|
|
65
|
+
version: string;
|
|
66
|
+
digest: string;
|
|
67
|
+
type: string;
|
|
68
|
+
name: {
|
|
69
|
+
type: string;
|
|
70
|
+
bcs: Uint8Array<ArrayBufferLike>;
|
|
71
|
+
};
|
|
72
|
+
}[];
|
|
73
|
+
hasNextPage: boolean;
|
|
74
|
+
cursor: string | null;
|
|
61
75
|
}>;
|
|
62
76
|
}
|
|
@@ -10,6 +10,7 @@ import { fromBase64 } from "@mysten/bcs";
|
|
|
10
10
|
import { bcs } from "../../bcs/index.js";
|
|
11
11
|
import { batch } from "../../transactions/plugins/utils.js";
|
|
12
12
|
import { Transaction } from "../../transactions/Transaction.js";
|
|
13
|
+
import { normalizeStructTag } from "../../utils/sui-types.js";
|
|
13
14
|
import { Experimental_CoreClient } from "../core.js";
|
|
14
15
|
import { ObjectError } from "../errors.js";
|
|
15
16
|
class JSONRpcTransport extends Experimental_CoreClient {
|
|
@@ -26,7 +27,8 @@ class JSONRpcTransport extends Experimental_CoreClient {
|
|
|
26
27
|
ids: batch2,
|
|
27
28
|
options: {
|
|
28
29
|
showOwner: true,
|
|
29
|
-
showType: true
|
|
30
|
+
showType: true,
|
|
31
|
+
showBcs: true
|
|
30
32
|
}
|
|
31
33
|
});
|
|
32
34
|
for (const [idx, object] of objects.entries()) {
|
|
@@ -45,7 +47,12 @@ class JSONRpcTransport extends Experimental_CoreClient {
|
|
|
45
47
|
const objects = await __privateGet(this, _jsonRpcClient).getOwnedObjects({
|
|
46
48
|
owner: options.address,
|
|
47
49
|
limit: options.limit,
|
|
48
|
-
cursor: options.cursor
|
|
50
|
+
cursor: options.cursor,
|
|
51
|
+
options: {
|
|
52
|
+
showOwner: true,
|
|
53
|
+
showType: true,
|
|
54
|
+
showBcs: true
|
|
55
|
+
}
|
|
49
56
|
});
|
|
50
57
|
return {
|
|
51
58
|
objects: objects.data.map((result) => {
|
|
@@ -69,7 +76,7 @@ class JSONRpcTransport extends Experimental_CoreClient {
|
|
|
69
76
|
id: coin.coinObjectId,
|
|
70
77
|
version: coin.version,
|
|
71
78
|
digest: coin.digest,
|
|
72
|
-
balance:
|
|
79
|
+
balance: coin.balance,
|
|
73
80
|
type: `0x2::coin::Coin<${coin.coinType}>`,
|
|
74
81
|
content: Coin.serialize({
|
|
75
82
|
id: coin.coinObjectId,
|
|
@@ -95,7 +102,7 @@ class JSONRpcTransport extends Experimental_CoreClient {
|
|
|
95
102
|
return {
|
|
96
103
|
balance: {
|
|
97
104
|
coinType: balance.coinType,
|
|
98
|
-
balance:
|
|
105
|
+
balance: balance.totalBalance
|
|
99
106
|
}
|
|
100
107
|
};
|
|
101
108
|
}
|
|
@@ -106,7 +113,7 @@ class JSONRpcTransport extends Experimental_CoreClient {
|
|
|
106
113
|
return {
|
|
107
114
|
balances: balances.map((balance) => ({
|
|
108
115
|
coinType: balance.coinType,
|
|
109
|
-
balance:
|
|
116
|
+
balance: balance.totalBalance
|
|
110
117
|
})),
|
|
111
118
|
hasNextPage: false,
|
|
112
119
|
cursor: null
|
|
@@ -131,8 +138,10 @@ class JSONRpcTransport extends Experimental_CoreClient {
|
|
|
131
138
|
transactionBlock: options.transaction,
|
|
132
139
|
signature: options.signatures,
|
|
133
140
|
options: {
|
|
134
|
-
|
|
135
|
-
showEvents: true
|
|
141
|
+
showRawEffects: true,
|
|
142
|
+
showEvents: true,
|
|
143
|
+
showObjectChanges: true,
|
|
144
|
+
showRawInput: true
|
|
136
145
|
}
|
|
137
146
|
});
|
|
138
147
|
return {
|
|
@@ -147,8 +156,10 @@ class JSONRpcTransport extends Experimental_CoreClient {
|
|
|
147
156
|
return {
|
|
148
157
|
transaction: {
|
|
149
158
|
digest: await tx.getDigest(),
|
|
150
|
-
|
|
151
|
-
|
|
159
|
+
effects: parseTransactionEffectsJson({
|
|
160
|
+
effects: result.effects,
|
|
161
|
+
objectChanges: result.objectChanges
|
|
162
|
+
}),
|
|
152
163
|
signatures: [],
|
|
153
164
|
bcs: options.transaction
|
|
154
165
|
}
|
|
@@ -157,7 +168,28 @@ class JSONRpcTransport extends Experimental_CoreClient {
|
|
|
157
168
|
async getReferenceGasPrice() {
|
|
158
169
|
const referenceGasPrice = await __privateGet(this, _jsonRpcClient).getReferenceGasPrice();
|
|
159
170
|
return {
|
|
160
|
-
referenceGasPrice
|
|
171
|
+
referenceGasPrice: String(referenceGasPrice)
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
async getDynamicFields(options) {
|
|
175
|
+
const dynamicFields = await __privateGet(this, _jsonRpcClient).getDynamicFields({
|
|
176
|
+
parentId: options.parentId,
|
|
177
|
+
limit: options.limit,
|
|
178
|
+
cursor: options.cursor
|
|
179
|
+
});
|
|
180
|
+
return {
|
|
181
|
+
dynamicFields: dynamicFields.data.map((dynamicField) => ({
|
|
182
|
+
id: dynamicField.objectId,
|
|
183
|
+
version: dynamicField.version,
|
|
184
|
+
digest: dynamicField.digest,
|
|
185
|
+
type: dynamicField.objectType,
|
|
186
|
+
name: {
|
|
187
|
+
type: dynamicField.name.type,
|
|
188
|
+
bcs: fromBase64(dynamicField.bcsName)
|
|
189
|
+
}
|
|
190
|
+
})),
|
|
191
|
+
hasNextPage: dynamicFields.hasNextPage,
|
|
192
|
+
cursor: dynamicFields.nextCursor
|
|
161
193
|
};
|
|
162
194
|
}
|
|
163
195
|
}
|
|
@@ -182,7 +214,7 @@ function parseOwner(owner) {
|
|
|
182
214
|
if ("ConsensusV2" in owner) {
|
|
183
215
|
return {
|
|
184
216
|
$kind: "ConsensusV2",
|
|
185
|
-
|
|
217
|
+
ConsensusV2: {
|
|
186
218
|
authenticator: {
|
|
187
219
|
$kind: "SingleOwner",
|
|
188
220
|
SingleOwner: owner.ConsensusV2.authenticator.SingleOwner
|
|
@@ -217,11 +249,237 @@ function parseTransaction(transaction) {
|
|
|
217
249
|
const parsedTx = bcs.SenderSignedData.parse(fromBase64(transaction.rawTransaction))[0];
|
|
218
250
|
return {
|
|
219
251
|
digest: transaction.digest,
|
|
220
|
-
effects:
|
|
252
|
+
effects: parseTransactionEffects({
|
|
253
|
+
effects: new Uint8Array(transaction.rawEffects),
|
|
254
|
+
objectChanges: transaction.objectChanges ?? null
|
|
255
|
+
}),
|
|
221
256
|
bcs: bcs.TransactionData.serialize(parsedTx.intentMessage.value).toBytes(),
|
|
222
257
|
signatures: parsedTx.txSignatures
|
|
223
258
|
};
|
|
224
259
|
}
|
|
260
|
+
function parseTransactionEffects({
|
|
261
|
+
effects,
|
|
262
|
+
epoch,
|
|
263
|
+
objectChanges
|
|
264
|
+
}) {
|
|
265
|
+
const parsed = bcs.TransactionEffects.parse(effects);
|
|
266
|
+
const objectTypes = {};
|
|
267
|
+
objectChanges?.forEach((change) => {
|
|
268
|
+
if (change.type !== "published") {
|
|
269
|
+
objectTypes[change.objectId] = change.objectType;
|
|
270
|
+
}
|
|
271
|
+
});
|
|
272
|
+
switch (parsed.$kind) {
|
|
273
|
+
case "V1":
|
|
274
|
+
return parseTransactionEffectsV1({ bytes: effects, effects: parsed.V1, epoch, objectTypes });
|
|
275
|
+
case "V2":
|
|
276
|
+
return parseTransactionEffectsV2({ bytes: effects, effects: parsed.V2, epoch, objectTypes });
|
|
277
|
+
default:
|
|
278
|
+
throw new Error(
|
|
279
|
+
`Unknown transaction effects version: ${parsed.$kind}`
|
|
280
|
+
);
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
function parseTransactionEffectsV1(_) {
|
|
284
|
+
throw new Error("V1 effects are not supported yet");
|
|
285
|
+
}
|
|
286
|
+
function parseTransactionEffectsV2({
|
|
287
|
+
bytes,
|
|
288
|
+
effects,
|
|
289
|
+
epoch,
|
|
290
|
+
objectTypes
|
|
291
|
+
}) {
|
|
292
|
+
const changedObjects = effects.changedObjects.map(
|
|
293
|
+
([id, change]) => {
|
|
294
|
+
return {
|
|
295
|
+
id,
|
|
296
|
+
inputState: change.inputState.$kind === "Exist" ? "Exists" : "DoesNotExist",
|
|
297
|
+
inputVersion: change.inputState.Exist?.[0][0] ?? null,
|
|
298
|
+
inputDigest: change.inputState.Exist?.[0][1] ?? null,
|
|
299
|
+
inputOwner: change.inputState.Exist?.[1] ?? null,
|
|
300
|
+
outputState: change.outputState.$kind === "NotExist" ? "DoesNotExist" : change.outputState.$kind,
|
|
301
|
+
outputVersion: change.outputState.$kind === "PackageWrite" ? change.outputState.PackageWrite?.[0] : change.outputState.ObjectWrite ? effects.lamportVersion : null,
|
|
302
|
+
outputDigest: change.outputState.$kind === "PackageWrite" ? change.outputState.PackageWrite?.[1] : change.outputState.ObjectWrite?.[0] ?? null,
|
|
303
|
+
outputOwner: change.outputState.ObjectWrite ? change.outputState.ObjectWrite[1] : null,
|
|
304
|
+
idOperation: change.idOperation.$kind,
|
|
305
|
+
objectType: objectTypes[id] ?? null
|
|
306
|
+
};
|
|
307
|
+
}
|
|
308
|
+
);
|
|
309
|
+
return {
|
|
310
|
+
bcs: bytes,
|
|
311
|
+
digest: effects.transactionDigest,
|
|
312
|
+
version: 2,
|
|
313
|
+
status: effects.status.$kind === "Success" ? {
|
|
314
|
+
success: true,
|
|
315
|
+
error: null
|
|
316
|
+
} : {
|
|
317
|
+
success: false,
|
|
318
|
+
// TODO: add command
|
|
319
|
+
error: effects.status.Failed.error.$kind
|
|
320
|
+
},
|
|
321
|
+
epoch: epoch ?? null,
|
|
322
|
+
gasUsed: effects.gasUsed,
|
|
323
|
+
transactionDigest: effects.transactionDigest,
|
|
324
|
+
gasObject: effects.gasObjectIndex === null ? null : changedObjects[effects.gasObjectIndex] ?? null,
|
|
325
|
+
eventsDigest: effects.eventsDigest,
|
|
326
|
+
dependencies: effects.dependencies,
|
|
327
|
+
lamportVersion: effects.lamportVersion,
|
|
328
|
+
changedObjects,
|
|
329
|
+
unchangedSharedObjects: effects.unchangedSharedObjects.map(
|
|
330
|
+
([objectId, object]) => {
|
|
331
|
+
return {
|
|
332
|
+
kind: object.$kind,
|
|
333
|
+
objectId,
|
|
334
|
+
version: object.$kind === "ReadOnlyRoot" ? object.ReadOnlyRoot[0] : object[object.$kind],
|
|
335
|
+
digest: object.$kind === "ReadOnlyRoot" ? object.ReadOnlyRoot[1] : null,
|
|
336
|
+
objectType: objectTypes[objectId] ?? null
|
|
337
|
+
};
|
|
338
|
+
}
|
|
339
|
+
),
|
|
340
|
+
auxiliaryDataDigest: effects.auxDataDigest
|
|
341
|
+
};
|
|
342
|
+
}
|
|
343
|
+
function parseTransactionEffectsJson({
|
|
344
|
+
bytes,
|
|
345
|
+
effects,
|
|
346
|
+
epoch,
|
|
347
|
+
objectChanges
|
|
348
|
+
}) {
|
|
349
|
+
const changedObjects = [];
|
|
350
|
+
const unchangedSharedObjects = [];
|
|
351
|
+
objectChanges?.forEach((change) => {
|
|
352
|
+
switch (change.type) {
|
|
353
|
+
case "published":
|
|
354
|
+
changedObjects.push({
|
|
355
|
+
id: change.packageId,
|
|
356
|
+
inputState: "DoesNotExist",
|
|
357
|
+
inputVersion: null,
|
|
358
|
+
inputDigest: null,
|
|
359
|
+
inputOwner: null,
|
|
360
|
+
outputState: "PackageWrite",
|
|
361
|
+
outputVersion: change.version,
|
|
362
|
+
outputDigest: change.digest,
|
|
363
|
+
outputOwner: null,
|
|
364
|
+
idOperation: "Created",
|
|
365
|
+
objectType: null
|
|
366
|
+
});
|
|
367
|
+
break;
|
|
368
|
+
case "transferred":
|
|
369
|
+
changedObjects.push({
|
|
370
|
+
id: change.objectId,
|
|
371
|
+
inputState: "Exists",
|
|
372
|
+
inputVersion: change.version,
|
|
373
|
+
inputDigest: change.digest,
|
|
374
|
+
inputOwner: {
|
|
375
|
+
$kind: "AddressOwner",
|
|
376
|
+
AddressOwner: change.sender
|
|
377
|
+
},
|
|
378
|
+
outputState: "ObjectWrite",
|
|
379
|
+
outputVersion: change.version,
|
|
380
|
+
outputDigest: change.digest,
|
|
381
|
+
outputOwner: parseOwner(change.recipient),
|
|
382
|
+
idOperation: "None",
|
|
383
|
+
objectType: change.objectType
|
|
384
|
+
});
|
|
385
|
+
break;
|
|
386
|
+
case "mutated":
|
|
387
|
+
changedObjects.push({
|
|
388
|
+
id: change.objectId,
|
|
389
|
+
inputState: "Exists",
|
|
390
|
+
inputVersion: change.previousVersion,
|
|
391
|
+
inputDigest: null,
|
|
392
|
+
inputOwner: parseOwner(change.owner),
|
|
393
|
+
outputState: "ObjectWrite",
|
|
394
|
+
outputVersion: change.version,
|
|
395
|
+
outputDigest: change.digest,
|
|
396
|
+
outputOwner: parseOwner(change.owner),
|
|
397
|
+
idOperation: "None",
|
|
398
|
+
objectType: change.objectType
|
|
399
|
+
});
|
|
400
|
+
break;
|
|
401
|
+
case "deleted":
|
|
402
|
+
changedObjects.push({
|
|
403
|
+
id: change.objectId,
|
|
404
|
+
inputState: "Exists",
|
|
405
|
+
inputVersion: change.version,
|
|
406
|
+
inputDigest: effects.deleted?.find((d) => d.objectId === change.objectId)?.digest ?? null,
|
|
407
|
+
inputOwner: null,
|
|
408
|
+
outputState: "DoesNotExist",
|
|
409
|
+
outputVersion: null,
|
|
410
|
+
outputDigest: null,
|
|
411
|
+
outputOwner: null,
|
|
412
|
+
idOperation: "Deleted",
|
|
413
|
+
objectType: change.objectType
|
|
414
|
+
});
|
|
415
|
+
break;
|
|
416
|
+
case "wrapped":
|
|
417
|
+
changedObjects.push({
|
|
418
|
+
id: change.objectId,
|
|
419
|
+
inputState: "Exists",
|
|
420
|
+
inputVersion: change.version,
|
|
421
|
+
inputDigest: null,
|
|
422
|
+
inputOwner: {
|
|
423
|
+
$kind: "AddressOwner",
|
|
424
|
+
AddressOwner: change.sender
|
|
425
|
+
},
|
|
426
|
+
outputState: "ObjectWrite",
|
|
427
|
+
outputVersion: change.version,
|
|
428
|
+
outputDigest: effects.wrapped?.find((w) => w.objectId === change.objectId)?.digest ?? null,
|
|
429
|
+
outputOwner: {
|
|
430
|
+
$kind: "ObjectOwner",
|
|
431
|
+
ObjectOwner: change.sender
|
|
432
|
+
},
|
|
433
|
+
idOperation: "None",
|
|
434
|
+
objectType: change.objectType
|
|
435
|
+
});
|
|
436
|
+
break;
|
|
437
|
+
case "created":
|
|
438
|
+
changedObjects.push({
|
|
439
|
+
id: change.objectId,
|
|
440
|
+
inputState: "DoesNotExist",
|
|
441
|
+
inputVersion: null,
|
|
442
|
+
inputDigest: null,
|
|
443
|
+
inputOwner: null,
|
|
444
|
+
outputState: "ObjectWrite",
|
|
445
|
+
outputVersion: change.version,
|
|
446
|
+
outputDigest: change.digest,
|
|
447
|
+
outputOwner: parseOwner(change.owner),
|
|
448
|
+
idOperation: "Created",
|
|
449
|
+
objectType: change.objectType
|
|
450
|
+
});
|
|
451
|
+
break;
|
|
452
|
+
}
|
|
453
|
+
});
|
|
454
|
+
return {
|
|
455
|
+
bcs: bytes ?? null,
|
|
456
|
+
digest: effects.transactionDigest,
|
|
457
|
+
version: 2,
|
|
458
|
+
status: effects.status.status === "success" ? { success: true, error: null } : { success: false, error: effects.status.error },
|
|
459
|
+
epoch: epoch ?? null,
|
|
460
|
+
gasUsed: effects.gasUsed,
|
|
461
|
+
transactionDigest: effects.transactionDigest,
|
|
462
|
+
gasObject: {
|
|
463
|
+
id: effects.gasObject?.reference.objectId,
|
|
464
|
+
inputState: "Exists",
|
|
465
|
+
inputVersion: null,
|
|
466
|
+
inputDigest: null,
|
|
467
|
+
inputOwner: null,
|
|
468
|
+
outputState: "ObjectWrite",
|
|
469
|
+
outputVersion: effects.gasObject.reference.version,
|
|
470
|
+
outputDigest: effects.gasObject.reference.digest,
|
|
471
|
+
outputOwner: parseOwner(effects.gasObject.owner),
|
|
472
|
+
idOperation: "None",
|
|
473
|
+
objectType: normalizeStructTag("0x2::coin::Coin<0x2::sui::SUI>")
|
|
474
|
+
},
|
|
475
|
+
eventsDigest: effects.eventsDigest ?? null,
|
|
476
|
+
dependencies: effects.dependencies ?? [],
|
|
477
|
+
lamportVersion: effects.gasObject.reference.version,
|
|
478
|
+
changedObjects,
|
|
479
|
+
unchangedSharedObjects,
|
|
480
|
+
auxiliaryDataDigest: null
|
|
481
|
+
};
|
|
482
|
+
}
|
|
225
483
|
const Balance = bcs.struct("Balance", {
|
|
226
484
|
value: bcs.u64()
|
|
227
485
|
});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/experimental/transports/jsonRPC.ts"],
|
|
4
|
-
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { fromBase64 } from '@mysten/bcs';\n\nimport { bcs } from '../../bcs/index.js';\nimport type {\n\tObjectOwner,\n\tSuiClient,\n\tSuiObjectData,\n\tSuiTransactionBlockResponse,\n} from '../../client/index.js';\nimport { batch } from '../../transactions/plugins/utils.js';\nimport { Transaction } from '../../transactions/Transaction.js';\nimport { Experimental_CoreClient } from '../core.js';\nimport { ObjectError } from '../errors.js';\nimport type { Experimental_SuiClientTypes } from '../types.js';\n\nexport class JSONRpcTransport extends Experimental_CoreClient {\n\t#jsonRpcClient: SuiClient;\n\n\tconstructor(jsonRpcClient: SuiClient) {\n\t\tsuper({ network: jsonRpcClient.network });\n\t\tthis.#jsonRpcClient = jsonRpcClient;\n\t}\n\n\tasync getObjects(options: Experimental_SuiClientTypes.GetObjectsOptions) {\n\t\tconst batches = batch(options.objectIds, 50);\n\t\tconst results: Experimental_SuiClientTypes.GetObjectsResponse['objects'] = [];\n\n\t\tfor (const batch of batches) {\n\t\t\tconst objects = await this.#jsonRpcClient.multiGetObjects({\n\t\t\t\tids: batch,\n\t\t\t\toptions: {\n\t\t\t\t\tshowOwner: true,\n\t\t\t\t\tshowType: true,\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tfor (const [idx, object] of objects.entries()) {\n\t\t\t\tif (object.error) {\n\t\t\t\t\tresults.push(ObjectError.fromResponse(object.error, batch[idx]));\n\t\t\t\t} else {\n\t\t\t\t\tresults.push(parseObject(object.data!));\n\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(options: Experimental_SuiClientTypes.GetOwnedObjectsOptions) {\n\t\tconst objects = await this.#jsonRpcClient.getOwnedObjects({\n\t\t\towner: options.address,\n\t\t\tlimit: options.limit,\n\t\t\tcursor: options.cursor,\n\t\t});\n\n\t\treturn {\n\t\t\tobjects: objects.data.map((result) => {\n\t\t\t\tif (result.error) {\n\t\t\t\t\tthrow ObjectError.fromResponse(result.error);\n\t\t\t\t}\n\n\t\t\t\treturn parseObject(result.data!);\n\t\t\t}),\n\t\t\thasNextPage: objects.hasNextPage,\n\t\t\tcursor: objects.nextCursor ?? null,\n\t\t};\n\t}\n\n\tasync getCoins(options: Experimental_SuiClientTypes.GetCoinsOptions) {\n\t\tconst coins = await this.#jsonRpcClient.getCoins({\n\t\t\towner: options.address,\n\t\t\tcoinType: options.coinType,\n\t\t});\n\n\t\treturn {\n\t\t\tobjects: coins.data.map((coin) => {\n\t\t\t\treturn {\n\t\t\t\t\tid: coin.coinObjectId,\n\t\t\t\t\tversion: coin.version,\n\t\t\t\t\tdigest: coin.digest,\n\t\t\t\t\tbalance: BigInt(coin.balance),\n\t\t\t\t\ttype: `0x2::coin::Coin<${coin.coinType}>`,\n\t\t\t\t\tcontent: Coin.serialize({\n\t\t\t\t\t\tid: coin.coinObjectId,\n\t\t\t\t\t\tbalance: {\n\t\t\t\t\t\t\tvalue: coin.balance,\n\t\t\t\t\t\t},\n\t\t\t\t\t}).toBytes(),\n\t\t\t\t\towner: {\n\t\t\t\t\t\t$kind: 'ObjectOwner' as const,\n\t\t\t\t\t\tObjectOwner: options.address,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}),\n\t\t\thasNextPage: coins.hasNextPage,\n\t\t\tcursor: coins.nextCursor ?? null,\n\t\t};\n\t}\n\n\tasync getBalance(options: Experimental_SuiClientTypes.GetBalanceOptions) {\n\t\tconst balance = await this.#jsonRpcClient.getBalance({\n\t\t\towner: options.address,\n\t\t\tcoinType: options.coinType,\n\t\t});\n\n\t\treturn {\n\t\t\tbalance: {\n\t\t\t\tcoinType: balance.coinType,\n\t\t\t\tbalance: BigInt(balance.totalBalance),\n\t\t\t},\n\t\t};\n\t}\n\tasync getAllBalances(options: Experimental_SuiClientTypes.GetAllBalancesOptions) {\n\t\tconst balances = await this.#jsonRpcClient.getAllBalances({\n\t\t\towner: options.address,\n\t\t});\n\n\t\treturn {\n\t\t\tbalances: balances.map((balance) => ({\n\t\t\t\tcoinType: balance.coinType,\n\t\t\t\tbalance: BigInt(balance.totalBalance),\n\t\t\t})),\n\t\t\thasNextPage: false,\n\t\t\tcursor: null,\n\t\t};\n\t}\n\tasync getTransaction(options: Experimental_SuiClientTypes.GetTransactionOptions) {\n\t\tconst transaction = await this.#jsonRpcClient.getTransactionBlock({\n\t\t\tdigest: options.digest,\n\t\t\toptions: {\n\t\t\t\tshowRawInput: true,\n\t\t\t\tshowObjectChanges: true,\n\t\t\t\tshowRawEffects: true,\n\t\t\t\tshowEvents: true,\n\t\t\t},\n\t\t});\n\n\t\treturn {\n\t\t\ttransaction: parseTransaction(transaction),\n\t\t};\n\t}\n\tasync executeTransaction(options: Experimental_SuiClientTypes.ExecuteTransactionOptions) {\n\t\tconst transaction = await this.#jsonRpcClient.executeTransactionBlock({\n\t\t\ttransactionBlock: options.transaction,\n\t\t\tsignature: options.signatures,\n\t\t\toptions: {\n\t\t\t\tshowEffects: true,\n\t\t\t\tshowEvents: true,\n\t\t\t},\n\t\t});\n\n\t\treturn {\n\t\t\ttransaction: parseTransaction(transaction),\n\t\t};\n\t}\n\tasync dryRunTransaction(options: Experimental_SuiClientTypes.DryRunTransactionOptions) {\n\t\tconst tx = Transaction.from(options.transaction);\n\t\tconst result = await this.#jsonRpcClient.dryRunTransactionBlock({\n\t\t\ttransactionBlock: options.transaction,\n\t\t});\n\n\t\treturn {\n\t\t\ttransaction: {\n\t\t\t\tdigest: await tx.getDigest(),\n\t\t\t\t// TODO: Effects aren't returned as bcs from dryRun, once we define structured effects we can return those instead\n\t\t\t\teffects: result.effects as never,\n\t\t\t\tsignatures: [],\n\t\t\t\tbcs: options.transaction,\n\t\t\t},\n\t\t};\n\t}\n\tasync getReferenceGasPrice() {\n\t\tconst referenceGasPrice = await this.#jsonRpcClient.getReferenceGasPrice();\n\t\treturn {\n\t\t\treferenceGasPrice,\n\t\t};\n\t}\n}\n\nfunction parseObject(object: SuiObjectData): Experimental_SuiClientTypes.ObjectResponse {\n\treturn {\n\t\tid: object.objectId,\n\t\tversion: object.version,\n\t\tdigest: object.digest,\n\t\ttype: object.type!,\n\t\tcontent:\n\t\t\tobject.bcs?.dataType === 'moveObject' ? fromBase64(object.bcs.bcsBytes) : new Uint8Array(),\n\t\towner: parseOwner(object.owner!),\n\t};\n}\n\nfunction parseOwner(owner: ObjectOwner): Experimental_SuiClientTypes.ObjectOwner {\n\tif (owner === 'Immutable') {\n\t\treturn {\n\t\t\t$kind: 'Immutable',\n\t\t\tImmutable: true,\n\t\t};\n\t}\n\n\tif ('ConsensusV2' in owner) {\n\t\treturn {\n\t\t\t$kind: 'ConsensusV2',\n\t\t\tConsensusV2Owner: {\n\t\t\t\tauthenticator: {\n\t\t\t\t\t$kind: 'SingleOwner',\n\t\t\t\t\tSingleOwner: owner.ConsensusV2.authenticator.SingleOwner,\n\t\t\t\t},\n\t\t\t\tstartVersion: owner.ConsensusV2.start_version,\n\t\t\t},\n\t\t};\n\t}\n\n\tif ('AddressOwner' in owner) {\n\t\treturn {\n\t\t\t$kind: 'AddressOwner',\n\t\t\tAddressOwner: owner.AddressOwner,\n\t\t};\n\t}\n\n\tif ('ObjectOwner' in owner) {\n\t\treturn {\n\t\t\t$kind: 'ObjectOwner',\n\t\t\tObjectOwner: owner.ObjectOwner,\n\t\t};\n\t}\n\n\tif ('Shared' in owner) {\n\t\treturn {\n\t\t\t$kind: 'Shared',\n\t\t\tShared: {\n\t\t\t\tinitialSharedVersion: owner.Shared.initial_shared_version,\n\t\t\t},\n\t\t};\n\t}\n\n\tthrow new Error(`Unknown owner type: ${JSON.stringify(owner)}`);\n}\n\nfunction parseTransaction(\n\ttransaction: SuiTransactionBlockResponse,\n): Experimental_SuiClientTypes.TransactionResponse {\n\tconst parsedTx = bcs.SenderSignedData.parse(fromBase64(transaction.rawTransaction!))[0];\n\n\treturn {\n\t\tdigest: transaction.digest,\n\t\teffects: new Uint8Array(transaction.rawEffects!),\n\t\tbcs: bcs.TransactionData.serialize(parsedTx.intentMessage.value).toBytes(),\n\t\tsignatures: parsedTx.txSignatures,\n\t};\n}\n\nconst Balance = bcs.struct('Balance', {\n\tvalue: bcs.u64(),\n});\n\nconst Coin = bcs.struct('Coin', {\n\tid: bcs.Address,\n\tbalance: Balance,\n});\n"],
|
|
5
|
-
"mappings": ";;;;;;;AAAA;AAGA,SAAS,kBAAkB;AAE3B,SAAS,WAAW;
|
|
4
|
+
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { fromBase64 } from '@mysten/bcs';\n\nimport { bcs } from '../../bcs/index.js';\nimport type {\n\tObjectOwner,\n\tSuiClient,\n\tSuiObjectChange,\n\tSuiObjectData,\n\tSuiTransactionBlockResponse,\n\tTransactionEffects,\n} from '../../client/index.js';\nimport { batch } from '../../transactions/plugins/utils.js';\nimport { Transaction } from '../../transactions/Transaction.js';\nimport { normalizeStructTag } from '../../utils/sui-types.js';\nimport { Experimental_CoreClient } from '../core.js';\nimport { ObjectError } from '../errors.js';\nimport type { Experimental_SuiClientTypes } from '../types.js';\n\nexport class JSONRpcTransport extends Experimental_CoreClient {\n\t#jsonRpcClient: SuiClient;\n\n\tconstructor(jsonRpcClient: SuiClient) {\n\t\tsuper({ network: jsonRpcClient.network });\n\t\tthis.#jsonRpcClient = jsonRpcClient;\n\t}\n\n\tasync getObjects(options: Experimental_SuiClientTypes.GetObjectsOptions) {\n\t\tconst batches = batch(options.objectIds, 50);\n\t\tconst results: Experimental_SuiClientTypes.GetObjectsResponse['objects'] = [];\n\n\t\tfor (const batch of batches) {\n\t\t\tconst objects = await this.#jsonRpcClient.multiGetObjects({\n\t\t\t\tids: batch,\n\t\t\t\toptions: {\n\t\t\t\t\tshowOwner: true,\n\t\t\t\t\tshowType: true,\n\t\t\t\t\tshowBcs: true,\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tfor (const [idx, object] of objects.entries()) {\n\t\t\t\tif (object.error) {\n\t\t\t\t\tresults.push(ObjectError.fromResponse(object.error, batch[idx]));\n\t\t\t\t} else {\n\t\t\t\t\tresults.push(parseObject(object.data!));\n\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(options: Experimental_SuiClientTypes.GetOwnedObjectsOptions) {\n\t\tconst objects = await this.#jsonRpcClient.getOwnedObjects({\n\t\t\towner: options.address,\n\t\t\tlimit: options.limit,\n\t\t\tcursor: options.cursor,\n\t\t\toptions: {\n\t\t\t\tshowOwner: true,\n\t\t\t\tshowType: true,\n\t\t\t\tshowBcs: true,\n\t\t\t},\n\t\t});\n\n\t\treturn {\n\t\t\tobjects: objects.data.map((result) => {\n\t\t\t\tif (result.error) {\n\t\t\t\t\tthrow ObjectError.fromResponse(result.error);\n\t\t\t\t}\n\n\t\t\t\treturn parseObject(result.data!);\n\t\t\t}),\n\t\t\thasNextPage: objects.hasNextPage,\n\t\t\tcursor: objects.nextCursor ?? null,\n\t\t};\n\t}\n\n\tasync getCoins(options: Experimental_SuiClientTypes.GetCoinsOptions) {\n\t\tconst coins = await this.#jsonRpcClient.getCoins({\n\t\t\towner: options.address,\n\t\t\tcoinType: options.coinType,\n\t\t});\n\n\t\treturn {\n\t\t\tobjects: coins.data.map((coin) => {\n\t\t\t\treturn {\n\t\t\t\t\tid: coin.coinObjectId,\n\t\t\t\t\tversion: coin.version,\n\t\t\t\t\tdigest: coin.digest,\n\t\t\t\t\tbalance: coin.balance,\n\t\t\t\t\ttype: `0x2::coin::Coin<${coin.coinType}>`,\n\t\t\t\t\tcontent: Coin.serialize({\n\t\t\t\t\t\tid: coin.coinObjectId,\n\t\t\t\t\t\tbalance: {\n\t\t\t\t\t\t\tvalue: coin.balance,\n\t\t\t\t\t\t},\n\t\t\t\t\t}).toBytes(),\n\t\t\t\t\towner: {\n\t\t\t\t\t\t$kind: 'ObjectOwner' as const,\n\t\t\t\t\t\tObjectOwner: options.address,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}),\n\t\t\thasNextPage: coins.hasNextPage,\n\t\t\tcursor: coins.nextCursor ?? null,\n\t\t};\n\t}\n\n\tasync getBalance(options: Experimental_SuiClientTypes.GetBalanceOptions) {\n\t\tconst balance = await this.#jsonRpcClient.getBalance({\n\t\t\towner: options.address,\n\t\t\tcoinType: options.coinType,\n\t\t});\n\n\t\treturn {\n\t\t\tbalance: {\n\t\t\t\tcoinType: balance.coinType,\n\t\t\t\tbalance: balance.totalBalance,\n\t\t\t},\n\t\t};\n\t}\n\tasync getAllBalances(options: Experimental_SuiClientTypes.GetAllBalancesOptions) {\n\t\tconst balances = await this.#jsonRpcClient.getAllBalances({\n\t\t\towner: options.address,\n\t\t});\n\n\t\treturn {\n\t\t\tbalances: balances.map((balance) => ({\n\t\t\t\tcoinType: balance.coinType,\n\t\t\t\tbalance: balance.totalBalance,\n\t\t\t})),\n\t\t\thasNextPage: false,\n\t\t\tcursor: null,\n\t\t};\n\t}\n\tasync getTransaction(options: Experimental_SuiClientTypes.GetTransactionOptions) {\n\t\tconst transaction = await this.#jsonRpcClient.getTransactionBlock({\n\t\t\tdigest: options.digest,\n\t\t\toptions: {\n\t\t\t\tshowRawInput: true,\n\t\t\t\tshowObjectChanges: true,\n\t\t\t\tshowRawEffects: true,\n\t\t\t\tshowEvents: true,\n\t\t\t},\n\t\t});\n\n\t\treturn {\n\t\t\ttransaction: parseTransaction(transaction),\n\t\t};\n\t}\n\tasync executeTransaction(options: Experimental_SuiClientTypes.ExecuteTransactionOptions) {\n\t\tconst transaction = await this.#jsonRpcClient.executeTransactionBlock({\n\t\t\ttransactionBlock: options.transaction,\n\t\t\tsignature: options.signatures,\n\t\t\toptions: {\n\t\t\t\tshowRawEffects: true,\n\t\t\t\tshowEvents: true,\n\t\t\t\tshowObjectChanges: true,\n\t\t\t\tshowRawInput: true,\n\t\t\t},\n\t\t});\n\n\t\treturn {\n\t\t\ttransaction: parseTransaction(transaction),\n\t\t};\n\t}\n\tasync dryRunTransaction(options: Experimental_SuiClientTypes.DryRunTransactionOptions) {\n\t\tconst tx = Transaction.from(options.transaction);\n\t\tconst result = await this.#jsonRpcClient.dryRunTransactionBlock({\n\t\t\ttransactionBlock: options.transaction,\n\t\t});\n\n\t\treturn {\n\t\t\ttransaction: {\n\t\t\t\tdigest: await tx.getDigest(),\n\t\t\t\teffects: parseTransactionEffectsJson({\n\t\t\t\t\teffects: result.effects,\n\t\t\t\t\tobjectChanges: result.objectChanges,\n\t\t\t\t}),\n\t\t\t\tsignatures: [],\n\t\t\t\tbcs: options.transaction,\n\t\t\t},\n\t\t};\n\t}\n\tasync getReferenceGasPrice() {\n\t\tconst referenceGasPrice = await this.#jsonRpcClient.getReferenceGasPrice();\n\t\treturn {\n\t\t\treferenceGasPrice: String(referenceGasPrice),\n\t\t};\n\t}\n\n\tasync getDynamicFields(options: Experimental_SuiClientTypes.GetDynamicFieldsOptions) {\n\t\tconst dynamicFields = await this.#jsonRpcClient.getDynamicFields({\n\t\t\tparentId: options.parentId,\n\t\t\tlimit: options.limit,\n\t\t\tcursor: options.cursor,\n\t\t});\n\n\t\treturn {\n\t\t\tdynamicFields: dynamicFields.data.map((dynamicField) => ({\n\t\t\t\tid: dynamicField.objectId,\n\t\t\t\tversion: dynamicField.version,\n\t\t\t\tdigest: dynamicField.digest,\n\t\t\t\ttype: dynamicField.objectType,\n\t\t\t\tname: {\n\t\t\t\t\ttype: dynamicField.name.type,\n\t\t\t\t\tbcs: fromBase64(dynamicField.bcsName),\n\t\t\t\t},\n\t\t\t})),\n\t\t\thasNextPage: dynamicFields.hasNextPage,\n\t\t\tcursor: dynamicFields.nextCursor,\n\t\t};\n\t}\n}\n\nfunction parseObject(object: SuiObjectData): Experimental_SuiClientTypes.ObjectResponse {\n\treturn {\n\t\tid: object.objectId,\n\t\tversion: object.version,\n\t\tdigest: object.digest,\n\t\ttype: object.type!,\n\t\tcontent:\n\t\t\tobject.bcs?.dataType === 'moveObject' ? fromBase64(object.bcs.bcsBytes) : new Uint8Array(),\n\t\towner: parseOwner(object.owner!),\n\t};\n}\n\nfunction parseOwner(owner: ObjectOwner): Experimental_SuiClientTypes.ObjectOwner {\n\tif (owner === 'Immutable') {\n\t\treturn {\n\t\t\t$kind: 'Immutable',\n\t\t\tImmutable: true,\n\t\t};\n\t}\n\n\tif ('ConsensusV2' in owner) {\n\t\treturn {\n\t\t\t$kind: 'ConsensusV2',\n\t\t\tConsensusV2: {\n\t\t\t\tauthenticator: {\n\t\t\t\t\t$kind: 'SingleOwner',\n\t\t\t\t\tSingleOwner: owner.ConsensusV2.authenticator.SingleOwner,\n\t\t\t\t},\n\t\t\t\tstartVersion: owner.ConsensusV2.start_version,\n\t\t\t},\n\t\t};\n\t}\n\n\tif ('AddressOwner' in owner) {\n\t\treturn {\n\t\t\t$kind: 'AddressOwner',\n\t\t\tAddressOwner: owner.AddressOwner,\n\t\t};\n\t}\n\n\tif ('ObjectOwner' in owner) {\n\t\treturn {\n\t\t\t$kind: 'ObjectOwner',\n\t\t\tObjectOwner: owner.ObjectOwner,\n\t\t};\n\t}\n\n\tif ('Shared' in owner) {\n\t\treturn {\n\t\t\t$kind: 'Shared',\n\t\t\tShared: {\n\t\t\t\tinitialSharedVersion: owner.Shared.initial_shared_version,\n\t\t\t},\n\t\t};\n\t}\n\n\tthrow new Error(`Unknown owner type: ${JSON.stringify(owner)}`);\n}\n\nfunction parseTransaction(\n\ttransaction: SuiTransactionBlockResponse,\n): Experimental_SuiClientTypes.TransactionResponse {\n\tconst parsedTx = bcs.SenderSignedData.parse(fromBase64(transaction.rawTransaction!))[0];\n\n\treturn {\n\t\tdigest: transaction.digest,\n\t\teffects: parseTransactionEffects({\n\t\t\teffects: new Uint8Array(transaction.rawEffects!),\n\t\t\tobjectChanges: transaction.objectChanges ?? null,\n\t\t}),\n\t\tbcs: bcs.TransactionData.serialize(parsedTx.intentMessage.value).toBytes(),\n\t\tsignatures: parsedTx.txSignatures,\n\t};\n}\n\nfunction parseTransactionEffects({\n\teffects,\n\tepoch,\n\tobjectChanges,\n}: {\n\teffects: Uint8Array;\n\tobjectChanges: SuiObjectChange[] | null;\n\tepoch?: string | null;\n}): Experimental_SuiClientTypes.TransactionEffects {\n\tconst parsed = bcs.TransactionEffects.parse(effects);\n\tconst objectTypes: Record<string, string> = {};\n\n\tobjectChanges?.forEach((change) => {\n\t\tif (change.type !== 'published') {\n\t\t\tobjectTypes[change.objectId] = change.objectType;\n\t\t}\n\t});\n\n\tswitch (parsed.$kind) {\n\t\tcase 'V1':\n\t\t\treturn parseTransactionEffectsV1({ bytes: effects, effects: parsed.V1, epoch, objectTypes });\n\t\tcase 'V2':\n\t\t\treturn parseTransactionEffectsV2({ bytes: effects, effects: parsed.V2, epoch, objectTypes });\n\t\tdefault:\n\t\t\tthrow new Error(\n\t\t\t\t`Unknown transaction effects version: ${(parsed as { $kind: string }).$kind}`,\n\t\t\t);\n\t}\n}\n\nfunction parseTransactionEffectsV1(_: {\n\tbytes: Uint8Array;\n\teffects: NonNullable<(typeof bcs.TransactionEffects.$inferType)['V1']>;\n\tepoch?: string | null;\n\tobjectTypes: Record<string, string>;\n}): Experimental_SuiClientTypes.TransactionEffects {\n\tthrow new Error('V1 effects are not supported yet');\n}\n\nfunction parseTransactionEffectsV2({\n\tbytes,\n\teffects,\n\tepoch,\n\tobjectTypes,\n}: {\n\tbytes: Uint8Array;\n\teffects: NonNullable<(typeof bcs.TransactionEffects.$inferType)['V2']>;\n\tepoch?: string | null;\n\tobjectTypes: Record<string, string>;\n}): Experimental_SuiClientTypes.TransactionEffects {\n\tconst changedObjects = effects.changedObjects.map(\n\t\t([id, change]): Experimental_SuiClientTypes.ChangedObject => {\n\t\t\treturn {\n\t\t\t\tid,\n\t\t\t\tinputState: change.inputState.$kind === 'Exist' ? 'Exists' : 'DoesNotExist',\n\t\t\t\tinputVersion: change.inputState.Exist?.[0][0] ?? null,\n\t\t\t\tinputDigest: change.inputState.Exist?.[0][1] ?? null,\n\t\t\t\tinputOwner: change.inputState.Exist?.[1] ?? null,\n\t\t\t\toutputState:\n\t\t\t\t\tchange.outputState.$kind === 'NotExist' ? 'DoesNotExist' : change.outputState.$kind,\n\t\t\t\toutputVersion:\n\t\t\t\t\tchange.outputState.$kind === 'PackageWrite'\n\t\t\t\t\t\t? change.outputState.PackageWrite?.[0]\n\t\t\t\t\t\t: change.outputState.ObjectWrite\n\t\t\t\t\t\t\t? effects.lamportVersion\n\t\t\t\t\t\t\t: null,\n\t\t\t\toutputDigest:\n\t\t\t\t\tchange.outputState.$kind === 'PackageWrite'\n\t\t\t\t\t\t? change.outputState.PackageWrite?.[1]\n\t\t\t\t\t\t: (change.outputState.ObjectWrite?.[0] ?? null),\n\t\t\t\toutputOwner: change.outputState.ObjectWrite ? change.outputState.ObjectWrite[1] : null,\n\t\t\t\tidOperation: change.idOperation.$kind,\n\t\t\t\tobjectType: objectTypes[id] ?? null,\n\t\t\t};\n\t\t},\n\t);\n\n\treturn {\n\t\tbcs: bytes,\n\t\tdigest: effects.transactionDigest,\n\t\tversion: 2,\n\t\tstatus:\n\t\t\teffects.status.$kind === 'Success'\n\t\t\t\t? {\n\t\t\t\t\t\tsuccess: true,\n\t\t\t\t\t\terror: null,\n\t\t\t\t\t}\n\t\t\t\t: {\n\t\t\t\t\t\tsuccess: false,\n\t\t\t\t\t\t// TODO: add command\n\t\t\t\t\t\terror: effects.status.Failed.error.$kind,\n\t\t\t\t\t},\n\t\tepoch: epoch ?? null,\n\t\tgasUsed: effects.gasUsed,\n\t\ttransactionDigest: effects.transactionDigest,\n\t\tgasObject:\n\t\t\teffects.gasObjectIndex === null ? null : (changedObjects[effects.gasObjectIndex] ?? null),\n\t\teventsDigest: effects.eventsDigest,\n\t\tdependencies: effects.dependencies,\n\t\tlamportVersion: effects.lamportVersion,\n\t\tchangedObjects,\n\t\tunchangedSharedObjects: effects.unchangedSharedObjects.map(\n\t\t\t([objectId, object]): Experimental_SuiClientTypes.UnchangedSharedObject => {\n\t\t\t\treturn {\n\t\t\t\t\tkind: object.$kind,\n\t\t\t\t\tobjectId: objectId,\n\t\t\t\t\tversion:\n\t\t\t\t\t\tobject.$kind === 'ReadOnlyRoot'\n\t\t\t\t\t\t\t? object.ReadOnlyRoot[0]\n\t\t\t\t\t\t\t: (object[object.$kind] as string | null),\n\t\t\t\t\tdigest: object.$kind === 'ReadOnlyRoot' ? object.ReadOnlyRoot[1] : null,\n\t\t\t\t\tobjectType: objectTypes[objectId] ?? null,\n\t\t\t\t};\n\t\t\t},\n\t\t),\n\t\tauxiliaryDataDigest: effects.auxDataDigest,\n\t};\n}\n\nfunction parseTransactionEffectsJson({\n\tbytes,\n\teffects,\n\tepoch,\n\tobjectChanges,\n}: {\n\tbytes?: Uint8Array;\n\teffects: TransactionEffects;\n\tepoch?: string | null;\n\tobjectChanges: SuiObjectChange[] | null;\n}): Experimental_SuiClientTypes.TransactionEffects {\n\tconst changedObjects: Experimental_SuiClientTypes.ChangedObject[] = [];\n\tconst unchangedSharedObjects: Experimental_SuiClientTypes.UnchangedSharedObject[] = [];\n\n\tobjectChanges?.forEach((change) => {\n\t\tswitch (change.type) {\n\t\t\tcase 'published':\n\t\t\t\tchangedObjects.push({\n\t\t\t\t\tid: change.packageId,\n\t\t\t\t\tinputState: 'DoesNotExist',\n\t\t\t\t\tinputVersion: null,\n\t\t\t\t\tinputDigest: null,\n\t\t\t\t\tinputOwner: null,\n\t\t\t\t\toutputState: 'PackageWrite',\n\t\t\t\t\toutputVersion: change.version,\n\t\t\t\t\toutputDigest: change.digest,\n\t\t\t\t\toutputOwner: null,\n\t\t\t\t\tidOperation: 'Created',\n\t\t\t\t\tobjectType: null,\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase 'transferred':\n\t\t\t\tchangedObjects.push({\n\t\t\t\t\tid: change.objectId,\n\t\t\t\t\tinputState: 'Exists',\n\t\t\t\t\tinputVersion: change.version,\n\t\t\t\t\tinputDigest: change.digest,\n\t\t\t\t\tinputOwner: {\n\t\t\t\t\t\t$kind: 'AddressOwner' as const,\n\t\t\t\t\t\tAddressOwner: change.sender,\n\t\t\t\t\t},\n\t\t\t\t\toutputState: 'ObjectWrite',\n\t\t\t\t\toutputVersion: change.version,\n\t\t\t\t\toutputDigest: change.digest,\n\t\t\t\t\toutputOwner: parseOwner(change.recipient),\n\t\t\t\t\tidOperation: 'None',\n\t\t\t\t\tobjectType: change.objectType,\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase 'mutated':\n\t\t\t\tchangedObjects.push({\n\t\t\t\t\tid: change.objectId,\n\t\t\t\t\tinputState: 'Exists',\n\t\t\t\t\tinputVersion: change.previousVersion,\n\t\t\t\t\tinputDigest: null,\n\t\t\t\t\tinputOwner: parseOwner(change.owner),\n\t\t\t\t\toutputState: 'ObjectWrite',\n\t\t\t\t\toutputVersion: change.version,\n\t\t\t\t\toutputDigest: change.digest,\n\t\t\t\t\toutputOwner: parseOwner(change.owner),\n\t\t\t\t\tidOperation: 'None',\n\t\t\t\t\tobjectType: change.objectType,\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase 'deleted':\n\t\t\t\tchangedObjects.push({\n\t\t\t\t\tid: change.objectId,\n\t\t\t\t\tinputState: 'Exists',\n\t\t\t\t\tinputVersion: change.version,\n\t\t\t\t\tinputDigest: effects.deleted?.find((d) => d.objectId === change.objectId)?.digest ?? null,\n\t\t\t\t\tinputOwner: null,\n\t\t\t\t\toutputState: 'DoesNotExist',\n\t\t\t\t\toutputVersion: null,\n\t\t\t\t\toutputDigest: null,\n\t\t\t\t\toutputOwner: null,\n\t\t\t\t\tidOperation: 'Deleted',\n\t\t\t\t\tobjectType: change.objectType,\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase 'wrapped':\n\t\t\t\tchangedObjects.push({\n\t\t\t\t\tid: change.objectId,\n\t\t\t\t\tinputState: 'Exists',\n\t\t\t\t\tinputVersion: change.version,\n\t\t\t\t\tinputDigest: null,\n\t\t\t\t\tinputOwner: {\n\t\t\t\t\t\t$kind: 'AddressOwner' as const,\n\t\t\t\t\t\tAddressOwner: change.sender,\n\t\t\t\t\t},\n\t\t\t\t\toutputState: 'ObjectWrite',\n\t\t\t\t\toutputVersion: change.version,\n\t\t\t\t\toutputDigest:\n\t\t\t\t\t\teffects.wrapped?.find((w) => w.objectId === change.objectId)?.digest ?? null,\n\t\t\t\t\toutputOwner: {\n\t\t\t\t\t\t$kind: 'ObjectOwner' as const,\n\t\t\t\t\t\tObjectOwner: change.sender,\n\t\t\t\t\t},\n\t\t\t\t\tidOperation: 'None',\n\t\t\t\t\tobjectType: change.objectType,\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase 'created':\n\t\t\t\tchangedObjects.push({\n\t\t\t\t\tid: change.objectId,\n\t\t\t\t\tinputState: 'DoesNotExist',\n\t\t\t\t\tinputVersion: null,\n\t\t\t\t\tinputDigest: null,\n\t\t\t\t\tinputOwner: null,\n\t\t\t\t\toutputState: 'ObjectWrite',\n\t\t\t\t\toutputVersion: change.version,\n\t\t\t\t\toutputDigest: change.digest,\n\t\t\t\t\toutputOwner: parseOwner(change.owner),\n\t\t\t\t\tidOperation: 'Created',\n\t\t\t\t\tobjectType: change.objectType,\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t}\n\t});\n\n\treturn {\n\t\tbcs: bytes ?? null,\n\t\tdigest: effects.transactionDigest,\n\t\tversion: 2,\n\t\tstatus:\n\t\t\teffects.status.status === 'success'\n\t\t\t\t? { success: true, error: null }\n\t\t\t\t: { success: false, error: effects.status.error! },\n\t\tepoch: epoch ?? null,\n\t\tgasUsed: effects.gasUsed,\n\t\ttransactionDigest: effects.transactionDigest,\n\t\tgasObject: {\n\t\t\tid: effects.gasObject?.reference.objectId,\n\t\t\tinputState: 'Exists',\n\t\t\tinputVersion: null,\n\t\t\tinputDigest: null,\n\t\t\tinputOwner: null,\n\t\t\toutputState: 'ObjectWrite',\n\t\t\toutputVersion: effects.gasObject.reference.version,\n\t\t\toutputDigest: effects.gasObject.reference.digest,\n\t\t\toutputOwner: parseOwner(effects.gasObject.owner),\n\t\t\tidOperation: 'None',\n\t\t\tobjectType: normalizeStructTag('0x2::coin::Coin<0x2::sui::SUI>'),\n\t\t},\n\t\teventsDigest: effects.eventsDigest ?? null,\n\t\tdependencies: effects.dependencies ?? [],\n\t\tlamportVersion: effects.gasObject.reference.version,\n\t\tchangedObjects,\n\t\tunchangedSharedObjects,\n\t\tauxiliaryDataDigest: null,\n\t};\n}\n\nconst Balance = bcs.struct('Balance', {\n\tvalue: bcs.u64(),\n});\n\nconst Coin = bcs.struct('Coin', {\n\tid: bcs.Address,\n\tbalance: Balance,\n});\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["batch"]
|
|
7
7
|
}
|