Bot & Automation

Treding Forex Ai

/root/hermes-projects/Treding Forex Ai

dist/src/index.js text
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const app_1 = require("./app");
const env_1 = require("./config/env");
async function main() {
    console.log("[startup] Memulai inisialisasi bot...");
    const components = (0, app_1.createAppComponents)();
    console.log("[startup] Komponen aplikasi berhasil dimuat.");
    const bot = (0, app_1.createBot)();
    console.log("[startup] Objek bot berhasil dibuat.");
    const autoTradingService = (0, app_1.createAutoTradingService)(components, bot);
    console.log("[startup] AutoTradingService berhasil diinisialisasi.");
    (0, app_1.registerBot)(bot, components, autoTradingService);
    console.log("[startup] Handlers bot berhasil diregistrasi.");
    console.log("[startup] Menghapus webhook lama...");
    await bot.telegram.callApi("deleteWebhook", { drop_pending_updates: true });
    console.log("[startup] Webhook lama berhasil dihapus.");
    console.log("[startup] Mengaktifkan AutoTradingService...");
    autoTradingService.start();
    console.log("[startup] AutoTradingService aktif.");
    console.log("[startup] Memulai koneksi long-polling ke Telegram...");
    bot.launch({ dropPendingUpdates: true }).catch((err) => {
        console.error("[startup] Gagal meluncurkan bot Telegraf:", err);
    });
    console.log("[startup] Koneksi Telegraf berjalan.");
    console.log(`${env_1.env.botDisplayName} aktif dalam mode ${env_1.env.tradingMode}.`);
    process.once("SIGINT", () => {
        autoTradingService.stop();
        bot.stop("SIGINT");
    });
    process.once("SIGTERM", () => {
        autoTradingService.stop();
        bot.stop("SIGTERM");
    });
}
main().catch((error) => {
    const message = error instanceof Error ? error.message : "Unknown startup error";
    console.error(`Startup failed: ${message}`);
    process.exitCode = 1;
});