UNPKG

ethsub

Version:

A bridge between ethereum and substrate

54 lines (53 loc) 1.75 kB
#!/usr/bin/env node "use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const services_1 = require("./services"); const p_event_1 = __importDefault(require("p-event")); async function main() { process.on("unhandledRejection", (reason) => { const { logger } = services_1.srvs; if (logger) services_1.srvs.logger.error(reason, { unhandledRejection: true }); }); process.on("uncaughtException", (err) => { const { logger } = services_1.srvs; if (logger) services_1.srvs.logger.error(err, { uncaughtException: true }); }); let stop; try { stop = await (0, services_1.init)(); Promise.all([ services_1.srvs.eth.pullBlocks(), services_1.srvs.sub.pullBlocks(), services_1.srvs.eth.pullMsgs(services_1.srvs.sub.chainId), services_1.srvs.sub.pullMsgs(services_1.srvs.eth.chainId), ]); services_1.srvs.logger.info("Bridge started"); await Promise.race([ ...["SIGINT", "SIGHUP", "SIGTERM"].map((s) => (0, p_event_1.default)(process, s // { // rejectionEvents: ["uncaughtException", "unhandledRejection"], // }, )), ]); } catch (err) { process.exitCode = 1; if (services_1.srvs.logger) { services_1.srvs.logger.error(err); } else { console.log(err); } } finally { if (stop) await stop(); setTimeout(() => process.exit(), 10000).unref(); } } main();