Bot & Automation

Market AI

/root/hermes-projects/Market AI

packages/core/src/constants.ts text
import type { ScannerCriteria, TradingMode } from "./types.js";

export const SERVICE_NAME = "meme-market-ai";
export const BOT_NAME = "Meme Coin Trading Bot";

export const MEME_MENU = {
  scanner: "Scanner Meme Coin",
  topPicks: "Top Picks",
  analyze: "Analisis Token",
  buy: "Buy",
  sell: "Sell",
  positions: "Positions",
  watchlist: "Watchlist",
  alerts: "Alerts",
  settings: "Settings",
} as const;

export const TRADING_MODES: Record<
  TradingMode,
  { label: string; confidenceFloor: number; maxRiskPercent: string; description: string }
> = {
  scalp: {
    label: "Scalp",
    confidenceFloor: 72,
    maxRiskPercent: "0.25%-0.5%",
    description: "Entry cepat, wajib likuiditas dan volume tinggi.",
  },
  momentum: {
    label: "Momentum",
    confidenceFloor: 68,
    maxRiskPercent: "0.25%-0.75%",
    description: "Ikut volume dan breakout, hindari candle terlalu ekstensi.",
  },
  snipe: {
    label: "Snipe",
    confidenceFloor: 80,
    maxRiskPercent: "0.1%-0.25%",
    description: "Mode sangat agresif untuk token baru. Default tetap WAIT jika data kurang.",
  },
  conservative: {
    label: "Conservative",
    confidenceFloor: 78,
    maxRiskPercent: "0.1%-0.5%",
    description: "Hanya setup dengan likuiditas kuat dan risiko rug-pull lebih rendah.",
  },
};

export const DEFAULT_SCANNER_CRITERIA: Required<Omit<ScannerCriteria, "chainId">> & { chainId: string } = {
  chainId: "solana",
  limit: 10,
  minLiquidityUsd: 15000,
  minVolumeH24: 25000,
  maxAgeHours: 72,
  minScore: 55,
};

export const SOL_MINT = "So11111111111111111111111111111111111111112";
export const USDC_MINT = "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v";

export const KNOWN_MEME_TOKENS = [
  {
    chainId: "solana",
    tokenAddress: "DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263",
    symbol: "BONK",
    name: "Bonk",
  },
  {
    chainId: "solana",
    tokenAddress: "EKpQGSJtjMFqKZ9KQanSqYXRcF8fBopzL9FZAKK8Wwc",
    symbol: "WIF",
    name: "dogwifhat",
  },
  {
    chainId: "ethereum",
    tokenAddress: "0x6982508145454ce325ddbe47a25d4ec3d2311933",
    symbol: "PEPE",
    name: "Pepe",
  },
] as const;

export const RISK_DISCLAIMER =
  "Analisis ini bukan nasihat keuangan dan tidak menjamin profit. Meme coin sangat spekulatif, bisa rug-pull, likuiditas bisa hilang, dan slippage bisa ekstrem. Gunakan dana kecil, stop loss, dan konfirmasi manual sebelum live trade.";