Skip to content

feat: pool-centric position view (account health per pool, assets as breakdown) #297

Description

@Dgetsylver

Why

Blend cross-margins ALL positions in a pool into one account — there is exactly one liquidation HF per pool. The per-asset "Loop HF" is only accurate when it's your sole position; with multiple strategies in one pool (e.g. a USDC loop + an EURC-collateral/XLM-borrow) it's misleading. Reframe the position view around the POOL/account.

Design (approved: always-visible table + full reframe)

Position panel = one card per pool:

┌─ YieldBlox ─────────────── Account Health 1.42 ✓ Safe ─┐
│  Equity $4,120 · Net APY +8.3% · Effective leverage 2.7× │
│  ▓▓▓▓▓▓▓▓▓░░░  HF 1.42 · ~62 days to liquidation         │
│  What's in this pool                                     │
│   Asset  Supplied  Borrowed  Role                        │
│   USDC    9,000     6,000    Loop · 3× on $3,000         │
│   EURC    2,300       —      Collateral                  │
│   XLM       —       1,850    Borrow                      │
│   ⓘ one HF liquidates the whole pool; rows are a breakdown│
│  [Add] [Remove] [Adjust ▾] [Close pool]                  │
└──────────────────────────────────────────────────────────┘
  • One health (Pool HF), one HF bar/gauge, one days-to-liquidation, one warning — per pool.
  • No per-asset HF. Each asset row: supplied / borrowed / role (Loop / Collateral / Borrow).
  • Single clean loop → one row, health == loop HF → identical to today's simple case (no regression).
  • Overview → one card per pool (collapses per-asset cards).
  • Open/adjust/add/remove flows stay asset-scoped (you loop a specific asset) — only display + health become pool-centric.

Data

PoolAccount { poolId, poolHF, equityUsd, netApy, effLeverage, liqDays, rows:[{asset,supplied,borrowed,role}] }. Reuses computePoolHF().

Metadata

Metadata

Assignees

Labels

Stellar WaveIssues in the Stellar wave program

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions