@mysten/sui 1.26.1 → 1.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. package/CHANGELOG.md +7 -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/plugins/utils.js +2 -2
  48. package/dist/cjs/transactions/plugins/utils.js.map +2 -2
  49. package/dist/cjs/version.d.ts +1 -1
  50. package/dist/cjs/version.js +1 -1
  51. package/dist/cjs/version.js.map +1 -1
  52. package/dist/esm/bcs/bcs.d.ts +3 -2
  53. package/dist/esm/bcs/bcs.js +3 -3
  54. package/dist/esm/bcs/bcs.js.map +2 -2
  55. package/dist/esm/bcs/effects.d.ts +18 -12
  56. package/dist/esm/bcs/index.d.ts +460 -453
  57. package/dist/esm/bcs/index.js +4 -4
  58. package/dist/esm/bcs/index.js.map +1 -1
  59. package/dist/esm/client/client.d.ts +38 -16
  60. package/dist/esm/client/client.js +143 -63
  61. package/dist/esm/client/client.js.map +2 -2
  62. package/dist/esm/client/http-transport.d.ts +2 -0
  63. package/dist/esm/client/http-transport.js +7 -0
  64. package/dist/esm/client/http-transport.js.map +2 -2
  65. package/dist/esm/client/rpc-websocket-client.d.ts +2 -1
  66. package/dist/esm/client/rpc-websocket-client.js +7 -2
  67. package/dist/esm/client/rpc-websocket-client.js.map +2 -2
  68. package/dist/esm/client/types/generated.d.ts +1 -0
  69. package/dist/esm/client/types/params.d.ts +56 -0
  70. package/dist/esm/experimental/cache.d.ts +11 -0
  71. package/dist/esm/experimental/cache.js +59 -0
  72. package/dist/esm/experimental/cache.js.map +7 -0
  73. package/dist/esm/experimental/client.d.ts +4 -2
  74. package/dist/esm/experimental/client.js +4 -2
  75. package/dist/esm/experimental/client.js.map +2 -2
  76. package/dist/esm/experimental/core.d.ts +10 -2
  77. package/dist/esm/experimental/core.js +60 -2
  78. package/dist/esm/experimental/core.js.map +2 -2
  79. package/dist/esm/experimental/index.d.ts +5 -0
  80. package/dist/esm/experimental/index.js +9 -0
  81. package/dist/esm/experimental/index.js.map +7 -0
  82. package/dist/esm/experimental/transports/jsonRPC.d.ts +19 -5
  83. package/dist/esm/experimental/transports/jsonRPC.js +270 -12
  84. package/dist/esm/experimental/transports/jsonRPC.js.map +2 -2
  85. package/dist/esm/experimental/types.d.ts +84 -41
  86. package/dist/esm/keypairs/secp256k1/keypair.js +1 -1
  87. package/dist/esm/keypairs/secp256k1/keypair.js.map +2 -2
  88. package/dist/esm/keypairs/secp256r1/keypair.js +1 -1
  89. package/dist/esm/keypairs/secp256r1/keypair.js.map +2 -2
  90. package/dist/esm/multisig/publickey.js +5 -5
  91. package/dist/esm/multisig/publickey.js.map +2 -2
  92. package/dist/esm/multisig/signer.js +2 -2
  93. package/dist/esm/multisig/signer.js.map +2 -2
  94. package/dist/esm/transactions/plugins/utils.js +2 -2
  95. package/dist/esm/transactions/plugins/utils.js.map +2 -2
  96. package/dist/esm/version.d.ts +1 -1
  97. package/dist/esm/version.js +1 -1
  98. package/dist/esm/version.js.map +1 -1
  99. package/dist/tsconfig.esm.tsbuildinfo +1 -1
  100. package/dist/tsconfig.tsbuildinfo +1 -1
  101. package/experimental/package.json +6 -0
  102. package/package.json +7 -2
  103. package/src/bcs/bcs.ts +3 -3
  104. package/src/bcs/index.ts +3 -3
  105. package/src/client/client.ts +119 -26
  106. package/src/client/http-transport.ts +10 -0
  107. package/src/client/rpc-websocket-client.ts +8 -1
  108. package/src/client/types/generated.ts +1 -0
  109. package/src/client/types/params.ts +68 -6
  110. package/src/experimental/cache.ts +64 -0
  111. package/src/experimental/client.ts +4 -2
  112. package/src/experimental/core.ts +89 -2
  113. package/src/experimental/index.ts +20 -0
  114. package/src/experimental/transports/jsonRPC.ts +319 -9
  115. package/src/experimental/types.ts +92 -48
  116. package/src/keypairs/secp256k1/keypair.ts +1 -1
  117. package/src/keypairs/secp256r1/keypair.ts +1 -1
  118. package/src/multisig/publickey.ts +5 -5
  119. package/src/multisig/signer.ts +2 -2
  120. package/src/transactions/__tests__/bcs.test.ts +2 -2
  121. package/src/transactions/plugins/utils.ts +2 -2
  122. package/src/version.ts +1 -1
@@ -33,7 +33,7 @@ const SUI_CLIENT_BRAND = Symbol.for("@mysten/SuiClient");
33
33
  function isSuiClient(client) {
34
34
  return typeof client === "object" && client !== null && client[SUI_CLIENT_BRAND] === true;
35
35
  }
36
- class SuiClient extends import_client.Experimental_SuiClient {
36
+ class SuiClient extends import_client.Experimental_BaseClient {
37
37
  /**
38
38
  * Establish a connection to a Sui RPC endpoint
39
39
  *
@@ -42,15 +42,17 @@ class SuiClient extends import_client.Experimental_SuiClient {
42
42
  constructor(options) {
43
43
  super({ network: options.network ?? "unknown" });
44
44
  this.core = new import_jsonRPC.JSONRpcTransport(this);
45
+ this.jsonRpc = this;
45
46
  this.transport = options.transport ?? new import_http_transport.SuiHTTPTransport({ url: options.url });
46
47
  }
47
48
  get [SUI_CLIENT_BRAND]() {
48
49
  return true;
49
50
  }
50
- async getRpcApiVersion() {
51
+ async getRpcApiVersion({ signal } = {}) {
51
52
  const resp = await this.transport.request({
52
53
  method: "rpc.discover",
53
- params: []
54
+ params: [],
55
+ signal
54
56
  });
55
57
  return resp.info.version;
56
58
  }
@@ -63,7 +65,8 @@ class SuiClient extends import_client.Experimental_SuiClient {
63
65
  }
64
66
  return await this.transport.request({
65
67
  method: "suix_getCoins",
66
- params: [input.owner, input.coinType, input.cursor, input.limit]
68
+ params: [input.owner, input.coinType, input.cursor, input.limit],
69
+ signal: input.signal
67
70
  });
68
71
  }
69
72
  /**
@@ -75,7 +78,8 @@ class SuiClient extends import_client.Experimental_SuiClient {
75
78
  }
76
79
  return await this.transport.request({
77
80
  method: "suix_getAllCoins",
78
- params: [input.owner, input.cursor, input.limit]
81
+ params: [input.owner, input.cursor, input.limit],
82
+ signal: input.signal
79
83
  });
80
84
  }
81
85
  /**
@@ -87,7 +91,8 @@ class SuiClient extends import_client.Experimental_SuiClient {
87
91
  }
88
92
  return await this.transport.request({
89
93
  method: "suix_getBalance",
90
- params: [input.owner, input.coinType]
94
+ params: [input.owner, input.coinType],
95
+ signal: input.signal
91
96
  });
92
97
  }
93
98
  /**
@@ -97,7 +102,11 @@ class SuiClient extends import_client.Experimental_SuiClient {
97
102
  if (!input.owner || !(0, import_sui_types.isValidSuiAddress)((0, import_sui_types.normalizeSuiAddress)(input.owner))) {
98
103
  throw new Error("Invalid Sui address");
99
104
  }
100
- return await this.transport.request({ method: "suix_getAllBalances", params: [input.owner] });
105
+ return await this.transport.request({
106
+ method: "suix_getAllBalances",
107
+ params: [input.owner],
108
+ signal: input.signal
109
+ });
101
110
  }
102
111
  /**
103
112
  * Fetch CoinMetadata for a given coin type
@@ -105,7 +114,8 @@ class SuiClient extends import_client.Experimental_SuiClient {
105
114
  async getCoinMetadata(input) {
106
115
  return await this.transport.request({
107
116
  method: "suix_getCoinMetadata",
108
- params: [input.coinType]
117
+ params: [input.coinType],
118
+ signal: input.signal
109
119
  });
110
120
  }
111
121
  /**
@@ -114,7 +124,8 @@ class SuiClient extends import_client.Experimental_SuiClient {
114
124
  async getTotalSupply(input) {
115
125
  return await this.transport.request({
116
126
  method: "suix_getTotalSupply",
117
- params: [input.coinType]
127
+ params: [input.coinType],
128
+ signal: input.signal
118
129
  });
119
130
  }
120
131
  /**
@@ -122,8 +133,8 @@ class SuiClient extends import_client.Experimental_SuiClient {
122
133
  * @param method the method to be invoked
123
134
  * @param args the arguments to be passed to the RPC request
124
135
  */
125
- async call(method, params) {
126
- return await this.transport.request({ method, params });
136
+ async call(method, params, { signal } = {}) {
137
+ return await this.transport.request({ method, params, signal });
127
138
  }
128
139
  /**
129
140
  * Get Move function argument types like read, write and full access
@@ -131,7 +142,8 @@ class SuiClient extends import_client.Experimental_SuiClient {
131
142
  async getMoveFunctionArgTypes(input) {
132
143
  return await this.transport.request({
133
144
  method: "sui_getMoveFunctionArgTypes",
134
- params: [input.package, input.module, input.function]
145
+ params: [input.package, input.module, input.function],
146
+ signal: input.signal
135
147
  });
136
148
  }
137
149
  /**
@@ -141,7 +153,8 @@ class SuiClient extends import_client.Experimental_SuiClient {
141
153
  async getNormalizedMoveModulesByPackage(input) {
142
154
  return await this.transport.request({
143
155
  method: "sui_getNormalizedMoveModulesByPackage",
144
- params: [input.package]
156
+ params: [input.package],
157
+ signal: input.signal
145
158
  });
146
159
  }
147
160
  /**
@@ -150,7 +163,8 @@ class SuiClient extends import_client.Experimental_SuiClient {
150
163
  async getNormalizedMoveModule(input) {
151
164
  return await this.transport.request({
152
165
  method: "sui_getNormalizedMoveModule",
153
- params: [input.package, input.module]
166
+ params: [input.package, input.module],
167
+ signal: input.signal
154
168
  });
155
169
  }
156
170
  /**
@@ -159,7 +173,8 @@ class SuiClient extends import_client.Experimental_SuiClient {
159
173
  async getNormalizedMoveFunction(input) {
160
174
  return await this.transport.request({
161
175
  method: "sui_getNormalizedMoveFunction",
162
- params: [input.package, input.module, input.function]
176
+ params: [input.package, input.module, input.function],
177
+ signal: input.signal
163
178
  });
164
179
  }
165
180
  /**
@@ -168,7 +183,8 @@ class SuiClient extends import_client.Experimental_SuiClient {
168
183
  async getNormalizedMoveStruct(input) {
169
184
  return await this.transport.request({
170
185
  method: "sui_getNormalizedMoveStruct",
171
- params: [input.package, input.module, input.struct]
186
+ params: [input.package, input.module, input.struct],
187
+ signal: input.signal
172
188
  });
173
189
  }
174
190
  /**
@@ -188,7 +204,8 @@ class SuiClient extends import_client.Experimental_SuiClient {
188
204
  },
189
205
  input.cursor,
190
206
  input.limit
191
- ]
207
+ ],
208
+ signal: input.signal
192
209
  });
193
210
  }
194
211
  /**
@@ -200,13 +217,15 @@ class SuiClient extends import_client.Experimental_SuiClient {
200
217
  }
201
218
  return await this.transport.request({
202
219
  method: "sui_getObject",
203
- params: [input.id, input.options]
220
+ params: [input.id, input.options],
221
+ signal: input.signal
204
222
  });
205
223
  }
206
224
  async tryGetPastObject(input) {
207
225
  return await this.transport.request({
208
226
  method: "sui_tryGetPastObject",
209
- params: [input.id, input.version, input.options]
227
+ params: [input.id, input.version, input.options],
228
+ signal: input.signal
210
229
  });
211
230
  }
212
231
  /**
@@ -224,7 +243,8 @@ class SuiClient extends import_client.Experimental_SuiClient {
224
243
  }
225
244
  return await this.transport.request({
226
245
  method: "sui_multiGetObjects",
227
- params: [input.ids, input.options]
246
+ params: [input.ids, input.options],
247
+ signal: input.signal
228
248
  });
229
249
  }
230
250
  /**
@@ -241,7 +261,8 @@ class SuiClient extends import_client.Experimental_SuiClient {
241
261
  input.cursor,
242
262
  input.limit,
243
263
  (input.order || "descending") === "descending"
244
- ]
264
+ ],
265
+ signal: input.signal
245
266
  });
246
267
  }
247
268
  async getTransactionBlock(input) {
@@ -250,7 +271,8 @@ class SuiClient extends import_client.Experimental_SuiClient {
250
271
  }
251
272
  return await this.transport.request({
252
273
  method: "sui_getTransactionBlock",
253
- params: [input.digest, input.options]
274
+ params: [input.digest, input.options],
275
+ signal: input.signal
254
276
  });
255
277
  }
256
278
  async multiGetTransactionBlocks(input) {
@@ -265,14 +287,16 @@ class SuiClient extends import_client.Experimental_SuiClient {
265
287
  }
266
288
  return await this.transport.request({
267
289
  method: "sui_multiGetTransactionBlocks",
268
- params: [input.digests, input.options]
290
+ params: [input.digests, input.options],
291
+ signal: input.signal
269
292
  });
270
293
  }
271
294
  async executeTransactionBlock({
272
295
  transactionBlock,
273
296
  signature,
274
297
  options,
275
- requestType
298
+ requestType,
299
+ signal
276
300
  }) {
277
301
  const result = await this.transport.request({
278
302
  method: "sui_executeTransactionBlock",
@@ -280,7 +304,8 @@ class SuiClient extends import_client.Experimental_SuiClient {
280
304
  typeof transactionBlock === "string" ? transactionBlock : (0, import_bcs.toBase64)(transactionBlock),
281
305
  Array.isArray(signature) ? signature : [signature],
282
306
  options
283
- ]
307
+ ],
308
+ signal
284
309
  });
285
310
  if (requestType === "WaitForLocalExecution") {
286
311
  try {
@@ -314,20 +339,22 @@ class SuiClient extends import_client.Experimental_SuiClient {
314
339
  /**
315
340
  * Get total number of transactions
316
341
  */
317
- async getTotalTransactionBlocks() {
342
+ async getTotalTransactionBlocks({ signal } = {}) {
318
343
  const resp = await this.transport.request({
319
344
  method: "sui_getTotalTransactionBlocks",
320
- params: []
345
+ params: [],
346
+ signal
321
347
  });
322
348
  return BigInt(resp);
323
349
  }
324
350
  /**
325
351
  * Getting the reference gas price for the network
326
352
  */
327
- async getReferenceGasPrice() {
353
+ async getReferenceGasPrice({ signal } = {}) {
328
354
  const resp = await this.transport.request({
329
355
  method: "suix_getReferenceGasPrice",
330
- params: []
356
+ params: [],
357
+ signal
331
358
  });
332
359
  return BigInt(resp);
333
360
  }
@@ -338,7 +365,11 @@ class SuiClient extends import_client.Experimental_SuiClient {
338
365
  if (!input.owner || !(0, import_sui_types.isValidSuiAddress)((0, import_sui_types.normalizeSuiAddress)(input.owner))) {
339
366
  throw new Error("Invalid Sui address");
340
367
  }
341
- return await this.transport.request({ method: "suix_getStakes", params: [input.owner] });
368
+ return await this.transport.request({
369
+ method: "suix_getStakes",
370
+ params: [input.owner],
371
+ signal: input.signal
372
+ });
342
373
  }
343
374
  /**
344
375
  * Return the delegated stakes queried by id.
@@ -351,14 +382,21 @@ class SuiClient extends import_client.Experimental_SuiClient {
351
382
  });
352
383
  return await this.transport.request({
353
384
  method: "suix_getStakesByIds",
354
- params: [input.stakedSuiIds]
385
+ params: [input.stakedSuiIds],
386
+ signal: input.signal
355
387
  });
356
388
  }
357
389
  /**
358
390
  * Return the latest system state content.
359
391
  */
360
- async getLatestSuiSystemState() {
361
- return await this.transport.request({ method: "suix_getLatestSuiSystemState", params: [] });
392
+ async getLatestSuiSystemState({
393
+ signal
394
+ } = {}) {
395
+ return await this.transport.request({
396
+ method: "suix_getLatestSuiSystemState",
397
+ params: [],
398
+ signal
399
+ });
362
400
  }
363
401
  /**
364
402
  * Get events for a given query criteria
@@ -371,7 +409,8 @@ class SuiClient extends import_client.Experimental_SuiClient {
371
409
  input.cursor,
372
410
  input.limit,
373
411
  (input.order || "descending") === "descending"
374
- ]
412
+ ],
413
+ signal: input.signal
375
414
  });
376
415
  }
377
416
  /**
@@ -384,7 +423,8 @@ class SuiClient extends import_client.Experimental_SuiClient {
384
423
  method: "suix_subscribeEvent",
385
424
  unsubscribe: "suix_unsubscribeEvent",
386
425
  params: [input.filter],
387
- onMessage: input.onMessage
426
+ onMessage: input.onMessage,
427
+ signal: input.signal
388
428
  });
389
429
  }
390
430
  /**
@@ -395,7 +435,8 @@ class SuiClient extends import_client.Experimental_SuiClient {
395
435
  method: "suix_subscribeTransaction",
396
436
  unsubscribe: "suix_unsubscribeTransaction",
397
437
  params: [input.filter],
398
- onMessage: input.onMessage
438
+ onMessage: input.onMessage,
439
+ signal: input.signal
399
440
  });
400
441
  }
401
442
  /**
@@ -420,9 +461,11 @@ class SuiClient extends import_client.Experimental_SuiClient {
420
461
  } else {
421
462
  throw new Error("Unknown transaction block format.");
422
463
  }
464
+ input.signal?.throwIfAborted();
423
465
  return await this.transport.request({
424
466
  method: "sui_devInspectTransactionBlock",
425
- params: [input.sender, devInspectTxBytes, input.gasPrice?.toString(), input.epoch]
467
+ params: [input.sender, devInspectTxBytes, input.gasPrice?.toString(), input.epoch],
468
+ signal: input.signal
426
469
  });
427
470
  }
428
471
  /**
@@ -445,7 +488,8 @@ class SuiClient extends import_client.Experimental_SuiClient {
445
488
  }
446
489
  return await this.transport.request({
447
490
  method: "suix_getDynamicFields",
448
- params: [input.parentId, input.cursor, input.limit]
491
+ params: [input.parentId, input.cursor, input.limit],
492
+ signal: input.signal
449
493
  });
450
494
  }
451
495
  /**
@@ -454,16 +498,20 @@ class SuiClient extends import_client.Experimental_SuiClient {
454
498
  async getDynamicFieldObject(input) {
455
499
  return await this.transport.request({
456
500
  method: "suix_getDynamicFieldObject",
457
- params: [input.parentId, input.name]
501
+ params: [input.parentId, input.name],
502
+ signal: input.signal
458
503
  });
459
504
  }
460
505
  /**
461
506
  * Get the sequence number of the latest checkpoint that has been executed
462
507
  */
463
- async getLatestCheckpointSequenceNumber() {
508
+ async getLatestCheckpointSequenceNumber({
509
+ signal
510
+ } = {}) {
464
511
  const resp = await this.transport.request({
465
512
  method: "sui_getLatestCheckpointSequenceNumber",
466
- params: []
513
+ params: [],
514
+ signal
467
515
  });
468
516
  return String(resp);
469
517
  }
@@ -471,7 +519,11 @@ class SuiClient extends import_client.Experimental_SuiClient {
471
519
  * Returns information about a given checkpoint
472
520
  */
473
521
  async getCheckpoint(input) {
474
- return await this.transport.request({ method: "sui_getCheckpoint", params: [input.id] });
522
+ return await this.transport.request({
523
+ method: "sui_getCheckpoint",
524
+ params: [input.id],
525
+ signal: input.signal
526
+ });
475
527
  }
476
528
  /**
477
529
  * Returns historical checkpoints paginated
@@ -479,7 +531,8 @@ class SuiClient extends import_client.Experimental_SuiClient {
479
531
  async getCheckpoints(input) {
480
532
  return await this.transport.request({
481
533
  method: "sui_getCheckpoints",
482
- params: [input.cursor, input?.limit, input.descendingOrder]
534
+ params: [input.cursor, input?.limit, input.descendingOrder],
535
+ signal: input.signal
483
536
  });
484
537
  }
485
538
  /**
@@ -488,25 +541,36 @@ class SuiClient extends import_client.Experimental_SuiClient {
488
541
  async getCommitteeInfo(input) {
489
542
  return await this.transport.request({
490
543
  method: "suix_getCommitteeInfo",
491
- params: [input?.epoch]
544
+ params: [input?.epoch],
545
+ signal: input?.signal
492
546
  });
493
547
  }
494
- async getNetworkMetrics() {
495
- return await this.transport.request({ method: "suix_getNetworkMetrics", params: [] });
548
+ async getNetworkMetrics({ signal } = {}) {
549
+ return await this.transport.request({
550
+ method: "suix_getNetworkMetrics",
551
+ params: [],
552
+ signal
553
+ });
496
554
  }
497
- async getAddressMetrics() {
498
- return await this.transport.request({ method: "suix_getLatestAddressMetrics", params: [] });
555
+ async getAddressMetrics({ signal } = {}) {
556
+ return await this.transport.request({
557
+ method: "suix_getLatestAddressMetrics",
558
+ params: [],
559
+ signal
560
+ });
499
561
  }
500
562
  async getEpochMetrics(input) {
501
563
  return await this.transport.request({
502
564
  method: "suix_getEpochMetrics",
503
- params: [input?.cursor, input?.limit, input?.descendingOrder]
565
+ params: [input?.cursor, input?.limit, input?.descendingOrder],
566
+ signal: input?.signal
504
567
  });
505
568
  }
506
569
  async getAllEpochAddressMetrics(input) {
507
570
  return await this.transport.request({
508
571
  method: "suix_getAllEpochAddressMetrics",
509
- params: [input?.descendingOrder]
572
+ params: [input?.descendingOrder],
573
+ signal: input?.signal
510
574
  });
511
575
  }
512
576
  /**
@@ -515,37 +579,51 @@ class SuiClient extends import_client.Experimental_SuiClient {
515
579
  async getEpochs(input) {
516
580
  return await this.transport.request({
517
581
  method: "suix_getEpochs",
518
- params: [input?.cursor, input?.limit, input?.descendingOrder]
582
+ params: [input?.cursor, input?.limit, input?.descendingOrder],
583
+ signal: input?.signal
519
584
  });
520
585
  }
521
586
  /**
522
587
  * Returns list of top move calls by usage
523
588
  */
524
- async getMoveCallMetrics() {
525
- return await this.transport.request({ method: "suix_getMoveCallMetrics", params: [] });
589
+ async getMoveCallMetrics({ signal } = {}) {
590
+ return await this.transport.request({
591
+ method: "suix_getMoveCallMetrics",
592
+ params: [],
593
+ signal
594
+ });
526
595
  }
527
596
  /**
528
597
  * Return the committee information for the asked epoch
529
598
  */
530
- async getCurrentEpoch() {
531
- return await this.transport.request({ method: "suix_getCurrentEpoch", params: [] });
599
+ async getCurrentEpoch({ signal } = {}) {
600
+ return await this.transport.request({
601
+ method: "suix_getCurrentEpoch",
602
+ params: [],
603
+ signal
604
+ });
532
605
  }
533
606
  /**
534
607
  * Return the Validators APYs
535
608
  */
536
- async getValidatorsApy() {
537
- return await this.transport.request({ method: "suix_getValidatorsApy", params: [] });
609
+ async getValidatorsApy({ signal } = {}) {
610
+ return await this.transport.request({
611
+ method: "suix_getValidatorsApy",
612
+ params: [],
613
+ signal
614
+ });
538
615
  }
539
616
  // TODO: Migrate this to `sui_getChainIdentifier` once it is widely available.
540
- async getChainIdentifier() {
541
- const checkpoint = await this.getCheckpoint({ id: "0" });
617
+ async getChainIdentifier({ signal } = {}) {
618
+ const checkpoint = await this.getCheckpoint({ id: "0", signal });
542
619
  const bytes = (0, import_bcs.fromBase58)(checkpoint.digest);
543
620
  return (0, import_bcs.toHex)(bytes.slice(0, 4));
544
621
  }
545
622
  async resolveNameServiceAddress(input) {
546
623
  return await this.transport.request({
547
624
  method: "suix_resolveNameServiceAddress",
548
- params: [input.name]
625
+ params: [input.name],
626
+ signal: input.signal
549
627
  });
550
628
  }
551
629
  async resolveNameServiceNames({
@@ -554,7 +632,8 @@ class SuiClient extends import_client.Experimental_SuiClient {
554
632
  }) {
555
633
  const { nextCursor, hasNextPage, data } = await this.transport.request({
556
634
  method: "suix_resolveNameServiceNames",
557
- params: [input.address, input.cursor, input.limit]
635
+ params: [input.address, input.cursor, input.limit],
636
+ signal: input.signal
558
637
  });
559
638
  return {
560
639
  hasNextPage,
@@ -565,7 +644,8 @@ class SuiClient extends import_client.Experimental_SuiClient {
565
644
  async getProtocolConfig(input) {
566
645
  return await this.transport.request({
567
646
  method: "sui_getProtocolConfig",
568
- params: [input?.version]
647
+ params: [input?.version],
648
+ signal: input?.signal
569
649
  });
570
650
  }
571
651
  /**