Markets: 24h volume per pool

CEO ask: the venue table should carry 24h volume alongside price and TVL.

Added a VOL 24H column, filled from the only sources that publish it
per pool through a browser-callable API:

- Base pools DexScreener indexes: its volume.h24 (now four pools - it
  has started indexing the Uniswap v4 bAP3X/AERO pair, which the table
  picks up automatically)
- LBank: 24h turnover from the ticker

Where nobody publishes it the cell reads "no feed", never a zero or a
bare dash, and a note under the table names exactly which venues those
are and why: Cardano DEXs (Minswap, VyFi) and the two Uniswap V3 pools
DexScreener does not index expose reserves but no volume, and reading it
from swap history needs a paid archive node. Checked first: DexHunter
has no volume route, the Minswap aggregator has none, and both keyless
Base RPCs refuse a 24h eth_getLogs range (publicnode wants an archive
token, drpc caps anonymous queries at 10 blocks).

The VOLUME 24H headline is now the sum of exactly the per-pool figures
the table shows, labelled with how many venues reported, so the KPI and
the column can never disagree. It falls back to CoinGecko only when no
venue reports at all.

The phone keeps all four columns without clipping: tighter numeric
padding, a narrower venue cell and a smaller link column. The render
harness now fails a build whose table overflows its card.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UPpFgu6wXiDfJv8ghoUwBJ
This commit is contained in:
2026-09-09 20:36:51 +00:00
parent b6d5920f54
commit 2bc479a200

File diff suppressed because one or more lines are too long