UNPKG

@mysten/sui

Version:

Sui TypeScript API(Work in Progress)

101 lines (100 loc) 3.56 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var core_exports = {}; __export(core_exports, { Experimental_CoreClient: () => Experimental_CoreClient }); module.exports = __toCommonJS(core_exports); var import_type_tag_serializer = require("../bcs/type-tag-serializer.js"); var import_dynamic_fields = require("../utils/dynamic-fields.js"); var import_sui_types = require("../utils/sui-types.js"); var import_client = require("./client.js"); class Experimental_CoreClient extends import_client.Experimental_BaseClient { constructor() { super(...arguments); this.core = this; } async getObject(options) { const { objectId } = options; const { objects: [result] } = await this.getObjects({ objectIds: [objectId], signal: options.signal }); if (result instanceof Error) { throw result; } return { object: result }; } async getDynamicField(options) { const fieldId = (0, import_dynamic_fields.deriveDynamicFieldID)( options.parentId, import_type_tag_serializer.TypeTagSerializer.parseFromStr(options.name.type), options.name.bcs ); const { objects: [fieldObject] } = await this.getObjects({ objectIds: [fieldId], signal: options.signal }); if (fieldObject instanceof Error) { throw fieldObject; } const fieldType = (0, import_sui_types.parseStructTag)(fieldObject.type); return { dynamicField: { id: fieldObject.id, digest: fieldObject.digest, version: fieldObject.version, type: fieldObject.type, name: { type: typeof fieldType.typeParams[0] === "string" ? fieldType.typeParams[0] : (0, import_sui_types.normalizeStructTag)(fieldType.typeParams[0]), bcs: options.name.bcs }, value: { type: typeof fieldType.typeParams[1] === "string" ? fieldType.typeParams[1] : (0, import_sui_types.normalizeStructTag)(fieldType.typeParams[1]), bcs: fieldObject.content.slice(import_sui_types.SUI_ADDRESS_LENGTH + options.name.bcs.length) } } }; } async waitForTransaction({ signal, timeout = 60 * 1e3, ...input }) { const abortSignal = signal ? AbortSignal.any([AbortSignal.timeout(timeout), signal]) : AbortSignal.timeout(timeout); const abortPromise = new Promise((_, reject) => { abortSignal.addEventListener("abort", () => reject(abortSignal.reason)); }); abortPromise.catch(() => { }); while (true) { abortSignal.throwIfAborted(); try { return await this.getTransaction({ ...input, signal: abortSignal }); } catch (e) { await Promise.race([new Promise((resolve) => setTimeout(resolve, 2e3)), abortPromise]); } } } } //# sourceMappingURL=core.js.map