ethsub
Version:
A bridge between ethereum and substrate
54 lines (53 loc) • 1.75 kB
JavaScript
;
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();