@mysten/sui 2.24.0 → 2.25.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.
- package/CHANGELOG.md +60 -0
- package/dist/bcs/bcs.d.mts +6 -6
- package/dist/bcs/index.d.mts +36 -36
- package/dist/client/core.d.mts.map +1 -1
- package/dist/client/core.mjs +4 -1
- package/dist/client/core.mjs.map +1 -1
- package/dist/client/mvr.d.mts.map +1 -1
- package/dist/client/mvr.mjs +1 -0
- package/dist/client/mvr.mjs.map +1 -1
- package/dist/cryptography/signature.d.mts +6 -6
- package/dist/graphql/client.d.mts +5 -1
- package/dist/graphql/client.d.mts.map +1 -1
- package/dist/graphql/client.mjs +15 -2
- package/dist/graphql/client.mjs.map +1 -1
- package/dist/graphql/core.d.mts +4 -4
- package/dist/graphql/core.d.mts.map +1 -1
- package/dist/graphql/core.mjs +50 -13
- package/dist/graphql/core.mjs.map +1 -1
- package/dist/graphql/generated/tada-env.d.mts +16 -0
- package/dist/grpc/client.d.mts +5 -1
- package/dist/grpc/client.d.mts.map +1 -1
- package/dist/grpc/client.mjs +14 -2
- package/dist/grpc/client.mjs.map +1 -1
- package/dist/grpc/proto/sui/rpc/v2/move_package_service.client.d.mts +4 -4
- package/dist/grpc/proto/sui/rpc/v2/signature_verification_service.client.d.mts +4 -4
- package/dist/grpc/proto/sui/rpc/v2/state_service.client.d.mts +4 -4
- package/dist/grpc/proto/sui/rpc/v2/subscription_service.client.d.mts +4 -4
- package/dist/grpc/proto/sui/rpc/v2/transaction_execution_service.client.d.mts +4 -4
- package/dist/jsonRpc/client.d.mts.map +1 -1
- package/dist/jsonRpc/client.mjs +60 -15
- package/dist/jsonRpc/client.mjs.map +1 -1
- package/dist/jsonRpc/core.d.mts +1 -1
- package/dist/jsonRpc/core.d.mts.map +1 -1
- package/dist/jsonRpc/core.mjs +18 -7
- package/dist/jsonRpc/core.mjs.map +1 -1
- package/dist/transactions/Transaction.d.mts +3 -3
- package/dist/transactions/data/v1.d.mts +220 -220
- package/dist/transactions/data/v1.d.mts.map +1 -1
- package/dist/transactions/data/v2.d.mts +16 -16
- package/dist/transactions/data/v2.d.mts.map +1 -1
- package/dist/version.mjs +1 -1
- package/dist/version.mjs.map +1 -1
- package/dist/zklogin/bcs.d.mts +14 -14
- package/docs/bcs.md +2 -2
- package/docs/clients/core.md +150 -710
- package/docs/clients/executing.md +113 -0
- package/docs/clients/graphql.md +80 -70
- package/docs/clients/grpc.md +223 -208
- package/docs/clients/index.md +56 -67
- package/docs/clients/querying.md +539 -0
- package/docs/llms-index.md +6 -5
- package/docs/migrations/sui-2.0/json-rpc-migration.md +3 -1
- package/docs/transactions/signing-and-execution.md +8 -28
- package/package.json +1 -1
- package/src/client/core.ts +1 -0
- package/src/client/mvr.ts +6 -0
- package/src/graphql/client.ts +29 -2
- package/src/graphql/core.ts +42 -10
- package/src/graphql/generated/schema.graphql +11 -1
- package/src/graphql/generated/tada-env.ts +20 -0
- package/src/grpc/client.ts +28 -2
- package/src/jsonRpc/client.ts +15 -0
- package/src/jsonRpc/core.ts +19 -6
- package/src/version.ts +1 -1
- package/docs/clients/json-rpc.md +0 -243
package/dist/client/mvr.mjs.map
CHANGED
|
@@ -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":"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"}
|
|
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":"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"}
|
package/dist/graphql/client.mjs
CHANGED
|
@@ -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
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.mjs","names":["#url","#queries","#headers","#fetch"],"sources":["../../src/graphql/client.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { TypedDocumentNode } from '@graphql-typed-document-node/core';\nimport type { TadaDocumentNode } from 'gql.tada';\nimport type { DocumentNode } from 'graphql';\nimport { print } from 'graphql';\nimport { BaseClient } from '../client/index.js';\nimport type { SuiClientTypes } from '../client/index.js';\nimport { GraphQLCoreClient } from './core.js';\nimport type { TypedDocumentString } from './generated/queries.js';\nimport { GetDynamicFieldsDocument } from './generated/queries.js';\nimport { fromBase64 } from '@mysten/utils';\nimport { normalizeStructTag } from '../utils/sui-types.js';\nimport { deriveDynamicFieldID } from '../utils/dynamic-fields.js';\nimport type { TransactionPlugin } from '../transactions/index.js';\n\nexport type GraphQLDocument<\n\tResult = Record<string, unknown>,\n\tVariables = Record<string, unknown>,\n> =\n\t| string\n\t| DocumentNode\n\t| TypedDocumentString<Result, Variables>\n\t| TypedDocumentNode<Result, Variables>\n\t| TadaDocumentNode<Result, Variables>;\n\nexport type GraphQLQueryOptions<\n\tResult = Record<string, unknown>,\n\tVariables = Record<string, unknown>,\n> = {\n\tquery: GraphQLDocument<Result, Variables>;\n\toperationName?: string;\n\textensions?: Record<string, unknown>;\n\tsignal?: AbortSignal;\n} & (Variables extends { [key: string]: never }\n\t? { variables?: Variables }\n\t: {\n\t\t\tvariables: Variables;\n\t\t});\n\nexport type GraphQLQueryResult<Result = Record<string, unknown>> = {\n\tdata?: Result;\n\terrors?: GraphQLResponseErrors;\n\textensions?: Record<string, unknown>;\n};\n\nexport type GraphQLResponseErrors = Array<{\n\tmessage: string;\n\tlocations?: { line: number; column: number }[];\n\tpath?: (string | number)[];\n}>;\n\nexport interface SuiGraphQLClientOptions<Queries extends Record<string, GraphQLDocument>> {\n\turl: string;\n\tfetch?: typeof fetch;\n\theaders?: Record<string, string>;\n\tqueries?: Queries;\n\tnetwork: SuiClientTypes.Network;\n\tmvr?: SuiClientTypes.MvrOptions;\n}\n\nexport class SuiGraphQLRequestError extends Error {}\n\nconst SUI_CLIENT_BRAND = Symbol.for('@mysten/SuiGraphQLClient') as never;\n\nexport function isSuiGraphQLClient(client: unknown): client is SuiGraphQLClient {\n\treturn (\n\t\ttypeof client === 'object' && client !== null && (client as any)[SUI_CLIENT_BRAND] === true\n\t);\n}\n\nexport interface GraphQLSimulateTransactionOptions<\n\tInclude extends SuiClientTypes.SimulateTransactionInclude = {},\n> extends SuiClientTypes.SimulateTransactionOptions<Include> {\n\t/**\n\t * Overrides whether the server selects gas payment during simulation.\n\t *\n\t * When not set, gas selection is enabled only when the transaction's gas payment is explicitly\n\t * set to an empty list (`[]`), which indicates gas is paid from the sender's address balance.\n\t * Transactions with gas coins set are simulated as-is, and transactions without a gas payment\n\t * are simulated with a mocked gas coin.\n\t */\n\tdoGasSelection?: boolean;\n}\n\nexport interface DynamicFieldInclude {\n\tvalue?: boolean;\n}\n\nexport type DynamicFieldEntryWithValue<Include extends DynamicFieldInclude = {}> =\n\tSuiClientTypes.DynamicFieldEntry & {\n\t\tvalue: Include extends { value: true } ? SuiClientTypes.DynamicFieldValue : undefined;\n\t};\n\nexport interface ListDynamicFieldsWithValueResponse<Include extends DynamicFieldInclude = {}> {\n\thasNextPage: boolean;\n\tcursor: string | null;\n\tdynamicFields: DynamicFieldEntryWithValue<Include>[];\n}\n\nexport class SuiGraphQLClient<Queries extends Record<string, GraphQLDocument> = {}>\n\textends BaseClient\n\timplements SuiClientTypes.TransportMethods\n{\n\t#url: string;\n\t#queries: Queries;\n\t#headers: Record<string, string>;\n\t#fetch: typeof fetch;\n\tcore: GraphQLCoreClient;\n\tget mvr(): SuiClientTypes.MvrMethods {\n\t\treturn this.core.mvr;\n\t}\n\n\tget [SUI_CLIENT_BRAND]() {\n\t\treturn true;\n\t}\n\n\tconstructor({\n\t\turl,\n\t\tfetch: fetchFn = fetch,\n\t\theaders = {},\n\t\tqueries = {} as Queries,\n\t\tnetwork,\n\t\tmvr,\n\t}: SuiGraphQLClientOptions<Queries>) {\n\t\tsuper({\n\t\t\tnetwork,\n\t\t});\n\t\tthis.#url = url;\n\t\tthis.#queries = queries;\n\t\tthis.#headers = headers;\n\t\tthis.#fetch = (...args) => fetchFn(...args);\n\t\tthis.core = new GraphQLCoreClient({\n\t\t\tgraphqlClient: this,\n\t\t\tmvr,\n\t\t});\n\t}\n\n\tasync query<Result = Record<string, unknown>, Variables = Record<string, unknown>>(\n\t\toptions: GraphQLQueryOptions<Result, Variables>,\n\t): Promise<GraphQLQueryResult<Result>> {\n\t\tconst res = await this.#fetch(this.#url, {\n\t\t\tmethod: 'POST',\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t...this.#headers,\n\t\t\t},\n\t\t\tbody: JSON.stringify({\n\t\t\t\tquery:\n\t\t\t\t\ttypeof options.query === 'string' || options.query instanceof String\n\t\t\t\t\t\t? String(options.query)\n\t\t\t\t\t\t: print(options.query),\n\t\t\t\tvariables: options.variables,\n\t\t\t\textensions: options.extensions,\n\t\t\t\toperationName: options.operationName,\n\t\t\t}),\n\t\t\tsignal: options.signal,\n\t\t});\n\n\t\tif (!res.ok) {\n\t\t\tthrow new SuiGraphQLRequestError(`GraphQL request failed: ${res.statusText} (${res.status})`);\n\t\t}\n\n\t\treturn await res.json();\n\t}\n\n\tasync execute<\n\t\tconst Query extends Extract<keyof Queries, string>,\n\t\tResult = Queries[Query] extends GraphQLDocument<infer R, unknown> ? R : Record<string, unknown>,\n\t\tVariables = Queries[Query] extends GraphQLDocument<unknown, infer V>\n\t\t\t? V\n\t\t\t: Record<string, unknown>,\n\t>(\n\t\tquery: Query,\n\t\toptions: Omit<GraphQLQueryOptions<Result, Variables>, 'query'>,\n\t): Promise<GraphQLQueryResult<Result>> {\n\t\treturn this.query({\n\t\t\t...(options as { variables: Record<string, unknown> }),\n\t\t\tquery: this.#queries[query]!,\n\t\t}) as Promise<GraphQLQueryResult<Result>>;\n\t}\n\n\tgetObjects<Include extends SuiClientTypes.ObjectInclude = {}>(\n\t\tinput: SuiClientTypes.GetObjectsOptions<Include>,\n\t): Promise<SuiClientTypes.GetObjectsResponse<Include>> {\n\t\treturn this.core.getObjects(input);\n\t}\n\n\tgetObject<Include extends SuiClientTypes.ObjectInclude = {}>(\n\t\tinput: SuiClientTypes.GetObjectOptions<Include>,\n\t): Promise<SuiClientTypes.GetObjectResponse<Include>> {\n\t\treturn this.core.getObject(input);\n\t}\n\n\tlistCoins(input: SuiClientTypes.ListCoinsOptions): Promise<SuiClientTypes.ListCoinsResponse> {\n\t\treturn this.core.listCoins(input);\n\t}\n\n\tlistOwnedObjects<Include extends SuiClientTypes.ObjectInclude = {}>(\n\t\tinput: SuiClientTypes.ListOwnedObjectsOptions<Include>,\n\t): Promise<SuiClientTypes.ListOwnedObjectsResponse<Include>> {\n\t\treturn this.core.listOwnedObjects(input);\n\t}\n\n\tgetBalance(input: SuiClientTypes.GetBalanceOptions): Promise<SuiClientTypes.GetBalanceResponse> {\n\t\treturn this.core.getBalance(input);\n\t}\n\n\tlistBalances(\n\t\tinput: SuiClientTypes.ListBalancesOptions,\n\t): Promise<SuiClientTypes.ListBalancesResponse> {\n\t\treturn this.core.listBalances(input);\n\t}\n\n\tgetCoinMetadata(\n\t\tinput: SuiClientTypes.GetCoinMetadataOptions,\n\t): Promise<SuiClientTypes.GetCoinMetadataResponse> {\n\t\treturn this.core.getCoinMetadata(input);\n\t}\n\n\tgetTransaction<Include extends SuiClientTypes.TransactionInclude = {}>(\n\t\tinput: SuiClientTypes.GetTransactionOptions<Include>,\n\t): Promise<SuiClientTypes.TransactionResult<Include>> {\n\t\treturn this.core.getTransaction(input);\n\t}\n\n\texecuteTransaction<Include extends SuiClientTypes.TransactionInclude = {}>(\n\t\tinput: SuiClientTypes.ExecuteTransactionOptions<Include>,\n\t): Promise<SuiClientTypes.TransactionResult<Include>> {\n\t\treturn this.core.executeTransaction(input);\n\t}\n\n\tsignAndExecuteTransaction<Include extends SuiClientTypes.TransactionInclude = {}>(\n\t\tinput: SuiClientTypes.SignAndExecuteTransactionOptions<Include>,\n\t): Promise<SuiClientTypes.TransactionResult<Include>> {\n\t\treturn this.core.signAndExecuteTransaction(input);\n\t}\n\n\twaitForTransaction<Include extends SuiClientTypes.TransactionInclude = {}>(\n\t\tinput: SuiClientTypes.WaitForTransactionOptions<Include>,\n\t): Promise<SuiClientTypes.TransactionResult<Include>> {\n\t\treturn this.core.waitForTransaction(input);\n\t}\n\n\tsimulateTransaction<Include extends SuiClientTypes.SimulateTransactionInclude = {}>(\n\t\tinput: GraphQLSimulateTransactionOptions<Include>,\n\t): Promise<SuiClientTypes.SimulateTransactionResult<Include>> {\n\t\treturn this.core.simulateTransaction(input);\n\t}\n\n\tgetReferenceGasPrice(): Promise<SuiClientTypes.GetReferenceGasPriceResponse> {\n\t\treturn this.core.getReferenceGasPrice();\n\t}\n\n\tasync listDynamicFields<Include extends DynamicFieldInclude = {}>(\n\t\tinput: SuiClientTypes.ListDynamicFieldsOptions & { include?: Include & DynamicFieldInclude },\n\t): Promise<ListDynamicFieldsWithValueResponse<Include>> {\n\t\tconst includeValue = input.include?.value ?? false;\n\n\t\tconst { data, errors } = await this.query({\n\t\t\tquery: GetDynamicFieldsDocument,\n\t\t\tvariables: {\n\t\t\t\tparentId: input.parentId,\n\t\t\t\tfirst: input.limit,\n\t\t\t\tcursor: input.cursor,\n\t\t\t\tincludeValue,\n\t\t\t},\n\t\t});\n\n\t\tif (errors?.length) {\n\t\t\tthrow errors.length === 1\n\t\t\t\t? new Error(errors[0].message)\n\t\t\t\t: new AggregateError(errors.map((e) => new Error(e.message)));\n\t\t}\n\n\t\tconst result = data?.address?.dynamicFields;\n\t\tif (!result) {\n\t\t\tthrow new Error('Missing response data');\n\t\t}\n\n\t\treturn {\n\t\t\tdynamicFields: result.nodes.map((dynamicField): DynamicFieldEntryWithValue<Include> => {\n\t\t\t\tconst valueType =\n\t\t\t\t\tdynamicField.value?.__typename === 'MoveObject'\n\t\t\t\t\t\t? dynamicField.value.contents?.type?.repr!\n\t\t\t\t\t\t: dynamicField.value?.type?.repr!;\n\t\t\t\tconst isDynamicObject = dynamicField.value?.__typename === 'MoveObject';\n\t\t\t\tconst derivedNameType = isDynamicObject\n\t\t\t\t\t? `0x2::dynamic_object_field::Wrapper<${dynamicField.name?.type?.repr}>`\n\t\t\t\t\t: dynamicField.name?.type?.repr!;\n\n\t\t\t\tlet value: SuiClientTypes.DynamicFieldValue | undefined;\n\t\t\t\tif (includeValue) {\n\t\t\t\t\tlet valueBcs: Uint8Array;\n\t\t\t\t\tif (dynamicField.value?.__typename === 'MoveValue') {\n\t\t\t\t\t\tvalueBcs = fromBase64(dynamicField.value.bcs ?? '');\n\t\t\t\t\t} else if (dynamicField.value?.__typename === 'MoveObject') {\n\t\t\t\t\t\tvalueBcs = fromBase64(dynamicField.value.contents?.bcs ?? '');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvalueBcs = new Uint8Array();\n\t\t\t\t\t}\n\t\t\t\t\tvalue = { type: valueType, bcs: valueBcs };\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\t$kind: isDynamicObject ? 'DynamicObject' : 'DynamicField',\n\t\t\t\t\tfieldId: deriveDynamicFieldID(\n\t\t\t\t\t\tinput.parentId,\n\t\t\t\t\t\tderivedNameType,\n\t\t\t\t\t\tfromBase64(dynamicField.name?.bcs!),\n\t\t\t\t\t),\n\t\t\t\t\ttype: normalizeStructTag(\n\t\t\t\t\t\tisDynamicObject\n\t\t\t\t\t\t\t? `0x2::dynamic_field::Field<0x2::dynamic_object_field::Wrapper<${dynamicField.name?.type?.repr}>,0x2::object::ID>`\n\t\t\t\t\t\t\t: `0x2::dynamic_field::Field<${dynamicField.name?.type?.repr},${valueType}>`,\n\t\t\t\t\t),\n\t\t\t\t\tname: {\n\t\t\t\t\t\ttype: dynamicField.name?.type?.repr!,\n\t\t\t\t\t\tbcs: fromBase64(dynamicField.name?.bcs!),\n\t\t\t\t\t},\n\t\t\t\t\tvalueType,\n\t\t\t\t\tchildId:\n\t\t\t\t\t\tisDynamicObject && dynamicField.value?.__typename === 'MoveObject'\n\t\t\t\t\t\t\t? dynamicField.value.address\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\tvalue: (includeValue ? value : undefined) as DynamicFieldEntryWithValue<Include>['value'],\n\t\t\t\t} as DynamicFieldEntryWithValue<Include>;\n\t\t\t}),\n\t\t\tcursor: result.pageInfo.endCursor ?? null,\n\t\t\thasNextPage: result.pageInfo.hasNextPage,\n\t\t};\n\t}\n\n\tgetDynamicField(\n\t\tinput: SuiClientTypes.GetDynamicFieldOptions,\n\t): Promise<SuiClientTypes.GetDynamicFieldResponse> {\n\t\treturn this.core.getDynamicField(input);\n\t}\n\n\tlistTransactions<Include extends SuiClientTypes.TransactionInclude = {}>(\n\t\tinput: SuiClientTypes.ListTransactionsOptions<Include>,\n\t): Promise<SuiClientTypes.ListTransactionsResponse<Include>> {\n\t\treturn this.core.listTransactions(input);\n\t}\n\n\tlistEvents(input: SuiClientTypes.ListEventsOptions): Promise<SuiClientTypes.ListEventsResponse> {\n\t\treturn this.core.listEvents(input);\n\t}\n\n\tgetMoveFunction(\n\t\tinput: SuiClientTypes.GetMoveFunctionOptions,\n\t): Promise<SuiClientTypes.GetMoveFunctionResponse> {\n\t\treturn this.core.getMoveFunction(input);\n\t}\n\n\tresolveTransactionPlugin(): TransactionPlugin {\n\t\treturn this.core.resolveTransactionPlugin();\n\t}\n\n\tverifyZkLoginSignature(\n\t\tinput: SuiClientTypes.VerifyZkLoginSignatureOptions,\n\t): Promise<SuiClientTypes.ZkLoginVerifyResponse> {\n\t\treturn this.core.verifyZkLoginSignature(input);\n\t}\n\n\tdefaultNameServiceName(\n\t\tinput: SuiClientTypes.DefaultNameServiceNameOptions,\n\t): Promise<SuiClientTypes.DefaultNameServiceNameResponse> {\n\t\treturn this.core.defaultNameServiceName(input);\n\t}\n\n\tresolveNameServiceAddress(\n\t\tinput: SuiClientTypes.ResolveNameServiceAddressOptions,\n\t): Promise<SuiClientTypes.ResolveNameServiceAddressResponse> {\n\t\treturn this.core.resolveNameServiceAddress(input);\n\t}\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.mjs","names":["#url","#queries","#headers","#fetch"],"sources":["../../src/graphql/client.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { TypedDocumentNode } from '@graphql-typed-document-node/core';\nimport type { TadaDocumentNode } from 'gql.tada';\nimport type { DocumentNode } from 'graphql';\nimport { print } from 'graphql';\nimport { BaseClient } from '../client/index.js';\nimport type { SuiClientTypes } from '../client/index.js';\nimport { GraphQLCoreClient } from './core.js';\nimport type { TypedDocumentString } from './generated/queries.js';\nimport { GetDynamicFieldsDocument } from './generated/queries.js';\nimport { fromBase64 } from '@mysten/utils';\nimport { normalizeStructTag } from '../utils/sui-types.js';\nimport { deriveDynamicFieldID } from '../utils/dynamic-fields.js';\nimport type { TransactionPlugin } from '../transactions/index.js';\n\nexport type GraphQLDocument<\n\tResult = Record<string, unknown>,\n\tVariables = Record<string, unknown>,\n> =\n\t| string\n\t| DocumentNode\n\t| TypedDocumentString<Result, Variables>\n\t| TypedDocumentNode<Result, Variables>\n\t| TadaDocumentNode<Result, Variables>;\n\nexport type GraphQLQueryOptions<\n\tResult = Record<string, unknown>,\n\tVariables = Record<string, unknown>,\n> = {\n\tquery: GraphQLDocument<Result, Variables>;\n\toperationName?: string;\n\textensions?: Record<string, unknown>;\n\tsignal?: AbortSignal;\n} & (Variables extends { [key: string]: never }\n\t? { variables?: Variables }\n\t: {\n\t\t\tvariables: Variables;\n\t\t});\n\nexport type GraphQLQueryResult<Result = Record<string, unknown>> = {\n\tdata?: Result;\n\terrors?: GraphQLResponseErrors;\n\textensions?: Record<string, unknown>;\n};\n\nexport type GraphQLResponseErrors = Array<{\n\tmessage: string;\n\tlocations?: { line: number; column: number }[];\n\tpath?: (string | number)[];\n}>;\n\nexport interface SuiGraphQLClientOptions<Queries extends Record<string, GraphQLDocument>> {\n\turl: string;\n\tfetch?: typeof fetch;\n\theaders?: Record<string, string>;\n\tqueries?: Queries;\n\tnetwork: SuiClientTypes.Network;\n\tmvr?: SuiClientTypes.MvrOptions;\n}\n\nexport class SuiGraphQLRequestError extends Error {}\n\nconst SUI_CLIENT_BRAND = Symbol.for('@mysten/SuiGraphQLClient') as never;\n\nexport function isSuiGraphQLClient(client: unknown): client is SuiGraphQLClient {\n\treturn (\n\t\ttypeof client === 'object' && client !== null && (client as any)[SUI_CLIENT_BRAND] === true\n\t);\n}\n\nexport interface GraphQLSimulateTransactionOptions<\n\tInclude extends SuiClientTypes.SimulateTransactionInclude = {},\n> extends SuiClientTypes.SimulateTransactionOptions<Include> {\n\t/**\n\t * Overrides whether the server selects gas payment during simulation.\n\t *\n\t * When not set, gas selection is enabled only when the transaction's gas payment is explicitly\n\t * set to an empty list (`[]`), which indicates gas is paid from the sender's address balance.\n\t * Transactions with gas coins set are simulated as-is, and transactions without a gas payment\n\t * are simulated with a mocked gas coin.\n\t */\n\tdoGasSelection?: boolean;\n}\n\nexport interface DynamicFieldInclude {\n\tvalue?: boolean;\n}\n\nexport type DynamicFieldEntryWithValue<Include extends DynamicFieldInclude = {}> =\n\tSuiClientTypes.DynamicFieldEntry & {\n\t\tvalue: Include extends { value: true } ? SuiClientTypes.DynamicFieldValue : undefined;\n\t};\n\nexport interface ListDynamicFieldsWithValueResponse<Include extends DynamicFieldInclude = {}> {\n\thasNextPage: boolean;\n\tcursor: string | null;\n\tdynamicFields: DynamicFieldEntryWithValue<Include>[];\n}\n\nexport class SuiGraphQLClient<Queries extends Record<string, GraphQLDocument> = {}>\n\textends BaseClient\n\timplements SuiClientTypes.TransportMethods\n{\n\t#url: string;\n\t#queries: Queries;\n\t#headers: Record<string, string>;\n\t#fetch: typeof fetch;\n\tcore: GraphQLCoreClient;\n\tget mvr(): SuiClientTypes.MvrMethods {\n\t\treturn this.core.mvr;\n\t}\n\n\tget [SUI_CLIENT_BRAND]() {\n\t\treturn true;\n\t}\n\n\tconstructor({\n\t\turl,\n\t\tfetch: fetchFn = fetch,\n\t\theaders = {},\n\t\tqueries = {} as Queries,\n\t\tnetwork,\n\t\tmvr,\n\t}: SuiGraphQLClientOptions<Queries>) {\n\t\tsuper({\n\t\t\tnetwork,\n\t\t});\n\t\tthis.#url = url;\n\t\tthis.#queries = queries;\n\t\tthis.#headers = headers;\n\t\tthis.#fetch = (...args) => fetchFn(...args);\n\t\tthis.core = new GraphQLCoreClient({\n\t\t\tgraphqlClient: this,\n\t\t\tmvr,\n\t\t});\n\t}\n\n\tasync query<Result = Record<string, unknown>, Variables = Record<string, unknown>>(\n\t\toptions: GraphQLQueryOptions<Result, Variables>,\n\t): Promise<GraphQLQueryResult<Result>> {\n\t\tconst res = await this.#fetch(this.#url, {\n\t\t\tmethod: 'POST',\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t...this.#headers,\n\t\t\t},\n\t\t\tbody: JSON.stringify({\n\t\t\t\tquery:\n\t\t\t\t\ttypeof options.query === 'string' || options.query instanceof String\n\t\t\t\t\t\t? String(options.query)\n\t\t\t\t\t\t: print(options.query),\n\t\t\t\tvariables: options.variables,\n\t\t\t\textensions: options.extensions,\n\t\t\t\toperationName: options.operationName,\n\t\t\t}),\n\t\t\tsignal: options.signal,\n\t\t});\n\n\t\tif (!res.ok) {\n\t\t\tthrow new SuiGraphQLRequestError(`GraphQL request failed: ${res.statusText} (${res.status})`);\n\t\t}\n\n\t\treturn await res.json();\n\t}\n\n\tasync execute<\n\t\tconst Query extends Extract<keyof Queries, string>,\n\t\tResult = Queries[Query] extends GraphQLDocument<infer R, unknown> ? R : Record<string, unknown>,\n\t\tVariables = Queries[Query] extends GraphQLDocument<unknown, infer V>\n\t\t\t? V\n\t\t\t: Record<string, unknown>,\n\t>(\n\t\tquery: Query,\n\t\toptions: Omit<GraphQLQueryOptions<Result, Variables>, 'query'>,\n\t): Promise<GraphQLQueryResult<Result>> {\n\t\treturn this.query({\n\t\t\t...(options as { variables: Record<string, unknown> }),\n\t\t\tquery: this.#queries[query]!,\n\t\t}) as Promise<GraphQLQueryResult<Result>>;\n\t}\n\n\tgetObjects<Include extends SuiClientTypes.ObjectInclude = {}>(\n\t\tinput: SuiClientTypes.GetObjectsOptions<Include>,\n\t): Promise<SuiClientTypes.GetObjectsResponse<Include>> {\n\t\treturn this.core.getObjects(input);\n\t}\n\n\tgetObject<Include extends SuiClientTypes.ObjectInclude = {}>(\n\t\tinput: SuiClientTypes.GetObjectOptions<Include>,\n\t): Promise<SuiClientTypes.GetObjectResponse<Include>> {\n\t\treturn this.core.getObject(input);\n\t}\n\n\tlistCoins(input: SuiClientTypes.ListCoinsOptions): Promise<SuiClientTypes.ListCoinsResponse> {\n\t\treturn this.core.listCoins(input);\n\t}\n\n\tlistOwnedObjects<Include extends SuiClientTypes.ObjectInclude = {}>(\n\t\tinput: SuiClientTypes.ListOwnedObjectsOptions<Include>,\n\t): Promise<SuiClientTypes.ListOwnedObjectsResponse<Include>> {\n\t\treturn this.core.listOwnedObjects(input);\n\t}\n\n\tgetBalance(input: SuiClientTypes.GetBalanceOptions): Promise<SuiClientTypes.GetBalanceResponse> {\n\t\treturn this.core.getBalance(input);\n\t}\n\n\tlistBalances(\n\t\tinput: SuiClientTypes.ListBalancesOptions,\n\t): Promise<SuiClientTypes.ListBalancesResponse> {\n\t\treturn this.core.listBalances(input);\n\t}\n\n\tgetCoinMetadata(\n\t\tinput: SuiClientTypes.GetCoinMetadataOptions,\n\t): Promise<SuiClientTypes.GetCoinMetadataResponse> {\n\t\treturn this.core.getCoinMetadata(input);\n\t}\n\n\tgetTransaction<Include extends SuiClientTypes.TransactionInclude = {}>(\n\t\tinput: SuiClientTypes.GetTransactionOptions<Include>,\n\t): Promise<SuiClientTypes.TransactionResult<Include>> {\n\t\treturn this.core.getTransaction(input);\n\t}\n\n\texecuteTransaction<Include extends SuiClientTypes.TransactionInclude = {}>(\n\t\tinput: SuiClientTypes.ExecuteTransactionOptions<Include>,\n\t): Promise<SuiClientTypes.TransactionResult<Include>> {\n\t\treturn this.core.executeTransaction(input);\n\t}\n\n\tsignAndExecuteTransaction<Include extends SuiClientTypes.TransactionInclude = {}>(\n\t\tinput: SuiClientTypes.SignAndExecuteTransactionOptions<Include>,\n\t): Promise<SuiClientTypes.TransactionResult<Include>> {\n\t\treturn this.core.signAndExecuteTransaction(input);\n\t}\n\n\twaitForTransaction<Include extends SuiClientTypes.TransactionInclude = {}>(\n\t\tinput: SuiClientTypes.WaitForTransactionOptions<Include>,\n\t): Promise<SuiClientTypes.TransactionResult<Include>> {\n\t\treturn this.core.waitForTransaction(input);\n\t}\n\n\tsimulateTransaction<Include extends SuiClientTypes.SimulateTransactionInclude = {}>(\n\t\tinput: GraphQLSimulateTransactionOptions<Include>,\n\t): Promise<SuiClientTypes.SimulateTransactionResult<Include>> {\n\t\treturn this.core.simulateTransaction(input);\n\t}\n\n\tgetReferenceGasPrice(\n\t\tinput?: SuiClientTypes.GetReferenceGasPriceOptions,\n\t): Promise<SuiClientTypes.GetReferenceGasPriceResponse> {\n\t\treturn this.core.getReferenceGasPrice(input);\n\t}\n\n\tgetCurrentSystemState(\n\t\tinput?: SuiClientTypes.GetCurrentSystemStateOptions,\n\t): Promise<SuiClientTypes.GetCurrentSystemStateResponse> {\n\t\treturn this.core.getCurrentSystemState(input);\n\t}\n\n\tgetProtocolConfig(\n\t\tinput?: SuiClientTypes.GetProtocolConfigOptions,\n\t): Promise<SuiClientTypes.GetProtocolConfigResponse> {\n\t\treturn this.core.getProtocolConfig(input);\n\t}\n\n\tgetChainIdentifier(\n\t\tinput?: SuiClientTypes.GetChainIdentifierOptions,\n\t): Promise<SuiClientTypes.GetChainIdentifierResponse> {\n\t\treturn this.core.getChainIdentifier(input);\n\t}\n\n\tasync listDynamicFields<Include extends DynamicFieldInclude = {}>(\n\t\tinput: SuiClientTypes.ListDynamicFieldsOptions & { include?: Include & DynamicFieldInclude },\n\t): Promise<ListDynamicFieldsWithValueResponse<Include>> {\n\t\tconst includeValue = input.include?.value ?? false;\n\n\t\tconst { data, errors } = await this.query({\n\t\t\tquery: GetDynamicFieldsDocument,\n\t\t\tsignal: input.signal,\n\t\t\tvariables: {\n\t\t\t\tparentId: input.parentId,\n\t\t\t\tfirst: input.limit,\n\t\t\t\tcursor: input.cursor,\n\t\t\t\tincludeValue,\n\t\t\t},\n\t\t});\n\n\t\tif (errors?.length) {\n\t\t\tthrow errors.length === 1\n\t\t\t\t? new Error(errors[0].message)\n\t\t\t\t: new AggregateError(errors.map((e) => new Error(e.message)));\n\t\t}\n\n\t\tconst result = data?.address?.dynamicFields;\n\t\tif (!result) {\n\t\t\tthrow new Error('Missing response data');\n\t\t}\n\n\t\treturn {\n\t\t\tdynamicFields: result.nodes.map((dynamicField): DynamicFieldEntryWithValue<Include> => {\n\t\t\t\tconst valueType =\n\t\t\t\t\tdynamicField.value?.__typename === 'MoveObject'\n\t\t\t\t\t\t? dynamicField.value.contents?.type?.repr!\n\t\t\t\t\t\t: dynamicField.value?.type?.repr!;\n\t\t\t\tconst isDynamicObject = dynamicField.value?.__typename === 'MoveObject';\n\t\t\t\tconst derivedNameType = isDynamicObject\n\t\t\t\t\t? `0x2::dynamic_object_field::Wrapper<${dynamicField.name?.type?.repr}>`\n\t\t\t\t\t: dynamicField.name?.type?.repr!;\n\n\t\t\t\tlet value: SuiClientTypes.DynamicFieldValue | undefined;\n\t\t\t\tif (includeValue) {\n\t\t\t\t\tlet valueBcs: Uint8Array;\n\t\t\t\t\tif (dynamicField.value?.__typename === 'MoveValue') {\n\t\t\t\t\t\tvalueBcs = fromBase64(dynamicField.value.bcs ?? '');\n\t\t\t\t\t} else if (dynamicField.value?.__typename === 'MoveObject') {\n\t\t\t\t\t\tvalueBcs = fromBase64(dynamicField.value.contents?.bcs ?? '');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvalueBcs = new Uint8Array();\n\t\t\t\t\t}\n\t\t\t\t\tvalue = { type: valueType, bcs: valueBcs };\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\t$kind: isDynamicObject ? 'DynamicObject' : 'DynamicField',\n\t\t\t\t\tfieldId: deriveDynamicFieldID(\n\t\t\t\t\t\tinput.parentId,\n\t\t\t\t\t\tderivedNameType,\n\t\t\t\t\t\tfromBase64(dynamicField.name?.bcs!),\n\t\t\t\t\t),\n\t\t\t\t\ttype: normalizeStructTag(\n\t\t\t\t\t\tisDynamicObject\n\t\t\t\t\t\t\t? `0x2::dynamic_field::Field<0x2::dynamic_object_field::Wrapper<${dynamicField.name?.type?.repr}>,0x2::object::ID>`\n\t\t\t\t\t\t\t: `0x2::dynamic_field::Field<${dynamicField.name?.type?.repr},${valueType}>`,\n\t\t\t\t\t),\n\t\t\t\t\tname: {\n\t\t\t\t\t\ttype: dynamicField.name?.type?.repr!,\n\t\t\t\t\t\tbcs: fromBase64(dynamicField.name?.bcs!),\n\t\t\t\t\t},\n\t\t\t\t\tvalueType,\n\t\t\t\t\tchildId:\n\t\t\t\t\t\tisDynamicObject && dynamicField.value?.__typename === 'MoveObject'\n\t\t\t\t\t\t\t? dynamicField.value.address\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\tvalue: (includeValue ? value : undefined) as DynamicFieldEntryWithValue<Include>['value'],\n\t\t\t\t} as DynamicFieldEntryWithValue<Include>;\n\t\t\t}),\n\t\t\tcursor: result.pageInfo.endCursor ?? null,\n\t\t\thasNextPage: result.pageInfo.hasNextPage,\n\t\t};\n\t}\n\n\tgetDynamicField(\n\t\tinput: SuiClientTypes.GetDynamicFieldOptions,\n\t): Promise<SuiClientTypes.GetDynamicFieldResponse> {\n\t\treturn this.core.getDynamicField(input);\n\t}\n\n\tgetDynamicObjectField<Include extends SuiClientTypes.ObjectInclude = {}>(\n\t\tinput: SuiClientTypes.GetDynamicObjectFieldOptions<Include>,\n\t): Promise<SuiClientTypes.GetDynamicObjectFieldResponse<Include>> {\n\t\treturn this.core.getDynamicObjectField(input);\n\t}\n\n\tlistTransactions<Include extends SuiClientTypes.TransactionInclude = {}>(\n\t\tinput: SuiClientTypes.ListTransactionsOptions<Include>,\n\t): Promise<SuiClientTypes.ListTransactionsResponse<Include>> {\n\t\treturn this.core.listTransactions(input);\n\t}\n\n\tlistEvents(input: SuiClientTypes.ListEventsOptions): Promise<SuiClientTypes.ListEventsResponse> {\n\t\treturn this.core.listEvents(input);\n\t}\n\n\tgetMoveFunction(\n\t\tinput: SuiClientTypes.GetMoveFunctionOptions,\n\t): Promise<SuiClientTypes.GetMoveFunctionResponse> {\n\t\treturn this.core.getMoveFunction(input);\n\t}\n\n\tresolveTransactionPlugin(): TransactionPlugin {\n\t\treturn this.core.resolveTransactionPlugin();\n\t}\n\n\tverifyZkLoginSignature(\n\t\tinput: SuiClientTypes.VerifyZkLoginSignatureOptions,\n\t): Promise<SuiClientTypes.ZkLoginVerifyResponse> {\n\t\treturn this.core.verifyZkLoginSignature(input);\n\t}\n\n\tdefaultNameServiceName(\n\t\tinput: SuiClientTypes.DefaultNameServiceNameOptions,\n\t): Promise<SuiClientTypes.DefaultNameServiceNameResponse> {\n\t\treturn this.core.defaultNameServiceName(input);\n\t}\n\n\tresolveNameServiceAddress(\n\t\tinput: SuiClientTypes.ResolveNameServiceAddressOptions,\n\t): Promise<SuiClientTypes.ResolveNameServiceAddressResponse> {\n\t\treturn this.core.resolveNameServiceAddress(input);\n\t}\n}\n"],"mappings":"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"}
|
package/dist/graphql/core.d.mts
CHANGED
|
@@ -26,9 +26,9 @@ declare class GraphQLCoreClient extends CoreClient {
|
|
|
26
26
|
simulateTransaction<Include extends SuiClientTypes.SimulateTransactionInclude = {}>(options: SuiClientTypes.SimulateTransactionOptions<Include> & {
|
|
27
27
|
doGasSelection?: boolean;
|
|
28
28
|
}): Promise<SuiClientTypes.SimulateTransactionResult<Include>>;
|
|
29
|
-
getReferenceGasPrice(): Promise<SuiClientTypes.GetReferenceGasPriceResponse>;
|
|
30
|
-
getProtocolConfig(): Promise<SuiClientTypes.GetProtocolConfigResponse>;
|
|
31
|
-
getCurrentSystemState(): Promise<SuiClientTypes.GetCurrentSystemStateResponse>;
|
|
29
|
+
getReferenceGasPrice(options?: SuiClientTypes.GetReferenceGasPriceOptions): Promise<SuiClientTypes.GetReferenceGasPriceResponse>;
|
|
30
|
+
getProtocolConfig(options?: SuiClientTypes.GetProtocolConfigOptions): Promise<SuiClientTypes.GetProtocolConfigResponse>;
|
|
31
|
+
getCurrentSystemState(options?: SuiClientTypes.GetCurrentSystemStateOptions): Promise<SuiClientTypes.GetCurrentSystemStateResponse>;
|
|
32
32
|
listDynamicFields(options: SuiClientTypes.ListDynamicFieldsOptions): Promise<SuiClientTypes.ListDynamicFieldsResponse>;
|
|
33
33
|
listTransactions<Include extends SuiClientTypes.TransactionInclude = {}>(options: SuiClientTypes.ListTransactionsOptions<Include>): Promise<SuiClientTypes.ListTransactionsResponse<Include>>;
|
|
34
34
|
listEvents(options: SuiClientTypes.ListEventsOptions): Promise<SuiClientTypes.ListEventsResponse>;
|
|
@@ -36,7 +36,7 @@ declare class GraphQLCoreClient extends CoreClient {
|
|
|
36
36
|
defaultNameServiceName(options: SuiClientTypes.DefaultNameServiceNameOptions): Promise<SuiClientTypes.DefaultNameServiceNameResponse>;
|
|
37
37
|
resolveNameServiceAddress(options: SuiClientTypes.ResolveNameServiceAddressOptions): Promise<SuiClientTypes.ResolveNameServiceAddressResponse>;
|
|
38
38
|
getMoveFunction(options: SuiClientTypes.GetMoveFunctionOptions): Promise<SuiClientTypes.GetMoveFunctionResponse>;
|
|
39
|
-
getChainIdentifier(
|
|
39
|
+
getChainIdentifier(options?: SuiClientTypes.GetChainIdentifierOptions): Promise<SuiClientTypes.GetChainIdentifierResponse>;
|
|
40
40
|
resolveTransactionPlugin(): (transactionData: TransactionDataBuilder, options: BuildTransactionOptions, next: () => Promise<void>) => Promise<void>;
|
|
41
41
|
}
|
|
42
42
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.d.mts","names":[],"sources":["../../src/graphql/core.ts"],"mappings":";;;;;;;;
|
|
1
|
+
{"version":3,"file":"core.d.mts","names":[],"sources":["../../src/graphql/core.ts"],"mappings":"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"}
|
package/dist/graphql/core.mjs
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { normalizeStructTag, normalizeSuiAddress } from "../utils/sui-types.mjs";
|
|
2
|
+
import { raceSignal } from "../client/mvr.mjs";
|
|
2
3
|
import { CoreClient } from "../client/core.mjs";
|
|
3
4
|
import { TransactionDataBuilder } from "../transactions/TransactionData.mjs";
|
|
4
5
|
import { formatMoveAbortMessage, parseTransactionEffectsBcs, transactionBytesHaveEmptyGasPayment } from "../client/utils.mjs";
|
|
@@ -37,6 +38,7 @@ var GraphQLCoreClient = class extends CoreClient {
|
|
|
37
38
|
for (const batch of batches) {
|
|
38
39
|
const page = await this.#graphqlQuery({
|
|
39
40
|
query: MultiGetObjectsDocument,
|
|
41
|
+
signal: options.signal,
|
|
40
42
|
variables: {
|
|
41
43
|
objectKeys: batch.map((address) => ({ address })),
|
|
42
44
|
includeContent: options.include?.content ?? false,
|
|
@@ -75,11 +77,15 @@ var GraphQLCoreClient = class extends CoreClient {
|
|
|
75
77
|
async listOwnedObjects(options) {
|
|
76
78
|
const objects = await this.#graphqlQuery({
|
|
77
79
|
query: GetOwnedObjectsDocument,
|
|
80
|
+
signal: options.signal,
|
|
78
81
|
variables: {
|
|
79
82
|
owner: options.owner,
|
|
80
83
|
limit: options.limit,
|
|
81
84
|
cursor: options.cursor,
|
|
82
|
-
filter: options.type ? { type: (await this.mvr.resolveType({
|
|
85
|
+
filter: options.type ? { type: (await this.mvr.resolveType({
|
|
86
|
+
type: options.type,
|
|
87
|
+
signal: options.signal
|
|
88
|
+
})).type } : void 0,
|
|
83
89
|
includeContent: options.include?.content ?? false,
|
|
84
90
|
includePreviousTransaction: options.include?.previousTransaction ?? false,
|
|
85
91
|
includeObjectBcs: options.include?.objectBcs ?? false,
|
|
@@ -108,11 +114,15 @@ var GraphQLCoreClient = class extends CoreClient {
|
|
|
108
114
|
const coinType = options.coinType ?? SUI_TYPE_ARG;
|
|
109
115
|
const coins = await this.#graphqlQuery({
|
|
110
116
|
query: GetCoinsDocument,
|
|
117
|
+
signal: options.signal,
|
|
111
118
|
variables: {
|
|
112
119
|
owner: options.owner,
|
|
113
120
|
cursor: options.cursor,
|
|
114
121
|
first: options.limit,
|
|
115
|
-
type: `0x2::coin::Coin<${(await this.mvr.resolveType({
|
|
122
|
+
type: `0x2::coin::Coin<${(await this.mvr.resolveType({
|
|
123
|
+
type: coinType,
|
|
124
|
+
signal: options.signal
|
|
125
|
+
})).type}>`
|
|
116
126
|
}
|
|
117
127
|
}, (result) => result.address?.objects);
|
|
118
128
|
return {
|
|
@@ -132,9 +142,13 @@ var GraphQLCoreClient = class extends CoreClient {
|
|
|
132
142
|
const coinType = options.coinType ?? SUI_TYPE_ARG;
|
|
133
143
|
const result = await this.#graphqlQuery({
|
|
134
144
|
query: GetBalanceDocument,
|
|
145
|
+
signal: options.signal,
|
|
135
146
|
variables: {
|
|
136
147
|
owner: options.owner,
|
|
137
|
-
coinType: (await this.mvr.resolveType({
|
|
148
|
+
coinType: (await this.mvr.resolveType({
|
|
149
|
+
type: coinType,
|
|
150
|
+
signal: options.signal
|
|
151
|
+
})).type
|
|
138
152
|
}
|
|
139
153
|
}, (result$1) => result$1.address?.balance);
|
|
140
154
|
const addressBalance = BigInt(result.addressBalance ?? "0");
|
|
@@ -147,9 +161,13 @@ var GraphQLCoreClient = class extends CoreClient {
|
|
|
147
161
|
} };
|
|
148
162
|
}
|
|
149
163
|
async getCoinMetadata(options) {
|
|
150
|
-
const coinType = (await this.mvr.resolveType({
|
|
164
|
+
const coinType = (await this.mvr.resolveType({
|
|
165
|
+
type: options.coinType,
|
|
166
|
+
signal: options.signal
|
|
167
|
+
})).type;
|
|
151
168
|
const { data, errors } = await this.#graphqlClient.query({
|
|
152
169
|
query: GetCoinMetadataDocument,
|
|
170
|
+
signal: options.signal,
|
|
153
171
|
variables: { coinType }
|
|
154
172
|
});
|
|
155
173
|
handleGraphQLErrors(errors);
|
|
@@ -166,6 +184,7 @@ var GraphQLCoreClient = class extends CoreClient {
|
|
|
166
184
|
async listBalances(options) {
|
|
167
185
|
const balances = await this.#graphqlQuery({
|
|
168
186
|
query: GetAllBalancesDocument,
|
|
187
|
+
signal: options.signal,
|
|
169
188
|
variables: {
|
|
170
189
|
owner: options.owner,
|
|
171
190
|
limit: options.limit,
|
|
@@ -190,6 +209,7 @@ var GraphQLCoreClient = class extends CoreClient {
|
|
|
190
209
|
async getTransaction(options) {
|
|
191
210
|
return parseTransaction(await this.#graphqlQuery({
|
|
192
211
|
query: GetTransactionBlockDocument,
|
|
212
|
+
signal: options.signal,
|
|
193
213
|
variables: {
|
|
194
214
|
digest: options.digest,
|
|
195
215
|
includeTransaction: options.include?.transaction ?? false,
|
|
@@ -204,6 +224,7 @@ var GraphQLCoreClient = class extends CoreClient {
|
|
|
204
224
|
async executeTransaction(options) {
|
|
205
225
|
return parseTransaction((await this.#graphqlQuery({
|
|
206
226
|
query: ExecuteTransactionDocument,
|
|
227
|
+
signal: options.signal,
|
|
207
228
|
variables: {
|
|
208
229
|
transactionDataBcs: toBase64(options.transaction),
|
|
209
230
|
signatures: options.signatures,
|
|
@@ -221,6 +242,7 @@ var GraphQLCoreClient = class extends CoreClient {
|
|
|
221
242
|
const doGasSelection = options.doGasSelection ?? (options.transaction instanceof Uint8Array ? transactionBytesHaveEmptyGasPayment(options.transaction) : options.transaction.getData().gasData.payment?.length === 0);
|
|
222
243
|
const result = await this.#graphqlQuery({
|
|
223
244
|
query: SimulateTransactionDocument,
|
|
245
|
+
signal: options.signal,
|
|
224
246
|
variables: {
|
|
225
247
|
transaction: options.transaction instanceof Uint8Array ? { bcs: { value: toBase64(options.transaction) } } : transactionToGrpcJson(options.transaction),
|
|
226
248
|
includeTransaction: options.include?.transaction ?? false,
|
|
@@ -250,11 +272,17 @@ var GraphQLCoreClient = class extends CoreClient {
|
|
|
250
272
|
commandResults
|
|
251
273
|
};
|
|
252
274
|
}
|
|
253
|
-
async getReferenceGasPrice() {
|
|
254
|
-
return { referenceGasPrice: await this.#graphqlQuery({
|
|
275
|
+
async getReferenceGasPrice(options) {
|
|
276
|
+
return { referenceGasPrice: await this.#graphqlQuery({
|
|
277
|
+
query: GetReferenceGasPriceDocument,
|
|
278
|
+
signal: options?.signal
|
|
279
|
+
}, (result) => result.epoch?.referenceGasPrice) ?? "" };
|
|
255
280
|
}
|
|
256
|
-
async getProtocolConfig() {
|
|
257
|
-
const result = await this.#graphqlQuery({
|
|
281
|
+
async getProtocolConfig(options) {
|
|
282
|
+
const result = await this.#graphqlQuery({
|
|
283
|
+
query: GetProtocolConfigDocument,
|
|
284
|
+
signal: options?.signal
|
|
285
|
+
}, (result$1) => result$1.epoch?.protocolConfigs);
|
|
258
286
|
const featureFlags = {};
|
|
259
287
|
for (const flag of result?.featureFlags ?? []) featureFlags[flag.key] = flag.value;
|
|
260
288
|
const attributes = {};
|
|
@@ -265,8 +293,11 @@ var GraphQLCoreClient = class extends CoreClient {
|
|
|
265
293
|
attributes
|
|
266
294
|
} };
|
|
267
295
|
}
|
|
268
|
-
async getCurrentSystemState() {
|
|
269
|
-
const result = await this.#graphqlQuery({
|
|
296
|
+
async getCurrentSystemState(options) {
|
|
297
|
+
const result = await this.#graphqlQuery({
|
|
298
|
+
query: GetCurrentSystemStateDocument,
|
|
299
|
+
signal: options?.signal
|
|
300
|
+
}, (result$1) => result$1.epoch);
|
|
270
301
|
if (!result) throw new Error("Epoch data not found in response");
|
|
271
302
|
const startMs = result.startTimestamp ? new Date(result.startTimestamp).getTime().toString() : null;
|
|
272
303
|
const systemStateJson = result.systemState?.json;
|
|
@@ -388,6 +419,7 @@ var GraphQLCoreClient = class extends CoreClient {
|
|
|
388
419
|
const intentScope = options.intentScope === "TransactionData" ? ZkLoginIntentScope.TransactionData : ZkLoginIntentScope.PersonalMessage;
|
|
389
420
|
const { data } = await this.#graphqlClient.query({
|
|
390
421
|
query: VerifyZkLoginSignatureDocument,
|
|
422
|
+
signal: options.signal,
|
|
391
423
|
variables: {
|
|
392
424
|
bytes: options.bytes,
|
|
393
425
|
signature: options.signature,
|
|
@@ -419,8 +451,12 @@ var GraphQLCoreClient = class extends CoreClient {
|
|
|
419
451
|
async getMoveFunction(options) {
|
|
420
452
|
const moveFunction = await this.#graphqlQuery({
|
|
421
453
|
query: GetMoveFunctionDocument,
|
|
454
|
+
signal: options.signal,
|
|
422
455
|
variables: {
|
|
423
|
-
package: (await this.mvr.resolvePackage({
|
|
456
|
+
package: (await this.mvr.resolvePackage({
|
|
457
|
+
package: options.packageId,
|
|
458
|
+
signal: options.signal
|
|
459
|
+
})).package,
|
|
424
460
|
module: options.moduleName,
|
|
425
461
|
function: options.name
|
|
426
462
|
}
|
|
@@ -459,12 +495,13 @@ var GraphQLCoreClient = class extends CoreClient {
|
|
|
459
495
|
returns: moveFunction.return?.map(({ signature }) => parseNormalizedSuiMoveType(signature)) ?? []
|
|
460
496
|
} };
|
|
461
497
|
}
|
|
462
|
-
async getChainIdentifier(
|
|
463
|
-
|
|
498
|
+
async getChainIdentifier(options) {
|
|
499
|
+
const cached = this.cache.read(["chainIdentifier"], async () => {
|
|
464
500
|
const checkpoint = await this.#graphqlQuery({ query: GetChainIdentifierDocument }, (result) => result.checkpoint);
|
|
465
501
|
if (!checkpoint?.digest) throw new Error("Genesis checkpoint digest not found");
|
|
466
502
|
return { chainIdentifier: checkpoint.digest };
|
|
467
503
|
});
|
|
504
|
+
return raceSignal(Promise.resolve(cached), options?.signal);
|
|
468
505
|
}
|
|
469
506
|
resolveTransactionPlugin() {
|
|
470
507
|
const graphqlClient = this.#graphqlClient;
|