3 changed files with 199 additions and 0 deletions
@ -0,0 +1,110 @@
|
||||
# PROJECT_STATE.md |
||||
|
||||
Project: monitor |
||||
Version: v0.2.0 |
||||
Updated: 2026-03-15 04:49:42 |
||||
|
||||
## Project purpose |
||||
|
||||
Monitor is the OutsideTheBox pricing dashboard and oracle service. |
||||
|
||||
It serves two roles: |
||||
|
||||
1. Human-facing market dashboard for fiat and crypto lines |
||||
2. Machine-facing oracle API for quote generation and billing integrations |
||||
|
||||
## Current live architecture |
||||
|
||||
Price providers |
||||
-> oracle fetch/cache |
||||
-> monitor backend |
||||
-> nginx on tax |
||||
-> webfront on mintme |
||||
-> monitor.outsidethebox.top |
||||
|
||||
## Live backend components |
||||
|
||||
### Monitor backend |
||||
- File: `/home/def/monitor/backend/server.js` |
||||
- Service: `monitor-backend.service` |
||||
- Bind: `127.0.0.1:4010` |
||||
|
||||
### Oracle refresh |
||||
- File: `/home/def/monitor/oracle/fetch_prices.js` |
||||
- Service: `otb-oracle-refresh.service` |
||||
- Timer: `otb-oracle-refresh.timer` |
||||
|
||||
### Frontend source |
||||
- Directory: `/home/def/monitor/frontend` |
||||
|
||||
### Live frontend served by nginx |
||||
- Directory: `/var/www/monitor` |
||||
|
||||
## Oracle milestone summary |
||||
|
||||
This version marks the first major oracle release. |
||||
|
||||
### Added |
||||
- Oracle asset registry |
||||
- Oracle cache file |
||||
- Oracle pricing engine |
||||
- Oracle route layer |
||||
- Oracle quote generation |
||||
- Frontend oracle status panel |
||||
- Frontend quote calculator |
||||
- CoinGecko primary source support |
||||
- CoinPaprika fallback support |
||||
- Billing-enabled asset selection |
||||
- Oracle integration into main monitor backend |
||||
|
||||
### Current oracle endpoints |
||||
- `/api/oracle/health` |
||||
- `/api/oracle/assets` |
||||
- `/api/oracle/prices` |
||||
- `/api/oracle/price/:pairKey` |
||||
- `/api/oracle/quote` |
||||
- `/api/oracle/status` |
||||
|
||||
## Asset status |
||||
|
||||
### Billing-enabled |
||||
- USDC_ARB |
||||
- ETH_ETH |
||||
- ETHO_ETHO |
||||
- ETI_ETICA |
||||
|
||||
### Present but not billing-enabled |
||||
- EGAZ_ETICA |
||||
|
||||
## Source behavior |
||||
|
||||
### Primary |
||||
- CoinGecko |
||||
|
||||
### Fallback |
||||
- CoinPaprika |
||||
|
||||
### Notes |
||||
- ETHO may resolve from CoinPaprika fallback depending on source response |
||||
- EGAZ is intentionally excluded from billing until a trustworthy pricing source is finalized |
||||
|
||||
## Operational notes |
||||
|
||||
- Oracle API is mounted inside the main monitor backend under `/api/oracle` |
||||
- Standalone oracle API service is no longer required |
||||
- Refresh timer keeps the oracle cache fresh independently of UI polling |
||||
- Frontend must be redeployed to `/var/www/monitor` after frontend source changes |
||||
|
||||
## Known constraints |
||||
|
||||
- Quote output currently supports CAD quote generation |
||||
- EGAZ billing remains disabled |
||||
- Frontend deployment is file-copy based rather than build-pipeline based |
||||
- Monitor has no packaged release tooling yet |
||||
|
||||
## Recommended next work |
||||
|
||||
- Improve oracle source resilience and quorum logic |
||||
- Add stronger deployment/update workflow for frontend sync |
||||
- Extend quote usage into OTB Billing invoice/payment flows |
||||
- Add cleaner release packaging / backup workflow for monitor |
||||
@ -0,0 +1,88 @@
|
||||
# Monitor |
||||
|
||||
Monitor is the pricing and oracle dashboard for `monitor.outsidethebox.top`. |
||||
|
||||
It began as a rotating market display for fiat and crypto lines and now includes a live oracle subsystem for billing-oriented crypto quote generation. |
||||
|
||||
## Current scope |
||||
|
||||
Monitor currently provides: |
||||
|
||||
- Rotating fiat and crypto line updates |
||||
- 7-day sparkline display for supported assets |
||||
- CoinGecko market chart integration for tracked assets |
||||
- KlingEx pair support for selected ecosystem assets |
||||
- Oracle asset registry and live cache |
||||
- Oracle status panel in the frontend |
||||
- Live quote calculator using oracle quote data |
||||
- Oracle API endpoints for billing and future checkout integrations |
||||
|
||||
## Oracle milestone |
||||
|
||||
This release introduces the first production-style oracle layer for OutsideTheBox billing and payment work. |
||||
|
||||
Highlights: |
||||
|
||||
- Added `/api/oracle/assets` |
||||
- Added `/api/oracle/prices` |
||||
- Added `/api/oracle/price/:pairKey` |
||||
- Added `/api/oracle/quote` |
||||
- Added `/api/oracle/status` |
||||
- Added oracle price cache refresh timer |
||||
- Added CoinGecko primary pricing |
||||
- Added CoinPaprika fallback pricing |
||||
- Added billing-enabled asset handling |
||||
- Added quote priority ordering |
||||
- Added frontend Oracle Status panel |
||||
- Added frontend live quote calculator |
||||
- EGAZ remains visible but is currently excluded from billing quotes |
||||
|
||||
## Current tracked oracle assets |
||||
|
||||
- USDC on Arbitrum |
||||
- ETH on Ethereum |
||||
- ETHO |
||||
- ETI |
||||
- EGAZ (displayed, not billing-enabled for now) |
||||
|
||||
## Services and runtime layout |
||||
|
||||
Primary backend: |
||||
|
||||
- `backend/server.js` |
||||
- Served by `monitor-backend.service` |
||||
|
||||
Oracle refresh: |
||||
|
||||
- `oracle/fetch_prices.js` |
||||
- Refreshed by `otb-oracle-refresh.timer` |
||||
|
||||
Frontend: |
||||
|
||||
- Static files served by nginx from `/var/www/monitor` |
||||
- Source files maintained in `/home/def/monitor/frontend` |
||||
|
||||
## Deployment notes |
||||
|
||||
Backend is served locally on: |
||||
|
||||
- `127.0.0.1:4010` |
||||
|
||||
Oracle routes are mounted under: |
||||
|
||||
- `/api/oracle/*` |
||||
|
||||
The tax nginx vhost serves the frontend and proxies API requests to the backend. |
||||
The mintme webfront proxies public traffic to the tax host. |
||||
|
||||
## Important note |
||||
|
||||
If frontend changes are made under `/home/def/monitor/frontend`, they must also be copied into: |
||||
|
||||
- `/var/www/monitor` |
||||
|
||||
or the live site will continue serving the older frontend files. |
||||
|
||||
## Status |
||||
|
||||
This project is now at its first documented oracle milestone and is ready to be consumed by other internal systems such as OTB Billing. |
||||
Loading…
Reference in new issue