QA: Review indexer–frontend dapp integration (main @ 5712a44) #43

Closed
opened 2026-03-25 12:28:40 +00:00 by PlasticDigits · 2 comments
PlasticDigits commented 2026-03-25 12:28:40 +00:00 (Migrated from gitlab.com)

Context

Please QA the frontend changes merged on main that wire the dapp to more of the indexer HTTP API (commit 5712a44).

Branch: main (pushed)

Scope (files touched)

  • frontend-dapp/src/App.tsx — routes /trader, /trader/:address, /protocol
  • frontend-dapp/src/components/charts/PriceChart.tsx — 1w candle interval
  • frontend-dapp/src/components/common/Layout.tsx — nav: Trader, Protocol
  • frontend-dapp/src/components/wallet/WalletButton.tsx — Trader profile link
  • frontend-dapp/src/hooks/useTokenDisplayInfo.ts — indexer token logos/symbols (shared query)
  • frontend-dapp/src/pages/ChartsPage.tsx — overview USD + USTC, pair sort/pagination, getPair when selection off-page
  • frontend-dapp/src/pages/PoolPage.tsx — indexed token count in header
  • frontend-dapp/src/pages/ProtocolPage.tsx — new — USTC oracle + history, hook events table
  • frontend-dapp/src/pages/SwapPage.tsx — Settings: indexer route check vs client route
  • frontend-dapp/src/pages/TraderPage.tsx — optional address param
  • frontend-dapp/src/services/indexer/client.ts — new API helpers
  • frontend-dapp/src/types/index.ts — indexer types

QA checklist

Environment

  • VITE_INDEXER_URL points at a running indexer (or default http://localhost:3001 for local)
  • Wallet connects to intended Terra Classic network

Charts (/charts)

  • Overview shows six stats including 24h Volume (USD) and USTC / USD (or em dash if indexer omits fields)
  • Pair list: sort (default 24h volume desc) and order work; pagination appears when >50 pairs
  • Selecting a pair on another page still resolves (loading line or merged row) via single-pair fetch
  • Price chart includes 1w interval and loads candles without errors

Protocol (/protocol)

  • USTC/USD oracle section shows snapshot and sources when indexer returns data
  • Recent USTC/USD history table loads (or empty/error states are acceptable)
  • Hook events table loads; optional filter by hook contract works (debounced)

Pool (/pool)

  • Header shows indexed tokens count when indexer responds
  • Pool cards still show 24h volume; token labels/logos look sane (indexer + fallbacks)

Swap (/)

  • Open Settings → Indexer route check runs for two CW20 tokens; Compare indexer route shows hops
  • Error copy for non-CW20 / native-only paths is clear
  • When a client multihop route exists, Client hops count appears next to indexer hops

Trader

  • Nav Trader and /trader open search/empty state; /trader/:addr loads profile
  • Wallet menu Trader profile navigates to connected address

Regression

  • No console errors on navigation between Swap, Pool, Charts, Protocol, Trader, Tiers, Create Pair
  • npm run build passes (CI)

Notes

  • Indexer route solver only resolves tokens present as CW20 rows in the indexer asset table (see in-app copy).
  • Pair TWAP on Charts remains on-chain pair oracle; Protocol page is protocol-level USTC/USD from the indexer.

/cc @brouie

## Context Please QA the frontend changes merged on `main` that wire the dapp to more of the indexer HTTP API (commit `5712a44`). **Branch:** `main` (pushed) ## Scope (files touched) - `frontend-dapp/src/App.tsx` — routes `/trader`, `/trader/:address`, `/protocol` - `frontend-dapp/src/components/charts/PriceChart.tsx` — `1w` candle interval - `frontend-dapp/src/components/common/Layout.tsx` — nav: Trader, Protocol - `frontend-dapp/src/components/wallet/WalletButton.tsx` — Trader profile link - `frontend-dapp/src/hooks/useTokenDisplayInfo.ts` — indexer token logos/symbols (shared query) - `frontend-dapp/src/pages/ChartsPage.tsx` — overview USD + USTC, pair sort/pagination, `getPair` when selection off-page - `frontend-dapp/src/pages/PoolPage.tsx` — indexed token count in header - `frontend-dapp/src/pages/ProtocolPage.tsx` — **new** — USTC oracle + history, hook events table - `frontend-dapp/src/pages/SwapPage.tsx` — Settings: indexer route check vs client route - `frontend-dapp/src/pages/TraderPage.tsx` — optional `address` param - `frontend-dapp/src/services/indexer/client.ts` — new API helpers - `frontend-dapp/src/types/index.ts` — indexer types ## QA checklist ### Environment - [ ] `VITE_INDEXER_URL` points at a running indexer (or default `http://localhost:3001` for local) - [ ] Wallet connects to intended Terra Classic network ### Charts (`/charts`) - [ ] Overview shows six stats including **24h Volume (USD)** and **USTC / USD** (or em dash if indexer omits fields) - [ ] Pair list: **sort** (default 24h volume desc) and **order** work; **pagination** appears when >50 pairs - [ ] Selecting a pair on another page still resolves (loading line or merged row) via single-pair fetch - [ ] Price chart includes **1w** interval and loads candles without errors ### Protocol (`/protocol`) - [ ] USTC/USD oracle section shows snapshot and **sources** when indexer returns data - [ ] **Recent USTC/USD history** table loads (or empty/error states are acceptable) - [ ] **Hook events** table loads; optional filter by hook contract works (debounced) ### Pool (`/pool`) - [ ] Header shows **indexed tokens** count when indexer responds - [ ] Pool cards still show 24h volume; token labels/logos look sane (indexer + fallbacks) ### Swap (`/`) - [ ] Open **Settings** → **Indexer route check** runs for two **CW20** tokens; **Compare indexer route** shows hops - [ ] Error copy for non-CW20 / native-only paths is clear - [ ] When a client multihop route exists, **Client hops** count appears next to indexer hops ### Trader - [ ] Nav **Trader** and `/trader` open search/empty state; `/trader/:addr` loads profile - [ ] Wallet menu **Trader profile** navigates to connected address ### Regression - [ ] No console errors on navigation between Swap, Pool, Charts, Protocol, Trader, Tiers, Create Pair - [ ] `npm run build` passes (CI) ## Notes - Indexer route solver **only** resolves tokens present as CW20 rows in the indexer asset table (see in-app copy). - Pair TWAP on Charts remains **on-chain** pair oracle; **Protocol** page is **protocol-level** USTC/USD from the indexer. /cc @brouie
PlasticDigits commented 2026-03-25 12:28:41 +00:00 (Migrated from gitlab.com)

assigned to @Brouie

assigned to @Brouie
Brouie commented 2026-04-01 06:00:41 +00:00 (Migrated from gitlab.com)

verified -- indexer-frontend integration working on 117efc3. swap EMBER/CORAL successful (tx confirmed). pool reserves, fee, price impact, min received all populating from indexer. limit book leg toggle and indexer route check present in settings. high price impact correctly rejected by contract (9.17% spread > 2% tolerance on ONYX/CORAL). limit orders indexer showing placed orders (#42 confirmed separately).

verified -- indexer-frontend integration working on 117efc3. swap EMBER/CORAL successful (tx confirmed). pool reserves, fee, price impact, min received all populating from indexer. limit book leg toggle and indexer route check present in settings. high price impact correctly rejected by contract (9.17% spread > 2% tolerance on ONYX/CORAL). limit orders indexer showing placed orders (#42 confirmed separately).
Brouie (Migrated from gitlab.com) closed this issue 2026-04-01 06:01:18 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
code/cl8y-dex-terraclassic#43
No description provided.