# eurobuddha/pandapools-mds architecture

> Architecture diagram of the GitHub repository eurobuddha/pandapools-mds, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/eurobuddha/pandapools-mds
- Repository: https://github.com/eurobuddha/pandapools-mds

## Overview

PandaPools is a Minima-node MiniDapp for discovering constant-product pools, routing MINIMA/token swaps, managing liquidity, and tracking or recovering pool activity and ownership. The principal path runs from the user interface through quote/routing and transaction construction to the Minima node; background discovery and activity capture continue independently. The README documents wallet, LP analytics, calculator, and recovery capabilities, but excerpts do not expose all their wiring, so only documented or source-supported links are shown.

Main entry points: [`index.html`](https://github.com/eurobuddha/pandapools-mds/blob/master/index.html) (MiniDapp screens), [`service.js`](https://github.com/eurobuddha/pandapools-mds/blob/master/service.js) (Background service), [`activity-chain.js`](https://github.com/eurobuddha/pandapools-mds/blob/master/activity-chain.js) (Activity verification), [`poolmgr.js`](https://github.com/eurobuddha/pandapools-mds/blob/master/poolmgr.js) (Pool transactions)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interface["MiniDapp interface"]
  node_ui["MiniDapp screens<br/>[index.html]"]
  node_wallet["Wallet view<br/>[index.html]"]
  node_calculator["Pool calculator<br/>[calc.js]"]
  node_lp["LP positions<br/>[index.html]"]
end

subgraph group_amm["AMM and transactions"]
  node_router["Swap router<br/>[router.js]"]
  node_curve["Pool quotes<br/>[curve.js]"]
  node_covenant["Pool covenant<br/>[covenant.js]"]
  node_poolmgr["Pool transactions<br/>[poolmgr.js]"]
end

subgraph group_network["Discovery and activity"]
  node_service["Background service<br/>[service.js]"]
  node_discovery["Pool discovery<br/>[service.js]"]
  node_activity["Activity verification<br/>[activity-chain.js]"]
  node_feed["Network activity feed<br/>[store.js]"]
end

subgraph group_safety["Recovery and accounting"]
  node_storage[("Local MDS storage<br/>[store.js]")]
  node_recovery["Pool recovery"]
  node_receipts["Receipt recovery"]
  node_statement["LP statements<br/>[statement.js]"]
end

node_user(("Pool user"))
node_node{{"Minima node"}}

node_user -->|"uses"| node_ui
node_ui -->|"requests quotes"| node_router
node_router -->|"quotes pools"| node_curve
node_ui -->|"submits pool actions"| node_poolmgr
node_poolmgr -->|"builds covenant transactions"| node_covenant
node_poolmgr -->|"commands and posts"| node_node
node_ui -->|"reads wallet data"| node_node
node_service -->|"scans and announces"| node_node
node_service -->|"refreshes pools"| node_discovery
node_service -->|"checks pool transactions"| node_activity
node_service -->|"records activity"| node_feed
node_feed -->|"persists feed"| node_storage
node_activity -->|"reads and writes history"| node_storage
node_activity -->|"verifies confirmations"| node_node
node_activity -->|"recovers receipt IDs"| node_receipts
node_ui -->|"backs up or restores"| node_recovery
node_recovery -->|"checks reserve proofs"| node_node
node_lp -->|"shows pool accounting"| node_statement
node_lp -->|"opens calculator"| node_calculator

click node_ui "https://github.com/eurobuddha/pandapools-mds/blob/master/index.html"
click node_wallet "https://github.com/eurobuddha/pandapools-mds/blob/master/index.html"
click node_calculator "https://github.com/eurobuddha/pandapools-mds/blob/master/calc.js"
click node_router "https://github.com/eurobuddha/pandapools-mds/blob/master/router.js"
click node_curve "https://github.com/eurobuddha/pandapools-mds/blob/master/curve.js"
click node_covenant "https://github.com/eurobuddha/pandapools-mds/blob/master/covenant.js"
click node_poolmgr "https://github.com/eurobuddha/pandapools-mds/blob/master/poolmgr.js"
click node_service "https://github.com/eurobuddha/pandapools-mds/blob/master/service.js"
click node_discovery "https://github.com/eurobuddha/pandapools-mds/blob/master/service.js"
click node_activity "https://github.com/eurobuddha/pandapools-mds/blob/master/activity-chain.js"
click node_feed "https://github.com/eurobuddha/pandapools-mds/blob/master/store.js"
click node_storage "https://github.com/eurobuddha/pandapools-mds/blob/master/store.js"
click node_recovery "https://github.com/eurobuddha/pandapools-mds/blob/master/reserve-recovery.js"
click node_receipts "https://github.com/eurobuddha/pandapools-mds/blob/master/receipt-recovery.js"
click node_statement "https://github.com/eurobuddha/pandapools-mds/blob/master/statement.js"
click node_lp "https://github.com/eurobuddha/pandapools-mds/blob/master/index.html"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_ui,node_wallet,node_calculator,node_lp,node_user toneBlue
class node_router,node_curve,node_covenant,node_poolmgr toneAmber
class node_service,node_discovery,node_activity,node_feed toneMint
class node_storage,node_recovery,node_receipts,node_statement toneRose
class node_node toneIndigo
```

## Components

### MiniDapp interface

- [MiniDapp screens](https://github.com/eurobuddha/pandapools-mds/blob/master/index.html): `index.html`
- [Wallet view](https://github.com/eurobuddha/pandapools-mds/blob/master/index.html): `index.html`
- [Pool calculator](https://github.com/eurobuddha/pandapools-mds/blob/master/calc.js): `calc.js`
- [LP positions](https://github.com/eurobuddha/pandapools-mds/blob/master/index.html): `index.html`

### AMM and transactions

- [Swap router](https://github.com/eurobuddha/pandapools-mds/blob/master/router.js): `router.js`
- [Pool quotes](https://github.com/eurobuddha/pandapools-mds/blob/master/curve.js): `curve.js`
- [Pool covenant](https://github.com/eurobuddha/pandapools-mds/blob/master/covenant.js): `covenant.js`
- [Pool transactions](https://github.com/eurobuddha/pandapools-mds/blob/master/poolmgr.js): `poolmgr.js`

### Discovery and activity

- [Background service](https://github.com/eurobuddha/pandapools-mds/blob/master/service.js): `service.js`
- [Pool discovery](https://github.com/eurobuddha/pandapools-mds/blob/master/service.js): `service.js`
- [Activity verification](https://github.com/eurobuddha/pandapools-mds/blob/master/activity-chain.js): `activity-chain.js`
- [Network activity feed](https://github.com/eurobuddha/pandapools-mds/blob/master/store.js): `store.js`

### Recovery and accounting

- [Local MDS storage](https://github.com/eurobuddha/pandapools-mds/blob/master/store.js): `store.js`
- [Pool recovery](https://github.com/eurobuddha/pandapools-mds/blob/master/reserve-recovery.js): `reserve-recovery.js`
- [Receipt recovery](https://github.com/eurobuddha/pandapools-mds/blob/master/receipt-recovery.js): `receipt-recovery.js`
- [LP statements](https://github.com/eurobuddha/pandapools-mds/blob/master/statement.js): `statement.js`

### Other components

- **Pool user**
- **Minima node**

## Connections

- Pool user → MiniDapp screens: uses
- MiniDapp screens → Swap router: requests quotes
- Swap router → Pool quotes: quotes pools
- MiniDapp screens → Pool transactions: submits pool actions
- Pool transactions → Pool covenant: builds covenant transactions
- Pool transactions → Minima node: commands and posts
- MiniDapp screens → Minima node: reads wallet data
- Background service → Minima node: scans and announces
- Background service → Pool discovery: refreshes pools
- Background service → Activity verification: checks pool transactions
- Background service → Network activity feed: records activity
- Network activity feed → Local MDS storage: persists feed
- Activity verification → Local MDS storage: reads and writes history
- Activity verification → Minima node: verifies confirmations
- Activity verification → Receipt recovery: recovers receipt IDs
- MiniDapp screens → Pool recovery: backs up or restores
- Pool recovery → Minima node: checks reserve proofs
- LP positions → LP statements: shows pool accounting
- LP positions → Pool calculator: opens calculator
