@mysten/sui 2.24.0 → 2.26.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 (77) hide show
  1. package/CHANGELOG.md +69 -0
  2. package/dist/bcs/bcs.d.mts +6 -6
  3. package/dist/client/core.d.mts.map +1 -1
  4. package/dist/client/core.mjs +4 -1
  5. package/dist/client/core.mjs.map +1 -1
  6. package/dist/client/errors.d.mts +31 -2
  7. package/dist/client/errors.d.mts.map +1 -1
  8. package/dist/client/errors.mjs +15 -13
  9. package/dist/client/errors.mjs.map +1 -1
  10. package/dist/client/index.d.mts +2 -2
  11. package/dist/client/index.mjs +2 -2
  12. package/dist/client/mvr.d.mts.map +1 -1
  13. package/dist/client/mvr.mjs +1 -0
  14. package/dist/client/mvr.mjs.map +1 -1
  15. package/dist/cryptography/signature.d.mts +6 -6
  16. package/dist/graphql/client.d.mts +5 -1
  17. package/dist/graphql/client.d.mts.map +1 -1
  18. package/dist/graphql/client.mjs +15 -2
  19. package/dist/graphql/client.mjs.map +1 -1
  20. package/dist/graphql/core.d.mts +4 -4
  21. package/dist/graphql/core.d.mts.map +1 -1
  22. package/dist/graphql/core.mjs +61 -18
  23. package/dist/graphql/core.mjs.map +1 -1
  24. package/dist/graphql/generated/tada-env.d.mts +16 -0
  25. package/dist/grpc/client.d.mts +5 -1
  26. package/dist/grpc/client.d.mts.map +1 -1
  27. package/dist/grpc/client.mjs +14 -2
  28. package/dist/grpc/client.mjs.map +1 -1
  29. package/dist/grpc/core.d.mts.map +1 -1
  30. package/dist/grpc/core.mjs +29 -12
  31. package/dist/grpc/core.mjs.map +1 -1
  32. package/dist/grpc/proto/sui/rpc/v2/ledger_service.client.d.mts +4 -4
  33. package/dist/grpc/proto/sui/rpc/v2/name_service.client.d.mts +4 -4
  34. package/dist/grpc/proto/sui/rpc/v2/signature_verification_service.client.d.mts +4 -4
  35. package/dist/grpc/proto/sui/rpc/v2/state_service.client.d.mts +4 -4
  36. package/dist/grpc/proto/sui/rpc/v2/subscription_service.client.d.mts +4 -4
  37. package/dist/grpc/proto/sui/rpc/v2/transaction_execution_service.client.d.mts +4 -4
  38. package/dist/jsonRpc/client.d.mts.map +1 -1
  39. package/dist/jsonRpc/client.mjs +60 -15
  40. package/dist/jsonRpc/client.mjs.map +1 -1
  41. package/dist/jsonRpc/core.d.mts +1 -1
  42. package/dist/jsonRpc/core.d.mts.map +1 -1
  43. package/dist/jsonRpc/core.mjs +73 -22
  44. package/dist/jsonRpc/core.mjs.map +1 -1
  45. package/dist/transactions/Transaction.d.mts +6 -6
  46. package/dist/transactions/data/v1.d.mts +220 -220
  47. package/dist/transactions/data/v1.d.mts.map +1 -1
  48. package/dist/transactions/data/v2.d.mts +16 -16
  49. package/dist/transactions/data/v2.d.mts.map +1 -1
  50. package/dist/version.mjs +1 -1
  51. package/dist/version.mjs.map +1 -1
  52. package/dist/zklogin/bcs.d.mts +14 -14
  53. package/docs/bcs.md +2 -2
  54. package/docs/clients/core.md +150 -710
  55. package/docs/clients/executing.md +113 -0
  56. package/docs/clients/graphql.md +80 -70
  57. package/docs/clients/grpc.md +223 -208
  58. package/docs/clients/index.md +56 -67
  59. package/docs/clients/querying.md +539 -0
  60. package/docs/llms-index.md +6 -5
  61. package/docs/migrations/sui-2.0/json-rpc-migration.md +3 -1
  62. package/docs/transactions/signing-and-execution.md +8 -28
  63. package/package.json +1 -1
  64. package/src/client/core.ts +1 -0
  65. package/src/client/errors.ts +39 -23
  66. package/src/client/index.ts +9 -1
  67. package/src/client/mvr.ts +6 -0
  68. package/src/graphql/client.ts +29 -2
  69. package/src/graphql/core.ts +53 -16
  70. package/src/graphql/generated/schema.graphql +11 -1
  71. package/src/graphql/generated/tada-env.ts +20 -0
  72. package/src/grpc/client.ts +28 -2
  73. package/src/grpc/core.ts +90 -65
  74. package/src/jsonRpc/client.ts +15 -0
  75. package/src/jsonRpc/core.ts +102 -24
  76. package/src/version.ts +1 -1
  77. package/docs/clients/json-rpc.md +0 -243
package/CHANGELOG.md CHANGED
@@ -1,5 +1,74 @@
1
1
  # @mysten/sui.js
2
2
 
3
+ ## 2.26.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 87989d5: Add transport-neutral `ObjectError` and `TransactionError` lookup details across the Core
8
+ API clients. The existing transport-specific `ObjectError.code` field and `(code, message)`
9
+ constructor remain supported; the transport-neutral `reason`, resource identity, and `cause`
10
+ fields are additive.
11
+
12
+ ## 2.25.0
13
+
14
+ ### Minor Changes
15
+
16
+ - f76883d: Forward the last four Core API methods to the top-level clients. `getCurrentSystemState`,
17
+ `getProtocolConfig`, `getChainIdentifier`, and `getDynamicObjectField` were reachable only through
18
+ `client.core`, so `SuiGrpcClient` and `SuiGraphQLClient` now expose the complete Core API surface
19
+ as top-level methods.
20
+
21
+ Also fixes `GraphQLCoreClient.getCurrentSystemState` and `getProtocolConfig`, which declared no
22
+ parameters and so silently dropped the `signal` option the contract and the gRPC implementation
23
+ both accept. Both now forward `signal` to the underlying query.
24
+
25
+ ### Patch Changes
26
+
27
+ - f76883d: Forward `signal` through every GraphQL client method. Twelve methods on
28
+ `GraphQLCoreClient` accepted an options object carrying `signal` but never passed it to the
29
+ underlying query, so `AbortSignal` was silently ignored on `getObjects`, `listOwnedObjects`,
30
+ `listCoins`, `getBalance`, `listBalances`, `getCoinMetadata`, `getTransaction`,
31
+ `executeTransaction`, `simulateTransaction`, `getMoveFunction`, `verifyZkLoginSignature`, and
32
+ `SuiGraphQLClient.listDynamicFields`.
33
+
34
+ `getReferenceGasPrice` now accepts options on `GraphQLCoreClient` and on both top-level clients;
35
+ it previously took no arguments at all, so callers had no way to pass a signal.
36
+
37
+ `GraphQLCoreClient.getChainIdentifier` now races the caller's signal against its cached read, the
38
+ same way the gRPC implementation does. The cached request itself stays uncancelled, since it is
39
+ shared between callers, but each caller can stop waiting independently.
40
+
41
+ - f76883d: Fix cancellation for signals that were already aborted, and forward the caller's signal
42
+ into MVR name resolution.
43
+
44
+ `raceSignal` registered an `abort` listener without first checking `signal.aborted`. An `abort`
45
+ event is not replayed for listeners added afterwards, so passing an already-aborted signal
46
+ resolved normally instead of rejecting. This affected every cached read that races a signal,
47
+ including `getChainIdentifier` on the gRPC and GraphQL clients.
48
+
49
+ Methods that resolve an MVR name before querying now pass the caller's signal into that lookup, so
50
+ aborting takes effect during name resolution rather than only afterwards. This covers
51
+ `listOwnedObjects`, `listCoins`, `getBalance`, `getCoinMetadata`, and `getMoveFunction` on the
52
+ GraphQL client, and `getCoinMetadata` and `getMoveFunction` on the deprecated JSON-RPC client.
53
+
54
+ - f76883d: Forward the caller's `signal` into MVR name resolution and the remaining request paths.
55
+ `CoreClient.getDynamicObjectField` now passes it into the type resolution it performs before
56
+ reading the field, matching the sibling `getDynamicField` path.
57
+
58
+ On the deprecated JSON-RPC client, `listDynamicFields`, `verifyZkLoginSignature`, and
59
+ `getMoveFunction` forward the signal to their underlying requests, `simulateTransaction` forwards
60
+ it to the reference gas price lookup it performs while building, and `getChainIdentifier` races
61
+ the signal against its cached read the way the gRPC and GraphQL clients do. Fifteen MVR lookups in
62
+ `jsonRpc/client.ts` also went unsignalled, including the ones the Core `listCoins`, `getBalance`,
63
+ and `listOwnedObjects` paths reach, so a stalled resolution delayed cancellation on those methods.
64
+
65
+ One MVR call remains unsignalled by design: the named-packages transaction plugin, since
66
+ `BuildTransactionOptions` carries no signal to forward.
67
+
68
+ - f76883d: Regenerate the GraphQL schema and `gql.tada` introspection types from upstream, picking
69
+ up the new `ForwardingAddressRegistryCreateTransaction` system transaction variant on the
70
+ `EndOfEpochTransactionKind` union. gRPC proto types were also regenerated and are unchanged.
71
+
3
72
  ## 2.24.0
4
73
 
5
74
  ### Minor Changes
@@ -1,21 +1,21 @@
1
1
  import { TypeTag as TypeTag$1 } from "./types.mjs";
2
- import * as _mysten_bcs1206 from "@mysten/bcs";
2
+ import * as _mysten_bcs1226 from "@mysten/bcs";
3
3
  import { BcsType } from "@mysten/bcs";
4
4
 
5
5
  //#region src/bcs/bcs.d.ts
6
6
  declare const TypeTag: BcsType<string, string | TypeTag$1, string>;
7
- declare function IntentMessage<T extends BcsType<any>>(T: T): _mysten_bcs1206.BcsStruct<{
8
- intent: _mysten_bcs1206.BcsStruct<{
9
- scope: _mysten_bcs1206.BcsEnum<{
7
+ declare function IntentMessage<T extends BcsType<any>>(T: T): _mysten_bcs1226.BcsStruct<{
8
+ intent: _mysten_bcs1226.BcsStruct<{
9
+ scope: _mysten_bcs1226.BcsEnum<{
10
10
  TransactionData: null;
11
11
  TransactionEffects: null;
12
12
  CheckpointSummary: null;
13
13
  PersonalMessage: null;
14
14
  }, "IntentScope">;
15
- version: _mysten_bcs1206.BcsEnum<{
15
+ version: _mysten_bcs1226.BcsEnum<{
16
16
  V0: null;
17
17
  }, "IntentVersion">;
18
- appId: _mysten_bcs1206.BcsEnum<{
18
+ appId: _mysten_bcs1226.BcsEnum<{
19
19
  Sui: null;
20
20
  }, "AppId">;
21
21
  }, string>;
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.mts","names":[],"sources":["../../src/client/core.ts"],"mappings":"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"}
1
+ {"version":3,"file":"core.d.mts","names":[],"sources":["../../src/client/core.ts"],"mappings":"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"}
@@ -71,7 +71,10 @@ var CoreClient = class extends BaseClient {
71
71
  } };
72
72
  }
73
73
  async getDynamicObjectField(options) {
74
- const wrappedType = `0x2::dynamic_object_field::Wrapper<${(await this.core.mvr.resolveType({ type: options.name.type })).type}>`;
74
+ const wrappedType = `0x2::dynamic_object_field::Wrapper<${(await this.core.mvr.resolveType({
75
+ type: options.name.type,
76
+ signal: options.signal
77
+ })).type}>`;
75
78
  const { dynamicField } = await this.getDynamicField({
76
79
  parentId: options.parentId,
77
80
  name: {
@@ -1 +1 @@
1
- {"version":3,"file":"core.mjs","names":["bcs"],"sources":["../../src/client/core.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { TypeTagSerializer } from '../bcs/type-tag-serializer.js';\nimport type { TransactionPlugin } from '../transactions/index.js';\nimport { deriveDynamicFieldID } from '../utils/dynamic-fields.js';\nimport { normalizeStructTag, parseStructTag, SUI_ADDRESS_LENGTH } from '../utils/sui-types.js';\nimport { BaseClient } from './client.js';\nimport type { ClientWithExtensions, SuiClientTypes } from './types.js';\nimport { MvrClient } from './mvr.js';\nimport { bcs } from '../bcs/index.js';\n\nexport type ClientWithCoreApi = ClientWithExtensions<{\n\tcore: CoreClient;\n}>;\n\nexport interface CoreClientOptions extends SuiClientTypes.SuiClientOptions {\n\tbase: BaseClient;\n\tmvr?: SuiClientTypes.MvrOptions;\n}\n\nconst DEFAULT_MVR_URLS: Record<string, string> = {\n\tmainnet: 'https://mainnet.mvr.mystenlabs.com',\n\ttestnet: 'https://testnet.mvr.mystenlabs.com',\n};\n\nexport abstract class CoreClient extends BaseClient implements SuiClientTypes.TransportMethods {\n\tcore = this;\n\tmvr: SuiClientTypes.MvrMethods;\n\n\tconstructor(options: CoreClientOptions) {\n\t\tsuper(options);\n\n\t\tthis.mvr = new MvrClient({\n\t\t\tcache: this.cache.scope('core.mvr'),\n\t\t\turl: options.mvr?.url ?? DEFAULT_MVR_URLS[this.network],\n\t\t\tpageSize: options.mvr?.pageSize,\n\t\t\toverrides: options.mvr?.overrides,\n\t\t});\n\t}\n\n\tabstract getObjects<Include extends SuiClientTypes.ObjectInclude = {}>(\n\t\toptions: SuiClientTypes.GetObjectsOptions<Include>,\n\t): Promise<SuiClientTypes.GetObjectsResponse<Include>>;\n\n\tasync getObject<Include extends SuiClientTypes.ObjectInclude = {}>(\n\t\toptions: SuiClientTypes.GetObjectOptions<Include>,\n\t): Promise<SuiClientTypes.GetObjectResponse<Include>> {\n\t\tconst { objectId } = options;\n\t\tconst {\n\t\t\tobjects: [result],\n\t\t} = await this.getObjects({\n\t\t\tobjectIds: [objectId],\n\t\t\tsignal: options.signal,\n\t\t\tinclude: options.include,\n\t\t});\n\t\tif (result instanceof Error) {\n\t\t\tthrow result;\n\t\t}\n\t\treturn { object: result };\n\t}\n\n\tabstract listCoins(\n\t\toptions: SuiClientTypes.ListCoinsOptions,\n\t): Promise<SuiClientTypes.ListCoinsResponse>;\n\n\tabstract listOwnedObjects<Include extends SuiClientTypes.ObjectInclude = {}>(\n\t\toptions: SuiClientTypes.ListOwnedObjectsOptions<Include>,\n\t): Promise<SuiClientTypes.ListOwnedObjectsResponse<Include>>;\n\n\tabstract getBalance(\n\t\toptions: SuiClientTypes.GetBalanceOptions,\n\t): Promise<SuiClientTypes.GetBalanceResponse>;\n\n\tabstract listBalances(\n\t\toptions: SuiClientTypes.ListBalancesOptions,\n\t): Promise<SuiClientTypes.ListBalancesResponse>;\n\n\tabstract getCoinMetadata(\n\t\toptions: SuiClientTypes.GetCoinMetadataOptions,\n\t): Promise<SuiClientTypes.GetCoinMetadataResponse>;\n\n\tabstract getTransaction<Include extends SuiClientTypes.TransactionInclude = {}>(\n\t\toptions: SuiClientTypes.GetTransactionOptions<Include>,\n\t): Promise<SuiClientTypes.TransactionResult<Include>>;\n\n\tabstract executeTransaction<Include extends SuiClientTypes.TransactionInclude = {}>(\n\t\toptions: SuiClientTypes.ExecuteTransactionOptions<Include>,\n\t): Promise<SuiClientTypes.TransactionResult<Include>>;\n\n\tabstract simulateTransaction<Include extends SuiClientTypes.SimulateTransactionInclude = {}>(\n\t\toptions: SuiClientTypes.SimulateTransactionOptions<Include>,\n\t): Promise<SuiClientTypes.SimulateTransactionResult<Include>>;\n\n\tabstract getReferenceGasPrice(\n\t\toptions?: SuiClientTypes.GetReferenceGasPriceOptions,\n\t): Promise<SuiClientTypes.GetReferenceGasPriceResponse>;\n\n\tabstract getCurrentSystemState(\n\t\toptions?: SuiClientTypes.GetCurrentSystemStateOptions,\n\t): Promise<SuiClientTypes.GetCurrentSystemStateResponse>;\n\n\tabstract getProtocolConfig(\n\t\toptions?: SuiClientTypes.GetProtocolConfigOptions,\n\t): Promise<SuiClientTypes.GetProtocolConfigResponse>;\n\n\tabstract getChainIdentifier(\n\t\toptions?: SuiClientTypes.GetChainIdentifierOptions,\n\t): Promise<SuiClientTypes.GetChainIdentifierResponse>;\n\n\tabstract listDynamicFields(\n\t\toptions: SuiClientTypes.ListDynamicFieldsOptions,\n\t): Promise<SuiClientTypes.ListDynamicFieldsResponse>;\n\n\tabstract listTransactions<Include extends SuiClientTypes.TransactionInclude = {}>(\n\t\toptions: SuiClientTypes.ListTransactionsOptions<Include>,\n\t): Promise<SuiClientTypes.ListTransactionsResponse<Include>>;\n\n\tabstract listEvents(\n\t\toptions: SuiClientTypes.ListEventsOptions,\n\t): Promise<SuiClientTypes.ListEventsResponse>;\n\n\tabstract resolveTransactionPlugin(): TransactionPlugin;\n\n\tabstract verifyZkLoginSignature(\n\t\toptions: SuiClientTypes.VerifyZkLoginSignatureOptions,\n\t): Promise<SuiClientTypes.ZkLoginVerifyResponse>;\n\n\tabstract getMoveFunction(\n\t\toptions: SuiClientTypes.GetMoveFunctionOptions,\n\t): Promise<SuiClientTypes.GetMoveFunctionResponse>;\n\n\tabstract defaultNameServiceName(\n\t\toptions: SuiClientTypes.DefaultNameServiceNameOptions,\n\t): Promise<SuiClientTypes.DefaultNameServiceNameResponse>;\n\n\tabstract resolveNameServiceAddress(\n\t\toptions: SuiClientTypes.ResolveNameServiceAddressOptions,\n\t): Promise<SuiClientTypes.ResolveNameServiceAddressResponse>;\n\n\tasync getDynamicField(\n\t\toptions: SuiClientTypes.GetDynamicFieldOptions,\n\t): Promise<SuiClientTypes.GetDynamicFieldResponse> {\n\t\tconst normalizedNameType = TypeTagSerializer.parseFromStr(\n\t\t\t(\n\t\t\t\tawait this.core.mvr.resolveType({\n\t\t\t\t\ttype: options.name.type,\n\t\t\t\t\tsignal: options.signal,\n\t\t\t\t})\n\t\t\t).type,\n\t\t);\n\t\tconst fieldId = deriveDynamicFieldID(options.parentId, normalizedNameType, options.name.bcs);\n\t\tconst {\n\t\t\tobjects: [fieldObject],\n\t\t} = await this.getObjects({\n\t\t\tobjectIds: [fieldId],\n\t\t\tsignal: options.signal,\n\t\t\tinclude: {\n\t\t\t\tpreviousTransaction: true,\n\t\t\t\tcontent: true,\n\t\t\t},\n\t\t});\n\n\t\tif (fieldObject instanceof Error) {\n\t\t\tthrow fieldObject;\n\t\t}\n\n\t\tconst fieldType = parseStructTag(fieldObject.type);\n\t\tconst content = await fieldObject.content;\n\n\t\tconst nameTypeParam = fieldType.typeParams[0];\n\t\tconst isDynamicObject =\n\t\t\ttypeof nameTypeParam !== 'string' &&\n\t\t\tnameTypeParam.module === 'dynamic_object_field' &&\n\t\t\tnameTypeParam.name === 'Wrapper';\n\n\t\tconst valueBcs = content.slice(SUI_ADDRESS_LENGTH + options.name.bcs.length);\n\n\t\tconst valueType =\n\t\t\ttypeof fieldType.typeParams[1] === 'string'\n\t\t\t\t? fieldType.typeParams[1]\n\t\t\t\t: normalizeStructTag(fieldType.typeParams[1]);\n\n\t\treturn {\n\t\t\tdynamicField: {\n\t\t\t\t$kind: isDynamicObject ? 'DynamicObject' : 'DynamicField',\n\t\t\t\tfieldId: fieldObject.objectId,\n\t\t\t\tdigest: fieldObject.digest,\n\t\t\t\tversion: fieldObject.version,\n\t\t\t\ttype: fieldObject.type,\n\t\t\t\tpreviousTransaction: fieldObject.previousTransaction,\n\t\t\t\tname: {\n\t\t\t\t\ttype:\n\t\t\t\t\t\ttypeof nameTypeParam === 'string' ? nameTypeParam : normalizeStructTag(nameTypeParam),\n\t\t\t\t\tbcs: options.name.bcs,\n\t\t\t\t},\n\t\t\t\tvalue: {\n\t\t\t\t\ttype: valueType,\n\t\t\t\t\tbcs: valueBcs,\n\t\t\t\t},\n\t\t\t\tchildId: isDynamicObject ? bcs.Address.parse(valueBcs) : undefined,\n\t\t\t} as SuiClientTypes.GetDynamicFieldResponse['dynamicField'],\n\t\t};\n\t}\n\n\tasync getDynamicObjectField<Include extends SuiClientTypes.ObjectInclude = {}>(\n\t\toptions: SuiClientTypes.GetDynamicObjectFieldOptions<Include>,\n\t): Promise<SuiClientTypes.GetDynamicObjectFieldResponse<Include>> {\n\t\tconst resolvedNameType = (\n\t\t\tawait this.core.mvr.resolveType({\n\t\t\t\ttype: options.name.type,\n\t\t\t})\n\t\t).type;\n\t\tconst wrappedType = `0x2::dynamic_object_field::Wrapper<${resolvedNameType}>`;\n\n\t\tconst { dynamicField } = await this.getDynamicField({\n\t\t\tparentId: options.parentId,\n\t\t\tname: {\n\t\t\t\ttype: wrappedType,\n\t\t\t\tbcs: options.name.bcs,\n\t\t\t},\n\t\t\tsignal: options.signal,\n\t\t});\n\n\t\tconst { object } = await this.getObject({\n\t\t\tobjectId: dynamicField.childId!,\n\t\t\tsignal: options.signal,\n\t\t\tinclude: options.include,\n\t\t});\n\n\t\treturn { object };\n\t}\n\n\tasync waitForTransaction<Include extends SuiClientTypes.TransactionInclude = {}>(\n\t\toptions: SuiClientTypes.WaitForTransactionOptions<Include>,\n\t): Promise<SuiClientTypes.TransactionResult<Include>> {\n\t\tconst { signal, timeout = 60 * 1000, pollSchedule, include } = options;\n\n\t\tconst digest =\n\t\t\t'result' in options && options.result\n\t\t\t\t? (options.result.Transaction ?? options.result.FailedTransaction)!.digest\n\t\t\t\t: options.digest;\n\n\t\tconst abortSignal = signal\n\t\t\t? AbortSignal.any([AbortSignal.timeout(timeout), signal])\n\t\t\t: AbortSignal.timeout(timeout);\n\n\t\tconst abortPromise = new Promise((_, reject) => {\n\t\t\tabortSignal.addEventListener('abort', () => reject(abortSignal.reason));\n\t\t});\n\n\t\tabortPromise.catch(() => {\n\t\t\t// Swallow unhandled rejections that might be thrown after early return\n\t\t});\n\n\t\t// Default schedule tuned to testnet measurements:\n\t\t// - Fullnode (gRPC/JSON-RPC): p50=130ms, p95=330ms\n\t\t// - GraphQL indexer: p50=1300ms, p95=1430ms\n\t\t// After schedule exhausted, repeats the last interval.\n\t\tconst schedule = pollSchedule ?? [0, 300, 600, 1500, 3500];\n\t\tconst t0 = Date.now();\n\t\tlet scheduleIndex = 0;\n\t\tconst lastInterval =\n\t\t\tschedule.length > 0\n\t\t\t\t? schedule[schedule.length - 1] - (schedule[schedule.length - 2] ?? 0)\n\t\t\t\t: 2_000;\n\n\t\twhile (true) {\n\t\t\tif (scheduleIndex < schedule.length) {\n\t\t\t\tconst remaining = t0 + schedule[scheduleIndex] - Date.now();\n\t\t\t\tscheduleIndex++;\n\t\t\t\tif (remaining > 0) {\n\t\t\t\t\tawait Promise.race([\n\t\t\t\t\t\tnew Promise((resolve) => setTimeout(resolve, remaining)),\n\t\t\t\t\t\tabortPromise,\n\t\t\t\t\t]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tawait Promise.race([\n\t\t\t\t\tnew Promise((resolve) => setTimeout(resolve, lastInterval)),\n\t\t\t\t\tabortPromise,\n\t\t\t\t]);\n\t\t\t}\n\n\t\t\tabortSignal.throwIfAborted();\n\t\t\ttry {\n\t\t\t\treturn await this.getTransaction({\n\t\t\t\t\tdigest,\n\t\t\t\t\tinclude,\n\t\t\t\t\tsignal: abortSignal,\n\t\t\t\t});\n\t\t\t} catch {}\n\t\t}\n\t}\n\n\tasync signAndExecuteTransaction<Include extends SuiClientTypes.TransactionInclude = {}>({\n\t\ttransaction,\n\t\tsigner,\n\t\tadditionalSignatures = [],\n\t\t...input\n\t}: SuiClientTypes.SignAndExecuteTransactionOptions<Include>): Promise<\n\t\tSuiClientTypes.TransactionResult<Include>\n\t> {\n\t\tlet transactionBytes;\n\n\t\tif (transaction instanceof Uint8Array) {\n\t\t\ttransactionBytes = transaction;\n\t\t} else {\n\t\t\ttransaction.setSenderIfNotSet(signer.toSuiAddress());\n\t\t\ttransactionBytes = await transaction.build({ client: this });\n\t\t}\n\n\t\tconst { signature } = await signer.signTransaction(transactionBytes);\n\n\t\treturn this.executeTransaction({\n\t\t\ttransaction: transactionBytes,\n\t\t\tsignatures: [signature, ...additionalSignatures],\n\t\t\t...input,\n\t\t});\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"core.mjs","names":["bcs"],"sources":["../../src/client/core.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { TypeTagSerializer } from '../bcs/type-tag-serializer.js';\nimport type { TransactionPlugin } from '../transactions/index.js';\nimport { deriveDynamicFieldID } from '../utils/dynamic-fields.js';\nimport { normalizeStructTag, parseStructTag, SUI_ADDRESS_LENGTH } from '../utils/sui-types.js';\nimport { BaseClient } from './client.js';\nimport type { ClientWithExtensions, SuiClientTypes } from './types.js';\nimport { MvrClient } from './mvr.js';\nimport { bcs } from '../bcs/index.js';\n\nexport type ClientWithCoreApi = ClientWithExtensions<{\n\tcore: CoreClient;\n}>;\n\nexport interface CoreClientOptions extends SuiClientTypes.SuiClientOptions {\n\tbase: BaseClient;\n\tmvr?: SuiClientTypes.MvrOptions;\n}\n\nconst DEFAULT_MVR_URLS: Record<string, string> = {\n\tmainnet: 'https://mainnet.mvr.mystenlabs.com',\n\ttestnet: 'https://testnet.mvr.mystenlabs.com',\n};\n\nexport abstract class CoreClient extends BaseClient implements SuiClientTypes.TransportMethods {\n\tcore = this;\n\tmvr: SuiClientTypes.MvrMethods;\n\n\tconstructor(options: CoreClientOptions) {\n\t\tsuper(options);\n\n\t\tthis.mvr = new MvrClient({\n\t\t\tcache: this.cache.scope('core.mvr'),\n\t\t\turl: options.mvr?.url ?? DEFAULT_MVR_URLS[this.network],\n\t\t\tpageSize: options.mvr?.pageSize,\n\t\t\toverrides: options.mvr?.overrides,\n\t\t});\n\t}\n\n\tabstract getObjects<Include extends SuiClientTypes.ObjectInclude = {}>(\n\t\toptions: SuiClientTypes.GetObjectsOptions<Include>,\n\t): Promise<SuiClientTypes.GetObjectsResponse<Include>>;\n\n\tasync getObject<Include extends SuiClientTypes.ObjectInclude = {}>(\n\t\toptions: SuiClientTypes.GetObjectOptions<Include>,\n\t): Promise<SuiClientTypes.GetObjectResponse<Include>> {\n\t\tconst { objectId } = options;\n\t\tconst {\n\t\t\tobjects: [result],\n\t\t} = await this.getObjects({\n\t\t\tobjectIds: [objectId],\n\t\t\tsignal: options.signal,\n\t\t\tinclude: options.include,\n\t\t});\n\t\tif (result instanceof Error) {\n\t\t\tthrow result;\n\t\t}\n\t\treturn { object: result };\n\t}\n\n\tabstract listCoins(\n\t\toptions: SuiClientTypes.ListCoinsOptions,\n\t): Promise<SuiClientTypes.ListCoinsResponse>;\n\n\tabstract listOwnedObjects<Include extends SuiClientTypes.ObjectInclude = {}>(\n\t\toptions: SuiClientTypes.ListOwnedObjectsOptions<Include>,\n\t): Promise<SuiClientTypes.ListOwnedObjectsResponse<Include>>;\n\n\tabstract getBalance(\n\t\toptions: SuiClientTypes.GetBalanceOptions,\n\t): Promise<SuiClientTypes.GetBalanceResponse>;\n\n\tabstract listBalances(\n\t\toptions: SuiClientTypes.ListBalancesOptions,\n\t): Promise<SuiClientTypes.ListBalancesResponse>;\n\n\tabstract getCoinMetadata(\n\t\toptions: SuiClientTypes.GetCoinMetadataOptions,\n\t): Promise<SuiClientTypes.GetCoinMetadataResponse>;\n\n\tabstract getTransaction<Include extends SuiClientTypes.TransactionInclude = {}>(\n\t\toptions: SuiClientTypes.GetTransactionOptions<Include>,\n\t): Promise<SuiClientTypes.TransactionResult<Include>>;\n\n\tabstract executeTransaction<Include extends SuiClientTypes.TransactionInclude = {}>(\n\t\toptions: SuiClientTypes.ExecuteTransactionOptions<Include>,\n\t): Promise<SuiClientTypes.TransactionResult<Include>>;\n\n\tabstract simulateTransaction<Include extends SuiClientTypes.SimulateTransactionInclude = {}>(\n\t\toptions: SuiClientTypes.SimulateTransactionOptions<Include>,\n\t): Promise<SuiClientTypes.SimulateTransactionResult<Include>>;\n\n\tabstract getReferenceGasPrice(\n\t\toptions?: SuiClientTypes.GetReferenceGasPriceOptions,\n\t): Promise<SuiClientTypes.GetReferenceGasPriceResponse>;\n\n\tabstract getCurrentSystemState(\n\t\toptions?: SuiClientTypes.GetCurrentSystemStateOptions,\n\t): Promise<SuiClientTypes.GetCurrentSystemStateResponse>;\n\n\tabstract getProtocolConfig(\n\t\toptions?: SuiClientTypes.GetProtocolConfigOptions,\n\t): Promise<SuiClientTypes.GetProtocolConfigResponse>;\n\n\tabstract getChainIdentifier(\n\t\toptions?: SuiClientTypes.GetChainIdentifierOptions,\n\t): Promise<SuiClientTypes.GetChainIdentifierResponse>;\n\n\tabstract listDynamicFields(\n\t\toptions: SuiClientTypes.ListDynamicFieldsOptions,\n\t): Promise<SuiClientTypes.ListDynamicFieldsResponse>;\n\n\tabstract listTransactions<Include extends SuiClientTypes.TransactionInclude = {}>(\n\t\toptions: SuiClientTypes.ListTransactionsOptions<Include>,\n\t): Promise<SuiClientTypes.ListTransactionsResponse<Include>>;\n\n\tabstract listEvents(\n\t\toptions: SuiClientTypes.ListEventsOptions,\n\t): Promise<SuiClientTypes.ListEventsResponse>;\n\n\tabstract resolveTransactionPlugin(): TransactionPlugin;\n\n\tabstract verifyZkLoginSignature(\n\t\toptions: SuiClientTypes.VerifyZkLoginSignatureOptions,\n\t): Promise<SuiClientTypes.ZkLoginVerifyResponse>;\n\n\tabstract getMoveFunction(\n\t\toptions: SuiClientTypes.GetMoveFunctionOptions,\n\t): Promise<SuiClientTypes.GetMoveFunctionResponse>;\n\n\tabstract defaultNameServiceName(\n\t\toptions: SuiClientTypes.DefaultNameServiceNameOptions,\n\t): Promise<SuiClientTypes.DefaultNameServiceNameResponse>;\n\n\tabstract resolveNameServiceAddress(\n\t\toptions: SuiClientTypes.ResolveNameServiceAddressOptions,\n\t): Promise<SuiClientTypes.ResolveNameServiceAddressResponse>;\n\n\tasync getDynamicField(\n\t\toptions: SuiClientTypes.GetDynamicFieldOptions,\n\t): Promise<SuiClientTypes.GetDynamicFieldResponse> {\n\t\tconst normalizedNameType = TypeTagSerializer.parseFromStr(\n\t\t\t(\n\t\t\t\tawait this.core.mvr.resolveType({\n\t\t\t\t\ttype: options.name.type,\n\t\t\t\t\tsignal: options.signal,\n\t\t\t\t})\n\t\t\t).type,\n\t\t);\n\t\tconst fieldId = deriveDynamicFieldID(options.parentId, normalizedNameType, options.name.bcs);\n\t\tconst {\n\t\t\tobjects: [fieldObject],\n\t\t} = await this.getObjects({\n\t\t\tobjectIds: [fieldId],\n\t\t\tsignal: options.signal,\n\t\t\tinclude: {\n\t\t\t\tpreviousTransaction: true,\n\t\t\t\tcontent: true,\n\t\t\t},\n\t\t});\n\n\t\tif (fieldObject instanceof Error) {\n\t\t\tthrow fieldObject;\n\t\t}\n\n\t\tconst fieldType = parseStructTag(fieldObject.type);\n\t\tconst content = await fieldObject.content;\n\n\t\tconst nameTypeParam = fieldType.typeParams[0];\n\t\tconst isDynamicObject =\n\t\t\ttypeof nameTypeParam !== 'string' &&\n\t\t\tnameTypeParam.module === 'dynamic_object_field' &&\n\t\t\tnameTypeParam.name === 'Wrapper';\n\n\t\tconst valueBcs = content.slice(SUI_ADDRESS_LENGTH + options.name.bcs.length);\n\n\t\tconst valueType =\n\t\t\ttypeof fieldType.typeParams[1] === 'string'\n\t\t\t\t? fieldType.typeParams[1]\n\t\t\t\t: normalizeStructTag(fieldType.typeParams[1]);\n\n\t\treturn {\n\t\t\tdynamicField: {\n\t\t\t\t$kind: isDynamicObject ? 'DynamicObject' : 'DynamicField',\n\t\t\t\tfieldId: fieldObject.objectId,\n\t\t\t\tdigest: fieldObject.digest,\n\t\t\t\tversion: fieldObject.version,\n\t\t\t\ttype: fieldObject.type,\n\t\t\t\tpreviousTransaction: fieldObject.previousTransaction,\n\t\t\t\tname: {\n\t\t\t\t\ttype:\n\t\t\t\t\t\ttypeof nameTypeParam === 'string' ? nameTypeParam : normalizeStructTag(nameTypeParam),\n\t\t\t\t\tbcs: options.name.bcs,\n\t\t\t\t},\n\t\t\t\tvalue: {\n\t\t\t\t\ttype: valueType,\n\t\t\t\t\tbcs: valueBcs,\n\t\t\t\t},\n\t\t\t\tchildId: isDynamicObject ? bcs.Address.parse(valueBcs) : undefined,\n\t\t\t} as SuiClientTypes.GetDynamicFieldResponse['dynamicField'],\n\t\t};\n\t}\n\n\tasync getDynamicObjectField<Include extends SuiClientTypes.ObjectInclude = {}>(\n\t\toptions: SuiClientTypes.GetDynamicObjectFieldOptions<Include>,\n\t): Promise<SuiClientTypes.GetDynamicObjectFieldResponse<Include>> {\n\t\tconst resolvedNameType = (\n\t\t\tawait this.core.mvr.resolveType({\n\t\t\t\ttype: options.name.type,\n\t\t\t\tsignal: options.signal,\n\t\t\t})\n\t\t).type;\n\t\tconst wrappedType = `0x2::dynamic_object_field::Wrapper<${resolvedNameType}>`;\n\n\t\tconst { dynamicField } = await this.getDynamicField({\n\t\t\tparentId: options.parentId,\n\t\t\tname: {\n\t\t\t\ttype: wrappedType,\n\t\t\t\tbcs: options.name.bcs,\n\t\t\t},\n\t\t\tsignal: options.signal,\n\t\t});\n\n\t\tconst { object } = await this.getObject({\n\t\t\tobjectId: dynamicField.childId!,\n\t\t\tsignal: options.signal,\n\t\t\tinclude: options.include,\n\t\t});\n\n\t\treturn { object };\n\t}\n\n\tasync waitForTransaction<Include extends SuiClientTypes.TransactionInclude = {}>(\n\t\toptions: SuiClientTypes.WaitForTransactionOptions<Include>,\n\t): Promise<SuiClientTypes.TransactionResult<Include>> {\n\t\tconst { signal, timeout = 60 * 1000, pollSchedule, include } = options;\n\n\t\tconst digest =\n\t\t\t'result' in options && options.result\n\t\t\t\t? (options.result.Transaction ?? options.result.FailedTransaction)!.digest\n\t\t\t\t: options.digest;\n\n\t\tconst abortSignal = signal\n\t\t\t? AbortSignal.any([AbortSignal.timeout(timeout), signal])\n\t\t\t: AbortSignal.timeout(timeout);\n\n\t\tconst abortPromise = new Promise((_, reject) => {\n\t\t\tabortSignal.addEventListener('abort', () => reject(abortSignal.reason));\n\t\t});\n\n\t\tabortPromise.catch(() => {\n\t\t\t// Swallow unhandled rejections that might be thrown after early return\n\t\t});\n\n\t\t// Default schedule tuned to testnet measurements:\n\t\t// - Fullnode (gRPC/JSON-RPC): p50=130ms, p95=330ms\n\t\t// - GraphQL indexer: p50=1300ms, p95=1430ms\n\t\t// After schedule exhausted, repeats the last interval.\n\t\tconst schedule = pollSchedule ?? [0, 300, 600, 1500, 3500];\n\t\tconst t0 = Date.now();\n\t\tlet scheduleIndex = 0;\n\t\tconst lastInterval =\n\t\t\tschedule.length > 0\n\t\t\t\t? schedule[schedule.length - 1] - (schedule[schedule.length - 2] ?? 0)\n\t\t\t\t: 2_000;\n\n\t\twhile (true) {\n\t\t\tif (scheduleIndex < schedule.length) {\n\t\t\t\tconst remaining = t0 + schedule[scheduleIndex] - Date.now();\n\t\t\t\tscheduleIndex++;\n\t\t\t\tif (remaining > 0) {\n\t\t\t\t\tawait Promise.race([\n\t\t\t\t\t\tnew Promise((resolve) => setTimeout(resolve, remaining)),\n\t\t\t\t\t\tabortPromise,\n\t\t\t\t\t]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tawait Promise.race([\n\t\t\t\t\tnew Promise((resolve) => setTimeout(resolve, lastInterval)),\n\t\t\t\t\tabortPromise,\n\t\t\t\t]);\n\t\t\t}\n\n\t\t\tabortSignal.throwIfAborted();\n\t\t\ttry {\n\t\t\t\treturn await this.getTransaction({\n\t\t\t\t\tdigest,\n\t\t\t\t\tinclude,\n\t\t\t\t\tsignal: abortSignal,\n\t\t\t\t});\n\t\t\t} catch {}\n\t\t}\n\t}\n\n\tasync signAndExecuteTransaction<Include extends SuiClientTypes.TransactionInclude = {}>({\n\t\ttransaction,\n\t\tsigner,\n\t\tadditionalSignatures = [],\n\t\t...input\n\t}: SuiClientTypes.SignAndExecuteTransactionOptions<Include>): Promise<\n\t\tSuiClientTypes.TransactionResult<Include>\n\t> {\n\t\tlet transactionBytes;\n\n\t\tif (transaction instanceof Uint8Array) {\n\t\t\ttransactionBytes = transaction;\n\t\t} else {\n\t\t\ttransaction.setSenderIfNotSet(signer.toSuiAddress());\n\t\t\ttransactionBytes = await transaction.build({ client: this });\n\t\t}\n\n\t\tconst { signature } = await signer.signTransaction(transactionBytes);\n\n\t\treturn this.executeTransaction({\n\t\t\ttransaction: transactionBytes,\n\t\t\tsignatures: [signature, ...additionalSignatures],\n\t\t\t...input,\n\t\t});\n\t}\n}\n"],"mappings":";;;;;;;;AAqBA,MAAM,mBAA2C;CAChD,SAAS;CACT,SAAS;CACT;AAED,IAAsB,aAAtB,cAAyC,WAAsD;CAI9F,YAAY,SAA4B;AACvC,QAAM,QAAQ;cAJR;AAMN,OAAK,MAAM,IAAI,UAAU;GACxB,OAAO,KAAK,MAAM,MAAM,WAAW;GACnC,KAAK,QAAQ,KAAK,OAAO,iBAAiB,KAAK;GAC/C,UAAU,QAAQ,KAAK;GACvB,WAAW,QAAQ,KAAK;GACxB,CAAC;;CAOH,MAAM,UACL,SACqD;EACrD,MAAM,EAAE,aAAa;EACrB,MAAM,EACL,SAAS,CAAC,YACP,MAAM,KAAK,WAAW;GACzB,WAAW,CAAC,SAAS;GACrB,QAAQ,QAAQ;GAChB,SAAS,QAAQ;GACjB,CAAC;AACF,MAAI,kBAAkB,MACrB,OAAM;AAEP,SAAO,EAAE,QAAQ,QAAQ;;CAiF1B,MAAM,gBACL,SACkD;EAClD,MAAM,qBAAqB,kBAAkB,cAE3C,MAAM,KAAK,KAAK,IAAI,YAAY;GAC/B,MAAM,QAAQ,KAAK;GACnB,QAAQ,QAAQ;GAChB,CAAC,EACD,KACF;EACD,MAAM,UAAU,qBAAqB,QAAQ,UAAU,oBAAoB,QAAQ,KAAK,IAAI;EAC5F,MAAM,EACL,SAAS,CAAC,iBACP,MAAM,KAAK,WAAW;GACzB,WAAW,CAAC,QAAQ;GACpB,QAAQ,QAAQ;GAChB,SAAS;IACR,qBAAqB;IACrB,SAAS;IACT;GACD,CAAC;AAEF,MAAI,uBAAuB,MAC1B,OAAM;EAGP,MAAM,YAAY,eAAe,YAAY,KAAK;EAClD,MAAM,UAAU,MAAM,YAAY;EAElC,MAAM,gBAAgB,UAAU,WAAW;EAC3C,MAAM,kBACL,OAAO,kBAAkB,YACzB,cAAc,WAAW,0BACzB,cAAc,SAAS;EAExB,MAAM,WAAW,QAAQ,MAAM,qBAAqB,QAAQ,KAAK,IAAI,OAAO;EAE5E,MAAM,YACL,OAAO,UAAU,WAAW,OAAO,WAChC,UAAU,WAAW,KACrB,mBAAmB,UAAU,WAAW,GAAG;AAE/C,SAAO,EACN,cAAc;GACb,OAAO,kBAAkB,kBAAkB;GAC3C,SAAS,YAAY;GACrB,QAAQ,YAAY;GACpB,SAAS,YAAY;GACrB,MAAM,YAAY;GAClB,qBAAqB,YAAY;GACjC,MAAM;IACL,MACC,OAAO,kBAAkB,WAAW,gBAAgB,mBAAmB,cAAc;IACtF,KAAK,QAAQ,KAAK;IAClB;GACD,OAAO;IACN,MAAM;IACN,KAAK;IACL;GACD,SAAS,kBAAkBA,OAAI,QAAQ,MAAM,SAAS,GAAG;GACzD,EACD;;CAGF,MAAM,sBACL,SACiE;EAOjE,MAAM,cAAc,uCALnB,MAAM,KAAK,KAAK,IAAI,YAAY;GAC/B,MAAM,QAAQ,KAAK;GACnB,QAAQ,QAAQ;GAChB,CAAC,EACD,KACyE;EAE3E,MAAM,EAAE,iBAAiB,MAAM,KAAK,gBAAgB;GACnD,UAAU,QAAQ;GAClB,MAAM;IACL,MAAM;IACN,KAAK,QAAQ,KAAK;IAClB;GACD,QAAQ,QAAQ;GAChB,CAAC;EAEF,MAAM,EAAE,WAAW,MAAM,KAAK,UAAU;GACvC,UAAU,aAAa;GACvB,QAAQ,QAAQ;GAChB,SAAS,QAAQ;GACjB,CAAC;AAEF,SAAO,EAAE,QAAQ;;CAGlB,MAAM,mBACL,SACqD;EACrD,MAAM,EAAE,QAAQ,UAAU,KAAK,KAAM,cAAc,YAAY;EAE/D,MAAM,SACL,YAAY,WAAW,QAAQ,UAC3B,QAAQ,OAAO,eAAe,QAAQ,OAAO,mBAAoB,SAClE,QAAQ;EAEZ,MAAM,cAAc,SACjB,YAAY,IAAI,CAAC,YAAY,QAAQ,QAAQ,EAAE,OAAO,CAAC,GACvD,YAAY,QAAQ,QAAQ;EAE/B,MAAM,eAAe,IAAI,SAAS,GAAG,WAAW;AAC/C,eAAY,iBAAiB,eAAe,OAAO,YAAY,OAAO,CAAC;IACtE;AAEF,eAAa,YAAY,GAEvB;EAMF,MAAM,WAAW,gBAAgB;GAAC;GAAG;GAAK;GAAK;GAAM;GAAK;EAC1D,MAAM,KAAK,KAAK,KAAK;EACrB,IAAI,gBAAgB;EACpB,MAAM,eACL,SAAS,SAAS,IACf,SAAS,SAAS,SAAS,MAAM,SAAS,SAAS,SAAS,MAAM,KAClE;AAEJ,SAAO,MAAM;AACZ,OAAI,gBAAgB,SAAS,QAAQ;IACpC,MAAM,YAAY,KAAK,SAAS,iBAAiB,KAAK,KAAK;AAC3D;AACA,QAAI,YAAY,EACf,OAAM,QAAQ,KAAK,CAClB,IAAI,SAAS,YAAY,WAAW,SAAS,UAAU,CAAC,EACxD,aACA,CAAC;SAGH,OAAM,QAAQ,KAAK,CAClB,IAAI,SAAS,YAAY,WAAW,SAAS,aAAa,CAAC,EAC3D,aACA,CAAC;AAGH,eAAY,gBAAgB;AAC5B,OAAI;AACH,WAAO,MAAM,KAAK,eAAe;KAChC;KACA;KACA,QAAQ;KACR,CAAC;WACK;;;CAIV,MAAM,0BAAkF,EACvF,aACA,QACA,uBAAuB,EAAE,EACzB,GAAG,SAGF;EACD,IAAI;AAEJ,MAAI,uBAAuB,WAC1B,oBAAmB;OACb;AACN,eAAY,kBAAkB,OAAO,cAAc,CAAC;AACpD,sBAAmB,MAAM,YAAY,MAAM,EAAE,QAAQ,MAAM,CAAC;;EAG7D,MAAM,EAAE,cAAc,MAAM,OAAO,gBAAgB,iBAAiB;AAEpE,SAAO,KAAK,mBAAmB;GAC9B,aAAa;GACb,YAAY,CAAC,WAAW,GAAG,qBAAqB;GAChD,GAAG;GACH,CAAC"}
@@ -1,5 +1,4 @@
1
1
  import { SuiClientTypes } from "./types.mjs";
2
- import "../jsonRpc/index.mjs";
3
2
 
4
3
  //#region src/client/errors.d.ts
5
4
  declare class SuiClientError extends Error {}
@@ -10,6 +9,36 @@ declare class SimulationError extends SuiClientError {
10
9
  executionError?: SuiClientTypes.ExecutionError;
11
10
  });
12
11
  }
12
+ type ObjectErrorReason = 'notFound' | 'deleted' | 'unknown';
13
+ interface ObjectErrorOptions {
14
+ /** A transport-neutral reason shared by all Core API clients. */
15
+ reason: ObjectErrorReason;
16
+ /** The requested object ID, when the lookup identifies one. */
17
+ objectId?: string;
18
+ /** The original transport error or response. */
19
+ cause?: unknown;
20
+ }
21
+ /** An error returned for an individual object lookup. */
22
+ declare class ObjectError extends SuiClientError {
23
+ /** The transport's error code. Use `reason` for transport-neutral handling. */
24
+ code: string;
25
+ /** A transport-neutral reason shared by all Core API clients. */
26
+ readonly reason: ObjectErrorReason;
27
+ /** The requested object ID, when the lookup identifies one. */
28
+ readonly objectId?: string;
29
+ constructor(code: string, message: string, options?: ObjectErrorOptions);
30
+ }
31
+ type TransactionErrorReason = 'notFound';
32
+ /** An error returned by a transaction lookup. */
33
+ declare class TransactionError extends SuiClientError {
34
+ /** A transport-neutral reason shared by all Core API clients. */
35
+ readonly reason: TransactionErrorReason;
36
+ /** The requested transaction digest. */
37
+ readonly digest: string;
38
+ constructor(reason: TransactionErrorReason, digest: string, options?: {
39
+ cause?: unknown;
40
+ });
41
+ }
13
42
  //#endregion
14
- export { SimulationError };
43
+ export { ObjectError, ObjectErrorOptions, ObjectErrorReason, SimulationError, SuiClientError, TransactionError, TransactionErrorReason };
15
44
  //# sourceMappingURL=errors.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.mts","names":[],"sources":["../../src/client/errors.ts"],"mappings":";;;;cAMa,cAAA,SAAuB,KAAA;AAAA,cAEvB,eAAA,SAAwB,cAAA;EACpC,cAAA,GAAiB,cAAA,CAAe,cAAA;cAG/B,OAAA,UACA,OAAA;IAAY,KAAA;IAAiB,cAAA,GAAiB,cAAA,CAAe,cAAA;EAAA;AAAA"}
1
+ {"version":3,"file":"errors.d.mts","names":[],"sources":["../../src/client/errors.ts"],"mappings":";;;cAKa,cAAA,SAAuB,KAAA;AAAA,cAEvB,eAAA,SAAwB,cAAA;EACpC,cAAA,GAAiB,cAAA,CAAe,cAAA;cAG/B,OAAA,UACA,OAAA;IAAY,KAAA;IAAiB,cAAA,GAAiB,cAAA,CAAe,cAAA;EAAA;AAAA;AAAA,KAOnD,iBAAA;AAAA,UAEK,kBAAA;EAT+B;EAW/C,MAAA,EAAQ,iBAAA;EAhB0C;EAkBlD,QAAA;EAlBoC;EAoBpC,KAAA;AAAA;;cAIY,WAAA,SAAoB,cAAA;EApB/B;EAsBD,IAAA;EArB8B;EAAA,SAuBrB,MAAA,EAAQ,iBAAA;EAvB6C;EAAA,SAyBrD,QAAA;cAEG,IAAA,UAAc,OAAA,UAAiB,OAAA,GAAU,kBAAA;AAAA;AAAA,KAQ1C,sBAAA;;cAOC,gBAAA,SAAyB,cAAA;EAnCT;EAAA,SAqCnB,MAAA,EAAQ,sBAAA;EAnCD;EAAA,SAqCP,MAAA;cAEG,MAAA,EAAQ,sBAAA,EAAwB,MAAA,UAAgB,OAAA;IAAY,KAAA;EAAA;AAAA"}
@@ -6,23 +6,25 @@ var SimulationError = class extends SuiClientError {
6
6
  this.executionError = options?.executionError;
7
7
  }
8
8
  };
9
- var ObjectError = class ObjectError extends SuiClientError {
10
- constructor(code, message) {
11
- super(message);
9
+ /** An error returned for an individual object lookup. */
10
+ var ObjectError = class extends SuiClientError {
11
+ constructor(code, message, options) {
12
+ super(message, { cause: options?.cause });
12
13
  this.code = code;
14
+ this.reason = options?.reason ?? "unknown";
15
+ this.objectId = options?.objectId;
13
16
  }
14
- static fromResponse(response, objectId) {
15
- switch (response.code) {
16
- case "notExists": return new ObjectError(response.code, `Object ${response.object_id} does not exist`);
17
- case "dynamicFieldNotFound": return new ObjectError(response.code, `Dynamic field not found for object ${response.parent_object_id}`);
18
- case "deleted": return new ObjectError(response.code, `Object ${response.object_id} has been deleted`);
19
- case "displayError": return new ObjectError(response.code, `Display error: ${response.error}`);
20
- case "unknown":
21
- default: return new ObjectError(response.code, `Unknown error while loading object${objectId ? ` ${objectId}` : ""}`);
22
- }
17
+ };
18
+ const TRANSACTION_ERROR_MESSAGES = { notFound: (digest) => `Transaction ${digest} not found` };
19
+ /** An error returned by a transaction lookup. */
20
+ var TransactionError = class extends SuiClientError {
21
+ constructor(reason, digest, options) {
22
+ super(TRANSACTION_ERROR_MESSAGES[reason](digest), options);
23
+ this.reason = reason;
24
+ this.digest = digest;
23
25
  }
24
26
  };
25
27
 
26
28
  //#endregion
27
- export { ObjectError, SimulationError };
29
+ export { ObjectError, SimulationError, SuiClientError, TransactionError };
28
30
  //# sourceMappingURL=errors.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.mjs","names":[],"sources":["../../src/client/errors.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ObjectResponseError } from '../jsonRpc/index.js';\nimport type { SuiClientTypes } from './types.js';\n\nexport class SuiClientError extends Error {}\n\nexport class SimulationError extends SuiClientError {\n\texecutionError?: SuiClientTypes.ExecutionError;\n\n\tconstructor(\n\t\tmessage: string,\n\t\toptions?: { cause?: unknown; executionError?: SuiClientTypes.ExecutionError },\n\t) {\n\t\tsuper(message, { cause: options?.cause });\n\t\tthis.executionError = options?.executionError;\n\t}\n}\n\nexport class ObjectError extends SuiClientError {\n\tcode: string;\n\n\tconstructor(code: string, message: string) {\n\t\tsuper(message);\n\t\tthis.code = code;\n\t}\n\n\tstatic fromResponse(response: ObjectResponseError, objectId?: string): ObjectError {\n\t\tswitch (response.code) {\n\t\t\tcase 'notExists':\n\t\t\t\treturn new ObjectError(response.code, `Object ${response.object_id} does not exist`);\n\t\t\tcase 'dynamicFieldNotFound':\n\t\t\t\treturn new ObjectError(\n\t\t\t\t\tresponse.code,\n\t\t\t\t\t`Dynamic field not found for object ${response.parent_object_id}`,\n\t\t\t\t);\n\t\t\tcase 'deleted':\n\t\t\t\treturn new ObjectError(response.code, `Object ${response.object_id} has been deleted`);\n\t\t\tcase 'displayError':\n\t\t\t\treturn new ObjectError(response.code, `Display error: ${response.error}`);\n\t\t\tcase 'unknown':\n\t\t\tdefault:\n\t\t\t\treturn new ObjectError(\n\t\t\t\t\tresponse.code,\n\t\t\t\t\t`Unknown error while loading object${objectId ? ` ${objectId}` : ''}`,\n\t\t\t\t);\n\t\t}\n\t}\n}\n"],"mappings":";AAMA,IAAa,iBAAb,cAAoC,MAAM;AAE1C,IAAa,kBAAb,cAAqC,eAAe;CAGnD,YACC,SACA,SACC;AACD,QAAM,SAAS,EAAE,OAAO,SAAS,OAAO,CAAC;AACzC,OAAK,iBAAiB,SAAS;;;AAIjC,IAAa,cAAb,MAAa,oBAAoB,eAAe;CAG/C,YAAY,MAAc,SAAiB;AAC1C,QAAM,QAAQ;AACd,OAAK,OAAO;;CAGb,OAAO,aAAa,UAA+B,UAAgC;AAClF,UAAQ,SAAS,MAAjB;GACC,KAAK,YACJ,QAAO,IAAI,YAAY,SAAS,MAAM,UAAU,SAAS,UAAU,iBAAiB;GACrF,KAAK,uBACJ,QAAO,IAAI,YACV,SAAS,MACT,sCAAsC,SAAS,mBAC/C;GACF,KAAK,UACJ,QAAO,IAAI,YAAY,SAAS,MAAM,UAAU,SAAS,UAAU,mBAAmB;GACvF,KAAK,eACJ,QAAO,IAAI,YAAY,SAAS,MAAM,kBAAkB,SAAS,QAAQ;GAC1E,KAAK;GACL,QACC,QAAO,IAAI,YACV,SAAS,MACT,qCAAqC,WAAW,IAAI,aAAa,KACjE"}
1
+ {"version":3,"file":"errors.mjs","names":[],"sources":["../../src/client/errors.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { SuiClientTypes } from './types.js';\n\nexport class SuiClientError extends Error {}\n\nexport class SimulationError extends SuiClientError {\n\texecutionError?: SuiClientTypes.ExecutionError;\n\n\tconstructor(\n\t\tmessage: string,\n\t\toptions?: { cause?: unknown; executionError?: SuiClientTypes.ExecutionError },\n\t) {\n\t\tsuper(message, { cause: options?.cause });\n\t\tthis.executionError = options?.executionError;\n\t}\n}\n\nexport type ObjectErrorReason = 'notFound' | 'deleted' | 'unknown';\n\nexport interface ObjectErrorOptions {\n\t/** A transport-neutral reason shared by all Core API clients. */\n\treason: ObjectErrorReason;\n\t/** The requested object ID, when the lookup identifies one. */\n\tobjectId?: string;\n\t/** The original transport error or response. */\n\tcause?: unknown;\n}\n\n/** An error returned for an individual object lookup. */\nexport class ObjectError extends SuiClientError {\n\t/** The transport's error code. Use `reason` for transport-neutral handling. */\n\tcode: string;\n\t/** A transport-neutral reason shared by all Core API clients. */\n\treadonly reason: ObjectErrorReason;\n\t/** The requested object ID, when the lookup identifies one. */\n\treadonly objectId?: string;\n\n\tconstructor(code: string, message: string, options?: ObjectErrorOptions) {\n\t\tsuper(message, { cause: options?.cause });\n\t\tthis.code = code;\n\t\tthis.reason = options?.reason ?? 'unknown';\n\t\tthis.objectId = options?.objectId;\n\t}\n}\n\nexport type TransactionErrorReason = 'notFound';\n\nconst TRANSACTION_ERROR_MESSAGES: Record<TransactionErrorReason, (digest: string) => string> = {\n\tnotFound: (digest) => `Transaction ${digest} not found`,\n};\n\n/** An error returned by a transaction lookup. */\nexport class TransactionError extends SuiClientError {\n\t/** A transport-neutral reason shared by all Core API clients. */\n\treadonly reason: TransactionErrorReason;\n\t/** The requested transaction digest. */\n\treadonly digest: string;\n\n\tconstructor(reason: TransactionErrorReason, digest: string, options?: { cause?: unknown }) {\n\t\tsuper(TRANSACTION_ERROR_MESSAGES[reason](digest), options);\n\t\tthis.reason = reason;\n\t\tthis.digest = digest;\n\t}\n}\n"],"mappings":";AAKA,IAAa,iBAAb,cAAoC,MAAM;AAE1C,IAAa,kBAAb,cAAqC,eAAe;CAGnD,YACC,SACA,SACC;AACD,QAAM,SAAS,EAAE,OAAO,SAAS,OAAO,CAAC;AACzC,OAAK,iBAAiB,SAAS;;;;AAgBjC,IAAa,cAAb,cAAiC,eAAe;CAQ/C,YAAY,MAAc,SAAiB,SAA8B;AACxE,QAAM,SAAS,EAAE,OAAO,SAAS,OAAO,CAAC;AACzC,OAAK,OAAO;AACZ,OAAK,SAAS,SAAS,UAAU;AACjC,OAAK,WAAW,SAAS;;;AAM3B,MAAM,6BAAyF,EAC9F,WAAW,WAAW,eAAe,OAAO,aAC5C;;AAGD,IAAa,mBAAb,cAAsC,eAAe;CAMpD,YAAY,QAAgC,QAAgB,SAA+B;AAC1F,QAAM,2BAA2B,QAAQ,OAAO,EAAE,QAAQ;AAC1D,OAAK,SAAS;AACd,OAAK,SAAS"}
@@ -3,6 +3,6 @@ import { ClientWithExtensions, SuiClientRegistration, SuiClientTypes } from "./t
3
3
  import { ClientWithCoreApi, CoreClient, CoreClientOptions } from "./core.mjs";
4
4
  import { BaseClient } from "./client.mjs";
5
5
  import { extractStatusFromEffectsBcs, formatMoveAbortMessage, parseTransactionBcs, parseTransactionEffectsBcs } from "./utils.mjs";
6
- import { SimulationError } from "./errors.mjs";
6
+ import { ObjectError, ObjectErrorOptions, ObjectErrorReason, SimulationError, SuiClientError, TransactionError, TransactionErrorReason } from "./errors.mjs";
7
7
  import { NamedPackagesOverrides } from "./mvr.mjs";
8
- export { BaseClient, ClientCache, type ClientCacheOptions, type ClientWithCoreApi, type ClientWithExtensions, CoreClient, type CoreClientOptions, type NamedPackagesOverrides, SimulationError, type SuiClientRegistration, type SuiClientTypes, extractStatusFromEffectsBcs, formatMoveAbortMessage, parseTransactionBcs, parseTransactionEffectsBcs };
8
+ export { BaseClient, ClientCache, type ClientCacheOptions, type ClientWithCoreApi, type ClientWithExtensions, CoreClient, type CoreClientOptions, type NamedPackagesOverrides, ObjectError, type ObjectErrorOptions, type ObjectErrorReason, SimulationError, SuiClientError, type SuiClientRegistration, type SuiClientTypes, TransactionError, type TransactionErrorReason, extractStatusFromEffectsBcs, formatMoveAbortMessage, parseTransactionBcs, parseTransactionEffectsBcs };
@@ -2,6 +2,6 @@ import { ClientCache } from "./cache.mjs";
2
2
  import { BaseClient } from "./client.mjs";
3
3
  import { CoreClient } from "./core.mjs";
4
4
  import { extractStatusFromEffectsBcs, formatMoveAbortMessage, parseTransactionBcs, parseTransactionEffectsBcs } from "./utils.mjs";
5
- import { SimulationError } from "./errors.mjs";
5
+ import { ObjectError, SimulationError, SuiClientError, TransactionError } from "./errors.mjs";
6
6
 
7
- export { BaseClient, ClientCache, CoreClient, SimulationError, extractStatusFromEffectsBcs, formatMoveAbortMessage, parseTransactionBcs, parseTransactionEffectsBcs };
7
+ export { BaseClient, ClientCache, CoreClient, ObjectError, SimulationError, SuiClientError, TransactionError, extractStatusFromEffectsBcs, formatMoveAbortMessage, parseTransactionBcs, parseTransactionEffectsBcs };
@@ -1 +1 @@
1
- {"version":3,"file":"mvr.d.mts","names":[],"sources":["../../src/client/mvr.ts"],"mappings":";;;;KAuaY,sBAAA;EACX,QAAA,EAAU,MAAA;EACV,KAAA,EAAO,MAAA;AAAA"}
1
+ {"version":3,"file":"mvr.d.mts","names":[],"sources":["../../src/client/mvr.ts"],"mappings":";;;;KA6aY,sBAAA;EACX,QAAA,EAAU,MAAA;EACV,KAAA,EAAO,MAAA;AAAA"}
@@ -185,6 +185,7 @@ function hasMvrName(nameOrType) {
185
185
  */
186
186
  function raceSignal(promise, signal) {
187
187
  if (!signal) return promise;
188
+ if (signal.aborted) return Promise.reject(signal.reason);
188
189
  return new Promise((resolve, reject) => {
189
190
  const onAbort = () => reject(signal.reason);
190
191
  signal.addEventListener("abort", onAbort, { once: true });
@@ -1 +1 @@
1
- {"version":3,"file":"mvr.mjs","names":["#cache","#url","#pageSize","#overrides","#mvrPackageDataLoader","#resolvePackages","#mvrTypeDataLoader","#resolveTypes","#fetch"],"sources":["../../src/client/mvr.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { chunk, DataLoader } from '@mysten/utils';\nimport { isValidNamedPackage, isValidNamedType } from '../utils/move-registry.js';\nimport type { StructTag } from '../utils/sui-types.js';\nimport {\n\tisValidSuiAddress,\n\tnormalizeStructTag,\n\tnormalizeSuiAddress,\n\tparseStructTag,\n} from '../utils/sui-types.js';\nimport type { ClientCache } from './cache.js';\nimport type { TransactionDataBuilder } from '../transactions/TransactionData.js';\nimport { PACKAGE_VERSION } from '../version.js';\nimport type { SuiClientTypes } from './types.js';\n\nconst NAME_SEPARATOR = '/';\nconst MVR_API_HEADER = {\n\t'Mvr-Source': `@mysten/sui@${PACKAGE_VERSION}`,\n};\n\nexport interface MvrClientOptions {\n\tcache: ClientCache;\n\turl?: string;\n\tpageSize?: number;\n\toverrides?: {\n\t\tpackages?: Record<string, string>;\n\t\ttypes?: Record<string, string>;\n\t};\n}\n\nexport class MvrClient implements SuiClientTypes.MvrMethods {\n\t#cache: ClientCache;\n\t#url?: string;\n\t#pageSize: number;\n\t#overrides: {\n\t\tpackages?: Record<string, string>;\n\t\ttypes?: Record<string, string>;\n\t};\n\n\tconstructor({ cache, url, pageSize = 50, overrides }: MvrClientOptions) {\n\t\tthis.#cache = cache;\n\t\tthis.#url = url;\n\t\tthis.#pageSize = pageSize;\n\t\tthis.#overrides = {\n\t\t\tpackages: overrides?.packages,\n\t\t\ttypes: overrides?.types,\n\t\t};\n\n\t\tvalidateOverrides(this.#overrides);\n\t}\n\n\tget #mvrPackageDataLoader() {\n\t\treturn this.#cache.readSync(['#mvrPackageDataLoader', this.#url ?? ''], () => {\n\t\t\tconst loader = new DataLoader<string, string>(async (packages) => {\n\t\t\t\tif (!this.#url) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`MVR Api URL is not set for the current client (resolving ${packages.join(', ')})`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tconst resolved = await this.#resolvePackages(packages);\n\n\t\t\t\treturn packages.map(\n\t\t\t\t\t(pkg) => resolved[pkg] ?? new Error(`Failed to resolve package: ${pkg}`),\n\t\t\t\t);\n\t\t\t});\n\t\t\tconst overrides = this.#overrides?.packages;\n\n\t\t\tif (overrides) {\n\t\t\t\tfor (const [pkg, id] of Object.entries(overrides)) {\n\t\t\t\t\tloader.prime(pkg, id);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn loader;\n\t\t});\n\t}\n\n\tget #mvrTypeDataLoader() {\n\t\treturn this.#cache.readSync(['#mvrTypeDataLoader', this.#url ?? ''], () => {\n\t\t\tconst loader = new DataLoader<string, string>(async (types) => {\n\t\t\t\tif (!this.#url) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`MVR Api URL is not set for the current client (resolving ${types.join(', ')})`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tconst resolved = await this.#resolveTypes(types);\n\n\t\t\t\treturn types.map((type) => resolved[type] ?? new Error(`Failed to resolve type: ${type}`));\n\t\t\t});\n\n\t\t\tconst overrides = this.#overrides?.types;\n\n\t\t\tif (overrides) {\n\t\t\t\tfor (const [type, id] of Object.entries(overrides)) {\n\t\t\t\t\tloader.prime(type, id);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn loader;\n\t\t});\n\t}\n\n\tasync #resolvePackages(packages: readonly string[]) {\n\t\tif (packages.length === 0) return {};\n\n\t\tconst batches = chunk(packages, this.#pageSize);\n\t\tconst results: Record<string, string> = {};\n\n\t\tawait Promise.all(\n\t\t\tbatches.map(async (batch) => {\n\t\t\t\tconst data = await this.#fetch<{ resolution: Record<string, { package_id: string }> }>(\n\t\t\t\t\t'/v1/resolution/bulk',\n\t\t\t\t\t{\n\t\t\t\t\t\tnames: batch,\n\t\t\t\t\t},\n\t\t\t\t);\n\n\t\t\t\tif (!data?.resolution) return;\n\n\t\t\t\tfor (const pkg of Object.keys(data?.resolution)) {\n\t\t\t\t\tconst pkgData = data.resolution[pkg]?.package_id;\n\n\t\t\t\t\tif (!pkgData) continue;\n\n\t\t\t\t\tresults[pkg] = pkgData;\n\t\t\t\t}\n\t\t\t}),\n\t\t);\n\n\t\treturn results;\n\t}\n\n\tasync #resolveTypes(types: readonly string[]) {\n\t\tif (types.length === 0) return {};\n\n\t\tconst batches = chunk(types, this.#pageSize);\n\t\tconst results: Record<string, string> = {};\n\n\t\tawait Promise.all(\n\t\t\tbatches.map(async (batch) => {\n\t\t\t\tconst data = await this.#fetch<{ resolution: Record<string, { type_tag: string }> }>(\n\t\t\t\t\t'/v1/struct-definition/bulk',\n\t\t\t\t\t{\n\t\t\t\t\t\ttypes: batch,\n\t\t\t\t\t},\n\t\t\t\t);\n\n\t\t\t\tif (!data?.resolution) return;\n\n\t\t\t\tfor (const type of Object.keys(data?.resolution)) {\n\t\t\t\t\tconst typeData = data.resolution[type]?.type_tag;\n\t\t\t\t\tif (!typeData) continue;\n\n\t\t\t\t\tresults[type] = typeData;\n\t\t\t\t}\n\t\t\t}),\n\t\t);\n\n\t\treturn results;\n\t}\n\n\tasync #fetch<T>(url: string, body: Record<string, unknown>): Promise<T> {\n\t\tif (!this.#url) {\n\t\t\tthrow new Error('MVR Api URL is not set for the current client');\n\t\t}\n\n\t\tconst response = await fetch(`${this.#url}${url}`, {\n\t\t\tmethod: 'POST',\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t...MVR_API_HEADER,\n\t\t\t},\n\t\t\tbody: JSON.stringify(body),\n\t\t});\n\n\t\tif (!response.ok) {\n\t\t\tconst errorBody = await response.json().catch(() => ({}));\n\t\t\tthrow new Error(`Failed to resolve types: ${errorBody?.message}`);\n\t\t}\n\n\t\treturn response.json();\n\t}\n\n\tasync resolvePackage({\n\t\tpackage: name,\n\t\tsignal,\n\t}: SuiClientTypes.MvrResolvePackageOptions): Promise<SuiClientTypes.MvrResolvePackageResponse> {\n\t\tsignal?.throwIfAborted();\n\t\tif (!hasMvrName(name)) {\n\t\t\treturn {\n\t\t\t\tpackage: name,\n\t\t\t};\n\t\t}\n\t\tconst resolved = await raceSignal(this.#mvrPackageDataLoader.load(name), signal);\n\t\treturn {\n\t\t\tpackage: resolved,\n\t\t};\n\t}\n\n\tasync resolveType({\n\t\ttype,\n\t\tsignal,\n\t}: SuiClientTypes.MvrResolveTypeOptions): Promise<SuiClientTypes.MvrResolveTypeResponse> {\n\t\tsignal?.throwIfAborted();\n\t\tif (!hasMvrName(type)) {\n\t\t\treturn {\n\t\t\t\ttype,\n\t\t\t};\n\t\t}\n\n\t\tconst mvrTypes = [...extractMvrTypes(type)];\n\t\tconst resolvedTypes = await raceSignal(this.#mvrTypeDataLoader.loadMany(mvrTypes), signal);\n\n\t\tconst typeMap: Record<string, string> = {};\n\n\t\tfor (let i = 0; i < mvrTypes.length; i++) {\n\t\t\tconst resolvedType = resolvedTypes[i];\n\t\t\tif (resolvedType instanceof Error) {\n\t\t\t\tthrow resolvedType;\n\t\t\t}\n\t\t\ttypeMap[mvrTypes[i]] = resolvedType;\n\t\t}\n\n\t\treturn {\n\t\t\ttype: replaceMvrNames(type, typeMap),\n\t\t};\n\t}\n\n\tasync resolve({\n\t\ttypes = [],\n\t\tpackages = [],\n\t\tsignal,\n\t}: SuiClientTypes.MvrResolveOptions): Promise<SuiClientTypes.MvrResolveResponse> {\n\t\tsignal?.throwIfAborted();\n\t\tconst mvrTypes = new Set<string>();\n\n\t\tfor (const type of types ?? []) {\n\t\t\textractMvrTypes(type, mvrTypes);\n\t\t}\n\n\t\tconst typesArray = [...mvrTypes];\n\t\tconst [resolvedTypes, resolvedPackages] = await raceSignal(\n\t\t\tPromise.all([\n\t\t\t\ttypesArray.length > 0 ? this.#mvrTypeDataLoader.loadMany(typesArray) : [],\n\t\t\t\tpackages.length > 0 ? this.#mvrPackageDataLoader.loadMany(packages) : [],\n\t\t\t]),\n\t\t\tsignal,\n\t\t);\n\n\t\tconst typeMap: Record<string, string> = {\n\t\t\t...this.#overrides?.types,\n\t\t};\n\n\t\tfor (const [i, type] of typesArray.entries()) {\n\t\t\tconst resolvedType = resolvedTypes[i];\n\t\t\tif (resolvedType instanceof Error) {\n\t\t\t\tthrow resolvedType;\n\t\t\t}\n\t\t\ttypeMap[type] = resolvedType;\n\t\t}\n\n\t\tconst replacedTypes: Record<\n\t\t\tstring,\n\t\t\t{\n\t\t\t\ttype: string;\n\t\t\t}\n\t\t> = {};\n\n\t\tfor (const type of types ?? []) {\n\t\t\tconst resolvedType = replaceMvrNames(type, typeMap);\n\n\t\t\treplacedTypes[type] = {\n\t\t\t\ttype: resolvedType,\n\t\t\t};\n\t\t}\n\n\t\tconst replacedPackages: Record<\n\t\t\tstring,\n\t\t\t{\n\t\t\t\tpackage: string;\n\t\t\t}\n\t\t> = {};\n\n\t\tfor (const [i, pkg] of (packages ?? []).entries()) {\n\t\t\tconst resolvedPkg = this.#overrides?.packages?.[pkg] ?? resolvedPackages[i];\n\n\t\t\tif (resolvedPkg instanceof Error) {\n\t\t\t\tthrow resolvedPkg;\n\t\t\t}\n\n\t\t\treplacedPackages[pkg] = {\n\t\t\t\tpackage: resolvedPkg,\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\ttypes: replacedTypes,\n\t\t\tpackages: replacedPackages,\n\t\t};\n\t}\n}\n\nfunction validateOverrides(overrides?: {\n\tpackages?: Record<string, string>;\n\ttypes?: Record<string, string>;\n}) {\n\tif (overrides?.packages) {\n\t\tfor (const [pkg, id] of Object.entries(overrides.packages)) {\n\t\t\tif (!isValidNamedPackage(pkg)) {\n\t\t\t\tthrow new Error(`Invalid package name: ${pkg}`);\n\t\t\t}\n\t\t\tif (!isValidSuiAddress(normalizeSuiAddress(id))) {\n\t\t\t\tthrow new Error(`Invalid package ID: ${id}`);\n\t\t\t}\n\t\t}\n\t}\n\n\tif (overrides?.types) {\n\t\tfor (const [type, val] of Object.entries(overrides.types)) {\n\t\t\t// validate that types are first-level only.\n\t\t\tif (parseStructTag(type).typeParams.length > 0) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t'Type overrides must be first-level only. If you want to supply generic types, just pass each type individually.',\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst parsedValue = parseStructTag(val);\n\n\t\t\tif (!isValidSuiAddress(parsedValue.address)) {\n\t\t\t\tthrow new Error(`Invalid type: ${val}`);\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * Extracts all named types from a given type.\n */\nexport function extractMvrTypes(type: string | StructTag, types = new Set<string>()) {\n\tif (typeof type === 'string' && !hasMvrName(type)) return types;\n\n\tif (typeof type === 'string' && type.startsWith('vector<') && type.endsWith('>')) {\n\t\treturn extractMvrTypes(type.slice(7, -1), types);\n\t}\n\n\tconst tag = isStructTag(type) ? type : parseStructTag(type);\n\n\tif (hasMvrName(tag.address)) types.add(`${tag.address}::${tag.module}::${tag.name}`);\n\n\tfor (const param of tag.typeParams) {\n\t\textractMvrTypes(param, types);\n\t}\n\n\treturn types;\n}\n\n/**\n * Traverses a type, and replaces any found names with their resolved equivalents,\n * based on the supplied type cache.\n */\nfunction replaceMvrNames(tag: string | StructTag, typeCache: Record<string, string>): string {\n\tif (typeof tag === 'string' && !tag.includes('::')) {\n\t\treturn tag;\n\t}\n\n\tif (typeof tag === 'string' && tag.startsWith('vector<') && tag.endsWith('>')) {\n\t\treturn `vector<${replaceMvrNames(tag.slice(7, -1), typeCache)}>`;\n\t}\n\n\tconst type = isStructTag(tag) ? tag : parseStructTag(tag);\n\n\tconst typeTag = `${type.address}::${type.module}::${type.name}`;\n\tconst cacheHit = typeCache[typeTag];\n\n\treturn normalizeStructTag({\n\t\t...type,\n\t\taddress: cacheHit ? cacheHit.split('::')[0] : type.address,\n\t\ttypeParams: type.typeParams.map((param) => replaceMvrNames(param, typeCache)),\n\t});\n}\n\nexport function hasMvrName(nameOrType: string) {\n\treturn (\n\t\tnameOrType.includes(NAME_SEPARATOR) || nameOrType.includes('@') || nameOrType.includes('.sui')\n\t);\n}\n\n/**\n * Races a promise against an optional AbortSignal. MVR resolution batches lookups\n * from independent callers into a single request via a shared DataLoader, so a\n * caller's signal cannot cancel the shared network request without affecting other\n * callers. Instead, this rejects the awaiting caller as soon as its signal aborts\n * (the underlying request continues in the background).\n *\n * The same isolation applies to any shared/cached request (e.g. `cache.read`).\n */\nexport function raceSignal<T>(promise: Promise<T>, signal?: AbortSignal): Promise<T> {\n\tif (!signal) {\n\t\treturn promise;\n\t}\n\n\treturn new Promise<T>((resolve, reject) => {\n\t\tconst onAbort = () => reject(signal.reason);\n\t\tsignal.addEventListener('abort', onAbort, { once: true });\n\n\t\tpromise.then(resolve, reject).finally(() => {\n\t\t\tsignal.removeEventListener('abort', onAbort);\n\t\t});\n\t});\n}\n\nfunction isStructTag(type: string | StructTag): type is StructTag {\n\treturn (\n\t\ttypeof type === 'object' &&\n\t\t'address' in type &&\n\t\t'module' in type &&\n\t\t'name' in type &&\n\t\t'typeParams' in type\n\t);\n}\n\nexport type NamedPackagesOverrides = {\n\tpackages: Record<string, string>;\n\ttypes: Record<string, string>;\n};\n\n/**\n * Looks up all `.move` names in a transaction block.\n * Returns a list of all the names found.\n */\nexport function findNamesInTransaction(builder: TransactionDataBuilder): {\n\tpackages: string[];\n\ttypes: string[];\n} {\n\tconst packages: Set<string> = new Set();\n\tconst types: Set<string> = new Set();\n\n\tfor (const command of builder.commands) {\n\t\tswitch (command.$kind) {\n\t\t\tcase 'MakeMoveVec':\n\t\t\t\tif (command.MakeMoveVec.type) {\n\t\t\t\t\tgetNamesFromTypeList([command.MakeMoveVec.type]).forEach((type) => {\n\t\t\t\t\t\ttypes.add(type);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'MoveCall':\n\t\t\t\tconst moveCall = command.MoveCall;\n\n\t\t\t\tconst pkg = moveCall.package.split('::')[0];\n\t\t\t\tif (hasMvrName(pkg)) {\n\t\t\t\t\tif (!isValidNamedPackage(pkg)) throw new Error(`Invalid package name: ${pkg}`);\n\t\t\t\t\tpackages.add(pkg);\n\t\t\t\t}\n\n\t\t\t\tgetNamesFromTypeList(moveCall.typeArguments ?? []).forEach((type) => {\n\t\t\t\t\ttypes.add(type);\n\t\t\t\t});\n\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn {\n\t\tpackages: [...packages],\n\t\ttypes: [...types],\n\t};\n}\n\n/**\n * Replace all names & types in a transaction block\n * with their resolved names/types.\n */\nexport function replaceNames(\n\tbuilder: TransactionDataBuilder,\n\tresolved: SuiClientTypes.MvrResolveResponse,\n) {\n\tfor (const command of builder.commands) {\n\t\t// Replacements for `MakeMoveVec` commands (that can include types)\n\t\tif (command.MakeMoveVec?.type) {\n\t\t\tif (!hasMvrName(command.MakeMoveVec.type)) continue;\n\t\t\tif (!resolved.types[command.MakeMoveVec.type])\n\t\t\t\tthrow new Error(`No resolution found for type: ${command.MakeMoveVec.type}`);\n\t\t\tcommand.MakeMoveVec.type = resolved.types[command.MakeMoveVec.type].type;\n\t\t}\n\t\t// Replacements for `MoveCall` commands (that can include packages & types)\n\t\tconst tx = command.MoveCall;\n\t\tif (!tx) continue;\n\n\t\tconst nameParts = tx.package.split('::');\n\t\tconst name = nameParts[0];\n\n\t\tif (hasMvrName(name) && !resolved.packages[name])\n\t\t\tthrow new Error(`No address found for package: ${name}`);\n\n\t\t// Replace package name with address.\n\t\tif (hasMvrName(name)) {\n\t\t\tnameParts[0] = resolved.packages[name].package;\n\t\t\ttx.package = nameParts.join('::');\n\t\t}\n\n\t\tconst types = tx.typeArguments;\n\t\tif (!types) continue;\n\n\t\tfor (let i = 0; i < types.length; i++) {\n\t\t\tif (!hasMvrName(types[i])) continue;\n\n\t\t\tif (!resolved.types[types[i]]) throw new Error(`No resolution found for type: ${types[i]}`);\n\t\t\ttypes[i] = resolved.types[types[i]].type;\n\t\t}\n\n\t\ttx.typeArguments = types;\n\t}\n}\n\n/**\n * Returns a list of unique types that include a name\n * from the given list. This list is retrieved from the Transaction Data.\n */\nfunction getNamesFromTypeList(types: string[]) {\n\tconst names = new Set<string>();\n\tfor (const type of types) {\n\t\tif (hasMvrName(type)) {\n\t\t\tif (!isValidNamedType(type)) throw new Error(`Invalid type with names: ${type}`);\n\t\t\tnames.add(type);\n\t\t}\n\t}\n\treturn names;\n}\n"],"mappings":";;;;;;AAiBA,MAAM,iBAAiB;AACvB,MAAM,iBAAiB,EACtB,cAAc,eAAe,mBAC7B;AAYD,IAAa,YAAb,MAA4D;CAC3D;CACA;CACA;CACA;CAKA,YAAY,EAAE,OAAO,KAAK,WAAW,IAAI,aAA+B;AACvE,QAAKA,QAAS;AACd,QAAKC,MAAO;AACZ,QAAKC,WAAY;AACjB,QAAKC,YAAa;GACjB,UAAU,WAAW;GACrB,OAAO,WAAW;GAClB;AAED,oBAAkB,MAAKA,UAAW;;CAGnC,KAAIC,uBAAwB;AAC3B,SAAO,MAAKJ,MAAO,SAAS,CAAC,yBAAyB,MAAKC,OAAQ,GAAG,QAAQ;GAC7E,MAAM,SAAS,IAAI,WAA2B,OAAO,aAAa;AACjE,QAAI,CAAC,MAAKA,IACT,OAAM,IAAI,MACT,4DAA4D,SAAS,KAAK,KAAK,CAAC,GAChF;IAEF,MAAM,WAAW,MAAM,MAAKI,gBAAiB,SAAS;AAEtD,WAAO,SAAS,KACd,QAAQ,SAAS,wBAAQ,IAAI,MAAM,8BAA8B,MAAM,CACxE;KACA;GACF,MAAM,YAAY,MAAKF,WAAY;AAEnC,OAAI,UACH,MAAK,MAAM,CAAC,KAAK,OAAO,OAAO,QAAQ,UAAU,CAChD,QAAO,MAAM,KAAK,GAAG;AAIvB,UAAO;IACN;;CAGH,KAAIG,oBAAqB;AACxB,SAAO,MAAKN,MAAO,SAAS,CAAC,sBAAsB,MAAKC,OAAQ,GAAG,QAAQ;GAC1E,MAAM,SAAS,IAAI,WAA2B,OAAO,UAAU;AAC9D,QAAI,CAAC,MAAKA,IACT,OAAM,IAAI,MACT,4DAA4D,MAAM,KAAK,KAAK,CAAC,GAC7E;IAEF,MAAM,WAAW,MAAM,MAAKM,aAAc,MAAM;AAEhD,WAAO,MAAM,KAAK,SAAS,SAAS,yBAAS,IAAI,MAAM,2BAA2B,OAAO,CAAC;KACzF;GAEF,MAAM,YAAY,MAAKJ,WAAY;AAEnC,OAAI,UACH,MAAK,MAAM,CAAC,MAAM,OAAO,OAAO,QAAQ,UAAU,CACjD,QAAO,MAAM,MAAM,GAAG;AAIxB,UAAO;IACN;;CAGH,OAAME,gBAAiB,UAA6B;AACnD,MAAI,SAAS,WAAW,EAAG,QAAO,EAAE;EAEpC,MAAM,UAAU,MAAM,UAAU,MAAKH,SAAU;EAC/C,MAAM,UAAkC,EAAE;AAE1C,QAAM,QAAQ,IACb,QAAQ,IAAI,OAAO,UAAU;GAC5B,MAAM,OAAO,MAAM,MAAKM,MACvB,uBACA,EACC,OAAO,OACP,CACD;AAED,OAAI,CAAC,MAAM,WAAY;AAEvB,QAAK,MAAM,OAAO,OAAO,KAAK,MAAM,WAAW,EAAE;IAChD,MAAM,UAAU,KAAK,WAAW,MAAM;AAEtC,QAAI,CAAC,QAAS;AAEd,YAAQ,OAAO;;IAEf,CACF;AAED,SAAO;;CAGR,OAAMD,aAAc,OAA0B;AAC7C,MAAI,MAAM,WAAW,EAAG,QAAO,EAAE;EAEjC,MAAM,UAAU,MAAM,OAAO,MAAKL,SAAU;EAC5C,MAAM,UAAkC,EAAE;AAE1C,QAAM,QAAQ,IACb,QAAQ,IAAI,OAAO,UAAU;GAC5B,MAAM,OAAO,MAAM,MAAKM,MACvB,8BACA,EACC,OAAO,OACP,CACD;AAED,OAAI,CAAC,MAAM,WAAY;AAEvB,QAAK,MAAM,QAAQ,OAAO,KAAK,MAAM,WAAW,EAAE;IACjD,MAAM,WAAW,KAAK,WAAW,OAAO;AACxC,QAAI,CAAC,SAAU;AAEf,YAAQ,QAAQ;;IAEhB,CACF;AAED,SAAO;;CAGR,OAAMA,MAAU,KAAa,MAA2C;AACvE,MAAI,CAAC,MAAKP,IACT,OAAM,IAAI,MAAM,gDAAgD;EAGjE,MAAM,WAAW,MAAM,MAAM,GAAG,MAAKA,MAAO,OAAO;GAClD,QAAQ;GACR,SAAS;IACR,gBAAgB;IAChB,GAAG;IACH;GACD,MAAM,KAAK,UAAU,KAAK;GAC1B,CAAC;AAEF,MAAI,CAAC,SAAS,IAAI;GACjB,MAAM,YAAY,MAAM,SAAS,MAAM,CAAC,aAAa,EAAE,EAAE;AACzD,SAAM,IAAI,MAAM,4BAA4B,WAAW,UAAU;;AAGlE,SAAO,SAAS,MAAM;;CAGvB,MAAM,eAAe,EACpB,SAAS,MACT,UAC8F;AAC9F,UAAQ,gBAAgB;AACxB,MAAI,CAAC,WAAW,KAAK,CACpB,QAAO,EACN,SAAS,MACT;AAGF,SAAO,EACN,SAFgB,MAAM,WAAW,MAAKG,qBAAsB,KAAK,KAAK,EAAE,OAAO,EAG/E;;CAGF,MAAM,YAAY,EACjB,MACA,UACwF;AACxF,UAAQ,gBAAgB;AACxB,MAAI,CAAC,WAAW,KAAK,CACpB,QAAO,EACN,MACA;EAGF,MAAM,WAAW,CAAC,GAAG,gBAAgB,KAAK,CAAC;EAC3C,MAAM,gBAAgB,MAAM,WAAW,MAAKE,kBAAmB,SAAS,SAAS,EAAE,OAAO;EAE1F,MAAM,UAAkC,EAAE;AAE1C,OAAK,IAAI,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK;GACzC,MAAM,eAAe,cAAc;AACnC,OAAI,wBAAwB,MAC3B,OAAM;AAEP,WAAQ,SAAS,MAAM;;AAGxB,SAAO,EACN,MAAM,gBAAgB,MAAM,QAAQ,EACpC;;CAGF,MAAM,QAAQ,EACb,QAAQ,EAAE,EACV,WAAW,EAAE,EACb,UACgF;AAChF,UAAQ,gBAAgB;EACxB,MAAM,2BAAW,IAAI,KAAa;AAElC,OAAK,MAAM,QAAQ,SAAS,EAAE,CAC7B,iBAAgB,MAAM,SAAS;EAGhC,MAAM,aAAa,CAAC,GAAG,SAAS;EAChC,MAAM,CAAC,eAAe,oBAAoB,MAAM,WAC/C,QAAQ,IAAI,CACX,WAAW,SAAS,IAAI,MAAKA,kBAAmB,SAAS,WAAW,GAAG,EAAE,EACzE,SAAS,SAAS,IAAI,MAAKF,qBAAsB,SAAS,SAAS,GAAG,EAAE,CACxE,CAAC,EACF,OACA;EAED,MAAM,UAAkC,EACvC,GAAG,MAAKD,WAAY,OACpB;AAED,OAAK,MAAM,CAAC,GAAG,SAAS,WAAW,SAAS,EAAE;GAC7C,MAAM,eAAe,cAAc;AACnC,OAAI,wBAAwB,MAC3B,OAAM;AAEP,WAAQ,QAAQ;;EAGjB,MAAM,gBAKF,EAAE;AAEN,OAAK,MAAM,QAAQ,SAAS,EAAE,CAG7B,eAAc,QAAQ,EACrB,MAHoB,gBAAgB,MAAM,QAAQ,EAIlD;EAGF,MAAM,mBAKF,EAAE;AAEN,OAAK,MAAM,CAAC,GAAG,SAAS,YAAY,EAAE,EAAE,SAAS,EAAE;GAClD,MAAM,cAAc,MAAKA,WAAY,WAAW,QAAQ,iBAAiB;AAEzE,OAAI,uBAAuB,MAC1B,OAAM;AAGP,oBAAiB,OAAO,EACvB,SAAS,aACT;;AAGF,SAAO;GACN,OAAO;GACP,UAAU;GACV;;;AAIH,SAAS,kBAAkB,WAGxB;AACF,KAAI,WAAW,SACd,MAAK,MAAM,CAAC,KAAK,OAAO,OAAO,QAAQ,UAAU,SAAS,EAAE;AAC3D,MAAI,CAAC,oBAAoB,IAAI,CAC5B,OAAM,IAAI,MAAM,yBAAyB,MAAM;AAEhD,MAAI,CAAC,kBAAkB,oBAAoB,GAAG,CAAC,CAC9C,OAAM,IAAI,MAAM,uBAAuB,KAAK;;AAK/C,KAAI,WAAW,MACd,MAAK,MAAM,CAAC,MAAM,QAAQ,OAAO,QAAQ,UAAU,MAAM,EAAE;AAE1D,MAAI,eAAe,KAAK,CAAC,WAAW,SAAS,EAC5C,OAAM,IAAI,MACT,kHACA;AAKF,MAAI,CAAC,kBAFe,eAAe,IAAI,CAEJ,QAAQ,CAC1C,OAAM,IAAI,MAAM,iBAAiB,MAAM;;;;;;AAS3C,SAAgB,gBAAgB,MAA0B,wBAAQ,IAAI,KAAa,EAAE;AACpF,KAAI,OAAO,SAAS,YAAY,CAAC,WAAW,KAAK,CAAE,QAAO;AAE1D,KAAI,OAAO,SAAS,YAAY,KAAK,WAAW,UAAU,IAAI,KAAK,SAAS,IAAI,CAC/E,QAAO,gBAAgB,KAAK,MAAM,GAAG,GAAG,EAAE,MAAM;CAGjD,MAAM,MAAM,YAAY,KAAK,GAAG,OAAO,eAAe,KAAK;AAE3D,KAAI,WAAW,IAAI,QAAQ,CAAE,OAAM,IAAI,GAAG,IAAI,QAAQ,IAAI,IAAI,OAAO,IAAI,IAAI,OAAO;AAEpF,MAAK,MAAM,SAAS,IAAI,WACvB,iBAAgB,OAAO,MAAM;AAG9B,QAAO;;;;;;AAOR,SAAS,gBAAgB,KAAyB,WAA2C;AAC5F,KAAI,OAAO,QAAQ,YAAY,CAAC,IAAI,SAAS,KAAK,CACjD,QAAO;AAGR,KAAI,OAAO,QAAQ,YAAY,IAAI,WAAW,UAAU,IAAI,IAAI,SAAS,IAAI,CAC5E,QAAO,UAAU,gBAAgB,IAAI,MAAM,GAAG,GAAG,EAAE,UAAU,CAAC;CAG/D,MAAM,OAAO,YAAY,IAAI,GAAG,MAAM,eAAe,IAAI;CAGzD,MAAM,WAAW,UADD,GAAG,KAAK,QAAQ,IAAI,KAAK,OAAO,IAAI,KAAK;AAGzD,QAAO,mBAAmB;EACzB,GAAG;EACH,SAAS,WAAW,SAAS,MAAM,KAAK,CAAC,KAAK,KAAK;EACnD,YAAY,KAAK,WAAW,KAAK,UAAU,gBAAgB,OAAO,UAAU,CAAC;EAC7E,CAAC;;AAGH,SAAgB,WAAW,YAAoB;AAC9C,QACC,WAAW,SAAS,eAAe,IAAI,WAAW,SAAS,IAAI,IAAI,WAAW,SAAS,OAAO;;;;;;;;;;;AAahG,SAAgB,WAAc,SAAqB,QAAkC;AACpF,KAAI,CAAC,OACJ,QAAO;AAGR,QAAO,IAAI,SAAY,SAAS,WAAW;EAC1C,MAAM,gBAAgB,OAAO,OAAO,OAAO;AAC3C,SAAO,iBAAiB,SAAS,SAAS,EAAE,MAAM,MAAM,CAAC;AAEzD,UAAQ,KAAK,SAAS,OAAO,CAAC,cAAc;AAC3C,UAAO,oBAAoB,SAAS,QAAQ;IAC3C;GACD;;AAGH,SAAS,YAAY,MAA6C;AACjE,QACC,OAAO,SAAS,YAChB,aAAa,QACb,YAAY,QACZ,UAAU,QACV,gBAAgB;;;;;;AAalB,SAAgB,uBAAuB,SAGrC;CACD,MAAM,2BAAwB,IAAI,KAAK;CACvC,MAAM,wBAAqB,IAAI,KAAK;AAEpC,MAAK,MAAM,WAAW,QAAQ,SAC7B,SAAQ,QAAQ,OAAhB;EACC,KAAK;AACJ,OAAI,QAAQ,YAAY,KACvB,sBAAqB,CAAC,QAAQ,YAAY,KAAK,CAAC,CAAC,SAAS,SAAS;AAClE,UAAM,IAAI,KAAK;KACd;AAEH;EACD,KAAK;GACJ,MAAM,WAAW,QAAQ;GAEzB,MAAM,MAAM,SAAS,QAAQ,MAAM,KAAK,CAAC;AACzC,OAAI,WAAW,IAAI,EAAE;AACpB,QAAI,CAAC,oBAAoB,IAAI,CAAE,OAAM,IAAI,MAAM,yBAAyB,MAAM;AAC9E,aAAS,IAAI,IAAI;;AAGlB,wBAAqB,SAAS,iBAAiB,EAAE,CAAC,CAAC,SAAS,SAAS;AACpE,UAAM,IAAI,KAAK;KACd;AAEF;EACD,QACC;;AAIH,QAAO;EACN,UAAU,CAAC,GAAG,SAAS;EACvB,OAAO,CAAC,GAAG,MAAM;EACjB;;;;;;AAOF,SAAgB,aACf,SACA,UACC;AACD,MAAK,MAAM,WAAW,QAAQ,UAAU;AAEvC,MAAI,QAAQ,aAAa,MAAM;AAC9B,OAAI,CAAC,WAAW,QAAQ,YAAY,KAAK,CAAE;AAC3C,OAAI,CAAC,SAAS,MAAM,QAAQ,YAAY,MACvC,OAAM,IAAI,MAAM,iCAAiC,QAAQ,YAAY,OAAO;AAC7E,WAAQ,YAAY,OAAO,SAAS,MAAM,QAAQ,YAAY,MAAM;;EAGrE,MAAM,KAAK,QAAQ;AACnB,MAAI,CAAC,GAAI;EAET,MAAM,YAAY,GAAG,QAAQ,MAAM,KAAK;EACxC,MAAM,OAAO,UAAU;AAEvB,MAAI,WAAW,KAAK,IAAI,CAAC,SAAS,SAAS,MAC1C,OAAM,IAAI,MAAM,iCAAiC,OAAO;AAGzD,MAAI,WAAW,KAAK,EAAE;AACrB,aAAU,KAAK,SAAS,SAAS,MAAM;AACvC,MAAG,UAAU,UAAU,KAAK,KAAK;;EAGlC,MAAM,QAAQ,GAAG;AACjB,MAAI,CAAC,MAAO;AAEZ,OAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACtC,OAAI,CAAC,WAAW,MAAM,GAAG,CAAE;AAE3B,OAAI,CAAC,SAAS,MAAM,MAAM,IAAK,OAAM,IAAI,MAAM,iCAAiC,MAAM,KAAK;AAC3F,SAAM,KAAK,SAAS,MAAM,MAAM,IAAI;;AAGrC,KAAG,gBAAgB;;;;;;;AAQrB,SAAS,qBAAqB,OAAiB;CAC9C,MAAM,wBAAQ,IAAI,KAAa;AAC/B,MAAK,MAAM,QAAQ,MAClB,KAAI,WAAW,KAAK,EAAE;AACrB,MAAI,CAAC,iBAAiB,KAAK,CAAE,OAAM,IAAI,MAAM,4BAA4B,OAAO;AAChF,QAAM,IAAI,KAAK;;AAGjB,QAAO"}
1
+ {"version":3,"file":"mvr.mjs","names":["#cache","#url","#pageSize","#overrides","#mvrPackageDataLoader","#resolvePackages","#mvrTypeDataLoader","#resolveTypes","#fetch"],"sources":["../../src/client/mvr.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { chunk, DataLoader } from '@mysten/utils';\nimport { isValidNamedPackage, isValidNamedType } from '../utils/move-registry.js';\nimport type { StructTag } from '../utils/sui-types.js';\nimport {\n\tisValidSuiAddress,\n\tnormalizeStructTag,\n\tnormalizeSuiAddress,\n\tparseStructTag,\n} from '../utils/sui-types.js';\nimport type { ClientCache } from './cache.js';\nimport type { TransactionDataBuilder } from '../transactions/TransactionData.js';\nimport { PACKAGE_VERSION } from '../version.js';\nimport type { SuiClientTypes } from './types.js';\n\nconst NAME_SEPARATOR = '/';\nconst MVR_API_HEADER = {\n\t'Mvr-Source': `@mysten/sui@${PACKAGE_VERSION}`,\n};\n\nexport interface MvrClientOptions {\n\tcache: ClientCache;\n\turl?: string;\n\tpageSize?: number;\n\toverrides?: {\n\t\tpackages?: Record<string, string>;\n\t\ttypes?: Record<string, string>;\n\t};\n}\n\nexport class MvrClient implements SuiClientTypes.MvrMethods {\n\t#cache: ClientCache;\n\t#url?: string;\n\t#pageSize: number;\n\t#overrides: {\n\t\tpackages?: Record<string, string>;\n\t\ttypes?: Record<string, string>;\n\t};\n\n\tconstructor({ cache, url, pageSize = 50, overrides }: MvrClientOptions) {\n\t\tthis.#cache = cache;\n\t\tthis.#url = url;\n\t\tthis.#pageSize = pageSize;\n\t\tthis.#overrides = {\n\t\t\tpackages: overrides?.packages,\n\t\t\ttypes: overrides?.types,\n\t\t};\n\n\t\tvalidateOverrides(this.#overrides);\n\t}\n\n\tget #mvrPackageDataLoader() {\n\t\treturn this.#cache.readSync(['#mvrPackageDataLoader', this.#url ?? ''], () => {\n\t\t\tconst loader = new DataLoader<string, string>(async (packages) => {\n\t\t\t\tif (!this.#url) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`MVR Api URL is not set for the current client (resolving ${packages.join(', ')})`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tconst resolved = await this.#resolvePackages(packages);\n\n\t\t\t\treturn packages.map(\n\t\t\t\t\t(pkg) => resolved[pkg] ?? new Error(`Failed to resolve package: ${pkg}`),\n\t\t\t\t);\n\t\t\t});\n\t\t\tconst overrides = this.#overrides?.packages;\n\n\t\t\tif (overrides) {\n\t\t\t\tfor (const [pkg, id] of Object.entries(overrides)) {\n\t\t\t\t\tloader.prime(pkg, id);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn loader;\n\t\t});\n\t}\n\n\tget #mvrTypeDataLoader() {\n\t\treturn this.#cache.readSync(['#mvrTypeDataLoader', this.#url ?? ''], () => {\n\t\t\tconst loader = new DataLoader<string, string>(async (types) => {\n\t\t\t\tif (!this.#url) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`MVR Api URL is not set for the current client (resolving ${types.join(', ')})`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tconst resolved = await this.#resolveTypes(types);\n\n\t\t\t\treturn types.map((type) => resolved[type] ?? new Error(`Failed to resolve type: ${type}`));\n\t\t\t});\n\n\t\t\tconst overrides = this.#overrides?.types;\n\n\t\t\tif (overrides) {\n\t\t\t\tfor (const [type, id] of Object.entries(overrides)) {\n\t\t\t\t\tloader.prime(type, id);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn loader;\n\t\t});\n\t}\n\n\tasync #resolvePackages(packages: readonly string[]) {\n\t\tif (packages.length === 0) return {};\n\n\t\tconst batches = chunk(packages, this.#pageSize);\n\t\tconst results: Record<string, string> = {};\n\n\t\tawait Promise.all(\n\t\t\tbatches.map(async (batch) => {\n\t\t\t\tconst data = await this.#fetch<{ resolution: Record<string, { package_id: string }> }>(\n\t\t\t\t\t'/v1/resolution/bulk',\n\t\t\t\t\t{\n\t\t\t\t\t\tnames: batch,\n\t\t\t\t\t},\n\t\t\t\t);\n\n\t\t\t\tif (!data?.resolution) return;\n\n\t\t\t\tfor (const pkg of Object.keys(data?.resolution)) {\n\t\t\t\t\tconst pkgData = data.resolution[pkg]?.package_id;\n\n\t\t\t\t\tif (!pkgData) continue;\n\n\t\t\t\t\tresults[pkg] = pkgData;\n\t\t\t\t}\n\t\t\t}),\n\t\t);\n\n\t\treturn results;\n\t}\n\n\tasync #resolveTypes(types: readonly string[]) {\n\t\tif (types.length === 0) return {};\n\n\t\tconst batches = chunk(types, this.#pageSize);\n\t\tconst results: Record<string, string> = {};\n\n\t\tawait Promise.all(\n\t\t\tbatches.map(async (batch) => {\n\t\t\t\tconst data = await this.#fetch<{ resolution: Record<string, { type_tag: string }> }>(\n\t\t\t\t\t'/v1/struct-definition/bulk',\n\t\t\t\t\t{\n\t\t\t\t\t\ttypes: batch,\n\t\t\t\t\t},\n\t\t\t\t);\n\n\t\t\t\tif (!data?.resolution) return;\n\n\t\t\t\tfor (const type of Object.keys(data?.resolution)) {\n\t\t\t\t\tconst typeData = data.resolution[type]?.type_tag;\n\t\t\t\t\tif (!typeData) continue;\n\n\t\t\t\t\tresults[type] = typeData;\n\t\t\t\t}\n\t\t\t}),\n\t\t);\n\n\t\treturn results;\n\t}\n\n\tasync #fetch<T>(url: string, body: Record<string, unknown>): Promise<T> {\n\t\tif (!this.#url) {\n\t\t\tthrow new Error('MVR Api URL is not set for the current client');\n\t\t}\n\n\t\tconst response = await fetch(`${this.#url}${url}`, {\n\t\t\tmethod: 'POST',\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t...MVR_API_HEADER,\n\t\t\t},\n\t\t\tbody: JSON.stringify(body),\n\t\t});\n\n\t\tif (!response.ok) {\n\t\t\tconst errorBody = await response.json().catch(() => ({}));\n\t\t\tthrow new Error(`Failed to resolve types: ${errorBody?.message}`);\n\t\t}\n\n\t\treturn response.json();\n\t}\n\n\tasync resolvePackage({\n\t\tpackage: name,\n\t\tsignal,\n\t}: SuiClientTypes.MvrResolvePackageOptions): Promise<SuiClientTypes.MvrResolvePackageResponse> {\n\t\tsignal?.throwIfAborted();\n\t\tif (!hasMvrName(name)) {\n\t\t\treturn {\n\t\t\t\tpackage: name,\n\t\t\t};\n\t\t}\n\t\tconst resolved = await raceSignal(this.#mvrPackageDataLoader.load(name), signal);\n\t\treturn {\n\t\t\tpackage: resolved,\n\t\t};\n\t}\n\n\tasync resolveType({\n\t\ttype,\n\t\tsignal,\n\t}: SuiClientTypes.MvrResolveTypeOptions): Promise<SuiClientTypes.MvrResolveTypeResponse> {\n\t\tsignal?.throwIfAborted();\n\t\tif (!hasMvrName(type)) {\n\t\t\treturn {\n\t\t\t\ttype,\n\t\t\t};\n\t\t}\n\n\t\tconst mvrTypes = [...extractMvrTypes(type)];\n\t\tconst resolvedTypes = await raceSignal(this.#mvrTypeDataLoader.loadMany(mvrTypes), signal);\n\n\t\tconst typeMap: Record<string, string> = {};\n\n\t\tfor (let i = 0; i < mvrTypes.length; i++) {\n\t\t\tconst resolvedType = resolvedTypes[i];\n\t\t\tif (resolvedType instanceof Error) {\n\t\t\t\tthrow resolvedType;\n\t\t\t}\n\t\t\ttypeMap[mvrTypes[i]] = resolvedType;\n\t\t}\n\n\t\treturn {\n\t\t\ttype: replaceMvrNames(type, typeMap),\n\t\t};\n\t}\n\n\tasync resolve({\n\t\ttypes = [],\n\t\tpackages = [],\n\t\tsignal,\n\t}: SuiClientTypes.MvrResolveOptions): Promise<SuiClientTypes.MvrResolveResponse> {\n\t\tsignal?.throwIfAborted();\n\t\tconst mvrTypes = new Set<string>();\n\n\t\tfor (const type of types ?? []) {\n\t\t\textractMvrTypes(type, mvrTypes);\n\t\t}\n\n\t\tconst typesArray = [...mvrTypes];\n\t\tconst [resolvedTypes, resolvedPackages] = await raceSignal(\n\t\t\tPromise.all([\n\t\t\t\ttypesArray.length > 0 ? this.#mvrTypeDataLoader.loadMany(typesArray) : [],\n\t\t\t\tpackages.length > 0 ? this.#mvrPackageDataLoader.loadMany(packages) : [],\n\t\t\t]),\n\t\t\tsignal,\n\t\t);\n\n\t\tconst typeMap: Record<string, string> = {\n\t\t\t...this.#overrides?.types,\n\t\t};\n\n\t\tfor (const [i, type] of typesArray.entries()) {\n\t\t\tconst resolvedType = resolvedTypes[i];\n\t\t\tif (resolvedType instanceof Error) {\n\t\t\t\tthrow resolvedType;\n\t\t\t}\n\t\t\ttypeMap[type] = resolvedType;\n\t\t}\n\n\t\tconst replacedTypes: Record<\n\t\t\tstring,\n\t\t\t{\n\t\t\t\ttype: string;\n\t\t\t}\n\t\t> = {};\n\n\t\tfor (const type of types ?? []) {\n\t\t\tconst resolvedType = replaceMvrNames(type, typeMap);\n\n\t\t\treplacedTypes[type] = {\n\t\t\t\ttype: resolvedType,\n\t\t\t};\n\t\t}\n\n\t\tconst replacedPackages: Record<\n\t\t\tstring,\n\t\t\t{\n\t\t\t\tpackage: string;\n\t\t\t}\n\t\t> = {};\n\n\t\tfor (const [i, pkg] of (packages ?? []).entries()) {\n\t\t\tconst resolvedPkg = this.#overrides?.packages?.[pkg] ?? resolvedPackages[i];\n\n\t\t\tif (resolvedPkg instanceof Error) {\n\t\t\t\tthrow resolvedPkg;\n\t\t\t}\n\n\t\t\treplacedPackages[pkg] = {\n\t\t\t\tpackage: resolvedPkg,\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\ttypes: replacedTypes,\n\t\t\tpackages: replacedPackages,\n\t\t};\n\t}\n}\n\nfunction validateOverrides(overrides?: {\n\tpackages?: Record<string, string>;\n\ttypes?: Record<string, string>;\n}) {\n\tif (overrides?.packages) {\n\t\tfor (const [pkg, id] of Object.entries(overrides.packages)) {\n\t\t\tif (!isValidNamedPackage(pkg)) {\n\t\t\t\tthrow new Error(`Invalid package name: ${pkg}`);\n\t\t\t}\n\t\t\tif (!isValidSuiAddress(normalizeSuiAddress(id))) {\n\t\t\t\tthrow new Error(`Invalid package ID: ${id}`);\n\t\t\t}\n\t\t}\n\t}\n\n\tif (overrides?.types) {\n\t\tfor (const [type, val] of Object.entries(overrides.types)) {\n\t\t\t// validate that types are first-level only.\n\t\t\tif (parseStructTag(type).typeParams.length > 0) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t'Type overrides must be first-level only. If you want to supply generic types, just pass each type individually.',\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst parsedValue = parseStructTag(val);\n\n\t\t\tif (!isValidSuiAddress(parsedValue.address)) {\n\t\t\t\tthrow new Error(`Invalid type: ${val}`);\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * Extracts all named types from a given type.\n */\nexport function extractMvrTypes(type: string | StructTag, types = new Set<string>()) {\n\tif (typeof type === 'string' && !hasMvrName(type)) return types;\n\n\tif (typeof type === 'string' && type.startsWith('vector<') && type.endsWith('>')) {\n\t\treturn extractMvrTypes(type.slice(7, -1), types);\n\t}\n\n\tconst tag = isStructTag(type) ? type : parseStructTag(type);\n\n\tif (hasMvrName(tag.address)) types.add(`${tag.address}::${tag.module}::${tag.name}`);\n\n\tfor (const param of tag.typeParams) {\n\t\textractMvrTypes(param, types);\n\t}\n\n\treturn types;\n}\n\n/**\n * Traverses a type, and replaces any found names with their resolved equivalents,\n * based on the supplied type cache.\n */\nfunction replaceMvrNames(tag: string | StructTag, typeCache: Record<string, string>): string {\n\tif (typeof tag === 'string' && !tag.includes('::')) {\n\t\treturn tag;\n\t}\n\n\tif (typeof tag === 'string' && tag.startsWith('vector<') && tag.endsWith('>')) {\n\t\treturn `vector<${replaceMvrNames(tag.slice(7, -1), typeCache)}>`;\n\t}\n\n\tconst type = isStructTag(tag) ? tag : parseStructTag(tag);\n\n\tconst typeTag = `${type.address}::${type.module}::${type.name}`;\n\tconst cacheHit = typeCache[typeTag];\n\n\treturn normalizeStructTag({\n\t\t...type,\n\t\taddress: cacheHit ? cacheHit.split('::')[0] : type.address,\n\t\ttypeParams: type.typeParams.map((param) => replaceMvrNames(param, typeCache)),\n\t});\n}\n\nexport function hasMvrName(nameOrType: string) {\n\treturn (\n\t\tnameOrType.includes(NAME_SEPARATOR) || nameOrType.includes('@') || nameOrType.includes('.sui')\n\t);\n}\n\n/**\n * Races a promise against an optional AbortSignal. MVR resolution batches lookups\n * from independent callers into a single request via a shared DataLoader, so a\n * caller's signal cannot cancel the shared network request without affecting other\n * callers. Instead, this rejects the awaiting caller as soon as its signal aborts\n * (the underlying request continues in the background).\n *\n * The same isolation applies to any shared/cached request (e.g. `cache.read`).\n */\nexport function raceSignal<T>(promise: Promise<T>, signal?: AbortSignal): Promise<T> {\n\tif (!signal) {\n\t\treturn promise;\n\t}\n\n\t// An `abort` event is not replayed for listeners added after the fact, so a signal that was\n\t// already aborted would otherwise resolve normally.\n\tif (signal.aborted) {\n\t\treturn Promise.reject(signal.reason);\n\t}\n\n\treturn new Promise<T>((resolve, reject) => {\n\t\tconst onAbort = () => reject(signal.reason);\n\t\tsignal.addEventListener('abort', onAbort, { once: true });\n\n\t\tpromise.then(resolve, reject).finally(() => {\n\t\t\tsignal.removeEventListener('abort', onAbort);\n\t\t});\n\t});\n}\n\nfunction isStructTag(type: string | StructTag): type is StructTag {\n\treturn (\n\t\ttypeof type === 'object' &&\n\t\t'address' in type &&\n\t\t'module' in type &&\n\t\t'name' in type &&\n\t\t'typeParams' in type\n\t);\n}\n\nexport type NamedPackagesOverrides = {\n\tpackages: Record<string, string>;\n\ttypes: Record<string, string>;\n};\n\n/**\n * Looks up all `.move` names in a transaction block.\n * Returns a list of all the names found.\n */\nexport function findNamesInTransaction(builder: TransactionDataBuilder): {\n\tpackages: string[];\n\ttypes: string[];\n} {\n\tconst packages: Set<string> = new Set();\n\tconst types: Set<string> = new Set();\n\n\tfor (const command of builder.commands) {\n\t\tswitch (command.$kind) {\n\t\t\tcase 'MakeMoveVec':\n\t\t\t\tif (command.MakeMoveVec.type) {\n\t\t\t\t\tgetNamesFromTypeList([command.MakeMoveVec.type]).forEach((type) => {\n\t\t\t\t\t\ttypes.add(type);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'MoveCall':\n\t\t\t\tconst moveCall = command.MoveCall;\n\n\t\t\t\tconst pkg = moveCall.package.split('::')[0];\n\t\t\t\tif (hasMvrName(pkg)) {\n\t\t\t\t\tif (!isValidNamedPackage(pkg)) throw new Error(`Invalid package name: ${pkg}`);\n\t\t\t\t\tpackages.add(pkg);\n\t\t\t\t}\n\n\t\t\t\tgetNamesFromTypeList(moveCall.typeArguments ?? []).forEach((type) => {\n\t\t\t\t\ttypes.add(type);\n\t\t\t\t});\n\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn {\n\t\tpackages: [...packages],\n\t\ttypes: [...types],\n\t};\n}\n\n/**\n * Replace all names & types in a transaction block\n * with their resolved names/types.\n */\nexport function replaceNames(\n\tbuilder: TransactionDataBuilder,\n\tresolved: SuiClientTypes.MvrResolveResponse,\n) {\n\tfor (const command of builder.commands) {\n\t\t// Replacements for `MakeMoveVec` commands (that can include types)\n\t\tif (command.MakeMoveVec?.type) {\n\t\t\tif (!hasMvrName(command.MakeMoveVec.type)) continue;\n\t\t\tif (!resolved.types[command.MakeMoveVec.type])\n\t\t\t\tthrow new Error(`No resolution found for type: ${command.MakeMoveVec.type}`);\n\t\t\tcommand.MakeMoveVec.type = resolved.types[command.MakeMoveVec.type].type;\n\t\t}\n\t\t// Replacements for `MoveCall` commands (that can include packages & types)\n\t\tconst tx = command.MoveCall;\n\t\tif (!tx) continue;\n\n\t\tconst nameParts = tx.package.split('::');\n\t\tconst name = nameParts[0];\n\n\t\tif (hasMvrName(name) && !resolved.packages[name])\n\t\t\tthrow new Error(`No address found for package: ${name}`);\n\n\t\t// Replace package name with address.\n\t\tif (hasMvrName(name)) {\n\t\t\tnameParts[0] = resolved.packages[name].package;\n\t\t\ttx.package = nameParts.join('::');\n\t\t}\n\n\t\tconst types = tx.typeArguments;\n\t\tif (!types) continue;\n\n\t\tfor (let i = 0; i < types.length; i++) {\n\t\t\tif (!hasMvrName(types[i])) continue;\n\n\t\t\tif (!resolved.types[types[i]]) throw new Error(`No resolution found for type: ${types[i]}`);\n\t\t\ttypes[i] = resolved.types[types[i]].type;\n\t\t}\n\n\t\ttx.typeArguments = types;\n\t}\n}\n\n/**\n * Returns a list of unique types that include a name\n * from the given list. This list is retrieved from the Transaction Data.\n */\nfunction getNamesFromTypeList(types: string[]) {\n\tconst names = new Set<string>();\n\tfor (const type of types) {\n\t\tif (hasMvrName(type)) {\n\t\t\tif (!isValidNamedType(type)) throw new Error(`Invalid type with names: ${type}`);\n\t\t\tnames.add(type);\n\t\t}\n\t}\n\treturn names;\n}\n"],"mappings":"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"}
@@ -30,12 +30,6 @@ declare function parseSerializedSignature(serializedSignature: string): {
30
30
  clientDataJson: string;
31
31
  userSignature: Uint8Array<ArrayBuffer>;
32
32
  publicKey: Uint8Array<ArrayBuffer>;
33
- } | {
34
- serializedSignature: string;
35
- signatureScheme: "ED25519" | "Secp256k1" | "Secp256r1";
36
- signature: Uint8Array<ArrayBuffer>;
37
- publicKey: Uint8Array<ArrayBuffer>;
38
- bytes: Uint8Array<ArrayBuffer>;
39
33
  } | {
40
34
  serializedSignature: string;
41
35
  signatureScheme: "ZkLogin";
@@ -60,6 +54,12 @@ declare function parseSerializedSignature(serializedSignature: string): {
60
54
  };
61
55
  signature: Uint8Array<ArrayBufferLike>;
62
56
  publicKey: Uint8Array<ArrayBuffer>;
57
+ } | {
58
+ serializedSignature: string;
59
+ signatureScheme: "ED25519" | "Secp256k1" | "Secp256r1";
60
+ signature: Uint8Array<ArrayBuffer>;
61
+ publicKey: Uint8Array<ArrayBuffer>;
62
+ bytes: Uint8Array<ArrayBuffer>;
63
63
  } | {
64
64
  serializedSignature: string;
65
65
  signatureScheme: "MultiSig";
@@ -98,11 +98,15 @@ declare class SuiGraphQLClient<Queries extends Record<string, GraphQLDocument> =
98
98
  signAndExecuteTransaction<Include extends SuiClientTypes.TransactionInclude = {}>(input: SuiClientTypes.SignAndExecuteTransactionOptions<Include>): Promise<SuiClientTypes.TransactionResult<Include>>;
99
99
  waitForTransaction<Include extends SuiClientTypes.TransactionInclude = {}>(input: SuiClientTypes.WaitForTransactionOptions<Include>): Promise<SuiClientTypes.TransactionResult<Include>>;
100
100
  simulateTransaction<Include extends SuiClientTypes.SimulateTransactionInclude = {}>(input: GraphQLSimulateTransactionOptions<Include>): Promise<SuiClientTypes.SimulateTransactionResult<Include>>;
101
- getReferenceGasPrice(): Promise<SuiClientTypes.GetReferenceGasPriceResponse>;
101
+ getReferenceGasPrice(input?: SuiClientTypes.GetReferenceGasPriceOptions): Promise<SuiClientTypes.GetReferenceGasPriceResponse>;
102
+ getCurrentSystemState(input?: SuiClientTypes.GetCurrentSystemStateOptions): Promise<SuiClientTypes.GetCurrentSystemStateResponse>;
103
+ getProtocolConfig(input?: SuiClientTypes.GetProtocolConfigOptions): Promise<SuiClientTypes.GetProtocolConfigResponse>;
104
+ getChainIdentifier(input?: SuiClientTypes.GetChainIdentifierOptions): Promise<SuiClientTypes.GetChainIdentifierResponse>;
102
105
  listDynamicFields<Include extends DynamicFieldInclude = {}>(input: SuiClientTypes.ListDynamicFieldsOptions & {
103
106
  include?: Include & DynamicFieldInclude;
104
107
  }): Promise<ListDynamicFieldsWithValueResponse<Include>>;
105
108
  getDynamicField(input: SuiClientTypes.GetDynamicFieldOptions): Promise<SuiClientTypes.GetDynamicFieldResponse>;
109
+ getDynamicObjectField<Include extends SuiClientTypes.ObjectInclude = {}>(input: SuiClientTypes.GetDynamicObjectFieldOptions<Include>): Promise<SuiClientTypes.GetDynamicObjectFieldResponse<Include>>;
106
110
  listTransactions<Include extends SuiClientTypes.TransactionInclude = {}>(input: SuiClientTypes.ListTransactionsOptions<Include>): Promise<SuiClientTypes.ListTransactionsResponse<Include>>;
107
111
  listEvents(input: SuiClientTypes.ListEventsOptions): Promise<SuiClientTypes.ListEventsResponse>;
108
112
  getMoveFunction(input: SuiClientTypes.GetMoveFunctionOptions): Promise<SuiClientTypes.GetMoveFunctionResponse>;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.mts","names":[],"sources":["../../src/graphql/client.ts"],"mappings":"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"}
1
+ {"version":3,"file":"client.d.mts","names":[],"sources":["../../src/graphql/client.ts"],"mappings":";;;;;;;;;;;;KAiBY,eAAA,UACF,MAAA,+BACG,MAAA,8BAGV,YAAA,GACA,mBAAA,CAAoB,MAAA,EAAQ,SAAA,IAC5B,iBAAA,CAAkB,MAAA,EAAQ,SAAA,IAC1B,gBAAA,CAAiB,MAAA,EAAQ,SAAA;AAAA,KAEhB,mBAAA,UACF,MAAA,+BACG,MAAA;EAEZ,KAAA,EAAO,eAAA,CAAgB,MAAA,EAAQ,SAAA;EAC/B,aAAA;EACA,UAAA,GAAa,MAAA;EACb,MAAA,GAAS,WAAA;AAAA,KACL,SAAA;EAAA,CAAqB,GAAA;AAAA;EACrB,SAAA,GAAY,SAAA;AAAA;EAEd,SAAA,EAAW,SAAA;AAAA;AAAA,KAGF,kBAAA,UAA4B,MAAA;EACvC,IAAA,GAAO,MAAA;EACP,MAAA,GAAS,qBAAA;EACT,UAAA,GAAa,MAAA;AAAA;AAAA,KAGF,qBAAA,GAAwB,KAAA;EACnC,OAAA;EACA,SAAA;IAAc,IAAA;IAAc,MAAA;EAAA;EAC5B,IAAA;AAAA;AAAA,UAGgB,uBAAA,iBAAwC,MAAA,SAAe,eAAA;EACvE,GAAA;EACA,KAAA,UAAe,KAAA;EACf,OAAA,GAAU,MAAA;EACV,OAAA,GAAU,OAAA;EACV,OAAA,EAAS,cAAA,CAAe,OAAA;EACxB,GAAA,GAAM,cAAA,CAAe,UAAA;AAAA;AAAA,cAGT,sBAAA,SAA+B,KAAA;AAAA,cAEtC,gBAAA;AAAA,iBAEU,kBAAA,CAAmB,MAAA,YAAkB,MAAA,IAAU,gBAAA;AAAA,UAM9C,iCAAA,iBACA,cAAA,CAAe,0BAAA,eACtB,cAAA,CAAe,0BAAA,CAA2B,OAAA;EA/CrB;;;;;;;;EAwD9B,cAAA;AAAA;AAAA,UAGgB,mBAAA;EAChB,KAAA;AAAA;AAAA,KAGW,0BAAA,iBAA2C,mBAAA,SACtD,cAAA,CAAe,iBAAA;EACd,KAAA,EAAO,OAAA;IAAkB,KAAA;EAAA,IAAgB,cAAA,CAAe,iBAAA;AAAA;AAAA,UAGzC,kCAAA,iBAAmD,mBAAA;EACnE,WAAA;EACA,MAAA;EACA,aAAA,EAAe,0BAAA,CAA2B,OAAA;AAAA;AAAA,cAG9B,gBAAA,iBAAiC,MAAA,SAAe,eAAA,gBACpD,UAAA,YACG,cAAA,CAAe,gBAAA;EAAA;GAWrB,gBAAA;EALL,IAAA,EAAM,iBAAA;EAAA,IACF,GAAA,CAAA,GAAO,cAAA,CAAe,UAAA;;IASzB,GAAA;IACA,KAAA,EAAO,OAAA;IACP,OAAA;IACA,OAAA;IACA,OAAA;IACA;EAAA,GACE,uBAAA,CAAwB,OAAA;EAcrB,KAAA,UAAe,MAAA,+BAAqC,MAAA,kBAAA,CACzD,OAAA,EAAS,mBAAA,CAAoB,MAAA,EAAQ,SAAA,IACnC,OAAA,CAAQ,kBAAA,CAAmB,MAAA;EA0BxB,OAAA,qBACe,OAAA,OAAc,OAAA,qBACzB,OAAA,CAAQ,KAAA,UAAe,eAAA,qBAAoC,CAAA,GAAI,MAAA,iCAC5D,OAAA,CAAQ,KAAA,UAAe,eAAA,qBAChC,CAAA,GACA,MAAA,mBAAA,CAEH,KAAA,EAAO,KAAA,EACP,OAAA,EAAS,IAAA,CAAK,mBAAA,CAAoB,MAAA,EAAQ,SAAA,cACxC,OAAA,CAAQ,kBAAA,CAAmB,MAAA;EAO9B,UAAA,iBAA2B,cAAA,CAAe,aAAA,MAAA,CACzC,KAAA,EAAO,cAAA,CAAe,iBAAA,CAAkB,OAAA,IACtC,OAAA,CAAQ,cAAA,CAAe,kBAAA,CAAmB,OAAA;EAI7C,SAAA,iBAA0B,cAAA,CAAe,aAAA,MAAA,CACxC,KAAA,EAAO,cAAA,CAAe,gBAAA,CAAiB,OAAA,IACrC,OAAA,CAAQ,cAAA,CAAe,iBAAA,CAAkB,OAAA;EAI5C,SAAA,CAAU,KAAA,EAAO,cAAA,CAAe,gBAAA,GAAmB,OAAA,CAAQ,cAAA,CAAe,iBAAA;EAI1E,gBAAA,iBAAiC,cAAA,CAAe,aAAA,MAAA,CAC/C,KAAA,EAAO,cAAA,CAAe,uBAAA,CAAwB,OAAA,IAC5C,OAAA,CAAQ,cAAA,CAAe,wBAAA,CAAyB,OAAA;EAInD,UAAA,CAAW,KAAA,EAAO,cAAA,CAAe,iBAAA,GAAoB,OAAA,CAAQ,cAAA,CAAe,kBAAA;EAI5E,YAAA,CACC,KAAA,EAAO,cAAA,CAAe,mBAAA,GACpB,OAAA,CAAQ,cAAA,CAAe,oBAAA;EAI1B,eAAA,CACC,KAAA,EAAO,cAAA,CAAe,sBAAA,GACpB,OAAA,CAAQ,cAAA,CAAe,uBAAA;EAI1B,cAAA,iBAA+B,cAAA,CAAe,kBAAA,MAAA,CAC7C,KAAA,EAAO,cAAA,CAAe,qBAAA,CAAsB,OAAA,IAC1C,OAAA,CAAQ,cAAA,CAAe,iBAAA,CAAkB,OAAA;EAI5C,kBAAA,iBAAmC,cAAA,CAAe,kBAAA,MAAA,CACjD,KAAA,EAAO,cAAA,CAAe,yBAAA,CAA0B,OAAA,IAC9C,OAAA,CAAQ,cAAA,CAAe,iBAAA,CAAkB,OAAA;EAI5C,yBAAA,iBAA0C,cAAA,CAAe,kBAAA,MAAA,CACxD,KAAA,EAAO,cAAA,CAAe,gCAAA,CAAiC,OAAA,IACrD,OAAA,CAAQ,cAAA,CAAe,iBAAA,CAAkB,OAAA;EAI5C,kBAAA,iBAAmC,cAAA,CAAe,kBAAA,MAAA,CACjD,KAAA,EAAO,cAAA,CAAe,yBAAA,CAA0B,OAAA,IAC9C,OAAA,CAAQ,cAAA,CAAe,iBAAA,CAAkB,OAAA;EAI5C,mBAAA,iBAAoC,cAAA,CAAe,0BAAA,MAAA,CAClD,KAAA,EAAO,iCAAA,CAAkC,OAAA,IACvC,OAAA,CAAQ,cAAA,CAAe,yBAAA,CAA0B,OAAA;EAIpD,oBAAA,CACC,KAAA,GAAQ,cAAA,CAAe,2BAAA,GACrB,OAAA,CAAQ,cAAA,CAAe,4BAAA;EAI1B,qBAAA,CACC,KAAA,GAAQ,cAAA,CAAe,4BAAA,GACrB,OAAA,CAAQ,cAAA,CAAe,6BAAA;EAI1B,iBAAA,CACC,KAAA,GAAQ,cAAA,CAAe,wBAAA,GACrB,OAAA,CAAQ,cAAA,CAAe,yBAAA;EAI1B,kBAAA,CACC,KAAA,GAAQ,cAAA,CAAe,yBAAA,GACrB,OAAA,CAAQ,cAAA,CAAe,0BAAA;EAIpB,iBAAA,iBAAkC,mBAAA,MAAA,CACvC,KAAA,EAAO,cAAA,CAAe,wBAAA;IAA6B,OAAA,GAAU,OAAA,GAAU,mBAAA;EAAA,IACrE,OAAA,CAAQ,kCAAA,CAAmC,OAAA;EA8E9C,eAAA,CACC,KAAA,EAAO,cAAA,CAAe,sBAAA,GACpB,OAAA,CAAQ,cAAA,CAAe,uBAAA;EAI1B,qBAAA,iBAAsC,cAAA,CAAe,aAAA,MAAA,CACpD,KAAA,EAAO,cAAA,CAAe,4BAAA,CAA6B,OAAA,IACjD,OAAA,CAAQ,cAAA,CAAe,6BAAA,CAA8B,OAAA;EAIxD,gBAAA,iBAAiC,cAAA,CAAe,kBAAA,MAAA,CAC/C,KAAA,EAAO,cAAA,CAAe,uBAAA,CAAwB,OAAA,IAC5C,OAAA,CAAQ,cAAA,CAAe,wBAAA,CAAyB,OAAA;EAInD,UAAA,CAAW,KAAA,EAAO,cAAA,CAAe,iBAAA,GAAoB,OAAA,CAAQ,cAAA,CAAe,kBAAA;EAI5E,eAAA,CACC,KAAA,EAAO,cAAA,CAAe,sBAAA,GACpB,OAAA,CAAQ,cAAA,CAAe,uBAAA;EAI1B,wBAAA,CAAA,GAA4B,iBAAA;EAI5B,sBAAA,CACC,KAAA,EAAO,cAAA,CAAe,6BAAA,GACpB,OAAA,CAAQ,cAAA,CAAe,qBAAA;EAI1B,sBAAA,CACC,KAAA,EAAO,cAAA,CAAe,6BAAA,GACpB,OAAA,CAAQ,cAAA,CAAe,8BAAA;EAI1B,yBAAA,CACC,KAAA,EAAO,cAAA,CAAe,gCAAA,GACpB,OAAA,CAAQ,cAAA,CAAe,iCAAA;AAAA"}
@@ -94,13 +94,23 @@ var SuiGraphQLClient = class extends BaseClient {
94
94
  simulateTransaction(input) {
95
95
  return this.core.simulateTransaction(input);
96
96
  }
97
- getReferenceGasPrice() {
98
- return this.core.getReferenceGasPrice();
97
+ getReferenceGasPrice(input) {
98
+ return this.core.getReferenceGasPrice(input);
99
+ }
100
+ getCurrentSystemState(input) {
101
+ return this.core.getCurrentSystemState(input);
102
+ }
103
+ getProtocolConfig(input) {
104
+ return this.core.getProtocolConfig(input);
105
+ }
106
+ getChainIdentifier(input) {
107
+ return this.core.getChainIdentifier(input);
99
108
  }
100
109
  async listDynamicFields(input) {
101
110
  const includeValue = input.include?.value ?? false;
102
111
  const { data, errors } = await this.query({
103
112
  query: GetDynamicFieldsDocument,
113
+ signal: input.signal,
104
114
  variables: {
105
115
  parentId: input.parentId,
106
116
  first: input.limit,
@@ -147,6 +157,9 @@ var SuiGraphQLClient = class extends BaseClient {
147
157
  getDynamicField(input) {
148
158
  return this.core.getDynamicField(input);
149
159
  }
160
+ getDynamicObjectField(input) {
161
+ return this.core.getDynamicObjectField(input);
162
+ }
150
163
  listTransactions(input) {
151
164
  return this.core.listTransactions(input);
152
165
  }