@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.
Files changed (129) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/cjs/bcs/bcs.d.ts +3 -2
  3. package/dist/cjs/bcs/bcs.js +3 -3
  4. package/dist/cjs/bcs/bcs.js.map +2 -2
  5. package/dist/cjs/bcs/effects.d.ts +18 -12
  6. package/dist/cjs/bcs/index.d.ts +460 -453
  7. package/dist/cjs/bcs/index.js +4 -4
  8. package/dist/cjs/bcs/index.js.map +1 -1
  9. package/dist/cjs/client/client.d.ts +38 -16
  10. package/dist/cjs/client/client.js +142 -62
  11. package/dist/cjs/client/client.js.map +2 -2
  12. package/dist/cjs/client/http-transport.d.ts +2 -0
  13. package/dist/cjs/client/http-transport.js +7 -0
  14. package/dist/cjs/client/http-transport.js.map +2 -2
  15. package/dist/cjs/client/rpc-websocket-client.d.ts +2 -1
  16. package/dist/cjs/client/rpc-websocket-client.js +7 -2
  17. package/dist/cjs/client/rpc-websocket-client.js.map +2 -2
  18. package/dist/cjs/client/types/generated.d.ts +1 -0
  19. package/dist/cjs/client/types/generated.js.map +1 -1
  20. package/dist/cjs/client/types/params.d.ts +56 -0
  21. package/dist/cjs/client/types/params.js.map +1 -1
  22. package/dist/cjs/experimental/cache.d.ts +11 -0
  23. package/dist/cjs/experimental/cache.js +79 -0
  24. package/dist/cjs/experimental/cache.js.map +7 -0
  25. package/dist/cjs/experimental/client.d.ts +4 -2
  26. package/dist/cjs/experimental/client.js +4 -2
  27. package/dist/cjs/experimental/client.js.map +2 -2
  28. package/dist/cjs/experimental/core.d.ts +10 -2
  29. package/dist/cjs/experimental/core.js +59 -1
  30. package/dist/cjs/experimental/core.js.map +2 -2
  31. package/dist/cjs/experimental/index.d.ts +5 -0
  32. package/dist/cjs/experimental/index.js +29 -0
  33. package/dist/cjs/experimental/index.js.map +7 -0
  34. package/dist/cjs/experimental/transports/jsonRPC.d.ts +19 -5
  35. package/dist/cjs/experimental/transports/jsonRPC.js +270 -12
  36. package/dist/cjs/experimental/transports/jsonRPC.js.map +2 -2
  37. package/dist/cjs/experimental/types.d.ts +84 -41
  38. package/dist/cjs/experimental/types.js.map +1 -1
  39. package/dist/cjs/keypairs/secp256k1/keypair.js +1 -1
  40. package/dist/cjs/keypairs/secp256k1/keypair.js.map +2 -2
  41. package/dist/cjs/keypairs/secp256r1/keypair.js +1 -1
  42. package/dist/cjs/keypairs/secp256r1/keypair.js.map +2 -2
  43. package/dist/cjs/multisig/publickey.js +5 -5
  44. package/dist/cjs/multisig/publickey.js.map +2 -2
  45. package/dist/cjs/multisig/signer.js +2 -2
  46. package/dist/cjs/multisig/signer.js.map +2 -2
  47. package/dist/cjs/transactions/intents/CoinWithBalance.d.ts +2 -2
  48. package/dist/cjs/transactions/intents/CoinWithBalance.js +6 -1
  49. package/dist/cjs/transactions/intents/CoinWithBalance.js.map +2 -2
  50. package/dist/cjs/transactions/plugins/utils.js +2 -2
  51. package/dist/cjs/transactions/plugins/utils.js.map +2 -2
  52. package/dist/cjs/version.d.ts +2 -2
  53. package/dist/cjs/version.js +2 -2
  54. package/dist/cjs/version.js.map +1 -1
  55. package/dist/esm/bcs/bcs.d.ts +3 -2
  56. package/dist/esm/bcs/bcs.js +3 -3
  57. package/dist/esm/bcs/bcs.js.map +2 -2
  58. package/dist/esm/bcs/effects.d.ts +18 -12
  59. package/dist/esm/bcs/index.d.ts +460 -453
  60. package/dist/esm/bcs/index.js +4 -4
  61. package/dist/esm/bcs/index.js.map +1 -1
  62. package/dist/esm/client/client.d.ts +38 -16
  63. package/dist/esm/client/client.js +143 -63
  64. package/dist/esm/client/client.js.map +2 -2
  65. package/dist/esm/client/http-transport.d.ts +2 -0
  66. package/dist/esm/client/http-transport.js +7 -0
  67. package/dist/esm/client/http-transport.js.map +2 -2
  68. package/dist/esm/client/rpc-websocket-client.d.ts +2 -1
  69. package/dist/esm/client/rpc-websocket-client.js +7 -2
  70. package/dist/esm/client/rpc-websocket-client.js.map +2 -2
  71. package/dist/esm/client/types/generated.d.ts +1 -0
  72. package/dist/esm/client/types/params.d.ts +56 -0
  73. package/dist/esm/experimental/cache.d.ts +11 -0
  74. package/dist/esm/experimental/cache.js +59 -0
  75. package/dist/esm/experimental/cache.js.map +7 -0
  76. package/dist/esm/experimental/client.d.ts +4 -2
  77. package/dist/esm/experimental/client.js +4 -2
  78. package/dist/esm/experimental/client.js.map +2 -2
  79. package/dist/esm/experimental/core.d.ts +10 -2
  80. package/dist/esm/experimental/core.js +60 -2
  81. package/dist/esm/experimental/core.js.map +2 -2
  82. package/dist/esm/experimental/index.d.ts +5 -0
  83. package/dist/esm/experimental/index.js +9 -0
  84. package/dist/esm/experimental/index.js.map +7 -0
  85. package/dist/esm/experimental/transports/jsonRPC.d.ts +19 -5
  86. package/dist/esm/experimental/transports/jsonRPC.js +270 -12
  87. package/dist/esm/experimental/transports/jsonRPC.js.map +2 -2
  88. package/dist/esm/experimental/types.d.ts +84 -41
  89. package/dist/esm/keypairs/secp256k1/keypair.js +1 -1
  90. package/dist/esm/keypairs/secp256k1/keypair.js.map +2 -2
  91. package/dist/esm/keypairs/secp256r1/keypair.js +1 -1
  92. package/dist/esm/keypairs/secp256r1/keypair.js.map +2 -2
  93. package/dist/esm/multisig/publickey.js +5 -5
  94. package/dist/esm/multisig/publickey.js.map +2 -2
  95. package/dist/esm/multisig/signer.js +2 -2
  96. package/dist/esm/multisig/signer.js.map +2 -2
  97. package/dist/esm/transactions/intents/CoinWithBalance.d.ts +2 -2
  98. package/dist/esm/transactions/intents/CoinWithBalance.js +6 -1
  99. package/dist/esm/transactions/intents/CoinWithBalance.js.map +2 -2
  100. package/dist/esm/transactions/plugins/utils.js +2 -2
  101. package/dist/esm/transactions/plugins/utils.js.map +2 -2
  102. package/dist/esm/version.d.ts +2 -2
  103. package/dist/esm/version.js +2 -2
  104. package/dist/esm/version.js.map +1 -1
  105. package/dist/tsconfig.esm.tsbuildinfo +1 -1
  106. package/dist/tsconfig.tsbuildinfo +1 -1
  107. package/experimental/package.json +6 -0
  108. package/package.json +7 -2
  109. package/src/bcs/bcs.ts +3 -3
  110. package/src/bcs/index.ts +3 -3
  111. package/src/client/client.ts +119 -26
  112. package/src/client/http-transport.ts +10 -0
  113. package/src/client/rpc-websocket-client.ts +8 -1
  114. package/src/client/types/generated.ts +1 -0
  115. package/src/client/types/params.ts +68 -6
  116. package/src/experimental/cache.ts +64 -0
  117. package/src/experimental/client.ts +4 -2
  118. package/src/experimental/core.ts +89 -2
  119. package/src/experimental/index.ts +20 -0
  120. package/src/experimental/transports/jsonRPC.ts +319 -9
  121. package/src/experimental/types.ts +92 -48
  122. package/src/keypairs/secp256k1/keypair.ts +1 -1
  123. package/src/keypairs/secp256r1/keypair.ts +1 -1
  124. package/src/multisig/publickey.ts +5 -5
  125. package/src/multisig/signer.ts +2 -2
  126. package/src/transactions/__tests__/bcs.test.ts +2 -2
  127. package/src/transactions/intents/CoinWithBalance.ts +11 -3
  128. package/src/transactions/plugins/utils.ts +2 -2
  129. 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: bigint;
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: bigint;
34
+ balance: string;
35
35
  };
36
36
  }>;
37
37
  getAllBalances(options: Experimental_SuiClientTypes.GetAllBalancesOptions): Promise<{
38
38
  balances: {
39
39
  coinType: string;
40
- balance: bigint;
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: never;
54
+ effects: Experimental_SuiClientTypes.TransactionEffects;
55
55
  signatures: never[];
56
56
  bcs: Uint8Array<ArrayBufferLike>;
57
57
  };
58
58
  }>;
59
59
  getReferenceGasPrice(): Promise<{
60
- referenceGasPrice: bigint;
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: BigInt(coin.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: BigInt(balance.totalBalance)
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: BigInt(balance.totalBalance)
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
- showEffects: true,
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
- // TODO: Effects aren't returned as bcs from dryRun, once we define structured effects we can return those instead
151
- effects: result.effects,
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
- ConsensusV2Owner: {
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: new Uint8Array(transaction.rawEffects),
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;AAOpB,SAAS,aAAa;AACtB,SAAS,mBAAmB;AAC5B,SAAS,+BAA+B;AACxC,SAAS,mBAAmB;AAGrB,MAAM,yBAAyB,wBAAwB;AAAA,EAG7D,YAAY,eAA0B;AACrC,UAAM,EAAE,SAAS,cAAc,QAAQ,CAAC;AAHzC;AAIC,uBAAK,gBAAiB;AAAA,EACvB;AAAA,EAEA,MAAM,WAAW,SAAwD;AACxE,UAAM,UAAU,MAAM,QAAQ,WAAW,EAAE;AAC3C,UAAM,UAAqE,CAAC;AAE5E,eAAWA,UAAS,SAAS;AAC5B,YAAM,UAAU,MAAM,mBAAK,gBAAe,gBAAgB;AAAA,QACzD,KAAKA;AAAA,QACL,SAAS;AAAA,UACR,WAAW;AAAA,UACX,UAAU;AAAA,QACX;AAAA,MACD,CAAC;AAED,iBAAW,CAAC,KAAK,MAAM,KAAK,QAAQ,QAAQ,GAAG;AAC9C,YAAI,OAAO,OAAO;AACjB,kBAAQ,KAAK,YAAY,aAAa,OAAO,OAAOA,OAAM,GAAG,CAAC,CAAC;AAAA,QAChE,OAAO;AACN,kBAAQ,KAAK,YAAY,OAAO,IAAK,CAAC;AAAA,QACvC;AAAA,MACD;AAAA,IACD;AAEA,WAAO;AAAA,MACN,SAAS;AAAA,IACV;AAAA,EACD;AAAA,EACA,MAAM,gBAAgB,SAA6D;AAClF,UAAM,UAAU,MAAM,mBAAK,gBAAe,gBAAgB;AAAA,MACzD,OAAO,QAAQ;AAAA,MACf,OAAO,QAAQ;AAAA,MACf,QAAQ,QAAQ;AAAA,IACjB,CAAC;AAED,WAAO;AAAA,MACN,SAAS,QAAQ,KAAK,IAAI,CAAC,WAAW;AACrC,YAAI,OAAO,OAAO;AACjB,gBAAM,YAAY,aAAa,OAAO,KAAK;AAAA,QAC5C;AAEA,eAAO,YAAY,OAAO,IAAK;AAAA,MAChC,CAAC;AAAA,MACD,aAAa,QAAQ;AAAA,MACrB,QAAQ,QAAQ,cAAc;AAAA,IAC/B;AAAA,EACD;AAAA,EAEA,MAAM,SAAS,SAAsD;AACpE,UAAM,QAAQ,MAAM,mBAAK,gBAAe,SAAS;AAAA,MAChD,OAAO,QAAQ;AAAA,MACf,UAAU,QAAQ;AAAA,IACnB,CAAC;AAED,WAAO;AAAA,MACN,SAAS,MAAM,KAAK,IAAI,CAAC,SAAS;AACjC,eAAO;AAAA,UACN,IAAI,KAAK;AAAA,UACT,SAAS,KAAK;AAAA,UACd,QAAQ,KAAK;AAAA,UACb,SAAS,OAAO,KAAK,OAAO;AAAA,UAC5B,MAAM,mBAAmB,KAAK,QAAQ;AAAA,UACtC,SAAS,KAAK,UAAU;AAAA,YACvB,IAAI,KAAK;AAAA,YACT,SAAS;AAAA,cACR,OAAO,KAAK;AAAA,YACb;AAAA,UACD,CAAC,EAAE,QAAQ;AAAA,UACX,OAAO;AAAA,YACN,OAAO;AAAA,YACP,aAAa,QAAQ;AAAA,UACtB;AAAA,QACD;AAAA,MACD,CAAC;AAAA,MACD,aAAa,MAAM;AAAA,MACnB,QAAQ,MAAM,cAAc;AAAA,IAC7B;AAAA,EACD;AAAA,EAEA,MAAM,WAAW,SAAwD;AACxE,UAAM,UAAU,MAAM,mBAAK,gBAAe,WAAW;AAAA,MACpD,OAAO,QAAQ;AAAA,MACf,UAAU,QAAQ;AAAA,IACnB,CAAC;AAED,WAAO;AAAA,MACN,SAAS;AAAA,QACR,UAAU,QAAQ;AAAA,QAClB,SAAS,OAAO,QAAQ,YAAY;AAAA,MACrC;AAAA,IACD;AAAA,EACD;AAAA,EACA,MAAM,eAAe,SAA4D;AAChF,UAAM,WAAW,MAAM,mBAAK,gBAAe,eAAe;AAAA,MACzD,OAAO,QAAQ;AAAA,IAChB,CAAC;AAED,WAAO;AAAA,MACN,UAAU,SAAS,IAAI,CAAC,aAAa;AAAA,QACpC,UAAU,QAAQ;AAAA,QAClB,SAAS,OAAO,QAAQ,YAAY;AAAA,MACrC,EAAE;AAAA,MACF,aAAa;AAAA,MACb,QAAQ;AAAA,IACT;AAAA,EACD;AAAA,EACA,MAAM,eAAe,SAA4D;AAChF,UAAM,cAAc,MAAM,mBAAK,gBAAe,oBAAoB;AAAA,MACjE,QAAQ,QAAQ;AAAA,MAChB,SAAS;AAAA,QACR,cAAc;AAAA,QACd,mBAAmB;AAAA,QACnB,gBAAgB;AAAA,QAChB,YAAY;AAAA,MACb;AAAA,IACD,CAAC;AAED,WAAO;AAAA,MACN,aAAa,iBAAiB,WAAW;AAAA,IAC1C;AAAA,EACD;AAAA,EACA,MAAM,mBAAmB,SAAgE;AACxF,UAAM,cAAc,MAAM,mBAAK,gBAAe,wBAAwB;AAAA,MACrE,kBAAkB,QAAQ;AAAA,MAC1B,WAAW,QAAQ;AAAA,MACnB,SAAS;AAAA,QACR,aAAa;AAAA,QACb,YAAY;AAAA,MACb;AAAA,IACD,CAAC;AAED,WAAO;AAAA,MACN,aAAa,iBAAiB,WAAW;AAAA,IAC1C;AAAA,EACD;AAAA,EACA,MAAM,kBAAkB,SAA+D;AACtF,UAAM,KAAK,YAAY,KAAK,QAAQ,WAAW;AAC/C,UAAM,SAAS,MAAM,mBAAK,gBAAe,uBAAuB;AAAA,MAC/D,kBAAkB,QAAQ;AAAA,IAC3B,CAAC;AAED,WAAO;AAAA,MACN,aAAa;AAAA,QACZ,QAAQ,MAAM,GAAG,UAAU;AAAA;AAAA,QAE3B,SAAS,OAAO;AAAA,QAChB,YAAY,CAAC;AAAA,QACb,KAAK,QAAQ;AAAA,MACd;AAAA,IACD;AAAA,EACD;AAAA,EACA,MAAM,uBAAuB;AAC5B,UAAM,oBAAoB,MAAM,mBAAK,gBAAe,qBAAqB;AACzE,WAAO;AAAA,MACN;AAAA,IACD;AAAA,EACD;AACD;AAlKC;AAoKD,SAAS,YAAY,QAAmE;AACvF,SAAO;AAAA,IACN,IAAI,OAAO;AAAA,IACX,SAAS,OAAO;AAAA,IAChB,QAAQ,OAAO;AAAA,IACf,MAAM,OAAO;AAAA,IACb,SACC,OAAO,KAAK,aAAa,eAAe,WAAW,OAAO,IAAI,QAAQ,IAAI,IAAI,WAAW;AAAA,IAC1F,OAAO,WAAW,OAAO,KAAM;AAAA,EAChC;AACD;AAEA,SAAS,WAAW,OAA6D;AAChF,MAAI,UAAU,aAAa;AAC1B,WAAO;AAAA,MACN,OAAO;AAAA,MACP,WAAW;AAAA,IACZ;AAAA,EACD;AAEA,MAAI,iBAAiB,OAAO;AAC3B,WAAO;AAAA,MACN,OAAO;AAAA,MACP,kBAAkB;AAAA,QACjB,eAAe;AAAA,UACd,OAAO;AAAA,UACP,aAAa,MAAM,YAAY,cAAc;AAAA,QAC9C;AAAA,QACA,cAAc,MAAM,YAAY;AAAA,MACjC;AAAA,IACD;AAAA,EACD;AAEA,MAAI,kBAAkB,OAAO;AAC5B,WAAO;AAAA,MACN,OAAO;AAAA,MACP,cAAc,MAAM;AAAA,IACrB;AAAA,EACD;AAEA,MAAI,iBAAiB,OAAO;AAC3B,WAAO;AAAA,MACN,OAAO;AAAA,MACP,aAAa,MAAM;AAAA,IACpB;AAAA,EACD;AAEA,MAAI,YAAY,OAAO;AACtB,WAAO;AAAA,MACN,OAAO;AAAA,MACP,QAAQ;AAAA,QACP,sBAAsB,MAAM,OAAO;AAAA,MACpC;AAAA,IACD;AAAA,EACD;AAEA,QAAM,IAAI,MAAM,uBAAuB,KAAK,UAAU,KAAK,CAAC,EAAE;AAC/D;AAEA,SAAS,iBACR,aACkD;AAClD,QAAM,WAAW,IAAI,iBAAiB,MAAM,WAAW,YAAY,cAAe,CAAC,EAAE,CAAC;AAEtF,SAAO;AAAA,IACN,QAAQ,YAAY;AAAA,IACpB,SAAS,IAAI,WAAW,YAAY,UAAW;AAAA,IAC/C,KAAK,IAAI,gBAAgB,UAAU,SAAS,cAAc,KAAK,EAAE,QAAQ;AAAA,IACzE,YAAY,SAAS;AAAA,EACtB;AACD;AAEA,MAAM,UAAU,IAAI,OAAO,WAAW;AAAA,EACrC,OAAO,IAAI,IAAI;AAChB,CAAC;AAED,MAAM,OAAO,IAAI,OAAO,QAAQ;AAAA,EAC/B,IAAI,IAAI;AAAA,EACR,SAAS;AACV,CAAC;",
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
  }