UNPKG

vasku

Version:

TVM-Solidity contract development framework

51 lines (50 loc) 1.67 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.upSeIfNotActive = exports.SE = void 0; const core_1 = require("@eversdk/core"); const se_1 = require("../se"); const preloader_1 = require("./preloader"); const delay_1 = require("../../../utils/delay"); exports.SE = 'se'; const TIMEOUT = 2000; const URL = 'http://localhost'; const DEFAULT_PORT = 8080; const DELAY = 200; async function upSeIfNotActive(network, config) { if (network === exports.SE && !(await seIsActive(config))) { await (0, se_1.seStart)(config); (0, preloader_1.startPreloader)('Waiting for query server. This may take a few minutes in first time'); await waitForSE(config); (0, preloader_1.stopPreloader)(); } } exports.upSeIfNotActive = upSeIfNotActive; async function seIsActive(config) { const client = new core_1.TonClient({ network: { endpoints: [`${URL}:${config.port ?? DEFAULT_PORT}`], max_reconnect_timeout: TIMEOUT, message_processing_timeout: TIMEOUT, wait_for_timeout: TIMEOUT, query_timeout: TIMEOUT, reconnect_timeout: TIMEOUT } }); try { const query = 'query { info { version } }'; const version = (await client.net.query({ query })).result.data.info.version; client.close(); return version !== undefined; } catch (e) { client.close(); return false; } } async function waitForSE(config) { let active = await seIsActive(config); while (!active) { await (0, delay_1.delay)(DELAY); active = await seIsActive(config); } }