Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added hypertrade.db
Binary file not shown.
4 changes: 4 additions & 0 deletions hypertrade/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,10 @@ class Settings(BaseSettings):
telegram_bot_token: Optional[str] = None
telegram_chat_id: Optional[str] = None

# Database persistence
db_path: str = "./hypertrade.db"
db_enabled: bool = True
Comment on lines +75 to +77
Copy link

Copilot AI Nov 28, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing documentation for new database configuration. The new db_path and db_enabled settings should be documented in .env.example to inform users how to configure database persistence. Consider adding:

# Database persistence for order history
HYPERTRADE_DB_PATH=./hypertrade.db
HYPERTRADE_DB_ENABLED=true

Copilot uses AI. Check for mistakes.

# ── Validators ────────────────────────────────────────────────────────────
@field_validator("master_addr")
@classmethod
Expand Down
17 changes: 16 additions & 1 deletion hypertrade/daemon.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,10 @@
from .middleware.content_limit import ContentLengthLimitMiddleware
from .middleware.rate_limit import RateLimitMiddleware
from .routes.health import router as health_router
from .routes.webhooks import router as webhooks_router
from .routes.webhooks import router as webhooks_router, history_router
from .notify import send_telegram_message
from .exception_handlers import register_exception_handlers
from .database import OrderDatabase

log = logging.getLogger("uvicorn.error")

Expand Down Expand Up @@ -121,6 +122,19 @@ def _telegram_notify(text: str, _token=token, _chat_id=chat_id):
else:
app.state.telegram_notify = None

# Initialize database if enabled
if getattr(settings, "db_enabled", True):
try:
db = OrderDatabase(settings.db_path)
app.state.db = db
log.info("Order database initialized at: %s", settings.db_path)
except Exception as e:
log.error("Failed to initialize database: %s", e)
raise
else:
app.state.db = None
log.info("Database persistence disabled")

# Finalize logging with configured level and add middleware
app.add_middleware(LoggingMiddleware)
app.add_middleware(
Expand Down Expand Up @@ -163,6 +177,7 @@ def _telegram_notify(text: str, _token=token, _chat_id=chat_id):
# Setting the Routers up
app.include_router(health_router)
app.include_router(webhooks_router)
app.include_router(history_router)

# Log endpoints after routes are registered
log_endpoints(app)
Expand Down
Loading