@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
@@ -1,5 +1,5 @@
1
1
  import { fromBase58, toBase64, toHex } from "@mysten/bcs";
2
- import { Experimental_SuiClient } from "../experimental/client.js";
2
+ import { Experimental_BaseClient } from "../experimental/client.js";
3
3
  import { JSONRpcTransport } from "../experimental/transports/jsonRPC.js";
4
4
  import { isTransaction } from "../transactions/index.js";
5
5
  import {
@@ -15,7 +15,7 @@ const SUI_CLIENT_BRAND = Symbol.for("@mysten/SuiClient");
15
15
  function isSuiClient(client) {
16
16
  return typeof client === "object" && client !== null && client[SUI_CLIENT_BRAND] === true;
17
17
  }
18
- class SuiClient extends Experimental_SuiClient {
18
+ class SuiClient extends Experimental_BaseClient {
19
19
  /**
20
20
  * Establish a connection to a Sui RPC endpoint
21
21
  *
@@ -24,15 +24,17 @@ class SuiClient extends Experimental_SuiClient {
24
24
  constructor(options) {
25
25
  super({ network: options.network ?? "unknown" });
26
26
  this.core = new JSONRpcTransport(this);
27
+ this.jsonRpc = this;
27
28
  this.transport = options.transport ?? new SuiHTTPTransport({ url: options.url });
28
29
  }
29
30
  get [SUI_CLIENT_BRAND]() {
30
31
  return true;
31
32
  }
32
- async getRpcApiVersion() {
33
+ async getRpcApiVersion({ signal } = {}) {
33
34
  const resp = await this.transport.request({
34
35
  method: "rpc.discover",
35
- params: []
36
+ params: [],
37
+ signal
36
38
  });
37
39
  return resp.info.version;
38
40
  }
@@ -45,7 +47,8 @@ class SuiClient extends Experimental_SuiClient {
45
47
  }
46
48
  return await this.transport.request({
47
49
  method: "suix_getCoins",
48
- params: [input.owner, input.coinType, input.cursor, input.limit]
50
+ params: [input.owner, input.coinType, input.cursor, input.limit],
51
+ signal: input.signal
49
52
  });
50
53
  }
51
54
  /**
@@ -57,7 +60,8 @@ class SuiClient extends Experimental_SuiClient {
57
60
  }
58
61
  return await this.transport.request({
59
62
  method: "suix_getAllCoins",
60
- params: [input.owner, input.cursor, input.limit]
63
+ params: [input.owner, input.cursor, input.limit],
64
+ signal: input.signal
61
65
  });
62
66
  }
63
67
  /**
@@ -69,7 +73,8 @@ class SuiClient extends Experimental_SuiClient {
69
73
  }
70
74
  return await this.transport.request({
71
75
  method: "suix_getBalance",
72
- params: [input.owner, input.coinType]
76
+ params: [input.owner, input.coinType],
77
+ signal: input.signal
73
78
  });
74
79
  }
75
80
  /**
@@ -79,7 +84,11 @@ class SuiClient extends Experimental_SuiClient {
79
84
  if (!input.owner || !isValidSuiAddress(normalizeSuiAddress(input.owner))) {
80
85
  throw new Error("Invalid Sui address");
81
86
  }
82
- return await this.transport.request({ method: "suix_getAllBalances", params: [input.owner] });
87
+ return await this.transport.request({
88
+ method: "suix_getAllBalances",
89
+ params: [input.owner],
90
+ signal: input.signal
91
+ });
83
92
  }
84
93
  /**
85
94
  * Fetch CoinMetadata for a given coin type
@@ -87,7 +96,8 @@ class SuiClient extends Experimental_SuiClient {
87
96
  async getCoinMetadata(input) {
88
97
  return await this.transport.request({
89
98
  method: "suix_getCoinMetadata",
90
- params: [input.coinType]
99
+ params: [input.coinType],
100
+ signal: input.signal
91
101
  });
92
102
  }
93
103
  /**
@@ -96,7 +106,8 @@ class SuiClient extends Experimental_SuiClient {
96
106
  async getTotalSupply(input) {
97
107
  return await this.transport.request({
98
108
  method: "suix_getTotalSupply",
99
- params: [input.coinType]
109
+ params: [input.coinType],
110
+ signal: input.signal
100
111
  });
101
112
  }
102
113
  /**
@@ -104,8 +115,8 @@ class SuiClient extends Experimental_SuiClient {
104
115
  * @param method the method to be invoked
105
116
  * @param args the arguments to be passed to the RPC request
106
117
  */
107
- async call(method, params) {
108
- return await this.transport.request({ method, params });
118
+ async call(method, params, { signal } = {}) {
119
+ return await this.transport.request({ method, params, signal });
109
120
  }
110
121
  /**
111
122
  * Get Move function argument types like read, write and full access
@@ -113,7 +124,8 @@ class SuiClient extends Experimental_SuiClient {
113
124
  async getMoveFunctionArgTypes(input) {
114
125
  return await this.transport.request({
115
126
  method: "sui_getMoveFunctionArgTypes",
116
- params: [input.package, input.module, input.function]
127
+ params: [input.package, input.module, input.function],
128
+ signal: input.signal
117
129
  });
118
130
  }
119
131
  /**
@@ -123,7 +135,8 @@ class SuiClient extends Experimental_SuiClient {
123
135
  async getNormalizedMoveModulesByPackage(input) {
124
136
  return await this.transport.request({
125
137
  method: "sui_getNormalizedMoveModulesByPackage",
126
- params: [input.package]
138
+ params: [input.package],
139
+ signal: input.signal
127
140
  });
128
141
  }
129
142
  /**
@@ -132,7 +145,8 @@ class SuiClient extends Experimental_SuiClient {
132
145
  async getNormalizedMoveModule(input) {
133
146
  return await this.transport.request({
134
147
  method: "sui_getNormalizedMoveModule",
135
- params: [input.package, input.module]
148
+ params: [input.package, input.module],
149
+ signal: input.signal
136
150
  });
137
151
  }
138
152
  /**
@@ -141,7 +155,8 @@ class SuiClient extends Experimental_SuiClient {
141
155
  async getNormalizedMoveFunction(input) {
142
156
  return await this.transport.request({
143
157
  method: "sui_getNormalizedMoveFunction",
144
- params: [input.package, input.module, input.function]
158
+ params: [input.package, input.module, input.function],
159
+ signal: input.signal
145
160
  });
146
161
  }
147
162
  /**
@@ -150,7 +165,8 @@ class SuiClient extends Experimental_SuiClient {
150
165
  async getNormalizedMoveStruct(input) {
151
166
  return await this.transport.request({
152
167
  method: "sui_getNormalizedMoveStruct",
153
- params: [input.package, input.module, input.struct]
168
+ params: [input.package, input.module, input.struct],
169
+ signal: input.signal
154
170
  });
155
171
  }
156
172
  /**
@@ -170,7 +186,8 @@ class SuiClient extends Experimental_SuiClient {
170
186
  },
171
187
  input.cursor,
172
188
  input.limit
173
- ]
189
+ ],
190
+ signal: input.signal
174
191
  });
175
192
  }
176
193
  /**
@@ -182,13 +199,15 @@ class SuiClient extends Experimental_SuiClient {
182
199
  }
183
200
  return await this.transport.request({
184
201
  method: "sui_getObject",
185
- params: [input.id, input.options]
202
+ params: [input.id, input.options],
203
+ signal: input.signal
186
204
  });
187
205
  }
188
206
  async tryGetPastObject(input) {
189
207
  return await this.transport.request({
190
208
  method: "sui_tryGetPastObject",
191
- params: [input.id, input.version, input.options]
209
+ params: [input.id, input.version, input.options],
210
+ signal: input.signal
192
211
  });
193
212
  }
194
213
  /**
@@ -206,7 +225,8 @@ class SuiClient extends Experimental_SuiClient {
206
225
  }
207
226
  return await this.transport.request({
208
227
  method: "sui_multiGetObjects",
209
- params: [input.ids, input.options]
228
+ params: [input.ids, input.options],
229
+ signal: input.signal
210
230
  });
211
231
  }
212
232
  /**
@@ -223,7 +243,8 @@ class SuiClient extends Experimental_SuiClient {
223
243
  input.cursor,
224
244
  input.limit,
225
245
  (input.order || "descending") === "descending"
226
- ]
246
+ ],
247
+ signal: input.signal
227
248
  });
228
249
  }
229
250
  async getTransactionBlock(input) {
@@ -232,7 +253,8 @@ class SuiClient extends Experimental_SuiClient {
232
253
  }
233
254
  return await this.transport.request({
234
255
  method: "sui_getTransactionBlock",
235
- params: [input.digest, input.options]
256
+ params: [input.digest, input.options],
257
+ signal: input.signal
236
258
  });
237
259
  }
238
260
  async multiGetTransactionBlocks(input) {
@@ -247,14 +269,16 @@ class SuiClient extends Experimental_SuiClient {
247
269
  }
248
270
  return await this.transport.request({
249
271
  method: "sui_multiGetTransactionBlocks",
250
- params: [input.digests, input.options]
272
+ params: [input.digests, input.options],
273
+ signal: input.signal
251
274
  });
252
275
  }
253
276
  async executeTransactionBlock({
254
277
  transactionBlock,
255
278
  signature,
256
279
  options,
257
- requestType
280
+ requestType,
281
+ signal
258
282
  }) {
259
283
  const result = await this.transport.request({
260
284
  method: "sui_executeTransactionBlock",
@@ -262,7 +286,8 @@ class SuiClient extends Experimental_SuiClient {
262
286
  typeof transactionBlock === "string" ? transactionBlock : toBase64(transactionBlock),
263
287
  Array.isArray(signature) ? signature : [signature],
264
288
  options
265
- ]
289
+ ],
290
+ signal
266
291
  });
267
292
  if (requestType === "WaitForLocalExecution") {
268
293
  try {
@@ -296,20 +321,22 @@ class SuiClient extends Experimental_SuiClient {
296
321
  /**
297
322
  * Get total number of transactions
298
323
  */
299
- async getTotalTransactionBlocks() {
324
+ async getTotalTransactionBlocks({ signal } = {}) {
300
325
  const resp = await this.transport.request({
301
326
  method: "sui_getTotalTransactionBlocks",
302
- params: []
327
+ params: [],
328
+ signal
303
329
  });
304
330
  return BigInt(resp);
305
331
  }
306
332
  /**
307
333
  * Getting the reference gas price for the network
308
334
  */
309
- async getReferenceGasPrice() {
335
+ async getReferenceGasPrice({ signal } = {}) {
310
336
  const resp = await this.transport.request({
311
337
  method: "suix_getReferenceGasPrice",
312
- params: []
338
+ params: [],
339
+ signal
313
340
  });
314
341
  return BigInt(resp);
315
342
  }
@@ -320,7 +347,11 @@ class SuiClient extends Experimental_SuiClient {
320
347
  if (!input.owner || !isValidSuiAddress(normalizeSuiAddress(input.owner))) {
321
348
  throw new Error("Invalid Sui address");
322
349
  }
323
- return await this.transport.request({ method: "suix_getStakes", params: [input.owner] });
350
+ return await this.transport.request({
351
+ method: "suix_getStakes",
352
+ params: [input.owner],
353
+ signal: input.signal
354
+ });
324
355
  }
325
356
  /**
326
357
  * Return the delegated stakes queried by id.
@@ -333,14 +364,21 @@ class SuiClient extends Experimental_SuiClient {
333
364
  });
334
365
  return await this.transport.request({
335
366
  method: "suix_getStakesByIds",
336
- params: [input.stakedSuiIds]
367
+ params: [input.stakedSuiIds],
368
+ signal: input.signal
337
369
  });
338
370
  }
339
371
  /**
340
372
  * Return the latest system state content.
341
373
  */
342
- async getLatestSuiSystemState() {
343
- return await this.transport.request({ method: "suix_getLatestSuiSystemState", params: [] });
374
+ async getLatestSuiSystemState({
375
+ signal
376
+ } = {}) {
377
+ return await this.transport.request({
378
+ method: "suix_getLatestSuiSystemState",
379
+ params: [],
380
+ signal
381
+ });
344
382
  }
345
383
  /**
346
384
  * Get events for a given query criteria
@@ -353,7 +391,8 @@ class SuiClient extends Experimental_SuiClient {
353
391
  input.cursor,
354
392
  input.limit,
355
393
  (input.order || "descending") === "descending"
356
- ]
394
+ ],
395
+ signal: input.signal
357
396
  });
358
397
  }
359
398
  /**
@@ -366,7 +405,8 @@ class SuiClient extends Experimental_SuiClient {
366
405
  method: "suix_subscribeEvent",
367
406
  unsubscribe: "suix_unsubscribeEvent",
368
407
  params: [input.filter],
369
- onMessage: input.onMessage
408
+ onMessage: input.onMessage,
409
+ signal: input.signal
370
410
  });
371
411
  }
372
412
  /**
@@ -377,7 +417,8 @@ class SuiClient extends Experimental_SuiClient {
377
417
  method: "suix_subscribeTransaction",
378
418
  unsubscribe: "suix_unsubscribeTransaction",
379
419
  params: [input.filter],
380
- onMessage: input.onMessage
420
+ onMessage: input.onMessage,
421
+ signal: input.signal
381
422
  });
382
423
  }
383
424
  /**
@@ -402,9 +443,11 @@ class SuiClient extends Experimental_SuiClient {
402
443
  } else {
403
444
  throw new Error("Unknown transaction block format.");
404
445
  }
446
+ input.signal?.throwIfAborted();
405
447
  return await this.transport.request({
406
448
  method: "sui_devInspectTransactionBlock",
407
- params: [input.sender, devInspectTxBytes, input.gasPrice?.toString(), input.epoch]
449
+ params: [input.sender, devInspectTxBytes, input.gasPrice?.toString(), input.epoch],
450
+ signal: input.signal
408
451
  });
409
452
  }
410
453
  /**
@@ -427,7 +470,8 @@ class SuiClient extends Experimental_SuiClient {
427
470
  }
428
471
  return await this.transport.request({
429
472
  method: "suix_getDynamicFields",
430
- params: [input.parentId, input.cursor, input.limit]
473
+ params: [input.parentId, input.cursor, input.limit],
474
+ signal: input.signal
431
475
  });
432
476
  }
433
477
  /**
@@ -436,16 +480,20 @@ class SuiClient extends Experimental_SuiClient {
436
480
  async getDynamicFieldObject(input) {
437
481
  return await this.transport.request({
438
482
  method: "suix_getDynamicFieldObject",
439
- params: [input.parentId, input.name]
483
+ params: [input.parentId, input.name],
484
+ signal: input.signal
440
485
  });
441
486
  }
442
487
  /**
443
488
  * Get the sequence number of the latest checkpoint that has been executed
444
489
  */
445
- async getLatestCheckpointSequenceNumber() {
490
+ async getLatestCheckpointSequenceNumber({
491
+ signal
492
+ } = {}) {
446
493
  const resp = await this.transport.request({
447
494
  method: "sui_getLatestCheckpointSequenceNumber",
448
- params: []
495
+ params: [],
496
+ signal
449
497
  });
450
498
  return String(resp);
451
499
  }
@@ -453,7 +501,11 @@ class SuiClient extends Experimental_SuiClient {
453
501
  * Returns information about a given checkpoint
454
502
  */
455
503
  async getCheckpoint(input) {
456
- return await this.transport.request({ method: "sui_getCheckpoint", params: [input.id] });
504
+ return await this.transport.request({
505
+ method: "sui_getCheckpoint",
506
+ params: [input.id],
507
+ signal: input.signal
508
+ });
457
509
  }
458
510
  /**
459
511
  * Returns historical checkpoints paginated
@@ -461,7 +513,8 @@ class SuiClient extends Experimental_SuiClient {
461
513
  async getCheckpoints(input) {
462
514
  return await this.transport.request({
463
515
  method: "sui_getCheckpoints",
464
- params: [input.cursor, input?.limit, input.descendingOrder]
516
+ params: [input.cursor, input?.limit, input.descendingOrder],
517
+ signal: input.signal
465
518
  });
466
519
  }
467
520
  /**
@@ -470,25 +523,36 @@ class SuiClient extends Experimental_SuiClient {
470
523
  async getCommitteeInfo(input) {
471
524
  return await this.transport.request({
472
525
  method: "suix_getCommitteeInfo",
473
- params: [input?.epoch]
526
+ params: [input?.epoch],
527
+ signal: input?.signal
474
528
  });
475
529
  }
476
- async getNetworkMetrics() {
477
- return await this.transport.request({ method: "suix_getNetworkMetrics", params: [] });
530
+ async getNetworkMetrics({ signal } = {}) {
531
+ return await this.transport.request({
532
+ method: "suix_getNetworkMetrics",
533
+ params: [],
534
+ signal
535
+ });
478
536
  }
479
- async getAddressMetrics() {
480
- return await this.transport.request({ method: "suix_getLatestAddressMetrics", params: [] });
537
+ async getAddressMetrics({ signal } = {}) {
538
+ return await this.transport.request({
539
+ method: "suix_getLatestAddressMetrics",
540
+ params: [],
541
+ signal
542
+ });
481
543
  }
482
544
  async getEpochMetrics(input) {
483
545
  return await this.transport.request({
484
546
  method: "suix_getEpochMetrics",
485
- params: [input?.cursor, input?.limit, input?.descendingOrder]
547
+ params: [input?.cursor, input?.limit, input?.descendingOrder],
548
+ signal: input?.signal
486
549
  });
487
550
  }
488
551
  async getAllEpochAddressMetrics(input) {
489
552
  return await this.transport.request({
490
553
  method: "suix_getAllEpochAddressMetrics",
491
- params: [input?.descendingOrder]
554
+ params: [input?.descendingOrder],
555
+ signal: input?.signal
492
556
  });
493
557
  }
494
558
  /**
@@ -497,37 +561,51 @@ class SuiClient extends Experimental_SuiClient {
497
561
  async getEpochs(input) {
498
562
  return await this.transport.request({
499
563
  method: "suix_getEpochs",
500
- params: [input?.cursor, input?.limit, input?.descendingOrder]
564
+ params: [input?.cursor, input?.limit, input?.descendingOrder],
565
+ signal: input?.signal
501
566
  });
502
567
  }
503
568
  /**
504
569
  * Returns list of top move calls by usage
505
570
  */
506
- async getMoveCallMetrics() {
507
- return await this.transport.request({ method: "suix_getMoveCallMetrics", params: [] });
571
+ async getMoveCallMetrics({ signal } = {}) {
572
+ return await this.transport.request({
573
+ method: "suix_getMoveCallMetrics",
574
+ params: [],
575
+ signal
576
+ });
508
577
  }
509
578
  /**
510
579
  * Return the committee information for the asked epoch
511
580
  */
512
- async getCurrentEpoch() {
513
- return await this.transport.request({ method: "suix_getCurrentEpoch", params: [] });
581
+ async getCurrentEpoch({ signal } = {}) {
582
+ return await this.transport.request({
583
+ method: "suix_getCurrentEpoch",
584
+ params: [],
585
+ signal
586
+ });
514
587
  }
515
588
  /**
516
589
  * Return the Validators APYs
517
590
  */
518
- async getValidatorsApy() {
519
- return await this.transport.request({ method: "suix_getValidatorsApy", params: [] });
591
+ async getValidatorsApy({ signal } = {}) {
592
+ return await this.transport.request({
593
+ method: "suix_getValidatorsApy",
594
+ params: [],
595
+ signal
596
+ });
520
597
  }
521
598
  // TODO: Migrate this to `sui_getChainIdentifier` once it is widely available.
522
- async getChainIdentifier() {
523
- const checkpoint = await this.getCheckpoint({ id: "0" });
599
+ async getChainIdentifier({ signal } = {}) {
600
+ const checkpoint = await this.getCheckpoint({ id: "0", signal });
524
601
  const bytes = fromBase58(checkpoint.digest);
525
602
  return toHex(bytes.slice(0, 4));
526
603
  }
527
604
  async resolveNameServiceAddress(input) {
528
605
  return await this.transport.request({
529
606
  method: "suix_resolveNameServiceAddress",
530
- params: [input.name]
607
+ params: [input.name],
608
+ signal: input.signal
531
609
  });
532
610
  }
533
611
  async resolveNameServiceNames({
@@ -536,7 +614,8 @@ class SuiClient extends Experimental_SuiClient {
536
614
  }) {
537
615
  const { nextCursor, hasNextPage, data } = await this.transport.request({
538
616
  method: "suix_resolveNameServiceNames",
539
- params: [input.address, input.cursor, input.limit]
617
+ params: [input.address, input.cursor, input.limit],
618
+ signal: input.signal
540
619
  });
541
620
  return {
542
621
  hasNextPage,
@@ -547,7 +626,8 @@ class SuiClient extends Experimental_SuiClient {
547
626
  async getProtocolConfig(input) {
548
627
  return await this.transport.request({
549
628
  method: "sui_getProtocolConfig",
550
- params: [input?.version]
629
+ params: [input?.version],
630
+ signal: input?.signal
551
631
  });
552
632
  }
553
633
  /**