Bot & Automation
Market AI
/root/hermes-projects/Market AI
src/index.ts
text
import { createAppComponents, createAutoTradingService, createBot, registerBot } from "./app";
import { env } from "./config/env";
async function main(): Promise<void> {
console.log("[startup] Memulai inisialisasi bot...");
const components = createAppComponents();
console.log("[startup] Komponen aplikasi berhasil dimuat.");
const bot = createBot();
console.log("[startup] Objek bot berhasil dibuat.");
const autoTradingService = createAutoTradingService(components, bot);
console.log("[startup] AutoTradingService berhasil diinisialisasi.");
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.botDisplayName} aktif dalam mode ${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;
});