diff --git a/Dockerfile b/Dockerfile index 3ed69a1..b515320 100644 --- a/Dockerfile +++ b/Dockerfile @@ -26,6 +26,7 @@ COPY . . COPY --from=cpp-builder /build/Matching-Engine/build/libmatching_engine_c_api.so ./lib/ RUN CGO_ENABLED=1 go build -o /app/server ./cmd/server +RUN CGO_ENABLED=1 go build -o /app/mmbot ./cmd/mmbot # Stage 3: Minimal runtime image FROM alpine:3.21 @@ -35,6 +36,7 @@ RUN apk add --no-cache ca-certificates libstdc++ libgcc WORKDIR /app COPY --from=go-builder /app/server . +COPY --from=go-builder /app/mmbot . COPY --from=cpp-builder /build/Matching-Engine/build/libmatching_engine_c_api.so /usr/local/lib/ COPY internal/db/migrations/ ./internal/db/migrations/ diff --git a/cmd/server/main.go b/cmd/server/main.go index 3b20bf8..3f454fd 100644 --- a/cmd/server/main.go +++ b/cmd/server/main.go @@ -57,7 +57,7 @@ func main() { } } } - + // 3. Initialize Auth & Email Services (needed for WebSocket Hub) emailSvc := auth.NewEmailService(cfg.SMTPHost, cfg.SMTPPort, cfg.SMTPUser, cfg.SMTPPass) authService := auth.NewService(db.Pool, cfg.JWTSecret, emailSvc) diff --git a/internal/market/generator.go b/internal/market/generator.go index f1dd48a..2c52254 100644 --- a/internal/market/generator.go +++ b/internal/market/generator.go @@ -279,17 +279,17 @@ func (g *Generator) submitOrders(basePrice float64) { // Occasionally submit a market order to simulate aggressive traders // taking liquidity. This creates actual trades in the book. - if g.cfg.AggressiveRate > 0 && g.rng.Float64() < g.cfg.AggressiveRate { - side := engine.SideBuy - if g.rng.Float64() < 0.5 { - side = engine.SideSell - } - qty := g.cfg.MinQty + g.rng.Intn(g.cfg.MaxQty-g.cfg.MinQty+1) - orderID := int(g.nextOrderID.Add(1)) - - status, result := g.book.Market(orderID, side, qty) - if status == engine.StatusOK && len(result.Trades) > 0 && g.onTrade != nil { - g.onTrade(side, result) - } - } + // if g.cfg.AggressiveRate > 0 && g.rng.Float64() < g.cfg.AggressiveRate { + // side := engine.SideBuy + // if g.rng.Float64() < 0.5 { + // side = engine.SideSell + // } + // qty := g.cfg.MinQty + g.rng.Intn(g.cfg.MaxQty-g.cfg.MinQty+1) + // orderID := int(g.nextOrderID.Add(1)) + + // status, result := g.book.Market(orderID, side, qty) + // if status == engine.StatusOK && len(result.Trades) > 0 && g.onTrade != nil { + // g.onTrade(side, result) + // } + // } }