vasku
Version:
TVM-Solidity contract development framework
51 lines (50 loc) • 1.67 kB
JavaScript
;
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);
}
}