| | package main
|
| |
|
| | import (
|
| | "log"
|
| |
|
| | "github.com/gofiber/fiber/v2"
|
| | "github.com/gofiber/fiber/v2/middleware/cors"
|
| | "github.com/gofiber/fiber/v2/middleware/logger"
|
| | "github.com/user/polymarket-trader/internal/adapters/polymarket"
|
| | "github.com/user/polymarket-trader/internal/api"
|
| | "github.com/user/polymarket-trader/internal/config"
|
| | "github.com/user/polymarket-trader/internal/core"
|
| | )
|
| |
|
| | func main() {
|
| |
|
| | cfg := config.LoadConfig()
|
| |
|
| |
|
| | pmClient := polymarket.NewClient(cfg)
|
| | pmWS := polymarket.NewWSClient()
|
| |
|
| |
|
| | if err := pmWS.Connect(); err != nil {
|
| | log.Printf("Warning: Failed to connect to Polymarket WS: %v", err)
|
| | }
|
| |
|
| |
|
| | copyEngine := core.NewCopyEngine(pmClient, pmWS)
|
| | copyEngine.Start()
|
| |
|
| | discoveryService := core.NewTraderDiscoveryService()
|
| |
|
| |
|
| | h := api.NewHandler(discoveryService, copyEngine)
|
| |
|
| |
|
| | app := fiber.New(fiber.Config{
|
| | AppName: "Polymarket Trader Engine",
|
| | })
|
| |
|
| |
|
| | app.Use(logger.New())
|
| | app.Use(cors.New())
|
| |
|
| |
|
| | api.SetupRoutes(app, h)
|
| |
|
| |
|
| | app.Get("/health", func(c *fiber.Ctx) error {
|
| | return c.JSON(fiber.Map{
|
| | "status": "ok",
|
| | "uptime": "running",
|
| | "env": cfg.ServerPort,
|
| | })
|
| | })
|
| |
|
| |
|
| | log.Printf("Starting server on port %s", cfg.ServerPort)
|
| | log.Fatal(app.Listen(":" + cfg.ServerPort))
|
| | }
|
| |
|